From e9e604e6a7a87b379452e99fea1e59148831d621 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Wed, 19 Dec 2018 14:09:39 +0800 Subject: [PATCH] use prism-tomorrow.css --- docs/_style/prism-master/.editorconfig | 14 + docs/_style/prism-master/.gitattributes | 4 + docs/_style/prism-master/.gitignore | 4 + docs/_style/prism-master/.npmignore | 27 + docs/_style/prism-master/.travis.yml | 23 + docs/_style/prism-master/CHANGELOG.md | 1334 +++++++++++++++++ docs/_style/prism-master/CNAME | 1 + docs/_style/prism-master/LICENSE | 21 + docs/_style/prism-master/README.md | 30 + docs/_style/prism-master/bower.json | 30 + docs/_style/prism-master/code.js | 213 +++ docs/_style/prism-master/components.js | 2 + docs/_style/prism-master/components.json | 913 +++++++++++ docs/_style/prism-master/components/index.js | 82 + .../prism-master/components/prism-abap.js | 48 + .../prism-master/components/prism-abap.min.js | 1 + .../components/prism-actionscript.js | 17 + .../components/prism-actionscript.min.js | 1 + .../prism-master/components/prism-ada.js | 19 + .../prism-master/components/prism-ada.min.js | 1 + .../components/prism-apacheconf.js | 47 + .../components/prism-apacheconf.min.js | 1 + .../prism-master/components/prism-apl.js | 32 + .../prism-master/components/prism-apl.min.js | 1 + .../components/prism-applescript.js | 20 + .../components/prism-applescript.min.js | 1 + .../prism-master/components/prism-arduino.js | 5 + .../components/prism-arduino.min.js | 1 + .../prism-master/components/prism-arff.js | 10 + .../prism-master/components/prism-arff.min.js | 1 + .../prism-master/components/prism-asciidoc.js | 271 ++++ .../components/prism-asciidoc.min.js | 1 + .../prism-master/components/prism-asm6502.js | 28 + .../components/prism-asm6502.min.js | 1 + .../prism-master/components/prism-aspnet.js | 36 + .../components/prism-aspnet.min.js | 1 + .../components/prism-autohotkey.js | 27 + .../components/prism-autohotkey.min.js | 1 + .../prism-master/components/prism-autoit.js | 34 + .../components/prism-autoit.min.js | 1 + .../prism-master/components/prism-bash.js | 84 ++ .../prism-master/components/prism-bash.min.js | 1 + .../prism-master/components/prism-basic.js | 17 + .../components/prism-basic.min.js | 1 + .../prism-master/components/prism-batch.js | 99 ++ .../components/prism-batch.min.js | 1 + .../prism-master/components/prism-bison.js | 39 + .../components/prism-bison.min.js | 1 + .../components/prism-brainfuck.js | 20 + .../components/prism-brainfuck.min.js | 1 + .../prism-master/components/prism-bro.js | 48 + .../prism-master/components/prism-bro.min.js | 1 + .../_style/prism-master/components/prism-c.js | 33 + .../prism-master/components/prism-c.min.js | 1 + .../prism-master/components/prism-cil.js | 27 + .../prism-master/components/prism-cil.min.js | 1 + .../prism-master/components/prism-clike.js | 30 + .../components/prism-clike.min.js | 1 + .../prism-master/components/prism-clojure.js | 13 + .../components/prism-clojure.min.js | 1 + .../components/prism-coffeescript.js | 92 ++ .../components/prism-coffeescript.min.js | 1 + .../prism-master/components/prism-core.js | 548 +++++++ .../prism-master/components/prism-core.min.js | 1 + .../prism-master/components/prism-cpp.js | 20 + .../prism-master/components/prism-cpp.min.js | 1 + .../prism-master/components/prism-crystal.js | 51 + .../components/prism-crystal.min.js | 1 + .../prism-master/components/prism-csharp.js | 81 + .../components/prism-csharp.min.js | 1 + .../prism-master/components/prism-csp.js | 25 + .../prism-master/components/prism-csp.min.js | 1 + .../components/prism-css-extras.js | 31 + .../components/prism-css-extras.min.js | 1 + .../prism-master/components/prism-css.js | 52 + .../prism-master/components/prism-css.min.js | 1 + .../_style/prism-master/components/prism-d.js | 64 + .../prism-master/components/prism-d.min.js | 1 + .../prism-master/components/prism-dart.js | 24 + .../prism-master/components/prism-dart.min.js | 1 + .../prism-master/components/prism-diff.js | 20 + .../prism-master/components/prism-diff.min.js | 1 + .../prism-master/components/prism-django.js | 41 + .../components/prism-django.min.js | 1 + .../prism-master/components/prism-docker.js | 11 + .../components/prism-docker.min.js | 1 + .../prism-master/components/prism-eiffel.js | 37 + .../components/prism-eiffel.min.js | 1 + .../prism-master/components/prism-elixir.js | 93 ++ .../components/prism-elixir.min.js | 1 + .../prism-master/components/prism-elm.js | 44 + .../prism-master/components/prism-elm.min.js | 1 + .../prism-master/components/prism-erb.js | 20 + .../prism-master/components/prism-erb.min.js | 1 + .../prism-master/components/prism-erlang.js | 44 + .../components/prism-erlang.min.js | 1 + .../prism-master/components/prism-flow.js | 35 + .../prism-master/components/prism-flow.min.js | 1 + .../prism-master/components/prism-fortran.js | 40 + .../components/prism-fortran.min.js | 1 + .../prism-master/components/prism-fsharp.js | 67 + .../components/prism-fsharp.min.js | 1 + .../prism-master/components/prism-gcode.js | 15 + .../components/prism-gcode.min.js | 1 + .../prism-master/components/prism-gedcom.js | 28 + .../components/prism-gedcom.min.js | 1 + .../prism-master/components/prism-gherkin.js | 79 + .../components/prism-gherkin.min.js | 1 + .../prism-master/components/prism-git.js | 68 + .../prism-master/components/prism-git.min.js | 1 + .../prism-master/components/prism-glsl.js | 16 + .../prism-master/components/prism-glsl.min.js | 1 + .../prism-master/components/prism-gml.js | 7 + .../prism-master/components/prism-gml.min.js | 1 + .../prism-master/components/prism-go.js | 12 + .../prism-master/components/prism-go.min.js | 1 + .../prism-master/components/prism-graphql.js | 24 + .../components/prism-graphql.min.js | 1 + .../prism-master/components/prism-groovy.js | 65 + .../components/prism-groovy.min.js | 1 + .../prism-master/components/prism-haml.js | 154 ++ .../prism-master/components/prism-haml.min.js | 1 + .../components/prism-handlebars.js | 37 + .../components/prism-handlebars.min.js | 1 + .../prism-master/components/prism-haskell.js | 36 + .../components/prism-haskell.min.js | 1 + .../prism-master/components/prism-haxe.js | 45 + .../prism-master/components/prism-haxe.min.js | 1 + .../prism-master/components/prism-hpkp.js | 20 + .../prism-master/components/prism-hpkp.min.js | 1 + .../prism-master/components/prism-hsts.js | 20 + .../prism-master/components/prism-hsts.min.js | 1 + .../prism-master/components/prism-http.js | 79 + .../prism-master/components/prism-http.min.js | 1 + .../components/prism-ichigojam.js | 15 + .../components/prism-ichigojam.min.js | 1 + .../prism-master/components/prism-icon.js | 20 + .../prism-master/components/prism-icon.min.js | 1 + .../prism-master/components/prism-inform7.js | 61 + .../components/prism-inform7.min.js | 1 + .../prism-master/components/prism-ini.js | 11 + .../prism-master/components/prism-ini.min.js | 1 + .../prism-master/components/prism-io.js | 31 + .../prism-master/components/prism-io.min.js | 1 + .../_style/prism-master/components/prism-j.js | 25 + .../prism-master/components/prism-j.min.js | 1 + .../prism-master/components/prism-java.js | 54 + .../prism-master/components/prism-java.min.js | 1 + .../components/prism-javascript.js | 91 ++ .../components/prism-javascript.min.js | 1 + .../components/prism-javastacktrace.js | 93 ++ .../components/prism-javastacktrace.min.js | 1 + .../prism-master/components/prism-jolie.js | 55 + .../components/prism-jolie.min.js | 1 + .../prism-master/components/prism-json.js | 18 + .../prism-master/components/prism-json.min.js | 1 + .../prism-master/components/prism-jsx.js | 126 ++ .../prism-master/components/prism-jsx.min.js | 1 + .../prism-master/components/prism-julia.js | 12 + .../components/prism-julia.min.js | 1 + .../prism-master/components/prism-keyman.js | 14 + .../components/prism-keyman.min.js | 1 + .../prism-master/components/prism-kotlin.js | 62 + .../components/prism-kotlin.min.js | 1 + .../prism-master/components/prism-latex.js | 61 + .../components/prism-latex.min.js | 1 + .../prism-master/components/prism-less.js | 54 + .../prism-master/components/prism-less.min.js | 1 + .../prism-master/components/prism-liquid.js | 12 + .../components/prism-liquid.min.js | 1 + .../prism-master/components/prism-lisp.js | 197 +++ .../prism-master/components/prism-lisp.min.js | 1 + .../components/prism-livescript.js | 119 ++ .../components/prism-livescript.min.js | 1 + .../prism-master/components/prism-lolcode.js | 55 + .../components/prism-lolcode.min.js | 1 + .../prism-master/components/prism-lua.js | 20 + .../prism-master/components/prism-lua.min.js | 1 + .../prism-master/components/prism-makefile.js | 34 + .../components/prism-makefile.min.js | 1 + .../prism-master/components/prism-markdown.js | 229 +++ .../components/prism-markdown.min.js | 1 + .../components/prism-markup-templating.js | 89 ++ .../components/prism-markup-templating.min.js | 1 + .../prism-master/components/prism-markup.js | 56 + .../components/prism-markup.min.js | 1 + .../prism-master/components/prism-matlab.js | 16 + .../components/prism-matlab.min.js | 1 + .../prism-master/components/prism-mel.js | 43 + .../prism-master/components/prism-mel.min.js | 1 + .../prism-master/components/prism-mizar.js | 12 + .../components/prism-mizar.min.js | 1 + .../prism-master/components/prism-monkey.js | 31 + .../components/prism-monkey.min.js | 1 + .../prism-master/components/prism-n4js.js | 14 + .../prism-master/components/prism-n4js.min.js | 1 + .../prism-master/components/prism-nasm.js | 24 + .../prism-master/components/prism-nasm.min.js | 1 + .../prism-master/components/prism-nginx.js | 11 + .../components/prism-nginx.min.js | 1 + .../prism-master/components/prism-nim.js | 33 + .../prism-master/components/prism-nim.min.js | 1 + .../prism-master/components/prism-nix.js | 40 + .../prism-master/components/prism-nix.min.js | 1 + .../prism-master/components/prism-nsis.js | 29 + .../prism-master/components/prism-nsis.min.js | 1 + .../components/prism-objectivec.js | 5 + .../components/prism-objectivec.min.js | 1 + .../prism-master/components/prism-ocaml.js | 27 + .../components/prism-ocaml.min.js | 1 + .../prism-master/components/prism-opencl.js | 49 + .../components/prism-opencl.min.js | 1 + .../prism-master/components/prism-oz.js | 25 + .../prism-master/components/prism-oz.min.js | 1 + .../prism-master/components/prism-parigp.js | 30 + .../components/prism-parigp.min.js | 1 + .../prism-master/components/prism-parser.js | 67 + .../components/prism-parser.min.js | 1 + .../prism-master/components/prism-pascal.js | 55 + .../components/prism-pascal.min.js | 1 + .../prism-master/components/prism-perl.js | 191 +++ .../prism-master/components/prism-perl.min.js | 1 + .../components/prism-php-extras.js | 11 + .../components/prism-php-extras.min.js | 1 + .../prism-master/components/prism-php.js | 122 ++ .../prism-master/components/prism-php.min.js | 1 + .../prism-master/components/prism-plsql.js | 20 + .../components/prism-plsql.min.js | 1 + .../components/prism-powershell.js | 55 + .../components/prism-powershell.min.js | 1 + .../components/prism-processing.js | 18 + .../components/prism-processing.min.js | 1 + .../prism-master/components/prism-prolog.js | 20 + .../components/prism-prolog.min.js | 1 + .../components/prism-properties.js | 9 + .../components/prism-properties.min.js | 1 + .../prism-master/components/prism-protobuf.js | 8 + .../components/prism-protobuf.min.js | 1 + .../prism-master/components/prism-pug.js | 198 +++ .../prism-master/components/prism-pug.min.js | 1 + .../prism-master/components/prism-puppet.js | 136 ++ .../components/prism-puppet.min.js | 1 + .../prism-master/components/prism-pure.js | 81 + .../prism-master/components/prism-pure.min.js | 1 + .../prism-master/components/prism-python.js | 64 + .../components/prism-python.min.js | 1 + .../_style/prism-master/components/prism-q.js | 51 + .../prism-master/components/prism-q.min.js | 1 + .../prism-master/components/prism-qore.js | 20 + .../prism-master/components/prism-qore.min.js | 1 + .../_style/prism-master/components/prism-r.js | 22 + .../prism-master/components/prism-r.min.js | 1 + .../prism-master/components/prism-reason.js | 32 + .../components/prism-reason.min.js | 1 + .../prism-master/components/prism-renpy.js | 29 + .../components/prism-renpy.min.js | 1 + .../prism-master/components/prism-rest.js | 205 +++ .../prism-master/components/prism-rest.min.js | 1 + .../prism-master/components/prism-rip.js | 32 + .../prism-master/components/prism-rip.min.js | 1 + .../prism-master/components/prism-roboconf.js | 27 + .../components/prism-roboconf.min.js | 1 + .../prism-master/components/prism-ruby.js | 143 ++ .../prism-master/components/prism-ruby.min.js | 1 + .../prism-master/components/prism-rust.js | 68 + .../prism-master/components/prism-rust.min.js | 1 + .../prism-master/components/prism-sas.js | 34 + .../prism-master/components/prism-sas.min.js | 1 + .../prism-master/components/prism-sass.js | 72 + .../prism-master/components/prism-sass.min.js | 1 + .../prism-master/components/prism-scala.js | 18 + .../components/prism-scala.min.js | 1 + .../prism-master/components/prism-scheme.js | 33 + .../components/prism-scheme.min.js | 1 + .../prism-master/components/prism-scss.js | 74 + .../prism-master/components/prism-scss.min.js | 1 + .../components/prism-smalltalk.js | 31 + .../components/prism-smalltalk.min.js | 1 + .../prism-master/components/prism-smarty.js | 96 ++ .../components/prism-smarty.min.js | 1 + .../prism-master/components/prism-soy.js | 96 ++ .../prism-master/components/prism-soy.min.js | 1 + .../prism-master/components/prism-sql.js | 24 + .../prism-master/components/prism-sql.min.js | 1 + .../prism-master/components/prism-stylus.js | 111 ++ .../components/prism-stylus.min.js | 1 + .../prism-master/components/prism-swift.js | 25 + .../components/prism-swift.min.js | 1 + .../prism-master/components/prism-tap.js | 20 + .../prism-master/components/prism-tap.min.js | 1 + .../prism-master/components/prism-tcl.js | 46 + .../prism-master/components/prism-tcl.min.js | 1 + .../prism-master/components/prism-textile.js | 257 ++++ .../components/prism-textile.min.js | 1 + .../prism-master/components/prism-toml.js | 43 + .../prism-master/components/prism-toml.min.js | 1 + .../prism-master/components/prism-tsx.js | 2 + .../prism-master/components/prism-tsx.min.js | 1 + .../prism-master/components/prism-tt2.js | 56 + .../prism-master/components/prism-tt2.min.js | 1 + .../prism-master/components/prism-twig.js | 46 + .../prism-master/components/prism-twig.min.js | 1 + .../components/prism-typescript.js | 7 + .../components/prism-typescript.min.js | 1 + .../prism-master/components/prism-vala.js | 74 + .../prism-master/components/prism-vala.min.js | 1 + .../prism-master/components/prism-vbnet.js | 15 + .../components/prism-vbnet.min.js | 1 + .../prism-master/components/prism-velocity.js | 72 + .../components/prism-velocity.min.js | 1 + .../prism-master/components/prism-verilog.js | 20 + .../components/prism-verilog.min.js | 1 + .../prism-master/components/prism-vhdl.js | 23 + .../prism-master/components/prism-vhdl.min.js | 1 + .../prism-master/components/prism-vim.js | 10 + .../prism-master/components/prism-vim.min.js | 1 + .../components/prism-visual-basic.js | 34 + .../components/prism-visual-basic.min.js | 1 + .../prism-master/components/prism-wasm.js | 31 + .../prism-master/components/prism-wasm.min.js | 1 + .../prism-master/components/prism-wiki.js | 81 + .../prism-master/components/prism-wiki.min.js | 1 + .../prism-master/components/prism-xeora.js | 114 ++ .../components/prism-xeora.min.js | 1 + .../prism-master/components/prism-xojo.js | 20 + .../prism-master/components/prism-xojo.min.js | 1 + .../prism-master/components/prism-xquery.js | 164 ++ .../components/prism-xquery.min.js | 1 + .../prism-master/components/prism-yaml.js | 47 + .../prism-master/components/prism-yaml.min.js | 1 + docs/_style/prism-master/composer.json | 20 + docs/_style/prism-master/download.html | 193 +++ docs/_style/prism-master/download.js | 598 ++++++++ docs/_style/prism-master/examples.html | 110 ++ docs/_style/prism-master/examples.js | 217 +++ .../prism-master/examples/prism-abap.html | 65 + .../examples/prism-actionscript.html | 133 ++ .../prism-master/examples/prism-ada.html | 35 + .../examples/prism-apacheconf.html | 54 + .../prism-master/examples/prism-apl.html | 26 + .../examples/prism-applescript.html | 41 + .../prism-master/examples/prism-arduino.html | 63 + .../prism-master/examples/prism-arff.html | 46 + .../prism-master/examples/prism-asciidoc.html | 104 ++ .../prism-master/examples/prism-asm6502.html | 39 + .../prism-master/examples/prism-aspnet.html | 36 + .../examples/prism-autohotkey.html | 68 + .../prism-master/examples/prism-autoit.html | 52 + .../prism-master/examples/prism-bash.html | 49 + .../prism-master/examples/prism-basic.html | 69 + .../prism-master/examples/prism-batch.html | 17 + .../prism-master/examples/prism-bison.html | 104 ++ .../examples/prism-brainfuck.html | 37 + .../prism-master/examples/prism-bro.html | 645 ++++++++ .../_style/prism-master/examples/prism-c.html | 22 + .../prism-master/examples/prism-clike.html | 28 + .../prism-master/examples/prism-clojure.html | 386 +++++ .../examples/prism-coffeescript.html | 61 + .../prism-master/examples/prism-cpp.html | 61 + .../prism-master/examples/prism-crystal.html | 16 + .../prism-master/examples/prism-csharp.html | 60 + .../prism-master/examples/prism-csp.html | 13 + .../prism-master/examples/prism-css.html | 34 + .../_style/prism-master/examples/prism-d.html | 267 ++++ .../prism-master/examples/prism-dart.html | 59 + .../prism-master/examples/prism-diff.html | 33 + .../prism-master/examples/prism-django.html | 31 + .../prism-master/examples/prism-docker.html | 49 + .../prism-master/examples/prism-eiffel.html | 72 + .../prism-master/examples/prism-elixir.html | 462 ++++++ .../prism-master/examples/prism-elm.html | 91 ++ .../prism-master/examples/prism-erb.html | 22 + .../prism-master/examples/prism-erlang.html | 47 + .../prism-master/examples/prism-flow.html | 18 + .../prism-master/examples/prism-fortran.html | 71 + .../prism-master/examples/prism-fsharp.html | 89 ++ .../prism-master/examples/prism-gcode.html | 22 + .../prism-master/examples/prism-gedcom.html | 50 + .../prism-master/examples/prism-gherkin.html | 74 + .../prism-master/examples/prism-git.html | 39 + .../prism-master/examples/prism-glsl.html | 65 + .../prism-master/examples/prism-gml.html | 29 + .../prism-master/examples/prism-go.html | 68 + .../prism-master/examples/prism-graphql.html | 31 + .../prism-master/examples/prism-groovy.html | 93 ++ .../prism-master/examples/prism-haml.html | 79 + .../examples/prism-handlebars.html | 41 + .../prism-master/examples/prism-haskell.html | 80 + .../prism-master/examples/prism-haxe.html | 37 + .../prism-master/examples/prism-hpkp.html | 11 + .../prism-master/examples/prism-hsts.html | 8 + .../prism-master/examples/prism-http.html | 33 + .../examples/prism-ichigojam.html | 29 + .../prism-master/examples/prism-icon.html | 172 +++ .../prism-master/examples/prism-inform7.html | 171 +++ .../prism-master/examples/prism-ini.html | 10 + .../prism-master/examples/prism-io.html | 31 + .../_style/prism-master/examples/prism-j.html | 59 + .../prism-master/examples/prism-java.html | 65 + .../examples/prism-javascript.html | 77 + .../examples/prism-javastacktrace.html | 63 + .../prism-master/examples/prism-jolie.html | 162 ++ .../prism-master/examples/prism-jsx.html | 18 + .../prism-master/examples/prism-julia.html | 29 + .../prism-master/examples/prism-keyman.html | 107 ++ .../prism-master/examples/prism-kotlin.html | 134 ++ .../prism-master/examples/prism-latex.html | 12 + .../prism-master/examples/prism-less.html | 70 + .../prism-master/examples/prism-liquid.html | 75 + .../prism-master/examples/prism-lisp.html | 46 + .../examples/prism-livescript.html | 84 ++ .../prism-master/examples/prism-lolcode.html | 62 + .../prism-master/examples/prism-lua.html | 89 ++ .../prism-master/examples/prism-makefile.html | 263 ++++ .../prism-master/examples/prism-markdown.html | 86 ++ .../prism-master/examples/prism-markup.html | 77 + .../prism-master/examples/prism-matlab.html | 52 + .../prism-master/examples/prism-mel.html | 137 ++ .../prism-master/examples/prism-mizar.html | 45 + .../prism-master/examples/prism-monkey.html | 74 + .../prism-master/examples/prism-n4js.html | 114 ++ .../prism-master/examples/prism-nasm.html | 74 + .../prism-master/examples/prism-nginx.html | 25 + .../prism-master/examples/prism-nim.html | 222 +++ .../prism-master/examples/prism-nix.html | 46 + .../prism-master/examples/prism-nsis.html | 18 + .../examples/prism-objectivec.html | 44 + .../prism-master/examples/prism-ocaml.html | 59 + .../prism-master/examples/prism-opencl.html | 83 + .../prism-master/examples/prism-oz.html | 89 ++ .../prism-master/examples/prism-parigp.html | 20 + .../prism-master/examples/prism-parser.html | 88 ++ .../prism-master/examples/prism-pascal.html | 65 + .../prism-master/examples/prism-perl.html | 71 + .../prism-master/examples/prism-php.html | 67 + .../prism-master/examples/prism-plsql.html | 40 + .../examples/prism-powershell.html | 19 + .../examples/prism-processing.html | 173 +++ .../prism-master/examples/prism-prolog.html | 44 + .../examples/prism-properties.html | 9 + .../prism-master/examples/prism-pug.html | 85 ++ .../prism-master/examples/prism-puppet.html | 152 ++ .../prism-master/examples/prism-pure.html | 115 ++ .../prism-master/examples/prism-python.html | 61 + .../_style/prism-master/examples/prism-q.html | 112 ++ .../prism-master/examples/prism-qore.html | 962 ++++++++++++ .../_style/prism-master/examples/prism-r.html | 38 + .../prism-master/examples/prism-reason.html | 35 + .../prism-master/examples/prism-renpy.html | 123 ++ .../prism-master/examples/prism-rest.html | 329 ++++ .../prism-master/examples/prism-rip.html | 12 + .../prism-master/examples/prism-roboconf.html | 49 + .../prism-master/examples/prism-ruby.html | 30 + .../prism-master/examples/prism-rust.html | 68 + .../prism-master/examples/prism-sas.html | 158 ++ .../prism-master/examples/prism-sass.html | 47 + .../prism-master/examples/prism-scala.html | 100 ++ .../prism-master/examples/prism-scheme.html | 35 + .../prism-master/examples/prism-scss.html | 31 + .../examples/prism-smalltalk.html | 92 ++ .../prism-master/examples/prism-smarty.html | 81 + .../prism-master/examples/prism-soy.html | 36 + .../prism-master/examples/prism-sql.html | 34 + .../prism-master/examples/prism-stylus.html | 72 + .../prism-master/examples/prism-swift.html | 80 + .../prism-master/examples/prism-tcl.html | 26 + .../prism-master/examples/prism-textile.html | 178 +++ .../prism-master/examples/prism-tsx.html | 31 + .../prism-master/examples/prism-tt2.html | 61 + .../prism-master/examples/prism-twig.html | 35 + .../examples/prism-typescript.html | 28 + .../prism-master/examples/prism-vala.html | 33 + .../prism-master/examples/prism-vbnet.html | 16 + .../prism-master/examples/prism-velocity.html | 47 + .../prism-master/examples/prism-verilog.html | 103 ++ .../prism-master/examples/prism-vhdl.html | 92 ++ .../prism-master/examples/prism-vim.html | 25 + .../examples/prism-visual-basic.html | 36 + .../prism-master/examples/prism-wasm.html | 43 + .../prism-master/examples/prism-wiki.html | 165 ++ .../prism-master/examples/prism-xeora.html | 111 ++ .../prism-master/examples/prism-xojo.html | 63 + .../prism-master/examples/prism-xquery.html | 47 + .../prism-master/examples/prism-yaml.html | 107 ++ docs/_style/prism-master/extending.html | 247 +++ docs/_style/prism-master/faq.html | 182 +++ docs/_style/prism-master/favicon.png | Bin 0 -> 209 bytes docs/_style/prism-master/gulpfile.js | 143 ++ docs/_style/prism-master/img/logo-ala.png | Bin 0 -> 1745 bytes .../prism-master/img/logo-css-tricks.png | Bin 0 -> 1735 bytes docs/_style/prism-master/img/logo-drupal.png | Bin 0 -> 2371 bytes docs/_style/prism-master/img/logo-mdn.png | Bin 0 -> 6677 bytes docs/_style/prism-master/img/logo-react.png | Bin 0 -> 4705 bytes .../prism-master/img/logo-sitepoint.png | Bin 0 -> 2703 bytes .../_style/prism-master/img/logo-smashing.png | Bin 0 -> 14160 bytes docs/_style/prism-master/img/logo-stripe.png | Bin 0 -> 3377 bytes docs/_style/prism-master/img/spectrum.png | Bin 0 -> 359393 bytes docs/_style/prism-master/index.html | 321 ++++ docs/_style/prism-master/logo.svg | 22 + docs/_style/prism-master/package.json | 47 + .../plugins/autolinker/index.html | 70 + .../plugins/autolinker/prism-autolinker.css | 3 + .../plugins/autolinker/prism-autolinker.js | 81 + .../autolinker/prism-autolinker.min.js | 1 + .../plugins/autoloader/index.html | 204 +++ .../plugins/autoloader/prism-autoloader.js | 209 +++ .../autoloader/prism-autoloader.min.js | 1 + .../plugins/command-line/index.html | 111 ++ .../command-line/prism-command-line.css | 33 + .../command-line/prism-command-line.js | 139 ++ .../command-line/prism-command-line.min.js | 1 + .../plugins/copy-to-clipboard/index.html | 48 + .../prism-copy-to-clipboard.js | 75 + .../prism-copy-to-clipboard.min.js | 1 + .../plugins/custom-class/index.html | 133 ++ .../custom-class/prism-custom-class.js | 31 + .../custom-class/prism-custom-class.min.js | 1 + .../plugins/data-uri-highlight/index.html | 60 + .../prism-data-uri-highlight.js | 98 ++ .../prism-data-uri-highlight.min.js | 1 + .../plugins/file-highlight/index.html | 75 + .../file-highlight/prism-file-highlight.js | 105 ++ .../prism-file-highlight.min.js | 1 + .../plugins/highlight-keywords/index.html | 51 + .../prism-highlight-keywords.js | 17 + .../prism-highlight-keywords.min.js | 1 + docs/_style/prism-master/plugins/index.html | 42 + .../plugins/jsonp-highlight/index.html | 174 +++ .../jsonp-highlight/prism-jsonp-highlight.js | 151 ++ .../prism-jsonp-highlight.min.js | 1 + .../plugins/keep-markup/index.html | 80 + .../plugins/keep-markup/prism-keep-markup.js | 99 ++ .../keep-markup/prism-keep-markup.min.js | 1 + .../plugins/line-highlight/index.html | 88 ++ .../line-highlight/prism-line-highlight.css | 49 + .../line-highlight/prism-line-highlight.js | 181 +++ .../prism-line-highlight.min.js | 1 + .../plugins/line-numbers/index.html | 69 + .../line-numbers/prism-line-numbers.css | 41 + .../line-numbers/prism-line-numbers.js | 159 ++ .../line-numbers/prism-line-numbers.min.js | 1 + .../plugins/normalize-whitespace/demo.html | 33 + .../plugins/normalize-whitespace/index.html | 180 +++ .../prism-normalize-whitespace.js | 190 +++ .../prism-normalize-whitespace.min.js | 1 + .../plugins/previewers/index.html | 233 +++ .../plugins/previewers/prism-previewers.css | 242 +++ .../plugins/previewers/prism-previewers.js | 708 +++++++++ .../previewers/prism-previewers.min.js | 1 + .../remove-initial-line-feed/index.html | 59 + .../prism-remove-initial-line-feed.js | 21 + .../prism-remove-initial-line-feed.min.js | 1 + .../plugins/show-invisibles/index.html | 46 + .../show-invisibles/prism-show-invisibles.css | 34 + .../show-invisibles/prism-show-invisibles.js | 21 + .../prism-show-invisibles.min.js | 1 + .../plugins/show-language/index.html | 54 + .../show-language/prism-show-language.js | 31 + .../show-language/prism-show-language.min.js | 1 + .../prism-master/plugins/toolbar/index.html | 134 ++ .../plugins/toolbar/prism-toolbar.css | 58 + .../plugins/toolbar/prism-toolbar.js | 137 ++ .../plugins/toolbar/prism-toolbar.min.js | 1 + .../plugins/unescaped-markup/index.html | 195 +++ .../prism-unescaped-markup.css | 10 + .../prism-unescaped-markup.js | 44 + .../prism-unescaped-markup.min.js | 1 + .../prism-master/plugins/wpd/index.html | 68 + .../prism-master/plugins/wpd/prism-wpd.css | 11 + .../prism-master/plugins/wpd/prism-wpd.js | 169 +++ .../prism-master/plugins/wpd/prism-wpd.min.js | 1 + docs/_style/prism-master/prefixfree.min.js | 5 + docs/_style/prism-master/prism.js | 917 +++++++++++ docs/_style/prism-master/style.css | 407 +++++ .../_style/prism-master/templates/footer.html | 15 + .../templates/header-download.html | 2 + .../prism-master/templates/header-main.html | 12 + .../templates/header-plugins.html | 8 + docs/_style/prism-master/test-suite.html | 167 +++ docs/_style/prism-master/test.html | 203 +++ .../prism-master/tests/helper/prism-loader.js | 131 ++ .../prism-master/tests/helper/test-case.js | 196 +++ .../tests/helper/test-discovery.js | 115 ++ .../tests/helper/token-stream-transformer.js | 32 + .../tests/languages/abap/comment_feature.test | Bin 0 -> 201 bytes .../languages/abap/eol-comment_feature.test | Bin 0 -> 215 bytes .../tests/languages/abap/keyword_feature.test | Bin 0 -> 31764 bytes .../tests/languages/abap/number_feature.test | Bin 0 -> 224 bytes .../languages/abap/operator_feature.test | Bin 0 -> 902 bytes .../abap/string-template_feature.test | Bin 0 -> 539 bytes .../tests/languages/abap/string_feature.test | Bin 0 -> 330 bytes .../actionscript/keyword_feature.test | Bin 0 -> 2895 bytes .../actionscript/operator_feature.test | Bin 0 -> 1107 bytes .../languages/ada/attr-name_feature.test | Bin 0 -> 275 bytes .../tests/languages/ada/boolean_feature.test | Bin 0 -> 201 bytes .../tests/languages/ada/char_feature.test | Bin 0 -> 186 bytes .../tests/languages/ada/comment_feature.test | Bin 0 -> 207 bytes .../tests/languages/ada/keyword_feature.test | Bin 0 -> 2409 bytes .../tests/languages/ada/number_feature.test | Bin 0 -> 368 bytes .../tests/languages/ada/operator_feature.test | Bin 0 -> 492 bytes .../tests/languages/ada/string_feature.test | Bin 0 -> 216 bytes .../tests/languages/ada/variable_feature.test | Bin 0 -> 212 bytes .../languages/apacheconf/comment_feature.test | Bin 0 -> 370 bytes .../apacheconf/directive-block_feature.test | Bin 0 -> 9557 bytes .../apacheconf/directive-flags_feature.test | Bin 0 -> 228 bytes .../apacheconf/directive-inline_feature.test | Bin 0 -> 35174 bytes .../languages/apacheconf/regex_feature.test | Bin 0 -> 223 bytes .../languages/apacheconf/string_feature.test | Bin 0 -> 370 bytes .../apacheconf/variable_feature.test | Bin 0 -> 266 bytes .../languages/apl/assignment_feature.test | Bin 0 -> 239 bytes .../tests/languages/apl/comment_feature.test | Bin 0 -> 272 bytes .../tests/languages/apl/constant_feature.test | Bin 0 -> 278 bytes .../tests/languages/apl/dfn_feature.test | Bin 0 -> 442 bytes .../apl/dyadic-operator_feature.test | Bin 0 -> 406 bytes .../tests/languages/apl/function_feature.test | Bin 0 -> 1668 bytes .../apl/monadic-operator_feature.test | Bin 0 -> 443 bytes .../tests/languages/apl/number_feature.test | Bin 0 -> 420 bytes .../languages/apl/statement_feature.test | Bin 0 -> 209 bytes .../tests/languages/apl/string_feature.test | Bin 0 -> 240 bytes .../apl/system-function_feature.test | Bin 0 -> 309 bytes .../languages/applescript/class_feature.test | Bin 0 -> 1955 bytes .../applescript/comment_feature.test | Bin 0 -> 405 bytes .../applescript/keyword_feature.test | Bin 0 -> 2742 bytes .../languages/applescript/number_feature.test | Bin 0 -> 258 bytes .../applescript/operator_feature.test | Bin 0 -> 2536 bytes .../languages/applescript/string_feature.test | Bin 0 -> 206 bytes .../tests/languages/arff/comment_feature.test | Bin 0 -> 285 bytes .../tests/languages/arff/keyword_feature.test | Bin 0 -> 285 bytes .../tests/languages/arff/number_feature.test | Bin 0 -> 192 bytes .../tests/languages/arff/string_feature.test | Bin 0 -> 294 bytes .../asciidoc/admonition_feature.test | Bin 0 -> 460 bytes .../asciidoc/attribute-entry_feature.test | Bin 0 -> 1006 bytes .../asciidoc/attributes_feature.test | Bin 0 -> 9311 bytes .../languages/asciidoc/callout_feature.test | Bin 0 -> 608 bytes .../asciidoc/comment-block_feature.test | Bin 0 -> 283 bytes .../languages/asciidoc/comment_feature.test | Bin 0 -> 601 bytes .../languages/asciidoc/entity_feature.js | 4 + .../languages/asciidoc/entity_feature.test | Bin 0 -> 916 bytes .../tests/languages/asciidoc/hr_feature.test | Bin 0 -> 195 bytes .../asciidoc/indented-block_feature.test | Bin 0 -> 599 bytes .../languages/asciidoc/inline_feature.test | Bin 0 -> 11872 bytes .../asciidoc/line-continuation_feature.test | Bin 0 -> 319 bytes .../asciidoc/list-label_feature.test | Bin 0 -> 1240 bytes .../asciidoc/list-punctuation_feature.test | Bin 0 -> 1673 bytes .../asciidoc/literal-block_feature.test | Bin 0 -> 959 bytes .../languages/asciidoc/macro_feature.test | Bin 0 -> 5621 bytes .../asciidoc/other-block_feature.test | Bin 0 -> 829 bytes .../asciidoc/page-break_feature.test | Bin 0 -> 226 bytes .../asciidoc/passthrough-block_feature.test | Bin 0 -> 633 bytes .../asciidoc/replacement_feature.test | Bin 0 -> 1040 bytes .../languages/asciidoc/table_feature.test | Bin 0 -> 1778 bytes .../languages/asciidoc/title_feature.test | Bin 0 -> 1135 bytes .../languages/asm6502/comment_feature.test | Bin 0 -> 146 bytes .../languages/asm6502/directive_feature.test | Bin 0 -> 134 bytes .../languages/asm6502/number_feature.test | Bin 0 -> 263 bytes .../languages/asm6502/opcode_feature.test | Bin 0 -> 201 bytes .../languages/asm6502/register_feature.test | Bin 0 -> 214 bytes .../languages/asm6502/string_feature.test | Bin 0 -> 160 bytes .../languages/aspnet/comment_feature.test | Bin 0 -> 292 bytes .../aspnet/page-directive_feature.test | Bin 0 -> 2105 bytes .../languages/autohotkey/boolean_feature.test | Bin 0 -> 200 bytes .../languages/autohotkey/builtin_feature.test | Bin 0 -> 2644 bytes .../languages/autohotkey/comment_feature.test | Bin 0 -> 201 bytes .../autohotkey/constant_feature.test | Bin 0 -> 6174 bytes .../autohotkey/function_feature.test | Bin 0 -> 256 bytes .../autohotkey/important_feature.test | Bin 0 -> 1602 bytes .../languages/autohotkey/keyword_feature.test | Bin 0 -> 9397 bytes .../languages/autohotkey/number_feature.test | Bin 0 -> 326 bytes .../autohotkey/operator_feature.test | Bin 0 -> 1153 bytes .../autohotkey/selector_feature.test | Bin 0 -> 8038 bytes .../languages/autohotkey/string_feature.test | Bin 0 -> 242 bytes .../languages/autohotkey/symbol_feature.test | Bin 0 -> 5662 bytes .../languages/autohotkey/tag_feature.test | Bin 0 -> 250 bytes .../autohotkey/variable_feature.test | Bin 0 -> 214 bytes .../languages/autoit/boolean_feature.test | Bin 0 -> 201 bytes .../languages/autoit/comment_feature.test | Bin 0 -> 689 bytes .../languages/autoit/directive_feature.test | Bin 0 -> 294 bytes .../languages/autoit/function_feature.test | Bin 0 -> 386 bytes .../languages/autoit/keyword_feature.test | Bin 0 -> 1312 bytes .../languages/autoit/number_feature.test | Bin 0 -> 328 bytes .../languages/autoit/operator_feature.test | Bin 0 -> 609 bytes .../languages/autoit/string_feature.test | Bin 0 -> 652 bytes .../tests/languages/autoit/url_feature.test | Bin 0 -> 298 bytes .../languages/autoit/variable_feature.test | Bin 0 -> 343 bytes .../bash/arithmetic_environment_feature.test | Bin 0 -> 924 bytes .../bash/command_substitution_feature.test | Bin 0 -> 752 bytes .../tests/languages/bash/comment_feature.test | Bin 0 -> 201 bytes .../languages/bash/function_feature.test | Bin 0 -> 7994 bytes .../tests/languages/bash/keyword_feature.test | Bin 0 -> 763 bytes .../tests/languages/bash/shebang_feature.test | Bin 0 -> 183 bytes .../tests/languages/bash/string_feature.test | Bin 0 -> 1300 bytes .../languages/bash/variable_feature.test | Bin 0 -> 240 bytes .../languages/basic/comment_feature.test | Bin 0 -> 240 bytes .../languages/basic/function_feature.test | Bin 0 -> 4922 bytes .../languages/basic/keyword_feature.test | Bin 0 -> 3307 bytes .../tests/languages/basic/number_feature.test | Bin 0 -> 290 bytes .../languages/basic/operator_feature.test | Bin 0 -> 566 bytes .../tests/languages/basic/string_feature.test | Bin 0 -> 210 bytes .../languages/batch/command_feature.test | Bin 0 -> 1992 bytes .../languages/batch/comment_feature.test | Bin 0 -> 295 bytes .../tests/languages/batch/label_feature.test | Bin 0 -> 201 bytes .../tests/languages/bison/c_feature.test | Bin 0 -> 1537 bytes .../languages/bison/comment_feature.test | Bin 0 -> 404 bytes .../languages/bison/keyword_feature.test | Bin 0 -> 373 bytes .../tests/languages/bison/number_feature.test | Bin 0 -> 224 bytes .../languages/bison/property_feature.test | Bin 0 -> 384 bytes .../tests/languages/bison/string_feature.test | Bin 0 -> 486 bytes .../languages/brainfuck/all_feature.test | Bin 0 -> 380 bytes .../tests/languages/bro/builtin_feature.test | Bin 0 -> 478 bytes .../tests/languages/bro/comment_feature.test | Bin 0 -> 344 bytes .../tests/languages/bro/function_feature.test | Bin 0 -> 524 bytes .../tests/languages/bro/keyword_feature.test | Bin 0 -> 1263 bytes .../tests/languages/bro/string_feature.test | Bin 0 -> 386 bytes .../tests/languages/bro/variable_feature.test | Bin 0 -> 577 bytes .../tests/languages/c+pure/c_inclusion.test | Bin 0 -> 543 bytes .../tests/languages/c/constant_feature.test | Bin 0 -> 656 bytes .../tests/languages/c/keyword_feature.test | Bin 0 -> 1533 bytes .../tests/languages/c/macro_feature.test | Bin 0 -> 1127 bytes .../tests/languages/c/number_feature.test | Bin 0 -> 544 bytes .../tests/languages/c/operator_feature.test | Bin 0 -> 1068 bytes .../tests/languages/cil/asm_reference.test | Bin 0 -> 189 bytes .../tests/languages/cil/boolean.test | Bin 0 -> 186 bytes .../tests/languages/cil/comment.test | Bin 0 -> 191 bytes .../tests/languages/cil/instructions.test | Bin 0 -> 7817 bytes .../tests/languages/cil/keywords.test | Bin 0 -> 2787 bytes .../tests/languages/cil/strings.test | Bin 0 -> 184 bytes .../languages/clike/boolean_feature.test | Bin 0 -> 246 bytes .../languages/clike/class-name_feature.test | Bin 0 -> 784 bytes .../languages/clike/comment_feature.test | Bin 0 -> 287 bytes .../languages/clike/function_feature.test | Bin 0 -> 388 bytes .../tests/languages/clike/issue1340.test | Bin 0 -> 242 bytes .../languages/clike/keyword_feature.test | Bin 0 -> 1044 bytes .../tests/languages/clike/number_feature.test | Bin 0 -> 388 bytes .../languages/clike/operator_feature.test | Bin 0 -> 692 bytes .../tests/languages/clike/string_feature.test | Bin 0 -> 638 bytes .../languages/clojure/boolean_feature.test | Bin 0 -> 214 bytes .../languages/clojure/comment_feature.test | Bin 0 -> 257 bytes .../languages/clojure/keyword_feature.test | Bin 0 -> 7093 bytes .../clojure/operator_and_punctuation.test | Bin 0 -> 399 bytes .../languages/clojure/string_feature.test | Bin 0 -> 198 bytes .../coffeescript_inclusion.test | Bin 0 -> 515 bytes .../coffeescript_inclusion.test | Bin 0 -> 322 bytes .../coffeescript/block-regex_feature.test | Bin 0 -> 618 bytes .../coffeescript/class-member_feature.test | Bin 0 -> 224 bytes .../coffeescript/comment_feature.test | Bin 0 -> 309 bytes .../inline-javascript_feature.test | Bin 0 -> 429 bytes .../coffeescript/keyword_feature.test | Bin 0 -> 1663 bytes .../coffeescript/property_feature.test | Bin 0 -> 265 bytes .../coffeescript/string_feature.test | Bin 0 -> 1321 bytes .../languages/cpp+pure/cpp_inclusion.test | Bin 0 -> 306 bytes .../tests/languages/cpp/boolean_feature.test | Bin 0 -> 201 bytes .../languages/cpp/class-name_feature.test | Bin 0 -> 268 bytes .../tests/languages/cpp/keyword_feature.test | Bin 0 -> 2699 bytes .../tests/languages/cpp/operator_feature.test | Bin 0 -> 1299 bytes .../languages/cpp/raw_string_feature.test | Bin 0 -> 370 bytes .../languages/crystal/attribute_feature.test | Bin 0 -> 462 bytes .../languages/crystal/expansion_feature.test | Bin 0 -> 648 bytes .../languages/crystal/keyword_feature.test | Bin 0 -> 1886 bytes .../languages/crystal/number_feature.test | Bin 0 -> 389 bytes .../csharp+aspnet/directive_feature.test | Bin 0 -> 1586 bytes .../languages/csharp/class-name_feature.test | Bin 0 -> 709 bytes .../languages/csharp/generic_feature.test | Bin 0 -> 717 bytes .../tests/languages/csharp/issue1091.test | Bin 0 -> 245 bytes .../tests/languages/csharp/issue1365.test | Bin 0 -> 899 bytes .../tests/languages/csharp/issue1371.test | Bin 0 -> 3408 bytes .../tests/languages/csharp/issue806.test | Bin 0 -> 229 bytes .../languages/csharp/keyword_feature.test | Bin 0 -> 3400 bytes .../languages/csharp/number_feature.test | Bin 0 -> 286 bytes .../languages/csharp/operator_feature.test | Bin 0 -> 1048 bytes .../csharp/preprocessor_feature.test | Bin 0 -> 931 bytes .../languages/csharp/punctuation_feature.test | Bin 0 -> 468 bytes .../languages/csharp/string_feature.test | Bin 0 -> 506 bytes .../csp/directive_no_value_feature.test | Bin 0 -> 254 bytes ...ective_with_source_expression_feature.test | Bin 0 -> 255 bytes .../tests/languages/csp/safe_feature.test | Bin 0 -> 547 bytes .../tests/languages/csp/unsafe_feature.test | Bin 0 -> 391 bytes .../css!+css-extras/entity_feature.test | Bin 0 -> 203 bytes .../css!+css-extras/hexcode_feature.test | Bin 0 -> 279 bytes .../css!+css-extras/number_feature.test | Bin 0 -> 256 bytes .../css!+css-extras/operator_feature.test | Bin 0 -> 1472 bytes .../css!+css-extras/selector_feature.test | Bin 0 -> 1024 bytes .../css!+css-extras/unit_feature.test | Bin 0 -> 400 bytes .../css!+css-extras/variable_feature.test | Bin 0 -> 1049 bytes .../languages/css+haml/css+haml_usage.test | Bin 0 -> 538 bytes .../languages/css+http/css_inclusion.test | Bin 0 -> 461 bytes .../languages/css+textile/css_inclusion.test | Bin 0 -> 3711 bytes .../tests/languages/css/atrule_feature.test | Bin 0 -> 966 bytes .../tests/languages/css/comment_feature.test | Bin 0 -> 309 bytes .../tests/languages/css/function_feature.test | Bin 0 -> 816 bytes .../languages/css/important_feature.test | Bin 0 -> 605 bytes .../tests/languages/css/property_feature.test | Bin 0 -> 585 bytes .../tests/languages/css/selector_feature.test | Bin 0 -> 495 bytes .../tests/languages/css/string_feature.test | Bin 0 -> 438 bytes .../tests/languages/css/url_feature.test | Bin 0 -> 436 bytes .../tests/languages/d/comment_feature.test | Bin 0 -> 576 bytes .../tests/languages/d/keyword_feature.test | Bin 0 -> 4293 bytes .../tests/languages/d/number_feature.test | Bin 0 -> 788 bytes .../tests/languages/d/operator_feature.test | Bin 0 -> 1446 bytes .../tests/languages/d/property_feature.test | Bin 0 -> 420 bytes .../tests/languages/d/register_feature.test | Bin 0 -> 3853 bytes .../tests/languages/d/string_feature.test | Bin 0 -> 1007 bytes .../languages/d/token-string_feature.test | Bin 0 -> 232 bytes .../tests/languages/dart/keyword_feature.test | Bin 0 -> 1755 bytes .../languages/dart/metadata_feature.test | Bin 0 -> 429 bytes .../languages/dart/operator_feature.test | Bin 0 -> 1059 bytes .../tests/languages/dart/string_feature.test | Bin 0 -> 621 bytes .../tests/languages/diff/coord_feature.test | Bin 0 -> 307 bytes .../tests/languages/diff/diff_feature.test | Bin 0 -> 418 bytes .../languages/django/comment_feature.test | Bin 0 -> 336 bytes .../languages/django/property_feature.test | Bin 0 -> 1177 bytes .../languages/docker/comment_feature.test | Bin 0 -> 201 bytes .../languages/docker/keyword_feature.test | Bin 0 -> 1433 bytes .../languages/docker/string_feature.test | Bin 0 -> 367 bytes .../languages/eiffel/boolean_feature.test | Bin 0 -> 201 bytes .../tests/languages/eiffel/char_feature.test | Bin 0 -> 222 bytes .../languages/eiffel/class-name_feature.test | Bin 0 -> 240 bytes .../languages/eiffel/comment_feature.test | Bin 0 -> 254 bytes .../languages/eiffel/keyword_feature.test | Bin 0 -> 1909 bytes .../languages/eiffel/number_feature.test | Bin 0 -> 545 bytes .../languages/eiffel/operator_feature.test | Bin 0 -> 539 bytes .../languages/eiffel/string_feature.test | Bin 0 -> 609 bytes .../tests/languages/elixir/atom_feature.test | Bin 0 -> 232 bytes .../languages/elixir/attr-name_feature.test | Bin 0 -> 573 bytes .../languages/elixir/attribute_feature.test | Bin 0 -> 375 bytes .../languages/elixir/boolean_feature.test | Bin 0 -> 236 bytes .../languages/elixir/capture_feature.test | Bin 0 -> 770 bytes .../languages/elixir/comment_feature.test | Bin 0 -> 262 bytes .../tests/languages/elixir/issue1392.test | Bin 0 -> 318 bytes .../tests/languages/elixir/issue775.test | Bin 0 -> 336 bytes .../languages/elixir/keyword_feature.test | Bin 0 -> 996 bytes .../languages/elixir/number_feature.test | Bin 0 -> 491 bytes .../languages/elixir/operator_feature.test | Bin 0 -> 918 bytes .../tests/languages/elixir/regex_feature.test | Bin 0 -> 629 bytes .../languages/elixir/string_feature.test | Bin 0 -> 1828 bytes .../tests/languages/elm/builtin_feature.test | Bin 0 -> 1273 bytes .../tests/languages/elm/char_feature.test | Bin 0 -> 276 bytes .../tests/languages/elm/comment_feature.test | Bin 0 -> 252 bytes .../tests/languages/elm/constant_feature.test | Bin 0 -> 254 bytes .../languages/elm/hvariable_feature.test | Bin 0 -> 258 bytes .../elm/import_statement_feature.test | Bin 0 -> 964 bytes .../tests/languages/elm/keyword_feature.test | Bin 0 -> 530 bytes .../tests/languages/elm/number_feature.test | Bin 0 -> 352 bytes .../tests/languages/elm/operator_feature.test | Bin 0 -> 956 bytes .../tests/languages/elm/string_feature.test | Bin 0 -> 404 bytes .../tests/languages/erb/erb_feature.test | Bin 0 -> 709 bytes .../languages/erb/erb_in_markup_feature.test | Bin 0 -> 940 bytes .../tests/languages/erlang/atom_feature.test | Bin 0 -> 299 bytes .../languages/erlang/boolean_feature.test | Bin 0 -> 201 bytes .../languages/erlang/comment_feature.test | Bin 0 -> 180 bytes .../languages/erlang/function_feature.test | Bin 0 -> 416 bytes .../languages/erlang/keyword_feature.test | Bin 0 -> 410 bytes .../languages/erlang/number_feature.test | Bin 0 -> 383 bytes .../languages/erlang/operator_feature.test | Bin 0 -> 920 bytes .../languages/erlang/string_feature.test | Bin 0 -> 206 bytes .../languages/erlang/variable_feature.test | Bin 0 -> 262 bytes .../flow/flow-punctuation_feature.test | Bin 0 -> 289 bytes .../flow/function-variable_feature.test | Bin 0 -> 690 bytes .../tests/languages/flow/keyword_feature.test | Bin 0 -> 656 bytes .../tests/languages/flow/type_feature.test | Bin 0 -> 460 bytes .../fortran+pure/fortran_inclusion.test | Bin 0 -> 327 bytes .../languages/fortran/boolean_feature.test | Bin 0 -> 208 bytes .../languages/fortran/comment_feature.test | Bin 0 -> 306 bytes .../languages/fortran/keyword_feature.test | Bin 0 -> 3315 bytes .../languages/fortran/number_feature.test | Bin 0 -> 702 bytes .../languages/fortran/operator_feature.test | Bin 0 -> 864 bytes .../languages/fortran/string_feature.test | Bin 0 -> 601 bytes .../languages/fsharp/annotation_feature.test | Bin 0 -> 670 bytes .../languages/fsharp/class-name_feature.test | Bin 0 -> 3602 bytes .../languages/fsharp/comment_feature.test | Bin 0 -> 287 bytes .../computation-expression_feature.test | Bin 0 -> 503 bytes .../tests/languages/fsharp/issue1480.test | Bin 0 -> 837 bytes .../languages/fsharp/keyword_feature.test | Bin 0 -> 3345 bytes .../languages/fsharp/number_feature.test | Bin 0 -> 1008 bytes .../languages/fsharp/operator_feature.test | Bin 0 -> 2059 bytes .../fsharp/preprocessor_feature.test | Bin 0 -> 516 bytes .../languages/fsharp/string_feature.test | Bin 0 -> 768 bytes .../languages/gcode/checksum_feature.test | Bin 0 -> 185 bytes .../languages/gcode/comment_feature.test | Bin 0 -> 347 bytes .../languages/gcode/keyword_feature.test | Bin 0 -> 304 bytes .../languages/gcode/property_feature.test | Bin 0 -> 338 bytes .../tests/languages/gcode/string_feature.test | Bin 0 -> 296 bytes .../tests/languages/gedcom/level_feature.test | Bin 0 -> 340 bytes .../languages/gedcom/line-value_feature.test | Bin 0 -> 839 bytes .../languages/gedcom/pointer_feature.test | Bin 0 -> 500 bytes .../tests/languages/gedcom/tag_feature.test | Bin 0 -> 410 bytes .../languages/gherkin/atrule_feature.test | Bin 0 -> 24704 bytes .../languages/gherkin/comment_feature.test | Bin 0 -> 241 bytes .../languages/gherkin/feature_feature.test | Bin 0 -> 9142 bytes .../languages/gherkin/outline_feature.test | Bin 0 -> 185 bytes .../languages/gherkin/pystring_feature.test | Bin 0 -> 278 bytes .../languages/gherkin/scenario_feature.test | Bin 0 -> 28671 bytes .../languages/gherkin/string_feature.test | Bin 0 -> 491 bytes .../languages/gherkin/table_feature.test | Bin 0 -> 950 bytes .../tests/languages/gherkin/tag_feature.test | Bin 0 -> 291 bytes .../tests/languages/git/command_feature.test | Bin 0 -> 430 bytes .../tests/languages/git/comment_feature.test | Bin 0 -> 415 bytes .../languages/git/commit_sha1_feature.test | Bin 0 -> 501 bytes .../tests/languages/git/coord_feature.test | Bin 0 -> 259 bytes .../tests/languages/git/diff_feature.test | Bin 0 -> 957 bytes .../tests/languages/git/string_feature.test | Bin 0 -> 284 bytes .../tests/languages/glsl/comment_feature.test | Bin 0 -> 327 bytes .../tests/languages/glsl/keyword_feature.test | Bin 0 -> 7520 bytes .../tests/languages/glsl/number_feature.test | Bin 0 -> 462 bytes .../languages/glsl/preprocessor_feature.test | Bin 0 -> 658 bytes .../tests/languages/go/boolean_feature.test | Bin 0 -> 290 bytes .../tests/languages/go/builtin_feature.test | Bin 0 -> 1250 bytes .../tests/languages/go/keyword_feature.test | Bin 0 -> 927 bytes .../tests/languages/go/number_feature.test | Bin 0 -> 771 bytes .../tests/languages/go/operator_feature.test | Bin 0 -> 1008 bytes .../tests/languages/go/string_feature.test | Bin 0 -> 617 bytes .../languages/graphql/attr-name_feature.test | Bin 0 -> 496 bytes .../languages/graphql/boolean_feature.test | Bin 0 -> 201 bytes .../languages/graphql/comment_feature.test | Bin 0 -> 201 bytes .../languages/graphql/directive_feature.test | Bin 0 -> 214 bytes .../languages/graphql/keyword_feature.test | Bin 0 -> 406 bytes .../languages/graphql/number_feature.test | Bin 0 -> 332 bytes .../languages/graphql/string_feature.test | Bin 0 -> 262 bytes .../languages/graphql/variable_feature.test | Bin 0 -> 214 bytes .../languages/groovy/annotation_feature.test | Bin 0 -> 368 bytes .../tests/languages/groovy/issue1049.js | 8 + .../languages/groovy/keyword_feature.test | Bin 0 -> 1958 bytes .../languages/groovy/number_feature.test | Bin 0 -> 824 bytes .../languages/groovy/operator_feature.test | Bin 0 -> 1410 bytes .../languages/groovy/shebang_feature.test | Bin 0 -> 248 bytes .../languages/groovy/spock-block_feature.test | Bin 0 -> 443 bytes .../groovy/string-interpolation_feature.js | 28 + .../languages/groovy/string_feature.test | Bin 0 -> 1062 bytes .../tests/languages/haml/code_feature.test | Bin 0 -> 453 bytes .../tests/languages/haml/doctype_feature.test | Bin 0 -> 242 bytes .../languages/haml/interpolation_feature.test | Bin 0 -> 384 bytes .../haml/multiline-code_feature.test | Bin 0 -> 1988 bytes .../haml/multiline-comment_feature.test | Bin 0 -> 747 bytes .../tests/languages/haml/tag_feature.test | Bin 0 -> 3134 bytes .../handlebars+pug/handlebars_inclusion.test | Bin 0 -> 284 bytes .../languages/handlebars/block_feature.test | Bin 0 -> 696 bytes .../languages/handlebars/boolean_feature.test | Bin 0 -> 355 bytes .../languages/handlebars/comment_feature.test | Bin 0 -> 437 bytes .../handlebars_in_markup_feature.test | Bin 0 -> 1071 bytes .../languages/handlebars/number_feature.test | Bin 0 -> 691 bytes .../languages/handlebars/string_feature.test | Bin 0 -> 559 bytes .../languages/haskell/builtin_feature.test | Bin 0 -> 7150 bytes .../tests/languages/haskell/char_feature.test | Bin 0 -> 249 bytes .../languages/haskell/comment_feature.test | Bin 0 -> 252 bytes .../languages/haskell/constant_feature.test | Bin 0 -> 254 bytes .../languages/haskell/hvariable_feature.test | Bin 0 -> 258 bytes .../haskell/import_statement_feature.test | Bin 0 -> 662 bytes .../languages/haskell/keyword_feature.test | Bin 0 -> 684 bytes .../languages/haskell/number_feature.test | Bin 0 -> 385 bytes .../languages/haskell/operator_feature.test | Bin 0 -> 1069 bytes .../languages/haskell/string_feature.test | Bin 0 -> 342 bytes .../tests/languages/haxe/keyword_feature.test | Bin 0 -> 1459 bytes .../languages/haxe/metadata_feature.test | Bin 0 -> 345 bytes .../languages/haxe/operator_feature.test | Bin 0 -> 723 bytes .../languages/haxe/preprocessor_feature.test | Bin 0 -> 298 bytes .../tests/languages/haxe/regex_feature.test | Bin 0 -> 344 bytes .../languages/haxe/reification_feature.test | Bin 0 -> 308 bytes .../tests/languages/haxe/string_feature.test | Bin 0 -> 642 bytes .../languages/hpkp/safe_maxage_feature.test | Bin 0 -> 232 bytes .../languages/hpkp/sha256_pin_feature.test | Bin 0 -> 296 bytes .../languages/hpkp/unsafe_maxage_feature.test | Bin 0 -> 227 bytes .../hsts/include_subdomains_feature.test | Bin 0 -> 233 bytes .../tests/languages/hsts/preload_feature.test | Bin 0 -> 203 bytes .../languages/hsts/safe_maxage_feature.test | Bin 0 -> 232 bytes .../languages/hsts/unsafe_maxage_feature.test | Bin 0 -> 227 bytes .../languages/http/header-name_feature.test | Bin 0 -> 662 bytes .../languages/http/request-line_feature.test | Bin 0 -> 1311 bytes .../http/response-status_feature.test | Bin 0 -> 554 bytes .../languages/ichigojam/comment_feature.test | Bin 0 -> 289 bytes .../languages/ichigojam/function_feature.test | Bin 0 -> 841 bytes .../languages/ichigojam/keyword_feature.test | Bin 0 -> 1615 bytes .../languages/ichigojam/label_feature.test | Bin 0 -> 206 bytes .../languages/ichigojam/number_feature.test | Bin 0 -> 378 bytes .../languages/ichigojam/operator_feature.test | Bin 0 -> 598 bytes .../languages/ichigojam/string_feature.test | Bin 0 -> 210 bytes .../icon/builtin-keyword_feature.test | Bin 0 -> 1890 bytes .../tests/languages/icon/comment_feature.test | Bin 0 -> 201 bytes .../languages/icon/directive_feature.test | Bin 0 -> 372 bytes .../languages/icon/function_feature.test | Bin 0 -> 406 bytes .../tests/languages/icon/keyword_feature.test | Bin 0 -> 1030 bytes .../tests/languages/icon/number_feature.test | Bin 0 -> 476 bytes .../languages/icon/operator_feature.test | Bin 0 -> 1881 bytes .../tests/languages/icon/string_feature.test | Bin 0 -> 347 bytes .../languages/inform7/comment_feature.test | Bin 0 -> 233 bytes .../languages/inform7/keyword_feature.test | Bin 0 -> 1509 bytes .../languages/inform7/number_feature.test | Bin 0 -> 572 bytes .../languages/inform7/position_feature.test | Bin 0 -> 1308 bytes .../languages/inform7/property_feature.test | Bin 0 -> 3063 bytes .../languages/inform7/string_feature.test | Bin 0 -> 1425 bytes .../languages/inform7/title_feature.test | Bin 0 -> 451 bytes .../languages/inform7/variable_feature.test | Bin 0 -> 2188 bytes .../tests/languages/inform7/verb_feature.test | Bin 0 -> 3406 bytes .../tests/languages/ini/comment_feature.test | Bin 0 -> 201 bytes .../languages/ini/key_value_feature.test | Bin 0 -> 342 bytes .../tests/languages/ini/selector_feature.test | Bin 0 -> 221 bytes .../tests/languages/io/comment_feature.test | Bin 0 -> 314 bytes .../tests/languages/io/number_feature.test | Bin 0 -> 321 bytes .../tests/languages/io/operator_feature.test | Bin 0 -> 1158 bytes .../tests/languages/io/string_feature.test | Bin 0 -> 484 bytes .../tests/languages/j/adverb_feature.test | Bin 0 -> 380 bytes .../tests/languages/j/comment_feature.test | Bin 0 -> 211 bytes .../languages/j/conjunction_feature.test | Bin 0 -> 892 bytes .../tests/languages/j/keyword_feature.test | Bin 0 -> 1240 bytes .../tests/languages/j/number_feature.test | Bin 0 -> 1227 bytes .../tests/languages/j/string_feature.test | Bin 0 -> 204 bytes .../tests/languages/j/verb_feature.test | Bin 0 -> 1971 bytes .../languages/java/function_featrue.test | Bin 0 -> 556 bytes .../languages/java/generics_feature.test | Bin 0 -> 1451 bytes .../tests/languages/java/issue1351.test | Bin 0 -> 682 bytes .../tests/languages/java/keyword_feature.test | Bin 0 -> 2045 bytes .../tests/languages/java/module_feature.test | Bin 0 -> 2906 bytes .../tests/languages/java/number_feature.test | Bin 0 -> 836 bytes .../languages/java/operator_feature.test | Bin 0 -> 1044 bytes .../tests/languages/java/package_feature.test | Bin 0 -> 1354 bytes .../javascript+haml/javascript_inclusion.test | Bin 0 -> 466 bytes .../javascript+http/javascript_inclusion.test | Bin 0 -> 419 bytes .../languages/javascript/boolean_feature.test | Bin 0 -> 201 bytes .../javascript/class-method_feature.test | Bin 0 -> 1066 bytes .../javascript/constant_feature.test | Bin 0 -> 399 bytes .../javascript/function-variable_feature.test | Bin 0 -> 2105 bytes .../javascript/function_feature.test | Bin 0 -> 987 bytes .../tests/languages/javascript/issue1337.test | Bin 0 -> 291 bytes .../tests/languages/javascript/issue1340.test | Bin 0 -> 369 bytes .../tests/languages/javascript/issue1397.test | Bin 0 -> 426 bytes .../tests/languages/javascript/issue1526.test | Bin 0 -> 813 bytes .../languages/javascript/keyword_feature.test | Bin 0 -> 2806 bytes .../languages/javascript/number_feature.test | Bin 0 -> 650 bytes .../javascript/operator_feature.test | Bin 0 -> 1138 bytes .../languages/javascript/regex_feature.test | Bin 0 -> 881 bytes .../javascript/supposed-classes_feature.test | Bin 0 -> 574 bytes .../javascript/supposed-function_feature.test | Bin 0 -> 781 bytes .../javascript/template-string_feature.test | Bin 0 -> 1131 bytes .../javascript/try-catch_feature.test | Bin 0 -> 453 bytes .../javastacktrace/more_feature.test | Bin 0 -> 393 bytes .../javastacktrace/stack-frame_feature.test | Bin 0 -> 1484 bytes .../javastacktrace/summary_feature.test | Bin 0 -> 3566 bytes .../languages/jolie/deployment_features.test | Bin 0 -> 1191 bytes .../languages/jolie/keyword_feature.test | Bin 0 -> 2384 bytes .../tests/languages/jolie/number_feature.test | Bin 0 -> 297 bytes .../languages/jolie/operator_feature.test | Bin 0 -> 786 bytes .../json+http/json-suffix_inclusion.test | Bin 0 -> 449 bytes .../languages/json+http/json_inclusion.test | Bin 0 -> 417 bytes .../tests/languages/json/boolean_feature.test | Bin 0 -> 201 bytes .../tests/languages/json/comment_feature.test | Bin 0 -> 531 bytes .../tests/languages/json/null_feature.test | Bin 0 -> 163 bytes .../tests/languages/json/number_feature.test | Bin 0 -> 420 bytes .../languages/json/operator_feature.test | Bin 0 -> 161 bytes .../languages/json/property_feature.test | Bin 0 -> 633 bytes .../languages/json/punctuation_feature.test | Bin 0 -> 407 bytes .../tests/languages/json/string_feature.test | Bin 0 -> 548 bytes .../tests/languages/jsx/issue1103.test | Bin 0 -> 565 bytes .../tests/languages/jsx/issue1235.test | Bin 0 -> 592 bytes .../tests/languages/jsx/issue1236.test | Bin 0 -> 511 bytes .../tests/languages/jsx/issue1294.test | Bin 0 -> 1416 bytes .../tests/languages/jsx/issue1335.test | Bin 0 -> 2728 bytes .../tests/languages/jsx/issue1342.test | Bin 0 -> 1090 bytes .../tests/languages/jsx/issue1356.test | Bin 0 -> 568 bytes .../tests/languages/jsx/issue1364.test | Bin 0 -> 498 bytes .../tests/languages/jsx/issue1408.test | Bin 0 -> 811 bytes .../tests/languages/jsx/issue1421.test | Bin 0 -> 1372 bytes .../languages/jsx/plain-text_feature.test | Bin 0 -> 991 bytes .../tests/languages/jsx/tag_feature.test | Bin 0 -> 1513 bytes .../languages/julia/boolean_feature.test | Bin 0 -> 201 bytes .../languages/julia/comment_feature.test | Bin 0 -> 201 bytes .../languages/julia/keyword_feature.test | Bin 0 -> 1204 bytes .../tests/languages/julia/number_feature.test | Bin 0 -> 551 bytes .../languages/julia/operator_feature.test | Bin 0 -> 1219 bytes .../tests/languages/julia/string_feature.test | Bin 0 -> 504 bytes .../languages/keyman/atrule_feature.test | Bin 0 -> 370 bytes .../tests/languages/keyman/bold_feature.test | Bin 0 -> 1676 bytes .../languages/keyman/comment_feature.test | Bin 0 -> 210 bytes .../languages/keyman/function_feature.test | Bin 0 -> 784 bytes .../languages/keyman/keyword_feature.test | Bin 0 -> 715 bytes .../languages/keyman/number_feature.test | Bin 0 -> 376 bytes .../languages/keyman/operator_feature.test | Bin 0 -> 282 bytes .../languages/keyman/string_feature.test | Bin 0 -> 284 bytes .../tests/languages/keyman/tag_feature.test | Bin 0 -> 320 bytes .../languages/kotlin/annotation_feature.test | Bin 0 -> 538 bytes .../languages/kotlin/function_feature.test | Bin 0 -> 426 bytes .../kotlin/interpolation_feature.test | Bin 0 -> 1038 bytes .../languages/kotlin/keyword_feature.test | Bin 0 -> 2201 bytes .../tests/languages/kotlin/label_feature.test | Bin 0 -> 288 bytes .../languages/kotlin/number_feature.test | Bin 0 -> 658 bytes .../languages/kotlin/operator_feature.test | Bin 0 -> 1045 bytes .../languages/kotlin/raw-string_feature.test | Bin 0 -> 343 bytes .../tests/languages/latex/cdata_feature.test | Bin 0 -> 719 bytes .../languages/latex/comment_feature.test | Bin 0 -> 201 bytes .../languages/latex/equation_feature.test | Bin 0 -> 3826 bytes .../languages/latex/headline_feature.test | Bin 0 -> 1382 bytes .../languages/latex/keyword_feature.test | Bin 0 -> 1035 bytes .../tests/languages/latex/url_feature.test | Bin 0 -> 265 bytes .../languages/less+haml/less_inclusion.test | Bin 0 -> 638 bytes .../languages/less+pug/less_inclusion.test | Bin 0 -> 326 bytes .../tests/languages/less/atrule_feature.test | Bin 0 -> 469 bytes .../tests/languages/less/comment_feature.test | Bin 0 -> 312 bytes .../languages/less/operator_feature.test | Bin 0 -> 235 bytes .../languages/less/property_feature.test | Bin 0 -> 487 bytes .../languages/less/selector_feature.test | Bin 0 -> 539 bytes .../languages/liquid/function_feature.test | Bin 0 -> 1991 bytes .../languages/liquid/keyword_feature.test | Bin 0 -> 985 bytes .../languages/liquid/number_feature.test | Bin 0 -> 470 bytes .../languages/liquid/operator_feature.test | Bin 0 -> 969 bytes .../tests/languages/lisp/boolean_feature.test | Bin 0 -> 444 bytes .../tests/languages/lisp/car_feature.test | Bin 0 -> 282 bytes .../tests/languages/lisp/comment_feature.test | Bin 0 -> 174 bytes .../tests/languages/lisp/declare_feature.test | Bin 0 -> 405 bytes .../tests/languages/lisp/defun_feature.test | Bin 0 -> 2491 bytes .../tests/languages/lisp/defvar_feature.test | Bin 0 -> 1099 bytes .../tests/languages/lisp/heading_feature.test | Bin 0 -> 176 bytes .../languages/lisp/interactive_feature.test | Bin 0 -> 441 bytes .../tests/languages/lisp/keyword_feature.test | Bin 0 -> 2597 bytes .../tests/languages/lisp/lambda-feature.test | Bin 0 -> 547 bytes .../languages/lisp/lisp-property_feature.test | Bin 0 -> 239 bytes .../tests/languages/lisp/number_boolean.test | Bin 0 -> 793 bytes .../languages/lisp/punctuation_feature.test | Bin 0 -> 323 bytes .../languages/lisp/quoted-symbol_feature.test | Bin 0 -> 275 bytes .../tests/languages/lisp/splice_feature.test | Bin 0 -> 253 bytes .../tests/languages/lisp/string_feature.test | Bin 0 -> 505 bytes .../livescript/argument_feature.test | Bin 0 -> 248 bytes .../languages/livescript/boolean_feature.test | Bin 0 -> 316 bytes .../languages/livescript/comment_feature.test | Bin 0 -> 281 bytes .../livescript/identifier_feature.test | Bin 0 -> 456 bytes .../livescript/interpolated-string.test | Bin 0 -> 1393 bytes .../livescript/keyword-operator_feature.test | Bin 0 -> 1064 bytes .../languages/livescript/keyword_feature.test | Bin 0 -> 1360 bytes .../languages/livescript/number_feature.test | Bin 0 -> 486 bytes .../livescript/operator_feature.test | Bin 0 -> 1763 bytes .../languages/livescript/regex_feature.test | Bin 0 -> 418 bytes .../languages/livescript/string_feature.test | Bin 0 -> 546 bytes .../languages/lolcode/boolean_feature.test | Bin 0 -> 197 bytes .../languages/lolcode/comment_feature.test | Bin 0 -> 269 bytes .../languages/lolcode/function_feature.test | Bin 0 -> 333 bytes .../languages/lolcode/keyword_feature.test | Bin 0 -> 1498 bytes .../languages/lolcode/label_feature.test | Bin 0 -> 280 bytes .../languages/lolcode/number_feature.test | Bin 0 -> 198 bytes .../languages/lolcode/operator_feature.test | Bin 0 -> 698 bytes .../languages/lolcode/string_feature.test | Bin 0 -> 608 bytes .../languages/lolcode/symbol_feature.test | Bin 0 -> 673 bytes .../languages/lolcode/variable_feature.test | Bin 0 -> 168 bytes .../tests/languages/lua/comment_feature.test | Bin 0 -> 422 bytes .../tests/languages/lua/function_feature.test | Bin 0 -> 468 bytes .../tests/languages/lua/keyword_feature.test | Bin 0 -> 783 bytes .../tests/languages/lua/number_feature.test | Bin 0 -> 558 bytes .../tests/languages/lua/operator_feature.test | Bin 0 -> 623 bytes .../tests/languages/lua/string_feature.test | Bin 0 -> 635 bytes .../languages/makefile/builtin_feature.test | Bin 0 -> 362 bytes .../languages/makefile/comment_feature.test | Bin 0 -> 249 bytes .../languages/makefile/keyword_feature.test | Bin 0 -> 4019 bytes .../languages/makefile/operator_feature.test | Bin 0 -> 331 bytes .../languages/makefile/string_feature.test | Bin 0 -> 387 bytes .../languages/makefile/symbol_feature.test | Bin 0 -> 368 bytes .../languages/makefile/variable_feature.test | Bin 0 -> 390 bytes .../markdown+haml/markdown_inclusion.test | Bin 0 -> 638 bytes .../markdown+pug/markdown_inclusion.test | Bin 0 -> 301 bytes .../markdown/blockquote_feature.test | Bin 0 -> 272 bytes .../languages/markdown/bold_feature.test | Bin 0 -> 1300 bytes .../languages/markdown/code_feature.test | Bin 0 -> 675 bytes .../tests/languages/markdown/hr_feature.test | Bin 0 -> 211 bytes .../languages/markdown/italic_feature.test | Bin 0 -> 694 bytes .../languages/markdown/list_feature.test | Bin 0 -> 375 bytes .../languages/markdown/strike_feature.test | Bin 0 -> 1104 bytes .../languages/markdown/title_feature.test | Bin 0 -> 917 bytes .../markdown/url-reference_feature.test | Bin 0 -> 1296 bytes .../tests/languages/markdown/url_feature.test | Bin 0 -> 419 bytes .../markup!+css+javascript/issue1240.test | Bin 0 -> 692 bytes .../languages/markup!+css/css_inclusion.test | Bin 0 -> 1188 bytes .../javascript_inclusion.test | Bin 0 -> 983 bytes .../markup+actionscript/xml_feature.test | Bin 0 -> 1070 bytes .../markup+css+wiki/table-tag_feature.test | Bin 0 -> 3086 bytes .../languages/markup+haml/markup_feature.test | Bin 0 -> 244 bytes .../languages/markup+http/html_inclusion.test | Bin 0 -> 471 bytes .../markup+http/xml-suffix_inclusion.test | Bin 0 -> 546 bytes .../languages/markup+http/xml_inclusion.test | Bin 0 -> 496 bytes .../script_feature.test | Bin 0 -> 1047 bytes .../markup+php/php_in_markup_feature.test | Bin 0 -> 2322 bytes .../languages/markup+pug/markup_feature.test | Bin 0 -> 475 bytes .../markup+tt2/tt2_in_markup_feature.test | Bin 0 -> 1475 bytes .../tests/languages/markup/cdata_feature.test | Bin 0 -> 321 bytes .../languages/markup/comment_feature.test | Bin 0 -> 343 bytes .../languages/markup/doctype_feature.test | Bin 0 -> 600 bytes .../tests/languages/markup/entity_feature.js | 4 + .../languages/markup/entity_feature.test | Bin 0 -> 304 bytes .../tests/languages/markup/issue585.test | Bin 0 -> 1154 bytes .../tests/languages/markup/issue888.test | Bin 0 -> 348 bytes .../languages/markup/prolog_feature.test | Bin 0 -> 482 bytes .../markup/tag_attribute_feature.test | Bin 0 -> 1790 bytes .../tests/languages/markup/tag_feature.test | Bin 0 -> 1255 bytes .../languages/matlab/comment_feature.test | Bin 0 -> 367 bytes .../languages/matlab/function_feature.test | Bin 0 -> 296 bytes .../languages/matlab/keyword_feature.test | Bin 0 -> 715 bytes .../languages/matlab/number_feature.test | Bin 0 -> 384 bytes .../languages/matlab/operator_feature.test | Bin 0 -> 735 bytes .../languages/matlab/string_feature.test | Bin 0 -> 232 bytes .../tests/languages/mel/code_feature.test | Bin 0 -> 268 bytes .../tests/languages/mel/comment_feature.test | Bin 0 -> 205 bytes .../tests/languages/mel/flag_feature.test | Bin 0 -> 216 bytes .../tests/languages/mel/function_feature.test | Bin 0 -> 56864 bytes .../tests/languages/mel/keyword_feature.test | Bin 0 -> 720 bytes .../tests/languages/mel/number_feature.test | Bin 0 -> 236 bytes .../tests/languages/mel/operator_feature.test | Bin 0 -> 664 bytes .../tests/languages/mel/string_feature.test | Bin 0 -> 210 bytes .../tests/languages/mel/variable_feature.test | Bin 0 -> 246 bytes .../languages/mizar/comment_feature.test | Bin 0 -> 180 bytes .../languages/mizar/keyword_feature.test | Bin 0 -> 4149 bytes .../tests/languages/mizar/number_feature.test | Bin 0 -> 210 bytes .../languages/mizar/operator_feature.test | Bin 0 -> 267 bytes .../languages/mizar/parameter_feature.test | Bin 0 -> 397 bytes .../languages/mizar/variable_feature.test | Bin 0 -> 362 bytes .../languages/monkey/comment_feature.test | Bin 0 -> 405 bytes .../languages/monkey/function_feature.test | Bin 0 -> 310 bytes .../languages/monkey/keyword_feature.test | Bin 0 -> 1971 bytes .../languages/monkey/number_feature.test | Bin 0 -> 280 bytes .../languages/monkey/operator_feature.test | Bin 0 -> 905 bytes .../monkey/preprocessor_feature.test | Bin 0 -> 274 bytes .../languages/monkey/string_feature.test | Bin 0 -> 214 bytes .../languages/monkey/type-char_feature.test | Bin 0 -> 301 bytes .../languages/n4js/annotation_feature.test | Bin 0 -> 1186 bytes .../tests/languages/n4js/keyword_feature.test | Bin 0 -> 2063 bytes .../tests/languages/nasm/comment_feature.test | Bin 0 -> 195 bytes .../tests/languages/nasm/keyword_feature.test | Bin 0 -> 672 bytes .../tests/languages/nasm/label_feature.test | Bin 0 -> 232 bytes .../tests/languages/nasm/number_feature.test | Bin 0 -> 1364 bytes .../languages/nasm/operator_feature.test | Bin 0 -> 448 bytes .../languages/nasm/register_feature.test | Bin 0 -> 1509 bytes .../tests/languages/nasm/string_feature.test | Bin 0 -> 322 bytes .../languages/nginx/comment_feature.test | Bin 0 -> 201 bytes .../languages/nginx/keyword_feature.test | Bin 0 -> 18094 bytes .../languages/nginx/variable_feature.test | Bin 0 -> 216 bytes .../tests/languages/nim/comment_feature.test | Bin 0 -> 201 bytes .../tests/languages/nim/function_feature.test | Bin 0 -> 397 bytes .../tests/languages/nim/keyword_feature.test | Bin 0 -> 1904 bytes .../tests/languages/nim/number_feature.test | Bin 0 -> 537 bytes .../tests/languages/nim/operator_feature.test | Bin 0 -> 964 bytes .../tests/languages/nim/string_feature.test | Bin 0 -> 631 bytes .../languages/nix/antiquotation_feature.test | Bin 0 -> 267 bytes .../tests/languages/nix/boolean_feature.test | Bin 0 -> 201 bytes .../tests/languages/nix/comment_feature.test | Bin 0 -> 281 bytes .../tests/languages/nix/function_feature.test | Bin 0 -> 2421 bytes .../tests/languages/nix/keyword_feature.test | Bin 0 -> 440 bytes .../tests/languages/nix/number_feature.test | Bin 0 -> 219 bytes .../tests/languages/nix/operator_feature.test | Bin 0 -> 541 bytes .../tests/languages/nix/string_feature.test | Bin 0 -> 1036 bytes .../tests/languages/nix/url_feature.test | Bin 0 -> 454 bytes .../tests/languages/nsis/comment_feature.test | Bin 0 -> 293 bytes .../languages/nsis/constant_feature.test | Bin 0 -> 515 bytes .../languages/nsis/important_feature.test | Bin 0 -> 1483 bytes .../tests/languages/nsis/keyword_feature.test | Bin 0 -> 9732 bytes .../tests/languages/nsis/number_feature.test | Bin 0 -> 322 bytes .../languages/nsis/operator_feature.test | Bin 0 -> 619 bytes .../languages/nsis/property_feature.test | Bin 0 -> 3456 bytes .../tests/languages/nsis/string_feature.test | Bin 0 -> 295 bytes .../languages/nsis/variable_feature.test | Bin 0 -> 240 bytes .../languages/objectivec/keyword_feature.test | Bin 0 -> 1837 bytes .../objectivec/operator_feature.test | Bin 0 -> 784 bytes .../languages/objectivec/string_feature.test | Bin 0 -> 480 bytes .../languages/ocaml/boolean_feature.test | Bin 0 -> 201 bytes .../languages/ocaml/comment_feature.test | Bin 0 -> 221 bytes .../languages/ocaml/directive_feature.test | Bin 0 -> 250 bytes .../languages/ocaml/keyword_feature.test | Bin 0 -> 1561 bytes .../tests/languages/ocaml/number_feature.test | Bin 0 -> 434 bytes .../languages/ocaml/operator_feature.test | Bin 0 -> 813 bytes .../tests/languages/ocaml/string_feature.test | Bin 0 -> 400 bytes .../tests/languages/ocaml/type_feature.test | Bin 0 -> 254 bytes .../languages/opencl+c/boolean_feature.test | Bin 0 -> 277 bytes .../languages/opencl+c/constant_feature.test | Bin 0 -> 33514 bytes .../languages/opencl+c/function_feature.test | Bin 0 -> 7784 bytes .../languages/opencl+c/type_feature.test | Bin 0 -> 5499 bytes .../languages/opencl+cpp/type_feature.test | Bin 0 -> 2094 bytes .../languages/opencl/constant_feature.test | Bin 0 -> 5031 bytes .../languages/opencl/function_feature.test | Bin 0 -> 16186 bytes .../languages/opencl/keyword_feature.test | Bin 0 -> 7452 bytes .../tests/languages/oz/atom_feature.test | Bin 0 -> 239 bytes .../tests/languages/oz/attr-name_feature.test | Bin 0 -> 397 bytes .../tests/languages/oz/comment_feature.test | Bin 0 -> 281 bytes .../tests/languages/oz/function_feature.test | Bin 0 -> 317 bytes .../tests/languages/oz/keyword_feature.test | Bin 0 -> 1528 bytes .../tests/languages/oz/number_feature.test | Bin 0 -> 512 bytes .../tests/languages/oz/operator_feature.test | Bin 0 -> 967 bytes .../tests/languages/oz/string_feature.test | Bin 0 -> 254 bytes .../tests/languages/oz/variable_feature.test | Bin 0 -> 232 bytes .../languages/parigp/comment_feature.test | Bin 0 -> 289 bytes .../languages/parigp/function_feature.test | Bin 0 -> 350 bytes .../languages/parigp/keyword_feature.test | Bin 0 -> 1789 bytes .../languages/parigp/number_feature.test | Bin 0 -> 652 bytes .../languages/parigp/operator_feature.test | Bin 0 -> 2185 bytes .../languages/parigp/string_feature.test | Bin 0 -> 210 bytes .../languages/parser/boolean_feature.test | Bin 0 -> 374 bytes .../languages/parser/escape_feature.test | Bin 0 -> 968 bytes .../languages/parser/expression_feature.test | Bin 0 -> 1123 bytes .../languages/parser/function_feature.test | Bin 0 -> 1383 bytes .../languages/parser/keyword_feature.test | Bin 0 -> 1338 bytes .../languages/parser/number_feature.test | Bin 0 -> 924 bytes .../languages/parser/operator_feature.test | Bin 0 -> 4744 bytes .../parser/parser-comment_feature.test | Bin 0 -> 343 bytes .../languages/parser/string_feature.test | Bin 0 -> 840 bytes .../languages/parser/variable_feature.test | Bin 0 -> 1294 bytes .../languages/pascal/comment_feature.test | Bin 0 -> 377 bytes .../languages/pascal/keyword_feature.test | Bin 0 -> 4306 bytes .../languages/pascal/number_feature.test | Bin 0 -> 427 bytes .../languages/pascal/operator_feature.test | Bin 0 -> 951 bytes .../languages/pascal/string_feature.test | Bin 0 -> 328 bytes .../tests/languages/perl/comment_feature.test | Bin 0 -> 268 bytes .../languages/perl/filehandle_feature.test | Bin 0 -> 277 bytes .../languages/perl/function_feature.test | Bin 0 -> 264 bytes .../tests/languages/perl/keyword_feature.test | Bin 0 -> 1095 bytes .../tests/languages/perl/number_feature.test | Bin 0 -> 520 bytes .../languages/perl/operator_feature.test | Bin 0 -> 2505 bytes .../tests/languages/perl/regex_feature.test | Bin 0 -> 1982 bytes .../tests/languages/perl/string_feature.test | Bin 0 -> 1923 bytes .../languages/perl/variable_feature.test | Bin 0 -> 588 bytes .../tests/languages/perl/vstring_feature.test | Bin 0 -> 201 bytes .../php!+php-extras/global_feature.test | Bin 0 -> 681 bytes .../php!+php-extras/scope_feature.test | Bin 0 -> 594 bytes .../php!+php-extras/this_feature.test | Bin 0 -> 166 bytes .../tests/languages/php/comment_feature.test | Bin 0 -> 377 bytes .../tests/languages/php/constant_feature.test | Bin 0 -> 240 bytes .../languages/php/delimiter_feature.test | Bin 0 -> 367 bytes .../tests/languages/php/keyword_feature.test | Bin 0 -> 2243 bytes .../tests/languages/php/package_feature.test | Bin 0 -> 643 bytes .../tests/languages/php/property_feature.test | Bin 0 -> 427 bytes .../languages/php/shell-comment_feature.test | Bin 0 -> 224 bytes .../php/string-interpolation_feature.test | Bin 0 -> 4371 bytes .../tests/languages/php/string_feature.test | Bin 0 -> 1178 bytes .../tests/languages/php/variable_feature.test | Bin 0 -> 368 bytes .../languages/plsql/comment_feature.test | Bin 0 -> 279 bytes .../languages/plsql/keyword_feature.test | Bin 0 -> 7282 bytes .../languages/plsql/operator_feature.test | Bin 0 -> 172 bytes .../languages/powershell/boolean_feature.test | Bin 0 -> 328 bytes .../languages/powershell/comment_feature.test | Bin 0 -> 439 bytes .../powershell/function_feature.test | Bin 0 -> 14316 bytes .../tests/languages/powershell/issue1407.test | Bin 0 -> 905 bytes .../languages/powershell/keyword_feature.test | Bin 0 -> 1230 bytes .../powershell/namespace_feature.test | Bin 0 -> 547 bytes .../powershell/operator_feature.test | Bin 0 -> 1325 bytes .../languages/powershell/string_feature.test | Bin 0 -> 1649 bytes .../powershell/variable_feature.test | Bin 0 -> 333 bytes .../processing/constant_feature.test | Bin 0 -> 218 bytes .../processing/function_feature.test | Bin 0 -> 259 bytes .../languages/processing/keyword_feature.test | Bin 0 -> 1018 bytes .../processing/operator_feature.test | Bin 0 -> 703 bytes .../languages/processing/type_feature.test | Bin 0 -> 428 bytes .../languages/prolog/builtin_feature.test | Bin 0 -> 313 bytes .../languages/prolog/comment_feature.test | Bin 0 -> 258 bytes .../languages/prolog/function_feature.test | Bin 0 -> 330 bytes .../languages/prolog/number_feature.test | Bin 0 -> 220 bytes .../languages/prolog/operator_feature.test | Bin 0 -> 655 bytes .../languages/prolog/string_feature.test | Bin 0 -> 451 bytes .../languages/prolog/variable_feature.test | Bin 0 -> 248 bytes .../languages/properties/comment_feature.test | Bin 0 -> 279 bytes .../properties/key_value_feature.test | Bin 0 -> 748 bytes .../languages/protobuf/keyword_feature.test | Bin 0 -> 691 bytes .../languages/protobuf/string_feature.test | Bin 0 -> 388 bytes .../tests/languages/pug/code_feature.test | Bin 0 -> 590 bytes .../tests/languages/pug/comment_feature.test | Bin 0 -> 333 bytes .../tests/languages/pug/doctype_feature.test | Bin 0 -> 358 bytes .../languages/pug/flow-control_feature.test | Bin 0 -> 1265 bytes .../tests/languages/pug/keyword_feature.test | Bin 0 -> 501 bytes .../tests/languages/pug/mixin_feature.test | Bin 0 -> 563 bytes .../pug/multiline-plain-text_feature.test | Bin 0 -> 446 bytes .../pug/multiline-script_feature.test | Bin 0 -> 1082 bytes .../languages/pug/plain-text_feature.test | Bin 0 -> 288 bytes .../tests/languages/pug/script_feature.test | Bin 0 -> 745 bytes .../tests/languages/pug/tag_feature.test | Bin 0 -> 1881 bytes .../languages/puppet/attr-name_feature.test | Bin 0 -> 399 bytes .../languages/puppet/boolean_feature.test | Bin 0 -> 201 bytes .../languages/puppet/comment_feature.test | Bin 0 -> 413 bytes .../languages/puppet/datatype_feature.test | Bin 0 -> 1079 bytes .../languages/puppet/function_feature.test | Bin 0 -> 681 bytes .../languages/puppet/heredoc_feature.test | Bin 0 -> 1202 bytes .../puppet/interpolation_feature.test | Bin 0 -> 1789 bytes .../languages/puppet/keyword_feature.test | Bin 0 -> 764 bytes .../languages/puppet/number_feature.test | Bin 0 -> 382 bytes .../languages/puppet/operator_feature.test | Bin 0 -> 869 bytes .../tests/languages/puppet/regex_feature.test | Bin 0 -> 685 bytes .../languages/puppet/string_feature.test | Bin 0 -> 805 bytes .../languages/puppet/variable_feature.test | Bin 0 -> 355 bytes .../tests/languages/pure/comment_feature.test | Bin 0 -> 332 bytes .../languages/pure/function_feature.test | Bin 0 -> 11298 bytes .../tests/languages/pure/keyword_feature.test | Bin 0 -> 1723 bytes .../tests/languages/pure/number_feature.test | Bin 0 -> 448 bytes .../languages/pure/operator_feature.test | Bin 0 -> 905 bytes .../tests/languages/pure/special_feature.test | Bin 0 -> 259 bytes .../tests/languages/pure/string_feature.test | Bin 0 -> 210 bytes .../languages/python/boolean_feature.test | Bin 0 -> 230 bytes .../languages/python/builtin_feature.test | Bin 0 -> 2629 bytes .../languages/python/class-name_feature.test | Bin 0 -> 326 bytes .../languages/python/comment_feature.test | Bin 0 -> 201 bytes .../languages/python/decorator_feature.test | Bin 0 -> 454 bytes .../languages/python/function_feature.test | Bin 0 -> 478 bytes .../tests/languages/python/issue1355.test | Bin 0 -> 523 bytes .../languages/python/keyword_feature.test | Bin 0 -> 1138 bytes .../languages/python/number_feature.test | Bin 0 -> 459 bytes .../languages/python/operator_feature.test | Bin 0 -> 800 bytes .../python/string-interpolation_feature.test | Bin 0 -> 2820 bytes .../languages/python/string_feature.test | Bin 0 -> 485 bytes .../python/triple-quoted-string_feature.test | Bin 0 -> 443 bytes .../tests/languages/q/adverb_feature.test | Bin 0 -> 331 bytes .../tests/languages/q/comment_feature.test | Bin 0 -> 381 bytes .../tests/languages/q/datetime_feature.test | Bin 0 -> 908 bytes .../tests/languages/q/keyword_feature.test | Bin 0 -> 5445 bytes .../tests/languages/q/number_feature.test | Bin 0 -> 665 bytes .../tests/languages/q/string_feature.test | Bin 0 -> 210 bytes .../tests/languages/q/symbol_feature.test | Bin 0 -> 290 bytes .../tests/languages/q/verb_feature.test | Bin 0 -> 1055 bytes .../tests/languages/qore/boolean_feature.test | Bin 0 -> 201 bytes .../tests/languages/qore/comment_feature.test | Bin 0 -> 355 bytes .../languages/qore/function_feature.test | Bin 0 -> 386 bytes .../tests/languages/qore/keyword_feature.test | Bin 0 -> 2458 bytes .../tests/languages/qore/number_feature.test | Bin 0 -> 342 bytes .../languages/qore/operator_feature.test | Bin 0 -> 1063 bytes .../tests/languages/qore/string_feature.test | Bin 0 -> 287 bytes .../languages/qore/variable_feature.test | Bin 0 -> 258 bytes .../tests/languages/r/boolean_feature.test | Bin 0 -> 201 bytes .../tests/languages/r/comment_feature.test | Bin 0 -> 201 bytes .../tests/languages/r/ellipsis_feature.test | Bin 0 -> 251 bytes .../tests/languages/r/keyword_feature.test | Bin 0 -> 615 bytes .../tests/languages/r/number_feature.test | Bin 0 -> 656 bytes .../tests/languages/r/operator_feature.test | Bin 0 -> 748 bytes .../languages/r/percent-operator_feature.test | Bin 0 -> 435 bytes .../tests/languages/r/string_feature.test | Bin 0 -> 307 bytes .../languages/reason/character_feature.test | Bin 0 -> 311 bytes .../languages/reason/class-name_feature.test | Bin 0 -> 351 bytes .../languages/reason/comment_feature.test | Bin 0 -> 377 bytes .../languages/reason/constructor_feature.test | Bin 0 -> 242 bytes .../languages/reason/keyword_feature.test | Bin 0 -> 1582 bytes .../tests/languages/reason/label_feature.test | Bin 0 -> 253 bytes .../languages/reason/operator_feature.test | Bin 0 -> 972 bytes .../languages/reason/string_feature.test | Bin 0 -> 210 bytes .../rest/command-line-option_feature.test | Bin 0 -> 1090 bytes .../tests/languages/rest/comment_feature.test | Bin 0 -> 374 bytes .../languages/rest/directive_feature.test | Bin 0 -> 555 bytes .../languages/rest/doctest-block_feature.test | Bin 0 -> 321 bytes .../tests/languages/rest/field_feature.test | Bin 0 -> 376 bytes .../tests/languages/rest/hr_feature.test | Bin 0 -> 1175 bytes .../tests/languages/rest/inline_feature.test | Bin 0 -> 1687 bytes .../languages/rest/link-target_feature.test | Bin 0 -> 1493 bytes .../tests/languages/rest/link_feature.test | Bin 0 -> 965 bytes .../languages/rest/list-bullet_feature.test | Bin 0 -> 880 bytes .../languages/rest/literal-block_feature.test | Bin 0 -> 424 bytes .../rest/quoted-literal-block_feature.test | Bin 0 -> 6548 bytes .../rest/substitution-def_feature.test | Bin 0 -> 1231 bytes .../tests/languages/rest/table_feature.test | Bin 0 -> 1573 bytes .../tests/languages/rest/title_feature.test | Bin 0 -> 6890 bytes .../tests/languages/rip/boolean_feature.test | Bin 0 -> 201 bytes .../tests/languages/rip/builtin_feature.test | Bin 0 -> 197 bytes .../languages/rip/character_feature.test | Bin 0 -> 222 bytes .../tests/languages/rip/comment_feature.test | Bin 0 -> 201 bytes .../languages/rip/date_time_feature.test | Bin 0 -> 427 bytes .../tests/languages/rip/keyword_feature.test | Bin 0 -> 503 bytes .../tests/languages/rip/number_feature.test | Bin 0 -> 314 bytes .../languages/rip/reference_feature.test | Bin 0 -> 208 bytes .../tests/languages/rip/regex_feature.test | Bin 0 -> 315 bytes .../tests/languages/rip/string_feature.test | Bin 0 -> 307 bytes .../tests/languages/rip/symbol_feature.test | Bin 0 -> 242 bytes .../languages/roboconf/comment_feature.test | Bin 0 -> 201 bytes .../languages/roboconf/component_feature.test | Bin 0 -> 362 bytes .../languages/roboconf/keyword_feature.test | Bin 0 -> 435 bytes .../languages/roboconf/optional_feature.test | Bin 0 -> 188 bytes .../languages/roboconf/property_feature.test | Bin 0 -> 408 bytes .../languages/roboconf/value_feature.test | Bin 0 -> 647 bytes .../languages/roboconf/wildcard_feature.test | Bin 0 -> 229 bytes .../tests/languages/ruby/builtin_feature.test | Bin 0 -> 1194 bytes .../tests/languages/ruby/comment_feature.test | Bin 0 -> 364 bytes .../languages/ruby/constant_feature.test | Bin 0 -> 330 bytes .../tests/languages/ruby/issue1336.test | Bin 0 -> 312 bytes .../tests/languages/ruby/keyword_feature.test | Bin 0 -> 1647 bytes .../ruby/method_definition_feature.test | Bin 0 -> 1643 bytes .../tests/languages/ruby/regex_feature.test | Bin 0 -> 1209 bytes .../tests/languages/ruby/string_feature.test | Bin 0 -> 6038 bytes .../tests/languages/ruby/symbol_feature.test | Bin 0 -> 258 bytes .../languages/ruby/variable_feature.test | Bin 0 -> 398 bytes .../languages/rust/attribute_feature.test | Bin 0 -> 239 bytes .../tests/languages/rust/char_feature.test | Bin 0 -> 190 bytes .../rust/closure-params_feature.test | Bin 0 -> 580 bytes .../tests/languages/rust/comment_feature.test | Bin 0 -> 285 bytes .../languages/rust/function_feature.test | Bin 0 -> 511 bytes .../tests/languages/rust/issue1339.test | Bin 0 -> 1145 bytes .../tests/languages/rust/issue1353.test | Bin 0 -> 316 bytes .../tests/languages/rust/keyword_feature.test | Bin 0 -> 1628 bytes .../rust/lifetime-annotation_feature.test | Bin 0 -> 308 bytes .../languages/rust/macro-rules_feature.test | Bin 0 -> 265 bytes .../tests/languages/rust/number_feature.test | Bin 0 -> 816 bytes .../languages/rust/operator_feature.test | Bin 0 -> 899 bytes .../tests/languages/rust/string_feature.test | Bin 0 -> 568 bytes .../tests/languages/sas/comment_feature.test | Bin 0 -> 310 bytes .../languages/sas/datalines_feature.test | Bin 0 -> 701 bytes .../tests/languages/sas/datetime_feature.test | Bin 0 -> 316 bytes .../tests/languages/sas/keyword_feature.test | Bin 0 -> 343 bytes .../tests/languages/sas/number_feature.test | Bin 0 -> 354 bytes .../tests/languages/sas/operator_feature.test | Bin 0 -> 928 bytes .../tests/languages/sas/string_feature.test | Bin 0 -> 380 bytes .../languages/sass/atrule-line_feature.test | Bin 0 -> 543 bytes .../tests/languages/sass/comment_feature.test | Bin 0 -> 348 bytes .../languages/sass/property-line_feature.test | Bin 0 -> 968 bytes .../languages/sass/selector_feature.test | Bin 0 -> 431 bytes .../languages/sass/variable-line_feature.test | Bin 0 -> 545 bytes .../languages/scala/builtin_feature.test | Bin 0 -> 545 bytes .../languages/scala/keyword_feature.test | Bin 0 -> 1291 bytes .../tests/languages/scala/number_feature.test | Bin 0 -> 412 bytes .../tests/languages/scala/string_feature.test | Bin 0 -> 606 bytes .../tests/languages/scala/symbol_feature.test | Bin 0 -> 238 bytes .../languages/scheme/boolean_feature.test | Bin 0 -> 191 bytes .../languages/scheme/builtin_feature.test | Bin 0 -> 1931 bytes .../languages/scheme/character_feature.test | Bin 0 -> 302 bytes .../languages/scheme/comment_feature.test | Bin 0 -> 201 bytes .../languages/scheme/function_feature.test | Bin 0 -> 758 bytes .../tests/languages/scheme/issue1331.test | Bin 0 -> 386 bytes .../languages/scheme/keyword_feature.test | Bin 0 -> 2131 bytes .../languages/scheme/number_feature.test | Bin 0 -> 665 bytes .../languages/scheme/operator_feature.test | Bin 0 -> 665 bytes .../languages/scheme/string_feature.test | Bin 0 -> 369 bytes .../languages/scss+haml/scss_inclusion.test | Bin 0 -> 780 bytes .../languages/scss+pug/scss_inclusion.test | Bin 0 -> 301 bytes .../tests/languages/scss/atrule_feature.test | Bin 0 -> 385 bytes .../tests/languages/scss/boolean_feature.test | Bin 0 -> 201 bytes .../tests/languages/scss/comment_feature.test | Bin 0 -> 287 bytes .../tests/languages/scss/keyword_feature.test | Bin 0 -> 736 bytes .../tests/languages/scss/null_feature.test | Bin 0 -> 163 bytes .../languages/scss/operator_feature.test | Bin 0 -> 1101 bytes .../languages/scss/placeholder_feature.test | Bin 0 -> 266 bytes .../languages/scss/property_feature.test | Bin 0 -> 840 bytes .../languages/scss/selector_feature.test | Bin 0 -> 860 bytes .../languages/scss/statement_feature.test | Bin 0 -> 427 bytes .../tests/languages/scss/url_feature.test | Bin 0 -> 365 bytes .../languages/scss/variable_feature.test | Bin 0 -> 372 bytes .../smalltalk/block-arguments_feature.test | Bin 0 -> 446 bytes .../smalltalk/character_feature.test | Bin 0 -> 251 bytes .../languages/smalltalk/comment_feature.test | Bin 0 -> 237 bytes .../languages/smalltalk/keyword_feature.test | Bin 0 -> 303 bytes .../languages/smalltalk/number_feature.test | Bin 0 -> 378 bytes .../languages/smalltalk/operator_feature.test | Bin 0 -> 658 bytes .../languages/smalltalk/string_feature.test | Bin 0 -> 228 bytes .../languages/smalltalk/symbol_feature.test | Bin 0 -> 319 bytes .../temporary-variables_feature.test | Bin 0 -> 488 bytes .../languages/smarty/attr-name_feature.test | Bin 0 -> 624 bytes .../languages/smarty/comment_feature.test | Bin 0 -> 249 bytes .../languages/smarty/function_feature.test | Bin 0 -> 775 bytes .../languages/smarty/keyword_feature.test | Bin 0 -> 875 bytes .../languages/smarty/number_feature.test | Bin 0 -> 742 bytes .../languages/smarty/operator_feature.test | Bin 0 -> 4032 bytes .../smarty/smarty_in_markup_feature.test | Bin 0 -> 951 bytes .../languages/smarty/string_feature.test | Bin 0 -> 551 bytes .../languages/smarty/variable_feature.test | Bin 0 -> 1057 bytes .../tests/languages/soy/boolean_feature.test | Bin 0 -> 525 bytes .../tests/languages/soy/command-arg.test | Bin 0 -> 1721 bytes .../tests/languages/soy/comment_feature.test | Bin 0 -> 551 bytes .../tests/languages/soy/function_feature.test | Bin 0 -> 1895 bytes .../tests/languages/soy/keyword_feature.test | Bin 0 -> 6261 bytes .../tests/languages/soy/literal_feature.test | Bin 0 -> 1368 bytes .../tests/languages/soy/number_feature.test | Bin 0 -> 1264 bytes .../tests/languages/soy/operator_feature.test | Bin 0 -> 2544 bytes .../languages/soy/parameter_feature.test | Bin 0 -> 1347 bytes .../tests/languages/soy/property_feature.test | Bin 0 -> 1332 bytes .../languages/soy/soy_in_markup_feature.test | Bin 0 -> 1164 bytes .../tests/languages/soy/string_feature.test | Bin 0 -> 1040 bytes .../tests/languages/soy/variable_feature.test | Bin 0 -> 1978 bytes .../tests/languages/sql/boolean_feature.test | Bin 0 -> 230 bytes .../tests/languages/sql/comment_feature.test | Bin 0 -> 391 bytes .../tests/languages/sql/function_feature.test | Bin 0 -> 936 bytes .../tests/languages/sql/keyword_feature.test | Bin 0 -> 12265 bytes .../tests/languages/sql/number_feature.test | Bin 0 -> 256 bytes .../tests/languages/sql/operator_feature.test | Bin 0 -> 1020 bytes .../tests/languages/sql/string_feature.test | Bin 0 -> 463 bytes .../tests/languages/sql/variable_feature.test | Bin 0 -> 448 bytes .../stylus+pug/stylus_inclusion.test | Bin 0 -> 363 bytes .../stylus/atrule-declaration_feature.test | Bin 0 -> 763 bytes .../languages/stylus/boolean_feature.test | Bin 0 -> 367 bytes .../languages/stylus/comment_feature.test | Bin 0 -> 285 bytes .../tests/languages/stylus/func_feature.test | Bin 0 -> 989 bytes .../languages/stylus/hexcode_feature.test | Bin 0 -> 647 bytes .../languages/stylus/important_feature.test | Bin 0 -> 435 bytes .../languages/stylus/keyword_feature.test | Bin 0 -> 1004 bytes .../languages/stylus/number_feature.test | Bin 0 -> 610 bytes .../languages/stylus/operator_feature.test | Bin 0 -> 4690 bytes .../stylus/property-declaration_feature.test | Bin 0 -> 1053 bytes .../languages/stylus/selector_feature.test | Bin 0 -> 1119 bytes .../languages/stylus/string_feature.test | Bin 0 -> 648 bytes .../tests/languages/stylus/url_feature.test | Bin 0 -> 447 bytes .../stylus/variable-declaration_feature.test | Bin 0 -> 600 bytes .../tests/languages/swift/atrule_feature.test | Bin 0 -> 649 bytes .../languages/swift/builtin_feature.test | Bin 0 -> 2410 bytes .../languages/swift/constant_feature.test | Bin 0 -> 298 bytes .../languages/swift/keyword_feature.test | Bin 0 -> 2763 bytes .../tests/languages/swift/number_feature.test | Bin 0 -> 471 bytes .../tests/languages/swift/string_feature.test | Bin 0 -> 882 bytes .../tests/languages/tap/bail_out_feature.test | Bin 0 -> 303 bytes .../languages/tap/directive_feature.test | Bin 0 -> 350 bytes .../languages/tap/pass_fail_feature.test | Bin 0 -> 410 bytes .../tests/languages/tap/plan_feature.test | Bin 0 -> 207 bytes .../tests/languages/tap/pragma_feature.test | Bin 0 -> 219 bytes .../tests/languages/tap/version_feature.test | Bin 0 -> 181 bytes .../tests/languages/tap/yamlish_feature.test | Bin 0 -> 1140 bytes .../tests/languages/tcl/builtin_feature.test | Bin 0 -> 598 bytes .../tests/languages/tcl/comment_feature.test | Bin 0 -> 201 bytes .../tests/languages/tcl/function_feature.test | Bin 0 -> 324 bytes .../tests/languages/tcl/keyword_feature.test | Bin 0 -> 3655 bytes .../tests/languages/tcl/operator_feature.test | Bin 0 -> 772 bytes .../tests/languages/tcl/scope_feature.test | Bin 0 -> 234 bytes .../tests/languages/tcl/string_feature.test | Bin 0 -> 263 bytes .../tests/languages/tcl/variable_feature.test | Bin 0 -> 678 bytes .../languages/textile/acronym_feature.test | Bin 0 -> 441 bytes .../languages/textile/block-tag_feature.test | Bin 0 -> 2408 bytes .../languages/textile/footnote_feature.test | Bin 0 -> 334 bytes .../languages/textile/image_feature.test | Bin 0 -> 1507 bytes .../languages/textile/inline_feature.test | Bin 0 -> 8150 bytes .../languages/textile/link-ref_feature.test | Bin 0 -> 495 bytes .../tests/languages/textile/link_feature.test | Bin 0 -> 1020 bytes .../tests/languages/textile/list_feature.test | Bin 0 -> 802 bytes .../tests/languages/textile/mark_feature.test | Bin 0 -> 423 bytes .../languages/textile/table_feature.test | Bin 0 -> 5885 bytes .../tests/languages/toml/boolean_feature.test | Bin 0 -> 190 bytes .../tests/languages/toml/comment_feature.test | Bin 0 -> 209 bytes .../tests/languages/toml/date_feature.test | Bin 0 -> 631 bytes .../tests/languages/toml/key_feature.test | Bin 0 -> 742 bytes .../tests/languages/toml/number_feature.test | Bin 0 -> 1019 bytes .../tests/languages/toml/string_feature.test | Bin 0 -> 399 bytes .../tests/languages/toml/table_feature.test | Bin 0 -> 331 bytes .../tests/languages/tsx/tag_feature.test | Bin 0 -> 2083 bytes .../tests/languages/tt2/comment_feature.test | Bin 0 -> 831 bytes .../languages/tt2/delimiter_feature.test | Bin 0 -> 414 bytes .../tests/languages/tt2/keyword_feature.test | Bin 0 -> 4967 bytes .../tests/languages/tt2/operator_feature.test | Bin 0 -> 2324 bytes .../tt2/string-interpolation_feature.test | Bin 0 -> 359 bytes .../tests/languages/tt2/string_feature.test | Bin 0 -> 893 bytes .../tests/languages/tt2/variable_feature.test | Bin 0 -> 613 bytes .../languages/twig+pug/twig_inclusion.test | Bin 0 -> 362 bytes .../tests/languages/twig/boolean_feature.test | Bin 0 -> 531 bytes .../tests/languages/twig/comment_feature.test | Bin 0 -> 260 bytes .../tests/languages/twig/keyword_feature.test | Bin 0 -> 1454 bytes .../tests/languages/twig/number_feature.test | Bin 0 -> 928 bytes .../languages/twig/operator_feature.test | Bin 0 -> 5147 bytes .../tests/languages/twig/string_feature.test | Bin 0 -> 815 bytes .../languages/typescript/builtin_feature.test | Bin 0 -> 506 bytes .../languages/typescript/keyword_feature.test | Bin 0 -> 2189 bytes .../languages/vala/class-name_feature.test | Bin 0 -> 769 bytes .../tests/languages/vala/keyword_feature.test | Bin 0 -> 3009 bytes .../tests/languages/vala/number_feature.test | Bin 0 -> 444 bytes .../languages/vala/operator_feature.test | Bin 0 -> 1099 bytes .../languages/vala/punctuation_feature.test | Bin 0 -> 388 bytes .../tests/languages/vala/string_feature.test | Bin 0 -> 899 bytes .../languages/vbnet/comment_feature.test | Bin 0 -> 297 bytes .../languages/vbnet/keyword_feature.test | Bin 0 -> 7170 bytes .../languages/velocity/directive_feature.test | Bin 0 -> 9619 bytes .../languages/velocity/unparsed_feature.test | Bin 0 -> 566 bytes .../languages/velocity/variable_feature.test | Bin 0 -> 3382 bytes .../velocity/velocity-comment_feature.test | Bin 0 -> 387 bytes .../languages/verilog/comment_feature.test | Bin 0 -> 285 bytes .../languages/verilog/constant_feature.test | Bin 0 -> 229 bytes .../languages/verilog/function_feature.test | Bin 0 -> 386 bytes .../languages/verilog/important_feature.test | Bin 0 -> 501 bytes .../languages/verilog/keyword_feature.test | Bin 0 -> 7508 bytes .../languages/verilog/number_feature.test | Bin 0 -> 556 bytes .../languages/verilog/operator_feature.test | Bin 0 -> 1333 bytes .../languages/verilog/property_feature.test | Bin 0 -> 233 bytes .../languages/verilog/string_feature.test | Bin 0 -> 257 bytes .../tests/languages/vhdl/boolean_feature.test | Bin 0 -> 201 bytes .../tests/languages/vhdl/comment_feature.test | Bin 0 -> 211 bytes .../languages/vhdl/constant_feature.test | Bin 0 -> 206 bytes .../languages/vhdl/function_feature.test | Bin 0 -> 877 bytes .../tests/languages/vhdl/keyword_feature.test | Bin 0 -> 4133 bytes .../tests/languages/vhdl/number_feature.test | Bin 0 -> 526 bytes .../languages/vhdl/operator_feature.test | Bin 0 -> 811 bytes .../tests/languages/vhdl/string_feature.test | Bin 0 -> 257 bytes .../languages/vhdl/vhdl-vectors_feature.test | Bin 0 -> 385 bytes .../tests/languages/vim/builtin_feature.test | Bin 0 -> 39853 bytes .../tests/languages/vim/comment_feature.test | Bin 0 -> 203 bytes .../tests/languages/vim/function_feature.test | Bin 0 -> 370 bytes .../tests/languages/vim/keyword_feature.test | Bin 0 -> 25627 bytes .../tests/languages/vim/number_feature.test | Bin 0 -> 236 bytes .../tests/languages/vim/operator_feature.test | Bin 0 -> 1116 bytes .../tests/languages/vim/string_feature.test | Bin 0 -> 303 bytes .../visual-basic/boolean_feature.test | Bin 0 -> 236 bytes .../visual-basic/comment_feature.test | Bin 0 -> 459 bytes .../languages/visual-basic/date_feature.test | Bin 0 -> 456 bytes .../visual-basic/directive_feature.test | Bin 0 -> 863 bytes .../visual-basic/keyword_feature.test | Bin 0 -> 5008 bytes .../visual-basic/number_feature.test | Bin 0 -> 584 bytes .../visual-basic/operator_feature.test | Bin 0 -> 845 bytes .../visual-basic/string_feature.test | Bin 0 -> 591 bytes .../tests/languages/wasm/comment_feature.test | Bin 0 -> 385 bytes .../tests/languages/wasm/keyword_feature.test | Bin 0 -> 11810 bytes .../tests/languages/wasm/number_feature.test | Bin 0 -> 1080 bytes .../tests/languages/wasm/string_feature.test | Bin 0 -> 448 bytes .../languages/wasm/variable_feature.test | Bin 0 -> 307 bytes .../languages/wiki/block-comment_feature.test | Bin 0 -> 278 bytes .../languages/wiki/emphasis_feature.test | Bin 0 -> 482 bytes .../tests/languages/wiki/heading_feature.test | Bin 0 -> 865 bytes .../tests/languages/wiki/hr_feature.test | Bin 0 -> 198 bytes .../tests/languages/wiki/nowiki_feature.test | Bin 0 -> 1101 bytes .../tests/languages/wiki/symbol_feature.test | Bin 0 -> 319 bytes .../tests/languages/wiki/url_feature.test | Bin 0 -> 670 bytes .../languages/wiki/variable_feature.test | Bin 0 -> 368 bytes .../languages/xeora/constant_feature.test | Bin 0 -> 354 bytes .../xeora/directive-block-close_feature.test | Bin 0 -> 283 bytes .../xeora/directive-block-open_feature.test | Bin 0 -> 1553 bytes .../directive-block-separator_feature.test | Bin 0 -> 310 bytes .../xeora/directive-inline_feature.test | Bin 0 -> 814 bytes .../xeora/function-block_feature.test | Bin 0 -> 963 bytes .../xeora/function-inline_feature.test | Bin 0 -> 721 bytes .../languages/xeora/variable_feature.test | Bin 0 -> 1191 bytes .../tests/languages/xojo/comment_feature.test | Bin 0 -> 293 bytes .../tests/languages/xojo/keyword_feature.test | Bin 0 -> 1957 bytes .../tests/languages/xojo/number_feature.test | Bin 0 -> 439 bytes .../languages/xojo/operator_feature.test | Bin 0 -> 735 bytes .../tests/languages/xojo/string_feature.test | Bin 0 -> 250 bytes .../tests/languages/xojo/symbol_feature.test | Bin 0 -> 323 bytes .../tests/languages/xquery/axis_feature.test | Bin 0 -> 1161 bytes .../languages/xquery/builtin_feature.test | Bin 0 -> 2640 bytes .../languages/xquery/extension_feature.test | Bin 0 -> 216 bytes .../languages/xquery/function_feature.test | Bin 0 -> 1026 bytes .../xquery/keyword-operator_feature.test | Bin 0 -> 802 bytes .../languages/xquery/keyword_feature.test | Bin 0 -> 2056 bytes .../languages/xquery/number_feature.test | Bin 0 -> 258 bytes .../languages/xquery/operator_feature.test | Bin 0 -> 531 bytes .../languages/xquery/plain-text_feature.test | Bin 0 -> 1485 bytes .../languages/xquery/string_feature.test | Bin 0 -> 399 bytes .../tests/languages/xquery/tag_feature.test | Bin 0 -> 2706 bytes .../languages/xquery/variable_feature.test | Bin 0 -> 264 bytes .../xquery/xquery-attribute_feature.test | Bin 0 -> 399 bytes .../xquery/xquery-comment_feature.test | Bin 0 -> 394 bytes .../xquery/xquery-element_feature.test | Bin 0 -> 382 bytes .../tests/languages/yaml/boolean_feature.test | Bin 0 -> 322 bytes .../tests/languages/yaml/comment_feature.test | Bin 0 -> 201 bytes .../languages/yaml/datetime_feature.test | Bin 0 -> 836 bytes .../languages/yaml/directive_feature.test | Bin 0 -> 215 bytes .../languages/yaml/important_feature.test | Bin 0 -> 283 bytes .../tests/languages/yaml/key_feature.test | Bin 0 -> 305 bytes .../tests/languages/yaml/null_feature.test | Bin 0 -> 310 bytes .../tests/languages/yaml/number_feature.test | Bin 0 -> 854 bytes .../tests/languages/yaml/scalar_feature.test | Bin 0 -> 427 bytes .../tests/languages/yaml/string_feature.test | Bin 0 -> 694 bytes .../tests/languages/yaml/tag_feature.test | Bin 0 -> 217 bytes docs/_style/prism-master/tests/run.js | 45 + .../prism-master/tests/testrunner-tests.js | 166 ++ docs/_style/prism-master/themes/prism-coy.css | 225 +++ .../_style/prism-master/themes/prism-dark.css | 128 ++ .../prism-master/themes/prism-funky.css | 116 ++ .../prism-master/themes/prism-okaidia.css | 122 ++ .../themes/prism-solarizedlight.css | 149 ++ .../prism-master/themes/prism-tomorrow.css | 121 ++ .../prism-master/themes/prism-twilight.css | 198 +++ docs/_style/prism-master/themes/prism.css | 138 ++ docs/_style/prism-master/utopia.js | 463 ++++++ .../prism-master/vendor/FileSaver.min.js | 2 + docs/_style/prism-master/vendor/jszip.min.js | 15 + docs/_style/prism-master/vendor/promise.js | 5 + docs/index.html | 2 + docs/index.html.dump | 62 + 1747 files changed, 35461 insertions(+) create mode 100644 docs/_style/prism-master/.editorconfig create mode 100644 docs/_style/prism-master/.gitattributes create mode 100644 docs/_style/prism-master/.gitignore create mode 100644 docs/_style/prism-master/.npmignore create mode 100644 docs/_style/prism-master/.travis.yml create mode 100644 docs/_style/prism-master/CHANGELOG.md create mode 100644 docs/_style/prism-master/CNAME create mode 100644 docs/_style/prism-master/LICENSE create mode 100644 docs/_style/prism-master/README.md create mode 100644 docs/_style/prism-master/bower.json create mode 100644 docs/_style/prism-master/code.js create mode 100644 docs/_style/prism-master/components.js create mode 100644 docs/_style/prism-master/components.json create mode 100644 docs/_style/prism-master/components/index.js create mode 100644 docs/_style/prism-master/components/prism-abap.js create mode 100644 docs/_style/prism-master/components/prism-abap.min.js create mode 100644 docs/_style/prism-master/components/prism-actionscript.js create mode 100644 docs/_style/prism-master/components/prism-actionscript.min.js create mode 100644 docs/_style/prism-master/components/prism-ada.js create mode 100644 docs/_style/prism-master/components/prism-ada.min.js create mode 100644 docs/_style/prism-master/components/prism-apacheconf.js create mode 100644 docs/_style/prism-master/components/prism-apacheconf.min.js create mode 100644 docs/_style/prism-master/components/prism-apl.js create mode 100644 docs/_style/prism-master/components/prism-apl.min.js create mode 100644 docs/_style/prism-master/components/prism-applescript.js create mode 100644 docs/_style/prism-master/components/prism-applescript.min.js create mode 100644 docs/_style/prism-master/components/prism-arduino.js create mode 100644 docs/_style/prism-master/components/prism-arduino.min.js create mode 100644 docs/_style/prism-master/components/prism-arff.js create mode 100644 docs/_style/prism-master/components/prism-arff.min.js create mode 100644 docs/_style/prism-master/components/prism-asciidoc.js create mode 100644 docs/_style/prism-master/components/prism-asciidoc.min.js create mode 100644 docs/_style/prism-master/components/prism-asm6502.js create mode 100644 docs/_style/prism-master/components/prism-asm6502.min.js create mode 100644 docs/_style/prism-master/components/prism-aspnet.js create mode 100644 docs/_style/prism-master/components/prism-aspnet.min.js create mode 100644 docs/_style/prism-master/components/prism-autohotkey.js create mode 100644 docs/_style/prism-master/components/prism-autohotkey.min.js create mode 100644 docs/_style/prism-master/components/prism-autoit.js create mode 100644 docs/_style/prism-master/components/prism-autoit.min.js create mode 100644 docs/_style/prism-master/components/prism-bash.js create mode 100644 docs/_style/prism-master/components/prism-bash.min.js create mode 100644 docs/_style/prism-master/components/prism-basic.js create mode 100644 docs/_style/prism-master/components/prism-basic.min.js create mode 100644 docs/_style/prism-master/components/prism-batch.js create mode 100644 docs/_style/prism-master/components/prism-batch.min.js create mode 100644 docs/_style/prism-master/components/prism-bison.js create mode 100644 docs/_style/prism-master/components/prism-bison.min.js create mode 100644 docs/_style/prism-master/components/prism-brainfuck.js create mode 100644 docs/_style/prism-master/components/prism-brainfuck.min.js create mode 100644 docs/_style/prism-master/components/prism-bro.js create mode 100644 docs/_style/prism-master/components/prism-bro.min.js create mode 100644 docs/_style/prism-master/components/prism-c.js create mode 100644 docs/_style/prism-master/components/prism-c.min.js create mode 100644 docs/_style/prism-master/components/prism-cil.js create mode 100644 docs/_style/prism-master/components/prism-cil.min.js create mode 100644 docs/_style/prism-master/components/prism-clike.js create mode 100644 docs/_style/prism-master/components/prism-clike.min.js create mode 100644 docs/_style/prism-master/components/prism-clojure.js create mode 100644 docs/_style/prism-master/components/prism-clojure.min.js create mode 100644 docs/_style/prism-master/components/prism-coffeescript.js create mode 100644 docs/_style/prism-master/components/prism-coffeescript.min.js create mode 100644 docs/_style/prism-master/components/prism-core.js create mode 100644 docs/_style/prism-master/components/prism-core.min.js create mode 100644 docs/_style/prism-master/components/prism-cpp.js create mode 100644 docs/_style/prism-master/components/prism-cpp.min.js create mode 100644 docs/_style/prism-master/components/prism-crystal.js create mode 100644 docs/_style/prism-master/components/prism-crystal.min.js create mode 100644 docs/_style/prism-master/components/prism-csharp.js create mode 100644 docs/_style/prism-master/components/prism-csharp.min.js create mode 100644 docs/_style/prism-master/components/prism-csp.js create mode 100644 docs/_style/prism-master/components/prism-csp.min.js create mode 100644 docs/_style/prism-master/components/prism-css-extras.js create mode 100644 docs/_style/prism-master/components/prism-css-extras.min.js create mode 100644 docs/_style/prism-master/components/prism-css.js create mode 100644 docs/_style/prism-master/components/prism-css.min.js create mode 100644 docs/_style/prism-master/components/prism-d.js create mode 100644 docs/_style/prism-master/components/prism-d.min.js create mode 100644 docs/_style/prism-master/components/prism-dart.js create mode 100644 docs/_style/prism-master/components/prism-dart.min.js create mode 100644 docs/_style/prism-master/components/prism-diff.js create mode 100644 docs/_style/prism-master/components/prism-diff.min.js create mode 100644 docs/_style/prism-master/components/prism-django.js create mode 100644 docs/_style/prism-master/components/prism-django.min.js create mode 100644 docs/_style/prism-master/components/prism-docker.js create mode 100644 docs/_style/prism-master/components/prism-docker.min.js create mode 100644 docs/_style/prism-master/components/prism-eiffel.js create mode 100644 docs/_style/prism-master/components/prism-eiffel.min.js create mode 100644 docs/_style/prism-master/components/prism-elixir.js create mode 100644 docs/_style/prism-master/components/prism-elixir.min.js create mode 100644 docs/_style/prism-master/components/prism-elm.js create mode 100644 docs/_style/prism-master/components/prism-elm.min.js create mode 100644 docs/_style/prism-master/components/prism-erb.js create mode 100644 docs/_style/prism-master/components/prism-erb.min.js create mode 100644 docs/_style/prism-master/components/prism-erlang.js create mode 100644 docs/_style/prism-master/components/prism-erlang.min.js create mode 100644 docs/_style/prism-master/components/prism-flow.js create mode 100644 docs/_style/prism-master/components/prism-flow.min.js create mode 100644 docs/_style/prism-master/components/prism-fortran.js create mode 100644 docs/_style/prism-master/components/prism-fortran.min.js create mode 100644 docs/_style/prism-master/components/prism-fsharp.js create mode 100644 docs/_style/prism-master/components/prism-fsharp.min.js create mode 100644 docs/_style/prism-master/components/prism-gcode.js create mode 100644 docs/_style/prism-master/components/prism-gcode.min.js create mode 100644 docs/_style/prism-master/components/prism-gedcom.js create mode 100644 docs/_style/prism-master/components/prism-gedcom.min.js create mode 100644 docs/_style/prism-master/components/prism-gherkin.js create mode 100644 docs/_style/prism-master/components/prism-gherkin.min.js create mode 100644 docs/_style/prism-master/components/prism-git.js create mode 100644 docs/_style/prism-master/components/prism-git.min.js create mode 100644 docs/_style/prism-master/components/prism-glsl.js create mode 100644 docs/_style/prism-master/components/prism-glsl.min.js create mode 100644 docs/_style/prism-master/components/prism-gml.js create mode 100644 docs/_style/prism-master/components/prism-gml.min.js create mode 100644 docs/_style/prism-master/components/prism-go.js create mode 100644 docs/_style/prism-master/components/prism-go.min.js create mode 100644 docs/_style/prism-master/components/prism-graphql.js create mode 100644 docs/_style/prism-master/components/prism-graphql.min.js create mode 100644 docs/_style/prism-master/components/prism-groovy.js create mode 100644 docs/_style/prism-master/components/prism-groovy.min.js create mode 100644 docs/_style/prism-master/components/prism-haml.js create mode 100644 docs/_style/prism-master/components/prism-haml.min.js create mode 100644 docs/_style/prism-master/components/prism-handlebars.js create mode 100644 docs/_style/prism-master/components/prism-handlebars.min.js create mode 100644 docs/_style/prism-master/components/prism-haskell.js create mode 100644 docs/_style/prism-master/components/prism-haskell.min.js create mode 100644 docs/_style/prism-master/components/prism-haxe.js create mode 100644 docs/_style/prism-master/components/prism-haxe.min.js create mode 100644 docs/_style/prism-master/components/prism-hpkp.js create mode 100644 docs/_style/prism-master/components/prism-hpkp.min.js create mode 100644 docs/_style/prism-master/components/prism-hsts.js create mode 100644 docs/_style/prism-master/components/prism-hsts.min.js create mode 100644 docs/_style/prism-master/components/prism-http.js create mode 100644 docs/_style/prism-master/components/prism-http.min.js create mode 100644 docs/_style/prism-master/components/prism-ichigojam.js create mode 100644 docs/_style/prism-master/components/prism-ichigojam.min.js create mode 100644 docs/_style/prism-master/components/prism-icon.js create mode 100644 docs/_style/prism-master/components/prism-icon.min.js create mode 100644 docs/_style/prism-master/components/prism-inform7.js create mode 100644 docs/_style/prism-master/components/prism-inform7.min.js create mode 100644 docs/_style/prism-master/components/prism-ini.js create mode 100644 docs/_style/prism-master/components/prism-ini.min.js create mode 100644 docs/_style/prism-master/components/prism-io.js create mode 100644 docs/_style/prism-master/components/prism-io.min.js create mode 100644 docs/_style/prism-master/components/prism-j.js create mode 100644 docs/_style/prism-master/components/prism-j.min.js create mode 100644 docs/_style/prism-master/components/prism-java.js create mode 100644 docs/_style/prism-master/components/prism-java.min.js create mode 100644 docs/_style/prism-master/components/prism-javascript.js create mode 100644 docs/_style/prism-master/components/prism-javascript.min.js create mode 100644 docs/_style/prism-master/components/prism-javastacktrace.js create mode 100644 docs/_style/prism-master/components/prism-javastacktrace.min.js create mode 100644 docs/_style/prism-master/components/prism-jolie.js create mode 100644 docs/_style/prism-master/components/prism-jolie.min.js create mode 100644 docs/_style/prism-master/components/prism-json.js create mode 100644 docs/_style/prism-master/components/prism-json.min.js create mode 100644 docs/_style/prism-master/components/prism-jsx.js create mode 100644 docs/_style/prism-master/components/prism-jsx.min.js create mode 100644 docs/_style/prism-master/components/prism-julia.js create mode 100644 docs/_style/prism-master/components/prism-julia.min.js create mode 100644 docs/_style/prism-master/components/prism-keyman.js create mode 100644 docs/_style/prism-master/components/prism-keyman.min.js create mode 100644 docs/_style/prism-master/components/prism-kotlin.js create mode 100644 docs/_style/prism-master/components/prism-kotlin.min.js create mode 100644 docs/_style/prism-master/components/prism-latex.js create mode 100644 docs/_style/prism-master/components/prism-latex.min.js create mode 100644 docs/_style/prism-master/components/prism-less.js create mode 100644 docs/_style/prism-master/components/prism-less.min.js create mode 100644 docs/_style/prism-master/components/prism-liquid.js create mode 100644 docs/_style/prism-master/components/prism-liquid.min.js create mode 100644 docs/_style/prism-master/components/prism-lisp.js create mode 100644 docs/_style/prism-master/components/prism-lisp.min.js create mode 100644 docs/_style/prism-master/components/prism-livescript.js create mode 100644 docs/_style/prism-master/components/prism-livescript.min.js create mode 100644 docs/_style/prism-master/components/prism-lolcode.js create mode 100644 docs/_style/prism-master/components/prism-lolcode.min.js create mode 100644 docs/_style/prism-master/components/prism-lua.js create mode 100644 docs/_style/prism-master/components/prism-lua.min.js create mode 100644 docs/_style/prism-master/components/prism-makefile.js create mode 100644 docs/_style/prism-master/components/prism-makefile.min.js create mode 100644 docs/_style/prism-master/components/prism-markdown.js create mode 100644 docs/_style/prism-master/components/prism-markdown.min.js create mode 100644 docs/_style/prism-master/components/prism-markup-templating.js create mode 100644 docs/_style/prism-master/components/prism-markup-templating.min.js create mode 100644 docs/_style/prism-master/components/prism-markup.js create mode 100644 docs/_style/prism-master/components/prism-markup.min.js create mode 100644 docs/_style/prism-master/components/prism-matlab.js create mode 100644 docs/_style/prism-master/components/prism-matlab.min.js create mode 100644 docs/_style/prism-master/components/prism-mel.js create mode 100644 docs/_style/prism-master/components/prism-mel.min.js create mode 100644 docs/_style/prism-master/components/prism-mizar.js create mode 100644 docs/_style/prism-master/components/prism-mizar.min.js create mode 100644 docs/_style/prism-master/components/prism-monkey.js create mode 100644 docs/_style/prism-master/components/prism-monkey.min.js create mode 100644 docs/_style/prism-master/components/prism-n4js.js create mode 100644 docs/_style/prism-master/components/prism-n4js.min.js create mode 100644 docs/_style/prism-master/components/prism-nasm.js create mode 100644 docs/_style/prism-master/components/prism-nasm.min.js create mode 100644 docs/_style/prism-master/components/prism-nginx.js create mode 100644 docs/_style/prism-master/components/prism-nginx.min.js create mode 100644 docs/_style/prism-master/components/prism-nim.js create mode 100644 docs/_style/prism-master/components/prism-nim.min.js create mode 100644 docs/_style/prism-master/components/prism-nix.js create mode 100644 docs/_style/prism-master/components/prism-nix.min.js create mode 100644 docs/_style/prism-master/components/prism-nsis.js create mode 100644 docs/_style/prism-master/components/prism-nsis.min.js create mode 100644 docs/_style/prism-master/components/prism-objectivec.js create mode 100644 docs/_style/prism-master/components/prism-objectivec.min.js create mode 100644 docs/_style/prism-master/components/prism-ocaml.js create mode 100644 docs/_style/prism-master/components/prism-ocaml.min.js create mode 100644 docs/_style/prism-master/components/prism-opencl.js create mode 100644 docs/_style/prism-master/components/prism-opencl.min.js create mode 100644 docs/_style/prism-master/components/prism-oz.js create mode 100644 docs/_style/prism-master/components/prism-oz.min.js create mode 100644 docs/_style/prism-master/components/prism-parigp.js create mode 100644 docs/_style/prism-master/components/prism-parigp.min.js create mode 100644 docs/_style/prism-master/components/prism-parser.js create mode 100644 docs/_style/prism-master/components/prism-parser.min.js create mode 100644 docs/_style/prism-master/components/prism-pascal.js create mode 100644 docs/_style/prism-master/components/prism-pascal.min.js create mode 100644 docs/_style/prism-master/components/prism-perl.js create mode 100644 docs/_style/prism-master/components/prism-perl.min.js create mode 100644 docs/_style/prism-master/components/prism-php-extras.js create mode 100644 docs/_style/prism-master/components/prism-php-extras.min.js create mode 100644 docs/_style/prism-master/components/prism-php.js create mode 100644 docs/_style/prism-master/components/prism-php.min.js create mode 100644 docs/_style/prism-master/components/prism-plsql.js create mode 100644 docs/_style/prism-master/components/prism-plsql.min.js create mode 100644 docs/_style/prism-master/components/prism-powershell.js create mode 100644 docs/_style/prism-master/components/prism-powershell.min.js create mode 100644 docs/_style/prism-master/components/prism-processing.js create mode 100644 docs/_style/prism-master/components/prism-processing.min.js create mode 100644 docs/_style/prism-master/components/prism-prolog.js create mode 100644 docs/_style/prism-master/components/prism-prolog.min.js create mode 100644 docs/_style/prism-master/components/prism-properties.js create mode 100644 docs/_style/prism-master/components/prism-properties.min.js create mode 100644 docs/_style/prism-master/components/prism-protobuf.js create mode 100644 docs/_style/prism-master/components/prism-protobuf.min.js create mode 100644 docs/_style/prism-master/components/prism-pug.js create mode 100644 docs/_style/prism-master/components/prism-pug.min.js create mode 100644 docs/_style/prism-master/components/prism-puppet.js create mode 100644 docs/_style/prism-master/components/prism-puppet.min.js create mode 100644 docs/_style/prism-master/components/prism-pure.js create mode 100644 docs/_style/prism-master/components/prism-pure.min.js create mode 100644 docs/_style/prism-master/components/prism-python.js create mode 100644 docs/_style/prism-master/components/prism-python.min.js create mode 100644 docs/_style/prism-master/components/prism-q.js create mode 100644 docs/_style/prism-master/components/prism-q.min.js create mode 100644 docs/_style/prism-master/components/prism-qore.js create mode 100644 docs/_style/prism-master/components/prism-qore.min.js create mode 100644 docs/_style/prism-master/components/prism-r.js create mode 100644 docs/_style/prism-master/components/prism-r.min.js create mode 100644 docs/_style/prism-master/components/prism-reason.js create mode 100644 docs/_style/prism-master/components/prism-reason.min.js create mode 100644 docs/_style/prism-master/components/prism-renpy.js create mode 100644 docs/_style/prism-master/components/prism-renpy.min.js create mode 100644 docs/_style/prism-master/components/prism-rest.js create mode 100644 docs/_style/prism-master/components/prism-rest.min.js create mode 100644 docs/_style/prism-master/components/prism-rip.js create mode 100644 docs/_style/prism-master/components/prism-rip.min.js create mode 100644 docs/_style/prism-master/components/prism-roboconf.js create mode 100644 docs/_style/prism-master/components/prism-roboconf.min.js create mode 100644 docs/_style/prism-master/components/prism-ruby.js create mode 100644 docs/_style/prism-master/components/prism-ruby.min.js create mode 100644 docs/_style/prism-master/components/prism-rust.js create mode 100644 docs/_style/prism-master/components/prism-rust.min.js create mode 100644 docs/_style/prism-master/components/prism-sas.js create mode 100644 docs/_style/prism-master/components/prism-sas.min.js create mode 100644 docs/_style/prism-master/components/prism-sass.js create mode 100644 docs/_style/prism-master/components/prism-sass.min.js create mode 100644 docs/_style/prism-master/components/prism-scala.js create mode 100644 docs/_style/prism-master/components/prism-scala.min.js create mode 100644 docs/_style/prism-master/components/prism-scheme.js create mode 100644 docs/_style/prism-master/components/prism-scheme.min.js create mode 100644 docs/_style/prism-master/components/prism-scss.js create mode 100644 docs/_style/prism-master/components/prism-scss.min.js create mode 100644 docs/_style/prism-master/components/prism-smalltalk.js create mode 100644 docs/_style/prism-master/components/prism-smalltalk.min.js create mode 100644 docs/_style/prism-master/components/prism-smarty.js create mode 100644 docs/_style/prism-master/components/prism-smarty.min.js create mode 100644 docs/_style/prism-master/components/prism-soy.js create mode 100644 docs/_style/prism-master/components/prism-soy.min.js create mode 100644 docs/_style/prism-master/components/prism-sql.js create mode 100644 docs/_style/prism-master/components/prism-sql.min.js create mode 100644 docs/_style/prism-master/components/prism-stylus.js create mode 100644 docs/_style/prism-master/components/prism-stylus.min.js create mode 100644 docs/_style/prism-master/components/prism-swift.js create mode 100644 docs/_style/prism-master/components/prism-swift.min.js create mode 100644 docs/_style/prism-master/components/prism-tap.js create mode 100644 docs/_style/prism-master/components/prism-tap.min.js create mode 100644 docs/_style/prism-master/components/prism-tcl.js create mode 100644 docs/_style/prism-master/components/prism-tcl.min.js create mode 100644 docs/_style/prism-master/components/prism-textile.js create mode 100644 docs/_style/prism-master/components/prism-textile.min.js create mode 100644 docs/_style/prism-master/components/prism-toml.js create mode 100644 docs/_style/prism-master/components/prism-toml.min.js create mode 100644 docs/_style/prism-master/components/prism-tsx.js create mode 100644 docs/_style/prism-master/components/prism-tsx.min.js create mode 100644 docs/_style/prism-master/components/prism-tt2.js create mode 100644 docs/_style/prism-master/components/prism-tt2.min.js create mode 100644 docs/_style/prism-master/components/prism-twig.js create mode 100644 docs/_style/prism-master/components/prism-twig.min.js create mode 100644 docs/_style/prism-master/components/prism-typescript.js create mode 100644 docs/_style/prism-master/components/prism-typescript.min.js create mode 100644 docs/_style/prism-master/components/prism-vala.js create mode 100644 docs/_style/prism-master/components/prism-vala.min.js create mode 100644 docs/_style/prism-master/components/prism-vbnet.js create mode 100644 docs/_style/prism-master/components/prism-vbnet.min.js create mode 100644 docs/_style/prism-master/components/prism-velocity.js create mode 100644 docs/_style/prism-master/components/prism-velocity.min.js create mode 100644 docs/_style/prism-master/components/prism-verilog.js create mode 100644 docs/_style/prism-master/components/prism-verilog.min.js create mode 100644 docs/_style/prism-master/components/prism-vhdl.js create mode 100644 docs/_style/prism-master/components/prism-vhdl.min.js create mode 100644 docs/_style/prism-master/components/prism-vim.js create mode 100644 docs/_style/prism-master/components/prism-vim.min.js create mode 100644 docs/_style/prism-master/components/prism-visual-basic.js create mode 100644 docs/_style/prism-master/components/prism-visual-basic.min.js create mode 100644 docs/_style/prism-master/components/prism-wasm.js create mode 100644 docs/_style/prism-master/components/prism-wasm.min.js create mode 100644 docs/_style/prism-master/components/prism-wiki.js create mode 100644 docs/_style/prism-master/components/prism-wiki.min.js create mode 100644 docs/_style/prism-master/components/prism-xeora.js create mode 100644 docs/_style/prism-master/components/prism-xeora.min.js create mode 100644 docs/_style/prism-master/components/prism-xojo.js create mode 100644 docs/_style/prism-master/components/prism-xojo.min.js create mode 100644 docs/_style/prism-master/components/prism-xquery.js create mode 100644 docs/_style/prism-master/components/prism-xquery.min.js create mode 100644 docs/_style/prism-master/components/prism-yaml.js create mode 100644 docs/_style/prism-master/components/prism-yaml.min.js create mode 100644 docs/_style/prism-master/composer.json create mode 100644 docs/_style/prism-master/download.html create mode 100644 docs/_style/prism-master/download.js create mode 100644 docs/_style/prism-master/examples.html create mode 100644 docs/_style/prism-master/examples.js create mode 100644 docs/_style/prism-master/examples/prism-abap.html create mode 100644 docs/_style/prism-master/examples/prism-actionscript.html create mode 100644 docs/_style/prism-master/examples/prism-ada.html create mode 100644 docs/_style/prism-master/examples/prism-apacheconf.html create mode 100644 docs/_style/prism-master/examples/prism-apl.html create mode 100644 docs/_style/prism-master/examples/prism-applescript.html create mode 100644 docs/_style/prism-master/examples/prism-arduino.html create mode 100644 docs/_style/prism-master/examples/prism-arff.html create mode 100644 docs/_style/prism-master/examples/prism-asciidoc.html create mode 100644 docs/_style/prism-master/examples/prism-asm6502.html create mode 100644 docs/_style/prism-master/examples/prism-aspnet.html create mode 100644 docs/_style/prism-master/examples/prism-autohotkey.html create mode 100644 docs/_style/prism-master/examples/prism-autoit.html create mode 100644 docs/_style/prism-master/examples/prism-bash.html create mode 100644 docs/_style/prism-master/examples/prism-basic.html create mode 100644 docs/_style/prism-master/examples/prism-batch.html create mode 100644 docs/_style/prism-master/examples/prism-bison.html create mode 100644 docs/_style/prism-master/examples/prism-brainfuck.html create mode 100644 docs/_style/prism-master/examples/prism-bro.html create mode 100644 docs/_style/prism-master/examples/prism-c.html create mode 100644 docs/_style/prism-master/examples/prism-clike.html create mode 100644 docs/_style/prism-master/examples/prism-clojure.html create mode 100644 docs/_style/prism-master/examples/prism-coffeescript.html create mode 100644 docs/_style/prism-master/examples/prism-cpp.html create mode 100644 docs/_style/prism-master/examples/prism-crystal.html create mode 100644 docs/_style/prism-master/examples/prism-csharp.html create mode 100644 docs/_style/prism-master/examples/prism-csp.html create mode 100644 docs/_style/prism-master/examples/prism-css.html create mode 100644 docs/_style/prism-master/examples/prism-d.html create mode 100644 docs/_style/prism-master/examples/prism-dart.html create mode 100644 docs/_style/prism-master/examples/prism-diff.html create mode 100644 docs/_style/prism-master/examples/prism-django.html create mode 100644 docs/_style/prism-master/examples/prism-docker.html create mode 100644 docs/_style/prism-master/examples/prism-eiffel.html create mode 100644 docs/_style/prism-master/examples/prism-elixir.html create mode 100644 docs/_style/prism-master/examples/prism-elm.html create mode 100644 docs/_style/prism-master/examples/prism-erb.html create mode 100644 docs/_style/prism-master/examples/prism-erlang.html create mode 100644 docs/_style/prism-master/examples/prism-flow.html create mode 100644 docs/_style/prism-master/examples/prism-fortran.html create mode 100644 docs/_style/prism-master/examples/prism-fsharp.html create mode 100644 docs/_style/prism-master/examples/prism-gcode.html create mode 100644 docs/_style/prism-master/examples/prism-gedcom.html create mode 100644 docs/_style/prism-master/examples/prism-gherkin.html create mode 100644 docs/_style/prism-master/examples/prism-git.html create mode 100644 docs/_style/prism-master/examples/prism-glsl.html create mode 100644 docs/_style/prism-master/examples/prism-gml.html create mode 100644 docs/_style/prism-master/examples/prism-go.html create mode 100644 docs/_style/prism-master/examples/prism-graphql.html create mode 100644 docs/_style/prism-master/examples/prism-groovy.html create mode 100644 docs/_style/prism-master/examples/prism-haml.html create mode 100644 docs/_style/prism-master/examples/prism-handlebars.html create mode 100644 docs/_style/prism-master/examples/prism-haskell.html create mode 100644 docs/_style/prism-master/examples/prism-haxe.html create mode 100644 docs/_style/prism-master/examples/prism-hpkp.html create mode 100644 docs/_style/prism-master/examples/prism-hsts.html create mode 100644 docs/_style/prism-master/examples/prism-http.html create mode 100644 docs/_style/prism-master/examples/prism-ichigojam.html create mode 100644 docs/_style/prism-master/examples/prism-icon.html create mode 100644 docs/_style/prism-master/examples/prism-inform7.html create mode 100644 docs/_style/prism-master/examples/prism-ini.html create mode 100644 docs/_style/prism-master/examples/prism-io.html create mode 100644 docs/_style/prism-master/examples/prism-j.html create mode 100644 docs/_style/prism-master/examples/prism-java.html create mode 100644 docs/_style/prism-master/examples/prism-javascript.html create mode 100644 docs/_style/prism-master/examples/prism-javastacktrace.html create mode 100644 docs/_style/prism-master/examples/prism-jolie.html create mode 100644 docs/_style/prism-master/examples/prism-jsx.html create mode 100644 docs/_style/prism-master/examples/prism-julia.html create mode 100644 docs/_style/prism-master/examples/prism-keyman.html create mode 100644 docs/_style/prism-master/examples/prism-kotlin.html create mode 100644 docs/_style/prism-master/examples/prism-latex.html create mode 100644 docs/_style/prism-master/examples/prism-less.html create mode 100644 docs/_style/prism-master/examples/prism-liquid.html create mode 100644 docs/_style/prism-master/examples/prism-lisp.html create mode 100644 docs/_style/prism-master/examples/prism-livescript.html create mode 100644 docs/_style/prism-master/examples/prism-lolcode.html create mode 100644 docs/_style/prism-master/examples/prism-lua.html create mode 100644 docs/_style/prism-master/examples/prism-makefile.html create mode 100644 docs/_style/prism-master/examples/prism-markdown.html create mode 100644 docs/_style/prism-master/examples/prism-markup.html create mode 100644 docs/_style/prism-master/examples/prism-matlab.html create mode 100644 docs/_style/prism-master/examples/prism-mel.html create mode 100644 docs/_style/prism-master/examples/prism-mizar.html create mode 100644 docs/_style/prism-master/examples/prism-monkey.html create mode 100644 docs/_style/prism-master/examples/prism-n4js.html create mode 100644 docs/_style/prism-master/examples/prism-nasm.html create mode 100644 docs/_style/prism-master/examples/prism-nginx.html create mode 100644 docs/_style/prism-master/examples/prism-nim.html create mode 100644 docs/_style/prism-master/examples/prism-nix.html create mode 100644 docs/_style/prism-master/examples/prism-nsis.html create mode 100644 docs/_style/prism-master/examples/prism-objectivec.html create mode 100644 docs/_style/prism-master/examples/prism-ocaml.html create mode 100644 docs/_style/prism-master/examples/prism-opencl.html create mode 100644 docs/_style/prism-master/examples/prism-oz.html create mode 100644 docs/_style/prism-master/examples/prism-parigp.html create mode 100644 docs/_style/prism-master/examples/prism-parser.html create mode 100644 docs/_style/prism-master/examples/prism-pascal.html create mode 100644 docs/_style/prism-master/examples/prism-perl.html create mode 100644 docs/_style/prism-master/examples/prism-php.html create mode 100644 docs/_style/prism-master/examples/prism-plsql.html create mode 100644 docs/_style/prism-master/examples/prism-powershell.html create mode 100644 docs/_style/prism-master/examples/prism-processing.html create mode 100644 docs/_style/prism-master/examples/prism-prolog.html create mode 100644 docs/_style/prism-master/examples/prism-properties.html create mode 100644 docs/_style/prism-master/examples/prism-pug.html create mode 100644 docs/_style/prism-master/examples/prism-puppet.html create mode 100644 docs/_style/prism-master/examples/prism-pure.html create mode 100644 docs/_style/prism-master/examples/prism-python.html create mode 100644 docs/_style/prism-master/examples/prism-q.html create mode 100644 docs/_style/prism-master/examples/prism-qore.html create mode 100644 docs/_style/prism-master/examples/prism-r.html create mode 100644 docs/_style/prism-master/examples/prism-reason.html create mode 100644 docs/_style/prism-master/examples/prism-renpy.html create mode 100644 docs/_style/prism-master/examples/prism-rest.html create mode 100644 docs/_style/prism-master/examples/prism-rip.html create mode 100644 docs/_style/prism-master/examples/prism-roboconf.html create mode 100644 docs/_style/prism-master/examples/prism-ruby.html create mode 100644 docs/_style/prism-master/examples/prism-rust.html create mode 100644 docs/_style/prism-master/examples/prism-sas.html create mode 100644 docs/_style/prism-master/examples/prism-sass.html create mode 100644 docs/_style/prism-master/examples/prism-scala.html create mode 100644 docs/_style/prism-master/examples/prism-scheme.html create mode 100644 docs/_style/prism-master/examples/prism-scss.html create mode 100644 docs/_style/prism-master/examples/prism-smalltalk.html create mode 100644 docs/_style/prism-master/examples/prism-smarty.html create mode 100644 docs/_style/prism-master/examples/prism-soy.html create mode 100644 docs/_style/prism-master/examples/prism-sql.html create mode 100644 docs/_style/prism-master/examples/prism-stylus.html create mode 100644 docs/_style/prism-master/examples/prism-swift.html create mode 100644 docs/_style/prism-master/examples/prism-tcl.html create mode 100644 docs/_style/prism-master/examples/prism-textile.html create mode 100644 docs/_style/prism-master/examples/prism-tsx.html create mode 100644 docs/_style/prism-master/examples/prism-tt2.html create mode 100644 docs/_style/prism-master/examples/prism-twig.html create mode 100644 docs/_style/prism-master/examples/prism-typescript.html create mode 100644 docs/_style/prism-master/examples/prism-vala.html create mode 100644 docs/_style/prism-master/examples/prism-vbnet.html create mode 100644 docs/_style/prism-master/examples/prism-velocity.html create mode 100644 docs/_style/prism-master/examples/prism-verilog.html create mode 100644 docs/_style/prism-master/examples/prism-vhdl.html create mode 100644 docs/_style/prism-master/examples/prism-vim.html create mode 100644 docs/_style/prism-master/examples/prism-visual-basic.html create mode 100644 docs/_style/prism-master/examples/prism-wasm.html create mode 100644 docs/_style/prism-master/examples/prism-wiki.html create mode 100644 docs/_style/prism-master/examples/prism-xeora.html create mode 100644 docs/_style/prism-master/examples/prism-xojo.html create mode 100644 docs/_style/prism-master/examples/prism-xquery.html create mode 100644 docs/_style/prism-master/examples/prism-yaml.html create mode 100644 docs/_style/prism-master/extending.html create mode 100644 docs/_style/prism-master/faq.html create mode 100644 docs/_style/prism-master/favicon.png create mode 100644 docs/_style/prism-master/gulpfile.js create mode 100644 docs/_style/prism-master/img/logo-ala.png create mode 100644 docs/_style/prism-master/img/logo-css-tricks.png create mode 100644 docs/_style/prism-master/img/logo-drupal.png create mode 100644 docs/_style/prism-master/img/logo-mdn.png create mode 100644 docs/_style/prism-master/img/logo-react.png create mode 100644 docs/_style/prism-master/img/logo-sitepoint.png create mode 100644 docs/_style/prism-master/img/logo-smashing.png create mode 100644 docs/_style/prism-master/img/logo-stripe.png create mode 100644 docs/_style/prism-master/img/spectrum.png create mode 100644 docs/_style/prism-master/index.html create mode 100644 docs/_style/prism-master/logo.svg create mode 100644 docs/_style/prism-master/package.json create mode 100644 docs/_style/prism-master/plugins/autolinker/index.html create mode 100644 docs/_style/prism-master/plugins/autolinker/prism-autolinker.css create mode 100644 docs/_style/prism-master/plugins/autolinker/prism-autolinker.js create mode 100644 docs/_style/prism-master/plugins/autolinker/prism-autolinker.min.js create mode 100644 docs/_style/prism-master/plugins/autoloader/index.html create mode 100644 docs/_style/prism-master/plugins/autoloader/prism-autoloader.js create mode 100644 docs/_style/prism-master/plugins/autoloader/prism-autoloader.min.js create mode 100644 docs/_style/prism-master/plugins/command-line/index.html create mode 100644 docs/_style/prism-master/plugins/command-line/prism-command-line.css create mode 100644 docs/_style/prism-master/plugins/command-line/prism-command-line.js create mode 100644 docs/_style/prism-master/plugins/command-line/prism-command-line.min.js create mode 100644 docs/_style/prism-master/plugins/copy-to-clipboard/index.html create mode 100644 docs/_style/prism-master/plugins/copy-to-clipboard/prism-copy-to-clipboard.js create mode 100644 docs/_style/prism-master/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js create mode 100644 docs/_style/prism-master/plugins/custom-class/index.html create mode 100644 docs/_style/prism-master/plugins/custom-class/prism-custom-class.js create mode 100644 docs/_style/prism-master/plugins/custom-class/prism-custom-class.min.js create mode 100644 docs/_style/prism-master/plugins/data-uri-highlight/index.html create mode 100644 docs/_style/prism-master/plugins/data-uri-highlight/prism-data-uri-highlight.js create mode 100644 docs/_style/prism-master/plugins/data-uri-highlight/prism-data-uri-highlight.min.js create mode 100644 docs/_style/prism-master/plugins/file-highlight/index.html create mode 100644 docs/_style/prism-master/plugins/file-highlight/prism-file-highlight.js create mode 100644 docs/_style/prism-master/plugins/file-highlight/prism-file-highlight.min.js create mode 100644 docs/_style/prism-master/plugins/highlight-keywords/index.html create mode 100644 docs/_style/prism-master/plugins/highlight-keywords/prism-highlight-keywords.js create mode 100644 docs/_style/prism-master/plugins/highlight-keywords/prism-highlight-keywords.min.js create mode 100644 docs/_style/prism-master/plugins/index.html create mode 100644 docs/_style/prism-master/plugins/jsonp-highlight/index.html create mode 100644 docs/_style/prism-master/plugins/jsonp-highlight/prism-jsonp-highlight.js create mode 100644 docs/_style/prism-master/plugins/jsonp-highlight/prism-jsonp-highlight.min.js create mode 100644 docs/_style/prism-master/plugins/keep-markup/index.html create mode 100644 docs/_style/prism-master/plugins/keep-markup/prism-keep-markup.js create mode 100644 docs/_style/prism-master/plugins/keep-markup/prism-keep-markup.min.js create mode 100644 docs/_style/prism-master/plugins/line-highlight/index.html create mode 100644 docs/_style/prism-master/plugins/line-highlight/prism-line-highlight.css create mode 100644 docs/_style/prism-master/plugins/line-highlight/prism-line-highlight.js create mode 100644 docs/_style/prism-master/plugins/line-highlight/prism-line-highlight.min.js create mode 100644 docs/_style/prism-master/plugins/line-numbers/index.html create mode 100644 docs/_style/prism-master/plugins/line-numbers/prism-line-numbers.css create mode 100644 docs/_style/prism-master/plugins/line-numbers/prism-line-numbers.js create mode 100644 docs/_style/prism-master/plugins/line-numbers/prism-line-numbers.min.js create mode 100644 docs/_style/prism-master/plugins/normalize-whitespace/demo.html create mode 100644 docs/_style/prism-master/plugins/normalize-whitespace/index.html create mode 100644 docs/_style/prism-master/plugins/normalize-whitespace/prism-normalize-whitespace.js create mode 100644 docs/_style/prism-master/plugins/normalize-whitespace/prism-normalize-whitespace.min.js create mode 100644 docs/_style/prism-master/plugins/previewers/index.html create mode 100644 docs/_style/prism-master/plugins/previewers/prism-previewers.css create mode 100644 docs/_style/prism-master/plugins/previewers/prism-previewers.js create mode 100644 docs/_style/prism-master/plugins/previewers/prism-previewers.min.js create mode 100644 docs/_style/prism-master/plugins/remove-initial-line-feed/index.html create mode 100644 docs/_style/prism-master/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.js create mode 100644 docs/_style/prism-master/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.min.js create mode 100644 docs/_style/prism-master/plugins/show-invisibles/index.html create mode 100644 docs/_style/prism-master/plugins/show-invisibles/prism-show-invisibles.css create mode 100644 docs/_style/prism-master/plugins/show-invisibles/prism-show-invisibles.js create mode 100644 docs/_style/prism-master/plugins/show-invisibles/prism-show-invisibles.min.js create mode 100644 docs/_style/prism-master/plugins/show-language/index.html create mode 100644 docs/_style/prism-master/plugins/show-language/prism-show-language.js create mode 100644 docs/_style/prism-master/plugins/show-language/prism-show-language.min.js create mode 100644 docs/_style/prism-master/plugins/toolbar/index.html create mode 100644 docs/_style/prism-master/plugins/toolbar/prism-toolbar.css create mode 100644 docs/_style/prism-master/plugins/toolbar/prism-toolbar.js create mode 100644 docs/_style/prism-master/plugins/toolbar/prism-toolbar.min.js create mode 100644 docs/_style/prism-master/plugins/unescaped-markup/index.html create mode 100644 docs/_style/prism-master/plugins/unescaped-markup/prism-unescaped-markup.css create mode 100644 docs/_style/prism-master/plugins/unescaped-markup/prism-unescaped-markup.js create mode 100644 docs/_style/prism-master/plugins/unescaped-markup/prism-unescaped-markup.min.js create mode 100644 docs/_style/prism-master/plugins/wpd/index.html create mode 100644 docs/_style/prism-master/plugins/wpd/prism-wpd.css create mode 100644 docs/_style/prism-master/plugins/wpd/prism-wpd.js create mode 100644 docs/_style/prism-master/plugins/wpd/prism-wpd.min.js create mode 100644 docs/_style/prism-master/prefixfree.min.js create mode 100644 docs/_style/prism-master/prism.js create mode 100644 docs/_style/prism-master/style.css create mode 100644 docs/_style/prism-master/templates/footer.html create mode 100644 docs/_style/prism-master/templates/header-download.html create mode 100644 docs/_style/prism-master/templates/header-main.html create mode 100644 docs/_style/prism-master/templates/header-plugins.html create mode 100644 docs/_style/prism-master/test-suite.html create mode 100644 docs/_style/prism-master/test.html create mode 100644 docs/_style/prism-master/tests/helper/prism-loader.js create mode 100644 docs/_style/prism-master/tests/helper/test-case.js create mode 100644 docs/_style/prism-master/tests/helper/test-discovery.js create mode 100644 docs/_style/prism-master/tests/helper/token-stream-transformer.js create mode 100644 docs/_style/prism-master/tests/languages/abap/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/abap/eol-comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/abap/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/abap/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/abap/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/abap/string-template_feature.test create mode 100644 docs/_style/prism-master/tests/languages/abap/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/actionscript/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/actionscript/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ada/attr-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ada/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ada/char_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ada/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ada/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ada/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ada/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ada/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ada/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apacheconf/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apacheconf/directive-block_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apacheconf/directive-flags_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apacheconf/directive-inline_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apacheconf/regex_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apacheconf/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apacheconf/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apl/assignment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apl/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apl/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apl/dfn_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apl/dyadic-operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apl/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apl/monadic-operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apl/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apl/statement_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apl/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/apl/system-function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/applescript/class_feature.test create mode 100644 docs/_style/prism-master/tests/languages/applescript/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/applescript/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/applescript/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/applescript/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/applescript/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/arff/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/arff/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/arff/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/arff/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/admonition_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/attribute-entry_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/attributes_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/callout_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/comment-block_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/entity_feature.js create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/entity_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/hr_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/indented-block_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/inline_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/line-continuation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/list-label_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/list-punctuation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/literal-block_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/macro_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/other-block_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/page-break_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/passthrough-block_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/replacement_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/table_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asciidoc/title_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asm6502/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asm6502/directive_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asm6502/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asm6502/opcode_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asm6502/register_feature.test create mode 100644 docs/_style/prism-master/tests/languages/asm6502/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/aspnet/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/aspnet/page-directive_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/important_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/selector_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/symbol_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/tag_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autohotkey/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autoit/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autoit/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autoit/directive_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autoit/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autoit/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autoit/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autoit/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autoit/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autoit/url_feature.test create mode 100644 docs/_style/prism-master/tests/languages/autoit/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bash/arithmetic_environment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bash/command_substitution_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bash/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bash/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bash/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bash/shebang_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bash/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bash/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/basic/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/basic/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/basic/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/basic/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/basic/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/basic/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/batch/command_feature.test create mode 100644 docs/_style/prism-master/tests/languages/batch/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/batch/label_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bison/c_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bison/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bison/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bison/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bison/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bison/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/brainfuck/all_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bro/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bro/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bro/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bro/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bro/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/bro/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/c+pure/c_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/c/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/c/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/c/macro_feature.test create mode 100644 docs/_style/prism-master/tests/languages/c/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/c/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/cil/asm_reference.test create mode 100644 docs/_style/prism-master/tests/languages/cil/boolean.test create mode 100644 docs/_style/prism-master/tests/languages/cil/comment.test create mode 100644 docs/_style/prism-master/tests/languages/cil/instructions.test create mode 100644 docs/_style/prism-master/tests/languages/cil/keywords.test create mode 100644 docs/_style/prism-master/tests/languages/cil/strings.test create mode 100644 docs/_style/prism-master/tests/languages/clike/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/clike/class-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/clike/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/clike/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/clike/issue1340.test create mode 100644 docs/_style/prism-master/tests/languages/clike/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/clike/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/clike/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/clike/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/clojure/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/clojure/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/clojure/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/clojure/operator_and_punctuation.test create mode 100644 docs/_style/prism-master/tests/languages/clojure/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/coffeescript+haml/coffeescript_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/coffeescript+pug/coffeescript_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/coffeescript/block-regex_feature.test create mode 100644 docs/_style/prism-master/tests/languages/coffeescript/class-member_feature.test create mode 100644 docs/_style/prism-master/tests/languages/coffeescript/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/coffeescript/inline-javascript_feature.test create mode 100644 docs/_style/prism-master/tests/languages/coffeescript/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/coffeescript/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/coffeescript/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/cpp+pure/cpp_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/cpp/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/cpp/class-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/cpp/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/cpp/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/cpp/raw_string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/crystal/attribute_feature.test create mode 100644 docs/_style/prism-master/tests/languages/crystal/expansion_feature.test create mode 100644 docs/_style/prism-master/tests/languages/crystal/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/crystal/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/csharp+aspnet/directive_feature.test create mode 100644 docs/_style/prism-master/tests/languages/csharp/class-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/csharp/generic_feature.test create mode 100644 docs/_style/prism-master/tests/languages/csharp/issue1091.test create mode 100644 docs/_style/prism-master/tests/languages/csharp/issue1365.test create mode 100644 docs/_style/prism-master/tests/languages/csharp/issue1371.test create mode 100644 docs/_style/prism-master/tests/languages/csharp/issue806.test create mode 100644 docs/_style/prism-master/tests/languages/csharp/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/csharp/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/csharp/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/csharp/preprocessor_feature.test create mode 100644 docs/_style/prism-master/tests/languages/csharp/punctuation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/csharp/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/csp/directive_no_value_feature.test create mode 100644 docs/_style/prism-master/tests/languages/csp/directive_with_source_expression_feature.test create mode 100644 docs/_style/prism-master/tests/languages/csp/safe_feature.test create mode 100644 docs/_style/prism-master/tests/languages/csp/unsafe_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css!+css-extras/entity_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css!+css-extras/hexcode_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css!+css-extras/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css!+css-extras/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css!+css-extras/selector_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css!+css-extras/unit_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css!+css-extras/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css+haml/css+haml_usage.test create mode 100644 docs/_style/prism-master/tests/languages/css+http/css_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/css+textile/css_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/css/atrule_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css/important_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css/selector_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/css/url_feature.test create mode 100644 docs/_style/prism-master/tests/languages/d/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/d/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/d/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/d/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/d/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/d/register_feature.test create mode 100644 docs/_style/prism-master/tests/languages/d/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/d/token-string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/dart/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/dart/metadata_feature.test create mode 100644 docs/_style/prism-master/tests/languages/dart/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/dart/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/diff/coord_feature.test create mode 100644 docs/_style/prism-master/tests/languages/diff/diff_feature.test create mode 100644 docs/_style/prism-master/tests/languages/django/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/django/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/docker/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/docker/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/docker/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/eiffel/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/eiffel/char_feature.test create mode 100644 docs/_style/prism-master/tests/languages/eiffel/class-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/eiffel/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/eiffel/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/eiffel/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/eiffel/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/eiffel/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elixir/atom_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elixir/attr-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elixir/attribute_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elixir/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elixir/capture_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elixir/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elixir/issue1392.test create mode 100644 docs/_style/prism-master/tests/languages/elixir/issue775.test create mode 100644 docs/_style/prism-master/tests/languages/elixir/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elixir/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elixir/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elixir/regex_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elixir/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elm/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elm/char_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elm/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elm/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elm/hvariable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elm/import_statement_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elm/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elm/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elm/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/elm/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/erb/erb_feature.test create mode 100644 docs/_style/prism-master/tests/languages/erb/erb_in_markup_feature.test create mode 100644 docs/_style/prism-master/tests/languages/erlang/atom_feature.test create mode 100644 docs/_style/prism-master/tests/languages/erlang/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/erlang/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/erlang/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/erlang/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/erlang/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/erlang/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/erlang/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/erlang/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/flow/flow-punctuation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/flow/function-variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/flow/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/flow/type_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fortran+pure/fortran_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/fortran/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fortran/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fortran/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fortran/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fortran/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fortran/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fsharp/annotation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fsharp/class-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fsharp/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fsharp/computation-expression_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fsharp/issue1480.test create mode 100644 docs/_style/prism-master/tests/languages/fsharp/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fsharp/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fsharp/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fsharp/preprocessor_feature.test create mode 100644 docs/_style/prism-master/tests/languages/fsharp/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gcode/checksum_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gcode/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gcode/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gcode/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gcode/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gedcom/level_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gedcom/line-value_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gedcom/pointer_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gedcom/tag_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gherkin/atrule_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gherkin/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gherkin/feature_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gherkin/outline_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gherkin/pystring_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gherkin/scenario_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gherkin/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gherkin/table_feature.test create mode 100644 docs/_style/prism-master/tests/languages/gherkin/tag_feature.test create mode 100644 docs/_style/prism-master/tests/languages/git/command_feature.test create mode 100644 docs/_style/prism-master/tests/languages/git/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/git/commit_sha1_feature.test create mode 100644 docs/_style/prism-master/tests/languages/git/coord_feature.test create mode 100644 docs/_style/prism-master/tests/languages/git/diff_feature.test create mode 100644 docs/_style/prism-master/tests/languages/git/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/glsl/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/glsl/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/glsl/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/glsl/preprocessor_feature.test create mode 100644 docs/_style/prism-master/tests/languages/go/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/go/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/go/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/go/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/go/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/go/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/graphql/attr-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/graphql/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/graphql/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/graphql/directive_feature.test create mode 100644 docs/_style/prism-master/tests/languages/graphql/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/graphql/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/graphql/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/graphql/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/groovy/annotation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/groovy/issue1049.js create mode 100644 docs/_style/prism-master/tests/languages/groovy/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/groovy/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/groovy/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/groovy/shebang_feature.test create mode 100644 docs/_style/prism-master/tests/languages/groovy/spock-block_feature.test create mode 100644 docs/_style/prism-master/tests/languages/groovy/string-interpolation_feature.js create mode 100644 docs/_style/prism-master/tests/languages/groovy/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haml/code_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haml/doctype_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haml/interpolation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haml/multiline-code_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haml/multiline-comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haml/tag_feature.test create mode 100644 docs/_style/prism-master/tests/languages/handlebars+pug/handlebars_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/handlebars/block_feature.test create mode 100644 docs/_style/prism-master/tests/languages/handlebars/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/handlebars/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/handlebars/handlebars_in_markup_feature.test create mode 100644 docs/_style/prism-master/tests/languages/handlebars/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/handlebars/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haskell/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haskell/char_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haskell/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haskell/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haskell/hvariable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haskell/import_statement_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haskell/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haskell/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haskell/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haskell/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haxe/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haxe/metadata_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haxe/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haxe/preprocessor_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haxe/regex_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haxe/reification_feature.test create mode 100644 docs/_style/prism-master/tests/languages/haxe/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/hpkp/safe_maxage_feature.test create mode 100644 docs/_style/prism-master/tests/languages/hpkp/sha256_pin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/hpkp/unsafe_maxage_feature.test create mode 100644 docs/_style/prism-master/tests/languages/hsts/include_subdomains_feature.test create mode 100644 docs/_style/prism-master/tests/languages/hsts/preload_feature.test create mode 100644 docs/_style/prism-master/tests/languages/hsts/safe_maxage_feature.test create mode 100644 docs/_style/prism-master/tests/languages/hsts/unsafe_maxage_feature.test create mode 100644 docs/_style/prism-master/tests/languages/http/header-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/http/request-line_feature.test create mode 100644 docs/_style/prism-master/tests/languages/http/response-status_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ichigojam/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ichigojam/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ichigojam/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ichigojam/label_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ichigojam/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ichigojam/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ichigojam/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/icon/builtin-keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/icon/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/icon/directive_feature.test create mode 100644 docs/_style/prism-master/tests/languages/icon/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/icon/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/icon/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/icon/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/icon/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/inform7/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/inform7/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/inform7/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/inform7/position_feature.test create mode 100644 docs/_style/prism-master/tests/languages/inform7/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/inform7/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/inform7/title_feature.test create mode 100644 docs/_style/prism-master/tests/languages/inform7/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/inform7/verb_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ini/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ini/key_value_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ini/selector_feature.test create mode 100644 docs/_style/prism-master/tests/languages/io/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/io/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/io/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/io/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/j/adverb_feature.test create mode 100644 docs/_style/prism-master/tests/languages/j/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/j/conjunction_feature.test create mode 100644 docs/_style/prism-master/tests/languages/j/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/j/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/j/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/j/verb_feature.test create mode 100644 docs/_style/prism-master/tests/languages/java/function_featrue.test create mode 100644 docs/_style/prism-master/tests/languages/java/generics_feature.test create mode 100644 docs/_style/prism-master/tests/languages/java/issue1351.test create mode 100644 docs/_style/prism-master/tests/languages/java/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/java/module_feature.test create mode 100644 docs/_style/prism-master/tests/languages/java/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/java/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/java/package_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javascript+haml/javascript_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/javascript+http/javascript_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/class-method_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/function-variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/issue1337.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/issue1340.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/issue1397.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/issue1526.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/regex_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/supposed-classes_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/supposed-function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/template-string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javascript/try-catch_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javastacktrace/more_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javastacktrace/stack-frame_feature.test create mode 100644 docs/_style/prism-master/tests/languages/javastacktrace/summary_feature.test create mode 100644 docs/_style/prism-master/tests/languages/jolie/deployment_features.test create mode 100644 docs/_style/prism-master/tests/languages/jolie/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/jolie/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/jolie/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/json+http/json-suffix_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/json+http/json_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/json/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/json/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/json/null_feature.test create mode 100644 docs/_style/prism-master/tests/languages/json/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/json/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/json/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/json/punctuation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/json/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/jsx/issue1103.test create mode 100644 docs/_style/prism-master/tests/languages/jsx/issue1235.test create mode 100644 docs/_style/prism-master/tests/languages/jsx/issue1236.test create mode 100644 docs/_style/prism-master/tests/languages/jsx/issue1294.test create mode 100644 docs/_style/prism-master/tests/languages/jsx/issue1335.test create mode 100644 docs/_style/prism-master/tests/languages/jsx/issue1342.test create mode 100644 docs/_style/prism-master/tests/languages/jsx/issue1356.test create mode 100644 docs/_style/prism-master/tests/languages/jsx/issue1364.test create mode 100644 docs/_style/prism-master/tests/languages/jsx/issue1408.test create mode 100644 docs/_style/prism-master/tests/languages/jsx/issue1421.test create mode 100644 docs/_style/prism-master/tests/languages/jsx/plain-text_feature.test create mode 100644 docs/_style/prism-master/tests/languages/jsx/tag_feature.test create mode 100644 docs/_style/prism-master/tests/languages/julia/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/julia/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/julia/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/julia/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/julia/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/julia/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/keyman/atrule_feature.test create mode 100644 docs/_style/prism-master/tests/languages/keyman/bold_feature.test create mode 100644 docs/_style/prism-master/tests/languages/keyman/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/keyman/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/keyman/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/keyman/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/keyman/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/keyman/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/keyman/tag_feature.test create mode 100644 docs/_style/prism-master/tests/languages/kotlin/annotation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/kotlin/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/kotlin/interpolation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/kotlin/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/kotlin/label_feature.test create mode 100644 docs/_style/prism-master/tests/languages/kotlin/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/kotlin/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/kotlin/raw-string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/latex/cdata_feature.test create mode 100644 docs/_style/prism-master/tests/languages/latex/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/latex/equation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/latex/headline_feature.test create mode 100644 docs/_style/prism-master/tests/languages/latex/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/latex/url_feature.test create mode 100644 docs/_style/prism-master/tests/languages/less+haml/less_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/less+pug/less_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/less/atrule_feature.test create mode 100644 docs/_style/prism-master/tests/languages/less/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/less/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/less/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/less/selector_feature.test create mode 100644 docs/_style/prism-master/tests/languages/liquid/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/liquid/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/liquid/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/liquid/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/car_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/declare_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/defun_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/defvar_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/heading_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/interactive_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/lambda-feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/lisp-property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/number_boolean.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/punctuation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/quoted-symbol_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/splice_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lisp/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/livescript/argument_feature.test create mode 100644 docs/_style/prism-master/tests/languages/livescript/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/livescript/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/livescript/identifier_feature.test create mode 100644 docs/_style/prism-master/tests/languages/livescript/interpolated-string.test create mode 100644 docs/_style/prism-master/tests/languages/livescript/keyword-operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/livescript/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/livescript/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/livescript/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/livescript/regex_feature.test create mode 100644 docs/_style/prism-master/tests/languages/livescript/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lolcode/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lolcode/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lolcode/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lolcode/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lolcode/label_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lolcode/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lolcode/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lolcode/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lolcode/symbol_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lolcode/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lua/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lua/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lua/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lua/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lua/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/lua/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/makefile/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/makefile/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/makefile/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/makefile/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/makefile/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/makefile/symbol_feature.test create mode 100644 docs/_style/prism-master/tests/languages/makefile/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markdown+haml/markdown_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/markdown+pug/markdown_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/markdown/blockquote_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markdown/bold_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markdown/code_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markdown/hr_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markdown/italic_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markdown/list_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markdown/strike_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markdown/title_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markdown/url-reference_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markdown/url_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup!+css+javascript/issue1240.test create mode 100644 docs/_style/prism-master/tests/languages/markup!+css/css_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/markup!+javascript/javascript_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/markup+actionscript/xml_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup+css+wiki/table-tag_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup+haml/markup_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup+http/html_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/markup+http/xml-suffix_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/markup+http/xml_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/markup+javascript+csharp+aspnet/script_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup+php/php_in_markup_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup+pug/markup_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup+tt2/tt2_in_markup_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup/cdata_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup/doctype_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup/entity_feature.js create mode 100644 docs/_style/prism-master/tests/languages/markup/entity_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup/issue585.test create mode 100644 docs/_style/prism-master/tests/languages/markup/issue888.test create mode 100644 docs/_style/prism-master/tests/languages/markup/prolog_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup/tag_attribute_feature.test create mode 100644 docs/_style/prism-master/tests/languages/markup/tag_feature.test create mode 100644 docs/_style/prism-master/tests/languages/matlab/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/matlab/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/matlab/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/matlab/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/matlab/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/matlab/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mel/code_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mel/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mel/flag_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mel/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mel/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mel/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mel/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mel/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mel/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mizar/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mizar/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mizar/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mizar/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mizar/parameter_feature.test create mode 100644 docs/_style/prism-master/tests/languages/mizar/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/monkey/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/monkey/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/monkey/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/monkey/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/monkey/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/monkey/preprocessor_feature.test create mode 100644 docs/_style/prism-master/tests/languages/monkey/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/monkey/type-char_feature.test create mode 100644 docs/_style/prism-master/tests/languages/n4js/annotation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/n4js/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nasm/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nasm/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nasm/label_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nasm/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nasm/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nasm/register_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nasm/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nginx/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nginx/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nginx/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nim/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nim/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nim/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nim/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nim/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nim/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nix/antiquotation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nix/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nix/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nix/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nix/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nix/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nix/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nix/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nix/url_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nsis/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nsis/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nsis/important_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nsis/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nsis/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nsis/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nsis/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nsis/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/nsis/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/objectivec/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/objectivec/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/objectivec/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ocaml/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ocaml/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ocaml/directive_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ocaml/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ocaml/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ocaml/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ocaml/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ocaml/type_feature.test create mode 100644 docs/_style/prism-master/tests/languages/opencl+c/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/opencl+c/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/opencl+c/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/opencl+c/type_feature.test create mode 100644 docs/_style/prism-master/tests/languages/opencl+cpp/type_feature.test create mode 100644 docs/_style/prism-master/tests/languages/opencl/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/opencl/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/opencl/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/oz/atom_feature.test create mode 100644 docs/_style/prism-master/tests/languages/oz/attr-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/oz/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/oz/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/oz/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/oz/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/oz/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/oz/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/oz/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parigp/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parigp/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parigp/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parigp/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parigp/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parigp/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parser/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parser/escape_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parser/expression_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parser/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parser/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parser/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parser/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parser/parser-comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parser/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/parser/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pascal/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pascal/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pascal/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pascal/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pascal/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/perl/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/perl/filehandle_feature.test create mode 100644 docs/_style/prism-master/tests/languages/perl/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/perl/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/perl/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/perl/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/perl/regex_feature.test create mode 100644 docs/_style/prism-master/tests/languages/perl/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/perl/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/perl/vstring_feature.test create mode 100644 docs/_style/prism-master/tests/languages/php!+php-extras/global_feature.test create mode 100644 docs/_style/prism-master/tests/languages/php!+php-extras/scope_feature.test create mode 100644 docs/_style/prism-master/tests/languages/php!+php-extras/this_feature.test create mode 100644 docs/_style/prism-master/tests/languages/php/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/php/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/php/delimiter_feature.test create mode 100644 docs/_style/prism-master/tests/languages/php/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/php/package_feature.test create mode 100644 docs/_style/prism-master/tests/languages/php/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/php/shell-comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/php/string-interpolation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/php/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/php/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/plsql/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/plsql/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/plsql/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/powershell/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/powershell/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/powershell/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/powershell/issue1407.test create mode 100644 docs/_style/prism-master/tests/languages/powershell/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/powershell/namespace_feature.test create mode 100644 docs/_style/prism-master/tests/languages/powershell/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/powershell/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/powershell/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/processing/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/processing/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/processing/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/processing/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/processing/type_feature.test create mode 100644 docs/_style/prism-master/tests/languages/prolog/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/prolog/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/prolog/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/prolog/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/prolog/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/prolog/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/prolog/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/properties/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/properties/key_value_feature.test create mode 100644 docs/_style/prism-master/tests/languages/protobuf/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/protobuf/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pug/code_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pug/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pug/doctype_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pug/flow-control_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pug/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pug/mixin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pug/multiline-plain-text_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pug/multiline-script_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pug/plain-text_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pug/script_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pug/tag_feature.test create mode 100644 docs/_style/prism-master/tests/languages/puppet/attr-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/puppet/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/puppet/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/puppet/datatype_feature.test create mode 100644 docs/_style/prism-master/tests/languages/puppet/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/puppet/heredoc_feature.test create mode 100644 docs/_style/prism-master/tests/languages/puppet/interpolation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/puppet/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/puppet/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/puppet/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/puppet/regex_feature.test create mode 100644 docs/_style/prism-master/tests/languages/puppet/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/puppet/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pure/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pure/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pure/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pure/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pure/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pure/special_feature.test create mode 100644 docs/_style/prism-master/tests/languages/pure/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/python/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/python/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/python/class-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/python/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/python/decorator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/python/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/python/issue1355.test create mode 100644 docs/_style/prism-master/tests/languages/python/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/python/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/python/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/python/string-interpolation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/python/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/python/triple-quoted-string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/q/adverb_feature.test create mode 100644 docs/_style/prism-master/tests/languages/q/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/q/datetime_feature.test create mode 100644 docs/_style/prism-master/tests/languages/q/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/q/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/q/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/q/symbol_feature.test create mode 100644 docs/_style/prism-master/tests/languages/q/verb_feature.test create mode 100644 docs/_style/prism-master/tests/languages/qore/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/qore/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/qore/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/qore/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/qore/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/qore/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/qore/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/qore/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/r/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/r/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/r/ellipsis_feature.test create mode 100644 docs/_style/prism-master/tests/languages/r/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/r/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/r/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/r/percent-operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/r/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/reason/character_feature.test create mode 100644 docs/_style/prism-master/tests/languages/reason/class-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/reason/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/reason/constructor_feature.test create mode 100644 docs/_style/prism-master/tests/languages/reason/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/reason/label_feature.test create mode 100644 docs/_style/prism-master/tests/languages/reason/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/reason/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/command-line-option_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/directive_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/doctest-block_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/field_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/hr_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/inline_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/link-target_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/link_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/list-bullet_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/literal-block_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/quoted-literal-block_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/substitution-def_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/table_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rest/title_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rip/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rip/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rip/character_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rip/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rip/date_time_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rip/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rip/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rip/reference_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rip/regex_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rip/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rip/symbol_feature.test create mode 100644 docs/_style/prism-master/tests/languages/roboconf/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/roboconf/component_feature.test create mode 100644 docs/_style/prism-master/tests/languages/roboconf/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/roboconf/optional_feature.test create mode 100644 docs/_style/prism-master/tests/languages/roboconf/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/roboconf/value_feature.test create mode 100644 docs/_style/prism-master/tests/languages/roboconf/wildcard_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ruby/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ruby/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ruby/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ruby/issue1336.test create mode 100644 docs/_style/prism-master/tests/languages/ruby/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ruby/method_definition_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ruby/regex_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ruby/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ruby/symbol_feature.test create mode 100644 docs/_style/prism-master/tests/languages/ruby/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rust/attribute_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rust/char_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rust/closure-params_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rust/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rust/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rust/issue1339.test create mode 100644 docs/_style/prism-master/tests/languages/rust/issue1353.test create mode 100644 docs/_style/prism-master/tests/languages/rust/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rust/lifetime-annotation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rust/macro-rules_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rust/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rust/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/rust/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sas/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sas/datalines_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sas/datetime_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sas/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sas/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sas/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sas/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sass/atrule-line_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sass/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sass/property-line_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sass/selector_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sass/variable-line_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scala/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scala/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scala/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scala/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scala/symbol_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scheme/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scheme/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scheme/character_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scheme/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scheme/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scheme/issue1331.test create mode 100644 docs/_style/prism-master/tests/languages/scheme/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scheme/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scheme/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scheme/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scss+haml/scss_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/scss+pug/scss_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/scss/atrule_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scss/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scss/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scss/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scss/null_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scss/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scss/placeholder_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scss/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scss/selector_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scss/statement_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scss/url_feature.test create mode 100644 docs/_style/prism-master/tests/languages/scss/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smalltalk/block-arguments_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smalltalk/character_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smalltalk/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smalltalk/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smalltalk/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smalltalk/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smalltalk/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smalltalk/symbol_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smalltalk/temporary-variables_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smarty/attr-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smarty/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smarty/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smarty/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smarty/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smarty/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smarty/smarty_in_markup_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smarty/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/smarty/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/soy/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/soy/command-arg.test create mode 100644 docs/_style/prism-master/tests/languages/soy/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/soy/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/soy/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/soy/literal_feature.test create mode 100644 docs/_style/prism-master/tests/languages/soy/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/soy/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/soy/parameter_feature.test create mode 100644 docs/_style/prism-master/tests/languages/soy/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/soy/soy_in_markup_feature.test create mode 100644 docs/_style/prism-master/tests/languages/soy/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/soy/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sql/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sql/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sql/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sql/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sql/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sql/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sql/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/sql/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus+pug/stylus_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/atrule-declaration_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/func_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/hexcode_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/important_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/property-declaration_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/selector_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/url_feature.test create mode 100644 docs/_style/prism-master/tests/languages/stylus/variable-declaration_feature.test create mode 100644 docs/_style/prism-master/tests/languages/swift/atrule_feature.test create mode 100644 docs/_style/prism-master/tests/languages/swift/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/swift/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/swift/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/swift/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/swift/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tap/bail_out_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tap/directive_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tap/pass_fail_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tap/plan_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tap/pragma_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tap/version_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tap/yamlish_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tcl/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tcl/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tcl/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tcl/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tcl/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tcl/scope_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tcl/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tcl/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/textile/acronym_feature.test create mode 100644 docs/_style/prism-master/tests/languages/textile/block-tag_feature.test create mode 100644 docs/_style/prism-master/tests/languages/textile/footnote_feature.test create mode 100644 docs/_style/prism-master/tests/languages/textile/image_feature.test create mode 100644 docs/_style/prism-master/tests/languages/textile/inline_feature.test create mode 100644 docs/_style/prism-master/tests/languages/textile/link-ref_feature.test create mode 100644 docs/_style/prism-master/tests/languages/textile/link_feature.test create mode 100644 docs/_style/prism-master/tests/languages/textile/list_feature.test create mode 100644 docs/_style/prism-master/tests/languages/textile/mark_feature.test create mode 100644 docs/_style/prism-master/tests/languages/textile/table_feature.test create mode 100644 docs/_style/prism-master/tests/languages/toml/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/toml/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/toml/date_feature.test create mode 100644 docs/_style/prism-master/tests/languages/toml/key_feature.test create mode 100644 docs/_style/prism-master/tests/languages/toml/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/toml/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/toml/table_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tsx/tag_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tt2/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tt2/delimiter_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tt2/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tt2/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tt2/string-interpolation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tt2/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/tt2/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/twig+pug/twig_inclusion.test create mode 100644 docs/_style/prism-master/tests/languages/twig/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/twig/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/twig/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/twig/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/twig/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/twig/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/typescript/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/typescript/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vala/class-name_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vala/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vala/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vala/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vala/punctuation_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vala/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vbnet/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vbnet/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/velocity/directive_feature.test create mode 100644 docs/_style/prism-master/tests/languages/velocity/unparsed_feature.test create mode 100644 docs/_style/prism-master/tests/languages/velocity/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/velocity/velocity-comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/verilog/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/verilog/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/verilog/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/verilog/important_feature.test create mode 100644 docs/_style/prism-master/tests/languages/verilog/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/verilog/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/verilog/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/verilog/property_feature.test create mode 100644 docs/_style/prism-master/tests/languages/verilog/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vhdl/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vhdl/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vhdl/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vhdl/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vhdl/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vhdl/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vhdl/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vhdl/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vhdl/vhdl-vectors_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vim/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vim/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vim/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vim/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vim/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vim/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/vim/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/visual-basic/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/visual-basic/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/visual-basic/date_feature.test create mode 100644 docs/_style/prism-master/tests/languages/visual-basic/directive_feature.test create mode 100644 docs/_style/prism-master/tests/languages/visual-basic/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/visual-basic/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/visual-basic/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/visual-basic/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/wasm/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/wasm/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/wasm/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/wasm/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/wasm/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/wiki/block-comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/wiki/emphasis_feature.test create mode 100644 docs/_style/prism-master/tests/languages/wiki/heading_feature.test create mode 100644 docs/_style/prism-master/tests/languages/wiki/hr_feature.test create mode 100644 docs/_style/prism-master/tests/languages/wiki/nowiki_feature.test create mode 100644 docs/_style/prism-master/tests/languages/wiki/symbol_feature.test create mode 100644 docs/_style/prism-master/tests/languages/wiki/url_feature.test create mode 100644 docs/_style/prism-master/tests/languages/wiki/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xeora/constant_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xeora/directive-block-close_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xeora/directive-block-open_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xeora/directive-block-separator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xeora/directive-inline_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xeora/function-block_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xeora/function-inline_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xeora/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xojo/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xojo/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xojo/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xojo/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xojo/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xojo/symbol_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/axis_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/builtin_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/extension_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/function_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/keyword-operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/keyword_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/operator_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/plain-text_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/tag_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/variable_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/xquery-attribute_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/xquery-comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/xquery/xquery-element_feature.test create mode 100644 docs/_style/prism-master/tests/languages/yaml/boolean_feature.test create mode 100644 docs/_style/prism-master/tests/languages/yaml/comment_feature.test create mode 100644 docs/_style/prism-master/tests/languages/yaml/datetime_feature.test create mode 100644 docs/_style/prism-master/tests/languages/yaml/directive_feature.test create mode 100644 docs/_style/prism-master/tests/languages/yaml/important_feature.test create mode 100644 docs/_style/prism-master/tests/languages/yaml/key_feature.test create mode 100644 docs/_style/prism-master/tests/languages/yaml/null_feature.test create mode 100644 docs/_style/prism-master/tests/languages/yaml/number_feature.test create mode 100644 docs/_style/prism-master/tests/languages/yaml/scalar_feature.test create mode 100644 docs/_style/prism-master/tests/languages/yaml/string_feature.test create mode 100644 docs/_style/prism-master/tests/languages/yaml/tag_feature.test create mode 100644 docs/_style/prism-master/tests/run.js create mode 100644 docs/_style/prism-master/tests/testrunner-tests.js create mode 100644 docs/_style/prism-master/themes/prism-coy.css create mode 100644 docs/_style/prism-master/themes/prism-dark.css create mode 100644 docs/_style/prism-master/themes/prism-funky.css create mode 100644 docs/_style/prism-master/themes/prism-okaidia.css create mode 100644 docs/_style/prism-master/themes/prism-solarizedlight.css create mode 100644 docs/_style/prism-master/themes/prism-tomorrow.css create mode 100644 docs/_style/prism-master/themes/prism-twilight.css create mode 100644 docs/_style/prism-master/themes/prism.css create mode 100644 docs/_style/prism-master/utopia.js create mode 100644 docs/_style/prism-master/vendor/FileSaver.min.js create mode 100644 docs/_style/prism-master/vendor/jszip.min.js create mode 100644 docs/_style/prism-master/vendor/promise.js create mode 100644 docs/index.html.dump diff --git a/docs/_style/prism-master/.editorconfig b/docs/_style/prism-master/.editorconfig new file mode 100644 index 00000000..b2e4603b --- /dev/null +++ b/docs/_style/prism-master/.editorconfig @@ -0,0 +1,14 @@ +root = true + +[*] +insert_final_newline = false +charset = utf-8 +indent_style = tab +indent_size = 4 + +[tests/languages/**.test] +end_of_line = crlf + +[{package.json,.travis.yml}] +indent_style = space +indent_size = 2 \ No newline at end of file diff --git a/docs/_style/prism-master/.gitattributes b/docs/_style/prism-master/.gitattributes new file mode 100644 index 00000000..1d598bdc --- /dev/null +++ b/docs/_style/prism-master/.gitattributes @@ -0,0 +1,4 @@ +* text=auto + +# Test files should not have their line endings modified by git +/tests/languages/**/*.test binary \ No newline at end of file diff --git a/docs/_style/prism-master/.gitignore b/docs/_style/prism-master/.gitignore new file mode 100644 index 00000000..3b16b7d3 --- /dev/null +++ b/docs/_style/prism-master/.gitignore @@ -0,0 +1,4 @@ +hide-*.js +node_modules +.idea/ +.DS_Store diff --git a/docs/_style/prism-master/.npmignore b/docs/_style/prism-master/.npmignore new file mode 100644 index 00000000..2ff075c9 --- /dev/null +++ b/docs/_style/prism-master/.npmignore @@ -0,0 +1,27 @@ +.idea +*.iml + +hide-*.js + +CNAME +examples/ +img/ +templates/ +tests/ +vendor/ +*.tgz +*.html +style.css +favicon.png +logo.svg +bower.json +composer.json +download.js +examples.js +gulpfile.js +prefixfree.min.js +utopia.js +code.js +.editorconfig +.gitattributes +.travis.yml \ No newline at end of file diff --git a/docs/_style/prism-master/.travis.yml b/docs/_style/prism-master/.travis.yml new file mode 100644 index 00000000..3d0c7d16 --- /dev/null +++ b/docs/_style/prism-master/.travis.yml @@ -0,0 +1,23 @@ +language: node_js +node_js: +- '4' +- '6' +- '8' +- '9' +# Build all branches +branches: + only: + - gh-pages + - /.*/ +before_script: +- npm install -g gulp +- gulp +script: npm test +deploy: + provider: npm + email: lea@verou.me + api_key: + secure: TjRcXEr7Y/9KRJ4EOEQbd2Ij8hxKj8c/yOpEROy2lTYv6QH9x46nFDgZEE3VHfp/nnBUYpC47dRaSxiUj8H5rtkMNCZrREZu1n1zahmzP6dI6kCj+H3GiY7yw/Jhdx3uvQZHwknW2TJ/YRsLeQsmMSG2HnJobY9Zn4REX5ccP2E= + on: + tags: true + repo: PrismJS/prism diff --git a/docs/_style/prism-master/CHANGELOG.md b/docs/_style/prism-master/CHANGELOG.md new file mode 100644 index 00000000..14c64052 --- /dev/null +++ b/docs/_style/prism-master/CHANGELOG.md @@ -0,0 +1,1334 @@ +# Prism Changelog + +## 1.15.0 (2018-06-16) + +### New components + +* __Template Tookit 2__ ([#1418](https://github.com/PrismJS/prism/issues/1418)) [[`e063992`](https://github.com/PrismJS/prism/commit/e063992)] +* __XQuery__ ([#1411](https://github.com/PrismJS/prism/issues/1411)) [[`e326cb0`](https://github.com/PrismJS/prism/commit/e326cb0)] +* __TAP__ ([#1430](https://github.com/PrismJS/prism/issues/1430)) [[`8c2b71f`](https://github.com/PrismJS/prism/commit/8c2b71f)] + +### Updated components + +* __HTTP__ + * Absolute path is a valid request uri ([#1388](https://github.com/PrismJS/prism/issues/1388)) [[`f6e81cb`](https://github.com/PrismJS/prism/commit/f6e81cb)] +* __Kotlin__ + * Add keywords of Kotlin and modify it's number pattern. ([#1389](https://github.com/PrismJS/prism/issues/1389)) [[`1bf73b0`](https://github.com/PrismJS/prism/commit/1bf73b0)] + * Add `typealias` keyword ([#1437](https://github.com/PrismJS/prism/issues/1437)) [[`a21fdee`](https://github.com/PrismJS/prism/commit/a21fdee)] +* __JavaScript + * Improve Regexp pattern [[`5b043cf`](https://github.com/PrismJS/prism/commit/5b043cf)] + * Add support for one level of nesting inside template strings. Fix [#1397](https://github.com/PrismJS/prism/issues/1397) [[`db2d0eb`](https://github.com/PrismJS/prism/commit/db2d0eb)] +* __Elixir__ + * Elixir: Fix attributes consuming punctuation. Fix [#1392](https://github.com/PrismJS/prism/issues/1392) [[`dac0485`](https://github.com/PrismJS/prism/commit/dac0485)] +* __Bash__ + * Change reserved keyword reference ([#1396](https://github.com/PrismJS/prism/issues/1396)) [[`b94f01f`](https://github.com/PrismJS/prism/commit/b94f01f)] +* __PowerShell__ + * Allow for one level of nesting in expressions inside strings. Fix [#1407](https://github.com/PrismJS/prism/issues/1407) [[`9272d6f`](https://github.com/PrismJS/prism/commit/9272d6f)] +* __JSX__ + * Allow for two levels of nesting inside JSX tags. Fix [#1408](https://github.com/PrismJS/prism/issues/1408) [[`f1cd7c5`](https://github.com/PrismJS/prism/commit/f1cd7c5)] + * Add support for fragments short syntax. Fix [#1421](https://github.com/PrismJS/prism/issues/1421) [[`38ce121`](https://github.com/PrismJS/prism/commit/38ce121)] +* __Pascal__ + * Add `objectpascal` as an alias to `pascal` ([#1426](https://github.com/PrismJS/prism/issues/1426)) [[`a0bfc84`](https://github.com/PrismJS/prism/commit/a0bfc84)] +* __Swift__ + * Fix Swift 'protocol' keyword ([#1440](https://github.com/PrismJS/prism/issues/1440)) [[`081e318`](https://github.com/PrismJS/prism/commit/081e318)] + +### Updated plugins + +* __File Highlight__ + * Fix issue causing the Download button to show up on every code blocks. [[`cd22499`](https://github.com/PrismJS/prism/commit/cd22499)] + * Simplify lang regex on File Highlight plugin ([#1399](https://github.com/PrismJS/prism/issues/1399)) [[`7bc9a4a`](https://github.com/PrismJS/prism/commit/7bc9a4a)] +* __Show Language__ + * Don't process language if block language not set ([#1410](https://github.com/PrismJS/prism/issues/1410)) [[`c111869`](https://github.com/PrismJS/prism/commit/c111869)] +* __Autoloader__ + * ASP.NET should require C# [[`fa328bb`](https://github.com/PrismJS/prism/commit/fa328bb)] +* __Line Numbers__ + * Make line-numbers styles more specific ([#1434](https://github.com/PrismJS/prism/issues/1434), [#1435](https://github.com/PrismJS/prism/issues/1435)) [[`9ee4f54`](https://github.com/PrismJS/prism/commit/9ee4f54)] + +### Updated themes + +* Add .token.class-name to rest of themes ([#1360](https://github.com/PrismJS/prism/issues/1360)) [[`f356dfe`](https://github.com/PrismJS/prism/commit/f356dfe)] + +### Other changes + +* __Website__ + * Site now loads over HTTPS! + * Use HTTPS / canonical URLs ([#1390](https://github.com/PrismJS/prism/issues/1390)) [[`95146c8`](https://github.com/PrismJS/prism/commit/95146c8)] + * Added Angular tutorial link [[`c436a7c`](https://github.com/PrismJS/prism/commit/c436a7c)] + * Use rel="icon" instead of rel="shortcut icon" ([#1398](https://github.com/PrismJS/prism/issues/1398)) [[`d95f8fb`](https://github.com/PrismJS/prism/commit/d95f8fb)] + * Fix Download page not handling multiple dependencies when from Redownload URL [[`c2ff248`](https://github.com/PrismJS/prism/commit/c2ff248)] + * Update documentation for node & webpack usage [[`1e99e96`](https://github.com/PrismJS/prism/commit/1e99e96)] +* Handle optional dependencies in `loadLanguages()` ([#1417](https://github.com/PrismJS/prism/issues/1417)) [[`84935ac`](https://github.com/PrismJS/prism/commit/84935ac)] +* Add Chinese translation [[`f2b1964`](https://github.com/PrismJS/prism/commit/f2b1964)] + +## 1.14.0 (2018-04-11) + +### New components +* __GEDCOM__ ([#1385](https://github.com/PrismJS/prism/issues/1385)) [[`6e0b20a`](https://github.com/PrismJS/prism/commit/6e0b20a)] +* __Lisp__ ([#1297](https://github.com/PrismJS/prism/issues/1297)) [[`46468f8`](https://github.com/PrismJS/prism/commit/46468f8)] +* __Markup Templating__ ([#1367](https://github.com/PrismJS/prism/issues/1367)) [[`5f9c078`](https://github.com/PrismJS/prism/commit/5f9c078)] +* __Soy__ ([#1387](https://github.com/PrismJS/prism/issues/1387)) [[`b4509bf`](https://github.com/PrismJS/prism/commit/b4509bf)] +* __Velocity__ ([#1378](https://github.com/PrismJS/prism/issues/1378)) [[`5a524f7`](https://github.com/PrismJS/prism/commit/5a524f7)] +* __Visual Basic__ ([#1382](https://github.com/PrismJS/prism/issues/1382)) [[`c673ec2`](https://github.com/PrismJS/prism/commit/c673ec2)] +* __WebAssembly__ ([#1386](https://github.com/PrismJS/prism/issues/1386)) [[`c28d8c5`](https://github.com/PrismJS/prism/commit/c28d8c5)] + +### Updated components +* __Bash__: + * Add curl to the list of common functions. Close [#1160](https://github.com/PrismJS/prism/issues/1160) [[`1bfc084`](https://github.com/PrismJS/prism/commit/1bfc084)] +* __C-like__: + * Make single-line comments greedy. Fix [#1337](https://github.com/PrismJS/prism/issues/1337). Make sure [#1340](https://github.com/PrismJS/prism/issues/1340) stays fixed. [[`571f2c5`](https://github.com/PrismJS/prism/commit/571f2c5)] +* __C#__: + * More generic class-name highlighting. Fix [#1365](https://github.com/PrismJS/prism/issues/1365) [[`a6837d2`](https://github.com/PrismJS/prism/commit/a6837d2)] + * More specific class-name highlighting. Fix [#1371](https://github.com/PrismJS/prism/issues/1371) [[`0a95f69`](https://github.com/PrismJS/prism/commit/0a95f69)] +* __Eiffel__: + * Fix verbatim strings. Fix [#1379](https://github.com/PrismJS/prism/issues/1379) [[`04df41b`](https://github.com/PrismJS/prism/commit/04df41b)] +* __Elixir__ + * Make regexps greedy, remove comment hacks. Update known failures and tests. [[`e93d61f`](https://github.com/PrismJS/prism/commit/e93d61f)] +* __ERB__: + * Make highlighting work properly in NodeJS ([#1367](https://github.com/PrismJS/prism/issues/1367)) [[`5f9c078`](https://github.com/PrismJS/prism/commit/5f9c078)] +* __Fortran__: + * Make single-line comments greedy. Update known failures and tests. [[`c083b78`](https://github.com/PrismJS/prism/commit/c083b78)] +* __Handlebars__: + * Make highlighting work properly in NodeJS ([#1367](https://github.com/PrismJS/prism/issues/1367)) [[`5f9c078`](https://github.com/PrismJS/prism/commit/5f9c078)] +* __Java__: + * Add support for generics. Fix [#1351](https://github.com/PrismJS/prism/issues/1351) [[`a5cf302`](https://github.com/PrismJS/prism/commit/a5cf302)] +* __JavaScript__: + * Add support for constants. Fix [#1348](https://github.com/PrismJS/prism/issues/1348) [[`9084481`](https://github.com/PrismJS/prism/commit/9084481)] + * Improve Regex matching [[`172d351`](https://github.com/PrismJS/prism/commit/172d351)] +* __JSX__: + * Fix highlighting of empty objects. Fix [#1364](https://github.com/PrismJS/prism/issues/1364) [[`b26bbb8`](https://github.com/PrismJS/prism/commit/b26bbb8)] +* __Monkey__: + * Make comments greedy. Update known failures and tests. [[`d7b2b43`](https://github.com/PrismJS/prism/commit/d7b2b43)] +* __PHP__: + * Make highlighting work properly in NodeJS ([#1367](https://github.com/PrismJS/prism/issues/1367)) [[`5f9c078`](https://github.com/PrismJS/prism/commit/5f9c078)] +* __Puppet__: + * Make heredoc, comments, regexps and strings greedy. Update known failures and tests. [[`0c139d1`](https://github.com/PrismJS/prism/commit/0c139d1)] +* __Q__: + * Make comments greedy. Update known failures and tests. [[`a0f5081`](https://github.com/PrismJS/prism/commit/a0f5081)] +* __Ruby__: + * Make multi-line comments greedy, remove single-line comment hack. Update known failures and tests. [[`b0e34fb`](https://github.com/PrismJS/prism/commit/b0e34fb)] +* __SQL__: + * Add missing keywords. Fix [#1374](https://github.com/PrismJS/prism/issues/1374) [[`238b195`](https://github.com/PrismJS/prism/commit/238b195)] + +### Updated plugins +* __Command Line__: + * Command Line: Allow specifying output prefix using data-filter-output attribute. ([#856](https://github.com/PrismJS/prism/issues/856)) [[`094d546`](https://github.com/PrismJS/prism/commit/094d546)] +* __File Highlight__: + * Add option to provide a download button, when used with the Toolbar plugin. Fix [#1030](https://github.com/PrismJS/prism/issues/1030) [[`9f22952`](https://github.com/PrismJS/prism/commit/9f22952)] + +### Updated themes +* __Default__: + * Reach AA contrast ratio level ([#1296](https://github.com/PrismJS/prism/issues/1296)) [[`8aea939`](https://github.com/PrismJS/prism/commit/8aea939)] + +### Other changes +* Website: Remove broken third-party tutorials from homepage [[`0efd6e1`](https://github.com/PrismJS/prism/commit/0efd6e1)] +* Docs: Mention `loadLanguages()` function on homepage in the nodeJS section. Close [#972](https://github.com/PrismJS/prism/issues/972), close [#593](https://github.com/PrismJS/prism/issues/593) [[`4a14d20`](https://github.com/PrismJS/prism/commit/4a14d20)] +* Core: Greedy patterns should always be matched against the full string. Fix [#1355](https://github.com/PrismJS/prism/issues/1355) [[`294efaa`](https://github.com/PrismJS/prism/commit/294efaa)] +* Crystal: Update known failures. [[`e1d2d42`](https://github.com/PrismJS/prism/commit/e1d2d42)] +* D: Update known failures and tests. [[`13d9991`](https://github.com/PrismJS/prism/commit/13d9991)] +* Markdown: Update known failures. [[`5b6c76d`](https://github.com/PrismJS/prism/commit/5b6c76d)] +* Matlab: Update known failures. [[`259b6fc`](https://github.com/PrismJS/prism/commit/259b6fc)] +* Website: Remove non-existent anchor to failures. Reword on homepage to make is less misleading. [[`8c0911a`](https://github.com/PrismJS/prism/commit/8c0911a)] +* Website: Add link to Keep Markup plugin in FAQ [[`e8cb6d4`](https://github.com/PrismJS/prism/commit/e8cb6d4)] +* Test suite: Memory leak in vm.runInNewContext() seems fixed. Revert [[`9a4b6fa`](https://github.com/PrismJS/prism/commit/9a4b6fa)] to drastically improve tests execution time. [[`9bceece`](https://github.com/PrismJS/prism/commit/9bceece), [`7c7602b`](https://github.com/PrismJS/prism/commit/7c7602b)] +* Gulp: Don't minify `components/index.js` [[`689227b`](https://github.com/PrismJS/prism/commit/689227b)] +* Website: Fix theme selection on Download page, when theme is in query string or hash. [[`b4d3063`](https://github.com/PrismJS/prism/commit/b4d3063)] +* Update JSPM config to also include unminified components. Close [#995](https://github.com/PrismJS/prism/issues/995) [[`218f160`](https://github.com/PrismJS/prism/commit/218f160)] +* Core: Fix support for language alias containing dash `-` [[`659ea31`](https://github.com/PrismJS/prism/commit/659ea31)] + +## 1.13.0 (2018-03-21) + +### New components +* __ERB__ [[`e6213ac`](https://github.com/PrismJS/prism/commit/e6213ac)] +* __PL/SQL__ ([#1338](https://github.com/PrismJS/prism/issues/1338)) [[`3599e6a`](https://github.com/PrismJS/prism/commit/3599e6a)] + +### Updated components +* __JSX__: + * Add support for plain text inside tags ([#1357](https://github.com/PrismJS/prism/issues/1357)) [[`2b8321d`](https://github.com/PrismJS/prism/commit/2b8321d)] +* __Markup__: + * Make tags greedy. Fix [#1356](https://github.com/PrismJS/prism/issues/1356) [[`af834be`](https://github.com/PrismJS/prism/commit/af834be)] +* __Powershell__: + * Add lookbehind to fix function interpolation inside strings. Fix [#1361](https://github.com/PrismJS/prism/issues/1361) [[`d2c026e`](https://github.com/PrismJS/prism/commit/d2c026e)] +* __Rust__: + * Improve char pattern so that lifetime annotations are matched better. Fix [#1353](https://github.com/PrismJS/prism/issues/1353) [[`efdccbf`](https://github.com/PrismJS/prism/commit/efdccbf)] + +### Updated themes +* __Default__: + * Add color for class names [[`8572474`](https://github.com/PrismJS/prism/commit/8572474)] +* __Coy__: + * Inherit pre's height on code, so it does not break on Download page. [[`c6c7fd1`](https://github.com/PrismJS/prism/commit/c6c7fd1)] + +### Other changes +* Website: Auto-generate example headers [[`c3ed5b5`](https://github.com/PrismJS/prism/commit/c3ed5b5)] +* Core: Allow cloning of circular structures. ([#1345](https://github.com/PrismJS/prism/issues/1345)) [[`f90d555`](https://github.com/PrismJS/prism/commit/f90d555)] +* Core: Generate components.js from components.json and make it exportable to nodeJS. ([#1354](https://github.com/PrismJS/prism/issues/1354)) [[`ba60df0`](https://github.com/PrismJS/prism/commit/ba60df0)] +* Website: Improve appearance of theme selector [[`0460cad`](https://github.com/PrismJS/prism/commit/0460cad)] +* Website: Check stored theme by default + link both theme selectors together. Close [#1038](https://github.com/PrismJS/prism/issues/1038) [[`212dd4e`](https://github.com/PrismJS/prism/commit/212dd4e)] +* Tests: Use the new components.js file directly [[`0e1a8b7`](https://github.com/PrismJS/prism/commit/0e1a8b7)] +* Update .npmignore Close [#1274](https://github.com/PrismJS/prism/issues/1274) [[`a52319a`](https://github.com/PrismJS/prism/commit/a52319a)] +* Add a loadLanguages() function for easy component loading on NodeJS ([#1359](https://github.com/PrismJS/prism/issues/1359)) [[`a5331a6`](https://github.com/PrismJS/prism/commit/a5331a6)] + +## 1.12.2 (2018-03-08) + +### Other changes +* Test against NodeJS 4, 6, 8 and 9 ([#1329](https://github.com/PrismJS/prism/issues/1329)) [[`97b7d0a`](https://github.com/PrismJS/prism/commit/97b7d0a)] +* Stop testing against NodeJS 0.10 and 0.12 [[`df01b1b`](https://github.com/PrismJS/prism/commit/df01b1b)] + +## 1.12.1 (2018-03-08) + +### Updated components +* __C-like__: + * Revert [[`b98e5b9`](https://github.com/PrismJS/prism/commit/b98e5b9)] to fix [#1340](https://github.com/PrismJS/prism/issues/1340). Reopened [#1337](https://github.com/PrismJS/prism/issues/1337). [[`cebacdf`](https://github.com/PrismJS/prism/commit/cebacdf)] +* __JSX__: + * Allow for one level of nested curly braces inside tag attribute value. Fix [#1335](https://github.com/PrismJS/prism/issues/1335) [[`05bf67d`](https://github.com/PrismJS/prism/commit/05bf67d)] +* __Ruby__: + * Ensure module syntax is not confused with symbols. Fix [#1336](https://github.com/PrismJS/prism/issues/1336) [[`31a2a69`](https://github.com/PrismJS/prism/commit/31a2a69)] + +## 1.12.0 (2018-03-07) + +### New components +* __ARFF__ ([#1327](https://github.com/PrismJS/prism/issues/1327)) [[`0bc98ac`](https://github.com/PrismJS/prism/commit/0bc98ac)] +* __Clojure__ ([#1311](https://github.com/PrismJS/prism/issues/1311)) [[`8b4d3bd`](https://github.com/PrismJS/prism/commit/8b4d3bd)] +* __Liquid__ ([#1326](https://github.com/PrismJS/prism/issues/1326)) [[`f0b2c9e`](https://github.com/PrismJS/prism/commit/f0b2c9e)] + +### Updated components +* __Bash__: + * Add shell as an alias ([#1321](https://github.com/PrismJS/prism/issues/1321)) [[`67e16a2`](https://github.com/PrismJS/prism/commit/67e16a2)] + * Add support for quoted command substitution. Fix [#1287](https://github.com/PrismJS/prism/issues/1287) [[`63fc215`](https://github.com/PrismJS/prism/commit/63fc215)] +* __C#__: + * Add "dotnet" alias. [[`405867c`](https://github.com/PrismJS/prism/commit/405867c)] +* __C-like__: + * Change order of comment patterns and make multi-line one greedy. Fix [#1337](https://github.com/PrismJS/prism/issues/1337) [[`b98e5b9`](https://github.com/PrismJS/prism/commit/b98e5b9)] +* __NSIS__: + * Add support for NSIS 3.03 ([#1288](https://github.com/PrismJS/prism/issues/1288)) [[`bd1e98b`](https://github.com/PrismJS/prism/commit/bd1e98b)] + * Add missing NSIS commands ([#1289](https://github.com/PrismJS/prism/issues/1289)) [[`ad2948f`](https://github.com/PrismJS/prism/commit/ad2948f)] +* __PHP__: + * Add support for string interpolation inside double-quoted strings. Fix [#1146](https://github.com/PrismJS/prism/issues/1146) [[`9f1f8d6`](https://github.com/PrismJS/prism/commit/9f1f8d6)] + * Add support for Heredoc and Nowdoc strings [[`5d7223c`](https://github.com/PrismJS/prism/commit/5d7223c)] + * Fix shell-comment failure now that strings are greedy [[`ad25d22`](https://github.com/PrismJS/prism/commit/ad25d22)] +* __PowerShell__: + * Add support for two levels of nested brackets inside namespace pattern. Fixes [#1317](https://github.com/PrismJS/prism/issues/1317) [[`3bc3e9c`](https://github.com/PrismJS/prism/commit/3bc3e9c)] +* __Ruby__: + * Add keywords "protected", "private" and "public" [[`4593837`](https://github.com/PrismJS/prism/commit/4593837)] +* __Rust__: + * Add support for lifetime-annotation and => operator. Fix [#1339](https://github.com/PrismJS/prism/issues/1339) [[`926f6f8`](https://github.com/PrismJS/prism/commit/926f6f8)] +* __Scheme__: + * Don't highlight first number of a list as a function. Fix [#1331](https://github.com/PrismJS/prism/issues/1331) [[`51bff80`](https://github.com/PrismJS/prism/commit/51bff80)] +* __SQL__: + * Add missing keywords and functions, fix numbers [[`de29d4a`](https://github.com/PrismJS/prism/commit/de29d4a)] + +### Updated plugins +* __Autolinker__: + * Allow more chars in query string and hash to match more URLs. Fix [#1142](https://github.com/PrismJS/prism/issues/1142) [[`109bd6f`](https://github.com/PrismJS/prism/commit/109bd6f)] +* __Copy to Clipboard__: + * Bump ClipboardJS to 2.0.0 and remove hack ([#1314](https://github.com/PrismJS/prism/issues/1314)) [[`e9f410e`](https://github.com/PrismJS/prism/commit/e9f410e)] +* __Toolbar__: + * Prevent scrolling toolbar with content ([#1305](https://github.com/PrismJS/prism/issues/1305), [#1314](https://github.com/PrismJS/prism/issues/1314)) [[`84eeb89`](https://github.com/PrismJS/prism/commit/84eeb89)] +* __Unescaped Markup__: + * Use msMatchesSelector for IE11 and below. Fix [#1302](https://github.com/PrismJS/prism/issues/1302) [[`c246c1a`](https://github.com/PrismJS/prism/commit/c246c1a)] +* __WebPlatform Docs__: + * WebPlatform Docs plugin: Fix links. Fixes [#1290](https://github.com/PrismJS/prism/issues/1290) [[`7a9dbe0`](https://github.com/PrismJS/prism/commit/7a9dbe0)] + +### Other changes +* Fix Autoloader's demo page [[`3dddac9`](https://github.com/PrismJS/prism/commit/3dddac9)] +* Download page: Use hash instead of query-string for redownload URL. Fix [#1263](https://github.com/PrismJS/prism/issues/1263) [[`b03c02a`](https://github.com/PrismJS/prism/commit/b03c02a)] +* Core: Don't thow an error if lookbehing is used without anything matching. [[`e0cd47f`](https://github.com/PrismJS/prism/commit/e0cd47f)] +* Docs: Fix link to the `` element specification in HTML5 [[`a84263f`](https://github.com/PrismJS/prism/commit/a84263f)] +* Docs: Mention support for `lang-xxxx` class. Close [#1312](https://github.com/PrismJS/prism/issues/1312) [[`a9e76db`](https://github.com/PrismJS/prism/commit/a9e76db)] +* Docs: Add note on `async` parameter to clarify the requirement of using a single bundled file. Closes [#1249](https://github.com/PrismJS/prism/issues/1249) [[`eba0235`](https://github.com/PrismJS/prism/commit/eba0235)] + +## 1.11.0 (2018-02-05) + +### New components +* __Content-Security-Policy (CSP)__ ([#1275](https://github.com/PrismJS/prism/issues/1275)) [[`b08cae5`](https://github.com/PrismJS/prism/commit/b08cae5)] +* __HTTP Public-Key-Pins (HPKP)__ ([#1275](https://github.com/PrismJS/prism/issues/1275)) [[`b08cae5`](https://github.com/PrismJS/prism/commit/b08cae5)] +* __HTTP String-Transport-Security (HSTS)__ ([#1275](https://github.com/PrismJS/prism/issues/1275)) [[`b08cae5`](https://github.com/PrismJS/prism/commit/b08cae5)] +* __React TSX__ ([#1280](https://github.com/PrismJS/prism/issues/1280)) [[`fbe82b8`](https://github.com/PrismJS/prism/commit/fbe82b8)] + +### Updated components +* __C++__: + * Add C++ platform-independent types ([#1271](https://github.com/PrismJS/prism/issues/1271)) [[`3da238f`](https://github.com/PrismJS/prism/commit/3da238f)] +* __TypeScript__: + * Improve typescript with builtins ([#1277](https://github.com/PrismJS/prism/issues/1277)) [[`5de1b1f`](https://github.com/PrismJS/prism/commit/5de1b1f)] + +### Other changes +* Fix passing of non-enumerable Error properties from the child test runner ([#1276](https://github.com/PrismJS/prism/issues/1276)) [[`38df653`](https://github.com/PrismJS/prism/commit/38df653)] + +## 1.10.0 (2018-01-17) + +### New components +* __6502 Assembly__ ([#1245](https://github.com/PrismJS/prism/issues/1245)) [[`2ece18b`](https://github.com/PrismJS/prism/commit/2ece18b)] +* __Elm__ ([#1174](https://github.com/PrismJS/prism/issues/1174)) [[`d6da70e`](https://github.com/PrismJS/prism/commit/d6da70e)] +* __IchigoJam BASIC__ ([#1246](https://github.com/PrismJS/prism/issues/1246)) [[`cf840be`](https://github.com/PrismJS/prism/commit/cf840be)] +* __Io__ ([#1251](https://github.com/PrismJS/prism/issues/1251)) [[`84ed3ed`](https://github.com/PrismJS/prism/commit/84ed3ed)] + +### Updated components +* __BASIC__: + * Make strings greedy [[`60114d0`](https://github.com/PrismJS/prism/commit/60114d0)] +* __C++__: + * Add C++11 raw string feature ([#1254](https://github.com/PrismJS/prism/issues/1254)) [[`71595be`](https://github.com/PrismJS/prism/commit/71595be)] + +### Updated plugins +* __Autoloader__: + * Add support for `data-autoloader-path` ([#1242](https://github.com/PrismJS/prism/issues/1242)) [[`39360d6`](https://github.com/PrismJS/prism/commit/39360d6)] +* __Previewers__: + * New plugin combining previous plugins Previewer: Base, Previewer: Angle, Previewer: Color, Previewer: Easing, Previewer: Gradient and Previewer: Time. ([#1244](https://github.com/PrismJS/prism/issues/1244)) [[`28e4b4c`](https://github.com/PrismJS/prism/commit/28e4b4c)] +* __Unescaped Markup__: + * Make it work with any language ([#1265](https://github.com/PrismJS/prism/issues/1265)) [[`7bcdae7`](https://github.com/PrismJS/prism/commit/7bcdae7)] + +### Other changes +* Add attribute `style` in `package.json` ([#1256](https://github.com/PrismJS/prism/issues/1256)) [[`a9b6785`](https://github.com/PrismJS/prism/commit/a9b6785)] + +## 1.9.0 (2017-12-06) + +### New components +* __Flow__ [[`d27b70d`](https://github.com/PrismJS/prism/commit/d27b70d)] + +### Updated components +* __CSS__: + * Unicode characters in CSS properties ([#1227](https://github.com/PrismJS/prism/issues/1227)) [[`f234ea4`](https://github.com/PrismJS/prism/commit/f234ea4)] +* __JSX__: + * JSX: Improve highlighting support. Fix [#1235](https://github.com/PrismJS/prism/issues/1235) and [#1236](https://github.com/PrismJS/prism/issues/1236) [[`f41c5cd`](https://github.com/PrismJS/prism/commit/f41c5cd)] +* __Markup__: + * Make CSS and JS inclusions in Markup greedy. Fix [#1240](https://github.com/PrismJS/prism/issues/1240) [[`7dc1e45`](https://github.com/PrismJS/prism/commit/7dc1e45)] +* __PHP__: + * Add support for multi-line strings. Fix [#1233](https://github.com/PrismJS/prism/issues/1233) [[`9a542a0`](https://github.com/PrismJS/prism/commit/9a542a0)] + +### Updated plugins +* __Copy to clipboard__: + * Fix test for native Clipboard. Fix [#1241](https://github.com/PrismJS/prism/issues/1241) [[`e7b5e82`](https://github.com/PrismJS/prism/commit/e7b5e82)] + * Copy to clipboard: Update to v1.7.1. Fix [#1220](https://github.com/PrismJS/prism/issues/1220) [[`a1b85e3`](https://github.com/PrismJS/prism/commit/a1b85e3), [`af50e44`](https://github.com/PrismJS/prism/commit/af50e44)] +* __Line highlight__: + * Fixes to compatibility of line number and line higlight plugins ([#1194](https://github.com/PrismJS/prism/issues/1194)) [[`e63058f`](https://github.com/PrismJS/prism/commit/e63058f), [`3842a91`](https://github.com/PrismJS/prism/commit/3842a91)] +* __Unescaped Markup__: + * Fix ambiguity in documentation by improving examples. Fix [#1197](https://github.com/PrismJS/prism/issues/1197) [[`924784a`](https://github.com/PrismJS/prism/commit/924784a)] + +### Other changes +* Allow any element being root instead of document. ([#1230](https://github.com/PrismJS/prism/issues/1230)) [[`69f2e2c`](https://github.com/PrismJS/prism/commit/69f2e2c), [`6e50d44`](https://github.com/PrismJS/prism/commit/6e50d44)] +* Coy Theme: The 'height' element makes code blocks the height of the browser canvas. ([#1224](https://github.com/PrismJS/prism/issues/1224)) [[`ac219d7`](https://github.com/PrismJS/prism/commit/ac219d7)] +* Download page: Fix implicitly declared variable [[`f986551`](https://github.com/PrismJS/prism/commit/f986551)] +* Download page: Add version number at the beginning of the generated files. Fix [#788](https://github.com/PrismJS/prism/issues/788) [[`928790d`](https://github.com/PrismJS/prism/commit/928790d)] + +## 1.8.4 (2017-11-05) + +### Updated components + +* __ABAP__: + * Regexp optimisation [[`7547f83`](https://github.com/PrismJS/prism/commit/7547f83)] +* __ActionScript__: + * Fix XML regex + optimise [[`75d00d7`](https://github.com/PrismJS/prism/commit/75d00d7)] +* __Ada__: + * Regexp simplification [[`e881fe3`](https://github.com/PrismJS/prism/commit/e881fe3)] +* __Apacheconf__: + * Regexp optimisation [[`a065e61`](https://github.com/PrismJS/prism/commit/a065e61)] +* __APL__: + * Regexp simplification [[`33297c4`](https://github.com/PrismJS/prism/commit/33297c4)] +* __AppleScript__: + * Regexp optimisation [[`d879f36`](https://github.com/PrismJS/prism/commit/d879f36)] +* __Arduino__: + * Don't use captures if not needed [[`16b338f`](https://github.com/PrismJS/prism/commit/16b338f)] +* __ASP.NET__: + * Regexp optimisation [[`438926c`](https://github.com/PrismJS/prism/commit/438926c)] +* __AutoHotkey__: + * Regexp simplification + don't use captures if not needed [[`5edfd2f`](https://github.com/PrismJS/prism/commit/5edfd2f)] +* __Bash__: + * Regexp optimisation and simplification [[`75b9b29`](https://github.com/PrismJS/prism/commit/75b9b29)] +* __Bro__: + * Regexp simplification + don't use captures if not needed [[`d4b9003`](https://github.com/PrismJS/prism/commit/d4b9003)] +* __C__: + * Regexp optimisation + don't use captures if not needed [[`f61d487`](https://github.com/PrismJS/prism/commit/f61d487)] +* __C++__: + * Fix operator regexp + regexp simplification + don't use captures if not needed [[`ffeb26e`](https://github.com/PrismJS/prism/commit/ffeb26e)] +* __C#__: + * Remove duplicates in keywords + regexp optimisation + don't use captures if not needed [[`d28d178`](https://github.com/PrismJS/prism/commit/d28d178)] +* __C-like__: + * Regexp simplification + don't use captures if not needed [[`918e0ff`](https://github.com/PrismJS/prism/commit/918e0ff)] +* __CoffeeScript__: + * Regexp optimisation + don't use captures if not needed [[`5895978`](https://github.com/PrismJS/prism/commit/5895978)] +* __Crystal__: + * Remove trailing comma [[`16979a3`](https://github.com/PrismJS/prism/commit/16979a3)] +* __CSS__: + * Regexp simplification + don't use captures if not needed + handle multi-line style attributes [[`43d9f36`](https://github.com/PrismJS/prism/commit/43d9f36)] +* __CSS Extras__: + * Regexp simplification [[`134ed70`](https://github.com/PrismJS/prism/commit/134ed70)] +* __D__: + * Regexp optimisation [[`fbe39c9`](https://github.com/PrismJS/prism/commit/fbe39c9)] +* __Dart__: + * Regexp optimisation [[`f24e919`](https://github.com/PrismJS/prism/commit/f24e919)] +* __Django__: + * Regexp optimisation [[`a95c51d`](https://github.com/PrismJS/prism/commit/a95c51d)] +* __Docker__: + * Regexp optimisation [[`27f99ff`](https://github.com/PrismJS/prism/commit/27f99ff)] +* __Eiffel__: + * Regexp optimisation [[`b7cdea2`](https://github.com/PrismJS/prism/commit/b7cdea2)] +* __Elixir__: + * Regexp optimisation + uniform behavior between ~r and ~s [[`5d12e80`](https://github.com/PrismJS/prism/commit/5d12e80)] +* __Erlang__: + * Regexp optimisation [[`e7b411e`](https://github.com/PrismJS/prism/commit/e7b411e)] +* __F#__: + * Regexp optimisation + don't use captures if not needed [[`7753fc4`](https://github.com/PrismJS/prism/commit/7753fc4)] +* __Gherkin__: + * Regexp optimisation + don't use captures if not needed + added explanation comment on table-body regexp [[`f26197a`](https://github.com/PrismJS/prism/commit/f26197a)] +* __Git__: + * Regexp optimisation [[`b9483b9`](https://github.com/PrismJS/prism/commit/b9483b9)] +* __GLSL__: + * Regexp optimisation [[`e66d21b`](https://github.com/PrismJS/prism/commit/e66d21b)] +* __Go__: + * Regexp optimisation + don't use captures if not needed [[`88caabb`](https://github.com/PrismJS/prism/commit/88caabb)] +* __GraphQL__: + * Regexp optimisation and simplification [[`2474f06`](https://github.com/PrismJS/prism/commit/2474f06)] +* __Groovy__: + * Regexp optimisation + don't use captures if not needed [[`e74e00c`](https://github.com/PrismJS/prism/commit/e74e00c)] +* __Haml__: + * Regexp optimisation + don't use captures if not needed + fix typo in comment [[`23e3b43`](https://github.com/PrismJS/prism/commit/23e3b43)] +* __Handlebars__: + * Regexp optimisation + don't use captures if not needed [[`09dbfce`](https://github.com/PrismJS/prism/commit/09dbfce)] +* __Haskell__: + * Regexp simplification + don't use captures if not needed [[`f11390a`](https://github.com/PrismJS/prism/commit/f11390a)] +* __HTTP__: + * Regexp simplification + don't use captures if not needed [[`37ef24e`](https://github.com/PrismJS/prism/commit/37ef24e)] +* __Icon__: + * Regexp optimisation [[`9cf64a0`](https://github.com/PrismJS/prism/commit/9cf64a0)] +* __J__: + * Regexp simplification [[`de15150`](https://github.com/PrismJS/prism/commit/de15150)] +* __Java__: + * Don't use captures if not needed [[`96b35c8`](https://github.com/PrismJS/prism/commit/96b35c8)] +* __JavaScript__: + * Regexp optimisation + don't use captures if not needed [[`93d4002`](https://github.com/PrismJS/prism/commit/93d4002)] +* __Jolie__: + * Regexp optimisation + don't use captures if not needed + remove duplicates in keywords [[`a491f9e`](https://github.com/PrismJS/prism/commit/a491f9e)] +* __JSON__: + * Make strings greedy, remove negative look-ahead for ":". Fix [#1204](https://github.com/PrismJS/prism/issues/1204) [[`98acd2d`](https://github.com/PrismJS/prism/commit/98acd2d)] + * Regexp optimisation + don't use captures if not needed [[`8fc1b03`](https://github.com/PrismJS/prism/commit/8fc1b03)] +* __JSX__: + * Regexp optimisation + handle spread operator as a whole [[`28de4e2`](https://github.com/PrismJS/prism/commit/28de4e2)] +* __Julia__: + * Regexp optimisation and simplification [[`12684c0`](https://github.com/PrismJS/prism/commit/12684c0)] +* __Keyman__: + * Regexp optimisation + don't use captures if not needed [[`9726087`](https://github.com/PrismJS/prism/commit/9726087)] +* __Kotlin__: + * Regexp simplification [[`12ff8dc`](https://github.com/PrismJS/prism/commit/12ff8dc)] +* __LaTeX__: + * Regexp optimisation and simplification [[`aa426b0`](https://github.com/PrismJS/prism/commit/aa426b0)] +* __LiveScript__: + * Make interpolated strings greedy + fix variable and identifier regexps [[`c581049`](https://github.com/PrismJS/prism/commit/c581049)] +* __LOLCODE__: + * Don't use captures if not needed [[`52903af`](https://github.com/PrismJS/prism/commit/52903af)] +* __Makefile__: + * Regexp optimisation [[`20ae2e5`](https://github.com/PrismJS/prism/commit/20ae2e5)] +* __Markdown__: + * Don't use captures if not needed [[`f489a1e`](https://github.com/PrismJS/prism/commit/f489a1e)] +* __Markup__: + * Regexp optimisation + fix punctuation inside attr-value [[`ea380c6`](https://github.com/PrismJS/prism/commit/ea380c6)] +* __MATLAB__: + * Make strings greedy + handle line feeds better [[`4cd4f01`](https://github.com/PrismJS/prism/commit/4cd4f01)] +* __Monkey__: + * Don't use captures if not needed [[`7f47140`](https://github.com/PrismJS/prism/commit/7f47140)] +* __N4JS__: + * Don't use captures if not needed [[`2d3f9df`](https://github.com/PrismJS/prism/commit/2d3f9df)] +* __NASM__: + * Regexp optimisation and simplification + don't use captures if not needed [[`9937428`](https://github.com/PrismJS/prism/commit/9937428)] +* __nginx__: + * Remove trailing comma + remove duplicates in keywords [[`c6e7195`](https://github.com/PrismJS/prism/commit/c6e7195)] +* __NSIS__: + * Regexp optimisation + don't use captures if not needed [[`beeb107`](https://github.com/PrismJS/prism/commit/beeb107)] +* __Objective-C__: + * Don't use captures if not needed [[`9be0f88`](https://github.com/PrismJS/prism/commit/9be0f88)] +* __OCaml__: + * Regexp simplification [[`5f5f38c`](https://github.com/PrismJS/prism/commit/5f5f38c)] +* __OpenCL__: + * Don't use captures if not needed [[`5e70f1d`](https://github.com/PrismJS/prism/commit/5e70f1d)] +* __Oz__: + * Fix atom regexp [[`9320e92`](https://github.com/PrismJS/prism/commit/9320e92)] +* __PARI/GP__: + * Regexp optimisation [[`2c7b59b`](https://github.com/PrismJS/prism/commit/2c7b59b)] +* __Parser__: + * Regexp simplification [[`569d511`](https://github.com/PrismJS/prism/commit/569d511)] +* __Perl__: + * Regexp optimisation and simplification + don't use captures if not needed [[`0fe4cf6`](https://github.com/PrismJS/prism/commit/0fe4cf6)] +* __PHP__: + * Don't use captures if not needed Golmote [[`5235f18`](https://github.com/PrismJS/prism/commit/5235f18)] +* __PHP Extras__: + * Add word boundary after global keywords + don't use captures if not needed [[`9049a2a`](https://github.com/PrismJS/prism/commit/9049a2a)] +* __PowerShell__: + * Regexp optimisation + don't use captures if not needed [[`0d05957`](https://github.com/PrismJS/prism/commit/0d05957)] +* __Processing__: + * Regexp simplification [[`8110d38`](https://github.com/PrismJS/prism/commit/8110d38)] +* __.properties__: + * Regexp optimisation [[`678b621`](https://github.com/PrismJS/prism/commit/678b621)] +* __Protocol Buffers__: + * Don't use captures if not needed [[`3e256d8`](https://github.com/PrismJS/prism/commit/3e256d8)] +* __Pug__: + * Don't use captures if not needed [[`76dc925`](https://github.com/PrismJS/prism/commit/76dc925)] +* __Pure__: + * Make inline-lang greedy [[`92318b0`](https://github.com/PrismJS/prism/commit/92318b0)] +* __Python__: + * Add Python builtin function highlighting ([#1205](https://github.com/PrismJS/prism/issues/1205)) [[`2169c99`](https://github.com/PrismJS/prism/commit/2169c99)] + * Python: Add highlighting to functions with space between name and parentheses ([#1207](https://github.com/PrismJS/prism/issues/1207)) [[`3badd8a`](https://github.com/PrismJS/prism/commit/3badd8a)] + * Make triple-quoted strings greedy + regexp optimisation and simplification [[`f09f9f5`](https://github.com/PrismJS/prism/commit/f09f9f5)] +* __Qore__: + * Regexp simplification [[`69459f0`](https://github.com/PrismJS/prism/commit/69459f0)] +* __R__: + * Regexp optimisation [[`06a9da4`](https://github.com/PrismJS/prism/commit/06a9da4)] +* __Reason__: + * Regexp optimisation + don't use capture if not needed [[`19d79b4`](https://github.com/PrismJS/prism/commit/19d79b4)] +* __Ren'py__: + * Make strings greedy + don't use captures if not needed [[`91d84d9`](https://github.com/PrismJS/prism/commit/91d84d9)] +* __reST__: + * Regexp simplification + don't use captures if not needed [[`1a8b3e9`](https://github.com/PrismJS/prism/commit/1a8b3e9)] +* __Rip__: + * Regexp optimisation [[`d7f0ee8`](https://github.com/PrismJS/prism/commit/d7f0ee8)] +* __Ruby__: + * Regexp optimisation and simplification + don't use captures if not needed [[`4902ed4`](https://github.com/PrismJS/prism/commit/4902ed4)] +* __Rust__: + * Regexp optimisation and simplification + don't use captures if not needed [[`cc9d874`](https://github.com/PrismJS/prism/commit/cc9d874)] +* __Sass__: + * Regexp simplification Golmote [[`165d957`](https://github.com/PrismJS/prism/commit/165d957)] +* __Scala__: + * Regexp optimisation Golmote [[`5f50c12`](https://github.com/PrismJS/prism/commit/5f50c12)] +* __Scheme__: + * Regexp optimisation [[`bd19b04`](https://github.com/PrismJS/prism/commit/bd19b04)] +* __SCSS__: + * Regexp simplification [[`c60b7d4`](https://github.com/PrismJS/prism/commit/c60b7d4)] +* __Smalltalk__: + * Regexp simplification [[`41a2c76`](https://github.com/PrismJS/prism/commit/41a2c76)] +* __Smarty__: + * Regexp optimisation and simplification [[`e169be9`](https://github.com/PrismJS/prism/commit/e169be9)] +* __SQL__: + * Regexp optimisation [[`a6244a4`](https://github.com/PrismJS/prism/commit/a6244a4)] +* __Stylus__: + * Regexp optimisation [[`df9506c`](https://github.com/PrismJS/prism/commit/df9506c)] +* __Swift__: + * Don't use captures if not needed [[`a2d737a`](https://github.com/PrismJS/prism/commit/a2d737a)] +* __Tcl__: + * Regexp simplification + don't use captures if not needed [[`f0b8a33`](https://github.com/PrismJS/prism/commit/f0b8a33)] +* __Textile__: + * Regexp optimisation + don't use captures if not needed [[`08139ad`](https://github.com/PrismJS/prism/commit/08139ad)] +* __Twig__: + * Regexp optimisation and simplification + don't use captures if not needed [[`0b10fd0`](https://github.com/PrismJS/prism/commit/0b10fd0)] +* __TypeScript__: + * Don't use captures if not needed [[`e296caf`](https://github.com/PrismJS/prism/commit/e296caf)] +* __Verilog__: + * Regexp simplification [[`1b24b34`](https://github.com/PrismJS/prism/commit/1b24b34)] +* __VHDL__: + * Regexp optimisation and simplification [[`7af36df`](https://github.com/PrismJS/prism/commit/7af36df)] +* __vim__: + * Remove duplicates in keywords [[`700505e`](https://github.com/PrismJS/prism/commit/700505e)] +* __Wiki markup__: + * Fix escaping consistency [[`1fd690d`](https://github.com/PrismJS/prism/commit/1fd690d)] +* __YAML__: + * Regexp optimisation + don't use captures if not needed [[`1fd690d`](https://github.com/PrismJS/prism/commit/1fd690d)] + +### Other changes +* Remove comments spellcheck for AMP validation ([#1106](https://github.com/PrismJS/prism/issues/1106)) [[`de996d7`](https://github.com/PrismJS/prism/commit/de996d7)] +* Prevent error from throwing when element does not have a parentNode in highlightElement. [[`c33be19`](https://github.com/PrismJS/prism/commit/c33be19)] +* Provide a way to load Prism from inside a Worker without listening to messages. ([#1188](https://github.com/PrismJS/prism/issues/1188)) [[`d09982d`](https://github.com/PrismJS/prism/commit/d09982d)] + +## 1.8.3 (2017-10-19) + +### Other changes + +* Fix inclusion tests for Pug [[`955c2ab`](https://github.com/PrismJS/prism/commit/955c2ab)] + +## 1.8.2 (2017-10-19) + +### Updated components +* __Jade__: + * Jade has been renamed to __Pug__ ([#1201](https://github.com/PrismJS/prism/issues/1201)) [[`bcfef7c`](https://github.com/PrismJS/prism/commit/bcfef7c)] +* __JavaScript__: + * Better highlighting of functions ([#1190](https://github.com/PrismJS/prism/issues/1190)) [[`8ee2cd3`](https://github.com/PrismJS/prism/commit/8ee2cd3)] + +### Update plugins +* __Copy to clipboard__: + * Fix error occurring when using in Chrome 61+ ([#1206](https://github.com/PrismJS/prism/issues/1206)) [[`b41d571`](https://github.com/PrismJS/prism/commit/b41d571)] +* __Show invisibles__: + * Prevent error when using with Autoloader plugin ([#1195](https://github.com/PrismJS/prism/issues/1195)) [[`ed8bdb5`](https://github.com/PrismJS/prism/commit/ed8bdb5)] + +## 1.8.1 (2017-09-16) + +### Other changes + +* Add Arduino to components.js [[`290a3c6`](https://github.com/PrismJS/prism/commit/290a3c6)] + +## 1.8.0 (2017-09-16) + +### New components + +* __Arduino__ ([#1184](https://github.com/PrismJS/prism/issues/1184)) [[`edf2454`](https://github.com/PrismJS/prism/commit/edf2454)] +* __OpenCL__ ([#1175](https://github.com/PrismJS/prism/issues/1175)) [[`131e8fa`](https://github.com/PrismJS/prism/commit/131e8fa)] + +### Updated plugins + +* __Autolinker__: + * Silently catch any error thrown by decodeURIComponent. Fixes [#1186](https://github.com/PrismJS/prism/issues/1186) [[`2e43fcf`](https://github.com/PrismJS/prism/commit/2e43fcf)] + +## 1.7.0 (2017-09-09) + +### New components + +* __Django/Jinja2__ ([#1085](https://github.com/PrismJS/prism/issues/1085)) [[`345b1b2`](https://github.com/PrismJS/prism/commit/345b1b2)] +* __N4JS__ ([#1141](https://github.com/PrismJS/prism/issues/1141)) [[`eaa8ebb`](https://github.com/PrismJS/prism/commit/eaa8ebb)] +* __Ren'py__ ([#658](https://github.com/PrismJS/prism/issues/658)) [[`7ab4013`](https://github.com/PrismJS/prism/commit/7ab4013)] +* __VB.Net__ ([#1122](https://github.com/PrismJS/prism/issues/1122)) [[`5400651`](https://github.com/PrismJS/prism/commit/5400651)] + +### Updated components + +* __APL__: + * Add left shoe underbar and right shoe underbar ([#1072](https://github.com/PrismJS/prism/issues/1072)) [[`12238c5`](https://github.com/PrismJS/prism/commit/12238c5)] + * Update prism-apl.js ([#1126](https://github.com/PrismJS/prism/issues/1126)) [[`a5f3cdb`](https://github.com/PrismJS/prism/commit/a5f3cdb)] +* __C__: + * Add more keywords and constants for C. ([#1029](https://github.com/PrismJS/prism/issues/1029)) [[`43a388e`](https://github.com/PrismJS/prism/commit/43a388e)] +* __C#__: + * Fix wrong highlighting when three slashes appear inside string. Fix [#1091](https://github.com/PrismJS/prism/issues/1091) [[`dfb6f17`](https://github.com/PrismJS/prism/commit/dfb6f17)] +* __C-like__: + * Add support for unclosed block comments. Close [#828](https://github.com/PrismJS/prism/issues/828) [[`3426ed1`](https://github.com/PrismJS/prism/commit/3426ed1)] +* __Crystal__: + * Update Crystal keywords ([#1092](https://github.com/PrismJS/prism/issues/1092)) [[`125bff1`](https://github.com/PrismJS/prism/commit/125bff1)] +* __CSS Extras__: + * Support CSS #RRGGBBAA ([#1139](https://github.com/PrismJS/prism/issues/1139)) [[`07a6806`](https://github.com/PrismJS/prism/commit/07a6806)] +* __Docker__: + * Add dockerfile alias for docker language ([#1164](https://github.com/PrismJS/prism/issues/1164)) [[`601c47f`](https://github.com/PrismJS/prism/commit/601c47f)] + * Update the list of keywords for dockerfiles ([#1180](https://github.com/PrismJS/prism/issues/1180)) [[`f0d73e0`](https://github.com/PrismJS/prism/commit/f0d73e0)] +* __Eiffel__: + * Add class-name highlighting for Eiffel ([#471](https://github.com/PrismJS/prism/issues/471)) [[`cd03587`](https://github.com/PrismJS/prism/commit/cd03587)] +* __Handlebars__: + * Check for possible pre-existing marker strings in Handlebars [[`7a1a404`](https://github.com/PrismJS/prism/commit/7a1a404)] +* __JavaScript__: + * Properly match every operator as a whole token. Fix [#1133](https://github.com/PrismJS/prism/issues/1133) [[`9f649fb`](https://github.com/PrismJS/prism/commit/9f649fb)] + * Allows uppercase prefixes in JS number literals ([#1151](https://github.com/PrismJS/prism/issues/1151)) [[`d4ee904`](https://github.com/PrismJS/prism/commit/d4ee904)] + * Reduced backtracking in regex pattern. Fix [#1159](https://github.com/PrismJS/prism/issues/1159) [[`ac09e97`](https://github.com/PrismJS/prism/commit/ac09e97)] +* __JSON__: + * Fix property and string patterns performance. Fix [#1080](https://github.com/PrismJS/prism/issues/1080) [[`0ca1353`](https://github.com/PrismJS/prism/commit/0ca1353)] +* __JSX__: + * JSX spread operator break. Fixes [#1061](https://github.com/PrismJS/prism/issues/1061) ([#1094](https://github.com/PrismJS/prism/issues/1094)) [[`561bceb`](https://github.com/PrismJS/prism/commit/561bceb)] + * Fix highlighting of attributes containing spaces [[`867ea42`](https://github.com/PrismJS/prism/commit/867ea42)] + * Improved performance for tags (when not matching) Fix [#1152](https://github.com/PrismJS/prism/issues/1152) [[`b0fe103`](https://github.com/PrismJS/prism/commit/b0fe103)] +* __LOLCODE__: + * Make strings greedy Golmote [[`1a5e7a4`](https://github.com/PrismJS/prism/commit/1a5e7a4)] +* __Markup__: + * Support HTML entities in attribute values ([#1143](https://github.com/PrismJS/prism/issues/1143)) [[`1d5047d`](https://github.com/PrismJS/prism/commit/1d5047d)] +* __NSIS__: + * Update patterns ([#1033](https://github.com/PrismJS/prism/issues/1033)) [[`01a59d8`](https://github.com/PrismJS/prism/commit/01a59d8)] + * Add support for NSIS 3.02 ([#1169](https://github.com/PrismJS/prism/issues/1169)) [[`393b5f7`](https://github.com/PrismJS/prism/commit/393b5f7)] +* __PHP__: + * Fix the PHP language ([#1100](https://github.com/PrismJS/prism/issues/1100)) [[`1453fa7`](https://github.com/PrismJS/prism/commit/1453fa7)] + * Check for possible pre-existing marker strings in PHP [[`36bc560`](https://github.com/PrismJS/prism/commit/36bc560)] +* __Ruby__: + * Fix slash regex performance. Fix [#1083](https://github.com/PrismJS/prism/issues/1083) [[`a708730`](https://github.com/PrismJS/prism/commit/a708730)] + * Add support for =begin =end comments. Manual merge of [#1121](https://github.com/PrismJS/prism/issues/1121). [[`62cdaf8`](https://github.com/PrismJS/prism/commit/62cdaf8)] +* __Smarty__: + * Check for possible pre-existing marker strings in Smarty [[`5df26e2`](https://github.com/PrismJS/prism/commit/5df26e2)] +* __TypeScript__: + * Update typescript keywords ([#1064](https://github.com/PrismJS/prism/issues/1064)) [[`52020a0`](https://github.com/PrismJS/prism/commit/52020a0)] + * Chmod -x prism-typescript component ([#1145](https://github.com/PrismJS/prism/issues/1145)) [[`afe0542`](https://github.com/PrismJS/prism/commit/afe0542)] +* __YAML__: + * Make strings greedy (partial fix for [#1075](https://github.com/PrismJS/prism/issues/1075)) [[`565a2cc`](https://github.com/PrismJS/prism/commit/565a2cc)] + +### Updated plugins + +* __Autolinker__: + * Fixed an rendering issue for encoded urls ([#1173](https://github.com/PrismJS/prism/issues/1173)) [[`abc007f`](https://github.com/PrismJS/prism/commit/abc007f)] +* __Custom Class__: + * Add missing noCSS property for the Custom Class plugin [[`ba64f8d`](https://github.com/PrismJS/prism/commit/ba64f8d)] + * Added a default for classMap. Fixes [#1137](https://github.com/PrismJS/prism/issues/1137). ([#1157](https://github.com/PrismJS/prism/issues/1157)) [[`5400af9`](https://github.com/PrismJS/prism/commit/5400af9)] +* __Keep Markup__: + * Store highlightedCode after reinserting markup. Fix [#1127](https://github.com/PrismJS/prism/issues/1127) [[`6df2ceb`](https://github.com/PrismJS/prism/commit/6df2ceb)] +* __Line Highlight__: + * Cleanup left-over line-highlight tags before other plugins run [[`79b723d`](https://github.com/PrismJS/prism/commit/79b723d)] + * Avoid conflict between line-highlight and other plugins [[`224fdb8`](https://github.com/PrismJS/prism/commit/224fdb8)] +* __Line Numbers__: + * Support soft wrap for line numbers plugin ([#584](https://github.com/PrismJS/prism/issues/584)) [[`849f1d6`](https://github.com/PrismJS/prism/commit/849f1d6)] + * Plugins fixes (unescaped-markup, line-numbers) ([#1012](https://github.com/PrismJS/prism/issues/1012)) [[`3fb7cf8`](https://github.com/PrismJS/prism/commit/3fb7cf8)] +* __Normalize Whitespace__: + * Add Node.js support for the normalize-whitespace plugin [[`6c7dae2`](https://github.com/PrismJS/prism/commit/6c7dae2)] +* __Unescaped Markup__: + * Plugins fixes (unescaped-markup, line-numbers) ([#1012](https://github.com/PrismJS/prism/issues/1012)) [[`3fb7cf8`](https://github.com/PrismJS/prism/commit/3fb7cf8)] + +### Updated themes +* __Coy__: + * Scroll 'Coy' background with contents ([#1163](https://github.com/PrismJS/prism/issues/1163)) [[`310990b`](https://github.com/PrismJS/prism/commit/310990b)] + +### Other changes + +* Initial implementation of manual highlighting ([#1087](https://github.com/PrismJS/prism/issues/1087)) [[`bafc4cb`](https://github.com/PrismJS/prism/commit/bafc4cb)] +* Remove dead link in Third-party tutorials section. Fixes [#1028](https://github.com/PrismJS/prism/issues/1028) [[`dffadc6`](https://github.com/PrismJS/prism/commit/dffadc6)] +* Most languages now use the greedy flag for better highlighting [[`7549ecc`](https://github.com/PrismJS/prism/commit/7549ecc)] +* .npmignore: Unignore components.js ([#1108](https://github.com/PrismJS/prism/issues/1108)) [[`1f699e7`](https://github.com/PrismJS/prism/commit/1f699e7)] +* Run before-highlight and after-highlight hooks even when no grammar is found. Fix [#1134](https://github.com/PrismJS/prism/issues/1134) [[`70cb472`](https://github.com/PrismJS/prism/commit/70cb472)] +* Replace [\w\W] with [\s\S] and [0-9] with \d in regexes ([#1107](https://github.com/PrismJS/prism/issues/1107)) [[`8aa2cc4`](https://github.com/PrismJS/prism/commit/8aa2cc4)] +* Fix corner cases for the greedy flag ([#1095](https://github.com/PrismJS/prism/issues/1095)) [[`6530709`](https://github.com/PrismJS/prism/commit/6530709)] +* Add Third Party Tutorial ([#1156](https://github.com/PrismJS/prism/issues/1156)) [[`c34e57b`](https://github.com/PrismJS/prism/commit/c34e57b)] +* Add Composer support ([#648](https://github.com/PrismJS/prism/issues/648)) [[`2989633`](https://github.com/PrismJS/prism/commit/2989633)] +* Remove IE8 plugin ([#992](https://github.com/PrismJS/prism/issues/992)) [[`25788eb`](https://github.com/PrismJS/prism/commit/25788eb)] +* Website: remove width and height on logo.svg, so it becomes scalable. Close [#1005](https://github.com/PrismJS/prism/issues/1005) [[`0621ff7`](https://github.com/PrismJS/prism/commit/0621ff7)] +* Remove yarn.lock ([#1098](https://github.com/PrismJS/prism/issues/1098)) [[`11eed25`](https://github.com/PrismJS/prism/commit/11eed25)] + +## 1.6.0 (2016-12-03) + +### New components + +* __.properties__ ([#980](https://github.com/PrismJS/prism/issues/980)) [[`be6219a`](https://github.com/PrismJS/prism/commit/be6219a)] +* __Ada__ ([#949](https://github.com/PrismJS/prism/issues/949)) [[`65619f7`](https://github.com/PrismJS/prism/commit/65619f7)] +* __GraphQL__ ([#971](https://github.com/PrismJS/prism/issues/971)) [[`e018087`](https://github.com/PrismJS/prism/commit/e018087)] +* __Jolie__ ([#1014](https://github.com/PrismJS/prism/issues/1014)) [[`dfc1941`](https://github.com/PrismJS/prism/commit/dfc1941)] +* __LiveScript__ ([#982](https://github.com/PrismJS/prism/issues/982)) [[`62e258c`](https://github.com/PrismJS/prism/commit/62e258c)] +* __Reason__ (Fixes [#1046](https://github.com/PrismJS/prism/issues/1046)) [[`3cae6ce`](https://github.com/PrismJS/prism/commit/3cae6ce)] +* __Xojo__ ([#994](https://github.com/PrismJS/prism/issues/994)) [[`0224b7c`](https://github.com/PrismJS/prism/commit/0224b7c)] + +### Updated components + +* __APL__: + * Add iota underbar ([#1024](https://github.com/PrismJS/prism/issues/1024)) [[`3c5c89a`](https://github.com/PrismJS/prism/commit/3c5c89a), [`ac21d33`](https://github.com/PrismJS/prism/commit/ac21d33)] +* __AsciiDoc__: + * Optimized block regexps to prevent struggling on large files. Fixes [#1001](https://github.com/PrismJS/prism/issues/1001). [[`1a86d34`](https://github.com/PrismJS/prism/commit/1a86d34)] +* __Bash__: + * Add `npm` to function list ([#969](https://github.com/PrismJS/prism/issues/969)) [[`912bdfe`](https://github.com/PrismJS/prism/commit/912bdfe)] +* __CSS__: + * Make CSS strings greedy. Fix [#1013](https://github.com/PrismJS/prism/issues/1013). [[`e57e26d`](https://github.com/PrismJS/prism/commit/e57e26d)] +* __CSS Extras__: + * Match attribute inside selectors [[`13fed76`](https://github.com/PrismJS/prism/commit/13fed76)] +* _Groovy__: + * Fix order of decoding entities in groovy. Fixes [#1049](https://github.com/PrismJS/prism/issues/1049) ([#1050](https://github.com/PrismJS/prism/issues/1050)) [[`d75da8e`](https://github.com/PrismJS/prism/commit/d75da8e)] +* __Ini__: + * Remove important token in ini definition ([#1047](https://github.com/PrismJS/prism/issues/1047)) [[`fe8ad8b`](https://github.com/PrismJS/prism/commit/fe8ad8b)] +* __JavaScript__: + * Add exponentiation & spread/rest operator ([#991](https://github.com/PrismJS/prism/issues/991)) [[`b2de65a`](https://github.com/PrismJS/prism/commit/b2de65a), [`268d01e`](https://github.com/PrismJS/prism/commit/268d01e)] +* __JSON_: + * JSON: Fixed issues with properties and strings + added tests. Fix [#1025](https://github.com/PrismJS/prism/issues/1025) [[`25a541d`](https://github.com/PrismJS/prism/commit/25a541d)] +* __Markup__: + * Allow for dots in Markup tag names, but not in HTML tags included in Textile. Fixes [#888](https://github.com/PrismJS/prism/issues/888). [[`31ea66b`](https://github.com/PrismJS/prism/commit/31ea66b)] + * Make doctype case-insensitive ([#1009](https://github.com/PrismJS/prism/issues/1009)) [[`3dd7219`](https://github.com/PrismJS/prism/commit/3dd7219)] +* __NSIS__: + * Updated patterns ([#1032](https://github.com/PrismJS/prism/issues/1032)) [[`76ba1b8`](https://github.com/PrismJS/prism/commit/76ba1b8)] +* __PHP__: + * Make comments greedy. Fix [#197](https://github.com/PrismJS/prism/issues/197) [[`318aab3`](https://github.com/PrismJS/prism/commit/318aab3)] +* __PowerShell__: + * Fix highlighting of empty comments ([#977](https://github.com/PrismJS/prism/issues/977)) [[`4fda477`](https://github.com/PrismJS/prism/commit/4fda477)] +* __Puppet__: + * Fix over-greedy regexp detection ([#978](https://github.com/PrismJS/prism/issues/978)) [[`105be25`](https://github.com/PrismJS/prism/commit/105be25)] +* __Ruby__: + * Fix typo `Fload` to `Float` in prism-ruby.js ([#1023](https://github.com/PrismJS/prism/issues/1023)) [[`22cb018`](https://github.com/PrismJS/prism/commit/22cb018)] + * Make strings greedy. Fixes [#1048](https://github.com/PrismJS/prism/issues/1048) [[`8b0520a`](https://github.com/PrismJS/prism/commit/8b0520a)] +* __SCSS__: + * Alias statement as keyword. Fix [#246](https://github.com/PrismJS/prism/issues/246) [[`fd09391`](https://github.com/PrismJS/prism/commit/fd09391)] + * Highlight variables inside selectors and properties. [[`d6b5c2f`](https://github.com/PrismJS/prism/commit/d6b5c2f)] + * Highlight parent selector [[`8f5f1fa`](https://github.com/PrismJS/prism/commit/8f5f1fa)] +* __TypeScript__: + * Add missing `from` keyword to typescript & set `ts` as alias. ([#1042](https://github.com/PrismJS/prism/issues/1042)) [[`cba78f3`](https://github.com/PrismJS/prism/commit/cba78f3)] + +### New plugins + +* __Copy to Clipboard__ ([#891](https://github.com/PrismJS/prism/issues/891)) [[`07b81ac`](https://github.com/PrismJS/prism/commit/07b81ac)] +* __Custom Class__ ([#950](https://github.com/PrismJS/prism/issues/950)) [[`a0bd686`](https://github.com/PrismJS/prism/commit/a0bd686)] +* __Data-URI Highlight__ ([#996](https://github.com/PrismJS/prism/issues/996)) [[`bdca61b`](https://github.com/PrismJS/prism/commit/bdca61b)] +* __Toolbar__ ([#891](https://github.com/PrismJS/prism/issues/891)) [[`07b81ac`](https://github.com/PrismJS/prism/commit/07b81ac)] + +### Updated plugins + +* __Autoloader__: + * Updated documentation for Autoloader plugin [[`b4f3423`](https://github.com/PrismJS/prism/commit/b4f3423)] + * Download all grammars as a zip from Autoloader plugin page ([#981](https://github.com/PrismJS/prism/issues/981)) [[`0d0a007`](https://github.com/PrismJS/prism/commit/0d0a007), [`5c815d3`](https://github.com/PrismJS/prism/commit/5c815d3)] + * Removed duplicated script on Autoloader plugin page [[`9671996`](https://github.com/PrismJS/prism/commit/9671996)] + * Don't try to load "none" component. Fix [#1000](https://github.com/PrismJS/prism/issues/1000) [[`f89b0b9`](https://github.com/PrismJS/prism/commit/f89b0b9)] +* __WPD__: + * Fix at-rule detection + don't process if language is not handled [[`2626728`](https://github.com/PrismJS/prism/commit/2626728)] + +### Other changes + +* Improvement to greedy-flag ([#967](https://github.com/PrismJS/prism/issues/967)) [[`500121b`](https://github.com/PrismJS/prism/commit/500121b), [`9893489`](https://github.com/PrismJS/prism/commit/9893489)] +* Add setTimeout fallback for requestAnimationFrame. Fixes [#987](https://github.com/PrismJS/prism/issues/987). ([#988](https://github.com/PrismJS/prism/issues/988)) [[`c9bdcd3`](https://github.com/PrismJS/prism/commit/c9bdcd3)] +* Added aria-hidden attributes on elements created by the Line Highlight and Line Numbers plugins. Fixes [#574](https://github.com/PrismJS/prism/issues/574). [[`e5587a7`](https://github.com/PrismJS/prism/commit/e5587a7)] +* Don't insert space before ">" when there is no attributes [[`3dc8c9e`](https://github.com/PrismJS/prism/commit/3dc8c9e)] +* Added missing hooks-related tests for AsciiDoc, Groovy, Handlebars, Markup, PHP and Smarty [[`c1a0c1b`](https://github.com/PrismJS/prism/commit/c1a0c1b)] +* Fix issue when using Line numbers plugin and Normalise whitespace plugin together with Handlebars, PHP or Smarty. Fix [#1018](https://github.com/PrismJS/prism/issues/1018), [#997](https://github.com/PrismJS/prism/issues/997), [#935](https://github.com/PrismJS/prism/issues/935). Revert [#998](https://github.com/PrismJS/prism/issues/998). [[`86aa3d2`](https://github.com/PrismJS/prism/commit/86aa3d2)] +* Optimized logo ([#990](https://github.com/PrismJS/prism/issues/990)) ([#1002](https://github.com/PrismJS/prism/issues/1002)) [[`f69e570`](https://github.com/PrismJS/prism/commit/f69e570), [`218fd25`](https://github.com/PrismJS/prism/commit/218fd25)] +* Remove unneeded prefixed CSS ([#989](https://github.com/PrismJS/prism/issues/989)) [[`5e56833`](https://github.com/PrismJS/prism/commit/5e56833)] +* Optimize images ([#1007](https://github.com/PrismJS/prism/issues/1007)) [[`b2fa6d5`](https://github.com/PrismJS/prism/commit/b2fa6d5)] +* Add yarn.lock to .gitignore ([#1035](https://github.com/PrismJS/prism/issues/1035)) [[`03ecf74`](https://github.com/PrismJS/prism/commit/03ecf74)] +* Fix greedy flag bug. Fixes [#1039](https://github.com/PrismJS/prism/issues/1039) [[`32cd99f`](https://github.com/PrismJS/prism/commit/32cd99f)] +* Ruby: Fix test after [#1023](https://github.com/PrismJS/prism/issues/1023) [[`b15d43b`](https://github.com/PrismJS/prism/commit/b15d43b)] +* Ini: Fix test after [#1047](https://github.com/PrismJS/prism/issues/1047) [[`25cdd3f`](https://github.com/PrismJS/prism/commit/25cdd3f)] +* Reduce risk of XSS ([#1051](https://github.com/PrismJS/prism/issues/1051)) [[`17e33bc`](https://github.com/PrismJS/prism/commit/17e33bc)] +* env.code can be modified by before-sanity-check hook even when using language-none. Fix [#1066](https://github.com/PrismJS/prism/issues/1066) [[`83bafbd`](https://github.com/PrismJS/prism/commit/83bafbd)] + + +## 1.5.1 (2016-06-05) + +### Updated components + +* __Normalize Whitespace__: + * Add class that disables the normalize whitespace plugin [[`9385c54`](https://github.com/PrismJS/prism/commit/9385c54)] +* __JavaScript Language__: + * Rearrange the `string` and `template-string` token in JavaScript [[`1158e46`](https://github.com/PrismJS/prism/commit/1158e46)] +* __SQL Language__: + * add delimeter and delimeters keywords to sql ([#958](https://github.com/PrismJS/prism/pull/958)) [[`a9ef24e`](https://github.com/PrismJS/prism/commit/a9ef24e)] + * add AUTO_INCREMENT and DATE keywords to sql ([#954](https://github.com/PrismJS/prism/pull/954)) [[`caea2af`](https://github.com/PrismJS/prism/commit/caea2af)] +* __Diff Language__: + * Highlight diff lines with only + or - ([#952](https://github.com/PrismJS/prism/pull/952)) [[`4d0526f`](https://github.com/PrismJS/prism/commit/4d0526f)] + +### Other changes + +* Allow for asynchronous loading of prism.js ([#959](https://github.com/PrismJS/prism/pull/959)) +* Use toLowerCase on language names ([#957](https://github.com/PrismJS/prism/pull/957)) [[`acd9508`](https://github.com/PrismJS/prism/commit/acd9508)] +* link to index for basic usage - fixes [#945](https://github.com/PrismJS/prism/issues/945) ([#946](https://github.com/PrismJS/prism/pull/946)) [[`6c772d8`](https://github.com/PrismJS/prism/commit/6c772d8)] +* Fixed monospace typo ([#953](https://github.com/PrismJS/prism/pull/953)) [[`e6c3498`](https://github.com/PrismJS/prism/commit/e6c3498)] + +## 1.5.0 (2016-05-01) + +### New components + +* __Bro Language__ ([#925](https://github.com/PrismJS/prism/pull/925)) +* __Protocol Buffers Language__ ([#938](https://github.com/PrismJS/prism/pull/938)) [[`ae4a4f2`](https://github.com/PrismJS/prism/commit/ae4a4f2)] + +### Updated components + +* __Keep Markup__: + * Fix Keep Markup plugin incorrect highlighting ([#880](https://github.com/PrismJS/prism/pull/880)) [[`24841ef`](https://github.com/PrismJS/prism/commit/24841ef)] +* __Groovy Language__: + * Fix double HTML-encoding bug in Groovy language [[`24a0936`](https://github.com/PrismJS/prism/commit/24a0936)] +* __Java Language__: + * Adding annotation token for Java ([#905](https://github.com/PrismJS/prism/pull/905)) [[`367ace6`](https://github.com/PrismJS/prism/commit/367ace6)] +* __SAS Language__: + * Add missing keywords for SAS ([#922](https://github.com/PrismJS/prism/pull/922)) +* __YAML Language__: + * fix hilighting of YAML keys on first line of code block ([#943](https://github.com/PrismJS/prism/pull/943)) [[`f19db81`](https://github.com/PrismJS/prism/commit/f19db81)] +* __C# Language__: + * Support for generic methods in csharp [[`6f75735`](https://github.com/PrismJS/prism/commit/6f75735)] + +### New plugins + +* __Unescaped Markup__ [[`07d77e5`](https://github.com/PrismJS/prism/commit/07d77e5)] +* __Normalize Whitespace__ ([#847](https://github.com/PrismJS/prism/pull/847)) [[`e86ec01`](https://github.com/PrismJS/prism/commit/e86ec01)] + +### Other changes + +* Add JSPM support [[`ad048ab`](https://github.com/PrismJS/prism/commit/ad048ab)] +* update linear-gradient syntax from `left` to `to right` [[`cd234dc`](https://github.com/PrismJS/prism/commit/cd234dc)] +* Add after-property to allow ordering of plugins [[`224b7a1`](https://github.com/PrismJS/prism/commit/224b7a1)] +* Partial solution for the "Comment-like substrings"-problem [[`2705c50`](https://github.com/PrismJS/prism/commit/2705c50)] +* Add property 'aliasTitles' to components.js [[`54400fb`](https://github.com/PrismJS/prism/commit/54400fb)] +* Add before-highlightall hook [[`70a8602`](https://github.com/PrismJS/prism/commit/70a8602)] +* Fix catastrophic backtracking regex issues in JavaScript [[`ab65be2`](https://github.com/PrismJS/prism/commit/ab65be2)] + +## 1.4.1 (2016-02-03) + +### Other changes + +* Fix DFS bug in Prism core [[`b86c727`](https://github.com/PrismJS/prism/commit/b86c727)] + +## 1.4.0 (2016-02-03) + +### New components + +* __Solarized Light__ ([#855](https://github.com/PrismJS/prism/pull/855)) [[`70846ba`](https://github.com/PrismJS/prism/commit/70846ba)] +* __JSON__ ([#370](https://github.com/PrismJS/prism/pull/370)) [[`ad2fcd0`](https://github.com/PrismJS/prism/commit/ad2fcd0)] + +### Updated components + +* __Show Language__: + * Remove data-language attribute ([#840](https://github.com/PrismJS/prism/pull/840)) [[`eb9a83c`](https://github.com/PrismJS/prism/commit/eb9a83c)] + * Allow custom label without a language mapping ([#837](https://github.com/PrismJS/prism/pull/837)) [[`7e74aef`](https://github.com/PrismJS/prism/commit/7e74aef)] +* __JSX__: + * Better Nesting in JSX attributes ([#842](https://github.com/PrismJS/prism/pull/842)) [[`971dda7`](https://github.com/PrismJS/prism/commit/971dda7)] +* __File Highlight__: + * Defer File Highlight until the full DOM has loaded. ([#844](https://github.com/PrismJS/prism/pull/844)) [[`6f995ef`](https://github.com/PrismJS/prism/commit/6f995ef)] +* __Coy Theme__: + * Fix coy theme shadows ([#865](https://github.com/PrismJS/prism/pull/865)) [[`58d2337`](https://github.com/PrismJS/prism/commit/58d2337)] +* __Show Invisibles__: + * Ensure show-invisibles compat with autoloader ([#874](https://github.com/PrismJS/prism/pull/874)) [[`c3cfb1f`](https://github.com/PrismJS/prism/commit/c3cfb1f)] + * Add support for the space character for the show-invisibles plugin ([#876](https://github.com/PrismJS/prism/pull/876)) [[`05442d3`](https://github.com/PrismJS/prism/commit/05442d3)] + +### New plugins + +* __Command Line__ ([#831](https://github.com/PrismJS/prism/pull/831)) [[`8378906`](https://github.com/PrismJS/prism/commit/8378906)] + +### Other changes + +* Use document.currentScript instead of document.getElementsByTagName() [[`fa98743`](https://github.com/PrismJS/prism/commit/fa98743)] +* Add prefix for Firefox selection and move prefixed rule first [[`6d54717`](https://github.com/PrismJS/prism/commit/6d54717)] +* No background for `` in `
` [[`8c310bc`](https://github.com/PrismJS/prism/commit/8c310bc)]
+* Fixing to initial copyright year [[`69cbf7a`](https://github.com/PrismJS/prism/commit/69cbf7a)]
+* Simplify the “lang” regex [[`417f54a`](https://github.com/PrismJS/prism/commit/417f54a)]
+* Fix broken heading links [[`a7f9e62`](https://github.com/PrismJS/prism/commit/a7f9e62)]
+* Prevent infinite recursion in DFS [[`02894e1`](https://github.com/PrismJS/prism/commit/02894e1)]
+* Fix incorrect page title [[`544b56f`](https://github.com/PrismJS/prism/commit/544b56f)]
+* Link scss to webplatform wiki [[`08d979a`](https://github.com/PrismJS/prism/commit/08d979a)]
+* Revert white-space to normal when code is inline instead of in a pre [[`1a971b5`](https://github.com/PrismJS/prism/commit/1a971b5)]
+
+## 1.3.0 (2015-10-26)
+
+### New components
+
+* __AsciiDoc__ ([#800](https://github.com/PrismJS/prism/issues/800)) [[`6803ca0`](https://github.com/PrismJS/prism/commit/6803ca0)]
+* __Haxe__ ([#811](https://github.com/PrismJS/prism/issues/811)) [[`bd44341`](https://github.com/PrismJS/prism/commit/bd44341)]
+* __Icon__ ([#803](https://github.com/PrismJS/prism/issues/803)) [[`b43c5f3`](https://github.com/PrismJS/prism/commit/b43c5f3)]
+* __Kotlin ([#814](https://github.com/PrismJS/prism/issues/814)) [[`e8a31a5`](https://github.com/PrismJS/prism/commit/e8a31a5)]
+* __Lua__ ([#804](https://github.com/PrismJS/prism/issues/804)) [[`a36bc4a`](https://github.com/PrismJS/prism/commit/a36bc4a)]
+* __Nix__ ([#795](https://github.com/PrismJS/prism/issues/795)) [[`9b275c8`](https://github.com/PrismJS/prism/commit/9b275c8)]
+* __Oz__ ([#805](https://github.com/PrismJS/prism/issues/805)) [[`388c53f`](https://github.com/PrismJS/prism/commit/388c53f)]
+* __PARI/GP__ ([#802](https://github.com/PrismJS/prism/issues/802)) [[`253c035`](https://github.com/PrismJS/prism/commit/253c035)]
+* __Parser__ ([#808](https://github.com/PrismJS/prism/issues/808)) [[`a953b3a`](https://github.com/PrismJS/prism/commit/a953b3a)]
+* __Puppet__ ([#813](https://github.com/PrismJS/prism/issues/813)) [[`81933ee`](https://github.com/PrismJS/prism/commit/81933ee)]
+* __Roboconf__ ([#812](https://github.com/PrismJS/prism/issues/812)) [[`f5db346`](https://github.com/PrismJS/prism/commit/f5db346)]
+
+### Updated components
+
+* __C__:
+	* Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
+* __C#__:
+	* Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
+	* Fix detection of float numbers ([#806](https://github.com/PrismJS/prism/issues/806)) [[`1dae72b`](https://github.com/PrismJS/prism/commit/1dae72b)]
+* __F#__:
+	* Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
+* __JavaScript__:
+	* Highlight true and false as booleans ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
+* __Python__:
+	* Highlight triple-quoted strings before comments. Fix [#815](https://github.com/PrismJS/prism/issues/815) [[`90fbf0b`](https://github.com/PrismJS/prism/commit/90fbf0b)]
+
+### New plugins
+
+* __Previewer: Time__ ([#790](https://github.com/PrismJS/prism/issues/790)) [[`88173de`](https://github.com/PrismJS/prism/commit/88173de)]
+* __Previewer: Angle__ ([#791](https://github.com/PrismJS/prism/issues/791)) [[`a434c86`](https://github.com/PrismJS/prism/commit/a434c86)]
+
+### Other changes
+
+* Increase mocha's timeout [[`f1c41db`](https://github.com/PrismJS/prism/commit/f1c41db)]
+* Prevent most errors in IE8. Fix [#9](https://github.com/PrismJS/prism/issues/9) [[`9652d75`](https://github.com/PrismJS/prism/commit/9652d75)]
+* Add U.S. Web Design Standards on homepage. Fix [#785](https://github.com/PrismJS/prism/issues/785) [[`e10d48b`](https://github.com/PrismJS/prism/commit/e10d48b), [`79ebbf8`](https://github.com/PrismJS/prism/commit/79ebbf8), [`2f7088d`](https://github.com/PrismJS/prism/commit/2f7088d)]
+* Added gulp task to autolink PRs and commits in changelog [[`5ec4e4d`](https://github.com/PrismJS/prism/commit/5ec4e4d)]
+* Use child processes to run each set of tests, in order to deal with the memory leak in vm.runInNewContext() [[`9a4b6fa`](https://github.com/PrismJS/prism/commit/9a4b6fa)]
+
+## 1.2.0 (2015-10-07)
+
+### New components
+
+* __Batch__ ([#781](https://github.com/PrismJS/prism/issues/781)) [[`eab5b06`](https://github.com/PrismJS/prism/commit/eab5b06)]
+
+### Updated components
+
+* __ASP.NET__:
+	* Simplified pattern for `
+
+
+
+
+
+
+
+
+ +

Customize your download

+

Select your compression level, as well as the languages and plugins you need.

+
+ +
+
+

+ Compression level: + + +

+ +
+ +

+ Total filesize: ( JavaScript + CSS) +

+

Note: The filesizes displayed refer to non-gizipped files and include any CSS code required. The CSS code is not minified.

+ +
+
+
+
+ Download JS +
+ +
+
+ Download CSS +
+
+ +
+ +
+ +
+ + + + + + + + + + diff --git a/docs/_style/prism-master/download.js b/docs/_style/prism-master/download.js new file mode 100644 index 00000000..054da79d --- /dev/null +++ b/docs/_style/prism-master/download.js @@ -0,0 +1,598 @@ +/** + * Manage downloads + */ + +(function() { + +var cache = {}; +var form = $('form'); +var minified = true; + +var dependencies = {}; + +var treeURL = 'https://api.github.com/repos/PrismJS/prism/git/trees/gh-pages?recursive=1'; +var treePromise = new Promise(function(resolve) { + $u.xhr({ + url: treeURL, + callback: function(xhr) { + if (xhr.status < 400) { + resolve(JSON.parse(xhr.responseText).tree); + } + } + }); +}); + +var hstr = window.location.hash.match(/(?:languages|plugins)=[-+\w]+|themes=[-\w]+/g); +if (hstr) { + hstr.forEach(function(str) { + var kv = str.split('=', 2), + category = kv[0], + ids = kv[1].split('+'); + if (category !== 'meta' && category !== 'core' && components[category]) { + for (var id in components[category]) { + if (components[category][id].option) { + delete components[category][id].option; + } + } + if (category === 'themes' && ids.length) { + var themeInput = $('#theme input[value="' + ids[0] + '"]'); + if (themeInput) { + themeInput.checked = true; + } + setTheme(ids[0]); + } + var makeDefault = function (id) { + if (id !== 'meta') { + if (components[category][id]) { + if (components[category][id].option !== 'default') { + if (typeof components[category][id] === 'string') { + components[category][id] = { title: components[category][id] } + } + components[category][id].option = 'default'; + } + if (components[category][id].require) { + var deps = components[category][id].require; + if ($u.type(deps) !== 'array') { + deps = [deps]; + } + deps.forEach(makeDefault); + } + } + } + }; + ids.forEach(makeDefault); + } + }); +} + +// Stay compatible with old querystring feature +var qstr = window.location.search.match(/(?:languages|plugins)=[-+\w]+|themes=[-\w]+/g); +if (qstr && !hstr) { + window.location.hash = window.location.search.replace(/^\?/, ''); + window.location.search = ''; +} + +var storedTheme = localStorage.getItem('theme'); + +for (var category in components) { + var all = components[category]; + + all.meta.section = $u.element.create('section', { + className: 'options', + id: 'category-' + category, + contents: { + tag: 'h1', + contents: category.charAt(0).toUpperCase() + category.slice(1) + }, + inside: '#components' + }); + + if (all.meta.addCheckAll) { + $u.element.create('label', { + attributes: { + 'data-id': 'check-all-' + category + }, + contents: [ + { + tag: 'input', + properties: { + type: 'checkbox', + name: 'check-all-' + category, + value: '', + checked: false, + onclick: (function(category, all){ + return function () { + var checkAll = this; + $$('input[name="download-' + category + '"]').forEach(function(input) { + all[input.value].enabled = input.checked = checkAll.checked; + }); + + update(category); + }; + })(category, all) + } + }, + 'Select/unselect all' + ], + inside: all.meta.section + }); + } + + for (var id in all) { + if(id === 'meta') { + continue; + } + + var checked = false, disabled = false; + var option = all[id].option || all.meta.option; + + switch (option) { + case 'mandatory': disabled = true; // fallthrough + case 'default': checked = true; + } + if (category === 'themes' && storedTheme) { + checked = id === storedTheme; + } + + var filepath = all.meta.path.replace(/\{id}/g, id); + + var info = all[id] = { + title: all[id].title || all[id], + aliasTitles: all[id].aliasTitles, + noCSS: all[id].noCSS || all.meta.noCSS, + noJS: all[id].noJS || all.meta.noJS, + enabled: checked, + require: $u.type(all[id].require) === 'string' ? [all[id].require] : all[id].require, + after: $u.type(all[id].after) === 'string' ? [all[id].after] : all[id].after, + peerDependencies: $u.type(all[id].peerDependencies) === 'string' ? [all[id].peerDependencies] : all[id].peerDependencies, + owner: all[id].owner, + files: { + minified: { + paths: [], + size: 0 + }, + dev: { + paths: [], + size: 0 + } + } + }; + + if (info.require) { + info.require.forEach(function (v) { + dependencies[v] = (dependencies[v] || []).concat(id); + }); + } + + if (!all[id].noJS && !/\.css$/.test(filepath)) { + info.files.minified.paths.push(filepath.replace(/(\.js)?$/, '.min.js')); + info.files.dev.paths.push(filepath.replace(/(\.js)?$/, '.js')); + } + + + if ((!all[id].noCSS && !/\.js$/.test(filepath)) || /\.css$/.test(filepath)) { + var cssFile = filepath.replace(/(\.css)?$/, '.css'); + + info.files.minified.paths.push(cssFile); + info.files.dev.paths.push(cssFile); + } + + function getLanguageTitle(lang) { + if (!lang.aliasTitles) + return lang.title; + + var titles = [lang.title]; + for (var alias in lang.aliasTitles) + if (lang.aliasTitles.hasOwnProperty(alias)) + titles.push(lang.aliasTitles[alias]); + return titles.join(" + "); + } + + var label = $u.element.create('label', { + attributes: { + 'data-id': id + }, + contents: [ + { + tag: 'input', + properties: { + type: all.meta.exclusive? 'radio' : 'checkbox', + name: 'download-' + category, + value: id, + checked: checked, + disabled: disabled, + onclick: (function(id, category, all){ + return function () { + $$('input[name="' + this.name + '"]').forEach(function(input) { + all[input.value].enabled = input.checked; + }); + + if (all[id].require && this.checked) { + all[id].require.forEach(function(v) { + var input = $('label[data-id="' + v + '"] > input'); + input.checked = true; + + input.onclick(); + }); + } + + if (dependencies[id] && !this.checked) { // It’s required by others + dependencies[id].forEach(function(dependent) { + var input = $('label[data-id="' + dependent + '"] > input'); + input.checked = false; + + input.onclick(); + }); + } + + update(category, id); + }; + })(id, category, all) + } + }, + all.meta.link? { + tag: 'a', + properties: { + href: all.meta.link.replace(/\{id}/g, id), + className: 'name' + }, + contents: info.title + } : { + tag: 'span', + properties: { + className: 'name' + }, + contents: getLanguageTitle(info) + }, + ' ', + all[id].owner? { + tag: 'a', + properties: { + href: 'https://github.com/' + all[id].owner, + className: 'owner', + target: '_blank' + }, + contents: all[id].owner + } : ' ', + { + tag: 'strong', + className: 'filesize' + } + ], + inside: all.meta.section + }); + + // Add click events on main theme selector too. + (function (label) { + if (category === 'themes') { + var themeInput = $('#theme input[value="' + id + '"]'); + var input = $('input', label); + if (themeInput) { + var themeInputOnclick = themeInput.onclick; + themeInput.onclick = function () { + input.checked = true; + input.onclick(); + themeInputOnclick && themeInputOnclick.call(themeInput); + }; + } + } + }(label)); + } +} + +form.elements.compression[0].onclick = +form.elements.compression[1].onclick = function() { + minified = !!+this.value; + + getFilesSizes(); +}; + +function getFileSize(filepath) { + return treePromise.then(function(tree) { + for(var i=0, l=tree.length; i i) { + notNow = true; + break; + } + } + if (notNow) { + var tmp = sorted[i]; + sorted[i] = sorted[indexOfRequirement]; + sorted[indexOfRequirement] = tmp; + } + else { + i++; + } + } + return sorted; +} + +function getSortedComponentsByRequirements(components, afterName) { + var sorted = getSortedComponents(components, afterName); + return getSortedComponents(components, "require", sorted); +} + +function generateCode(){ + var promises = []; + var redownload = {}; + + for (var category in components) { + var all = components[category]; + + // In case if one component requires other, required component should go first. + var sorted = getSortedComponentsByRequirements(all, category === 'languages' ? 'peerDependencies' : 'after'); + + for (var i = 0; i < sorted.length; i++) { + var id = sorted[i]; + + if(id === 'meta') { + continue; + } + + var info = all[id]; + if (info.enabled) { + if (category !== 'core') { + redownload[category] = redownload[category] || []; + redownload[category].push(id); + } + info.files[minified? 'minified' : 'dev'].paths.forEach(function (path) { + if (cache[path]) { + var type = path.match(/\.(\w+)$/)[1]; + + promises.push({ + contentsPromise: cache[path].contentsPromise, + path: path, + type: type + }); + } + }); + } + } + } + + // Hide error message if visible + var error = $('#download .error'); + error.style.display = ''; + + Promise.all([buildCode(promises), getVersion()]).then(function(arr) { + var res = arr[0]; + var version = arr[1]; + var code = res.code; + var errors = res.errors; + + if(errors.length) { + error.style.display = 'block'; + error.innerHTML = ''; + $u.element.contents(error, errors); + } + + var redownloadUrl = window.location.href.split("#")[0] + "#"; + for (var category in redownload) { + redownloadUrl += category + "=" + redownload[category].join('+') + "&"; + } + redownloadUrl = redownloadUrl.replace(/&$/,""); + window.location.replace(redownloadUrl); + + var versionComment = "/* PrismJS " + version + "\n" + redownloadUrl + " */"; + + for (var type in code) { + var codeElement = $('#download-' + type + ' code'); + + codeElement.textContent = versionComment + "\n" + code[type]; + Prism.highlightElement(codeElement, true); + + $('#download-' + type + ' .download-button').href = 'data:application/octet-stream;charset=utf-8,' + encodeURIComponent(versionComment + "\n" + code[type]); + } + }); +} + +function buildCode(promises) { + var i = 0, + l = promises.length; + var code = {js: '', css: ''}; + var errors = []; + + var f = function(resolve) { + if(i < l) { + var p = promises[i]; + p.contentsPromise.then(function(contents) { + code[p.type] += contents + (p.type === 'js' && !/;\s*$/.test(contents) ? ';' : '') + '\n'; + i++; + f(resolve); + }); + p.contentsPromise['catch'](function() { + errors.push($u.element.create({ + tag: 'p', + prop: { + textContent: 'An error occurred while fetching the file "' + p.path + '".' + } + })); + i++; + f(resolve); + }); + } else { + resolve({code: code, errors: errors}); + } + }; + + return new Promise(f); +} + +function getVersion() { + return getFileContents('./package.json').then(function (jsonStr) { + return JSON.parse(jsonStr).version; + }); +} + +})(); diff --git a/docs/_style/prism-master/examples.html b/docs/_style/prism-master/examples.html new file mode 100644 index 00000000..b7dce551 --- /dev/null +++ b/docs/_style/prism-master/examples.html @@ -0,0 +1,110 @@ + + + + + + +Examples ▲ Prism + + + + + + + + + + +
+
+ +

Examples

+

The examples in this page serve a dual purpose: They act as unit tests, making it easy to spot bugs, and at the same time demonstrate what Prism can do, on simple and on edge cases.

+
+ +
+

Different markup

+ +

code.language-css

+ p { color: red; } + +

pre.language-css > code

+
p { color: red; }
+ +

pre > code.language-css

+
p { color: red; }
+ +

pre.language-css > code.language-*

+
p { color: red; }
+ +

code.lang-css

+ p { color: red; } + +

pre.lang-css > code

+
p { color: red; }
+ +

pre > code

+

No language, should inherit .language-markup

+
<p>hi!</p>
+ +

code.language-*

+

No language, should inherit .language-markup

+ <p>hi!</p> + +

code.language-none

+

Should not be highlighted.

+ <p>hi!</p> +
+ +
+

Per language examples

+
+
+
+ +
+ + + + + + + + + + diff --git a/docs/_style/prism-master/examples.js b/docs/_style/prism-master/examples.js new file mode 100644 index 00000000..ba275c55 --- /dev/null +++ b/docs/_style/prism-master/examples.js @@ -0,0 +1,217 @@ +/** + * Manage examples + */ + +(function() { + +var examples = {}; + +var treeURL = 'https://api.github.com/repos/PrismJS/prism/git/trees/gh-pages?recursive=1'; +var treePromise = new Promise(function (resolve) { + $u.xhr({ + url: treeURL, + callback: function (xhr) { + if (xhr.status < 400) { + resolve(JSON.parse(xhr.responseText).tree); + } + } + }); +}); + +var languages = components.languages; + +for (var id in languages) { + if (id === 'meta') { + continue; + } + + (function (id) { + var language = languages[id]; + var checked = false; + + if (language.option === 'default') { + checked = true; + } + + language.enabled = checked; + language.path = languages.meta.path.replace(/\{id}/g, id) + '.js'; + language.examplesPath = languages.meta.examplesPath.replace(/\{id}/g, id) + '.html'; + + fileExists(language.examplesPath).then(function (exists) { + $u.element.create('label', { + attributes: { + 'data-id': id, + 'title': !exists ? 'No examples are available for this language.' : '' + }, + className: !exists ? 'unavailable' : '', + contents: [ + { + tag: 'input', + properties: { + type: 'checkbox', + name: 'language', + value: id, + checked: checked && exists, + disabled: !exists, + onclick: function () { + $$('input[name="' + this.name + '"]').forEach(function (input) { + languages[input.value].enabled = input.checked; + }); + + update(id); + } + } + }, + language.title + ], + inside: '#languages' + }); + examples[id] = $u.element.create('section', { + 'id': 'language-' + id, + 'className': 'language-' + id, + inside: '#examples' + }); + if (checked) { + update(id); + } + }); + }(id)); +} + +function fileExists(filepath) { + return treePromise.then(function (tree) { + for (var i = 0, l = tree.length; i < l; i++) { + if (tree[i].path === filepath) { + return true; + } + } + return false; + }); +} + +function getFileContents(filepath) { + return new Promise(function (resolve, reject) { + $u.xhr({ + url: filepath, + callback: function (xhr) { + if (xhr.status < 400 && xhr.responseText) { + resolve(xhr.responseText); + } else { + reject(); + } + } + }); + }); +} + +function buildContentsHeader(id) { + var language = languages[id]; + var header = '

' + language.title + '

'; + if (language.overrideExampleHeader) { + return header; + } + if (language.alias) { + var alias = language.alias; + if (Prism.util.type(alias) !== 'Array') { + alias = [alias]; + } + + header += '

To use this language, use one of the following classes:

'; + header += '
  • "language-' + id + '"
  • '; + alias.forEach(function (alias) { + header += '
  • "language-' + alias + '"
  • '; + }); + header += '
'; + } else { + header += '

To use this language, use the class "language-' + id + '".

'; + } + if (language.require) { + var require = language.require; + if (Prism.util.type(require) !== 'Array') { + require = [require]; + } + + header += '

Dependencies: The following dependencies need to be loaded before this component: '; + header += require.map(function (dep) { + return '' + dep + ''; + }).join(', '); + header += '.

'; + } + return header; +} + +function update(id) { + var language = languages[id]; + if (language.enabled) { + if (!language.examplesPromise) { + language.examplesPromise = getFileContents(language.examplesPath); + } + language.examplesPromise.then(function (contents) { + examples[id].innerHTML = buildContentsHeader(id) + contents; + + loadLanguage(id).then(function () { + var elements = examples[id].querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'); + + for (var i=0, element; element = elements[i++];) { + Prism.highlightElement(element); + } + }); + }); + } else { + examples[id].innerHTML = ''; + } +} + +/** + * Loads a language, including all dependencies + * + * @param {string} lang the language to load + * @type {Promise} the promise which resolves as soon as everything is loaded + */ +function loadLanguage (lang) +{ + // at first we need to fetch all dependencies for the main language + // Note: we need to do this, even if the main language already is loaded (just to be sure..) + // + // We load an array of all dependencies and call recursively this function on each entry + // + // dependencies is now an (possibly empty) array of loading-promises + var dependencies = getDependenciesOfLanguage(lang).map(loadLanguage); + + // We create a promise, which will resolve, as soon as all dependencies are loaded. + // They need to be fully loaded because the main language may extend them. + return Promise.all(dependencies) + .then(function () { + + // If the main language itself isn't already loaded, load it now + // and return the newly created promise (we chain the promises). + // If the language is already loaded, just do nothing - the next .then() + // will immediately be called + if (!Prism.languages[lang]) { + return new Promise(function (resolve) { + $u.script('components/prism-' + lang + '.js', resolve); + }); + } + }); +} + + +/** + * Returns all dependencies (as identifiers) of a specific language + * + * @param {string} lang + * @returns {Array.} the list of dependencies. Empty if the language has none. + */ +function getDependenciesOfLanguage (lang) +{ + if (!components.languages[lang] || !components.languages[lang].require) + { + return []; + } + + return ($u.type(components.languages[lang].require) === "array") + ? components.languages[lang].require + : [components.languages[lang].require]; +} + +}()); diff --git a/docs/_style/prism-master/examples/prism-abap.html b/docs/_style/prism-master/examples/prism-abap.html new file mode 100644 index 00000000..dfda1f7f --- /dev/null +++ b/docs/_style/prism-master/examples/prism-abap.html @@ -0,0 +1,65 @@ +

Comments

+

+* Line Comments
+" End of line comment used as line comment.
+value = 1. " End of line comment
+
+DATA:
+  "! ABAPDoc comment
+  value TYPE i.
+
+ +

Strings

+ +

+my_string = 'Simple string'.
+my_string = 'String with an escaped '' inside'.
+my_string = |A string template: { nvalue } times|.
+my_string = |A string template: { nvalue } times|.
+my_string = |Characters \|, \{, and \} have to be escaped by \\ in literal text.|. 
+
+ +

Numbers and Operators

+ +

+value = 001 + 2 - 3 * 4 / 5 ** 6.
+
+IF value < 1 OR
+   value = 2 OR
+   value > 3 OR
+   value <> 4 OR
+   value <= 5 OR
+   value >= 6.
+ENDIF.
+
+" Dynamic object assignment (with type cast check)
+lo_interface ?= lo_class.
+
+ +

Structures and Classes

+ +

+DATA:
+  BEGIN OF my_structure,
+    scomponent TYPE i,
+  END OF my_structure.
+
+CLASS lcl_my_class DEFINITION.
+  PUBLIC SECTION.
+    METHODS my_method
+      RETURNING
+        VALUE(ret_value) TYPE i.
+ENDCLASS.
+
+CLASS lcl_my_class IMPLEMENTATION.
+  METHOD my_method.
+    ret_value = 1.
+  ENDMETHOD
+ENDCLASS.
+
+DATA lo_instace TYPE REF TO lcl_my_class.
+
+CREATE OBJECT lo_instace.
+
+my_structure-component = lo_instace->my_method( ).
+
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-actionscript.html b/docs/_style/prism-master/examples/prism-actionscript.html new file mode 100644 index 00000000..abb5804d --- /dev/null +++ b/docs/_style/prism-master/examples/prism-actionscript.html @@ -0,0 +1,133 @@ +

Comments

+
// Single line comment
+/* Multi-line
+comment */
+ +

Literal values

+
17
+"hello"
+-3
+9.4
+null
+true
+false
+ +

Classes

+
class A {}
+class B extends A {}
+ +

Inline XML

+
var employees:XML =
+    <employees>
+        <employee ssn="123-123-1234">
+            <name first="John" last="Doe"/>
+            <address>
+                <city>San Francisco</city>
+                <state>CA</state>
+                <zip>98765</zip>
+            </address>
+        </employee>
+        <employee ssn="789-789-7890">
+            <name first="Mary" last="Roe"/>
+            <address>
+                <city>Newton</city>
+                <state>MA</state>
+                <zip>01234</zip>
+            </address>
+        </employee>
+    </employees>;
+ +

Full example

+
package {
+  import flash.display.*;
+  import flash.events.*;
+  import flash.filters.BlurFilter;
+  import flash.geom.*;
+  import flash.ui.*;
+  public class ch23ex2 extends Sprite {
+    protected const BMP_SCALE:Number = 1/2;
+    protected const D:Number = 1.015;
+    protected const DIM_EFFECT:ColorTransform = new ColorTransform(D, D, D);
+    protected const B:int = 16;
+    protected const BLUR_EFFECT:BlurFilter = new BlurFilter(B, B, 1);
+    protected var RLUT:Array, GLUT:Array, BLUT:Array;
+    protected var sourceBmp:BitmapData;
+    protected var colorBmp:BitmapData;
+    protected var touches:Array = new Array();
+    protected var fingerShape:Shape = new Shape();
+    public function ch23ex2() {
+      try {
+        var test:Class = Multitouch;
+        if (Multitouch.supportsTouchEvents) {
+          Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
+          init();
+        } else {
+          trace("Sorry, this example requires multitouch.");
+        }
+      } catch (error:ReferenceError) {
+        trace("Sorry, but multitouch is not supported in this runtime.");
+      }
+    }
+    protected function init():void {
+      //create a black-and-white bitmap and a color bitmap, only show the color
+      sourceBmp = new BitmapData(
+        stage.stageWidth*BMP_SCALE, stage.stageHeight*BMP_SCALE, false, 0);
+      colorBmp = sourceBmp.clone();
+      var bitmap:Bitmap = new Bitmap(colorBmp, PixelSnapping.ALWAYS, true);
+      bitmap.width = stage.stageWidth; bitmap.height = stage.stageHeight;
+      addChild(bitmap);
+
+      //create finger shape to paste onto the bitmap under your touches
+      fingerShape.graphics.beginFill(0xffffff, 0.1);
+      fingerShape.graphics.drawEllipse(-15, -20, 30, 40);
+      fingerShape.graphics.endFill();
+
+      //create the palette map from a gradient
+      var gradient:Shape = new Shape();
+      var m:Matrix = new Matrix();
+      m.createGradientBox(256, 10);
+      gradient.graphics.beginGradientFill(GradientType.LINEAR,
+        [0x313ad8, 0x2dce4a, 0xdae234, 0x7a1c1c, 0x0f0303],
+        [1, 1, 1, 1, 1], [0, 0.4*256, 0.75*256, 0.9*256, 255], m);
+      gradient.graphics.drawRect(0, 0, 256, 10);
+      var gradientBmp:BitmapData = new BitmapData(256, 10, false, 0);
+      gradientBmp.draw(gradient);
+      RLUT = new Array(); GLUT = new Array(); BLUT = new Array();
+      for (var i:int = 0; i < 256; i++) {
+        var pixelColor:uint = gradientBmp.getPixel(i, 0);
+        //I drew the gradient backwards, so sue me
+        RLUT[256-i] = pixelColor & 0xff0000;
+        GLUT[256-i] = pixelColor & 0x00ff00;
+        BLUT[256-i] = pixelColor & 0x0000ff;
+      }
+
+      stage.addEventListener(TouchEvent.TOUCH_BEGIN, assignTouch);
+      stage.addEventListener(TouchEvent.TOUCH_MOVE, assignTouch);
+      stage.addEventListener(TouchEvent.TOUCH_END, removeTouch);
+      stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
+    }
+    protected function assignTouch(event:TouchEvent):void {
+      touches[event.touchPointID] = event;
+    }
+    protected function removeTouch(event:TouchEvent):void {
+      delete touches[event.touchPointID];
+    }
+    protected function onEnterFrame(event:Event):void {
+      for (var key:String in touches) {
+        var touch:TouchEvent = touches[key] as TouchEvent;
+        if (touch) {
+          //plaster the finger image under your finger
+          var m:Matrix = new Matrix();
+          m.translate(touch.stageX*BMP_SCALE, touch.stageY*BMP_SCALE);
+          sourceBmp.draw(fingerShape, m, null, BlendMode.ADD);
+        }
+      }
+      var O:Point = new Point(0, 0);
+      //blur and ever-so-slightly brighten the image to make the color last
+      sourceBmp.applyFilter(sourceBmp, sourceBmp.rect, O, BLUR_EFFECT);
+      sourceBmp.colorTransform(sourceBmp.rect, DIM_EFFECT);
+      //we've calculated the image in grayscale brightnesses, now make it color
+      colorBmp.paletteMap(sourceBmp, sourceBmp.rect, O, RLUT, GLUT, BLUT, null);
+    }
+  }
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-ada.html b/docs/_style/prism-master/examples/prism-ada.html new file mode 100644 index 00000000..1783027e --- /dev/null +++ b/docs/_style/prism-master/examples/prism-ada.html @@ -0,0 +1,35 @@ +

Strings

+
"foo ""bar"" baz"
+"Multi-line strings are appended with a " &
+"ampersand symbole."
+ +

Ada83 example

+
WITH ADA.TEXT_IO;
+
+--  Comments look like this.
+
+PROCEDURE TEST IS
+BEGIN
+   ADA.TEXT_IO.PUT_LINE ("Hello");   --  Comments look like this.
+END TEST;
+ +

Ada 2012 full example

+
with Ada.Text_IO; Use Ada.Text_IO;
+
+--  Comments look like this.
+procedure Test is
+   procedure Bah with
+    Import        => True,   --  Shows the new aspect feature of the language.
+    Convention    => C,
+    External_Name => "bah";
+
+   type Things is range 1 .. 10;
+begin
+   Put_Line ("Hello");   --  Comments look like this.
+
+   Bah;  -- Call C function.
+
+   for Index in Things'Range loop
+      null;
+   end loop;
+end Test;
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-apacheconf.html b/docs/_style/prism-master/examples/prism-apacheconf.html new file mode 100644 index 00000000..f6953e1b --- /dev/null +++ b/docs/_style/prism-master/examples/prism-apacheconf.html @@ -0,0 +1,54 @@ +

Comments

+
# This is a comment
+# <VirtualHost *:80>
+
+ +

Directives

+
<Files .htaccess>
+	Order allow,deny
+	Deny from all
+</Files>
+
+ +

Variables

+
RewriteCond %{REQUEST_FILENAME}.php -f
+ +

Regex

+
^(.*)$
+!^www\.
+ +

Directive flags

+
[NC]
+[RC=301,L]
+ +

Strings

+
AuthName "Fichiers réservés"
+ +

Full example

+
## BASIC PASSWORD PROTECTION
+AuthType basic
+AuthName "prompt"
+AuthUserFile /.htpasswd
+AuthGroupFile /dev/null
+Require valid-user
+
+## ALLOW FROM IP OR VALID PASSWORD
+Require valid-user
+Allow from 192.168.1.23
+Satisfy Any
+
+## PROTECT FILES
+Order Allow,Deny
+Deny from all
+
+## REQUIRE SUBDOMAIN
+RewriteCond %{HTTP_HOST} !^$
+RewriteCond %{HTTP_HOST} !^subdomain\.domain\.tld$ [NC]
+RewriteRule ^/(.*)$ http://subdomain.domain.tld/$1 [L,R=301]
+
+ErrorDocument 403 http://www.example.com/logo.gif
+ErrorDocument 403 /images/you_bad_hotlinker.gif
+
+## REDIRECT UPLOADS
+RewriteCond %{REQUEST_METHOD} ^(PUT|POST)$ [NC]
+RewriteRule ^(.*)$ /cgi-bin/form-upload-processor.cgi?p=$1 [L,QSA]
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-apl.html b/docs/_style/prism-master/examples/prism-apl.html new file mode 100644 index 00000000..61a7e469 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-apl.html @@ -0,0 +1,26 @@ +

Comments

+
#!/usr/bin/env runapl
+a←1 2 3 ⍝ this is a comment
+ +

Strings

+
''
+'foobar'
+'foo''bar''baz'
+ +

Numbers

+
42
+3.14159
+¯2
+∞
+2.8e¯4
+2j3
+¯4.3e2J1.9e¯4
+ +

Primitive functions

+
a+b×c⍴⍳10
+ +

Operators

+
+/ f⍣2
+ +

Dfns

+
{0=⍴⍴⍺:'hello' ⋄ ∇¨⍵}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-applescript.html b/docs/_style/prism-master/examples/prism-applescript.html new file mode 100644 index 00000000..c88390e8 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-applescript.html @@ -0,0 +1,41 @@ +

Comments

+
-- Single line comment
+#!/usr/bin/osascript
+(* Here is
+a block
+comment *)
+ +

Strings

+
"foo \"bar\" baz"
+ +

Operators

+
a ≠ b
+12 + 2 * 5
+"DUMPtruck" is equal to "dumptruck"
+"zebra" comes after "aardvark"
+{ "this", "is", 2, "cool" } starts with "this"
+{ "is", 2} is contained by { "this", "is", 2, "cool" }
+set docRef to a reference to the first document
+
+ +

Classes and units

+
tell application "Finder"
+text 1 thru 5 of "Bring me the mouse."
+set averageTemp to 63 as degrees Fahrenheit
+set circleArea to (pi * 7 * 7) as square yards
+
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Comments only support one level of nesting

+
(* Nested block
+	(* comments
+		(* on more than
+		2 levels *)
+	are *)
+not supported *)
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-arduino.html b/docs/_style/prism-master/examples/prism-arduino.html new file mode 100644 index 00000000..915f700f --- /dev/null +++ b/docs/_style/prism-master/examples/prism-arduino.html @@ -0,0 +1,63 @@ +

Strings

+
"foo \"bar\" baz"
+'foo \'bar\' baz'
+"Multi-line strings ending with a \
+are supported too."
+ +

Macro statements

+
#include <Bridge.h>
+#define SOME_PIN 11
+
+ +

Booleans

+
true;
+false;
+ +

Operators

+
a < b;
+c && d;
+ +

Full example

+
#include <Bridge.h>
+
+// pin of the piezo speaker
+int piezo = 8;
+
+/**
+ * setups
+ * runs once before everyhing else
+ */
+void setup() {
+    pinMode(piezo, OUTPUT);     
+}
+
+/**
+ * loop
+ * this will run forever and do what we want
+ */
+void loop() {
+    playMelody(1);
+    delay(1000);
+}
+
+/**
+ * playMelody
+ * will play a simple melody on piezo speaker
+ */
+void playMelody(int times) {
+    int melody[] = { 4699, 4699, 3520, 4699 };
+    int duration = 6;
+
+    for( int t = 0; t < times; t++ ) {
+        for( int i = 0; i < 4; i++ ) {
+            // pass tone to selected pin
+            tone(piezoPin, melody[i], 1000/duration);
+
+            // get a bit of time between the tones
+            delay(1000 / duration * 1.30 + 80);
+
+            // and don't forget to switch of the tone afterwards
+            noTone(piezoPin);
+        }
+    }
+}
diff --git a/docs/_style/prism-master/examples/prism-arff.html b/docs/_style/prism-master/examples/prism-arff.html new file mode 100644 index 00000000..41812099 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-arff.html @@ -0,0 +1,46 @@ +

Comments

+
%
+% Some comments
+%
+%
+ +

Keywords

+
@attribute
+@data
+@relation
+ +

Numbers

+
42
+0.14
+ +

Strings

+
'Single \'quoted\' string'
+"Double \"quoted\" string"
+ +

Full example

+
% 1. Title: Iris Plants Database
+%
+% 2. Sources:
+%      (a) Creator: R.A. Fisher
+%      (b) Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)
+%      (c) Date: July, 1988
+%
+@RELATION iris
+
+@ATTRIBUTE sepallength  NUMERIC
+@ATTRIBUTE sepalwidth   NUMERIC
+@ATTRIBUTE petallength  NUMERIC
+@ATTRIBUTE petalwidth   NUMERIC
+@ATTRIBUTE class        {Iris-setosa,Iris-versicolor,Iris-virginica}
+
+@DATA
+5.1,3.5,1.4,0.2,Iris-setosa
+4.9,3.0,1.4,0.2,Iris-setosa
+4.7,3.2,1.3,0.2,Iris-setosa
+4.6,3.1,1.5,0.2,Iris-setosa
+5.0,3.6,1.4,0.2,Iris-setosa
+5.4,3.9,1.7,0.4,Iris-setosa
+4.6,3.4,1.4,0.3,Iris-setosa
+5.0,3.4,1.5,0.2,Iris-setosa
+4.4,2.9,1.4,0.2,Iris-setosa
+4.9,3.1,1.5,0.1,Iris-setosa
diff --git a/docs/_style/prism-master/examples/prism-asciidoc.html b/docs/_style/prism-master/examples/prism-asciidoc.html new file mode 100644 index 00000000..d6df3021 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-asciidoc.html @@ -0,0 +1,104 @@ +

Comments

+
/////
+Comment block
+/////
+
+// Comment line
+ +

Titles

+
Level 0
+========
+Level 1
+--------
+Level 2
+~~~~~~~~
+Level 3
+^^^^^^^^
+Level 4
+++++++++
+
+= Document Title (level 0) =
+== Section title (level 1) ==
+=== Section title (level 2) ===
+==== Section title (level 3) ====
+===== Section title (level 4) =====
+
+.Notes
+ +

Blocks

+
++++++++++++++++++++++++++
+Passthrough block
+++++++++++++++++++++++++++
+
+--------------------------
+Listing block
+--------------------------
+
+..........................
+Literal block
+No *highlighting* _here_
+..........................
+
+**************************
+Sidebar block
+**************************
+
+[quote,'http://en.wikipedia.org/wiki/Samuel_Johnson[Samuel Johnson]']
+_____________________________________________________________________
+Sir, a woman's preaching is like a dog's walking on his hind legs. It
+is not done well; but you are surprised to find it done at all.
+_____________________________________________________________________
+
+==========================
+Example block
+==========================
+ +

Lists

+
- List item.
+* List item.
+** List item.
+*** List item.
+**** List item.
+***** List item.
+
+1.   Arabic (decimal) numbered list item.
+a.   Lower case alpha (letter) numbered list item.
+F.   Upper case alpha (letter) numbered list item.
+iii) Lower case roman numbered list item.
+IX)  Upper case roman numbered list item.
+
+. Arabic (decimal) numbered list item.
+.. Lower case alpha (letter) numbered list item.
+... Lower case roman numbered list item.
+.... Upper case alpha (letter) numbered list item.
+..... Upper case roman numbered list item.
+
+Dolor::
+  Donec eget arcu bibendum nunc consequat lobortis.
+  Suspendisse;;
+    A massa id sem aliquam auctor.
+  Morbi;;
+    Pretium nulla vel lorem.
+  In;;
+    Dictum mauris in urna.
+    Vivamus::: Fringilla mi eu lacus.
+    Donec:::   Eget arcu bibendum nunc consequat lobortis.
+ +

Tables

+
[cols="e,m,^,>s",width="25%"]
+|============================
+|1 >s|2 |3 |4
+^|5 2.2+^.^|6 .3+<.>m|7
+^|8
+|9 2+>|10
+|============================
+ +

Inline styles

+
*Some bold text*
+This is an _emphasis_
+[[[walsh-muellner]]]
+ +

Attribute entries

+
:Author Initials: JB
+{authorinitials}
+:Author Initials!:
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-asm6502.html b/docs/_style/prism-master/examples/prism-asm6502.html new file mode 100644 index 00000000..21f4b687 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-asm6502.html @@ -0,0 +1,39 @@ +

Comments

+
; This is a comment
+ +

Labels

+
label1:   ; a label
+ +

Opcodes

+

+SEI
+CLC
+
+; lowercase
+inx
+bne label1
+
+ +

Assembler directives

+

+.segment CODE
+.word $07d3
+
+ +

Registers

+

+ASL A  ; "A"
+LDA label1,x  ; "x"
+
+ +

Strings

+

+.include "header.asm"
+
+ +

Numbers

+

+LDA #127
+STA $80f0
+LDY #%01011000
+
diff --git a/docs/_style/prism-master/examples/prism-aspnet.html b/docs/_style/prism-master/examples/prism-aspnet.html new file mode 100644 index 00000000..d9c30fcf --- /dev/null +++ b/docs/_style/prism-master/examples/prism-aspnet.html @@ -0,0 +1,36 @@ +

Comments

+
<%-- This is a comment --%>
+<%-- This is a
+multi-line comment --%>
+ +

Page directives

+
<%@ Page Title="Products" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"  CodeBehind="ProductList.aspx.cs" Inherits="WingtipToys.ProductList" %>
+
+ +

Directive tag

+
<%: Page.Title %>
+<a href="ProductDetails.aspx?productID=<%#:Item.ProductID%>">
+<span>
+    <%#:Item.ProductName%>
+</span>
+ +

Highlighted C# inside scripts

+

This requires the C# component to be loaded. + On this page, check C# before checking ASP.NET should make + the example below work properly.

+
<script runat="server">
+    // The following variables are visible to all procedures
+    // within the script block.
+    String str;
+    int i;
+    int i2;
+
+    int DoubleIt(int inpt)
+    {
+        // The following variable is visible only within
+        // the DoubleIt procedure.
+        int factor = 2;
+
+        return inpt * factor;
+    }
+</script>
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-autohotkey.html b/docs/_style/prism-master/examples/prism-autohotkey.html new file mode 100644 index 00000000..620edb2e --- /dev/null +++ b/docs/_style/prism-master/examples/prism-autohotkey.html @@ -0,0 +1,68 @@ +

Comments

+
; This is a comment
+ +

Strings

+
"foo ""bar"" baz"
+ +

Numbers

+
123
+123.456
+123.456e789
+0xAF
+ +

Full example

+
;----Open the selected favorite
+f_OpenFavorite:
+; Fetch the array element that corresponds to the selected menu item:
+StringTrimLeft, f_path, f_path%A_ThisMenuItemPos%, 0
+if f_path =
+    return
+if f_class = #32770    ; It's a dialog.
+{
+    if f_Edit1Pos <>   ; And it has an Edit1 control.
+    {
+        ; Activate the window so that if the user is middle-clicking
+        ; outside the dialog, subsequent clicks will also work:
+        WinActivate ahk_id %f_window_id%
+        ; Retrieve any filename that might already be in the field so
+        ; that it can be restored after the switch to the new folder:
+        ControlGetText, f_text, Edit1, ahk_id %f_window_id%
+        ControlSetText, Edit1, %f_path%, ahk_id %f_window_id%
+        ControlSend, Edit1, {Enter}, ahk_id %f_window_id%
+        Sleep, 100  ; It needs extra time on some dialogs or in some cases.
+        ControlSetText, Edit1, %f_text%, ahk_id %f_window_id%
+        return
+    }
+    ; else fall through to the bottom of the subroutine to take standard action.
+}
+else if f_class in ExploreWClass,CabinetWClass  ; In Explorer, switch folders.
+{
+    if f_Edit1Pos <>   ; And it has an Edit1 control.
+    {
+        ControlSetText, Edit1, %f_path%, ahk_id %f_window_id%
+        ; Tekl reported the following: "If I want to change to Folder L:\folder
+        ; then the addressbar shows http://www.L:\folder.com. To solve this,
+        ; I added a {right} before {Enter}":
+        ControlSend, Edit1, {Right}{Enter}, ahk_id %f_window_id%
+        return
+    }
+    ; else fall through to the bottom of the subroutine to take standard action.
+}
+else if f_class = ConsoleWindowClass ; In a console window, CD to that directory
+{
+    WinActivate, ahk_id %f_window_id% ; Because sometimes the mclick deactivates it.
+    SetKeyDelay, 0  ; This will be in effect only for the duration of this thread.
+    IfInString, f_path, :  ; It contains a drive letter
+    {
+        StringLeft, f_path_drive, f_path, 1
+        Send %f_path_drive%:{enter}
+    }
+    Send, cd %f_path%{Enter}
+    return
+}
+; Since the above didn't return, one of the following is true:
+; 1) It's an unsupported window type but f_AlwaysShowMenu is y (yes).
+; 2) It's a supported type but it lacks an Edit1 control to facilitate the custom
+;    action, so instead do the default action below.
+Run, Explorer %f_path%  ; Might work on more systems without double quotes.
+return
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-autoit.html b/docs/_style/prism-master/examples/prism-autoit.html new file mode 100644 index 00000000..51220b42 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-autoit.html @@ -0,0 +1,52 @@ +

Comments

+
; Single-line comment
+#comments-start
+	Multi-line
+	comment
+#comments-end
+#cs
+	Multi-line
+	comment
+#ce
+;#comments-start
+	foo()
+;#comments-end
+ +

Strings

+
"foo'bar'baz"
+"foo""bar""baz"
+'foo"bar"baz'
+'foo''bar''baz'
+ +

Numbers

+
2
+4.566
+1.5e3
+0x4fff
+ +

Booleans

+
True
+False
+ +

Keywords and variables

+
; Display all the numbers for 1 to 10 but skip displaying  7.
+For $i = 1 To 10
+    If $i = 7 Then
+        ContinueLoop ; Skip displaying the message box when $i is equal to 7.
+    EndIf
+    MsgBox($MB_SYSTEMMODAL, "", "The value of $i is: " & $i)
+Next
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Nested block comments

+
#cs
+	#cs
+		foo()
+	#ce
+#ce
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-bash.html b/docs/_style/prism-master/examples/prism-bash.html new file mode 100644 index 00000000..3e0febfa --- /dev/null +++ b/docs/_style/prism-master/examples/prism-bash.html @@ -0,0 +1,49 @@ +

Shebang

+
#!/bin/bash
+ +

Comments

+
# This is a comment
+ +

Strings

+
STRING="Hello World"
+'Single and
+multi-line strings are supported.'
+"Single and
+multi-line strings are supported."
+cat << EOF
+Here-Documents
+are also supported
+EOF
+ +

Variables

+
echo $STRING
+args=("$@")
+echo ${args[0]} ${args[1]} ${args[2]}
+ +

Keywords

+
for (( i=0;i<$ELEMENTS;i++)); do
+	echo ${ARRAY[${i}]}
+done
+while read LINE; do
+    ARRAY[$count]=$LINE
+    ((count++))
+done
+if [ -d $directory ]; then
+	echo "Directory exists"
+else
+	echo "Directory does not exists"
+fi
+
+ +

Some well-known commands

+
crontab -l -u USER | grep -v 'YOUR JOB COMMAND or PATTERN' | crontab -u USER -
+
+groups user1 user2|cut -d: -f2|xargs -n1|sort|uniq -d
+
+wget -q -O - http://www.example.com/automation/remotescript.sh | bash /dev/stdin parameter1 parameter2
+
+sudo dpkg -i vagrant_1.7.2_x86_64.deb
+
+git pull origin master
+
+sudo gpg --refresh-keys; sudo apt-key update; sudo rm -rf /var/lib/apt/{lists,lists.old}; sudo mkdir -p /var/lib/apt/lists/partial; sudo apt-get clean all; sudo apt-get update
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-basic.html b/docs/_style/prism-master/examples/prism-basic.html new file mode 100644 index 00000000..3630a8a2 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-basic.html @@ -0,0 +1,69 @@ +

Note: this component focuses on first and second-generation BASICs (such as MSX BASIC, GW-BASIC, SuperBASIC, QuickBASIC, PowerBASIC...).

+ +

Comments

+
! This is a comment
+REM This is a remark
+ +

Strings

+
"This a string."
+"This is a string with ""quotes"" in it."
+ +

Numbers

+
42
+3.14159
+-42
+-3.14159
+.5
+10.
+2E10
+4.2E-14
+-3E+2
+ +

Dartmouth Basic example

+
5 LET S = 0
+10 MAT INPUT V
+20 LET N = NUM
+30 IF N = 0 THEN 99
+40 FOR I = 1 TO N
+45 LET S = S + V(I)
+50 NEXT I
+60 PRINT S/N
+70 GO TO 5
+99 END
+ +

GW-BASIC example

+
10 INPUT "What is your name: ", U$
+20 PRINT "Hello "; U$
+30 INPUT "How many stars do you want: ", N
+40 S$ = ""
+50 FOR I = 1 TO N
+60 S$ = S$ + "*"
+70 NEXT I
+80 PRINT S$
+90 INPUT "Do you want more stars? ", A$
+100 IF LEN(A$) = 0 THEN GOTO 90
+110 A$ = LEFT$(A$, 1)
+120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30
+130 PRINT "Goodbye "; U$
+140 END
+ +

QuickBASIC example

+
DECLARE SUB PrintSomeStars (StarCount!)
+REM QuickBASIC example
+INPUT "What is your name: ", UserName$
+PRINT "Hello "; UserName$
+DO
+   INPUT "How many stars do you want: ", NumStars
+   CALL PrintSomeStars(NumStars)
+   DO
+      INPUT "Do you want more stars? ", Answer$
+   LOOP UNTIL Answer$ <> ""
+   Answer$ = LEFT$(Answer$, 1)
+LOOP WHILE UCASE$(Answer$) = "Y"
+PRINT "Goodbye "; UserName$
+
+SUB PrintSomeStars (StarCount)
+   REM This procedure uses a local variable called Stars$
+   Stars$ = STRING$(StarCount, "*")
+   PRINT Stars$
+END SUB
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-batch.html b/docs/_style/prism-master/examples/prism-batch.html new file mode 100644 index 00000000..13f9018c --- /dev/null +++ b/docs/_style/prism-master/examples/prism-batch.html @@ -0,0 +1,17 @@ +

Comments

+
::
+:: Foo bar
+REM This is a comment too
+REM Multi-line ^
+comment
+ +

Labels

+
:foobar
+GOTO :EOF
+ +

Commands

+
@ECHO OFF
+FOR /l %%a in (5,-1,1) do (TITLE %title% -- closing in %%as)
+SET title=%~n0
+if /i "%InstSize:~0,1%"=="M" set maxcnt=3
+ping -n 2 -w 1 127.0.0.1
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-bison.html b/docs/_style/prism-master/examples/prism-bison.html new file mode 100644 index 00000000..9c7edeb8 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-bison.html @@ -0,0 +1,104 @@ +

Comments

+
// Single-line comment
+/* Multi-line
+comment */
+ +

C prologue and Bison declarations

+
%{
+  #include <stdio.h>
+  #include <math.h>
+  int yylex (void);
+  void yyerror (char const *);
+%}
+
+%define api.value.type {double}
+%token NUM
+%union { char *string; }
+%%
+%%
+ +

Grammar rules

+
%%
+exp:
+  NUM           { $$ = $1;           }
+| exp exp '+'   { $$ = $1 + $2;      }
+| exp exp '-'   { $$ = $1 - $2;      }
+| exp exp '*'   { $$ = $1 * $2;      }
+| exp exp '/'   { $$ = $1 / $2;      }
+| exp exp '^'   { $$ = pow($1, $2);  }  /* Exponentiation */
+| exp 'n'       { $$ = -$1;          }  /* Unary minus    */
+;
+
+$@1: %empty { a(); };
+$@2: %empty { c(); };
+$@3: %empty { d(); };
+exp: $@1 "b" $@2 $@3 "e" { f(); };
+%%
+ +

Full example

+
/* Mini Calculator */
+/* calc.y */
+
+%{
+#include "heading.h"
+int yyerror(char *s);
+int yylex(void);
+%}
+
+%union{
+  int		int_val;
+  string*	op_val;
+}
+
+%start	input 
+
+%token	<int_val>	INTEGER_LITERAL
+%type	<int_val>	exp
+%left	PLUS
+%left	MULT
+
+%%
+
+input:		/* empty */
+		| exp	{ cout << "Result: " << $1 << endl; }
+		;
+
+exp:		INTEGER_LITERAL	{ $$ = $1; }
+		| exp PLUS exp	{ $$ = $1 + $3; }
+		| exp MULT exp	{ $$ = $1 * $3; }
+		;
+
+%%
+
+int yyerror(string s)
+{
+  extern int yylineno;	// defined and maintained in lex.c
+  extern char *yytext;	// defined and maintained in lex.c
+  
+  cerr << "ERROR: " << s << " at symbol \"" << yytext;
+  cerr << "\" on line " << yylineno << endl;
+  exit(1);
+}
+
+int yyerror(char *s)
+{
+  return yyerror(string(s));
+}
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Two levels of nesting inside C section

+
{
+	if($1) {
+		if($2) {
+
+		}
+	}
+} // <- Broken
+%%
+%%
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-brainfuck.html b/docs/_style/prism-master/examples/prism-brainfuck.html new file mode 100644 index 00000000..89a435c9 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-brainfuck.html @@ -0,0 +1,37 @@ +

Full example

+
+++++ +++               Set Cell #0 to 8
+[
+    >++++               Add 4 to Cell #1; this will always set Cell #1 to 4
+    [                   as the cell will be cleared by the loop
+        >++             Add 2 to Cell #2
+        >+++            Add 3 to Cell #3
+        >+++            Add 3 to Cell #4
+        >+              Add 1 to Cell #5
+        <<<<-           Decrement the loop counter in Cell #1
+    ]                   Loop till Cell #1 is zero; number of iterations is 4
+    >+                  Add 1 to Cell #2
+    >+                  Add 1 to Cell #3
+    >-                  Subtract 1 from Cell #4
+    >>+                 Add 1 to Cell #6
+    [<]                 Move back to the first zero cell you find; this will
+                        be Cell #1 which was cleared by the previous loop
+    <-                  Decrement the loop Counter in Cell #0
+]                       Loop till Cell #0 is zero; number of iterations is 8
+
+The result of this is:
+Cell No :   0   1   2   3   4   5   6
+Contents:   0   0  72 104  88  32   8
+Pointer :   ^
+
+>>.                     Cell #2 has value 72 which is 'H'
+>---.                   Subtract 3 from Cell #3 to get 101 which is 'e'
++++++++..+++.           Likewise for 'llo' from Cell #3
+>>.                     Cell #5 is 32 for the space
+<-.                     Subtract 1 from Cell #4 for 87 to give a 'W'
+<.                      Cell #3 was set to 'o' from the end of 'Hello'
++++.------.--------.    Cell #3 for 'rl' and 'd'
+>>+.                    Add 1 to Cell #5 gives us an exclamation point
+>++.                    And finally a newline from Cell #6
+ +

One-line example

+
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
diff --git a/docs/_style/prism-master/examples/prism-bro.html b/docs/_style/prism-master/examples/prism-bro.html new file mode 100644 index 00000000..83d6374e --- /dev/null +++ b/docs/_style/prism-master/examples/prism-bro.html @@ -0,0 +1,645 @@ +

Comments

+
# Single line comment
+
+ +

Strings

+

+"a", "b"
+
+ +

Numbers

+
123
+123.456
+-123.456
+
+ +

Misc

+

+@ifndef ourexp
+@load-sigs somesigs
+
+ +

Full example

+

+##! Scan detector ported from Bro 1.x.
+##!
+##! This script has evolved over many years and is quite a mess right now. We
+##! have adapted it to work with Bro 2.x, but eventually Bro 2.x will
+##! get its own rewritten and generalized scan detector.
+
+@load base/frameworks/notice/main
+
+module Scan;
+
+export {
+	redef enum Notice::Type += {
+		## The source has scanned a number of ports.
+		PortScan,
+		## The source has scanned a number of addresses.
+		AddressScan,
+		## Apparent flooding backscatter seen from source.
+		BackscatterSeen,
+
+		## Summary of scanning activity.
+		ScanSummary,
+		## Summary of distinct ports per scanner.
+		PortScanSummary,
+		## Summary of distinct low ports per scanner.
+		LowPortScanSummary,
+
+		## Source reached :bro:id:`Scan::shut_down_thresh`
+		ShutdownThresh,
+		## Source touched privileged ports.
+		LowPortTrolling,
+	};
+
+	# Whether to consider UDP "connections" for scan detection.
+	# Can lead to false positives due to UDP fanout from some P2P apps.
+	const suppress_UDP_scan_checks = F &redef;
+
+	const activate_priv_port_check = T &redef;
+	const activate_landmine_check = F &redef;
+	const landmine_thresh_trigger = 5 &redef;
+
+	const landmine_address: set[addr] &redef;
+
+	const scan_summary_trigger = 25 &redef;
+	const port_summary_trigger = 20 &redef;
+	const lowport_summary_trigger = 10 &redef;
+
+	# Raise ShutdownThresh after this many failed attempts
+	const shut_down_thresh = 100 &redef;
+
+	# Which services should be analyzed when detecting scanning
+	# (not consulted if analyze_all_services is set).
+	const analyze_services: set[port] &redef;
+	const analyze_all_services = T &redef;
+
+	# Track address scaners only if at least these many hosts contacted.
+	const addr_scan_trigger = 0 &redef;
+
+	# Ignore address scanners for further scan detection after
+	# scanning this many hosts.
+	# 0 disables.
+	const ignore_scanners_threshold = 0 &redef;
+
+	# Report a scan of peers at each of these points.
+	const report_peer_scan: vector of count = {
+		20, 100, 1000, 10000, 50000, 100000, 250000, 500000, 1000000,
+	} &redef;
+
+	const report_outbound_peer_scan: vector of count = {
+		100, 1000, 10000,
+	} &redef;
+
+	# Report a scan of ports at each of these points.
+	const report_port_scan: vector of count = {
+		50, 250, 1000, 5000, 10000, 25000, 65000,
+	} &redef;
+
+	# Once a source has scanned this many different ports (to however many
+	# different remote hosts), start tracking its per-destination access.
+	const possible_port_scan_thresh = 20 &redef;
+
+	# Threshold for scanning privileged ports.
+	const priv_scan_trigger = 5 &redef;
+	const troll_skip_service = {
+		25/tcp, 21/tcp, 22/tcp, 20/tcp, 80/tcp,
+	} &redef;
+
+	const report_accounts_tried: vector of count = {
+		20, 100, 1000, 10000, 100000, 1000000,
+	} &redef;
+
+	const report_remote_accounts_tried: vector of count = {
+		100, 500,
+	} &redef;
+
+	# Report a successful password guessing if the source attempted
+	# at least this many.
+	const password_guessing_success_threshhold = 20 &redef;
+
+	const skip_accounts_tried: set[addr] &redef;
+
+	const addl_web = {
+		81/tcp, 443/tcp, 8000/tcp, 8001/tcp, 8080/tcp, }
+	&redef;
+
+	const skip_services = { 113/tcp, } &redef;
+	const skip_outbound_services = { 21/tcp, addl_web, }
+		&redef;
+
+	const skip_scan_sources = {
+		255.255.255.255,	# who knows why we see these, but we do
+	} &redef;
+
+	const skip_scan_nets: set[subnet] = {} &redef;
+
+	# List of well known local server/ports to exclude for scanning
+	# purposes.
+	const skip_dest_server_ports: set[addr, port] = {} &redef;
+
+	# Reverse (SYN-ack) scans seen from these ports are considered
+	# to reflect possible SYN-flooding backscatter, and not true
+	# (stealth) scans.
+	const backscatter_ports = {
+		80/tcp, 8080/tcp, 53/tcp, 53/udp, 179/tcp, 6666/tcp, 6667/tcp,
+	} &redef;
+
+	const report_backscatter: vector of count = {
+		20,
+	} &redef;
+
+	global check_scan:
+		function(c: connection, established: bool, reverse: bool): bool;
+
+	# The following tables are defined here so that we can redef
+	# the expire timeouts.
+	# FIXME: should we allow redef of attributes on IDs which
+	# are not exported?
+
+	# How many different hosts connected to with a possible
+	# backscatter signature.
+	global distinct_backscatter_peers: table[addr] of table[addr] of count
+		&read_expire = 15 min;
+
+	# Expire functions that trigger summaries.
+	global scan_summary:
+		function(t: table[addr] of set[addr], orig: addr): interval;
+	global port_summary:
+		function(t: table[addr] of set[port], orig: addr): interval;
+	global lowport_summary:
+		function(t: table[addr] of set[port], orig: addr): interval;
+
+	# Indexed by scanner address, yields # distinct peers scanned.
+	# pre_distinct_peers tracks until addr_scan_trigger hosts first.
+	global pre_distinct_peers: table[addr] of set[addr]
+		&read_expire = 15 mins &redef;
+
+	global distinct_peers: table[addr] of set[addr]
+		&read_expire = 15 mins &expire_func=scan_summary &redef;
+	global distinct_ports: table[addr] of set[port]
+		&read_expire = 15 mins &expire_func=port_summary &redef;
+	global distinct_low_ports: table[addr] of set[port]
+		&read_expire = 15 mins &expire_func=lowport_summary &redef;
+
+	# Indexed by scanner address, yields a table with scanned hosts
+	# (and ports).
+	global scan_triples: table[addr] of table[addr] of set[port];
+
+	global remove_possible_source:
+		function(s: set[addr], idx: addr): interval;
+	global possible_scan_sources: set[addr]
+		&expire_func=remove_possible_source &read_expire = 15 mins;
+
+	# Indexed by source address, yields user name & password tried.
+	global accounts_tried: table[addr] of set[string, string]
+		&read_expire = 1 days;
+
+	global ignored_scanners: set[addr] &create_expire = 1 day &redef;
+
+	# These tables track whether a threshold has been reached.
+	# More precisely, the counter is the next index of threshold vector.
+	global shut_down_thresh_reached: table[addr] of bool &default=F;
+	global rb_idx: table[addr] of count
+			&default=1 &read_expire = 1 days &redef;
+	global rps_idx: table[addr] of count
+			&default=1 &read_expire = 1 days &redef;
+	global rops_idx: table[addr] of count
+			&default=1 &read_expire = 1 days &redef;
+	global rpts_idx: table[addr,addr] of count
+			&default=1 &read_expire = 1 days &redef;
+	global rat_idx: table[addr] of count
+			&default=1 &read_expire = 1 days &redef;
+	global rrat_idx: table[addr] of count
+			&default=1 &read_expire = 1 days &redef;
+}
+
+global thresh_check: function(v: vector of count, idx: table[addr] of count,
+				orig: addr, n: count): bool;
+global thresh_check_2: function(v: vector of count,
+				idx: table[addr,addr] of count, orig: addr,
+				resp: addr, n: count): bool;
+
+function scan_summary(t: table[addr] of set[addr], orig: addr): interval
+	{
+	local num_distinct_peers = orig in t ? |t[orig]| : 0;
+
+	if ( num_distinct_peers >= scan_summary_trigger )
+		NOTICE([$note=ScanSummary, $src=orig, $n=num_distinct_peers,
+			$identifier=fmt("%s", orig),
+			$msg=fmt("%s scanned a total of %d hosts",
+					orig, num_distinct_peers)]);
+
+	return 0 secs;
+	}
+
+function port_summary(t: table[addr] of set[port], orig: addr): interval
+	{
+	local num_distinct_ports = orig in t ? |t[orig]| : 0;
+
+	if ( num_distinct_ports >= port_summary_trigger )
+		NOTICE([$note=PortScanSummary, $src=orig, $n=num_distinct_ports,
+			$identifier=fmt("%s", orig),
+			$msg=fmt("%s scanned a total of %d ports",
+					orig, num_distinct_ports)]);
+
+	return 0 secs;
+	}
+
+function lowport_summary(t: table[addr] of set[port], orig: addr): interval
+	{
+	local num_distinct_lowports = orig in t ? |t[orig]| : 0;
+
+	if ( num_distinct_lowports >= lowport_summary_trigger )
+		NOTICE([$note=LowPortScanSummary, $src=orig,
+			$n=num_distinct_lowports,
+			$identifier=fmt("%s", orig),
+			$msg=fmt("%s scanned a total of %d low ports",
+					orig, num_distinct_lowports)]);
+
+	return 0 secs;
+	}
+
+function clear_addr(a: addr)
+	{
+	delete distinct_peers[a];
+	delete distinct_ports[a];
+	delete distinct_low_ports[a];
+	delete scan_triples[a];
+	delete possible_scan_sources[a];
+	delete distinct_backscatter_peers[a];
+	delete pre_distinct_peers[a];
+	delete rb_idx[a];
+	delete rps_idx[a];
+	delete rops_idx[a];
+	delete rat_idx[a];
+	delete rrat_idx[a];
+	delete shut_down_thresh_reached[a];
+	delete ignored_scanners[a];
+	}
+
+function ignore_addr(a: addr)
+	{
+	clear_addr(a);
+	add ignored_scanners[a];
+	}
+
+function check_scan(c: connection, established: bool, reverse: bool): bool
+	{
+	local id = c$id;
+
+	local service = "ftp-data" in c$service ? 20/tcp
+			: (reverse ? id$orig_p : id$resp_p);
+	local rev_service = reverse ? id$resp_p : id$orig_p;
+	local orig = reverse ? id$resp_h : id$orig_h;
+	local resp = reverse ? id$orig_h : id$resp_h;
+	local outbound = Site::is_local_addr(orig);
+
+	# The following works better than using get_conn_transport_proto()
+	# because c might not correspond to an active connection (which
+	# causes the function to fail).
+	if ( suppress_UDP_scan_checks &&
+	     service >= 0/udp && service <= 65535/udp )
+		return F;
+
+	if ( service in skip_services && ! outbound )
+		return F;
+
+	if ( outbound && service in skip_outbound_services )
+		return F;
+
+	if ( orig in skip_scan_sources )
+		return F;
+
+	if ( orig in skip_scan_nets )
+		return F;
+
+	# Don't include well known server/ports for scanning purposes.
+	if ( ! outbound && [resp, service] in skip_dest_server_ports )
+		return F;
+
+	if ( orig in ignored_scanners)
+		return F;
+
+	if ( ! established &&
+		# not established, service not expressly allowed
+
+		# not known peer set
+		(orig !in distinct_peers || resp !in distinct_peers[orig]) &&
+
+		# want to consider service for scan detection
+		(analyze_all_services || service in analyze_services) )
+		{
+		if ( reverse && rev_service in backscatter_ports &&
+		     # reverse, non-priv backscatter port
+		     service >= 1024/tcp )
+			{
+			if ( orig !in distinct_backscatter_peers )
+				{
+				local empty_bs_table:
+					table[addr] of count &default=0;
+				distinct_backscatter_peers[orig] =
+					empty_bs_table;
+				}
+
+			if ( ++distinct_backscatter_peers[orig][resp] <= 2 &&
+			     # The test is <= 2 because we get two check_scan()
+			     # calls, once on connection attempt and once on
+			     # tear-down.
+
+			     distinct_backscatter_peers[orig][resp] == 1 &&
+
+			     # Looks like backscatter, and it's not scanning
+			     # a privileged port.
+
+			     thresh_check(report_backscatter, rb_idx, orig,
+					|distinct_backscatter_peers[orig]|)
+			   )
+				{
+				NOTICE([$note=BackscatterSeen, $src=orig,
+					$p=rev_service,
+					$identifier=fmt("%s", orig),
+					$msg=fmt("backscatter seen from %s (%d hosts; %s)",
+						orig, |distinct_backscatter_peers[orig]|, rev_service)]);
+				}
+
+			if ( ignore_scanners_threshold > 0 &&
+			     |distinct_backscatter_peers[orig]| >
+					ignore_scanners_threshold )
+				ignore_addr(orig);
+			}
+
+		else
+			{ # done with backscatter check
+			local ignore = F;
+
+			if ( orig !in distinct_peers && addr_scan_trigger > 0 )
+				{
+				if ( orig !in pre_distinct_peers )
+					pre_distinct_peers[orig] = set();
+
+				add pre_distinct_peers[orig][resp];
+				if ( |pre_distinct_peers[orig]| < addr_scan_trigger )
+					ignore = T;
+				}
+
+			if ( ! ignore )
+				{ # XXXXX
+
+				if ( orig !in distinct_peers )
+					distinct_peers[orig] = set() &mergeable;
+
+				if ( resp !in distinct_peers[orig] )
+					add distinct_peers[orig][resp];
+
+				local n = |distinct_peers[orig]|;
+
+				# Check for threshold if not outbound.
+				if ( ! shut_down_thresh_reached[orig] &&
+				     n >= shut_down_thresh &&
+				     ! outbound && orig !in Site::neighbor_nets )
+					{
+					shut_down_thresh_reached[orig] = T;
+					local msg = fmt("shutdown threshold reached for %s", orig);
+					NOTICE([$note=ShutdownThresh, $src=orig,
+						$identifier=fmt("%s", orig),
+						$p=service, $msg=msg]);
+					}
+
+				else
+					{
+					local address_scan = F;
+					if ( outbound &&
+					     # inside host scanning out?
+					     thresh_check(report_outbound_peer_scan, rops_idx, orig, n) )
+						address_scan = T;
+
+					if ( ! outbound &&
+					     thresh_check(report_peer_scan, rps_idx, orig, n) )
+						address_scan = T;
+
+					if ( address_scan )
+						NOTICE([$note=AddressScan,
+							$src=orig, $p=service,
+							$n=n,
+							$identifier=fmt("%s-%d", orig, n),
+							$msg=fmt("%s has scanned %d hosts (%s)",
+								orig, n, service)]);
+
+					if ( address_scan &&
+					     ignore_scanners_threshold > 0 &&
+					     n > ignore_scanners_threshold )
+						ignore_addr(orig);
+					}
+				}
+			} # XXXX
+		}
+
+	if ( established )
+		# Don't consider established connections for port scanning,
+		# it's too easy to be mislead by FTP-like applications that
+		# legitimately gobble their way through the port space.
+		return F;
+
+	# Coarse search for port-scanning candidates: those that have made
+	# connections (attempts) to possible_port_scan_thresh or more
+	# distinct ports.
+	if ( orig !in distinct_ports || service !in distinct_ports[orig] )
+		{
+		if ( orig !in distinct_ports )
+			distinct_ports[orig] = set() &mergeable;
+
+		if ( service !in distinct_ports[orig] )
+			add distinct_ports[orig][service];
+
+		if ( |distinct_ports[orig]| >= possible_port_scan_thresh &&
+			orig !in scan_triples )
+			{
+			scan_triples[orig] = table() &mergeable;
+			add possible_scan_sources[orig];
+			}
+		}
+
+	# Check for low ports.
+	if ( activate_priv_port_check && ! outbound && service < 1024/tcp &&
+	     service !in troll_skip_service )
+		{
+		if ( orig !in distinct_low_ports ||
+		     service !in distinct_low_ports[orig] )
+			{
+			if ( orig !in distinct_low_ports )
+				distinct_low_ports[orig] = set() &mergeable;
+
+			add distinct_low_ports[orig][service];
+
+			if ( |distinct_low_ports[orig]| == priv_scan_trigger &&
+			     orig !in Site::neighbor_nets )
+				{
+				local svrc_msg = fmt("low port trolling %s %s", orig, service);
+				NOTICE([$note=LowPortTrolling, $src=orig,
+					$identifier=fmt("%s", orig),
+					$p=service, $msg=svrc_msg]);
+				}
+
+			if ( ignore_scanners_threshold > 0 &&
+			     |distinct_low_ports[orig]| >
+					ignore_scanners_threshold )
+				ignore_addr(orig);
+			}
+		}
+
+	# For sources that have been identified as possible scan sources,
+	# keep track of per-host scanning.
+	if ( orig in possible_scan_sources )
+		{
+		if ( orig !in scan_triples )
+			scan_triples[orig] = table() &mergeable;
+
+		if ( resp !in scan_triples[orig] )
+			scan_triples[orig][resp] = set() &mergeable;
+
+		if ( service !in scan_triples[orig][resp] )
+			{
+			add scan_triples[orig][resp][service];
+
+			if ( thresh_check_2(report_port_scan, rpts_idx,
+					    orig, resp,
+					    |scan_triples[orig][resp]|) )
+				{
+				local m = |scan_triples[orig][resp]|;
+				NOTICE([$note=PortScan, $n=m, $src=orig,
+					$p=service,
+					$identifier=fmt("%s-%d", orig, n),
+					$msg=fmt("%s has scanned %d ports of %s",
+					orig, m, resp)]);
+				}
+			}
+		}
+
+	return T;
+	}
+
+
+# Hook into the catch&release dropping. When an address gets restored, we reset
+# the source to allow dropping it again.
+event Drop::address_restored(a: addr)
+	{
+	clear_addr(a);
+	}
+
+event Drop::address_cleared(a: addr)
+	{
+	clear_addr(a);
+	}
+
+# When removing a possible scan source, we automatically delete its scanned
+# hosts and ports.  But we do not want the deletion propagated, because every
+# peer calls the expire_function on its own (and thus applies the delete
+# operation on its own table).
+function remove_possible_source(s: set[addr], idx: addr): interval
+	{
+	suspend_state_updates();
+	delete scan_triples[idx];
+	resume_state_updates();
+
+	return 0 secs;
+	}
+
+# To recognize whether a certain threshhold vector (e.g. report_peer_scans)
+# has been transgressed, a global variable containing the next vector index
+# (idx) must be incremented.  This cumbersome mechanism is necessary because
+# values naturally don't increment by one (e.g. replayed table merges).
+function thresh_check(v: vector of count, idx: table[addr] of count,
+			orig: addr, n: count): bool
+	{
+	if ( ignore_scanners_threshold > 0 && n > ignore_scanners_threshold )
+		{
+		ignore_addr(orig);
+		return F;
+		}
+
+	if ( idx[orig] <= |v| && n >= v[idx[orig]] )
+		{
+		++idx[orig];
+		return T;
+		}
+	else
+		return F;
+	}
+
+# Same as above, except the index has a different type signature.
+function thresh_check_2(v: vector of count, idx: table[addr, addr] of count,
+			orig: addr, resp: addr, n: count): bool
+	{
+	if ( ignore_scanners_threshold > 0 && n > ignore_scanners_threshold )
+		{
+		ignore_addr(orig);
+		return F;
+		}
+
+	if ( idx[orig,resp] <= |v| && n >= v[idx[orig, resp]] )
+		{
+		++idx[orig,resp];
+		return T;
+		}
+	else
+		return F;
+	}
+
+event connection_established(c: connection)
+	{
+	local is_reverse_scan = (c$orig$state == TCP_INACTIVE);
+	Scan::check_scan(c, T, is_reverse_scan);
+	}
+
+event partial_connection(c: connection)
+	{
+	Scan::check_scan(c, T, F);
+	}
+
+event connection_attempt(c: connection)
+	{
+	Scan::check_scan(c, F, c$orig$state == TCP_INACTIVE);
+	}
+
+event connection_half_finished(c: connection)
+	{
+	# Half connections never were "established", so do scan-checking here.
+	Scan::check_scan(c, F, F);
+	}
+
+event connection_rejected(c: connection)
+	{
+	local is_reverse_scan = c$orig$state == TCP_RESET;
+
+	Scan::check_scan(c, F, is_reverse_scan);
+	}
+
+event connection_reset(c: connection)
+	{
+	if ( c$orig$state == TCP_INACTIVE || c$resp$state == TCP_INACTIVE )
+		# We never heard from one side - that looks like a scan.
+		Scan::check_scan(c, c$orig$size + c$resp$size > 0,
+				c$orig$state == TCP_INACTIVE);
+	}
+
+event connection_pending(c: connection)
+	{
+	if ( c$orig$state == TCP_PARTIAL && c$resp$state == TCP_INACTIVE )
+		Scan::check_scan(c, F, F);
+	}
+
+# Report the remaining entries in the tables.
+event bro_done()
+	{
+	for ( orig in distinct_peers )
+		scan_summary(distinct_peers, orig);
+
+	for ( orig in distinct_ports )
+		port_summary(distinct_ports, orig);
+
+	for ( orig in distinct_low_ports )
+		lowport_summary(distinct_low_ports, orig);
+	}
+
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-c.html b/docs/_style/prism-master/examples/prism-c.html new file mode 100644 index 00000000..aee1c06a --- /dev/null +++ b/docs/_style/prism-master/examples/prism-c.html @@ -0,0 +1,22 @@ +

Strings

+
"foo \"bar\" baz"
+'foo \'bar\' baz'
+"Multi-line strings ending with a \
+are supported too."
+ +

Macro statements

+
# include <stdio.h>
+#define PG_locked   0
+#define PG_error    1
+
+ +

Full example

+
#include <stdio.h>
+main(int argc, char *argv[])
+{
+   int c;
+   printf("Number of command line arguments passed: %d\n", argc);
+   for ( c = 0 ; c < argc ; c++)
+      printf("%d. Command line argument passed is %s\n", c+1, argv[c]);
+   return 0;
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-clike.html b/docs/_style/prism-master/examples/prism-clike.html new file mode 100644 index 00000000..79a80764 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-clike.html @@ -0,0 +1,28 @@ +

The C-like component is not really a language on its own, + it is the basis of many other components. To use it directly, however, + use the class "language-clike".

+ +

Comments

+
// Single line comment
+/* Multi-line
+comment */
+ +

Strings

+
"foo \"bar\" baz";
+'foo \'bar\' baz';
+ +

Numbers

+
123
+123.456
+-123.456
+1e-23
+123.456E789
+0xaf
+0xAF
+
+ +

Functions

+
foo();
+Bar();
+_456();
+
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-clojure.html b/docs/_style/prism-master/examples/prism-clojure.html new file mode 100644 index 00000000..abc50194 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-clojure.html @@ -0,0 +1,386 @@ +

Full example

+

+; This code is copied from https://learnxinyminutes.com/docs/clojure/
+
+; Comments start with semicolons.
+
+; Clojure is written in "forms", which are just
+; lists of things inside parentheses, separated by whitespace.
+;
+; The clojure reader assumes that the first thing is a
+; function or macro to call, and the rest are arguments.
+
+; The first call in a file should be ns, to set the namespace
+(ns learnclojure)
+
+; More basic examples:
+
+; str will create a string out of all its arguments
+(str "Hello" " " "World") ; => "Hello World"
+
+; Math is straightforward
+(+ 1 1) ; => 2
+(- 2 1) ; => 1
+(* 1 2) ; => 2
+(/ 2 1) ; => 2
+
+; Equality is =
+(= 1 1) ; => true
+(= 2 1) ; => false
+
+; You need not for logic, too
+(not true) ; => false
+
+; Nesting forms works as you expect
+(+ 1 (- 3 2)) ; = 1 + (3 - 2) => 2
+
+; Types
+;;;;;;;;;;;;;
+
+; Clojure uses Java's object types for booleans, strings and numbers.
+; Use `class` to inspect them.
+(class 1) ; Integer literals are java.lang.Long by default
+(class 1.); Float literals are java.lang.Double
+(class ""); Strings always double-quoted, and are java.lang.String
+(class false) ; Booleans are java.lang.Boolean
+(class nil); The "null" value is called nil
+
+; If you want to create a literal list of data, use ' to stop it from
+; being evaluated
+'(+ 1 2) ; => (+ 1 2)
+; (shorthand for (quote (+ 1 2)))
+
+; You can eval a quoted list
+(eval '(+ 1 2)) ; => 3
+
+; Collections & Sequences
+;;;;;;;;;;;;;;;;;;;
+
+; Lists are linked-list data structures, while Vectors are array-backed.
+; Vectors and Lists are java classes too!
+(class [1 2 3]); => clojure.lang.PersistentVector
+(class '(1 2 3)); => clojure.lang.PersistentList
+
+; A list would be written as just (1 2 3), but we have to quote
+; it to stop the reader thinking it's a function.
+; Also, (list 1 2 3) is the same as '(1 2 3)
+
+; "Collections" are just groups of data
+; Both lists and vectors are collections:
+(coll? '(1 2 3)) ; => true
+(coll? [1 2 3]) ; => true
+
+; "Sequences" (seqs) are abstract descriptions of lists of data.
+; Only lists are seqs.
+(seq? '(1 2 3)) ; => true
+(seq? [1 2 3]) ; => false
+
+; A seq need only provide an entry when it is accessed.
+; So, seqs which can be lazy -- they can define infinite series:
+(range 4) ; => (0 1 2 3)
+(range) ; => (0 1 2 3 4 ...) (an infinite series)
+(take 4 (range)) ;  (0 1 2 3)
+
+; Use cons to add an item to the beginning of a list or vector
+(cons 4 [1 2 3]) ; => (4 1 2 3)
+(cons 4 '(1 2 3)) ; => (4 1 2 3)
+
+; Conj will add an item to a collection in the most efficient way.
+; For lists, they insert at the beginning. For vectors, they insert at the end.
+(conj [1 2 3] 4) ; => [1 2 3 4]
+(conj '(1 2 3) 4) ; => (4 1 2 3)
+
+; Use concat to add lists or vectors together
+(concat [1 2] '(3 4)) ; => (1 2 3 4)
+
+; Use filter, map to interact with collections
+(map inc [1 2 3]) ; => (2 3 4)
+(filter even? [1 2 3]) ; => (2)
+
+; Use reduce to reduce them
+(reduce + [1 2 3 4])
+; = (+ (+ (+ 1 2) 3) 4)
+; => 10
+
+; Reduce can take an initial-value argument too
+(reduce conj [] '(3 2 1))
+; = (conj (conj (conj [] 3) 2) 1)
+; => [3 2 1]
+
+; Functions
+;;;;;;;;;;;;;;;;;;;;;
+
+; Use fn to create new functions. A function always returns
+; its last statement.
+(fn [] "Hello World") ; => fn
+
+; (You need extra parens to call it)
+((fn [] "Hello World")) ; => "Hello World"
+
+; You can create a var using def
+(def x 1)
+x ; => 1
+
+; Assign a function to a var
+(def hello-world (fn [] "Hello World"))
+(hello-world) ; => "Hello World"
+
+; You can shorten this process by using defn
+(defn hello-world [] "Hello World")
+
+; The [] is the list of arguments for the function.
+(defn hello [name]
+  (str "Hello " name))
+(hello "Steve") ; => "Hello Steve"
+
+; You can also use this shorthand to create functions:
+(def hello2 #(str "Hello " %1))
+(hello2 "Fanny") ; => "Hello Fanny"
+
+; You can have multi-variadic functions, too
+(defn hello3
+  ([] "Hello World")
+  ([name] (str "Hello " name)))
+(hello3 "Jake") ; => "Hello Jake"
+(hello3) ; => "Hello World"
+
+; Functions can pack extra arguments up in a seq for you
+(defn count-args [& args]
+  (str "You passed " (count args) " args: " args))
+(count-args 1 2 3) ; => "You passed 3 args: (1 2 3)"
+
+; You can mix regular and packed arguments
+(defn hello-count [name & args]
+  (str "Hello " name ", you passed " (count args) " extra args"))
+(hello-count "Finn" 1 2 3)
+; => "Hello Finn, you passed 3 extra args"
+
+
+; Maps
+;;;;;;;;;;
+
+; Hash maps and array maps share an interface. Hash maps have faster lookups
+; but don't retain key order.
+(class {:a 1 :b 2 :c 3}) ; => clojure.lang.PersistentArrayMap
+(class (hash-map :a 1 :b 2 :c 3)) ; => clojure.lang.PersistentHashMap
+
+; Arraymaps will automatically become hashmaps through most operations
+; if they get big enough, so you don't need to worry.
+
+; Maps can use any hashable type as a key, but usually keywords are best
+; Keywords are like strings with some efficiency bonuses
+(class :a) ; => clojure.lang.Keyword
+
+(def stringmap {"a" 1, "b" 2, "c" 3})
+stringmap  ; => {"a" 1, "b" 2, "c" 3}
+
+(def keymap {:a 1, :b 2, :c 3})
+keymap ; => {:a 1, :c 3, :b 2}
+
+; By the way, commas are always treated as whitespace and do nothing.
+
+; Retrieve a value from a map by calling it as a function
+(stringmap "a") ; => 1
+(keymap :a) ; => 1
+
+; Keywords can be used to retrieve their value from a map, too!
+(:b keymap) ; => 2
+
+; Don't try this with strings.
+;("a" stringmap)
+; => Exception: java.lang.String cannot be cast to clojure.lang.IFn
+
+; Retrieving a non-present key returns nil
+(stringmap "d") ; => nil
+
+; Use assoc to add new keys to hash-maps
+(def newkeymap (assoc keymap :d 4))
+newkeymap ; => {:a 1, :b 2, :c 3, :d 4}
+
+; But remember, clojure types are immutable!
+keymap ; => {:a 1, :b 2, :c 3}
+
+; Use dissoc to remove keys
+(dissoc keymap :a :b) ; => {:c 3}
+
+; Sets
+;;;;;;
+
+(class #{1 2 3}) ; => clojure.lang.PersistentHashSet
+(set [1 2 3 1 2 3 3 2 1 3 2 1]) ; => #{1 2 3}
+
+; Add a member with conj
+(conj #{1 2 3} 4) ; => #{1 2 3 4}
+
+; Remove one with disj
+(disj #{1 2 3} 1) ; => #{2 3}
+
+; Test for existence by using the set as a function:
+(#{1 2 3} 1) ; => 1
+(#{1 2 3} 4) ; => nil
+
+; There are more functions in the clojure.sets namespace.
+
+; Useful forms
+;;;;;;;;;;;;;;;;;
+
+; Logic constructs in clojure are just macros, and look like
+; everything else
+(if false "a" "b") ; => "b"
+(if false "a") ; => nil
+
+; Use let to create temporary bindings
+(let [a 1 b 2]
+  (> a b)) ; => false
+
+; Group statements together with do
+(do
+  (print "Hello")
+  "World") ; => "World" (prints "Hello")
+
+; Functions have an implicit do
+(defn print-and-say-hello [name]
+  (print "Saying hello to " name)
+  (str "Hello " name))
+(print-and-say-hello "Jeff") ;=> "Hello Jeff" (prints "Saying hello to Jeff")
+
+; So does let
+(let [name "Urkel"]
+  (print "Saying hello to " name)
+  (str "Hello " name)) ; => "Hello Urkel" (prints "Saying hello to Urkel")
+
+
+; Use the threading macros (-> and ->>) to express transformations of
+; data more clearly.
+
+; The "Thread-first" macro (->) inserts into each form the result of
+; the previous, as the first argument (second item)
+(->  
+   {:a 1 :b 2} 
+   (assoc :c 3) ;=> (assoc {:a 1 :b 2} :c 3)
+   (dissoc :b)) ;=> (dissoc (assoc {:a 1 :b 2} :c 3) :b)
+
+; This expression could be written as:
+; (dissoc (assoc {:a 1 :b 2} :c 3) :b)
+; and evaluates to {:a 1 :c 3}
+
+; The double arrow does the same thing, but inserts the result of
+; each line at the *end* of the form. This is useful for collection
+; operations in particular:
+(->>
+   (range 10)
+   (map inc)     ;=> (map inc (range 10)
+   (filter odd?) ;=> (filter odd? (map inc (range 10))
+   (into []))    ;=> (into [] (filter odd? (map inc (range 10)))
+                 ; Result: [1 3 5 7 9]
+
+; When you are in a situation where you want more freedom as where to
+; put the result of previous data transformations in an 
+; expression, you can use the as-> macro. With it, you can assign a
+; specific name to transformations' output and use it as a
+; placeholder in your chained expressions:
+
+(as-> [1 2 3] input
+  (map inc input);=> You can use last transform's output at the last position
+  (nth input 2) ;=>  and at the second position, in the same expression
+  (conj [4 5 6] input [8 9 10])) ;=> or in the middle !
+
+
+
+; Modules
+;;;;;;;;;;;;;;;
+
+; Use "use" to get all functions from the module
+(use 'clojure.set)
+
+; Now we can use set operations
+(intersection #{1 2 3} #{2 3 4}) ; => #{2 3}
+(difference #{1 2 3} #{2 3 4}) ; => #{1}
+
+; You can choose a subset of functions to import, too
+(use '[clojure.set :only [intersection]])
+
+; Use require to import a module
+(require 'clojure.string)
+
+; Use / to call functions from a module
+; Here, the module is clojure.string and the function is blank?
+(clojure.string/blank? "") ; => true
+
+; You can give a module a shorter name on import
+(require '[clojure.string :as str])
+(str/replace "This is a test." #"[a-o]" str/upper-case) ; => "THIs Is A tEst."
+; (#"" denotes a regular expression literal)
+
+; You can use require (and use, but don't) from a namespace using :require.
+; You don't need to quote your modules if you do it this way.
+(ns test
+  (:require
+    [clojure.string :as str]
+    [clojure.set :as set]))
+
+; Java
+;;;;;;;;;;;;;;;;;
+
+; Java has a huge and useful standard library, so
+; you'll want to learn how to get at it.
+
+; Use import to load a java module
+(import java.util.Date)
+
+; You can import from an ns too.
+(ns test
+  (:import java.util.Date
+           java.util.Calendar))
+
+; Use the class name with a "." at the end to make a new instance
+(Date.) ; 
+
+; Use . to call methods. Or, use the ".method" shortcut
+(. (Date.) getTime) ; 
+(.getTime (Date.)) ; exactly the same thing.
+
+; Use / to call static methods
+(System/currentTimeMillis) ;  (system is always present)
+
+; Use doto to make dealing with (mutable) classes more tolerable
+(import java.util.Calendar)
+(doto (Calendar/getInstance)
+  (.set 2000 1 1 0 0 0)
+  .getTime) ; => A Date. set to 2000-01-01 00:00:00
+
+; STM
+;;;;;;;;;;;;;;;;;
+
+; Software Transactional Memory is the mechanism clojure uses to handle
+; persistent state. There are a few constructs in clojure that use this.
+
+; An atom is the simplest. Pass it an initial value
+(def my-atom (atom {}))
+
+; Update an atom with swap!.
+; swap! takes a function and calls it with the current value of the atom
+; as the first argument, and any trailing arguments as the second
+(swap! my-atom assoc :a 1) ; Sets my-atom to the result of (assoc {} :a 1)
+(swap! my-atom assoc :b 2) ; Sets my-atom to the result of (assoc {:a 1} :b 2)
+
+; Use '@' to dereference the atom and get the value
+my-atom  ;=> Atom<#...> (Returns the Atom object)
+@my-atom ; => {:a 1 :b 2}
+
+; Here's a simple counter using an atom
+(def counter (atom 0))
+(defn inc-counter []
+  (swap! counter inc))
+
+(inc-counter)
+(inc-counter)
+(inc-counter)
+(inc-counter)
+(inc-counter)
+
+@counter ; => 5
+
+; Other STM constructs are refs and agents.
+; Refs: http://clojure.org/refs
+; Agents: http://clojure.org/agents
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-coffeescript.html b/docs/_style/prism-master/examples/prism-coffeescript.html new file mode 100644 index 00000000..a710aa99 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-coffeescript.html @@ -0,0 +1,61 @@ +

Comments

+
# This is a comment
+### This is a
+multi-line comment###
+ +

Strings

+
'foo \'bar\' baz'
+"foo \"bar\" baz"
+'Multi-line
+strings are supported'
+"Multi-line
+strings are supported"
+''' 'Block strings'
+are supported too'''
+""" "Block strings"
+are supported too"""
+ +

String interpolation

+
"String #{interpolation} is supported"
+'This works #{only} between double-quoted strings'
+ +

Object properties

+
kids =
+  brother:
+    name: "Max"
+    age:  11
+  sister:
+    name: "Ida"
+    age:  9
+ +

Regexps

+
/normal [r]egexp?/;
+/// ^(
+  mul\t[i-l]ine
+  regexp          # with embedded comment
+) ///
+ +

Classes

+
class Animal
+  constructor: (@name) ->
+  move: (meters) ->
+    alert @name + " moved #{meters}m."
+
+class Snake extends Animal
+  move: ->
+    alert "Slithering..."
+    super 5
+
+class Horse extends Animal
+  move: ->
+    alert "Galloping..."
+    super 45
+
+sam = new Snake "Sammy the Python"
+tom = new Horse "Tommy the Palomino"
+
+sam.move()
+tom.move()
+ +

Inline JavaScript

+
`alert("foo")`
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-cpp.html b/docs/_style/prism-master/examples/prism-cpp.html new file mode 100644 index 00000000..32bdcbda --- /dev/null +++ b/docs/_style/prism-master/examples/prism-cpp.html @@ -0,0 +1,61 @@ +

Strings

+
"foo \"bar\" baz"
+'foo \'bar\' baz'
+"Multi-line strings ending with a \
+are supported too."
+ +

Macro statements

+
# include <stdio.h>
+#define PG_locked   0
+#define PG_error    1
+
+ +

Booleans

+
true;
+false;
+ +

Operators

+
a and b;
+c bitand d;
+ +

Full example

+
/*
+David Cary 2010-09-14
+quick demo for wikibooks
+public domain
+*/
+#include <iostream>
+#include <vector>
+using namespace std;
+
+vector<int> pick_vector_with_biggest_fifth_element(
+    vector<int> left,
+    vector<int> right
+){
+    if( (left[5]) < (right[5]) ){
+        return( right );
+    };
+    // else
+    return( left );
+}
+
+int vector_demo(void){
+    cout << "vector demo" << endl;
+    vector<int> left(7);
+    vector<int> right(7);
+
+    left[5] = 7;
+    right[5] = 8;
+    cout << left[5] << endl;
+    cout << right[5] << endl;
+    vector<int> biggest(
+        pick_vector_with_biggest_fifth_element( left, right )
+    );
+    cout << biggest[5] << endl;
+
+    return 0;
+}
+
+int main(void){
+    vector_demo();
+}
diff --git a/docs/_style/prism-master/examples/prism-crystal.html b/docs/_style/prism-master/examples/prism-crystal.html new file mode 100644 index 00000000..c3cad166 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-crystal.html @@ -0,0 +1,16 @@ +

Number literals with underscores and postfix

+
1_u32
+123_456.789e-10_f64
+ +

Attributes

+
@[AlwaysInline]
+def foo
+	1
+end
+ +

Macro expansions

+
{% for key, value in {foo: 100, bar: 20} %}
+	def {{ key.id }}
+		{{ value }}
+	end
+{% end %}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-csharp.html b/docs/_style/prism-master/examples/prism-csharp.html new file mode 100644 index 00000000..c6d76c2b --- /dev/null +++ b/docs/_style/prism-master/examples/prism-csharp.html @@ -0,0 +1,60 @@ +

Comments

+
// Single line comment
+/* Multi-line
+comment */
+ +

Strings

+
"foo \"bar\" baz"
+'foo \'bar\' baz'
+@"Verbatim strings"
+@"Luis: ""Patrick, where did you get that overnight bag?""
+    Patrick: ""Jean Paul Gaultier.""";
+@'Luis: ''Patrick, where did you get that overnight bag?''
+    Patrick: ''Jean Paul Gaultier.''';
+
+ +

Full example

+
using System.Windows.Forms;
+using System.Drawing;
+
+public static DialogResult InputBox(string title, string promptText, ref string value)
+{
+  Form form = new Form();
+  Label label = new Label();
+  TextBox textBox = new TextBox();
+  Button buttonOk = new Button();
+  Button buttonCancel = new Button();
+
+  form.Text = title;
+  label.Text = promptText;
+  textBox.Text = value;
+
+  buttonOk.Text = "OK";
+  buttonCancel.Text = "Cancel";
+  buttonOk.DialogResult = DialogResult.OK;
+  buttonCancel.DialogResult = DialogResult.Cancel;
+
+  label.SetBounds(9, 20, 372, 13);
+  textBox.SetBounds(12, 36, 372, 20);
+  buttonOk.SetBounds(228, 72, 75, 23);
+  buttonCancel.SetBounds(309, 72, 75, 23);
+
+  label.AutoSize = true;
+  textBox.Anchor = textBox.Anchor | AnchorStyles.Right;
+  buttonOk.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
+  buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
+
+  form.ClientSize = new Size(396, 107);
+  form.Controls.AddRange(new Control[] { label, textBox, buttonOk, buttonCancel });
+  form.ClientSize = new Size(Math.Max(300, label.Right + 10), form.ClientSize.Height);
+  form.FormBorderStyle = FormBorderStyle.FixedDialog;
+  form.StartPosition = FormStartPosition.CenterScreen;
+  form.MinimizeBox = false;
+  form.MaximizeBox = false;
+  form.AcceptButton = buttonOk;
+  form.CancelButton = buttonCancel;
+
+  DialogResult dialogResult = form.ShowDialog();
+  value = textBox.Text;
+  return dialogResult;
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-csp.html b/docs/_style/prism-master/examples/prism-csp.html new file mode 100644 index 00000000..e10a416b --- /dev/null +++ b/docs/_style/prism-master/examples/prism-csp.html @@ -0,0 +1,13 @@ +

A complete policy

+
default-src 'none';
+script-src my.cdn.com;
+img-src 'self' data:;
+child-src 'self' data: ms-appx-web:;
+block-all-mixed-content;
+report-uri https://my-reports.com/submit;
+
+ +

An policy with unsafe source expressions

+
script-src 'self' 'unsafe-eval' 'unsafe-inline';
+style-src 'unsafe-inline' 'unsafe-hashed-attributes' 'self';
+
diff --git a/docs/_style/prism-master/examples/prism-css.html b/docs/_style/prism-master/examples/prism-css.html new file mode 100644 index 00000000..a36f1966 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-css.html @@ -0,0 +1,34 @@ +

Empty rule

+
*{} * {} p {}
+
ul,
+ol {}
+ +

Simple rule

+
p { color: red; }
+ +

Important rule

+

+p {
+    color: red !important;
+    line-height: normal!important;
+}
+p{position:absolute!important}
+
+ +

@ rule

+
@media screen and (min-width: 100px) {}
+ +

LESS variable

+
@main-color: red;
+.foo {
+	background: @main-color;
+}
+ +

Comment

+
/* Simple comment here */
+ +

String

+
content: 'foo';
+ +

URL

+
content: url(foo.png);
diff --git a/docs/_style/prism-master/examples/prism-d.html b/docs/_style/prism-master/examples/prism-d.html new file mode 100644 index 00000000..d4bf34cc --- /dev/null +++ b/docs/_style/prism-master/examples/prism-d.html @@ -0,0 +1,267 @@ +

Comments

+
// Single line comment
+/* Multi-line
+	comment */
+/+ Mutli-line
+	/+ nestable +/
+	comment +/
+ +

Numbers

+
0 .. 2_147_483_647
+2_147_483_648 .. 9_223_372_036_854_775_807
+0L .. 9_223_372_036_854_775_807L
+0U .. 4_294_967_296U
+4_294_967_296U .. 18_446_744_073_709_551_615U
+0UL .. 18_446_744_073_709_551_615UL
+0x0 .. 0x7FFF_FFFF
+0x8000_0000 .. 0xFFFF_FFFF
+0x1_0000_0000 .. 0x7FFF_FFFF_FFFF_FFFF
+0x8000_0000_0000_0000 .. 0xFFFF_FFFF_FFFF_FFFF
+0x0L .. 0x7FFF_FFFF_FFFF_FFFFL
+0x8000_0000_0000_0000L .. 0xFFFF_FFFF_FFFF_FFFFL
+0x0U .. 0xFFFF_FFFFU
+0x1_0000_0000U .. 0xFFFF_FFFF_FFFF_FFFFU
+0x0UL .. 0xFFFF_FFFF_FFFF_FFFFUL
+
+123_456.567_8          // 123456.5678
+1_2_3_4_5_6_.5_6_7_8   // 123456.5678
+1_2_3_4_5_6_.5e-6_     // 123456.5e-6
+0x1.FFFFFFFFFFFFFp1023 // double.max
+0x1p-52                // double.epsilon
+1.175494351e-38F       // float.min
+6.3i                   // idouble 6.3
+6.3fi                  // ifloat 6.3
+6.3Li                  // ireal 6.3
+4.5 + 6.2i             // complex number (phased out)
+ +

Strings

+
// WYSIWYG strings
+r"hello"
+r"c:\root\foo.exe"
+r"ab\n"
+`hello`
+`c:\root\foo.exe`
+`ab\n`
+
+// Double-quoted strings
+"hello"
+"c:\\root\\foo.exe"
+"ab\n"
+"ab
+"
+
+// Hex strings
+x"0A"
+x"00 FBCD 32FD 0A"
+
+// String postfix characters
+"hello"c  // string
+"hello"w  // wstring
+"hello"d  // dstring
+
+// Delimited strings
+q"(foo(xxx))"
+q"[foo{]"
+q"EOS
+This
+is a multi-line
+heredoc string
+EOS"
+q"/foo]/"
+
+// Token strings
+q{foo}
+q{/*}*/ }
+q{ foo(q{hello}); }
+q{ __TIME__ }
+
+// Character literals
+'a'
+'\u000A'
+ +

Iasm registers

+
AL AH AX EAX
+BL BH BX EBX
+CL CH CX ECX
+DL DH DX EDX
+BP EBP
+SP ESP
+DI EDI
+SI ESI
+ES CS SS DS GS FS
+CR0 CR2 CR3 CR4
+DR0 DR1 DR2 DR3 DR6 DR7
+TR3 TR4 TR5 TR6 TR7
+ST
+ST(0) ST(1) ST(2) ST(3) ST(4) ST(5) ST(6) ST(7)
+MM0  MM1  MM2  MM3  MM4  MM5  MM6  MM7
+XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7
+
+RAX  RBX  RCX  RDX
+BPL  RBP
+SPL  RSP
+DIL  RDI
+SIL  RSI
+R8B  R8W  R8D  R8
+R9B  R9W  R9D  R9
+R10B R10W R10D R10
+R11B R11W R11D R11
+R12B R12W R12D R12
+R13B R13W R13D R13
+R14B R14W R14D R14
+R15B R15W R15D R15
+XMM8 XMM9 XMM10 XMM11 XMM12 XMM13 XMM14 XMM15
+YMM0 YMM1 YMM2  YMM3  YMM4  YMM5  YMM6  YMM7
+YMM8 YMM9 YMM10 YMM11 YMM12 YMM13 YMM14 YMM15
+ +

Full example

+
#!/usr/bin/dmd -run
+/* sh style script syntax is supported! */
+/* Hello World in D
+   To compile:
+     dmd hello.d
+   or to optimize:
+     dmd -O -inline -release hello.d
+   or to get generated documentation:
+     dmd hello.d -D
+  */
+import std.stdio;  // References to  commonly used I/O routines.
+void main(char[][] args)   // 'void' here means return 0 by default.
+{
+    // Write-Formatted-Line
+     writefln("Hello World, "   // automatic concatenation of string literals
+              "Reloaded");
+     // Strings are denoted as a dynamic array of chars 'char[]'
+     // auto type inference and built-in foreach
+     foreach(argc, argv; args)
+    {
+        // OOP is supported, of course! And automatic type inference.
+         auto cl = new CmdLin(argc, argv);
+
+        // 'writefln' is the improved 'printf' !!
+         // user-defined class properties.
+         writefln(cl.argnum, cl.suffix, " arg: %s", cl.argv);
+        // Garbage Collection or explicit memory management - your choice!!!
+         delete cl;
+    }
+     // Nested structs, classes and functions!
+     struct specs
+    {
+        // all vars. automatically initialized
+         int count, allocated;
+    }
+
+    // Note that declarations read right-to-left.
+    // So that 'char[][]' reads as an array of an array of chars.
+
+    specs argspecs(char[][] args)
+    // Optional (built-in) function contracts.
+     in{
+        assert (args.length > 0); // assert built in
+     }
+    out(result){
+        assert(result.count == CmdLin.total);
+        assert(result.allocated > 0);
+    }
+    body{
+        specs* s = new specs;
+        // no need for '->'
+         s.count = args.length;  // The 'length' property is number of elements.
+         s.allocated = typeof(args).sizeof; // built-in properties for native types
+         foreach(argv; args)
+            s.allocated += argv.length * typeof(argv[0]).sizeof;
+        return *s;
+    }
+
+    // built-in string and common string operations, e.g. '~' is concatenate.
+     char[] argcmsg  = "argc = %d";
+    char[] allocmsg = "allocated = %d";
+    writefln(argcmsg ~ ", " ~ allocmsg,
+         argspecs(args).count,argspecs(args).allocated);
+}
+/**
+   Stores a single command line argument.
+ */
+ class CmdLin
+{
+    private {
+     int _argc;
+     char[] _argv;
+     static uint _totalc;
+    }
+
+ public:
+/************
+      Object constructor.
+      params:
+        argc = ordinal count of this argument.
+        argv = text of the parameter
+  *********/
+     this(int argc, char[] argv)
+    {
+        _argc = argc + 1;
+        _argv = argv;
+        _totalc++;
+    }
+
+    ~this() /// Object destructor
+     {
+        // Doesn't actually do anything for this example.
+     }
+
+     int argnum() /// A property that returns arg number
+     {
+        return _argc;
+    }
+     char[] argv() /// A property  that returns arg text
+     {
+        return _argv;
+    }
+     wchar[] suffix() /// A property  that returns ordinal suffix
+     {
+        wchar[] suffix;  // Built in  Unicode strings (utf8,utf16, utf32)
+         switch(_argc)
+        {
+        case 1:
+            suffix = "st";
+            break;
+        case 2:
+            suffix = "nd";
+            break;
+        case 3:
+            suffix = "rd";
+            break;
+        default:  // 'default' is mandatory with "-w" compile switch.
+             suffix = "th";
+        }
+        return suffix;
+    }
+
+/* **************
+      * A property of the whole class, not just an instance.
+      * returns: The total number of commandline args added.
+      *************/
+     static typeof(_totalc) total()
+    {
+        return _totalc;
+    }
+     // Class invariant, things that must be true after any method is run.
+     invariant
+     {
+         assert(_argc > 0);
+         assert(_totalc >= _argc);
+     }
+}
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Comments only support one level of nesting

+
/+ /+ /+ this does not work +/ +/ +/
+ +

Token strings only support one level of nesting

+
q{ q{ q{ this does not work } } }
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-dart.html b/docs/_style/prism-master/examples/prism-dart.html new file mode 100644 index 00000000..e38d85ea --- /dev/null +++ b/docs/_style/prism-master/examples/prism-dart.html @@ -0,0 +1,59 @@ +

Comments

+
// Single line comment
+/// Documentation single line comment
+/* Block comment
+on several lines */
+/** Multi-line
+doc comment */
+ +

Annotations

+
@todo('seth', 'make this do something')
+@deprecated // Metadata; makes Dart Editor warn about using activate().
+ +

Numbers

+
var x = 1;
+var hex = 0xDEADBEEF;
+var bigInt = 346534658346524376592384765923749587398457294759347029438709349347;
+var y = 1.1;
+var exponents = 1.42e5;
+
+ +

Strings

+
var s1 = 'Single quotes work well for string literals.';
+var s2 = "Double quotes work just as well.";
+var s3 = 'It\'s easy to escape the string delimiter.';
+var s4 = "It's even easier to just use the other string delimiter.";
+var s1 = '''
+You can create
+multi-line strings like this one.
+''';
+var s2 = """This is also a
+multi-line string.""";
+var s = r"In a raw string, even \n isn't special.";
+ +

Full example

+
class Logger {
+  final String name;
+  bool mute = false;
+
+  // _cache is library-private, thanks to the _ in front of its name.
+  static final Map<String, Logger> _cache = <String, Logger>{};
+
+  factory Logger(String name) {
+    if (_cache.containsKey(name)) {
+      return _cache[name];
+    } else {
+      final logger = new Logger._internal(name);
+      _cache[name] = logger;
+      return logger;
+    }
+  }
+
+  Logger._internal(this.name);
+
+  void log(String msg) {
+    if (!mute) {
+      print(msg);
+    }
+  }
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-diff.html b/docs/_style/prism-master/examples/prism-diff.html new file mode 100644 index 00000000..b9229a17 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-diff.html @@ -0,0 +1,33 @@ +

Normal Diff

+
7c7
+< qt: core
+---
+> qt: core quick
+ +

Context Diff

+
*** qcli.yml	2014-12-16 11:43:41.000000000 +0800
+--- /Users/uranusjr/Desktop/qcli.yml	2014-12-31 11:28:08.000000000 +0800
+***************
+*** 4,8 ****
+  project:
+      sources: "src/*.cpp"
+      headers: "src/*.h"
+!     qt: core
+  public_headers: "src/*.h"
+--- 4,8 ----
+  project:
+      sources: "src/*.cpp"
+      headers: "src/*.h"
+!     qt: core gui
+  public_headers: "src/*.h"
+ +

Unified Diff

+
--- qcli.yml	2014-12-16 11:43:41.000000000 +0800
++++ /Users/uranusjr/Desktop/qcli.yml	2014-12-31 11:28:08.000000000 +0800
+@@ -4,5 +4,5 @@
+ project:
+     sources: "src/*.cpp"
+     headers: "src/*.h"
+-    qt: core
++    qt: core gui
+ public_headers: "src/*.h"
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-django.html b/docs/_style/prism-master/examples/prism-django.html new file mode 100644 index 00000000..ac9cf0df --- /dev/null +++ b/docs/_style/prism-master/examples/prism-django.html @@ -0,0 +1,31 @@ +

Comment

+
{# This is a comment #}
+ +

Variable

+
{{ some_variable }}
+ +

Template Tag

+
{% if some_condition %}
+Conditional block
+{% endif %}
+
+ +

Full Example

+
{# This a Django template example #}
+{% extends "base_generic.html" %}
+
+{% block title %}{{ section.title }}{% endblock %}
+
+{% block content %}
+<h1>{{ section.title }}</h1>
+
+{% for story in story_list %}
+<h2>
+  <a href="{{ story.get_absolute_url }}">
+    {{ story.headline|upper }}
+  </a>
+</h2>
+<p>{{ story.tease|truncatewords:"100" }}</p>
+{% endfor %}
+{% endblock %}
+
diff --git a/docs/_style/prism-master/examples/prism-docker.html b/docs/_style/prism-master/examples/prism-docker.html new file mode 100644 index 00000000..86511b38 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-docker.html @@ -0,0 +1,49 @@ +

Comments

+
# These are the comments for a dockerfile.
+# I want to make sure $(variables) don't break out,
+# and we shouldn't see keywords like ADD or ENTRYPOINT
+
+ +

Full example

+
# Nginx
+#
+# VERSION               0.0.1
+
+FROM      ubuntu
+MAINTAINER Victor Vieux 
+
+LABEL Description="This image is used to start the foobar executable" Vendor="ACME Products" Version="1.0"
+RUN apt-get update && apt-get install -y inotify-tools nginx apache2 openssh-server
+
+# Firefox over VNC
+#
+# VERSION               0.3
+
+FROM ubuntu
+
+# Install vnc, xvfb in order to create a 'fake' display and firefox
+RUN apt-get update && apt-get install -y x11vnc xvfb firefox
+RUN mkdir ~/.vnc
+# Setup a password
+RUN x11vnc -storepasswd 1234 ~/.vnc/passwd
+# Autostart firefox (might not be the best way, but it does the trick)
+RUN bash -c 'echo "firefox" >> /.bashrc'
+
+EXPOSE 5900
+CMD    ["x11vnc", "-forever", "-usepw", "-create"]
+
+# Multiple images example
+#
+# VERSION               0.1
+
+FROM ubuntu
+RUN echo foo > bar
+# Will output something like ===> 907ad6c2736f
+
+FROM ubuntu
+RUN echo moo > oink
+# Will output something like ===> 695d7793cbe4
+
+# You᾿ll now have two images, 907ad6c2736f with /bar, and 695d7793cbe4 with
+# /oink.
+
diff --git a/docs/_style/prism-master/examples/prism-eiffel.html b/docs/_style/prism-master/examples/prism-eiffel.html new file mode 100644 index 00000000..94c18b22 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-eiffel.html @@ -0,0 +1,72 @@ +

Comments

+
-- A comment
+
+ +

Simple string and character

+
"A simple string with %"double quotes%""
+'a'
+
+ +

Verbatim-strings

+
"[
+  A aligned verbatim string
+]"
+"{
+  A non-aligned verbatim string
+}"
+
+ +

Numbers

+
1_000
+1_000.
+1_000.e+1_000
+1_000.1_000e-1_000
+.1
+0b1010_0001
+0xAF_5B
+0c75_22
+
+ +

Class names

+
deferred class
+    A [G]
+
+feature
+    items: G
+        deferred  end
+
+end
+
+ +

Full example

+
note
+  description: "Represents a person."
+
+class
+  PERSON
+
+create
+  make, make_unknown
+
+feature {NONE} -- Creation
+
+  make (a_name: like name)
+      -- Create a person with `a_name' as `name'.
+    do
+      name := a_name
+    ensure
+      name = a_name
+    end
+
+    make_unknown
+    do ensure
+      name = Void
+      end
+
+feature -- Access
+
+  name: detachable STRING
+      -- Full name or Void if unknown.
+
+end
+
diff --git a/docs/_style/prism-master/examples/prism-elixir.html b/docs/_style/prism-master/examples/prism-elixir.html new file mode 100644 index 00000000..7112fbca --- /dev/null +++ b/docs/_style/prism-master/examples/prism-elixir.html @@ -0,0 +1,462 @@ +

Comments

+
# This is a comment
+ +

Atoms

+
:foo
+:bar
+ +

Numbers

+
42
+0b1010
+0o777
+0x1F
+3.14159
+5.2e10
+100_000
+ +

Strings and heredoc

+
'A string with \'quotes\'!'
+"A string with \"quotes\"!"
+"Multi-line
+strings are supported"
+""" "Heredoc" strings are
+also supported.
+"""
+ +

Sigils

+
~s"""This is a sigil
+using heredoc delimiters"""
+~r/a [reg]exp/
+~r(another|regexp)
+~w[some words]s
+~c<a char list>
+ +

Interpolation

+
"This is an #{:atom}"
+~s/#{40+2} is the answer/
+ +

Function capturing

+
fun = &Math.zero?/1
+(&is_function/1).(fun)
+fun = &(&1 + 1)
+fun.(1)
+fun = &List.flatten(&1, &2)
+fun.([1, [[2], 3]], [4, 5])
+ +

Module attributes

+
defmodule MyServer do
+  @vsn 2
+end
+
+defmodule Math do
+  @moduledoc """
+  Provides math-related functions.
+
+      iex> Math.sum(1, 2)
+      3
+
+  """
+
+  @doc """
+  Calculates the sum of two numbers.
+  """
+  def sum(a, b), do: a + b
+end
+ +

Full example

+
# Example from http://learnxinyminutes.com/docs/elixir/
+
+# Single line comments start with a number symbol.
+
+# There's no multi-line comment,
+# but you can stack multiple comments.
+
+# To use the elixir shell use the `iex` command.
+# Compile your modules with the `elixirc` command.
+
+# Both should be in your path if you installed elixir correctly.
+
+## ---------------------------
+## -- Basic types
+## ---------------------------
+
+# There are numbers
+3    # integer
+0x1F # integer
+3.0  # float
+
+# Atoms, that are literals, a constant with name. They start with `:`.
+:hello # atom
+
+# Tuples that are stored contiguously in memory.
+{1,2,3} # tuple
+
+# We can access a tuple element with the `elem` function:
+elem({1, 2, 3}, 0) #=> 1
+
+# Lists that are implemented as linked lists.
+[1,2,3] # list
+
+# We can access the head and tail of a list as follows:
+[head | tail] = [1,2,3]
+head #=> 1
+tail #=> [2,3]
+
+# In elixir, just like in Erlang, the `=` denotes pattern matching and
+# not an assignment.
+#
+# This means that the left-hand side (pattern) is matched against a
+# right-hand side.
+#
+# This is how the above example of accessing the head and tail of a list works.
+
+# A pattern match will error when the sides don't match, in this example
+# the tuples have different sizes.
+# {a, b, c} = {1, 2} #=> ** (MatchError) no match of right hand side value: {1,2}
+
+# There are also binaries
+<<1,2,3>> # binary
+
+# Strings and char lists
+"hello" # string
+'hello' # char list
+
+# Multi-line strings
+"""
+I'm a multi-line
+string.
+"""
+#=> "I'm a multi-line\nstring.\n"
+
+# Strings are all encoded in UTF-8:
+"héllò" #=> "héllò"
+
+# Strings are really just binaries, and char lists are just lists.
+<<?a, ?b, ?c>> #=> "abc"
+[?a, ?b, ?c]   #=> 'abc'
+
+# `?a` in elixir returns the ASCII integer for the letter `a`
+?a #=> 97
+
+# To concatenate lists use `++`, for binaries use `<>`
+[1,2,3] ++ [4,5]     #=> [1,2,3,4,5]
+'hello ' ++ 'world'  #=> 'hello world'
+
+<<1,2,3>> <> <<4,5>> #=> <<1,2,3,4,5>>
+"hello " <> "world"  #=> "hello world"
+
+# Ranges are represented as `start..end` (both inclusive)
+1..10 #=> 1..10
+lower..upper = 1..10 # Can use pattern matching on ranges as well
+[lower, upper] #=> [1, 10]
+
+## ---------------------------
+## -- Operators
+## ---------------------------
+
+# Some math
+1 + 1  #=> 2
+10 - 5 #=> 5
+5 * 2  #=> 10
+10 / 2 #=> 5.0
+
+# In elixir the operator `/` always returns a float.
+
+# To do integer division use `div`
+div(10, 2) #=> 5
+
+# To get the division remainder use `rem`
+rem(10, 3) #=> 1
+
+# There are also boolean operators: `or`, `and` and `not`.
+# These operators expect a boolean as their first argument.
+true and true #=> true
+false or true #=> true
+# 1 and true    #=> ** (ArgumentError) argument error
+
+# Elixir also provides `||`, `&&` and `!` which accept arguments of any type.
+# All values except `false` and `nil` will evaluate to true.
+1 || true  #=> 1
+false && 1 #=> false
+nil && 20  #=> nil
+!true #=> false
+
+# For comparisons we have: `==`, `!=`, `===`, `!==`, `<=`, `>=`, `<` and `>`
+1 == 1 #=> true
+1 != 1 #=> false
+1 < 2  #=> true
+
+# `===` and `!==` are more strict when comparing integers and floats:
+1 == 1.0  #=> true
+1 === 1.0 #=> false
+
+# We can also compare two different data types:
+1 < :hello #=> true
+
+# The overall sorting order is defined below:
+# number < atom < reference < functions < port < pid < tuple < list < bit string
+
+# To quote Joe Armstrong on this: "The actual order is not important,
+# but that a total ordering is well defined is important."
+
+## ---------------------------
+## -- Control Flow
+## ---------------------------
+
+# `if` expression
+if false do
+  "This will never be seen"
+else
+  "This will"
+end
+
+# There's also `unless`
+unless true do
+  "This will never be seen"
+else
+  "This will"
+end
+
+# Remember pattern matching? Many control-flow structures in elixir rely on it.
+
+# `case` allows us to compare a value against many patterns:
+case {:one, :two} do
+  {:four, :five} ->
+    "This won't match"
+  {:one, x} ->
+    "This will match and bind `x` to `:two`"
+  _ ->
+    "This will match any value"
+end
+
+# It's common to bind the value to `_` if we don't need it.
+# For example, if only the head of a list matters to us:
+[head | _] = [1,2,3]
+head #=> 1
+
+# For better readability we can do the following:
+[head | _tail] = [:a, :b, :c]
+head #=> :a
+
+# `cond` lets us check for many conditions at the same time.
+# Use `cond` instead of nesting many `if` expressions.
+cond do
+  1 + 1 == 3 ->
+    "I will never be seen"
+  2 * 5 == 12 ->
+    "Me neither"
+  1 + 2 == 3 ->
+    "But I will"
+end
+
+# It is common to set the last condition equal to `true`, which will always match.
+cond do
+  1 + 1 == 3 ->
+    "I will never be seen"
+  2 * 5 == 12 ->
+    "Me neither"
+  true ->
+    "But I will (this is essentially an else)"
+end
+
+# `try/catch` is used to catch values that are thrown, it also supports an
+# `after` clause that is invoked whether or not a value is caught.
+try do
+  throw(:hello)
+catch
+  message -> "Got #{message}."
+after
+  IO.puts("I'm the after clause.")
+end
+#=> I'm the after clause
+# "Got :hello"
+
+## ---------------------------
+## -- Modules and Functions
+## ---------------------------
+
+# Anonymous functions (notice the dot)
+square = fn(x) -> x * x end
+square.(5) #=> 25
+
+# They also accept many clauses and guards.
+# Guards let you fine tune pattern matching,
+# they are indicated by the `when` keyword:
+f = fn
+  x, y when x > 0 -> x + y
+  x, y -> x * y
+end
+
+f.(1, 3)  #=> 4
+f.(-1, 3) #=> -3
+
+# Elixir also provides many built-in functions.
+# These are available in the current scope.
+is_number(10)    #=> true
+is_list("hello") #=> false
+elem({1,2,3}, 0) #=> 1
+
+# You can group several functions into a module. Inside a module use `def`
+# to define your functions.
+defmodule Math do
+  def sum(a, b) do
+    a + b
+  end
+
+  def square(x) do
+    x * x
+  end
+end
+
+Math.sum(1, 2)  #=> 3
+Math.square(3) #=> 9
+
+# To compile our simple Math module save it as `math.ex` and use `elixirc`
+# in your terminal: elixirc math.ex
+
+# Inside a module we can define functions with `def` and private functions with `defp`.
+# A function defined with `def` is available to be invoked from other modules,
+# a private function can only be invoked locally.
+defmodule PrivateMath do
+  def sum(a, b) do
+    do_sum(a, b)
+  end
+
+  defp do_sum(a, b) do
+    a + b
+  end
+end
+
+PrivateMath.sum(1, 2)    #=> 3
+# PrivateMath.do_sum(1, 2) #=> ** (UndefinedFunctionError)
+
+# Function declarations also support guards and multiple clauses:
+defmodule Geometry do
+  def area({:rectangle, w, h}) do
+    w * h
+  end
+
+  def area({:circle, r}) when is_number(r) do
+    3.14 * r * r
+  end
+end
+
+Geometry.area({:rectangle, 2, 3}) #=> 6
+Geometry.area({:circle, 3})       #=> 28.25999999999999801048
+# Geometry.area({:circle, "not_a_number"})
+#=> ** (FunctionClauseError) no function clause matching in Geometry.area/1
+
+# Due to immutability, recursion is a big part of elixir
+defmodule Recursion do
+  def sum_list([head | tail], acc) do
+    sum_list(tail, acc + head)
+  end
+
+  def sum_list([], acc) do
+    acc
+  end
+end
+
+Recursion.sum_list([1,2,3], 0) #=> 6
+
+# Elixir modules support attributes, there are built-in attributes and you
+# may also add custom ones.
+defmodule MyMod do
+  @moduledoc """
+  This is a built-in attribute on a example module.
+  """
+
+  @my_data 100 # This is a custom attribute.
+  IO.inspect(@my_data) #=> 100
+end
+
+## ---------------------------
+## -- Structs and Exceptions
+## ---------------------------
+
+# Structs are extensions on top of maps that bring default values,
+# compile-time guarantees and polymorphism into Elixir.
+defmodule Person do
+  defstruct name: nil, age: 0, height: 0
+end
+
+joe_info = %Person{ name: "Joe", age: 30, height: 180 }
+#=> %Person{age: 30, height: 180, name: "Joe"}
+
+# Access the value of name
+joe_info.name #=> "Joe"
+
+# Update the value of age
+older_joe_info = %{ joe_info | age: 31 }
+#=> %Person{age: 31, height: 180, name: "Joe"}
+
+# The `try` block with the `rescue` keyword is used to handle exceptions
+try do
+  raise "some error"
+rescue
+  RuntimeError -> "rescued a runtime error"
+  _error -> "this will rescue any error"
+end
+
+# All exceptions have a message
+try do
+  raise "some error"
+rescue
+  x in [RuntimeError] ->
+    x.message
+end
+
+## ---------------------------
+## -- Concurrency
+## ---------------------------
+
+# Elixir relies on the actor model for concurrency. All we need to write
+# concurrent programs in elixir are three primitives: spawning processes,
+# sending messages and receiving messages.
+
+# To start a new process we use the `spawn` function, which takes a function
+# as argument.
+f = fn -> 2 * 2 end #=> #Function<erl_eval.20.80484245>
+spawn(f) #=> #PID<0.40.0>
+
+# `spawn` returns a pid (process identifier), you can use this pid to send
+# messages to the process. To do message passing we use the `send` operator.
+# For all of this to be useful we need to be able to receive messages. This is
+# achieved with the `receive` mechanism:
+defmodule Geometry do
+  def area_loop do
+    receive do
+      {:rectangle, w, h} ->
+        IO.puts("Area = #{w * h}")
+        area_loop()
+      {:circle, r} ->
+        IO.puts("Area = #{3.14 * r * r}")
+        area_loop()
+    end
+  end
+end
+
+# Compile the module and create a process that evaluates `area_loop` in the shell
+pid = spawn(fn -> Geometry.area_loop() end) #=> #PID<0.40.0>
+
+# Send a message to `pid` that will match a pattern in the receive statement
+send pid, {:rectangle, 2, 3}
+#=> Area = 6
+#   {:rectangle,2,3}
+
+send pid, {:circle, 2}
+#=> Area = 12.56000000000000049738
+#   {:circle,2}
+
+# The shell is also a process, you can use `self` to get the current pid
+self() #=> #PID<0.27.0>
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

String interpolation in single-quoted strings

+
'#{:atom} <- this should not be highligted'
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-elm.html b/docs/_style/prism-master/examples/prism-elm.html new file mode 100644 index 00000000..00d0e333 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-elm.html @@ -0,0 +1,91 @@ +

Comments

+
-- Single line comment
+{- Multi-line
+comment -}
+ +

Strings and characters

+
'a'
+'\n'
+'\x03'
+"foo \" bar"
+"""
+"multiline strings" are also
+supported!
+"""
+ +

Full example

+
module Main exposing (..)
+
+import Html exposing (Html)
+import Svg exposing (..)
+import Svg.Attributes exposing (..)
+import Time exposing (Time, second)
+
+
+main =
+    Html.program
+        { init = init
+        , view = view
+        , update = update
+        , subscriptions = subscriptions
+        }
+
+
+
+-- MODEL
+
+
+type alias Model =
+    Time
+
+
+init : ( Model, Cmd Msg )
+init =
+    ( 0, Cmd.none )
+
+
+
+-- UPDATE
+
+
+type Msg
+    = Tick Time
+
+
+update : Msg -> Model -> ( Model, Cmd Msg )
+update msg model =
+    case msg of
+        Tick newTime ->
+            ( newTime, Cmd.none )
+
+
+
+-- SUBSCRIPTIONS
+
+
+subscriptions : Model -> Sub Msg
+subscriptions model =
+    Time.every second (\time -> Tick time)
+
+
+
+-- VIEW
+
+
+view : Model -> Html Msg
+view model =
+    let
+        angle =
+            turns (Time.inMinutes model)
+
+        handX =
+            toString (50 + 40 * cos angle)
+
+        handY =
+            toString (50 + 40 * sin angle)
+    in
+    svg [ viewBox "0 0 100 100", width "300px" ]
+        [ circle [ cx "50", cy "50", r "45", fill "#0B79CE" ] []
+        , line [ x1 "50", y1 "50", x2 handX, y2 handY, stroke "#023963" ] []
+        ]
+
diff --git a/docs/_style/prism-master/examples/prism-erb.html b/docs/_style/prism-master/examples/prism-erb.html new file mode 100644 index 00000000..46c0143f --- /dev/null +++ b/docs/_style/prism-master/examples/prism-erb.html @@ -0,0 +1,22 @@ +

Full example

+
<%# index.erb %>
+<h1>Listing Books</h1>
+<table>
+  <tr>
+    <th>Title</th>
+    <th>Summary</th>
+    <th></th>
+    <th></th>
+    <th></th>
+  </tr>
+
+<% @books.each do |book| %>
+  <tr>
+    <td><%= book.title %></td>
+    <td><%= book.content %></td>
+    <td><%= link_to "Show", book %></td>
+    <td><%= link_to "Edit", edit_book_path(book) %></td>
+    <td><%= link_to "Remove", book, method: :delete, data: { confirm: "Are you sure?" } %></td>
+  </tr>
+<% end %>
+</table>
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-erlang.html b/docs/_style/prism-master/examples/prism-erlang.html new file mode 100644 index 00000000..05445adf --- /dev/null +++ b/docs/_style/prism-master/examples/prism-erlang.html @@ -0,0 +1,47 @@ +

Comments

+
% This is a comment
+%% coding: utf-8
+ +

Strings

+
"foo \"bar\" baz"
+ +

Numbers

+
42.
+$A.
+$\n.
+2#101.
+16#1f.
+2.3.
+2.3e3.
+2.3e-3.
+ +

Functions

+
P = spawn(m, loop, []).
+io:format("I am ~p~n", [self()]).
+'weird function'().
+
+ +

Variables

+
P = {adam,24,{july,29}}.
+M1 = #{name=>adam,age=>24,date=>{july,29}}.
+M2 = maps:update(age,25,M1).
+io:format("{~p,~p}: ~p~n", [?MODULE,?LINE,X]).
+ +

Operators

+
1==1.0.
+1=:=1.0.
+1 > a.
++1.
+-1.
+1+1.
+4/2.
+5 div 2.
+5 rem 2.
+2#10 band 2#01.
+2#10 bor 2#01.
+a + 10.
+1 bsl (1 bsl 64).
+not true.
+true and false.
+true xor false.
+true or garbage.
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-flow.html b/docs/_style/prism-master/examples/prism-flow.html new file mode 100644 index 00000000..76f3e14a --- /dev/null +++ b/docs/_style/prism-master/examples/prism-flow.html @@ -0,0 +1,18 @@ +

Primitive types

+
function method(x: number, y: string, z: boolean) {}
+function stringifyBasicValue(value: string | number) {}
+function add(one: any, two: any): number {
+  return one + two;
+}
+
+const bar: number = 2;
+var barVar: number = 2;
+let barLet: number = 2;
+let isOneOf: number | boolean | string = foo;
+ +

Keywords

+
type UnionAlias = 1 | 2 | 3;
+opaque type ID = string;
+declare opaque type PositiveNumber: number;
+type Country = $Keys<typeof countries>;
+type RequiredProps = $Diff<Props, DefaultProps>;
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-fortran.html b/docs/_style/prism-master/examples/prism-fortran.html new file mode 100644 index 00000000..00b23f5a --- /dev/null +++ b/docs/_style/prism-master/examples/prism-fortran.html @@ -0,0 +1,71 @@ +

Comments

+
! This is a comment
+ +

Strings

+
"foo 'bar' baz"
+'foo ''bar'' baz'
+''
+ITALICS_'This is in italics'
+"test &
+	! Some "tricky comment" here
+	&test"
+ +

Numbers

+
473
++56
+-101
+21_2
+21_SHORT
+1976354279568241_8
+B'01110'
+B"010"
+O'047'
+O"642"
+Z'F41A'
+Z"00BC"
+-12.78
++1.6E3
+2.1
+-16.E4_8
+0.45E-4
+10.93E7_QUAD
+.123
+3E4
+ +

Full example

+
MODULE MOD1
+TYPE INITIALIZED_TYPE
+	INTEGER :: I = 1 ! Default initialization
+END TYPE INITIALIZED_TYPE
+SAVE :: SAVED1, SAVED2
+INTEGER :: SAVED1, UNSAVED1
+TYPE(INITIALIZED_TYPE) :: SAVED2, UNSAVED2
+ALLOCATABLE :: SAVED1(:), SAVED2(:), UNSAVED1(:), UNSAVED2(:)
+END MODULE MOD1
+
+PROGRAM MAIN
+CALL SUB1 ! The values returned by the ALLOCATED intrinsic calls
+          ! in the PRINT statement are:
+          ! .FALSE., .FALSE., .FALSE., and .FALSE.
+          ! Module MOD1 is used, and its variables are allocated.
+          ! After return from the subroutine, whether the variables
+          ! which were not specified with the SAVE attribute
+          ! retain their allocation status is processor dependent.
+CALL SUB1 ! The values returned by the first two ALLOCATED intrinsic
+	      ! calls in the PRINT statement are:
+	      ! .TRUE., .TRUE.
+	      ! The values returned by the second two ALLOCATED
+	      ! intrinsic calls in the PRINT statement are
+	      ! processor dependent and each could be either
+	      ! .TRUE. or .FALSE.
+CONTAINS
+	SUBROUTINE SUB1
+	USE MOD1 ! Brings in saved and not saved variables.
+	PRINT *, ALLOCATED(SAVED1), ALLOCATED(SAVED2), &
+	         ALLOCATED(UNSAVED1), ALLOCATED(UNSAVED2)
+	IF (.NOT. ALLOCATED(SAVED1)) ALLOCATE(SAVED1(10))
+	IF (.NOT. ALLOCATED(SAVED2)) ALLOCATE(SAVED2(10))
+	IF (.NOT. ALLOCATED(UNSAVED1)) ALLOCATE(UNSAVED1(10))
+	IF (.NOT. ALLOCATED(UNSAVED2)) ALLOCATE(UNSAVED2(10))
+	END SUBROUTINE SUB1
+END PROGRAM MAIN
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-fsharp.html b/docs/_style/prism-master/examples/prism-fsharp.html new file mode 100644 index 00000000..6a4330b6 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-fsharp.html @@ -0,0 +1,89 @@ +

Comments

+
// Single line comment
+(* Multi-line
+comment *)
+ +

Strings

+
"foo \"bar\" baz"
+'foo \'bar\' baz'
+@"Verbatim strings"
+"""Alternate "verbatim" strings"""
+
+ +

Numbers

+
//8 bit Int
+86y
+0b00000101y
+//Unsigned 8 bit Int
+86uy
+0b00000101uy
+//16 bit Int
+86s
+//Unsigned 16 bit Int
+86us
+//Int
+86
+86l
+0b10000
+0x2A6
+//Unsigned Int
+86u
+86ul
+//unativeint
+0x00002D3Fun
+//Long
+86L
+//Unsigned Long
+86UL
+//Float
+4.14F
+4.14f
+4.f
+4.F
+0x0000000000000000lf
+//Double
+4.14
+2.3E+32
+2.3e+32
+2.3e-32
+2.3e32
+0x0000000000000000LF
+//BigInt
+9999999999999999999999999999I
+//Decimal
+0.7833M
+0.7833m
+3.m
+3.M
+
+ +

Full example

+
// The declaration creates a constructor that takes two values, name and age. 
+type Person(name:string, age:int) =
+    // A Person object's age can be changed. The mutable keyword in the 
+    // declaration makes that possible. 
+    let mutable internalAge = age
+
+    // Declare a second constructor that takes only one argument, a name. 
+    // This constructor calls the constructor that requires two arguments, 
+    // sending 0 as the value for age. 
+    new(name:string) = Person(name, 0)
+
+    // A read-only property. 
+    member this.Name = name
+    // A read/write property. 
+    member this.Age
+        with get() = internalAge
+        and set(value) = internalAge <- value
+
+    // Instance methods. 
+    // Increment the person's age. 
+    member this.HasABirthday () = internalAge <- internalAge + 1
+
+    // Check current age against some threshold. 
+    member this.IsOfAge targetAge = internalAge >= targetAge
+
+    // Display the person's name and age. 
+    override this.ToString () = 
+        "Name:  " + name + "\n" + "Age:   " + (string)internalAge
+
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-gcode.html b/docs/_style/prism-master/examples/prism-gcode.html new file mode 100644 index 00000000..ebc15615 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-gcode.html @@ -0,0 +1,22 @@ +

Comments

+
; comment
+(some more comments)
+G28 (even in here) X0
+
+ +

Quoted strings

+
"foo""bar"
+ +

Full example

+
M190 S60 ; Heat bed to 60°C
+G21 ; Set units to millimeters
+G28 ; Move to Origin (Homing)
+G29 ; Auto Bed Leveling
+G28 X0 Y0 ; Home X and Y to min endstops
+M107 ; Fan off
+M109 S200 ; Heat hotend to 200°C
+G92 E0 ; Set current extruder position as zero
+G1 F200 E15 ; Extrude 15mm filament with 200mm/min
+G92 E0 ; Set current extruder position as zero
+G1 F500
+
diff --git a/docs/_style/prism-master/examples/prism-gedcom.html b/docs/_style/prism-master/examples/prism-gedcom.html new file mode 100644 index 00000000..3fee6ab0 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-gedcom.html @@ -0,0 +1,50 @@ +

Full example

+
0 HEAD
+1 CHAR ASCII
+1 SOUR ID_OF_CREATING_FILE
+1 GEDC
+2 VERS 5.5
+2 FORM Lineage-Linked
+1 SUBM @SUBMITTER@
+0 @SUBMITTER@ SUBM
+1 NAME /Submitter/
+1 ADDR Submitters address
+2 CONT address continued here
+0 @FATHER@ INDI
+1 NAME /Father/
+1 SEX M
+1 BIRT
+2 PLAC birth place
+2 DATE 1 JAN 1899
+1 DEAT
+2 PLAC death place
+2 DATE 31 DEC 1990
+1 FAMS @FAMILY@
+0 @MOTHER@ INDI
+1 NAME /Mother/
+1 SEX F
+1 BIRT
+2 PLAC birth place
+2 DATE 1 JAN 1899
+1 DEAT
+2 PLAC death place
+2 DATE 31 DEC 1990
+1 FAMS @FAMILY@
+0 @CHILD@ INDI
+1 NAME /Child/
+1 BIRT
+2 PLAC birth place
+2 DATE 31 JUL 1950
+1 DEAT
+2 PLAC death place
+2 DATE 29 FEB 2000
+1 FAMC @FAMILY@
+0 @FAMILY@ FAM
+1 MARR
+2 PLAC marriage place
+2 DATE 1 APR 1950
+1 HUSB @FATHER@
+1 WIFE @MOTHER@
+1 CHIL @CHILD@
+0 TRLR
+
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-gherkin.html b/docs/_style/prism-master/examples/prism-gherkin.html new file mode 100644 index 00000000..f38446e7 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-gherkin.html @@ -0,0 +1,74 @@ +

Strings

+
"foo \"bar\" baz"
+'foo \'bar\' baz'
+
+"""
+Some Title, Eh?
+===============
+Here is the first paragraph of my blog post.
+Lorem ipsum dolor sit amet, consectetur adipiscing
+elit.
+"""
+
+ +

Keywords

+
Feature: Some terse yet descriptive text of what is desired
+    In order to realize a named business value
+    As an explicit system actor
+    I want to gain some beneficial outcome which furthers the goal
+
+    Additional text...
+
+    Scenario: Some determinable business situation
+    Given some precondition
+    And some other precondition
+    When some action by the actor
+    And some other action
+    And yet another action
+    Then some testable outcome is achieved
+    And something else we can check happens too
+
+    Scenario: A different situation
+    ...
+ +

Comments and tags

+
# user.feature
+@users
+Feature: Sign in to the store
+  In order to view my orders list
+  As a visitor
+  I need to be able to log in to the store
+
+  @javascript @login
+  Scenario: Trying to login without credentials
+      Given I am on the store homepage
+        And I follow "Login"
+       When I press "Login"
+       Then I should be on login page
+       # And I should see "Invalid credentials"
+
+ +

Tables and parameters

+
Scenario Outline: Eating
+  Given there are <start> cucumbers
+  When I eat <eat> cucumbers
+  Then I should have <left> cucumbers
+
+  Examples:
+    | start | eat | left |
+    |  12   |  5  |  7   |
+    |  20   |  5  |  15  |
+ +

Localized keywords

+
#language: fr
+Fonctionnalité: Contrôle le format de la valeur saisie d'un champ d'une révision
+  En tant qu'expert ou analyste
+  Je ne dois pas pouvoir soumettre des données au mauvais format
+
+  Contexte:
+    Etant donné que je suis connecté avec le pseudo "p_flore" et le mot de passe "p4flore"
+    Et que la gamme du contrat 27156 supporte les révisions
+    Etant donné que le contrat ayant l'id "27156" a une révision
+    Et je suis sur "/contrat/27156/revision/1"
+    Et que j'attends quelques secondes
+    ...
diff --git a/docs/_style/prism-master/examples/prism-git.html b/docs/_style/prism-master/examples/prism-git.html new file mode 100644 index 00000000..cd5668d1 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-git.html @@ -0,0 +1,39 @@ +

Comments

+
# On branch prism-examples
+# Changes to be committed:
+#   (use "git reset HEAD <file>..." to unstage)
+#
+#       new file:   examples/prism-git.html
+ +

Inserted and deleted lines

+
- Some deleted line
++ Some added line
+ +

Diff

+
$ git diff
+diff --git file.txt file.txt
+index 6214953..1d54a52 100644
+--- file.txt
++++ file.txt
+@@ -1 +1,2 @@
+-Here's my tetx file
++Here's my text file
++And this is the second line
+ +

Logs

+
$ git log
+commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09
+Author: lgiraudel
+Date:   Mon Feb 17 11:18:34 2014 +0100
+
+    Add of a new line
+
+commit 87edc4ad8c71b95f6e46f736eb98b742859abd95
+Author: lgiraudel
+Date:   Mon Feb 17 11:18:15 2014 +0100
+
+    Typo fix
+
+commit 3102416a90c431400d2e2a14e707fb7fd6d9e06d
+Author: lgiraudel
+Date:   Mon Feb 17 10:58:11 2014 +0100
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-glsl.html b/docs/_style/prism-master/examples/prism-glsl.html new file mode 100644 index 00000000..7492a422 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-glsl.html @@ -0,0 +1,65 @@ +

Vertex shader example

+
attribute vec3 vertex;
+attribute vec3 normal;
+
+uniform mat4 _mvProj;
+uniform mat3 _norm;
+
+varying vec3 vColor;
+varying vec3 localPos;
+
+#pragma include "light.glsl"
+
+// constants
+vec3 materialColor = vec3(1.0,0.7,0.8);
+vec3 specularColor = vec3(1.0,1.0,1.0);
+
+void main(void) {
+    // compute position
+    gl_Position = _mvProj * vec4(vertex, 1.0);
+    
+    localPos = vertex;
+    
+    // compute light info
+    vec3 n = normalize(_norm * normal);
+    vec3 diffuse;
+    float specular;
+    float glowingSpecular = 50.0;
+    getDirectionalLight(n, _dLight, glowingSpecular, diffuse, specular);
+    vColor = max(diffuse,_ambient.xyz)*materialColor+specular*specularColor+_ambient;
+}
+ +

Fragment shader example

+
#ifdef GL_ES
+precision highp float;
+#endif
+
+uniform vec3 BrickColor, MortarColor;
+uniform vec3 BrickSize;
+uniform vec3 BrickPct;
+
+varying vec3 vColor;
+varying vec3 localPos;
+void main()
+{
+    vec3 color;
+	vec3 position, useBrick;
+	
+
+	position = localPos / BrickSize.xyz;
+
+	if (fract(position.y * 0.5) > 0.5){
+		position.x += 0.5;
+        position.z += 0.5;
+	}
+    
+	position = fract(position);
+
+	useBrick = step(position, BrickPct.xyz);
+
+	color = mix(MortarColor, BrickColor, useBrick.x * useBrick.y * useBrick.z);
+	color *= vColor;
+
+	gl_FragColor = vec4(color, 1.0);
+}
+
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-gml.html b/docs/_style/prism-master/examples/prism-gml.html new file mode 100644 index 00000000..a1649f6b --- /dev/null +++ b/docs/_style/prism-master/examples/prism-gml.html @@ -0,0 +1,29 @@ +

Comments

+
// This is a comment
+/* This is a comment
+on multiple lines */
+ +

Functions

+
variable_instance_set(_inst,_var_name,_start+_change);
+ +

Full example

+
if(instance_exists(_inst) || _inst==global){
+	if(_delay<=0){
+		_time+=1;
+		if(_time<_duration){
+			event_user(0);
+		}else{
+			if(_inst!=global){
+				variable_instance_set(_inst,_var_name,_start+_change);
+			}else{
+				variable_global_set(_var_name,_start+_change);
+			}
+			instance_destroy();
+		}
+	}else{
+		_delay-=1;
+	}
+}else{
+	instance_destroy();
+}
+
diff --git a/docs/_style/prism-master/examples/prism-go.html b/docs/_style/prism-master/examples/prism-go.html new file mode 100644 index 00000000..205a1a7e --- /dev/null +++ b/docs/_style/prism-master/examples/prism-go.html @@ -0,0 +1,68 @@ +

Comments

+
// This is a comment
+/* This is a comment
+on multiple lines */
+ +

Numbers

+
42
+0600
+0xBadFace
+170141183460469231731687303715884105727
+0.
+72.40
+072.40
+2.71828
+1.e+0
+6.67428e-11
+1E6
+.25
+.12345E+5
+0i
+011i
+0.i
+2.71828i
+1.e+0i
+6.67428e-11i
+1E6i
+.25i
+.12345E+5i
+ +

Runes and strings

+
'\t'
+'\000'
+'\x07'
+'\u12e4'
+'\U00101234'
+`abc`
+`multi-line
+string`
+"Hello, world!"
+"multi-line
+string"
+ +

Functions

+
func(a, b int, z float64) bool { return a*b < int(z) }
+ +

Full example

+
package main
+import "fmt"
+
+func sum(a []int, c chan int) {
+	sum := 0
+	for _, v := range a {
+		sum += v
+	}
+	c <- sum // send sum to c
+}
+
+func main() {
+	a := []int{7, 2, 8, -9, 4, 0}
+
+	c := make(chan int)
+	go sum(a[:len(a)/2], c)
+	go sum(a[len(a)/2:], c)
+	x, y := <-c, <-c // receive from c
+
+	fmt.Println(x, y, x+y)
+}
+
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-graphql.html b/docs/_style/prism-master/examples/prism-graphql.html new file mode 100644 index 00000000..12113a9d --- /dev/null +++ b/docs/_style/prism-master/examples/prism-graphql.html @@ -0,0 +1,31 @@ +

Comments

+
# This is a comment
+ +

Strings

+
""
+"foo \"bar\" baz"
+ +

Numbers

+
0
+42
+3.14159
+-9e-5
+0.9E+7
+ +

Keywords

+
query withFragments {
+  user(id: 4) {
+    friends(first: 10) {
+      ...friendFields
+    }
+    mutualFriends(first: 10) {
+      ...friendFields
+    }
+  }
+}
+
+fragment friendFields on User {
+  id
+  name
+  profilePic(size: 50)
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-groovy.html b/docs/_style/prism-master/examples/prism-groovy.html new file mode 100644 index 00000000..3ec1d6d3 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-groovy.html @@ -0,0 +1,93 @@ +

Comments

+
// Single line comment
+/* Multi-line
+comment */
+ +

Strings

+
"foo 'bar' baz"
+'foo "bar" baz'
+"""Multi-line
+string"""
+'''Multi-line
+string'''
+"String /containing/ slashes"
+
+ +

Slashy strings (regex)

+
/.*foo.*/
+/regex"containing quotes"/
+$/.*"(.*)".*/(.*)/$
+ +

Interpolation inside GStrings and regex

+
"The answer is ${21*2}"
+"The $foxtype ${foxcolor.join()} fox"
+/foo${21*2}baz/
+'No interpolation here : ${21*2}'
+ +

Full example

+
#!/usr/bin/env groovy
+package model
+
+import groovy.transform.CompileStatic
+import java.util.List as MyList
+
+trait Distributable {
+    void distribute(String version) {}
+}
+
+@CompileStatic
+class Distribution implements Distributable {
+    double number = 1234.234 / 567
+    def otherNumber = 3 / 4
+    boolean archivable = condition ?: true
+    def ternary = a ? b : c
+    String name = "Guillaume"
+    Closure description = null
+    List<DownloadPackage> packages = []
+    String regex = ~/.*foo.*/
+    String multi = '''
+        multi line string
+    ''' + """
+        now with double quotes and ${gstring}
+    """ + $/
+        even with dollar slashy strings
+    /$
+
+    /**
+     * description method
+     * @param cl the closure
+     */
+    void description(Closure cl) { this.description = cl }
+
+    void version(String name, Closure versionSpec) {
+        def closure = { println "hi" } as Runnable
+
+        MyList ml = [1, 2, [a: 1, b:2,c :3]]
+        for (ch in "name") {}
+
+        // single line comment
+        DownloadPackage pkg = new DownloadPackage(version: name)
+
+        check that: true
+
+        label:
+        def clone = versionSpec.rehydrate(pkg, pkg, pkg)
+        /*
+            now clone() in a multiline comment
+        */
+        clone()
+        packages.add(pkg)
+
+        assert 4 / 2 == 2
+    }
+}
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Two divisions on the same line

+
2 / 3 / 4
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-haml.html b/docs/_style/prism-master/examples/prism-haml.html new file mode 100644 index 00000000..c2cc670c --- /dev/null +++ b/docs/_style/prism-master/examples/prism-haml.html @@ -0,0 +1,79 @@ +

Comments

+

+/ This is comment
+    on multiple lines
+/ This is a comment
+but this is not
+-# This is another comment
+    on multiple lines
+ +

Doctype

+
!!! XML
+!!!
+!!! 5
+ +

Tags

+
%div
+	%span
+%span(class="widget_#{@widget.number}")
+%div{:id => [@item.type, @item.number], :class => [@item.type, @item.urgency]}
+%html{:xmlns => "http://www.w3.org/1999/xhtml", "xml:lang" => "en", :lang => "en"}
+%html{html_attrs('fr-fr')}
+%div[@user, :greeting]
+%img
+%pre><
+  foo
+  bar
+%img
+
+ +

Markup

+
%div
+  <p id="blah">Blah!</p>
+ +

Inline Ruby

+
= ['hi', 'there', 'reader!'].join " "
+- foo = "hello"
+= link_to_remote "Add to cart",
+    :url => { :action => "add", :id => product.id },
+    :update => { :success => "cart", :failure => "error" }
+~ "Foo\n<pre>Bar\nBaz</pre>"
+%p
+  - case 2
+  - when 1
+    = "1!"
+  - when 2
+    = "2?"
+  - when 3
+    = "3."
+- (42...47).each do |i|
+  %p= i
+%p See, I can count!
+
+ +

Filters

+ +
%head
+	:css
+		#content: {
+			background: url('img/background.jpg');
+		}
+		div {
+			color: #333;
+		}
+	:javascript
+		(function() {
+			var test = "Do you like Prism?";
+			if(confirm(test)) {
+				do_something_great();
+			}
+		}());
+%body
+
+ +

Filters require the desired language to be loaded. +On this page, check CoffeeScript before checking Haml should make +the example below work properly.

+
%script
+  :coffee
+    console.log 'This is coffee script'
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-handlebars.html b/docs/_style/prism-master/examples/prism-handlebars.html new file mode 100644 index 00000000..c39c8b74 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-handlebars.html @@ -0,0 +1,41 @@ +

Comments

+
{{! This is a comment with <p>some markup</p> in it }}
+{{! This is a comment }} {{ this_is_not }}
+ +

Variables

+
<p>{{ text }}</p>
+<h1>{{article.title}}</h1>
+{{{ triple_stash_is_supported }}}
+{{articles.[10].[#comments]}}
+ +

Strings, numbers and booleans

+
{{{link "See more..." story.url}}}
+{{ true }}
+{{ custom_helper 42 href="somepage.html" false }}
+ +

Block helpers

+
<div class="body">
+	{{#bold}}{{body}}{{/bold}}
+</div>
+{{#with story}}
+	<div class="intro">{{{intro}}}</div>
+	<div class="body">{{{body}}}</div>
+{{/with}}
+<div class="{{#if test}}foo{{else}}bar{{/if}}"></div>
+{{#list array}}
+	{{@index}}. {{title}}
+{{/list}}
+{{#block-with-hyphens args=yep}}
+	This should probably work...
+{{/block-with-hyphens}}
+
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Handlebars tag in the middle of an HTML tag

+
<div{{#if test}} class="test"{{/if}}></div>
diff --git a/docs/_style/prism-master/examples/prism-haskell.html b/docs/_style/prism-master/examples/prism-haskell.html new file mode 100644 index 00000000..de58eb79 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-haskell.html @@ -0,0 +1,80 @@ +

Comments

+
-- Single line comment
+{- Multi-line
+comment -}
+ +

Strings and characters

+
'a'
+'\n'
+'\^A'
+'\^]'
+'\NUL'
+'\23'
+'\o75'
+'\xFE'
+"Here is a backslant \\ as well as \137, \
+    \a numeric escape character, and \^X, a control character."
+ +

Numbers

+
42
+123.456
+123.456e-789
+1e+3
+0o74
+0XAF
+ +

Full example

+
hGetLine h =
+  wantReadableHandle_ "Data.ByteString.hGetLine" h $
+    \ h_@Handle__{haByteBuffer} -> do
+      flushCharReadBuffer h_
+      buf <- readIORef haByteBuffer
+      if isEmptyBuffer buf
+         then fill h_ buf 0 []
+         else haveBuf h_ buf 0 []
+ where
+
+  fill h_@Handle__{haByteBuffer,haDevice} buf len xss =
+    len `seq` do
+    (r,buf') <- Buffered.fillReadBuffer haDevice buf
+    if r == 0
+       then do writeIORef haByteBuffer buf{ bufR=0, bufL=0 }
+               if len > 0
+                  then mkBigPS len xss
+                  else ioe_EOF
+       else haveBuf h_ buf' len xss
+
+  haveBuf h_@Handle__{haByteBuffer}
+          buf@Buffer{ bufRaw=raw, bufR=w, bufL=r }
+          len xss =
+    do
+        off <- findEOL r w raw
+        let new_len = len + off - r
+        xs <- mkPS raw r off
+
+      -- if eol == True, then off is the offset of the '\n'
+      -- otherwise off == w and the buffer is now empty.
+        if off /= w
+            then do if (w == off + 1)
+                            then writeIORef haByteBuffer buf{ bufL=0, bufR=0 }
+                            else writeIORef haByteBuffer buf{ bufL = off + 1 }
+                    mkBigPS new_len (xs:xss)
+            else do
+                 fill h_ buf{ bufL=0, bufR=0 } new_len (xs:xss)
+
+  -- find the end-of-line character, if there is one
+  findEOL r w raw
+        | r == w = return w
+        | otherwise =  do
+            c <- readWord8Buf raw r
+            if c == fromIntegral (ord '\n')
+                then return r -- NB. not r+1: don't include the '\n'
+                else findEOL (r+1) w raw
+
+mkPS :: RawBuffer Word8 -> Int -> Int -> IO ByteString
+mkPS buf start end =
+ create len $ \p ->
+   withRawBuffer buf $ \pbuf -> do
+   copyBytes p (pbuf `plusPtr` start) len
+ where
+   len = end - start
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-haxe.html b/docs/_style/prism-master/examples/prism-haxe.html new file mode 100644 index 00000000..61fbf0e4 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-haxe.html @@ -0,0 +1,37 @@ +

Strings and string interpolation

+
"Foo
+bar $baz"
+'Foo
+bar'
+"${4 + 2}"
+ +

Regular expressions

+
~/haxe/i
+~/[A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z][A-Z][A-Z]?/i
+~/(dog|fox)/g
+ +

Conditional compilation

+
#if !debug
+  trace("ok");
+#elseif (debug_level > 3)
+  trace(3);
+#else
+  trace("debug level too low");
+#end
+ +

Metadata

+
@author("Nicolas")
+@debug
+class MyClass {
+  @range(1, 8)
+  var value:Int;
+
+  @broken
+  @:noCompletion
+  static function method() { }
+}
+ +

Reification

+
macro static function add(e:Expr) {
+  return macro $e + $e;
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-hpkp.html b/docs/_style/prism-master/examples/prism-hpkp.html new file mode 100644 index 00000000..ced16eb7 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-hpkp.html @@ -0,0 +1,11 @@ +

Pin for one year with report-uri

+
pin-sha256="EpOpN/ahUF6jhWShDUdy+NvvtaGcu5F7qM6+x2mfkh4=";
+max-age=31536000;
+includeSubDomains;
+report-uri="https://my-reports.com/submit"
+
+ +

Pin for a short time (considered unsafe)

+
pin-sha256="EpOpN/ahUF6jhWShDUdy+NvvtaGcu5F7qM6+x2mfkh4=";
+max-age=123
+
diff --git a/docs/_style/prism-master/examples/prism-hsts.html b/docs/_style/prism-master/examples/prism-hsts.html new file mode 100644 index 00000000..f7d0e451 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-hsts.html @@ -0,0 +1,8 @@ +

Policy with far-future max-age

+
max-age=31536000
+ +

Policy with near-future max-age, considered unsafe

+
max-age=123
+ +

Policy with extra directives

+
max-age=31536000; includeSubdomains; preload
diff --git a/docs/_style/prism-master/examples/prism-http.html b/docs/_style/prism-master/examples/prism-http.html new file mode 100644 index 00000000..a2091768 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-http.html @@ -0,0 +1,33 @@ +

Request header

+
GET http://localhost:9999/foo.html HTTP/1.1
+Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
+Accept-Encoding: gzip, deflate
+ +

Response header

+
HTTP/1.1 200 OK
+Server: GitHub.com
+Date: Mon, 22 Dec 2014 18:25:30 GMT
+Content-Type: text/html; charset=utf-8
+ +

Response body highlighted based on Content-Type

+

This currently supports the following content types : + "application/json", + "application/xml", + "text/xml" and + "text/html".

+
HTTP/1.1 200 OK
+Server: GitHub.com
+Date: Mon, 22 Dec 2014 18:25:30 GMT
+Content-Type: text/html; charset=utf-8
+Last-Modified: Sun, 21 Dec 2014 20:29:48 GMT
+Transfer-Encoding: chunked
+Expires: Mon, 22 Dec 2014 18:35:30 GMT
+Cache-Control: max-age=600
+Vary: Accept-Encoding
+Content-Encoding: gzip
+
+<!DOCTYPE html>
+<html lang="en">
+<head></head>
+<body></body>
+</html>
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-ichigojam.html b/docs/_style/prism-master/examples/prism-ichigojam.html new file mode 100644 index 00000000..24bcbf22 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-ichigojam.html @@ -0,0 +1,29 @@ +

Note: this component focuses on IchigoJam, which uses a small subset of basic and introduces its own markers.

+ +

Comments

+
' This is a comment
+REM This is a remark
+'NoSpaceIsOK
+REMNOSPACE
+ +

Strings

+
"This a string."
+"This is a string with ""quotes"" in it."
+ +

Numbers

+
42
+3.14159
+-42
+-3.14159
+.5
+10.
+2E10
+4.2E-14
+-3E+2
+#496F726953756B69
+`11100010
+ +

IchigoJam Basic example

+
A=0
+FOR I=1 TO 100 : A=A+I : NEXT
+PRINT A
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-icon.html b/docs/_style/prism-master/examples/prism-icon.html new file mode 100644 index 00000000..1dce690c --- /dev/null +++ b/docs/_style/prism-master/examples/prism-icon.html @@ -0,0 +1,172 @@ +

Comments

+
#
+# Foobar
+ +

Strings and csets

+
""
+"Foo\"bar"
+''
+'a\'bcdefg'
+ +

Numbers

+
42
+3.14159
+5.2E+8
+16rface
+2r1101
+ +

Full example

+
# Author: Robert J. Alexander
+global GameObject, Tree, Learn
+record Question(question, yes, no)
+procedure main()
+   GameObject := "animal"
+   Tree := Question("Does it live in water", "goldfish", "canary")
+   Get()                                  # Recall prior knowledge
+   Game()                                 # Play a game
+   return
+end
+#  Game() -- Conducts a game.
+#
+procedure Game()
+   while Confirm("Are you thinking of ", Article(GameObject), " ",
+      GameObject) do Ask(Tree)
+   write("Thanks for a great game.")
+   if \Learn &Confirm("Want to save knowledge learned this session")
+   then Save()
+   return
+end
+#  Confirm() -- Handles yes/no questions and answers.
+#
+procedure Confirm(q[])
+   local answer, s
+   static ok
+   initial {
+      ok := table()
+      every ok["y" | "yes" | "yeah" | "uh huh"] := "yes"
+      every ok["n" | "no"  | "nope" | "uh uh" ] := "no"
+      }
+   while /answer do {
+      every writes(!q)
+      write("?")
+      case s := read() | exit(1) of {
+         #  Commands recognized at a yes/no prompt.
+         #
+         "save":    Save()
+         "get":     Get()
+         "list":    List()
+         "dump":    Output(Tree)
+         default:   {
+            (answer := \ok[map(s, &ucase, &lcase)]) |
+               write("This is a \"yes\" or \"no\" question.")
+            }
+         }
+      }
+   return answer == "yes"
+end
+#  Ask() -- Navigates through the barrage of questions leading to a
+#  guess.
+#
+procedure Ask(node)
+   local guess, question
+   case type(node) of {
+      "string":        {
+         if not Confirm("It must be ", Article(node), " ", node, ", right") then {
+            Learn := "yes"
+            write("What were you thinking of?")
+            guess := read() | exit(1)
+            write("What question would distinguish ", Article(guess), " ",
+               guess, " from ", Article(node), " ", node, "?")
+            question := read() | exit(1)
+            if question[-1] == "?" then question[-1] := ""
+            question[1] := map(question[1], &lcase, &ucase)
+            if Confirm("For ", Article(guess), " ", guess, ", what would the answer be")
+            then return Question(question, guess, node)
+         else return Question(question, node, guess)
+         }
+      }
+      "Question":  {
+         if Confirm(node.question) then node.yes := Ask(node.yes)
+         else node.no := Ask(node.no)
+         }
+      }
+end
+#  Article() -- Come up with the appropriate indefinite article.
+#
+procedure Article(word)
+   return if any('aeiouAEIOU', word) then "an" else "a"
+end
+#  Save() -- Store our acquired knowledge in a disk file name
+#  based on the GameObject.
+#
+procedure Save()
+   local f
+   f := open(GameObject || "s", "w")
+   Output(Tree, f)
+   close(f)
+   return
+end
+#  Output() -- Recursive procedure used to output the knowledge tree.
+#
+procedure Output(node, f, sense)
+   static indent
+   initial indent := 0
+   /f := &output
+   /sense := " "
+   case type(node) of {
+      "string":        write(f, repl(" ", indent), sense, "A: ", node)
+      "Question":  {
+         write(f, repl(" ", indent), sense, "Q: ", node.question)
+         indent +:= 1
+         Output(node.yes, f, "y")
+         Output(node.no, f, "n")
+         indent -:= 1
+         }
+      }
+   return
+end
+#  Get() -- Read in a knowledge base from a file.
+#
+procedure Get()
+   local f
+   f := open(GameObject || "s", "r") | fail
+   Tree := Input(f)
+   close(f)
+   return
+end
+#  Input() -- Recursive procedure used to input the knowledge tree.
+#
+procedure Input(f)
+   local nodetype, s
+   read(f) ? (tab(upto(~' \t')) & =("y" | "n" | "") &
+      nodetype := move(1) & move(2) & s := tab(0))
+   return if nodetype == "Q" then Question(s, Input(f), Input(f)) else s
+end
+#  List() -- Lists the objects in the knowledge base.
+#
+$define Length           78
+procedure List()
+   local lst, line, item
+   lst := Show(Tree, [ ])
+   line := ""
+   every item := !sort(lst) do {
+      if *line + *item > Length then {
+         write(trim(line))
+         line := ""
+         }
+      line ||:= item || ", "
+      }
+   write(line[1:-2])
+   return
+end
+#
+#  Show() -- Recursive procedure used to navigate the knowledge tree.
+#
+procedure Show(node, lst)
+   if type(node) == "Question" then {
+      lst := Show(node.yes, lst)
+      lst := Show(node.no, lst)
+      }
+   else put(lst, node)
+   return lst
+end
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-inform7.html b/docs/_style/prism-master/examples/prism-inform7.html new file mode 100644 index 00000000..9e2214f0 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-inform7.html @@ -0,0 +1,171 @@ +

Comments

+
[This is a comment]
+[This is a
+multi-line comment]
+ +

Texts

+
"This is a string"
+"This is a
+multi-line string"
+ +

Numbers

+
42
+3.14159
+50kg
+100m
+one
+three
+twelve
+ +

Titles

+
Section 2 - Flamsteed's Balloon
+
+Part SR1 - The Physical World Model
+
+Table of Floors
+ +

Standard kinds, verbs and keywords

+
In the Treehouse is a container called the cardboard box.
+The cardboard box is a closed container. The glass bottle is a transparent open container. The box is fixed in place and openable.
+
+Check photographing:
+    if the noun is the camera, say "Sadly impossible." instead.
+ +

Text substitution

+
"[if the player is in Center Ring]A magician's booth stands in the corner, painted dark blue with glittering gold stars.[otherwise if the magician's booth is closed]A crack of light indicates the way back out to the center ring.[otherwise]The door stands open to the outside.[end if]".
+ +

Full example

+
"Lakeside Living"
+
+A volume is a kind of value. 15.9 fl oz specifies a volume with parts ounces and tenths (optional, preamble optional).
+
+A fluid container is a kind of container. A fluid container has a volume called a fluid capacity. A fluid container has a volume called current volume.
+
+The fluid capacity of a fluid container is usually 12.0 fl oz. The current volume of a fluid container is usually 0.0 fl oz.
+
+Liquid is a kind of value. The liquids are water, absinthe, and iced tea. A fluid container has a liquid.
+
+Instead of examining a fluid container:
+    if the noun is empty,
+        say "You catch just a hint of [the liquid of the noun] at the bottom.";
+    otherwise
+        say "[The noun] contains [current volume of the noun in rough terms] of [liquid of the noun]."
+
+To say (amount - a volume) in rough terms:
+    if the amount is less than 0.5 fl oz:
+        say "a swallow or two";
+    otherwise if tenths part of amount is greater than 3 and tenths part of amount is less than 7:
+        let estimate be ounces part of amount;
+        say "[estimate in words] or [estimate plus 1 in words] fluid ounces";
+    otherwise:
+        if tenths part of amount is greater than 6, increase amount by 1.0 fl oz;
+        say "about [ounces part of amount in words] fluid ounce[s]".
+
+Before printing the name of a fluid container (called the target) while not drinking or pouring:
+    if the target is empty:
+        say "empty ";
+    otherwise:
+        do nothing.
+
+After printing the name of a fluid container (called the target) while not examining or pouring:
+    unless the target is empty:
+        say " of [liquid of the target]";
+        omit contents in listing.
+
+Instead of inserting something into a fluid container:
+    say "[The second noun] has too narrow a mouth to accept anything but liquids."
+
+Definition: a fluid container is empty if the current volume of it is 0.0 fl oz. Definition: a fluid container is full if the current volume of it is the fluid capacity of it.
+
+Understand "drink from [fluid container]" as drinking.
+
+Instead of drinking a fluid container:
+    if the noun is empty:
+        say "There is no more [liquid of the noun] within." instead;
+    otherwise:
+        decrease the current volume of the noun by 0.2 fl oz;
+        if the current volume of the noun is less than 0.0 fl oz, now the current volume of the noun is 0.0 fl oz;
+        say "You take a sip of [the liquid of the noun][if the noun is empty], leaving [the noun] empty[end if]."
+
+Part 2 - Filling
+
+Understand the command "fill" as something new.
+
+Understand "fill [fluid container] with/from [full liquid source]" as filling it with. Understand "fill [fluid container] with/from [fluid container]" as filling it with.
+
+Understand "fill [something] with/from [something]" as filling it with.
+
+Filling it with is an action applying to two things. Carry out filling it with: try pouring the second noun into the noun instead.
+
+Understand "pour [fluid container] in/into/on/onto [fluid container]" as pouring it into. Understand "empty [fluid container] into [fluid container]" as pouring it into.
+
+Understand "pour [something] in/into/on/onto [something]" as pouring it into. Understand "empty [something] into [something]" as pouring it into.
+
+Pouring it into is an action applying to two things.
+
+Check pouring it into:
+    if the noun is not a fluid container, say "You can't pour [the noun]." instead;
+    if the second noun is not a fluid container, say "You can't pour liquids into [the second noun]." instead;
+    if the noun is the second noun, say "You can hardly pour [the noun] into itself." instead;
+    if the liquid of the noun is not the liquid of the second noun:
+        if the second noun is empty, now the liquid of the second noun is the liquid of the noun;
+        otherwise say "Mixing [the liquid of the noun] with [the liquid of the second noun] would give unsavory results." instead;
+    if the noun is empty, say "No more [liquid of the noun] remains in [the noun]." instead;
+    if the second noun is full, say "[The second noun] cannot contain any more than it already holds." instead.
+
+Carry out pouring it into:
+    let available capacity be the fluid capacity of the second noun minus the current volume of the second noun;
+    if the available capacity is greater than the current volume of the noun, now the available capacity is the current volume of the noun;
+    increase the current volume of the second noun by available capacity;
+    decrease the current volume of the noun by available capacity.
+
+Report pouring it into:
+    say "[if the noun is empty][The noun] is now empty;[otherwise][The noun] now contains [current volume of the noun in rough terms] of [liquid of the noun]; [end if]";
+    say "[the second noun] contains [current volume of the second noun in rough terms] of [liquid of the second noun][if the second noun is full], and is now full[end if]."
+
+Understand the liquid property as describing a fluid container. Understand "of" as a fluid container.
+
+A liquid source is a kind of fluid container. A liquid source has a liquid. A liquid source is usually scenery. The fluid capacity of a liquid source is usually 3276.7 fl oz. The current volume of a liquid source is usually 3276.7 fl oz. Instead of examining a liquid source: say "[The noun] is full of [liquid of the noun]."
+
+Carry out pouring a liquid source into something: now the current volume of the noun is 3276.7 fl oz.
+
+After pouring a liquid source into a fluid container:
+    say "You fill [the second noun] up with [liquid of the noun] from [the noun]."
+
+Instead of pouring a fluid container into a liquid source:
+    if the noun is empty, say "[The noun] is already empty." instead;
+    now the current volume of the noun is 0.0 fl oz;
+    say "You dump out [the noun] into [the second noun]."
+
+Swimming is an action applying to nothing. Understand "swim" or "dive" as swimming.
+
+Instead of swimming in the presence of a liquid source:
+    say "You don't feel like a dip just now."
+
+Before inserting something into a liquid source: say "[The noun] would get lost and never be seen again." instead.
+
+Part 3 - Scenario
+
+The Lakeside is a room. The Lakeside swing is an enterable supporter in the Lakeside. "Here you are by the lake, enjoying a summery view."
+
+The glass is a fluid container carried by the player. The liquid of the glass is absinthe. The current volume of the glass is 0.8 fl oz.
+
+The pitcher is a fluid container in the Lakeside. The fluid capacity of the pitcher is 32.0 fl oz. The current volume of the pitcher is 20.0 fl oz. The liquid of the pitcher is absinthe.
+
+The lake is a liquid source. It is in the Lakeside.
+
+The player wears a bathing outfit. The description of the bathing outfit is "Stylishly striped in blue and white, and daringly cut to reveal almost all of your calves, and quite a bit of upper arm, as well. You had a moral struggle, purchasing it; but mercifully the lakeshore is sufficiently secluded that no one can see you in this immodest apparel."
+
+Instead of taking off the outfit: say "What odd ideas come into your head sometimes!"
+
+Test me with "fill glass / empty absinthe into lake / fill glass / swim / drink lake / drink / x water / x lake". 
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Names starting with a number

+
The box 1A is a container
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-ini.html b/docs/_style/prism-master/examples/prism-ini.html new file mode 100644 index 00000000..284fbe44 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-ini.html @@ -0,0 +1,10 @@ +

Comments

+
; This is a comment
+ +

Section title

+
[owner]
+[database]
+ +

Properties

+
name=prism
+file="somefile.txt"
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-io.html b/docs/_style/prism-master/examples/prism-io.html new file mode 100644 index 00000000..ff5160a4 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-io.html @@ -0,0 +1,31 @@ +

Comments

+
//
+// Foobar
+#!/usr/bin/env io
+/* multiline
+comment
+*/
+ +

Strings

+
"this is a \"test\".\nThis is only a test."
+"""this is a "test".
+This is only a test."""
+ +

Numbers

+
123
+123.456
+0.456
+123e-4
+123e4
+123.456e-7
+123.456e2
+
+ +

Full example

+
"Hello, world!" println
+A := Object clone    // creates a new, empty object named "A"
+factorial := method(n,
+    if(n == 0, return 1)
+    res := 1
+    Range 1 to(n) foreach(i, res = res * i)
+)
diff --git a/docs/_style/prism-master/examples/prism-j.html b/docs/_style/prism-master/examples/prism-j.html new file mode 100644 index 00000000..cf4c109a --- /dev/null +++ b/docs/_style/prism-master/examples/prism-j.html @@ -0,0 +1,59 @@ +

Comments

+
NB. This is a comment
+ +

Strings

+
'This is a string.'
+'This is a string with ''quotes'' in it.'
+ +

Numbers

+
2.3e2 2.3e_2 2j3
+2p1 1p_1
+1x2 2x1 1x_1
+2e2j_2e2 2e2j2p1 2ad45 2ar0.785398
+16b1f 10b23 _10b23 1e2b23 2b111.111
+ +

Verbs

+
%4
+3%4
+,b
+'I';'was';'here'
+3 5$'wake read lamp '
+ +

Adverbs

+
1 2 3 */ 4 5 6 7
+'%*'(1 3;2 _1)} y
+ +

Conjunctions

+
10&^. 2 3 10 100 200
++`*
++:@*: +/ -:@%:
+ +

Examples

+
NB. The following functions E1, E2 and E3
+NB. interchange two rows of a matrix,
+NB. multiply a row by a constant,
+NB. and add a multiple of one row to another:
+
+E1=: <@] C. [
+E2=: f`g`[}
+E3=: F`g`[}
+f=: {:@] * {.@] { [
+F=: [: +/ (1:,{:@]) * (}:@] { [)
+g=: {.@]
+M=: i. 4 5
+M;(M E1 1 3);(M E2 1 10);(M E3 1 3 10)
+ +
NB. Implementation of quicksort
+
+sel=: adverb def 'u # ['
+
+quicksort=: verb define
+  if. 1 >: #y do. y
+  else.
+    (quicksort y <sel e),(y =sel e),quicksort y >sel e=.y{~?#y
+  end.
+)
+ +
NB. Implementation of quicksort (tacit programming)
+
+quicksort=: (($:@(<#[), (=#[), $:@(>#[)) ({~ ?@#)) ^: (1<#)
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-java.html b/docs/_style/prism-master/examples/prism-java.html new file mode 100644 index 00000000..691a6b10 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-java.html @@ -0,0 +1,65 @@ +

Comments

+
// Single line comment
+/* Multi-line
+comment */
+ +

Strings

+
"foo \"bar\" baz";
+'foo \'bar\' baz';
+ +

Numbers

+
123
+123.456
+-123.456
+.3f
+1.3e9d
+0xaf
+0xAF
+0xFF.AEP-4
+
+ +

Full example

+
import java.util.Scanner;
+
+public class Life {
+
+    @Override @Bind("One")
+    public void show(boolean[][] grid){
+        String s = "";
+        for(boolean[] row : grid){
+            for(boolean val : row)
+                if(val)
+                    s += "*";
+                else
+                    s += ".";
+            s += "\n";
+        }
+        System.out.println(s);
+    }
+
+    public static boolean[][] gen(){
+        boolean[][] grid = new boolean[10][10];
+        for(int r = 0; r < 10; r++)
+            for(int c = 0; c < 10; c++)
+                if( Math.random() > 0.7 )
+                    grid[r][c] = true;
+        return grid;
+    }
+
+    public static void main(String[] args){
+        boolean[][] world = gen();
+        show(world);
+        System.out.println();
+        world = nextGen(world);
+        show(world);
+        Scanner s = new Scanner(System.in);
+        while(s.nextLine().length() == 0){
+            System.out.println();
+            world = nextGen(world);
+            show(world);
+
+        }
+    }
+
+	// [...]
+}
diff --git a/docs/_style/prism-master/examples/prism-javascript.html b/docs/_style/prism-master/examples/prism-javascript.html new file mode 100644 index 00000000..51fe4835 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-javascript.html @@ -0,0 +1,77 @@ +

Variable assignment

+
var foo = "bar", baz = 5;
+ +

Operators

+
(1 + 2 * 3)/4 >= 3 && 4 < 5 || 6 > 7
+ +

Indented code

+
if (true) {
+	while (true) {
+		doSomething();
+	}
+}
+ +

Regex with slashes

+
var foo = /([^/])\/(\\?.|\[.+?])+?\/[gim]{0,3}/g;
+ +

Regex that ends with double slash

+
var bar = /\/\*[\w\W]*?\*\//g;
+ +

Single line comments & regexes

+
// http://lea.verou.me
+var comment = /\/\*[\w\W]*?\*\//g;
+ +

Link in comment

+
// http://lea.verou.me
+/* http://lea.verou.me */
+ +

Nested strings

+
var foo = "foo", bar = "He \"said\" 'hi'!"
+ +

Strings inside comments

+
// "foo"
+/* "foo" */
+ +

Strings with slashes

+
env.content + '</' + env.tag + '>'
+var foo = "/" + "/";
+var foo = "http://prismjs.com"; // Strings are strings and comments are comments ;)
+ +

Regex inside single line comment

+
// hey, /this doesn’t fail!/ :D
+ +

Two or more division operators on the same line

+
var foo = 5 / 6 / 7;
+ +

A division operator on the same line as a regex

+
var foo = 1/2, bar = /a/g;
+var foo = /a/, bar = 3/4;
+ +

ES6 features

+
// Regex "y" and "u" flags
+var a = /[a-zA-Z]+/gimyu;
+
+// for..of loops
+for(let x of y) { }
+
+// Modules: import
+import { foo as bar } from "file.js"
+
+// Template strings
+`Only on ${y} one line`
+`This template string ${x} is on
+
+multiple lines.`
+`40 + 2 = ${ 40 + 2 }`
+`The squares of the first 3 natural integers are ${[for (x of [1,2,3]) x*x].join(', ')}`
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

String interpolation containing a closing brace

+
`${ {foo:'bar'}.foo }`
+`${ '}' }`
diff --git a/docs/_style/prism-master/examples/prism-javastacktrace.html b/docs/_style/prism-master/examples/prism-javastacktrace.html new file mode 100644 index 00000000..3511aa6a --- /dev/null +++ b/docs/_style/prism-master/examples/prism-javastacktrace.html @@ -0,0 +1,63 @@ +

Full example

+
javax.servlet.ServletException: Something bad happened
+    at com.example.myproject.OpenSessionInViewFilter.doFilter(OpenSessionInViewFilter.java:60)
+    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
+    at com.example.myproject.ExceptionHandlerFilter.doFilter(ExceptionHandlerFilter.java:28)
+    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
+    at com.example.myproject.OutputBufferFilter.doFilter(OutputBufferFilter.java:33)
+    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
+    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
+    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
+    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
+    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
+    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
+    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
+    at org.mortbay.jetty.Server.handle(Server.java:326)
+    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
+    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)
+    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
+    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
+    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
+    at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
+    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
+Caused by: com.example.myproject.MyProjectServletException
+    at com.example.myproject.MyServlet.doPost(MyServlet.java:169)
+    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
+    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
+    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
+    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
+    at com.example.myproject.OpenSessionInViewFilter.doFilter(OpenSessionInViewFilter.java:30)
+    ... 27 more
+Suppressed: org.hibernate.exception.ConstraintViolationException: could not insert: [com.example.myproject.MyEntity]
+    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96)
+    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
+    at org.hibernate.id.insert.AbstractSelectingDelegate.performInsert(AbstractSelectingDelegate.java:64)
+    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2329)
+    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2822)
+    at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71)
+    at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:268)
+    at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321)
+    at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
+    at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
+    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
+    at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
+    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
+    at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
+    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
+    at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:705)
+    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:693)
+    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:689)
+    at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
+    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+    at java.lang.reflect.Method.invoke(Method.java:597)
+    at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:344)
+    at $Proxy19.save(Unknown Source)
+    at com.example.myproject.MyEntityService.save(MyEntityService.java:59) <-- relevant call (see notes below)
+    at com.example.myproject.MyServlet.doPost(MyServlet.java:164)
+    ... 32 more
+Caused by: java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]
+    at org.hsqldb.jdbc.Util.throwError(Unknown Source)
+    at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate(Unknown Source)
+    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
+    at org.hibernate.id.insert.AbstractSelectingDelegate.performInsert(AbstractSelectingDelegate.java:57)
+    ... 54 more
diff --git a/docs/_style/prism-master/examples/prism-jolie.html b/docs/_style/prism-master/examples/prism-jolie.html new file mode 100644 index 00000000..8d23d995 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-jolie.html @@ -0,0 +1,162 @@ +

Comments

+
// Single line comment
+/* Multi-line
+comment */
+ +

Strings

+
"foo \"bar\" baz";
+'foo \'bar\' baz'
+ +

Numbers

+
42
+42L
+1.2e3
+0.1E-4
+0.2e+1
+
+ +

Full example

+
include "console.iol"
+
+type HubType: void {
+  .sid: undefined
+  .nodes[1,*] : NodeType
+}
+
+type NodeType: void {
+  .sid: string
+  .node: string
+  .load?: int
+}
+
+type NetType: HubType | NodeType
+
+interface NetInterface {
+  OneWay: start( string ), addElement( NetType ), removeElement( NetType ), quit( void )
+  RequestResponse: showElements( void )( NetType ) throws SomeFault
+}
+
+type LogType: void {
+  .message: string
+}
+
+interface LoggerInterface {
+  RequestResponse: log( LogType )( void )
+}
+
+outputPort LoggerService {
+    Interfaces: LoggerInterface
+}
+
+embedded {
+  Jolie: "logger.ol" in LoggerService
+}
+
+type AuthenticationData: void {
+    .key:string
+}
+
+interface extender AuthInterfaceExtender {
+    OneWay: *(AuthenticationData)
+}
+
+service SubService 
+{
+  Interfaces: NetInterface
+
+  main
+  {
+     println@Console( "I do nothing" )()
+  }
+}
+
+inputPort ExtLogger {
+  Location: "socket://localhost:9000"
+  Protocol: sodep
+  Interfaces: LoggerInterface
+  Aggregates: LoggerService with AuthInterfaceExtender
+}
+
+courier ExtLogger {
+  [interface LoggerInterface( request )] {
+    if ( key == "secret" ){
+      forward ( request )
+    }
+  }
+}
+
+inputPort In {
+  Location: "socket://localhost:8000"
+  Protocol: http {
+    .debug = true;
+    .debug.showContent = true
+  }
+  Interfaces: NetInterface
+  Aggregates: SubService, 
+              LoggerService
+  Redirects: A => SubService, 
+             B => SubService
+}
+
+cset {
+  sid: HubType.sid NodeType.sid
+}
+
+execution{ concurrent }
+
+define netmodule {
+  if( request.load == 0 || request.load < 1 && 
+      request.load <= 2 || request.load >= 3 && 
+      request.load > 4  || request.load%4 == 2
+  ) {
+    scope( scopeName ) {   
+      // inline comment
+      install( MyFault => println@Console( "Something \"Went\" Wrong" + ' but it\'s ok' )() );
+      /*
+      * Multi-line
+      * Comment
+      */
+      install( this => cH; println@Console( "Something went wrong: " + ^load )() );
+      install( default => comp( scopeName ); println@Console( "Something went wrong" )() );
+      load -> request.( "load" );
+      { ++load | load++ | --load | load-- };
+      throw( MyFault )
+    }
+  } else {
+    foreach ( node -> request.nodes ) {
+      with( node ){
+        while( .load != 100 ) {
+          .load++
+        }   
+      }
+    } 
+  }
+}
+
+main
+{
+  start( sid );
+  synchronized( unneededSync ){
+    csets.sid = sid;
+    undef( sid )
+  };
+  provide
+    [ addElement( request ) ]{
+      if( request instanceof NodeType ) {
+        netmodule
+      }
+    }
+    [ removeElement() ]
+    [ showElements()( response ){
+       /*
+       * assemble response
+       */
+       nullProcess
+     }]{
+       // log the request
+       log@LoggerService( new )();
+       log @ LoggerService( new )()
+     }
+  until
+   [ quit() ]{ exit }
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-jsx.html b/docs/_style/prism-master/examples/prism-jsx.html new file mode 100644 index 00000000..faff4920 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-jsx.html @@ -0,0 +1,18 @@ +

Full example

+
var ExampleApplication = React.createClass({
+    render: function() {
+      var elapsed = Math.round(this.props.elapsed  / 100);
+      var seconds = elapsed / 10 + (elapsed % 10 ? '' : '.0' );
+      var message =
+        'React has been successfully running for ' + seconds + ' seconds.';
+
+      return <p>{message}</p>;
+    }
+  });
+  var start = new Date().getTime();
+  setInterval(function() {
+    React.render(
+      <ExampleApplication elapsed={new Date().getTime() - start} />,
+      document.getElementById('container')
+    );
+  }, 50);
diff --git a/docs/_style/prism-master/examples/prism-julia.html b/docs/_style/prism-master/examples/prism-julia.html new file mode 100644 index 00000000..b69d0454 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-julia.html @@ -0,0 +1,29 @@ +

Full example

+
function mandel(z)
+    c = z
+    maxiter = 80
+    for n = 1:maxiter
+        if abs(z) > 2
+            return n-1
+        end
+        z = z^2 + c
+    end
+    return maxiter
+end
+
+function randmatstat(t)
+    n = 5
+    v = zeros(t)
+    w = zeros(t)
+    for i = 1:t
+        a = randn(n,n)
+        b = randn(n,n)
+        c = randn(n,n)
+        d = randn(n,n)
+        P = [a b c d]
+        Q = [a b; c d]
+        v[i] = trace((P.'*P)^4)
+        w[i] = trace((Q.'*Q)^4)
+    end
+    std(v)/mean(v), std(w)/mean(w)
+end
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-keyman.html b/docs/_style/prism-master/examples/prism-keyman.html new file mode 100644 index 00000000..770827d5 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-keyman.html @@ -0,0 +1,107 @@ +

Comments

+
c This is a comment
+ +

Strings, numbers and characters

+
"'this' is a string"
+'and so is "this"'
+U+0041 d65 x41   c these are all the letter A
+
+ +

Prefixes and Virtual Keys

+ +

+c Match RAlt+E on desktops, Ctrl+Alt+E on web because L/R Alt not consistently supported in browsers.
+$KeymanOnly: + [RALT K_E] > "€"
+$KeymanWeb: + [CTRL ALT K_E] > "€"
+
+ +

Example Code

+ +
c =====================Begin Identity Section===================================================
+c 
+c Mnemonic input method for Amharic script on US-QWERTY
+c keyboards for Keyman version 7.1, compliant with Unicode 4.1 and later.
+c 
+
+store(&VERSION) '9.0'
+store(&Name) "Amharic"
+c store(&MnemonicLayout) "1"
+store(&CapsAlwaysOff) "1"
+store(&Copyright) "Creative Commons Attribution 3.0"
+store(&Message) "This is an Amharic language mnemonic input method for Ethiopic script that requires Unicode 4.1 support."
+store(&WINDOWSLANGUAGES) 'x045E x045E'
+store(&LANGUAGE) 'x045E'
+store(&EthnologueCode) "amh"
+store(&VISUALKEYBOARD) 'gff-amh-7.kvk'
+store(&KMW_EMBEDCSS) 'gff-amh-7.css'
+HOTKEY "^%A"
+c 
+c =====================End Identity Section=====================================================
+
+c =====================Begin Data Section=======================================================
+
+c ---------------------Maps for Numbers---------------------------------------------------------
+store(ArabOnes) '23456789'
+store(ones)     '፪፫፬፭፮፯፰፱'
+store(tens)     '፳፴፵፶፷፸፹፺'
+store(arabNumbers) '123456789'
+store(ethNumbers) '፩፪፫፬፭፮፯፰፱፲፳፴፵፶፷፸፹፺፻፼'
+store(arabNumbersWithZero) '0123456789'
+store(ColonOrComma) ':,'
+store(ethWordspaceOrComma) '፡፣'
+c ---------------------End Numbers--------------------------------------------------------------
+
+c =====================End Data Section=========================================================
+
+c =====================Begin Functional Section=================================================
+c 
+store(&LAYOUTFILE) 'gff-amh-7_layout.js'
+store(&BITMAP) 'amharic.bmp'
+store(&TARGETS) 'any windows'
+begin Unicode > use(main)
+group(main) using keys    
+
+c ---------------------Input of Numbers---------------------------------------------------------
+
+c Special Rule for Arabic Numerals
+c 
+c The following attempts to auto-correct the use of Ethiopic wordspace and
+c Ethiopic comma within an Arabic numeral context.  Ethiopic wordspace gets
+c used erroneously in time formats and Ethiopic commas as an order of thousands
+c delimiter. The correction context is not known until numerals appear on _both_
+c sides of the punctuation.
+c 
+  any(arabNumbersWithZero) any(ethWordspaceOrComma) + any(arabNumbers) > index(arabNumbersWithZero,1) index(ColonOrComma,2) index(arabNumbers,3)
+
+c Ethiopic Numerals
+
+  "'" + '1' > '፩'
+  "'" + any(ArabOnes) > index(ones,2)
+
+c special cases for multiples of one
+  '፩'  + '0' > '፲'
+  '፲'  + '0' > '፻'
+  '፻'  + '0' > '፲፻'
+  '፲፻' + '0' > '፼'
+  '፼'  + '0' > '፲፼'    
+  '፲፼' + '0' > '፻፼' 
+  '፻፼'  + '0' > '፲፻፼'
+  '፲፻፼' + '0' > '፼፼'
+  '፼፼' + '0' > context beep  c do not go any higher, we could beep here
+
+c upto the order of 100 million
+  any(ones)     + '0' > index(tens,1)
+  any(tens)     + '0' > index(ones,1) '፻'  c Hundreds
+  any(ones)  '፻ '+ '0' > index(tens,1) '፻'  c Thousands
+  any(tens)  '፻' + '0' > index(ones,1) '፼'  c Ten Thousands
+  any(ones)  '፼' + '0' > index(tens,1) '፼'  c Hundred Thousands
+  any(tens)  '፼' + '0' > index(ones,1) '፻፼' c Millions
+  any(ones) '፻፼' + '0' > index(tens,1) '፻፼' c Ten Millions
+  any(tens) '፻፼' + '0' > index(ones,1) '፼፼' c Hundred Millions
+
+c enhance this later, look for something that can copy a match over
+  any(ethNumbers) + any(arabNumbers) > index(ethNumbers,1)  index(ethNumbers,2)
+c ---------------------End Input of Numbers-----------------------------------------------------
+                                            
+c =====================End Functional Section===================================================
+
diff --git a/docs/_style/prism-master/examples/prism-kotlin.html b/docs/_style/prism-master/examples/prism-kotlin.html new file mode 100644 index 00000000..7c8f7b4e --- /dev/null +++ b/docs/_style/prism-master/examples/prism-kotlin.html @@ -0,0 +1,134 @@ +

Numbers

+
123
+123L
+0x0F
+0b00001011
+123.5
+123.5e10
+123.5f
+123.5F
+ +

Strings and interpolation

+
'2'
+'\uFF00'
+'\''
+
+"foo $bar \"baz"
+"""
+foo ${40 + 2}
+baz${bar()}
+"""
+ +

Labels

+
loop@ for (i in 1..100) {
+  for (j in 1..100) {
+    if (...)
+      break@loop
+  }
+}
+ +

Annotations

+
public class MyTest {
+    lateinit var subject: TestSubject
+
+    @SetUp fun setup() {
+        subject = TestSubject()
+    }
+
+    @Test fun test() {
+        subject.method()  // dereference directly
+    }
+}
+ +

Full example

+
package com.example.html
+
+interface Element {
+    fun render(builder: StringBuilder, indent: String)
+
+    override fun toString(): String {
+        val builder = StringBuilder()
+        render(builder, "")
+        return builder.toString()
+    }
+}
+
+class TextElement(val text: String): Element {
+    override fun render(builder: StringBuilder, indent: String) {
+        builder.append("$indent$text\n")
+    }
+}
+
+abstract class Tag(val name: String): Element {
+    val children = arrayListOf<Element>()
+    val attributes = hashMapOf<String, String>()
+
+    protected fun initTag<T: Element>(tag: T, init: T.() -> Unit): T {
+        tag.init()
+        children.add(tag)
+        return tag
+    }
+
+    override fun render(builder: StringBuilder, indent: String) {
+        builder.append("$indent<$name${renderAttributes()}>\n")
+        for (c in children) {
+            c.render(builder, indent + "  ")
+        }
+        builder.append("$indent</$name>\n")
+    }
+
+    private fun renderAttributes(): String? {
+        val builder = StringBuilder()
+        for (a in attributes.keySet()) {
+            builder.append(" $a=\"${attributes[a]}\"")
+        }
+        return builder.toString()
+    }
+}
+
+abstract class TagWithText(name: String): Tag(name) {
+    operator fun String.plus() {
+        children.add(TextElement(this))
+    }
+}
+
+class HTML(): TagWithText("html") {
+    fun head(init: Head.() -> Unit) = initTag(Head(), init)
+
+    fun body(init: Body.() -> Unit) = initTag(Body(), init)
+}
+
+class Head(): TagWithText("head") {
+    fun title(init: Title.() -> Unit) = initTag(Title(), init)
+}
+
+class Title(): TagWithText("title")
+
+abstract class BodyTag(name: String): TagWithText(name) {
+    fun b(init: B.() -> Unit) = initTag(B(), init)
+    fun p(init: P.() -> Unit) = initTag(P(), init)
+    fun h1(init: H1.() -> Unit) = initTag(H1(), init)
+    fun a(href: String, init: A.() -> Unit) {
+        val a = initTag(A(), init)
+        a.href = href
+    }
+}
+
+class Body(): BodyTag("body")
+
+class B(): BodyTag("b")
+class P(): BodyTag("p")
+class H1(): BodyTag("h1")
+class A(): BodyTag("a") {
+    public var href: String
+        get() = attributes["href"]!!
+        set(value) {
+            attributes["href"] = value
+        }
+}
+
+fun html(init: HTML.() -> Unit): HTML {
+    val html = HTML()
+    html.init()
+    return html
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-latex.html b/docs/_style/prism-master/examples/prism-latex.html new file mode 100644 index 00000000..137df360 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-latex.html @@ -0,0 +1,12 @@ +

Comments

+
% This is a comment
+ +

Commands

+
\begin{document}
+\documentstyle[twoside,epsfig]{article}
+\usepackage{epsfig,multicol}
+ +

Math mode

+
$\alpha$
+H$_{2}$O
+45$^{\circ}$C
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-less.html b/docs/_style/prism-master/examples/prism-less.html new file mode 100644 index 00000000..db8a5e64 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-less.html @@ -0,0 +1,70 @@ +

Comments

+
// Single line comment
+/* Multi-line
+comment */
+ +

Variables

+
@nice-blue: #5B83AD;
+@light-blue: @nice-blue + #111;
+ +

At-rules

+
@media screen and (min-width: 320px) {}
+ +

Mixins

+
.bordered {
+  border-top: dotted 1px black;
+  border-bottom: solid 2px black;
+}
+#menu a {
+  .bordered;
+}
+#header a {
+  color: orange;
+  #bundle > .button;
+}
+ +

Mixins with parameters

+
.foo (@bg: #f5f5f5, @color: #900) {
+  background: @bg;
+  color: @color;
+}
+.bar {
+  .foo();
+}
+.class1 {
+  .mixin(@margin: 20px; @color: #33acfe);
+}
+.class2 {
+  .mixin(#efca44; @padding: 40px);
+}
+ +

Interpolation

+
@mySelector: banner;
+.@{mySelector} {
+  font-weight: bold;
+}
+@property: color;
+.widget {
+  @{property}: #0ee;
+  background-@{property}: #999;
+}
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

At-rules looking like variables

+
@import "some file.less";
+ +

At-rules containing interpolation

+
@import "@{themes}/tidal-wave.less";
+ +

extend is not highlighted consistently

+
nav ul {
+  &:extend(.inline);
+  background: blue;
+}
+.a:extend(.b) {}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-liquid.html b/docs/_style/prism-master/examples/prism-liquid.html new file mode 100644 index 00000000..74971975 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-liquid.html @@ -0,0 +1,75 @@ +

Comments

+
{% comment %}This is a comment{% endcomment %}
+ +

Control Flow

+ +Liquid provides multiple control flow statements. + +

if

+

+{% if customer.name == 'kevin' %}
+  Hey Kevin!
+{% elsif customer.name == 'anonymous' %}
+  Hey Anonymous!
+{% else %}
+  Hi Stranger!
+{% endif %}
+
+ +

unless

+ +The opposite of if – executes a block of code only if a certain condition is not met. + +

+{% unless product.title == 'Awesome Shoes' %}
+These shoes are not awesome.
+{% endunless %}
+
+ +

case

+ +Creates a switch statement to compare a variable with different values. case initializes the switch statement, and when compares its values. + +

+{% assign handle = 'cake' %}
+{% case handle %}
+  {% when 'cake' %}
+    This is a cake
+  {% when 'cookie' %}
+    This is a cookie
+  {% else %}
+    This is not a cake nor a cookie
+{% endcase %}
+
+ +

for

+ +Repeatedly executes a block of code. + +break = Causes the loop to stop iterating when it encounters the break tag. +continue = Causes the loop to skip the current iteration when it encounters the continue tag. + +

+{% for i in (1..10) %}
+  {% if i == 4 %}
+    {% break %}
+  {% elsif i == 6 %}
+    {% continue %}
+  {% else %}
+    {{ i }}
+  {% endif %}
+{% endfor %}
+
+ +

range

+ +

+{% for i in (3..5) %}
+  {{ i }}
+{% endfor %}
+
+{% assign num = 4 %}
+{% for i in (1..num) %}
+  {{ i }}
+{% endfor %}
+
diff --git a/docs/_style/prism-master/examples/prism-lisp.html b/docs/_style/prism-master/examples/prism-lisp.html new file mode 100644 index 00000000..436d5c9c --- /dev/null +++ b/docs/_style/prism-master/examples/prism-lisp.html @@ -0,0 +1,46 @@ +

Comments

+
;; (foo bar)
+ +

Strings

+
(foo "bar")
+ +

With nested symbols

+
(foo "A string with a `symbol ")
+ +

With nested arguments

+
(foo "A string with an ARGUMENT ")
+ +

Quoted symbols

+
(foo #'bar)
+ +

Lisp properties

+
(foo :bar)
+ +

Splices

+
(foo ,bar ,@bar)
+ +

Keywords

+
(let foo (bar arg))
+ +

Declarations

+
(declare foo)
+ +

Booleans

+
(foo t)
+
(foo nil)
+ +

Numbers

+
(foo 1)
+
(foo -1.5)
+ +

Definitions

+
(defvar bar 23)
+
(defcustom bar 23)
+ +

Function definitions

+
(defun multiply-by-seven (number)
+       "Multiply NUMBER by seven."
+       (* 7 number))
+ +

Lambda expressions

+
(lambda (number) (* 7 number))
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-livescript.html b/docs/_style/prism-master/examples/prism-livescript.html new file mode 100644 index 00000000..e9194d36 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-livescript.html @@ -0,0 +1,84 @@ +

Comments

+
# This is a single line comment
+/* This is a
+multi line comment */
+ +

Numbers

+
42
+42km
+3.754km_2
+16~BadFace
+36~azertyuiop0123456789
+ +

Strings and interpolation

+
''
+''''''
+""
+""""""
+'Foo \' bar
+	baz'
+'''Foo \''' bar
+	bar'''
+"Foo #bar \"
+	#{2 + 2}\""
+"""#foobar \""" #{ if /test/ == 'test' then 3 else 4}
+	baz"""
+ +

Regex

+
/foobar/ig
+//
+^foo # foo
+[bar]*bA?z # barbaz
+//m
+ +

Full example

+
# example from Str.ls
+
+split = (sep, str) -->
+  str.split sep
+
+join = (sep, xs) -->
+  xs.join sep
+
+lines = (str) ->
+  return [] unless str.length
+  str.split '\n'
+
+unlines = (.join '\n')
+
+words = (str) ->
+  return [] unless str.length
+  str.split /[ ]+/
+
+unwords = (.join ' ')
+
+chars = (.split '')
+
+unchars = (.join '')
+
+reverse = (str) ->
+  str.split '' .reverse!.join ''
+
+repeat = (n, str) -->
+  result = ''
+  for til n
+    result += str
+  result
+
+capitalize = (str) ->
+  (str.char-at 0).to-upper-case! + str.slice 1
+
+camelize = (.replace /[-_]+(.)?/g, (, c) -> (c ? '').to-upper-case!)
+
+# convert camelCase to camel-case, and setJSON to set-JSON
+dasherize = (str) ->
+    str
+      .replace /([^-A-Z])([A-Z]+)/g, (, lower, upper) ->
+         "#{lower}-#{if upper.length > 1 then upper else upper.to-lower-case!}"
+      .replace /^([A-Z]+)/, (, upper) ->
+         if upper.length > 1 then "#upper-" else upper.to-lower-case!
+
+module.exports = {
+  split, join, lines, unlines, words, unwords, chars, unchars, reverse,
+  repeat, capitalize, camelize, dasherize,
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-lolcode.html b/docs/_style/prism-master/examples/prism-lolcode.html new file mode 100644 index 00000000..38308328 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-lolcode.html @@ -0,0 +1,62 @@ +

Comments

+
BTW Single line comment
+OBTW Multi-line
+comment TLDR
+ +

Strings and special characters

+
"foo :"bar:" baz"
+"foo:)bar:>baz"
+"Interpolation :{works} too!"
+ +

Numbers

+
42
+-42
+123.456
+ +

Variable declaration

+
I HAS A var
+var R "THREE"
+var R 3
+ +

Types

+
MAEK some_expr A YARN
+some_var IS NOW A NUMBR
+ +

Full example

+
OBTW Convert a number to hexadecimal. This
+     is returned as a string.
+TLDR
+HOW IZ I decimal_to_hex YR num
+    I HAS A i ITZ 0
+    I HAS A rem
+    I HAS A hex_num ITZ A BUKKIT
+    I HAS A decimal_num ITZ num
+    IM IN YR num_loop
+        rem R MOD OF decimal_num AN 16
+        I HAS A hex_digit
+        rem, WTF?
+            OMG 10, hex_digit R "A", GTFO
+            OMG 11, hex_digit R "B", GTFO
+            OMG 12, hex_digit R "C", GTFO
+            OMG 13, hex_digit R "D", GTFO
+            OMG 14, hex_digit R "E", GTFO
+            OMG 15, hex_digit R "F", GTFO
+            OMGWTF, hex_digit R rem
+        OIC
+        hex_num HAS A SRS i ITZ hex_digit
+        decimal_num R QUOSHUNT OF decimal_num AN 16
+        BOTH SAEM decimal_num AN 0, O RLY?
+            YA RLY, GTFO
+            NO WAI, i R SUM OF i AN 1
+        OIC
+    IM OUTTA YR num_loop
+    I HAS A hex_string ITZ A YARN
+    IM IN YR string_reverse
+        DIFFRINT i AN BIGGR OF i AN 0, O RLY?
+            YA RLY, GTFO
+        OIC
+        hex_string R SMOOSH hex_string AN hex_num'Z SRS i MKAY
+        i R DIFF OF i AN 1
+    IM OUTTA YR string_reverse
+    FOUND YR hex_string
+IF U SAY SO
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-lua.html b/docs/_style/prism-master/examples/prism-lua.html new file mode 100644 index 00000000..288b7675 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-lua.html @@ -0,0 +1,89 @@ +

Comments

+
#!/usr/local/bin/lua
+--
+-- Single line comment
+--[[ Multi line
+comment ]]
+--[====[ Multi line
+comment ]====]
+ +

Strings

+
""
+"Foo\"bar"
+"Foo\
+bar \z
+baz"
+''
+'Foo\'bar'
+'Foo\
+bar \z
+baz'
+[[Multi "line"
+string]]
+[==[Multi [["line"]]
+string]==]
+ +

Numbers

+
3
+345
+0xff
+0xBEBADA
+3, 3., 3.1, .3,
+3e12, 3.e-41, 3.1E+1, .3e1
+0x0.1E
+0xA23p-4
+0X1.921FB54442D18P+1
+ +

Full example

+
function To_Functable(t, fn)
+  return setmetatable(t,
+    {
+     __index = function(t, k) return fn(k) end,
+     __call = function(t, k) return t[k] end
+    })
+end
+
+-- Functable bottles of beer implementation
+
+spell_out = {
+  "One", "Two", "Three", "Four", "Five",
+  "Six", "Seven", "Eight", "Nine", "Ten",
+  [0] = "No more",
+  [-1] = "Lots more"
+}
+
+spell_out = To_Functable(spell_out, function(i) return i end)
+
+bottles = To_Functable({"Just one bottle of beer"},
+                       function(i)
+                         return spell_out(i) .. " bottles of beer"
+                       end)
+
+function line1(i)
+  return bottles(i) .. " on the wall, " .. bottles(i) .. "\n"
+end
+
+line2 = To_Functable({[0] = "Go to the store, Buy some more,\n"},
+                     function(i)
+                       return "Take one down and pass it around,\n"
+                     end)
+
+function line3(i)
+  return bottles(i) .. " on the wall.\n"
+end
+
+function song(n)
+  for i = n, 0, -1 do
+    io.write(line1(i), line2(i), line3(i - 1), "\n")
+  end
+end
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Functions with a single string parameter not using parentheses are not highlighted

+
foobar"param";
diff --git a/docs/_style/prism-master/examples/prism-makefile.html b/docs/_style/prism-master/examples/prism-makefile.html new file mode 100644 index 00000000..45f6f420 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-makefile.html @@ -0,0 +1,263 @@ +

Comments

+
# This is a comment
+include foo # This is another comment
+ +

Targets

+
kbd.o command.o files.o : command.h
+display.o insert.o search.o files.o : buffer.h
+
+.PHONY: clean
+clean:
+        rm *.o temp
+ +

Variables

+
objects = main.o kbd.o command.o display.o \
+          insert.o search.o files.o utils.o
+
+edit : $(objects)
+        cc -o edit $(objects)
+
+$(objects) : defs.h
+
+%oo: $$< $$^ $$+ $$*
+
+foo : bar/lose
+        cd $(@D) && gobble $(@F) > ../$@
+ +

Strings

+
STR = 'A string!'
+
+HELLO = 'hello \
+world'
+
+HELLO2 = "hello \
+world"
+ +

Directives

+
include foo *.mk $(bar)
+
+vpath %.c foo
+
+override define two-lines =
+foo
+$(bar)
+endef
+
+ifeq ($(CC),gcc)
+  libs=$(libs_for_gcc)
+else
+  libs=$(normal_libs)
+endif
+ +

Functions

+
whoami    := $(shell whoami)
+host-type := $(shell arch)
+
+y = $(subst 1,2,$(x))
+
+dirs := a b c d
+files := $(foreach dir,$(dirs),$(wildcard $(dir)/*))
+
+reverse = $(2) $(1)
+foo = $(call reverse,a,b)
+
+$(foreach prog,$(PROGRAMS),$(eval $(call PROGRAM_template,$(prog))))
+ +

Complete example

+
#!/usr/bin/make -f
+# Generated automatically from Makefile.in by configure.
+# Un*x Makefile for GNU tar program.
+# Copyright (C) 1991 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute
+# it and/or modify it under the terms of the GNU
+# General Public License …
+…
+…
+
+SHELL = /bin/sh
+
+#### Start of system configuration section. ####
+
+srcdir = .
+
+# If you use gcc, you should either run the
+# fixincludes script that comes with it or else use
+# gcc with the -traditional option.  Otherwise ioctl
+# calls will be compiled incorrectly on some systems.
+CC = gcc -O
+YACC = bison -y
+INSTALL = /usr/local/bin/install -c
+INSTALLDATA = /usr/local/bin/install -c -m 644
+
+# Things you might add to DEFS:
+# -DSTDC_HEADERS        If you have ANSI C headers and
+#                       libraries.
+# -DPOSIX               If you have POSIX.1 headers and
+#                       libraries.
+# -DBSD42               If you have sys/dir.h (unless
+#                       you use -DPOSIX), sys/file.h,
+#                       and st_blocks in `struct stat'.
+# -DUSG                 If you have System V/ANSI C
+#                       string and memory functions
+#                       and headers, sys/sysmacros.h,
+#                       fcntl.h, getcwd, no valloc,
+#                       and ndir.h (unless
+#                       you use -DDIRENT).
+# -DNO_MEMORY_H         If USG or STDC_HEADERS but do not
+#                       include memory.h.
+# -DDIRENT              If USG and you have dirent.h
+#                       instead of ndir.h.
+# -DSIGTYPE=int         If your signal handlers
+#                       return int, not void.
+# -DNO_MTIO             If you lack sys/mtio.h
+#                       (magtape ioctls).
+# -DNO_REMOTE           If you do not have a remote shell
+#                       or rexec.
+# -DUSE_REXEC           To use rexec for remote tape
+#                       operations instead of
+#                       forking rsh or remsh.
+# -DVPRINTF_MISSING     If you lack vprintf function
+#                       (but have _doprnt).
+# -DDOPRNT_MISSING      If you lack _doprnt function.
+#                       Also need to define
+#                       -DVPRINTF_MISSING.
+# -DFTIME_MISSING       If you lack ftime system call.
+# -DSTRSTR_MISSING      If you lack strstr function.
+# -DVALLOC_MISSING      If you lack valloc function.
+# -DMKDIR_MISSING       If you lack mkdir and
+#                       rmdir system calls.
+# -DRENAME_MISSING      If you lack rename system call.
+# -DFTRUNCATE_MISSING   If you lack ftruncate
+#                       system call.
+# -DV7                  On Version 7 Unix (not
+#                       tested in a long time).
+# -DEMUL_OPEN3          If you lack a 3-argument version
+#                       of open, and want to emulate it
+#                       with system calls you do have.
+# -DNO_OPEN3            If you lack the 3-argument open
+#                       and want to disable the tar -k
+#                       option instead of emulating open.
+# -DXENIX               If you have sys/inode.h
+#                       and need it 94 to be included.
+
+DEFS =  -DSIGTYPE=int -DDIRENT -DSTRSTR_MISSING \
+        -DVPRINTF_MISSING -DBSD42
+# Set this to rtapelib.o unless you defined NO_REMOTE,
+# in which case make it empty.
+RTAPELIB = rtapelib.o
+LIBS =
+DEF_AR_FILE = /dev/rmt8
+DEFBLOCKING = 20
+
+CDEBUG = -g
+CFLAGS = $(CDEBUG) -I. -I$(srcdir) $(DEFS) \
+        -DDEF_AR_FILE=\"$(DEF_AR_FILE)\" \
+        -DDEFBLOCKING=$(DEFBLOCKING)
+LDFLAGS = -g
+
+prefix = /usr/local
+# Prefix for each installed program,
+# normally empty or `g'.
+binprefix =
+
+# The directory to install tar in.
+bindir = $(prefix)/bin
+
+# The directory to install the info files in.
+infodir = $(prefix)/info
+
+#### End of system configuration section. ####
+
+SRCS_C  = tar.c create.c extract.c buffer.c   \
+          getoldopt.c update.c gnu.c mangle.c \
+          version.c list.c names.c diffarch.c \
+          port.c wildmat.c getopt.c getopt1.c \
+          regex.c
+SRCS_Y  = getdate.y
+SRCS    = $(SRCS_C) $(SRCS_Y)
+OBJS    = $(SRCS_C:.c=.o) $(SRCS_Y:.y=.o) $(RTAPELIB)
+
+AUX =   README COPYING ChangeLog Makefile.in  \
+        makefile.pc configure configure.in \
+        tar.texinfo tar.info* texinfo.tex \
+        tar.h port.h open3.h getopt.h regex.h \
+        rmt.h rmt.c rtapelib.c alloca.c \
+        msd_dir.h msd_dir.c tcexparg.c \
+        level-0 level-1 backup-specs testpad.c
+
+.PHONY: all
+all:    tar rmt tar.info
+
+tar:    $(OBJS)
+        $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
+
+rmt:    rmt.c
+        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ rmt.c
+
+tar.info: tar.texinfo
+        makeinfo tar.texinfo
+
+.PHONY: install
+install: all
+        $(INSTALL) tar $(bindir)/$(binprefix)tar
+        -test ! -f rmt || $(INSTALL) rmt /etc/rmt
+        $(INSTALLDATA) $(srcdir)/tar.info* $(infodir)
+
+$(OBJS): tar.h port.h testpad.h
+regex.o buffer.o tar.o: regex.h
+# getdate.y has 8 shift/reduce conflicts.
+
+testpad.h: testpad
+        ./testpad
+
+testpad: testpad.o
+        $(CC) -o $@ testpad.o
+
+TAGS:   $(SRCS)
+        etags $(SRCS)
+
+.PHONY: clean
+clean:
+        rm -f *.o tar rmt testpad testpad.h core
+
+.PHONY: distclean
+distclean: clean
+        rm -f TAGS Makefile config.status
+
+.PHONY: realclean
+realclean: distclean
+        rm -f tar.info*
+
+.PHONY: shar
+shar: $(SRCS) $(AUX)
+        shar $(SRCS) $(AUX) | compress \
+          > tar-`sed -e '/version_string/!d' \
+                     -e 's/[^0-9.]*\([0-9.]*\).*/\1/' \
+                     -e q
+                     version.c`.shar.Z
+
+.PHONY: dist
+dist: $(SRCS) $(AUX)
+        echo tar-`sed \
+             -e '/version_string/!d' \
+             -e 's/[^0-9.]*\([0-9.]*\).*/\1/' \
+             -e q
+             version.c` > .fname
+        -rm -rf `cat .fname`
+        mkdir `cat .fname`
+        ln $(SRCS) $(AUX) `cat .fname`
+        tar chZf `cat .fname`.tar.Z `cat .fname`
+        -rm -rf `cat .fname` .fname
+
+tar.zoo: $(SRCS) $(AUX)
+        -rm -rf tmp.dir
+        -mkdir tmp.dir
+        -rm tar.zoo
+        for X in $(SRCS) $(AUX) ; do \
+            echo $$X ; \
+            sed 's/$$/^M/' $$X \
+            > tmp.dir/$$X ; done
+        cd tmp.dir ; zoo aM ../tar.zoo *
+        -rm -rf tmp.dir
+
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-markdown.html b/docs/_style/prism-master/examples/prism-markdown.html new file mode 100644 index 00000000..a57eaeaf --- /dev/null +++ b/docs/_style/prism-master/examples/prism-markdown.html @@ -0,0 +1,86 @@ +

Titles

+
Title 1
+==
+
+Title 2
+-------
+
+# Title 1
+## Title 2
+### Title 3
+#### Title 4
+##### Title 5
+###### Title 6
+
+ +

Bold and italic

+
*Italic*
+**Bold on
+multiple lines**
+*Italic on
+multiple lines too*
+__It also works with underscores__
+_It also works with underscores_
+
+__An empty line
+
+is not allowed__
+
+ +

Links

+
[Prism](http://www.prismjs.com)
+[Prism](http://www.prismjs.com "Prism")
+
+[prism link]: http://www.prismjs.com (Prism)
+[Prism] [prism link]
+
+ +

Lists and quotes

+
* This is
+* an unordered list
+
+1. This is an
+2. ordered list
+
+* *List item in italic*
+* **List item in bold**
+* [List item as a link](http://example.com "This is an example")
+
+> This is a quotation
+>> With another quotation inside
+> _italic here_, __bold there__
+> And a [link](http://example.com)
+
+ +

Code

+
Inline code between backticks `<p>Paragraph</p>`
+
+    some_code(); /* Indented
+    with four spaces */
+
+	some_code(); /* Indented
+	with a tab */
+
+ +

Raw HTML

+
> This is a quotation
+> Containing <strong>raw HTML</strong>
+
+<p>*Italic text inside HTML tag*</p>
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Nesting of elements is not fully supported

+
_ **bold** inside italic DOESN'T work _
+__ but *italic* inside bold DOES work __
+
+[Link partially *italic* DOESN'T work](http://example.com)
+_ [But link inside italic DOES work](http://example.com) _
+
+[Link partially **bold** DOESN'T work](http://example.com)
+__ [But link inside bold DOES work](http://example.com) __
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-markup.html b/docs/_style/prism-master/examples/prism-markup.html new file mode 100644 index 00000000..ac00e7f6 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-markup.html @@ -0,0 +1,77 @@ +

Empty tag

+
<p></p>
+ +

Tag that spans multiple lines

+
<p
+>hello!
+</p>
+ +

Name-attribute pair

+
<p></p>
+ +

Name-attribute pair without quotes

+
<p class=prism></p>
+ +

Attribute without value

+
<p data-foo></p>
+<p data-foo ></p>
+
+ +

Namespaces

+
<html:p foo:bar="baz" foo:weee></html:p>
+ +

XML prolog

+
<?xml version="1.0" encoding="utf-8"?>
+<svg></svg>
+ +

DOCTYPE

+
<!DOCTYPE html>
+<html></html>
+ +

CDATA section

+
<ns1:description><![CDATA[
+  CDATA is <not> magical.
+]]></ns1:description>
+ +

Comment

+
<!-- I'm a comment -->
+And i'm not
+ +

Entities

+
&amp; &#x2665; &#160; &#x152;
+ +

Embedded JS and CSS

+
<!DOCTYPE html>
+<html lang="en">
+<head>
+	<meta charset="utf-8" />
+	<title>I can haz embedded CSS and JS</title>
+	<style>
+		@media print {
+			p { color: red !important; }
+		}
+	</style>
+</head>
+<body>
+	<h1>I can haz embedded CSS and JS</h1>
+	<script>
+	if (true) {
+		console.log('foo');
+	}
+	</script>
+
+</body>
+</html>
+ +

Invalid HTML

+
<l </ul>
+ +

Multi-line attribute values

+
<p title="foo
+bar
+baz">
+ +

XML tags with non-ASCII characters

+
<Läufer>foo</Läufer>
+<tag läufer="läufer">bar</tag>
+<läufer:tag>baz</läufer:tag>
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-matlab.html b/docs/_style/prism-master/examples/prism-matlab.html new file mode 100644 index 00000000..e78abe36 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-matlab.html @@ -0,0 +1,52 @@ +

Strings

+
myString = 'Hello, world';
+otherString = 'You''re right';
+ +

Comments

+
% Single line comment
+%{ Multi-line
+comment }%
+ +

Numbers

+
x = 325.499
+realmax + .0001e+308
+e = 1 - 3*(4/3 - 1)
+b = 1e-16 + 1 - 1e-16;
+x = 2 + 3i;
+z =
+   4.7842 -1.0921i   0.8648 -1.5931i   1.2616 -2.2753i
+   2.6130 -0.0941i   4.8987 -2.3898i   4.3787 -3.7538i
+   4.4007 -7.1512i   1.3572 -5.2915i   3.6865 -0.5182i
+
+ +

Control flow

+
if rem(a, 2) == 0
+    disp('a is even')
+    b = a/2;
+end
+switch dayString
+   case 'Monday'
+      disp('Start of the work week')
+   case 'Tuesday'
+      disp('Day 2')
+   case 'Wednesday'
+      disp('Day 3')
+   case 'Thursday'
+      disp('Day 4')
+   case 'Friday'
+      disp('Last day of the work week')
+   otherwise
+      disp('Weekend!')
+end
+n = 1;
+nFactorial = 1;
+while nFactorial < 1e100
+    n = n + 1;
+    nFactorial = nFactorial * n;
+end
+ +

Functions

+
q = integral(sqr,0,1);
+y = parabola(x)
+mygrid = @(x,y) ndgrid((-x:x/c:x),(-y:y/c:y));
+[x,y] = mygrid(pi,2*pi);
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-mel.html b/docs/_style/prism-master/examples/prism-mel.html new file mode 100644 index 00000000..e8879756 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-mel.html @@ -0,0 +1,137 @@ +

Comments

+
// This is a comment
+ +

Strings

+
"This is a string"
+"foo \"bar\" baz"
+ +

Numbers

+
42
+3.14159
+0xA2F
+ +

Variables

+
$x
+$floaty5000
+$longDescriptiveName
+$name_with_underscores
+$_line
+
+float $param;
+int $counter;
+string $name;
+vector $position;
+ +

Arrays, vectors and matrices

+
string $array[3] = {"first\n", "second\n", "third\n"};
+print($array[0]); // Prints "first\n"
+print($array[1]); // Prints "second\n"
+print($array[2]); // Prints "third\n"
+
+vector $roger = <<3.0, 7.7, 9.1>>;
+vector $more = <<4.5, 6.789, 9.12356>>;
+// Assign a vector to variable $test:
+vector $test = <<3.0, 7.7, 9.1>>;
+$test = <<$test.x, 5.5, $test.z>>
+// $test is now <<3.0, 5.5, 9.1>>
+
+matrix $a3[3][4] = <<2.5, 4.5, 3.25, 8.05;
+ 1.12, 1.3, 9.5, 5.2;
+ 7.23, 6.006, 2.34, 4.67>>
+ +

Commands

+
pickWalk -d down;
+string $mySelection[] = `ls -selection`;
+
+setAttr ($mySelection[0]+".particleRenderType") 5;
+
+addAttr -is true -ln "spriteTwist" -at "float" -min -180 -max 180 -dv 0.0 blue_nParticleShape;
+ +

Full example

+
// From http://help.autodesk.com/view/MAYAUL/2015/ENU/?guid=Example_scripts_Dynamics_Time_Playback
+// Alias Script File
+// MODIFY THIS AT YOUR OWN RISK
+//
+// Creation Date: 8 May 1996
+// Author: rh
+//
+// Description:
+// Playback from frame 0 to frame <n> and return the
+// 		the playback rate in frames/sec. If a negative frame
+// count is given, this indicates silent mode. In silent
+// mode, no output is printed.
+//
+// This version is intended for use in batch tests of dynamics.
+// It requests particle and rigid body positions every frame.
+//
+// RETURN
+// Frame rate in frames/sec
+//
+global proc float dynTimePlayback( float $frames )
+{
+ int $silent;
+ // Get the list of particle shapes.
+ //
+ string $particleObjects[] = `ls -type particle`;
+ int $particleCount = size( $particleObjects );
+ // Get the list of transforms.
+ // This will include rigid bodies.
+ //
+ string $transforms[] = `ls -tr`;
+ int $trCount = size( $transforms );
+ 	// Check for negative $frames. This indicates
+ // $silent mode.
+ //
+ if ($frames < 0)
+ {
+ $silent = 1;
+ $frames = -$frames;
+ }
+ else
+ {
+ $silent = 0;
+ }
+ // Setup the playback options.
+ //
+ playbackOptions -min 1 -max $frames -loop "once";
+ currentTime -edit 0;
+ // Playback the animation using the timerX command
+ // to compute the $elapsed time.
+ //
+ float $startTime, $elapsed;
+ $startTime = `timerX`;
+// play -wait;
+ int $i;
+ for ($i = 1; $i < $frames; $i++ )
+ {
+ // Set time
+ //
+ currentTime -e $i;
+ int $obj;
+ // Request count for every particle object.
+ //
+ for ($obj = 0; $obj < $particleCount; $obj++)
+ {
+			string $cmd = "getAttr " + $particleObjects[$obj]+".count";
+ eval( $cmd );
+ }
+ // Request position for every transform
+		// (includes every rigid body).
+ //
+ for ($obj = 0; $obj < $trCount; $obj++)
+ {
+ string $cmd = "getAttr " + $transforms[$obj]+".translate";
+ eval ($cmd);
+ }
+ }
+ $elapsed = `timerX -st $startTime`;
+ // Compute the playback frame $rate. Print results.
+ //
+ float $rate = ($elapsed == 0 ? 0.0 : $frames / $elapsed) ;
+ if ( ! $silent)
+ {
+ print( "Playback time: " + $elapsed + " secs\n" );
+ print( "Playback $rate: " + $rate + " $frames/sec\n" );
+ }
+ return ( $rate );
+} // timePlayback //
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-mizar.html b/docs/_style/prism-master/examples/prism-mizar.html new file mode 100644 index 00000000..98d626c0 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-mizar.html @@ -0,0 +1,45 @@ +

Full example

+ +
:: Example from http://webdocs.cs.ualberta.ca/~piotr/Mizar/Dagstuhl97/
+environ
+vocabulary SCM;
+constructors ARYTHM, PRE_FF, NAT_1, REAL_1;
+notation ARYTHM, PRE_FF, NAT_1;
+requirements ARYTHM;
+theorems REAL_1, PRE_FF, NAT_1, AXIOMS, CQC_THE1;
+schemes NAT_1;
+begin
+
+P: for k being Nat
+	st for n being Nat st n < k holds Fib (n+1) ≥ n
+		holds Fib (k+1) ≥ k
+proof let k be Nat; assume
+IH: for n being Nat st n < k holds Fib (n+1) ≥ n;
+	per cases;
+		suppose k ≤ 1; then k = 0 or k = 0+1 by CQC_THE1:2;
+			hence Fib (k+1) ≥ k by PRE_FF:1;
+		suppose 1 < k; then
+			1+1 ≤ k by NAT_1:38; then
+			consider m being Nat such that
+		A: k = 1+1+m by NAT_1:28;
+			thus Fib (k+1) ≥ k proof
+				per cases by NAT_1:19;
+				suppose S1: m = 0;
+					Fib (0+1+1+1) = Fib(0+1) + Fib(0+1+1) by PRE_FF:1
+					              = 1 + 1 by PRE_FF:1;
+					hence Fib (k+1) ≥ k by A, S1;
+				suppose m > 0; then
+					m+1 > 0+1 by REAL_1:59; then
+					m ≥ 1 by NAT_1:38; then
+				B: m+(m+1) ≥ m+1+1 by REAL_1:49;
+				C: k = m+1+1 by A, AXIOMS:13;
+				   m < m+1 & m+1 < m+1+1 by REAL_1:69; then
+				   m < k & m+1 < k by C, AXIOMS:22; then
+				D: Fib (m+1) ≥ m & Fib (m+1+1) ≥ m+1 by IH;
+				   Fib (m+1+1+1) = Fib (m+1) + Fib (m+1+1) by PRE_FF:1; then
+				   Fib (m+1+1+1) ≥ m+(m+1) by D, REAL_1:55;
+		hence Fib(k+1) ≥ k by C, B, AXIOMS:22;
+	end;
+end;
+
+for n being Nat holds Fib(n+1) ≥ n from Comp_Ind(P);
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-monkey.html b/docs/_style/prism-master/examples/prism-monkey.html new file mode 100644 index 00000000..6716a9a4 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-monkey.html @@ -0,0 +1,74 @@ +

Comments

+
' This is a comment
+
+#Rem            ' This is the start of a comment block
+Some comment    ' We are inside the comment block
+#End
+ +

Strings

+
"Hello World"
+"~qHello World~q"
+"~tIndented~n"
+ +

Numbers

+
0
+1234
+$3D0DEAD
+$CAFEBABE
+
+.0
+0.0
+.5
+0.5
+1.0
+1.5
+1.00001
+3.14159265
+ +

Variable types

+
Local myVariable:Bool = True
+Local myVariable? = True
+Local myVariable:Int = 1024
+Local myVariable% = 1024
+Local myVariable:Float = 3.141516
+Local myVariable# = 3.141516
+Local myVariable:String = "Hello world"
+Local myVariable$ = "Hello world"
+ +

Full example

+
Import mojo
+
+Class MyApp Extends App
+
+    Method OnCreate()
+
+        SetUpdateRate 60
+
+    End
+
+    Method OnRender()
+
+        Local date:=GetDate()
+
+        Local months:=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]
+
+        Local day:=("0"+date[2])[-2..]
+        Local month:=months[date[1]-1]
+        Local year:=date[0]
+        Local hour:=("0"+date[3])[-2..]
+        Local min:=("0"+date[4])[-2..]
+        Local sec:=("0"+date[5])[-2..] + "." + ("00"+date[6])[-3..]
+
+        Local now:=hour+":"+min+":"+sec+"  "+day+" "+month+" "+year
+
+        Cls
+        DrawText now,DeviceWidth/2,DeviceHeight/2,.5,.5
+    End
+
+End
+
+Function Main()
+
+    New MyApp
+
+End
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-n4js.html b/docs/_style/prism-master/examples/prism-n4js.html new file mode 100644 index 00000000..19e5a6d5 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-n4js.html @@ -0,0 +1,114 @@ +

Keywords

+

+class C {..}
+interface I {..}
+
+foo(c: C, i: I) {
+    c instanceof C; // ok
+    c instanceof I; // ok
+}
+
+ +

Annotations

+

+// Final Methods
+@Final
+private tasks = new Map<string,Task>();
+
+// Redefinition of Members
+@Override
+public async size(): int {
+  …
+}
+
+// Dependency Injection
+@Binder
+@Bind(Storage,StorageInMemory)
+class InMemoryBinder {}
+
+@GenerateInjector @UseBinder(InMemoryBinder)
+export public class TaskManagerTest {
+  …
+}
+
+ +

Full example

+

+// A Web User Interface in HTML
+// NOTE: requires full example project bundled with N4JS IDE to run.
+
+import { TaskManager } from "TaskManager";
+import {Application, Response } from "express";
+import express from "express";
+import { Todo } from "model";
+
+
+export class WebUI {
+
+     private app: Application;
+
+     @Inject
+     private manager: TaskManager;
+
+     public start() {
+
+          this.app = express();
+
+          this.app.get('/', async (req, res) => {
+               let page = await this.renderHomePage();
+               res.send(page);
+          });
+
+          this.app.get("/clear", async (req, res) => {
+               await this.manager.clear();
+               redirect(res, '/');
+          });
+
+          this.app.get("/create", async (req, res) => {
+               let values = req.query as ~Object with {type: string, label: string};
+               if (values && values.type === 'Todo' && values.label && values.label.length > 0) {
+                    await this.manager.createTodo(values.label);
+               }
+               redirect(res, '/');
+          });
+
+          this.app.listen(4000, '0.0.0.0', 511, function() {
+               console.log("HTML server listening on http://localhost:4000/");
+          });
+     }
+
+     protected async renderHomePage(): string {
+          let tasks = await this.manager.getTasks();
+          let todos = tasks.filter((task) => task instanceof Todo);
+          return `
+
+<html>
+<body>
+     Your to-do's:
+     <ul>
+     ${
+          todos.length === 0 ? '<li><em>none</em></li>\n'
+          : todos.map((task) =>
+               '<li>' + task.label + ' <small>(id: ' + task.id + ')</small></li>'
+          ).join('\n')
+     }
+     </ul>
+     <hr/>
+     <form action="/create" method="get">
+     <input type="hidden" name="type" value="Todo">
+     Label: <input type="text" name="label"><br>
+     <input type="submit" value="Create Todo">
+     </form>
+     <hr/>
+     <a href="/clear">[Clear All]</a>
+</body>
+</html>
+`;
+     }
+}
+
+function redirect(res: Response, url: string) {
+     res.header('Cache-Control', 'no-cache');
+     res.redirect(301, url);
+}
+
diff --git a/docs/_style/prism-master/examples/prism-nasm.html b/docs/_style/prism-master/examples/prism-nasm.html new file mode 100644 index 00000000..c1b7c926 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-nasm.html @@ -0,0 +1,74 @@ +

Comments

+
; This is a comment
+ +

Labels

+
label1:     ; a non-local label
+.local:     ; this is really label1.local
+..@foo:     ; this is a special symbol
+label2:     ; another non-local label
+.local:     ; this is really label2.local
+
+ +

Registers

+
st0
+st1
+ax
+rax
+zmm4
+ +

Strings

+

+mov eax,'abcd'
+
+db    'hello'               ; string constant
+db    'h','e','l','l','o'   ; equivalent character constants
+dd    'ninechars'           ; doubleword string constant
+dd    'nine','char','s'     ; becomes three doublewords
+db    'ninechars',0,0,0     ; and really looks like this
+
+db `\u263a`            ; UTF-8 smiley face
+db `\xe2\x98\xba`      ; UTF-8 smiley face
+db 0E2h, 098h, 0BAh    ; UTF-8 smiley face
+
+ +

Numbers

+
mov     ax,200          ; decimal
+mov     ax,0200         ; still decimal
+mov     ax,0200d        ; explicitly decimal
+mov     ax,0d200        ; also decimal
+mov     ax,0c8h         ; hex
+mov     ax,$0c8         ; hex again: the 0 is required
+mov     ax,0xc8         ; hex yet again
+mov     ax,0hc8         ; still hex
+mov     ax,310q         ; octal
+mov     ax,310o         ; octal again
+mov     ax,0o310        ; octal yet again
+mov     ax,0q310        ; octal yet again
+mov     ax,11001000b    ; binary
+
+db    -0.2                    ; "Quarter precision"
+dw    -0.5                    ; IEEE 754r/SSE5 half precision
+dd    1.2                     ; an easy one
+dd    0x1p+2                  ; 1.0x2^2 = 4.0
+dq    0x1p+32                 ; 1.0x2^32 = 4 294 967 296.0
+dq    1.e10                   ; 10 000 000 000.0
+dq    1.e+10                  ; synonymous with 1.e10
+dq    1.e-10                  ; 0.000 000 000 1
+dt    3.141592653589793238462 ; pi
+do    1.e+4000                ; IEEE 754r quad precision
+
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Numbers with underscores

+
mov     ax,1100_1000b
+mov     ax,1100_1000y
+mov     ax,0b1100_1000
+mov     ax,0y1100_1000
+
+dd    1.222_222_222
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-nginx.html b/docs/_style/prism-master/examples/prism-nginx.html new file mode 100644 index 00000000..49d14664 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-nginx.html @@ -0,0 +1,25 @@ +

Comments

+
# This is a comment
+ +

Variables

+
fastcgi_param SERVER_NAME $server_name;
+ +

Server Block

+

+server { # simple reverse-proxy
+  listen       80;
+  server_name  domain2.com www.domain2.com;
+  access_log   logs/domain2.access.log  main;
+  
+  # serve static files
+  
+  location ~ ^/(images|javascript|js|css|flash|media|static)/  {
+    root    /var/www/virtual/big.server.com/htdocs;
+    expires 30d;
+  }
+
+  # pass requests for dynamic content to rails/turbogears/zope, et al
+  location / {
+    proxy_pass      http://127.0.0.1:8080;
+  }
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-nim.html b/docs/_style/prism-master/examples/prism-nim.html new file mode 100644 index 00000000..c6611259 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-nim.html @@ -0,0 +1,222 @@ +

Comments

+
# This is a comment
+ +

Strings

+
"This is a string."
+"This is a string with \"quotes\" in it."
+"""This is
+a "multi-line"
+string."""
+""""A long string within quotes.""""
+R"This is a raw string."
+r"Some ""quotes"" inside a raw string."
+r"""Raw strings
+can also be multi-line."""
+foo"This is a generalized raw string literal."
+bar"""This is also
+a generalized raw string literal."""
+ +

Characters

+
'a'
+'\''
+'\t'
+'\15'
+'\xFC'
+ +

Numbers

+
42
+0xaf
+0xf_2_c
+0o07
+0b1111_0000
+0B0_10001110100_0000101001000111101011101111111011000101001101001001'f64
+9_000'u
+32.
+32.1f32
+32.e-5
+32.2e+2
+2'i16
+2i16
+0xfe'f32
+ +

Full example

+
# Example from http://nim-by-example.github.io/oop_macro/
+import macros
+
+macro class*(head: expr, body: stmt): stmt {.immediate.} =
+  # The macro is immediate so that it doesn't
+  # resolve identifiers passed to it
+
+  var typeName, baseName: NimNode
+
+  if head.kind == nnkIdent:
+    # `head` is expression `typeName`
+    # echo head.treeRepr
+    # --------------------
+    # Ident !"Animal"
+    typeName = head
+
+  elif head.kind == nnkInfix and $head[0] == "of":
+    # `head` is expression `typeName of baseClass`
+    # echo head.treeRepr
+    # --------------------
+    # Infix
+    #   Ident !"of"
+    #   Ident !"Animal"
+    #   Ident !"RootObj"
+    typeName = head[1]
+    baseName = head[2]
+
+  else:
+    quit "Invalid node: " & head.lispRepr
+
+  # echo treeRepr(body)
+  # --------------------
+  # StmtList
+  #   VarSection
+  #     IdentDefs
+  #       Ident !"name"
+  #       Ident !"string"
+  #       Empty
+  #     IdentDefs
+  #       Ident !"age"
+  #       Ident !"int"
+  #       Empty
+  #   MethodDef
+  #     Ident !"vocalize"
+  #     Empty
+  #     Empty
+  #     FormalParams
+  #       Ident !"string"
+  #     Empty
+  #     Empty
+  #     StmtList
+  #       StrLit ...
+  #   MethodDef
+  #     Ident !"age_human_yrs"
+  #     Empty
+  #     Empty
+  #     FormalParams
+  #       Ident !"int"
+  #     Empty
+  #     Empty
+  #     StmtList
+  #       DotExpr
+  #         Ident !"this"
+  #         Ident !"age"
+
+  # create a new stmtList for the result
+  result = newStmtList()
+
+  # var declarations will be turned into object fields
+  var recList = newNimNode(nnkRecList)
+
+  # Iterate over the statements, adding `this: T`
+  # to the parameters of functions
+  for node in body.children:
+    case node.kind:
+
+      of nnkMethodDef, nnkProcDef:
+        # inject `this: T` into the arguments
+        let p = copyNimTree(node.params)
+        p.insert(1, newIdentDefs(ident"this", typeName))
+        node.params = p
+        result.add(node)
+
+      of nnkVarSection:
+        # variables get turned into fields of the type.
+        for n in node.children:
+          recList.add(n)
+
+      else:
+        result.add(node)
+
+  # The following prints out the AST structure:
+  #
+  # import macros
+  # dumptree:
+  #   type X = ref object of Y
+  #     z: int
+  # --------------------
+  # TypeSection
+  #   TypeDef
+  #     Ident !"X"
+  #     Empty
+  #     RefTy
+  #       ObjectTy
+  #         Empty
+  #         OfInherit
+  #           Ident !"Y"
+  #         RecList
+  #           IdentDefs
+  #             Ident !"z"
+  #             Ident !"int"
+  #             Empty
+
+  result.insert(0,
+    if baseName == nil:
+      quote do:
+        type `typeName` = ref object of RootObj
+    else:
+      quote do:
+        type `typeName` = ref object of `baseName`
+  )
+  # Inspect the tree structure:
+  #
+  # echo result.treeRepr
+  # --------------------
+  # StmtList
+  #   StmtList
+  #     TypeSection
+  #       TypeDef
+  #         Ident !"Animal"
+  #         Empty
+  #         RefTy
+  #           ObjectTy
+  #             Empty
+  #             OfInherit
+  #               Ident !"RootObj"
+  #             Empty   <= We want to replace this
+  #   MethodDef
+  #   ...
+
+  result[0][0][0][2][0][2] = recList
+
+  # Lets inspect the human-readable version of the output
+  # echo repr(result)
+  # Output:
+  #  type
+  #    Animal = ref object of RootObj
+  #      name: string
+  #      age: int
+  #
+  #  method vocalize(this: Animal): string =
+  #    "..."
+  #
+  #  method age_human_yrs(this: Animal): int =
+  #    this.age
+
+# ---
+
+class Animal of RootObj:
+  var name: string
+  var age: int
+  method vocalize: string = "..."
+  method age_human_yrs: int = this.age # `this` is injected
+
+class Dog of Animal:
+  method vocalize: string = "woof"
+  method age_human_yrs: int = this.age * 7
+
+class Cat of Animal:
+  method vocalize: string = "meow"
+
+# ---
+
+var animals: seq[Animal] = @[]
+animals.add(Dog(name: "Sparky", age: 10))
+animals.add(Cat(name: "Mitten", age: 10))
+
+for a in animals:
+  echo a.vocalize()
+  echo a.age_human_yrs()
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-nix.html b/docs/_style/prism-master/examples/prism-nix.html new file mode 100644 index 00000000..90157769 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-nix.html @@ -0,0 +1,46 @@ +

Comments

+
#
+# Single line comment
+/* Multi-line
+comment */
+ +

String

+
""
+"foo\"bar"
+"foo
+bar"
+
+''''
+''foo'''bar''
+''
+foo
+bar
+''
+ +

String interpolation

+
"foo${42}bar"
+"foo\${42}bar" # This is not interpolated
+''foo${42}bar''
+''foo''${42}bar'' # This is not interpolated
+ +

URLs and paths

+
ftp://ftp.nluug.nl/pub/gnu/hello/hello-2.1.1.tar.gz
+http://example.org/foo.tar.bz2
+/bin/sh
+./builder.sh
+~/foo.bar
+ +

Integers, booleans and null

+
0
+42
+
+true
+false
+
+null
+ +

Builtin functions

+
name = baseNameOf (toString url);
+imap =
+	if builtins ? genList then
+		f: list: genList (n: f (n + 1) (elemAt list n)) (length list)
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-nsis.html b/docs/_style/prism-master/examples/prism-nsis.html new file mode 100644 index 00000000..193791bb --- /dev/null +++ b/docs/_style/prism-master/examples/prism-nsis.html @@ -0,0 +1,18 @@ +

Comments

+
; Single line comment
+# Single line comment
+/* Multi-line
+comment */
+ +

Strings

+
"foo \"bar\" baz"
+'foo \'bar\' baz'
+ +

Variables

+
LicenseLangString myLicenseData ${LANG_ENGLISH} "bigtest.nsi"
+LicenseData $(myLicenseData)
+StrCmp $LANGUAGE ${LANG_ENGLISH} 0 +2
+ +

Compiler commands

+
!define VERSION "1.0.3"
+!insertmacro MyFunc ""
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-objectivec.html b/docs/_style/prism-master/examples/prism-objectivec.html new file mode 100644 index 00000000..025a8d71 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-objectivec.html @@ -0,0 +1,44 @@ +

Full example

+
#import <UIKit/UIKit.h>
+#import "Dependency.h"
+
+@protocol WorldDataSource
+@optional
+- (NSString*)worldName;
+@required
+- (BOOL)allowsToLive;
+@end
+
+@interface Test : NSObject <HelloDelegate, WorldDataSource> {
+  NSString *_greeting;
+}
+
+@property (nonatomic, readonly) NSString *greeting;
+- (IBAction) show;
+@end
+
+@implementation Test
+
+@synthesize test=_test;
+
++ (id) test {
+  return [self testWithGreeting:@"Hello, world!\nFoo bar!"];
+}
+
++ (id) testWithGreeting:(NSString*)greeting {
+  return [[[self alloc] initWithGreeting:greeting] autorelease];
+}
+
+- (id) initWithGreeting:(NSString*)greeting {
+  if ( (self = [super init]) ) {
+    _greeting = [greeting retain];
+  }
+  return self;
+}
+
+- (void) dealloc {
+  [_greeting release];
+  [super dealloc];
+}
+
+@end
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-ocaml.html b/docs/_style/prism-master/examples/prism-ocaml.html new file mode 100644 index 00000000..0534b1d1 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-ocaml.html @@ -0,0 +1,59 @@ +

Comments

+
(* Simple comment *)
+(* Multi-line
+comment *)
+ +

Numbers

+
42
+3.14159
+42.
+2.4E+2
+10_452_102
+0xf4 0xff_10_41
+0o427
+0b1100_1111_0000
+ +

Strings and characters

+
"Simple string."
+"String with \"quotes\" in it."
+'c' `c`
+'\'' `\``
+'\123' `\123`
+'\xf4'
+ +

Full example

+
module Make_interval(Endpoint : Comparable) = struct
+
+    type t = | Interval of Endpoint.t * Endpoint.t
+             | Empty
+
+    (** [create low high] creates a new interval from [low] to
+        [high].  If [low > high], then the interval is empty *)
+    let create low high =
+      if Endpoint.compare low high > 0 then Empty
+      else Interval (low,high)
+
+    (** Returns true iff the interval is empty *)
+    let is_empty = function
+      | Empty -> true
+      | Interval _ -> false
+
+    (** [contains t x] returns true iff [x] is contained in the
+        interval [t] *)
+    let contains t x =
+      match t with
+      | Empty -> false
+      | Interval (l,h) ->
+        Endpoint.compare x l >= 0 && Endpoint.compare x h <= 0
+
+    (** [intersect t1 t2] returns the intersection of the two input
+        intervals *)
+    let intersect t1 t2 =
+      let min x y = if Endpoint.compare x y <= 0 then x else y in
+      let max x y = if Endpoint.compare x y >= 0 then x else y in
+      match t1,t2 with
+      | Empty, _ | _, Empty -> Empty
+      | Interval (l1,h1), Interval (l2,h2) ->
+        create (max l1 l2) (min h1 h2)
+
+  end ;;
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-opencl.html b/docs/_style/prism-master/examples/prism-opencl.html new file mode 100644 index 00000000..f901230b --- /dev/null +++ b/docs/_style/prism-master/examples/prism-opencl.html @@ -0,0 +1,83 @@ +

+ To use this language, use the class "language-opencl" for OpenCL kernel code. + Host code is automatically highlighted in "language-c" + respectively "language-cpp" classes. +

+ +

OpenCL host code

+
// OpenCL functions, constants, etc. are also highlighted in OpenCL host code in the c or cpp language
+cl::Event KernelFilterImages::runSingle(const cl::Image2D& imgSrc, SPImage2D& imgDst)
+{
+	const size_t rows = imgSrc.getImageInfo();
+	const size_t cols = imgSrc.getImageInfo();
+
+	ASSERT(rows > 0 && cols > 0, "The image object seems to be invalid, no rows/cols set");
+	ASSERT(imgSrc.getImageInfo().image_channel_data_type == CL_FLOAT, "Only float type images are supported");
+	ASSERT(imgSrc.getInfo() == CL_MEM_READ_ONLY || imgSrc.getInfo() == CL_MEM_READ_WRITE, "Can't read the input image");
+
+	imgDst = std::make_shared(*context, CL_MEM_READ_WRITE, cl::ImageFormat(CL_R, CL_FLOAT), cols, rows);
+
+	cl::Kernel kernel(*program, "filter_single");
+	kernel.setArg(0, imgSrc);
+	kernel.setArg(1, *imgDst);
+	kernel.setArg(2, bufferKernel1);
+	kernel.setArg(3, kernel1.rows);
+	kernel.setArg(4, kernel1.rows / 2);
+	kernel.setArg(5, kernel1.cols);
+	kernel.setArg(6, kernel1.cols / 2);
+	kernel.setArg(7, border);
+
+	cl::Event eventFilter;
+	const cl::NDRange global(cols, rows);
+	queue->enqueueNDRangeKernel(kernel, cl::NullRange, global, cl::NullRange, &events, &eventFilter);
+}
+ +

OpenCL kernel code

+
// CLK_ADDRESS_CLAMP_TO_EDGE = aaa|abcd|ddd
+constant sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST;
+typedef float type_single;
+
+type_single filter_sum_single_3x3(read_only image2d_t imgIn,
+                                  constant float* filterKernel,
+                                  const int2 coordBase,
+                                  const int border)
+{
+    type_single sum = (type_single)(0.0f);
+    const int rows = get_image_height(imgIn);
+    const int cols = get_image_width(imgIn);
+    int2 coordCurrent;
+    int2 coordBorder;
+    float color;
+
+    // Image patch is row-wise accessed
+    // Filter kernel is centred in the middle
+    #pragma unroll
+    for (int y = -ROWS_HALF_3x3; y <= ROWS_HALF_3x3; ++y)       // Start at the top left corner of the filter
+    {
+        coordCurrent.y = coordBase.y + y;
+        #pragma unroll
+        for (int x = -COLS_HALF_3x3; x <= COLS_HALF_3x3; ++x)   // And end at the bottom right corner
+        {
+            coordCurrent.x = coordBase.x + x;
+            coordBorder = borderCoordinate(coordCurrent, rows, cols, border);
+            color = read_imagef(imgIn, sampler, coordBorder).x;
+
+            const int idx = (y + ROWS_HALF_3x3) * COLS_3x3 + x + COLS_HALF_3x3;
+            sum += color * filterKernel[idx];
+        }
+    }
+
+    return sum;
+}
+
+kernel void filter_single_3x3(read_only image2d_t imgIn,
+                              write_only image2d_t imgOut,
+                              constant float* filterKernel,
+                              const int border)
+{
+    int2 coordBase = (int2)(get_global_id(0), get_global_id(1));
+
+    type_single sum = filter_sum_single_3x3(imgIn, filterKernel, coordBase, border);
+
+    write_imagef(imgOut, coordBase, sum);
+}
diff --git a/docs/_style/prism-master/examples/prism-oz.html b/docs/_style/prism-master/examples/prism-oz.html new file mode 100644 index 00000000..d70ec2ed --- /dev/null +++ b/docs/_style/prism-master/examples/prism-oz.html @@ -0,0 +1,89 @@ +

Comments

+
%
+% Foobar
+
+/* Foo
+bar */
+ +

Strings

+
""
+"Foo \"bar\" baz"
+ +

Numbers

+
0
+42
+0154
+0xBadFace
+0B0101
+3.14159
+2e8
+3.E~7
+4.8E12
+&0
+&a
+&\n
+&\124
+ +

Functions and procedures

+
proc {Max X Y Z}
+{Browse Z}
+f(M Y)
+ +

Full example

+
proc {DisMember X Ys}
+   dis Ys = X|_ [] Yr in Ys = _|Yr {DisMember X Yr} end
+end
+
+class DataBase from BaseObject
+   attr d
+   meth init
+      d := {NewDictionary}
+   end
+   meth dic($) @d end
+   meth tell(I)
+      case {IsFree I.1} then
+         raise database(nonground(I)) end
+      else
+         Is = {Dictionary.condGet @d I.1 nil} in
+         {Dictionary.put @d I.1 {Append Is [I]}}
+      end
+   end
+   meth ask(I)
+      case {IsFree I} orelse {IsFree I.1} then
+         {DisMember I {Flatten {Dictionary.items @d}}}
+      else
+         {DisMember I {Dictionary.condGet @d I.1 nil}}
+      end
+   end
+   meth entries($)
+      {Dictionary.entries @d}
+   end
+end
+
+declare
+proc {Dynamic ?Pred}
+   Pred = {New DataBase init}
+end
+proc {Assert P I}
+   {P tell(I)}
+end
+proc {Query P I}
+   {P ask(I)}
+end
+
+EdgeP = {Dynamic}
+{ForAll
+[edge(1 2)
+ edge(2 1)   % Cycle
+ edge(2 3)
+ edge(3 4)
+ edge(2 5)
+ edge(5 6)
+ edge(4 6)
+ edge(6 7)
+ edge(6 8)
+ edge(1 5)
+ edge(5 1)  % Cycle
+]
+proc {$ I} {Assert EdgeP I} end
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-parigp.html b/docs/_style/prism-master/examples/prism-parigp.html new file mode 100644 index 00000000..029302bc --- /dev/null +++ b/docs/_style/prism-master/examples/prism-parigp.html @@ -0,0 +1,20 @@ +

Comments

+
\\ Single line comment
+/* Multi line
+comment */
+ +

Strings

+
""
+"Foo \"bar\" baz"
+ +

Numbers

+
0.
+42
+3 . 14 15 9
+5.2 E +12
+.89
+ +

Ignored whitespaces

+
p r i n t ("hello")
+if err(1/i, E, print (E))
+a + = b \ / c
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-parser.html b/docs/_style/prism-master/examples/prism-parser.html new file mode 100644 index 00000000..4b4e9c0d --- /dev/null +++ b/docs/_style/prism-master/examples/prism-parser.html @@ -0,0 +1,88 @@ +

Comments

+
$foo[bar] # Some comment
+ +

Variables and functions

+
@navigation[]
+$sections[^table::load[sections.cfg]]
+$sections.uri
+ +

Literals

+
$foo(3+$bar)
+^switch[$sMode]{
+	^case[def]{$result(true)}
+}
+^if(in "/news/"){}
+ +

Escape sequences

+
^^
+^"
+^;
+ +

Embedded in markup

+
<nav>
+	<ul>
+	^sections.menu{
+		<li>
+			<a href="$sections.uri">$sections.name</a>
+		</li>
+	}
+	</ul>
+</nav>
+ +

Full example

+
@CLASS
+MyTable
+
+@create[uParam]
+^switch[$uParam.CLASS_NAME]{
+   ^case[string;void]{$t[^table::create{$uParam}]}
+   ^case[table;MyTable]{$t[^table::create[$uParam]]}
+   ^case[DEFAULT]{^throw[MyTable;Unsupported type $uParam.CLASS_NAME]}
+}
+
+# method will return value in different calling contexts
+@GET[sMode]
+^switch[$sMode]{
+   ^case[table]{$result[$t]}
+   ^case[bool]{$result($t!=0)}
+   ^case[def]{$result(true)}
+   ^case[expression;double]{$result($t)}
+   ^case[DEFAULT]{^throw[MyTable;Unsupported mode '$sMode']}
+}
+
+
+# method will handle access to the "columns"
+@GET_DEFAULT[sName]
+$result[$t.$sName]
+
+
+# wrappers for all existing methods are required
+@count[]
+^t.count[]
+
+@menu[jCode;sSeparator]
+^t.menu{$jCode}[$sSeparator]
+
+
+# new functionality
+@remove[iOffset;iLimit]
+$iLimit(^iLimit.int(0))
+$t[^t.select(^t.offset[]<$iOffset || ^t.offset[]>=$iOffset+$iLimit)]
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Code block starting with a comment

+
# Doesn't work
+# Does work
+
 # Does work when prefixed with a space
+ +

Comments inside expressions break literals and operators

+
^if(
+    $age>=4  # not too young
+    && $age<=80  # and not too old
+)
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-pascal.html b/docs/_style/prism-master/examples/prism-pascal.html new file mode 100644 index 00000000..dfea11a6 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-pascal.html @@ -0,0 +1,65 @@ +

Comments

+
(* This is an
+old style comment *)
+{ This is a
+Turbo Pascal comment }
+// This is a Delphi comment.
+ +

Strings and characters

+
'This is a pascal string'
+''
+'a'
+^G
+#7
+#$f4
+'A tabulator character: '#9' is easy to embed'
+ +

Numbers

+
123
+123.456
+132.456e-789
+132.456e+789
+$7aff
+&17
+%11110101
+ +

Full example

+
Type
+    Str25    = String[25];
+    TBookRec = Record
+                Title, Author,
+                ISBN  : Str25;
+                Price : Real;
+               End;
+
+Procedure EnterNewBook(var newBook : TBookRec);
+Begin
+ Writeln('Please enter the book details: ');
+ Write('Book Name: ');
+ Readln(newBook.Title);
+ Write('Author: ');
+ Readln(newBook.Author);
+ Write('ISBN: ');
+ Readln(newBook.ISBN);
+ Write('Price: ');
+ Readln(newBook.Price);
+End;
+
+Var
+    bookRecArray : Array[1..10] of TBookRec;
+    i            : 1..10;
+
+Begin
+ For i := 1 to 10 do
+  EnterNewBook(bookRecArray[i]);
+ Writeln('Thanks for entering the book details');
+ Write('Now choose a record to display from 1 to 10: ');
+ Readln(i);
+ Writeln('Here are the book details of record #',i,':');
+ Writeln;
+ Writeln('Title:  ', bookRecArray[i].Title);
+ Writeln('Author: ', bookRecArray[i].Author);
+ Writeln('ISBN:   ', bookRecArray[i].ISBN);
+ Writeln('Price:  ', bookRecArray[i].Price);
+ Readln;
+End.
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-perl.html b/docs/_style/prism-master/examples/prism-perl.html new file mode 100644 index 00000000..85c36815 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-perl.html @@ -0,0 +1,71 @@ +

Comments

+
# Single line comment
+=head1 Here There
+	Be Pods!
+=cut
+ +

Strings

+
q/foo bar baz/;
+q awhy not ?a;
+qw(foo bar baz) q{foo bar baz}
+q[foo bar baz] qq<foo bar baz>
+"foo bar baz" 'foo bar baz' `foo bar baz`
+ +

Regex

+
m/foo/ s/foo/bar/
+m zfooz s zfoozbarz
+qr(foo) m{foo} s(foo)(bar) s{foo}{bar}
+m[foo] m<foo> tr[foo][bar] s<foo><bar>
+/foo/i
+
+ +

Variables

+
${^POSTMATCH}
+$^V
+$element_count = scalar(@whatever);
+keys(%users) = 1000;
+$1, $_, %!;
+ +

Numbers

+
12345
+12345.67
+.23E-10 # a very small number
+3.14_15_92 # a very important number
+4_294_967_296 # underscore for legibility
+0xff # hex
+0xdead_beef # more hex
+0377 # octal (only numbers, begins with 0)
+0b011011 # binary
+ +

Full example

+
sub read_config_file {
+  my ($class, $filename) = @_;
+
+  unless (defined $filename) {
+    my $home  = File::HomeDir->my_home || '.';
+    $filename = File::Spec->catfile($home, '.pause');
+
+    return {} unless -e $filename and -r _;
+  }
+
+  my %conf;
+  if ( eval { require Config::Identity } ) {
+    %conf = Config::Identity->load($filename);
+    $conf{user} = delete $conf{username} unless $conf{user};
+  }
+  else { # Process .pause manually
+    open my $pauserc, '<', $filename
+      or die "can't open $filename for reading: $!";
+
+    while (<$pauserc>) {
+      chomp;
+      next unless $_ and $_ !~ /^\s*#/;
+
+      my ($k, $v) = /^\s*(\w+)\s+(.+)$/;
+      Carp::croak "multiple enties for $k" if $conf{$k};
+      $conf{$k} = $v;
+    }
+  }
+
+  return \%conf;
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-php.html b/docs/_style/prism-master/examples/prism-php.html new file mode 100644 index 00000000..1a25589c --- /dev/null +++ b/docs/_style/prism-master/examples/prism-php.html @@ -0,0 +1,67 @@ +

Comments

+
// Single line comment
+/* Multi-line
+comment */
+# Shell-like comment
+ +

Strings

+
'foo \'bar\' baz'
+"foo \"bar\" baz"
+"a string # containing an hash"
+$foo = <<<FOO
+    Heredoc strings are supported too!
+FOO;
+$bar = <<<'BAR'
+    And also Nowdoc strings
+BAR;
+ +

Variables

+
$some_var = 5;
+$otherVar = "Some text";
+$null = null;
+$false = false;
+ +

Functions

+
$json = json_encode($my_object);
+$array1 = array("a" => "green", "red", "blue", "red");
+$array2 = array("b" => "green", "yellow", "red");
+$result = array_diff($array1, $array2);
+ +

Constants

+
define('MAXSIZE', 42);
+echo MAXSIZE;
+json_decode($json, false, 512, JSON_BIGINT_AS_STRING)
+ +

PHP 5.3+ support

+
namespace my\name;
+$c = new \my\name\MyClass;
+$arr = [1,2,3];
+trait ezcReflectionReturnInfo {
+    function getReturnType() { /*1*/ }
+    function getReturnDescription() { /*2*/ }
+}
+function gen_one_to_three() {
+    for ($i = 1; $i <= 3; $i++) {
+        // Note that $i is preserved between yields.
+        yield $i;
+    }
+}
+ +

PHP embedded in HTML

+
<div class="<?php echo $a ? 'foo' : 'bar'; ?>">
+<?php if($var < 42) {
+    echo "Something";
+} else {
+    echo "Something else";
+} ?>
+</div>
+ +

String interpolation

+
$str = "This is $great!";
+$foobar = "Another example: {${$foo->bar()}}";
+$a = <<<FOO
+    Hello $world!
+FOO;
+$b = <<<"FOOBAR"
+    Interpolation inside Heredoc strings {$obj->values[3]->name}
+FOOBAR;
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-plsql.html b/docs/_style/prism-master/examples/prism-plsql.html new file mode 100644 index 00000000..2212b14e --- /dev/null +++ b/docs/_style/prism-master/examples/prism-plsql.html @@ -0,0 +1,40 @@ +

Comments

+
-- Single line comment
+/* Multi-line
+comment */
+ +

Operators

+
l_message  := 'Hello ' || place_in;
+ +

Keywords

+
CREATE OR REPLACE PROCEDURE
+hello_place (place_in IN VARCHAR2)
+IS
+  l_message  VARCHAR2 (100);
+BEGIN
+  l_message  := 'Hello ' || place_in;
+  DBMS_OUTPUT.put_line (l_message);
+END hello_place;
+
+DECLARE
+  l_dept_id
+  employees.department_id%TYPE := 10;
+BEGIN
+  DELETE FROM employees
+       WHERE department_id = l_dept_id;
+
+  DBMS_OUTPUT.put_line (SQL%ROWCOUNT);
+END;
+
+DECLARE
+  l_message   VARCHAR2 (100) := 'Hello';
+  l_message2  VARCHAR2 (100) := ' World!';
+BEGIN
+  IF SYSDATE >= TO_DATE ('01-JAN-2011')
+  THEN
+    l_message2 := l_message || l_message2;
+    DBMS_OUTPUT.put_line (l_message2);
+  ELSE
+    DBMS_OUTPUT.put_line (l_message);
+  END IF;
+END;
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-powershell.html b/docs/_style/prism-master/examples/prism-powershell.html new file mode 100644 index 00000000..e5dba2e0 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-powershell.html @@ -0,0 +1,19 @@ +

Comments

+
# This is a comment
+<# This is a
+multi-line comment #>
+ +

Variable Interpolation

+
$Name = "Alice"
+Write-Host "Hello, my name is $Name."
+ +

Full Example

+
Function SayHello([string]$name) {
+    Write-Host "Hello, $name."
+}
+$Names = @("Bob", "Alice")
+
+$Names | ForEach {
+    SayHello $_
+}
+
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-processing.html b/docs/_style/prism-master/examples/prism-processing.html new file mode 100644 index 00000000..3c74ba3b --- /dev/null +++ b/docs/_style/prism-master/examples/prism-processing.html @@ -0,0 +1,173 @@ +

Full example

+
// Processing implementation of Game of Life by Joan Soler-Adillon
+// from https://processing.org/examples/gameoflife.html
+
+// Size of cells
+int cellSize = 5;
+
+// How likely for a cell to be alive at start (in percentage)
+float probabilityOfAliveAtStart = 15;
+
+// Variables for timer
+int interval = 100;
+int lastRecordedTime = 0;
+
+// Colors for active/inactive cells
+color alive = color(0, 200, 0);
+color dead = color(0);
+
+// Array of cells
+int[][] cells; 
+// Buffer to record the state of the cells and use this while changing the others in the interations
+int[][] cellsBuffer; 
+
+// Pause
+boolean pause = false;
+
+void setup() {
+  size (640, 360);
+
+  // Instantiate arrays 
+  cells = new int[width/cellSize][height/cellSize];
+  cellsBuffer = new int[width/cellSize][height/cellSize];
+
+  // This stroke will draw the background grid
+  stroke(48);
+
+  noSmooth();
+
+  // Initialization of cells
+  for (int x=0; x<width/cellSize; x++) {
+    for (int y=0; y<height/cellSize; y++) {
+      float state = random (100);
+      if (state > probabilityOfAliveAtStart) { 
+        state = 0;
+      }
+      else {
+        state = 1;
+      }
+      cells[x][y] = int(state); // Save state of each cell
+    }
+  }
+  background(0); // Fill in black in case cells don't cover all the windows
+}
+
+
+void draw() {
+
+  //Draw grid
+  for (int x=0; x<width/cellSize; x++) {
+    for (int y=0; y<height/cellSize; y++) {
+      if (cells[x][y]==1) {
+        fill(alive); // If alive
+      }
+      else {
+        fill(dead); // If dead
+      }
+      rect (x*cellSize, y*cellSize, cellSize, cellSize);
+    }
+  }
+  // Iterate if timer ticks
+  if (millis()-lastRecordedTime>interval) {
+    if (!pause) {
+      iteration();
+      lastRecordedTime = millis();
+    }
+  }
+
+  // Create  new cells manually on pause
+  if (pause && mousePressed) {
+    // Map and avoid out of bound errors
+    int xCellOver = int(map(mouseX, 0, width, 0, width/cellSize));
+    xCellOver = constrain(xCellOver, 0, width/cellSize-1);
+    int yCellOver = int(map(mouseY, 0, height, 0, height/cellSize));
+    yCellOver = constrain(yCellOver, 0, height/cellSize-1);
+
+    // Check against cells in buffer
+    if (cellsBuffer[xCellOver][yCellOver]==1) { // Cell is alive
+      cells[xCellOver][yCellOver]=0; // Kill
+      fill(dead); // Fill with kill color
+    }
+    else { // Cell is dead
+      cells[xCellOver][yCellOver]=1; // Make alive
+      fill(alive); // Fill alive color
+    }
+  } 
+  else if (pause && !mousePressed) { // And then save to buffer once mouse goes up
+    // Save cells to buffer (so we opeate with one array keeping the other intact)
+    for (int x=0; x<width/cellSize; x++) {
+      for (int y=0; y<height/cellSize; y++) {
+        cellsBuffer[x][y] = cells[x][y];
+      }
+    }
+  }
+}
+
+
+
+void iteration() { // When the clock ticks
+  // Save cells to buffer (so we opeate with one array keeping the other intact)
+  for (int x=0; x<width/cellSize; x++) {
+    for (int y=0; y<height/cellSize; y++) {
+      cellsBuffer[x][y] = cells[x][y];
+    }
+  }
+
+  // Visit each cell:
+  for (int x=0; x<width/cellSize; x++) {
+    for (int y=0; y<height/cellSize; y++) {
+      // And visit all the neighbours of each cell
+      int neighbours = 0; // We'll count the neighbours
+      for (int xx=x-1; xx<=x+1;xx++) {
+        for (int yy=y-1; yy<=y+1;yy++) {  
+          if (((xx>=0)&&(xx<width/cellSize))&&((yy>=0)&&(yy<height/cellSize))) { // Make sure you are not out of bounds
+            if (!((xx==x)&&(yy==y))) { // Make sure to to check against self
+              if (cellsBuffer[xx][yy]==1){
+                neighbours ++; // Check alive neighbours and count them
+              }
+            } // End of if
+          } // End of if
+        } // End of yy loop
+      } //End of xx loop
+      // We've checked the neigbours: apply rules!
+      if (cellsBuffer[x][y]==1) { // The cell is alive: kill it if necessary
+        if (neighbours < 2 || neighbours > 3) {
+          cells[x][y] = 0; // Die unless it has 2 or 3 neighbours
+        }
+      } 
+      else { // The cell is dead: make it live if necessary      
+        if (neighbours == 3 ) {
+          cells[x][y] = 1; // Only if it has 3 neighbours
+        }
+      } // End of if
+    } // End of y loop
+  } // End of x loop
+} // End of function
+
+void keyPressed() {
+  if (key=='r' || key == 'R') {
+    // Restart: reinitialization of cells
+    for (int x=0; x<width/cellSize; x++) {
+      for (int y=0; y<height/cellSize; y++) {
+        float state = random (100);
+        if (state > probabilityOfAliveAtStart) {
+          state = 0;
+        }
+        else {
+          state = 1;
+        }
+        cells[x][y] = int(state); // Save state of each cell
+      }
+    }
+  }
+  if (key==' ') { // On/off of pause
+    pause = !pause;
+  }
+  if (key=='c' || key == 'C') { // Clear all
+    for (int x=0; x<width/cellSize; x++) {
+      for (int y=0; y<height/cellSize; y++) {
+        cells[x][y] = 0; // Save all to zero
+      }
+    }
+  }
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-prolog.html b/docs/_style/prism-master/examples/prism-prolog.html new file mode 100644 index 00000000..b231bcae --- /dev/null +++ b/docs/_style/prism-master/examples/prism-prolog.html @@ -0,0 +1,44 @@ +

Comments

+
% This is a comment
+/* This is a
+multi-line comment */
+ +

Numbers

+
42
+3.1415
+ +

Strings

+
"This is a string."
+"This is a string \
+on multiple lines."
+"A string with \"quotes\" in it."
+"Another string with ""quotes"" in it."
+ +

Example

+
:- dynamic fibo/2.
+fibo(0, 1). fibo(1, 1).
+fibo(N, F) :-
+N >= 2, N1 is N - 1, N2 is N - 2,
+fibo(N1, F1), fibo(N2, F2), F is F1 + F2,
+assert(fibo(N,F):-!). % assert as first clause
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Null-ary predicates are not highlighted

+
halt.
+trace.
+
+:- if(test1).
+section_1.
+:- elif(test2).
+section_2.
+:- elif(test3).
+section_3.
+:- else.
+section_else.
+:- endif.
diff --git a/docs/_style/prism-master/examples/prism-properties.html b/docs/_style/prism-master/examples/prism-properties.html new file mode 100644 index 00000000..bbc81f99 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-properties.html @@ -0,0 +1,9 @@ +

Comments

+
# This is a comment
+! This is a comment too
+ +

Properties

+
some_key some_value
+some\ key\ with\ spaces : some value
+some_key = some \
+multiline value
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-pug.html b/docs/_style/prism-master/examples/prism-pug.html new file mode 100644 index 00000000..d37de5ca --- /dev/null +++ b/docs/_style/prism-master/examples/prism-pug.html @@ -0,0 +1,85 @@ +

Comments

+
// Some
+  multiline
+  comment !
+
+// This is a comment
+But this is not
+ +

Doctype

+
doctype html
+doctype 1.1
+doctype html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN"
+ +

Tags

+
ul
+  li Item A
+  li Item B
+  li Item C
+foo(bar='baz')/
+input(type='checkbox', checked=true.toString())
+#content
+div#foo(data-bar="foo")&attributes({'data-foo': 'bar'})
+ +

Markup

+
<div class="foo bar"></div>
+ +

Control flow

+
#user
+  if user.description
+    p.description= user.description
+  else if authorised
+    p.description.
+      User has no description,
+      why not add one...
+  else
+    p.description User has no description
+ul
+  each val in [1, 2, 3, 4, 5]
+    li= val
+case friends
+  when 0
+    p you have no friends
+  when 1
+    p you have a friend
+  default
+    p you have #{friends} friends
+
+ +

Inline JavaScript

+
script alert('test');
+script(type="text/javascript").
+  alert('foo');
+  alert('bar');
+- var classes = ['foo', 'bar', 'baz']
+- for (var x = 0; x < 3; x++)
+  li item
+
+ +

Keywords

+
include ./includes/head.pug
+extends ./layout.pug
+block content
+append head
+ +

Mixins

+
mixin list
+  ul
+    li foo
+    li bar
+    li baz
++list
+mixin pet(name)
+  li.pet= name
+ul
+  +pet('cat')
+  +pet('dog')
+
+ +

Filters

+

Filters require the desired language to be loaded. +On this page, check CoffeeScript before checking Pug should make +the example below work properly.

+
script
+  :coffee
+    console.log 'This is coffee script'
diff --git a/docs/_style/prism-master/examples/prism-puppet.html b/docs/_style/prism-master/examples/prism-puppet.html new file mode 100644 index 00000000..4892ab89 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-puppet.html @@ -0,0 +1,152 @@ +

Comments

+
#
+# Foobar
+/* Foo
+bar */
+ +

Strings and interpolation

+
'foo \'bar\' baz'
+"$foo \"bar\" ${baz}"
+
+@(FOOBAR) # Unquoted heredoc string
+Foo bar baz
+FOOBAR
+
+@("BARBAZ"/$L) # Quoted heredoc string
+	$foo bar ${baz}
+	|-BARBAZ
+ +

Regular expressions

+
if $host =~ /^www(\d+)\./ {}
+$foo = /foo
+	bar # Extended regexes can include comments
+baz/x
+ +

Variables

+
$foo
+$::foobar
+$foo::bar::baz
+ +

Functions

+
require apache
+template('apache/vhost-default.conf.erb')
+[1,20,3].filter |$value| { $value < 10 }
+ +

All-in-one example

+
file {'ntp.conf':
+  path    => '/etc/ntp.conf',
+  ensure  => file,
+  content => template('ntp/ntp.conf'),
+  owner   => 'root',
+  mode    => '0644',
+}
+package {'ntp':
+  ensure => installed,
+  before => File['ntp.conf'],
+}
+service {'ntpd':
+  ensure    => running,
+  subscribe => File['ntp.conf'],
+}
+Package['ntp'] -> File['ntp.conf'] ~> Service['ntpd']
+
+$package_list = ['ntp', 'apache2', 'vim-nox', 'wget']
+$myhash = { key => { subkey => 'b' }}
+
+include ntp
+require ntp
+class {'ntp':}
+
+define apache::vhost ($port, $docroot, $servername = $title, $vhost_name = '*') {
+  include apache
+  include apache::params
+  $vhost_dir = $apache::params::vhost_dir
+  file { "${vhost_dir}/${servername}.conf":
+      content => template('apache/vhost-default.conf.erb'),
+      owner   => 'www',
+      group   => 'www',
+      mode    => '644',
+      require => Package['httpd'],
+      notify  => Service['httpd'],
+  }
+}
+
+apache::vhost {'homepages':
+  port    => 8081,
+  docroot => '/var/www-testhost',
+}
+Apache::Vhost['homepages']
+
+node 'www1.example.com' {
+  include common
+  include apache
+  include squid
+}
+node /^www\d+$/ {
+  include common
+}
+
+# comment
+/* comment */
+
+if $is_virtual {
+  warning( 'Tried to include class ntp on virtual machine; this node may be misclassified.' )
+}
+elsif $operatingsystem == 'Darwin' {
+  warning( 'This NTP module does not yet work on our Mac laptops.' )
+else {
+  include ntp
+}
+
+if $hostname =~ /^www(\d+)\./ {
+  notify { "Welcome web server $1": }
+}
+
+case $operatingsystem {
+  'Solaris':          { include role::solaris }
+  'RedHat', 'CentOS': { include role::redhat  }
+  /^(Debian|Ubuntu)$/:{ include role::debian  }
+  default:            { include role::generic }
+}
+$rootgroup = $osfamily ? {
+    'Solaris'          => 'wheel',
+    /(Darwin|FreeBSD)/ => 'wheel',
+    default            => 'root',
+}
+
+User <| groups == 'admin' |>
+Concat::Fragment <<| tag == "bacula-storage-dir-${bacula_director}" |>>
+
+Exec <| title == 'update_migrations' |> {
+  environment => 'RUBYLIB=/usr/lib/ruby/site_ruby/1.8/',
+}
+
+@user {'deploy':
+  uid     => 2004,
+  comment => 'Deployment User',
+  group   => www-data,
+  groups  => ["enterprise"],
+  tag     => [deploy, web],
+}
+
+@@nagios_service { "check_zfs${hostname}":
+  use                 => 'generic-service',
+  host_name           => "$fqdn",
+  check_command       => 'check_nrpe_1arg!check_zfs',
+  service_description => "check_zfs${hostname}",
+  target              => '/etc/nagios3/conf.d/nagios_service.cfg',
+  notify              => Service[$nagios::params::nagios_service],
+}
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

More than one level of nested braces inside interpolation

+
"Foobar ${foo({
+    bar => {baz => 42}
+    baz => 42
+})} <- broken"
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-pure.html b/docs/_style/prism-master/examples/prism-pure.html new file mode 100644 index 00000000..d7a0129b --- /dev/null +++ b/docs/_style/prism-master/examples/prism-pure.html @@ -0,0 +1,115 @@ +

Comments

+
#! shebang
+// Single line comment
+/* Multi-line
+comment */
+ +

Strings

+
"This is a string."
+"This is a string with \"quotes\" in it."
+ +

Numbers

+
4711
+4711L
+1.2e-3
+.14
+1000
+0x3e8
+01750
+0b1111101000
+inf
+nan
+ +

Inline code

+

Inline code requires the desired language to be loaded. +On this page, check C, C++ and Fortran before checking Pure should make +the examples below work properly.

+
%<
+int mygcd(int x, int y)
+{
+  if (y == 0)
+    return x;
+  else
+    return mygcd(y, x%y);
+}
+%>
+
+%< -*- Fortran90 -*-
+function fact(n) result(p)
+  integer n, p
+  p = 1
+  do i = 1, n
+     p = p*i
+  end do
+end function fact
+%>
+
+%< -*- C++ -*-
+
+#include <pure/runtime.h>
+#include <string>
+#include <map>
+
+// An STL map mapping strings to Pure expressions.
+
+using namespace std;
+typedef map<string,pure_expr*> exprmap;
+
+// Since we can't directly deal with C++ classes in Pure, provide some C
+// functions to create, destroy and manipulate these objects.
+
+extern "C" exprmap *map_create()
+{
+  return new exprmap;
+}
+
+extern "C" void map_add(exprmap *m, const char *key, pure_expr *x)
+{
+  exprmap::iterator it = m->find(string(key));
+  if (it != m->end()) pure_free(it->second);
+  (*m)[key] = pure_new(x);
+}
+
+extern "C" void map_del(exprmap *m, const char *key)
+{
+  exprmap::iterator it = m->find(key);
+  if (it != m->end()) {
+    pure_free(it->second);
+    m->erase(it);
+  }
+}
+
+extern "C" pure_expr *map_get(exprmap *m, const char *key)
+{
+  exprmap::iterator it = m->find(key);
+  return (it != m->end())?it->second:0;
+}
+
+extern "C" pure_expr *map_keys(exprmap *m)
+{
+  size_t i = 0, n = m->size();
+  pure_expr **xs = new pure_expr*[n];
+  for (exprmap::iterator it = m->begin(); it != m->end(); ++it)
+    xs[i++] = pure_string_dup(it->first.c_str());
+  pure_expr *x = pure_listv(n, xs);
+  delete[] xs;
+  return x;
+}
+
+extern "C" void map_destroy(exprmap *m)
+{
+  for (exprmap::iterator it = m->begin(); it != m->end(); ++it)
+    pure_free(it->second);
+  delete m;
+}
+
+%>
+ +

Example

+
queens n       = catch reverse (search n 1 []) with
+  search n i p = throw p if i>n;
+               = void [search n (i+1) ((i,j):p) | j = 1..n; safe (i,j) p];
+  safe (i,j) p = ~any (check (i,j)) p;
+  check (i1,j1) (i2,j2)
+               = i1==i2 || j1==j2 || i1+j1==i2+j2 || i1-j1==i2-j2;
+end;
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-python.html b/docs/_style/prism-master/examples/prism-python.html new file mode 100644 index 00000000..ce6efc00 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-python.html @@ -0,0 +1,61 @@ +

Comments

+
# This is a comment
+# -*- coding: <encoding-name> -*-
+ +

Strings

+
"foo \"bar\" baz"
+'foo \'bar\' baz'
+""" "Multi-line" strings
+are supported."""
+''' 'Multi-line' strings
+are supported.'''
+ +

Numbers

+
7
+2147483647
+0o177
+0b100110111
+3
+79228162514264337593543950336
+0o377
+0x100000000
+0xdeadbeef
+3.14
+10.
+.001
+1e100
+3.14e-10
+0e0
+3.14j
+10.j
+10j
+.001j
+1e100j
+3.14e-10j
+
+ +

Full example

+
def median(pool):
+    '''Statistical median to demonstrate doctest.
+    >>> median([2, 9, 9, 7, 9, 2, 4, 5, 8])
+    7
+    '''
+    copy = sorted(pool)
+    size = len(copy)
+    if size % 2 == 1:
+        return copy[(size - 1) / 2]
+    else:
+        return (copy[size/2 - 1] + copy[size/2]) / 2
+if __name__ == '__main__':
+    import doctest
+    doctest.testmod()
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Interpolation expressions containing strings with { or }

+
f"{'}'}"
diff --git a/docs/_style/prism-master/examples/prism-q.html b/docs/_style/prism-master/examples/prism-q.html new file mode 100644 index 00000000..58d674f4 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-q.html @@ -0,0 +1,112 @@ +

Comments

+
foo / This is a comment
+/ This is a comment too
+
+/
+Some multi-line
+comment here
+\
+
+\
+This comment will
+continue until the
+end of code
+ +

Character data and strings

+
"q"
+"\""
+"\\"
+"\142"
+"foo bar baz"
+ +

Symbols

+
`
+`q
+`zaphod
+`:198.162.0.2:5042
+`:www.yourco.com:5042
+`.new
+ +

Numbers

+
42
+b:-123h
+c:1234567890j
+pi:3.14159265
+float1:1f
+r:1.4142e
+2.0
+4.00e
+f:1.23456789e-10
+r:1.2345678e-10e
+bit:0b
+byte:0x2a
+a:42
+bit:1b
+
+0w 0n 0W 0Wh 0Wj
+ +

Dates

+
d:2006.07.04
+t:09:04:59.000
+dt:2006.07.04T09:04:59.000
+mon:2006.07m
+mm:09:04
+sec:09:04:59
+d:2006.07.04
+
+0Nm 0Nd 0Nz 0Nu 0Nv 0Wd 0Wt 0Wz
+ +

Verbs

+
99+L
+x<42|x>98
+(x<42)|x>98
+42~(4 2;(1 0))
+(4 2)~(4; 2*1)
+ +

Adverbs

+
" ," ,/: ("Now";"is";"the";"time")
+L1,/:\:L2
+0+/10 20 30
+(1#) each 1001 1002 1004 1003
+ +

Built-in functions and q-sql

+
string 42
+L1 cross L2
+type c
+select from t where price=(max;price) fby ([]sym;ex)
+ungroup `p xgroup sp
+`instrument insert (`g; `$"Google"; `$"Internet")
+ +

Example

+
/ Example from http://code.kx.com/wiki/Cookbook/CorporateActions
+getCAs:{[caTypes]
+    / handles multiplie corporate actions on one date
+    t:0!select factor:prd factor by date-1,sym from ca where caType in caTypes;
+    t,:update date:1901.01.01,factor:1.0 from ([]sym:distinct t`sym);
+    t:`date xasc t;
+    t:update factor:reverse prds reverse 1 rotate factor by sym from t;
+    :update `g#sym from 0!t;
+  };
+
+adjust:{[t;caTypes]
+    t:0!t;
+    factors:enlist 1.0^aj[`sym`date;([] date:t`date;sym:t`sym);getCAs caTypes]`factor;
+    mc:c where (lower c:cols t) like "*price"; / find columns to multiply
+    dc:c where lower[c] like "*size"; / find columns to divide
+    :![t;();0b;(mc,dc)!((*),/:mc,\:factors),((%),/:dc,\:factors)]; / multiply or divide out the columns
+  };
+
+/ get the adjustment factors considering all corporate actions
+getCAs exec distinct caType from ca
+
+adjust[t;`dividend] / adjust trades for dividends only
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

The global context is highlighted as a verb

+
\d .
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-qore.html b/docs/_style/prism-master/examples/prism-qore.html new file mode 100644 index 00000000..710e1614 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-qore.html @@ -0,0 +1,962 @@ +

Full example

+
#!/usr/bin/env qore
+
+# database test script
+# databases users must be able to create and destroy tables and procedures, etc
+# in order to execute all tests
+
+%require-our
+%enable-all-warnings
+
+our ($o, $errors, $test_count);
+
+const opts =
+	( "help"    : "h,help",
+	  "host"    : "H,host=s",
+	  "pass"    : "p,pass=s",
+	  "db"      : "d,db=s",
+	  "user"    : "u,user=s",
+	  "type"    : "t,type=s",
+	  "enc"     : "e,encoding=s",
+	  "verbose" : "v,verbose:i+",
+	  "leave"   : "l,leave"
+ );
+
+sub usage()
+{
+	printf("usage: %s [options]
+ -h,--help          this help text
+ -u,--user=ARG      set username
+ -p,--pass=ARG      set password
+ -d,--db=ARG        set database name
+ -e,--encoding=ARG  set database character set encoding (i.e. \"utf8\")
+ -H,--host=ARG      set hostname (for MySQL and PostgreSQL connections)
+ -t,--type          set database driver (default mysql)
+ -v,--verbose       more v's = more information
+ -l,--leave         leave test tables in schema at end\n",
+	   basename($ENV."_"));
+	exit();
+}
+
+const object_map =
+ ( "oracle" :
+   ( "tables" : ora_tables ),
+   "mysql"  :
+   ( "tables" : mysql_tables ),
+   "pgsql"  :
+   ( "tables" : pgsql_tables ),
+   "sybase" :
+   ( "tables" : syb_tables,
+	 "procs"  : sybase_procs ),
+   "freetds"  :
+   ( "tables" : freetds_sybase_tables,
+	 "procs"  : sybase_procs ) );
+
+const ora_tables = (
+	"family" : "create table family (
+   family_id int not null,
+   name varchar2(80) not null
+)",
+	"people" : "create table people (
+   person_id int not null,
+   family_id int not null,
+   name varchar2(250) not null,
+   dob date not null
+)",
+	"attributes" : "create table attributes (
+   person_id int not null,
+   attribute varchar2(80) not null,
+   value varchar2(160) not null
+)" );
+
+const mysql_tables = (
+	"family" : "create table family (
+   family_id int not null,
+   name varchar(80) not null
+) type = innodb",
+	"people" : "create table people (
+   person_id int not null,
+   family_id int not null,
+   name varchar(250) not null,
+   dob date not null
+) type = innodb",
+	"attributes" : "create table attributes (
+   person_id int not null,
+   attribute varchar(80) not null,
+   value varchar(160) not null
+) type = innodb" );
+
+const pgsql_tables = (
+	"family" : "create table family (
+   family_id int not null,
+   name varchar(80) not null )",
+	"people" : "create table people (
+   person_id int not null,
+   family_id int not null,
+   name varchar(250) not null,
+   dob date not null )",
+	"attributes" : "create table attributes (
+   person_id int not null,
+   attribute varchar(80) not null,
+   value varchar(160) not null)",
+	"data_test" : "create table data_test (
+		int2_f smallint not null,
+		int4_f integer not null,
+		int8_f int8 not null,
+		bool_f boolean not null,
+
+		float4_f real not null,
+		float8_f double precision not null,
+
+		number_f numeric(16,3) not null,
+		money_f money not null,
+
+		text_f text not null,
+		varchar_f varchar(40) not null,
+		char_f char(40) not null,
+		name_f name not null,
+
+		date_f date not null,
+		abstime_f abstime not null,
+		reltime_f reltime not null,
+		interval_f interval not null,
+		time_f time not null,
+		timetz_f time with time zone not null,
+		timestamp_f timestamp not null,
+		timestamptz_f timestamp with time zone not null,
+		tinterval_f tinterval not null,
+
+		bytea_f bytea not null
+		--bit_f bit(11) not null,
+		--varbit_f bit varying(11) not null
+)" );
+
+const syb_tables = (
+	"family" : "create table family (
+   family_id int not null,
+   name varchar(80) not null
+)",
+	"people" : "create table people (
+   person_id int not null,
+   family_id int not null,
+   name varchar(250) not null,
+   dob date not null
+)",
+	"attributes" : "create table attributes (
+   person_id int not null,
+   attribute varchar(80) not null,
+   value varchar(160) not null
+)",
+	"data_test" : "create table data_test (
+	null_f char(1) null,
+
+	varchar_f varchar(40) not null,
+	char_f char(40) not null,
+	unichar_f unichar(40) not null,
+	univarchar_f univarchar(40) not null,
+	text_f text not null,
+	unitext_f unitext not null, -- note that unitext is stored as 'image'
+
+		bit_f bit not null,
+	tinyint_f tinyint not null,
+	smallint_f smallint not null,
+	int_f int not null,
+		int_f2 int not null,
+
+	decimal_f decimal(10,4) not null,
+
+	float_f float not null,     -- 8-bytes
+	real_f real not null,       -- 4-bytes
+	money_f money not null,
+	smallmoney_f smallmoney not null,
+
+	date_f date not null,
+	time_f time not null,
+	datetime_f datetime not null,
+	smalldatetime_f smalldatetime not null,
+
+	binary_f binary(4) not null,
+	varbinary_f varbinary(4) not null,
+	image_f image not null
+)" );
+
+const sybase_procs = (
+	"find_family" :
+"create procedure find_family @name varchar(80)
+as
+select * from family where name = @name
+commit -- to maintain transaction count
+",
+	"get_values" :
+"create procedure get_values @string varchar(80) output, @int int output
+as
+select @string = 'hello there'
+select @int = 150
+commit -- to maintain transaction count
+",
+	"get_values_and_select" :
+"create procedure get_values_and_select @string varchar(80) output, @int int output
+as
+select @string = 'hello there'
+select @int = 150
+select * from family where family_id = 1
+commit -- to maintain transaction count
+",
+	"get_values_and_multiple_select" :
+"create procedure get_values_and_multiple_select @string varchar(80) output, @int int output
+as
+select @string = 'hello there'
+select @int = 150
+select * from family where family_id = 1
+select * from people where person_id = 1
+commit -- to maintain transaction count
+",
+	"just_select" :
+"create procedure just_select
+as
+select * from family where family_id = 1
+commit -- to maintain transaction count
+",
+	"multiple_select" :
+"create procedure multiple_select
+as
+select * from family where family_id = 1
+select * from people where person_id = 1
+commit -- to maintain transaction count
+"
+ );
+
+const freetds_sybase_tables = (
+	"family" : "create table family (
+   family_id int not null,
+   name varchar(80) not null
+)",
+	"people" : "create table people (
+   person_id int not null,
+   family_id int not null,
+   name varchar(250) not null,
+   dob date not null
+)",
+	"attributes" : "create table attributes (
+   person_id int not null,
+   attribute varchar(80) not null,
+   value varchar(160) not null
+)",
+	"data_test" : "create table data_test (
+	null_f char(1) null,
+
+	varchar_f varchar(40) not null,
+	char_f char(40) not null,
+	text_f text not null,
+	unitext_f unitext not null, -- note that unitext is stored as 'image'
+
+		bit_f bit not null,
+	tinyint_f tinyint not null,
+	smallint_f smallint not null,
+	int_f int not null,
+		int_f2 int not null,
+
+	decimal_f decimal(10,4) not null,
+
+	float_f float not null,     -- 8-bytes
+	real_f real not null,       -- 4-bytes
+	money_f money not null,
+	smallmoney_f smallmoney not null,
+
+	date_f date not null,
+	time_f time not null,
+	datetime_f datetime not null,
+	smalldatetime_f smalldatetime not null,
+
+	binary_f binary(4) not null,
+	varbinary_f varbinary(4) not null,
+	image_f image not null
+)" );
+
+const freetds_mssql_tables = (
+	"family" : "create table family (
+   family_id int not null,
+   name varchar(80) not null
+)",
+	"people" : "create table people (
+   person_id int not null,
+   family_id int not null,
+   name varchar(250) not null,
+   dob datetime not null
+)",
+	"attributes" : "create table attributes (
+   person_id int not null,
+   attribute varchar(80) not null,
+   value varchar(160) not null
+)",
+	"data_test" : "create table data_test (
+	null_f char(1) null,
+
+	varchar_f varchar(40) not null,
+	char_f char(40) not null,
+	text_f text not null,
+
+		bit_f bit not null,
+	tinyint_f tinyint not null,
+	smallint_f smallint not null,
+	int_f int not null,
+		int_f2 int not null,
+
+	decimal_f decimal(10,4) not null,
+
+	float_f float not null,     -- 8-bytes
+	real_f real not null,       -- 4-bytes
+	money_f money not null,
+	smallmoney_f smallmoney not null,
+
+	datetime_f datetime not null,
+	smalldatetime_f smalldatetime not null,
+
+	binary_f binary(4) not null,
+	varbinary_f varbinary(4) not null,
+	image_f image not null
+)" );
+
+sub parse_command_line()
+{
+	my $g = new GetOpt(opts);
+	$o = $g.parse(\$ARGV);
+	if ($o.help)
+	usage();
+
+	if (!strlen($o.db))
+	{
+	stderr.printf("set the login parameters with -u,-p,-d, etc (-h for help)\n");
+	exit(1);
+	}
+	if (elements $ARGV)
+	{
+	stderr.printf("excess arguments on command-line (%n): -h for help\n", $ARGV);
+	exit(1);
+	}
+	if (!strlen($o.type))
+	$o.type = "mysql";
+}
+
+sub create_datamodel($db)
+{
+	drop_test_datamodel($db);
+
+	my $driver = $db.getDriverName();
+	# create tables
+	my $tables = object_map.$driver.tables;
+	if ($driver == "freetds")
+	if ($db.is_sybase)
+		$tables = freetds_sybase_tables;
+		else
+		$tables = freetds_mssql_tables;
+
+	foreach my $table in (keys $tables)
+	{
+	tprintf(2, "creating table %n\n", $table);
+	$db.exec($tables.$table);
+	}
+
+	# create procedures if any
+	foreach my $proc in (keys object_map.$driver.procs)
+	{
+	tprintf(2, "creating procedure %n\n", $proc);
+	$db.exec(object_map.$driver.procs.$proc);
+	}
+
+	# create functions if any
+	foreach my $func in (keys object_map.$driver.funcs)
+	{
+	tprintf(2, "creating function %n\n", $func);
+	$db.exec(object_map.$driver.funcs.$func);
+	}
+
+	$db.exec("insert into family values ( 1, 'Smith' )");
+	$db.exec("insert into family values ( 2, 'Jones' )");
+
+	# we insert the dates here using binding by value so we don't have
+	# to worry about each database's specific date format
+	$db.exec("insert into people values ( 1, 1, 'Arnie', %v)", 1983-05-13);
+	$db.exec("insert into people values ( 2, 1, 'Sylvia', %v)", 1994-11-10);
+	$db.exec("insert into people values ( 3, 1, 'Carol', %v)", 2003-07-23);
+	$db.exec("insert into people values ( 4, 1, 'Bernard', %v)", 1979-02-27);
+	$db.exec("insert into people values ( 5, 1, 'Isaac', %v)", 2000-04-04);
+	$db.exec("insert into people values ( 6, 2, 'Alan', %v)", 1992-06-04);
+	$db.exec("insert into people values ( 7, 2, 'John', %v)", 1995-03-23);
+
+	$db.exec("insert into attributes values ( 1, 'hair', 'blond' )");
+	$db.exec("insert into attributes values ( 1, 'eyes', 'hazel' )");
+	$db.exec("insert into attributes values ( 2, 'hair', 'blond' )");
+	$db.exec("insert into attributes values ( 2, 'eyes', 'blue' )");
+	$db.exec("insert into attributes values ( 3, 'hair', 'brown' )");
+	$db.exec("insert into attributes values ( 3, 'eyes', 'grey')");
+	$db.exec("insert into attributes values ( 4, 'hair', 'brown' )");
+	$db.exec("insert into attributes values ( 4, 'eyes', 'brown' )");
+	$db.exec("insert into attributes values ( 5, 'hair', 'red' )");
+	$db.exec("insert into attributes values ( 5, 'eyes', 'green' )");
+	$db.exec("insert into attributes values ( 6, 'hair', 'black' )");
+	$db.exec("insert into attributes values ( 6, 'eyes', 'blue' )");
+	$db.exec("insert into attributes values ( 7, 'hair', 'brown' )");
+	$db.exec("insert into attributes values ( 7, 'eyes', 'brown' )");
+	$db.commit();
+}
+
+sub drop_test_datamodel($db)
+{
+	my $driver = $db.getDriverName();
+	# drop the tables and ignore exceptions
+	# the commits are needed for databases like postgresql, where errors will prohibit and further
+	# actions from being taken on the Datasource
+	foreach my $table in (keys object_map.$driver.tables)
+	try {
+		$db.exec("drop table " + $table);
+		$db.commit();
+		tprintf(2, "dropped table %n\n", $table);
+	}
+		catch ()
+	{
+		$db.commit();
+	}
+
+	# drop procedures and ignore exceptions
+	foreach my $proc in (keys object_map.$driver.procs)
+	{
+	my $cmd = object_map.$driver.drop_proc_cmd;
+	if (!exists $cmd)
+		$cmd = "drop procedure";
+	try {
+		$db.exec($cmd + " " + $proc);
+		$db.commit();
+		tprintf(2, "dropped procedure %n\n", $proc);
+	}
+	catch ()
+	{
+		$db.commit();
+	}
+	}
+
+	# drop functions and ignore exceptions
+	foreach my $func in (keys object_map.$driver.funcs)
+	{
+	my $cmd = object_map.$driver.drop_func_cmd;
+	if (!exists $cmd)
+		$cmd = "drop function";
+	try {
+		$db.exec($cmd + " " + $func);
+		$db.commit();
+		tprintf(2, "dropped function %n\n", $func);
+	}
+	catch ()
+	{
+		$db.commit();
+	}
+	}
+}
+
+sub getDS()
+{
+	my $ds = new Datasource($o.type, $o.user, $o.pass, $o.db, $o.enc);
+	if (strlen($o.host))
+	$ds.setHostName($o.host);
+	return $ds;
+}
+
+sub tprintf($v, $msg)
+{
+	if ($v <= $o.verbose)
+	vprintf($msg, $argv);
+}
+
+sub test_value($v1, $v2, $msg)
+{
+	++$test_count;
+	if ($v1 == $v2)
+	tprintf(1, "OK: %s test\n", $msg);
+	else
+	{
+		tprintf(0, "ERROR: %s test failed! (%n != %n)\n", $msg, $v1, $v2);
+		$errors++;
+	}
+}
+
+const family_hash = (
+  "Jones" : (
+	  "people" : (
+	  "John" : (
+		  "dob" : 1995-03-23,
+		  "eyes" : "brown",
+		  "hair" : "brown" ),
+	  "Alan" : (
+		  "dob" : 1992-06-04,
+		  "eyes" : "blue",
+		  "hair" : "black" ) ) ),
+	"Smith" : (
+	"people" : (
+		"Arnie" : (
+		"dob" : 1983-05-13,
+		"eyes" : "hazel",
+		"hair" : "blond" ),
+		"Carol" : (
+		"dob" : 2003-07-23,
+		"eyes" : "grey",
+		"hair" : "brown" ),
+		"Isaac" : (
+		"dob" : 2000-04-04,
+		"eyes" : "green",
+		"hair" : "red" ),
+		"Bernard" : (
+		"dob" : 1979-02-27,
+		"eyes" : "brown",
+		"hair" : "brown" ),
+		"Sylvia" : (
+		"dob" : 1994-11-10,
+		"eyes" : "blue",
+		"hair" : "blond" ) ) ) );
+
+sub context_test($db)
+{
+	# first we select all the data from the tables and then use
+	# context statements to order the output hierarchically
+
+	# context statements are most useful when a set of queries can be executed once
+	# and the results processed many times by creating "views" with context statements
+
+	my $people = $db.select("select * from people");
+	my $attributes = $db.select("select * from attributes");
+
+	my $today = format_date("YYYYMMDD", now());
+
+	# in this test, we create a big hash structure out of the queries executed above
+	# and compare it at the end to the expected result
+
+	# display each family sorted by family name
+	my $fl;
+	context family ($db.select("select * from family")) sortBy (%name)
+	{
+	my $pl;
+	tprintf(2, "Family %d: %s\n", %family_id, %name);
+
+	# display people, sorted by eye color, descending
+	context people ($people)
+		sortDescendingBy (find %value in $attributes
+				  where (%attribute == "eyes"
+					 && %person_id == %people:person_id))
+		where (%family_id == %family:family_id)
+	{
+		my $al;
+		tprintf(2, "  %s, born %s\n", %name, format_date("Month DD, YYYY", %dob));
+		context ($attributes) sortBy (%attribute) where (%person_id == %people:person_id)
+		{
+		$al.%attribute = %value;
+		tprintf(2, "    has %s %s\n", %value, %attribute);
+		}
+		# leave out the ID fields and name from hash under name; subtracting a
+		# string from a hash removes that key from the result
+		# this is "doing it the hard way", there is only one key left,
+		# "dob", then attributes are added directly into the person hash
+		$pl.%name = %% - "family_id" - "person_id" - "name" + $al;
+	}
+	# leave out family_id and name fields (leaving an empty hash)
+	$fl.%name = %% - "family_id" - "name" + ( "people" : $pl );
+	}
+
+	# test context ordering
+	test_value(keys $fl, ("Jones", "Smith"), "first context");
+	test_value(keys $fl.Smith.people, ("Arnie", "Carol", "Isaac", "Bernard", "Sylvia"), "second context");
+	# test entire context value
+	test_value($fl, family_hash, "third context");
+}
+
+
+sub test_timeout($db, $c)
+{
+	$db.setTransactionLockTimeout(1ms);
+	try {
+	# this should cause a TRANSACTION-LOCK-TIMEOUT exception to be thrown
+	$db.exec("insert into family values (3, 'Test')\n");
+	test_value(True, False, "transaction timeout");
+	$db.exec("delete from family where name = 'Test'");
+	}
+	catch ($ex)
+	{
+	test_value(True, True, "transaction timeout");
+	}
+	# signal parent thread to continue
+	$c.dec();
+}
+
+sub transaction_test($db)
+{
+	my $ndb = getDS();
+	my $r;
+	tprintf(2, "db.autocommit=%N, ndb.autocommit=%N\n", $db.getAutoCommit(), $ndb.getAutoCommit());
+
+	# first, we insert a new row into "family" but do not commit it
+	my $rows = $db.exec("insert into family values (3, 'Test')\n");
+	if ($rows !== 1)
+	printf("FAILED INSERT, rows=%N\n", $rows);
+
+	# now we verify that the new row is not visible to the other datasource
+	# unless it's a sybase/ms sql server datasource, in which case this would deadlock :-(
+	if ($o.type != "sybase" && $o.type != "freetds")
+	{
+	$r = $ndb.selectRow("select name from family where family_id = 3").name;
+	test_value($r, NOTHING, "first transaction");
+	}
+
+	# now we verify that the new row is visible to the inserting datasource
+	$r = $db.selectRow("select name from family where family_id = 3").name;
+	test_value($r, "Test", "second transaction");
+
+	# test datasource timeout
+	# this Counter variable will allow the parent thread to sleep
+	# until the child thread times out
+	my $c = new Counter(1);
+	background test_timeout($db, $c);
+
+	# wait for child thread to time out
+	$c.waitForZero();
+
+	# now, we commit the transaction
+	$db.commit();
+
+	# now we verify that the new row is visible in the other datasource
+	$r = $ndb.selectRow("select name from family where family_id = 3").name;
+	test_value($r, "Test", "third transaction");
+
+	# now we delete the row we inserted (so we can repeat the test)
+	$r = $ndb.exec("delete from family where family_id = 3");
+	test_value($r, 1, "delete row count");
+	$ndb.commit();
+}
+
+sub oracle_test()
+{
+}
+
+# here we use a little workaround for modules that provide functions,
+# namespace additions (constants, classes, etc) needed by test functions
+# at parse time.  To avoid parse errors (as database modules are loaded
+# in this script at run-time when the Datasource class is instantiated)
+# we use a Program object that we parse and run on demand to return the
+# value required
+sub get_val($code)
+{
+	my $p = new Program();
+
+	my $str = sprintf("return %s;", $code);
+	$p.parse($str, "code");
+	return $p.run();
+}
+
+sub pgsql_test($db)
+{
+	my $args = ( "int2_f"          : 258,
+		 "int4_f"          : 233932,
+		 "int8_f"          : 239392939458,
+		 "bool_f"          : True,
+		 "float4_f"        : 21.3444,
+		 "float8_f"        : 49394.23423491,
+		 "number_f"        : get_val("pgsql_bind(PG_TYPE_NUMERIC, '7235634215.3250')"),
+		 "money_f"         : get_val("pgsql_bind(PG_TYPE_CASH, \"400.56\")"),
+		 "text_f"          : 'some text  ',
+		 "varchar_f"       : 'varchar ',
+		 "char_f"          : 'char text',
+		 "name_f"          : 'name',
+		 "date_f"          : 2004-01-05,
+		 "abstime_f"       : 2005-12-03T10:00:01,
+		 "reltime_f"       : 5M + 71D + 19h + 245m + 51s,
+		 "interval_f"      : 6M + 3D + 2h + 45m + 15s,
+		 "time_f"          : 11:35:00,
+		 "timetz_f"        : get_val("pgsql_bind(PG_TYPE_TIMETZ, \"11:38:21 CST\")"),
+		 "timestamp_f"     : 2005-04-01T11:35:26,
+		 "timestamptz_f"   : 2005-04-01T11:35:26.259,
+		 "tinterval_f"     : get_val("pgsql_bind(PG_TYPE_TINTERVAL, '[\"May 10, 1947 23:59:12\" \"Jan 14, 1973 03:14:21\"]')"),
+		 "bytea_f"         : <bead>
+		 #bit_f             :
+		 #varbit_f          :
+	);
+
+	$db.vexec("insert into data_test values (%v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v)", hash_values($args));
+
+	my $q = $db.selectRow("select * from data_test");
+	if ($o.verbose > 1)
+	foreach my $k in (keys $q)
+		tprintf(2, " %-16s= %-10s %N\n", $k, type($q.$k), $q.$k);
+
+	# fix values where we know the return type is different
+	$args.money_f = 400.56;
+	$args.timetz_f = 11:38:21;
+	$args.tinterval_f = '["1947-05-10 21:59:12" "1973-01-14 02:14:21"]';
+	$args.number_f = "7235634215.3250";
+	$args.reltime_f = 19177551s;
+	$args.interval_f = 6M + 3D + 9915s;
+
+	# rounding errors can happen in float4
+	$q.float4_f = round($q.float4_f);
+	$args.float4_f = round($args.float4_f);
+
+	# remove values where we know they won't match
+	# abstime and timestamptz are converted to GMT by the server
+	delete $q.abstime_f;
+	delete $q.timestamptz_f;
+
+	# compare each value
+	foreach my $k in (keys $q)
+	test_value($q.$k, $args.$k, sprintf("%s bind and retrieve", $k));
+
+	$db.commit();
+}
+
+sub mysql_test()
+{
+}
+
+const family_q = ( "family_id" : 1,
+		   "name" : "Smith" );
+const person_q = ( "person_id" : 1,
+		   "family_id" : 1,
+		   "name" : "Arnie",
+		   "dob" : 1983-05-13 );
+const params = ( "string" : "hello there",
+		 "int" : 150 );
+
+sub sybase_test($db)
+{
+	# simple stored proc test, bind by name
+	my $x = $db.exec("exec find_family %v", "Smith");
+	test_value($x, ("name": list("Smith"), "family_id" : list(1)), "simple stored proc");
+
+	# stored proc execute with output params
+	$x = $db.exec("declare @string varchar(40), @int int
+exec get_values :string output, :int output");
+	test_value($x, params + ("rowcount":1), "get_values");
+
+	# we use Datasource::selectRows() in the following queries because we
+	# get hash results instead of a hash of lists as with exec in the queries
+	# normally we should not use selectRows to execute a stored procedure,
+	# as the Datasource::selectRows() method will not grab the transaction lock,
+	# but we already called Datasource::exec() above, so we have it already.
+	# the other alternative would be to call Datasource::beginTransaction() before
+	# Datasource::selectRows()
+
+	# simple stored proc test, bind by name, returns hash
+	$x = $db.selectRows("exec find_family %v", "Smith");
+	test_value($x, family_q, "simple stored proc");
+
+	# stored proc execute with output params and select results
+	$x = $db.selectRows("declare @string varchar(40), @int int
+exec get_values_and_select :string output, :int output");
+	test_value($x, ("query":family_q,"params":params), "get_values_and_select");
+
+	# stored proc execute with output params and multiple select results
+	$x = $db.selectRows("declare @string varchar(40), @int int
+exec get_values_and_multiple_select :string output, :int output");
+	test_value($x, ("query":("query0":family_q,"query1":person_q),"params":params), "get_values_and_multiple_select");
+
+	# stored proc execute with just select results
+	$x = $db.selectRows("exec just_select");
+	test_value($x, family_q, "just_select");
+
+	# stored proc execute with multiple select results
+	$x = $db.selectRows("exec multiple_select");
+	test_value($x, ("query0":family_q,"query1":person_q), "multiple_select");
+
+	my $args = ( "null_f"          : NULL,
+		 "varchar_f"       : "varchar",
+		 "char_f"          : "char",
+		 "unichar_f"       : "unichar",
+		 "univarchar_f"    : "univarchar",
+		 "text_f"          : "test",
+		 "unitext_f"       : "test",
+		 "bit_f"           : True,
+		 "tinyint_f"       : 55,
+		 "smallint_f"      : 4285,
+		 "int_f"           : 405402,
+		 "int_f2"          : 214123498,
+		 "decimal_f"       : 500.1231,
+		 "float_f"         : 23443.234324234,
+		 "real_f"          : 213.123,
+		 "money_f"         : 3434234250.2034,
+		 "smallmoney_f"    : 211100.1012,
+		 "date_f"          : 2007-05-01,
+			 "time_f"          : 10:30:01,
+		 "datetime_f"      : 3459-01-01T11:15:02.250,
+		 "smalldatetime_f" : 2007-12-01T12:01:00,
+		 "binary_f"        : <0badbeef>,
+		 "varbinary_f"     : <feedface>,
+		 "image_f"         : <cafebead> );
+
+	# insert data
+	my $rows = $db.vexec("insert into data_test values (%v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %d, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v)", hash_values($args));
+
+	my $q = $db.selectRow("select * from data_test");
+	if ($o.verbose > 1)
+	foreach my $k in (keys $q)
+		tprintf(2, " %-16s= %-10s %N\n", $k, type($q.$k), $q.$k);
+
+	# remove values where we know they won't match
+	# unitext_f is returned as IMAGE by the server
+	delete $q.unitext_f;
+	delete $args.unitext_f;
+	# rounding errors can happen in real
+	$q.real_f = round($q.real_f);
+	$args.real_f = round($args.real_f);
+
+	# compare each value
+	foreach my $k in (keys $q)
+	test_value($q.$k, $args.$k, sprintf("%s bind and retrieve", $k));
+
+	$db.commit();
+}
+
+sub freetds_test($db)
+{
+	# simple stored proc test, bind by name
+	my $x = $db.exec("exec find_family %v", "Smith");
+	test_value($x, ("name": list("Smith"), "family_id" : list(1)), "simple stored proc");
+
+	# we cannot retrieve parameters from newer SQL Servers with the approach we use;
+	# Microsoft changed the handling of the protocol and require us to use RPC calls,
+	# this will be implemented in the next version of qore where the "freetds" driver will
+	# be able to add custom methods to the Datasource class.  For now, we skip these tests
+
+	if ($db.is_sybase)
+	{
+	$x = $db.exec("declare @string varchar(40), @int int
+exec get_values :string output, :int output");
+	test_value($x, params, "get_values");
+	}
+
+	# we use Datasource::selectRows() in the following queries because we
+	# get hash results instead of a hash of lists as with exec in the queries
+	# normally we should not use selectRows to execute a stored procedure,
+	# as the Datasource::selectRows() method will not grab the transaction lock,
+	# but we already called Datasource::exec() above, so we have it already.
+	# the other alternative would be to call Datasource::beginTransaction() before
+	# Datasource::selectRows()
+
+	# simple stored proc test, bind by name, returns hash
+	$x = $db.selectRows("exec find_family %v", "Smith");
+	test_value($x, family_q, "simple stored proc");
+
+	# stored proc execute with output params and select results
+	if ($db.is_sybase)
+	{
+	$x = $db.selectRows("declare @string varchar(40), @int int
+exec get_values_and_select :string output, :int output");
+	test_value($x, ("query":family_q,"params":params), "get_values_and_select");
+
+	# stored proc execute with output params and multiple select results
+	$x = $db.selectRows("declare @string varchar(40), @int int
+exec get_values_and_multiple_select :string output, :int output");
+	test_value($x, ("query":("query0":family_q,"query1":person_q),"params":params), "get_values_and_multiple_select");
+	}
+
+	# stored proc execute with just select results
+	$x = $db.selectRows("exec just_select");
+	test_value($x, family_q, "just_select");
+
+	# stored proc execute with multiple select results
+	$x = $db.selectRows("exec multiple_select");
+	test_value($x, ("query0":family_q,"query1":person_q), "multiple_select");
+
+	# the freetds driver does not work with the following sybase column types:
+	# unichar, univarchar
+
+	my $args = ( "null_f"          : NULL,
+		 "varchar_f"       : "test",
+		 "char_f"          : "test",
+		 "text_f"          : "test",
+		 "unitext_f"       : "test",
+		 "bit_f"           : True,
+		 "tinyint_f"       : 55,
+		 "smallint_f"      : 4285,
+		 "int_f"           : 405402,
+		 "int_f2"          : 214123498,
+		 "decimal_f"       : 500.1231,
+		 "float_f"         : 23443.234324234,
+		 "real_f"          : 213.123,
+		 "money_f"         : 3434234250.2034,
+		 "smallmoney_f"    : 211100.1012,
+		 "date_f"          : 2007-05-01,
+			 "time_f"          : 10:30:01,
+		 "datetime_f"      : 3459-01-01T11:15:02.250,
+		 "smalldatetime_f" : 2007-12-01T12:01:00,
+		 "binary_f"        : <0badbeef>,
+		 "varbinary_f"     : <feedface>,
+		 "image_f"         : <cafebead> );
+
+	# remove fields not supported by sql server
+	if (!$db.is_sybase)
+	{
+	delete $args.unitext_f;
+	delete $args.date_f;
+	delete $args.time_f;
+	}
+
+	my $sql = "insert into data_test values (";
+	for (my $i; $i < elements $args; ++$i)
+	$sql += "%v, ";
+	$sql = substr($sql, 0, -2) + ")";
+
+	# insert data, using the values from the hash above
+	my $rows = $db.vexec($sql, hash_values($args));
+
+	my $q = $db.selectRow("select * from data_test");
+	if ($o.verbose > 1)
+	foreach my $k in (keys $q)
+		tprintf(2, " %-16s= %-10s %N\n", $k, type($q.$k), $q.$k);
+
+	# remove values where we know they won't match
+	# unitext_f is returned as IMAGE by the server
+	delete $q.unitext_f;
+	delete $args.unitext_f;
+	# rounding errors can happen in real
+	$q.real_f = round($q.real_f);
+	$args.real_f = round($args.real_f);
+
+	# compare each value
+	foreach my $k in (keys $q)
+	test_value($q.$k, $args.$k, sprintf("%s bind and retrieve", $k));
+
+	$db.commit();
+}
+
+sub main()
+{
+	my $test_map =
+	( "sybase" : \sybase_test(),
+	  "freetds"  : \freetds_test(),
+	  "mysql"  : \mysql_test(),
+	  "pgsql"  : \pgsql_test(),
+	  "oracle" : \oracle_test());
+
+	parse_command_line();
+	my $db = getDS();
+
+	my $driver = $db.getDriverName();
+	printf("testing %s driver\n", $driver);
+	my $sv = $db.getServerVersion();
+	if ($o.verbose > 1)
+	tprintf(2, "client version=%n\nserver version=%n\n", $db.getClientVersion(), $sv);
+
+	# determine if the server is a sybase or sql server dataserver
+	if ($driver == "freetds")
+	if ($sv !~ /microsoft/i)
+		$db.is_sybase = True;
+
+	create_datamodel($db);
+
+	context_test($db);
+	transaction_test($db);
+	my $test = $test_map.($db.getDriverName());
+	if (exists $test)
+	$test($db);
+
+	if (!$o.leave)
+	drop_test_datamodel($db);
+	printf("%d/%d tests OK\n", $test_count - $errors, $test_count);
+}
+
+main();
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-r.html b/docs/_style/prism-master/examples/prism-r.html new file mode 100644 index 00000000..3c694189 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-r.html @@ -0,0 +1,38 @@ +

Comments

+
# This is a comment
+ +

Strings

+
"foo \"bar\" baz"
+'foo \'bar\' baz'
+ +

Full example

+
# Goal: To make a latex table with results of an OLS regression.
+
+# Get an OLS --
+x1 = runif(100)
+x2 = runif(100, 0, 2)
+y = 2 + 3*x1 + 4*x2 + rnorm(100)
+m = lm(y ~ x1 + x2)
+
+# and print it out prettily --
+library(xtable)
+# Bare --
+xtable(m)
+xtable(anova(m))
+
+# Better --
+print.xtable(xtable(m, caption="My regression",
+                    label="t:mymodel",
+                    digits=c(0,3,2,2,3)),
+             type="latex",
+             file="xtable_demo_ols.tex",
+             table.placement = "tp",
+             latex.environments=c("center", "footnotesize"))
+
+print.xtable(xtable(anova(m),
+                    caption="ANOVA of my regression",
+                    label="t:anova_mymodel"),
+             type="latex",
+             file="xtable_demo_anova.tex",
+             table.placement = "tp",
+             latex.environments=c("center", "footnotesize"))
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-reason.html b/docs/_style/prism-master/examples/prism-reason.html new file mode 100644 index 00000000..8842f24c --- /dev/null +++ b/docs/_style/prism-master/examples/prism-reason.html @@ -0,0 +1,35 @@ +

Comments

+
/* This is a comment */
+ +

Strings and characters

+
"This is a \"string\""
+'a'
+'\\'
+'\o123'
+'\x4a'
+ +

Constructors

+
type response =
+  | Yes
+  | No
+  | PrettyMuch;
+ +

Example

+
type car = {maker: string, model: string};
+type carList =
+  | List car carList
+  | NoMore;
+
+let chevy = {maker: "Chevy", model: "Suburban"};
+let toyota = {maker: "Toyota", model: "Tacoma"};
+let myCarList = List chevy (List toyota NoMore);
+
+let hasExactlyTwoCars = fun lst =>
+  switch lst {
+    | NoMore => false                              /* 0 */
+    | List p NoMore => false                       /* 1 */
+    | List p (List p2 NoMore) => true              /* 2 */
+    | List p (List p2 (List p3 theRest)) => false  /* 3+ */
+  };
+
+let justTwo = hasExactlyTwoCars myCarList;  /* true! */
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-renpy.html b/docs/_style/prism-master/examples/prism-renpy.html new file mode 100644 index 00000000..dffac07c --- /dev/null +++ b/docs/_style/prism-master/examples/prism-renpy.html @@ -0,0 +1,123 @@ +

Comments

+
+    # This is a comment
+
+ +

Strings

+
+    "foo \"bar\" baz"
+'foo \'bar\' baz'
+""" "Multi-line" strings
+are supported."""
+''' 'Multi-line' strings
+are supported.'''
+
+ +

Python

+
+    class Dog:
+
+    tricks = []             # mistaken use of a class variable
+
+    def __init__(self, name):
+        self.name = name
+
+    def add_trick(self, trick):
+        self.tricks.append(trick)
+
+ +

Properties

+
+    style my_text is text:
+    size 40
+    font "gentium.ttf"
+
+ +

Configuration

+
+    init -1:
+    python hide:
+
+        ## Should we enable the use of developer tools? This should be
+        ## set to False before the game is released, so the user can't
+        ## cheat using developer tools.
+
+        config.developer = True
+
+        ## These control the width and height of the screen.
+
+        config.screen_width = 800
+        config.screen_height = 600
+
+        ## This controls the title of the window, when Ren'Py is
+        ## running in a window.
+
+        config.window_title = u"The Question"
+
+ + +

Full example

+
# Declare images used by this game.
+image bg lecturehall = "lecturehall.jpg"
+image bg uni = "uni.jpg"
+image bg meadow = "meadow.jpg"
+image bg club = "club.jpg"
+
+image sylvie normal = "sylvie_normal.png"
+image sylvie giggle = "sylvie_giggle.png"
+image sylvie smile = "sylvie_smile.png"
+image sylvie surprised = "sylvie_surprised.png"
+
+image sylvie2 normal = "sylvie2_normal.png"
+image sylvie2 giggle = "sylvie2_giggle.png"
+image sylvie2 smile = "sylvie2_smile.png"
+image sylvie2 surprised = "sylvie2_surprised.png"
+
+# Define characters used by this game.
+define s = Character('Sylvie', color="#c8ffc8")
+define m = Character('Me', color="#c8c8ff")
+
+
+# The game starts here.
+label start:
+
+    $ bl_game = False
+
+    play music "illurock.ogg"
+
+    scene bg lecturehall
+    with fade
+
+    "Well, professor Eileen's lecture was interesting."
+    "But to be honest, I couldn't concentrate on it very much."
+    "I had a lot of other thoughts on my mind."
+    "And they all ended up with a question."
+    "A question, I've been meaning to ask someone."
+
+    scene bg uni
+    with fade
+
+    "When we came out of the university, I saw her."
+
+    show sylvie normal
+    with dissolve
+
+    "She was a wonderful person."
+    "I've known her ever since we were children."
+    "And she's always been a good friend."
+    "But..."
+    "Recently..."
+    "I think..."
+    "... that I wanted more."
+    "More just talking... more than just walking home together when our classes ended."
+    "And I decided..."
+
+    menu:
+
+        "... to ask her right away.":
+
+            jump rightaway
+
+        "... to ask her later.":
+
+            jump later
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-rest.html b/docs/_style/prism-master/examples/prism-rest.html new file mode 100644 index 00000000..511e87c9 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-rest.html @@ -0,0 +1,329 @@ +

Titles

+
===============
+ Section Title
+===============
+
+---------------
+ Section Title
+---------------
+
+Section Title
+=============
+
+Section Title
+-------------
+
+Section Title
+`````````````
+
+Section Title
+'''''''''''''
+
+Section Title
+.............
+
+Section Title
+~~~~~~~~~~~~~
+
+Section Title
+*************
+
+Section Title
++++++++++++++
+
+Section Title
+^^^^^^^^^^^^^
+ +

Lists

+
- This is the first bullet list item.
+- This is the first paragraph in the second item in the list.
+
+  This is the second paragraph in the second item in the list.
+
+  - This is a sublist.  The bullet lines up with the left edge of
+    the text blocks above.
+
+- This is the third item of the main list.
+
+This paragraph is not part of the list.
+
+1. Item 1 initial text.
+
+   a) Item 1a.
+   b) Item 1b.
+
+2. a) Item 2a.
+   b) Item 2b.
+ +

Field lists

+
:Date: 2001-08-16
+:Version: 1
+:Authors: - Me
+          - Myself
+          - I
+:Indentation: Since the field marker may be quite long, the second
+   and subsequent lines of the field body do not have to line up
+   with the first line, but they must be indented relative to the
+   field name marker, and they must line up with each other.
+:Parameter i: integer
+ +

Option lists

+
-a         Output all.
+-b         Output both (this description is
+           quite long).
+-c arg     Output just arg.
+--long     Output all day long.
+
+-p         This option has two paragraphs in the description.
+           This is the first.
+
+           This is the second.  Blank lines may be omitted between
+           options (as above) or left in (as here and below).
+
+--very-long-option  A VMS-style option.  Note the adjustment for
+                    the required two spaces.
+
+--an-even-longer-option
+           The description can also start on the next line.
+
+-2, --two  This option has two variants.
+
+-f FILE, --file=FILE  These two options are synonyms; both have
+                      arguments.
+
+/V         A VMS/DOS-style option.
+ +

Literal blocks

+
::
+
+    for a in [5,4,3,2,1]:   # this is program code, shown as-is
+        print a
+    print "it's..."
+    # a literal block continues until the indentation ends
+
+John Doe wrote::
+
+>> *Great* idea!
+>
+> Why didn't I think of that?
+
+You just did!  ;-)
+ +

Line blocks

+
| Lend us a couple of bob till Thursday.
+| I'm absolutely skint.
+| But I'm expecting a postal order and I can pay you back
+  as soon as it comes.
+| Love, Ewan.
+
+Take it away, Eric the Orchestra Leader!
+
+    | A one, two, a one two three four
+    |
+    | Half a bee, philosophically,
+    |     must, *ipso facto*, half not be.
+    | But half the bee has got to be,
+    |     *vis a vis* its entity.  D'you see?
+    |
+    | But can a bee be said to be
+    |     or not to be an entire bee,
+    |         when half the bee is not a bee,
+    |             due to some ancient injury?
+    |
+    | Singing...
+ +

Grid tables and simple tables

+
+------------------------+------------+----------+----------+
+| Header row, column 1   | Header 2   | Header 3 | Header 4 |
+| (header rows optional) |            |          |          |
++========================+============+==========+==========+
+| body row 1, column 1   | column 2   | column 3 | column 4 |
++------------------------+------------+----------+----------+
+| body row 2             | Cells may span columns.          |
++------------------------+------------+---------------------+
+| body row 3             | Cells may  | - Table cells       |
++------------------------+ span rows. | - contain           |
+| body row 4             |            | - body elements.    |
++------------------------+------------+---------------------+
+
+	+--------------+----------+-----------+-----------+
+	| row 1, col 1 | column 2 | column 3  | column 4  |
+	+--------------+----------+-----------+-----------+
+	| row 2        |                                  |
+	+--------------+----------+-----------+-----------+
+	| row 3        |          |           |           |
+	+--------------+----------+-----------+-----------+
+
+=====  =====  =======
+  A      B    A and B
+=====  =====  =======
+False  False  False
+True   False  False
+False  True   False
+True   True   True
+=====  =====  =======
+
+	=====  =====  ======
+	   Inputs     Output
+	------------  ------
+	  A      B    A or B
+	=====  =====  ======
+	False  False  False
+	True   False  True
+	False  True   True
+	True   True   True
+	=====  =====  ======
+ +

Footnotes and links

+
.. [1] Body elements go here.
+
+If [#note]_ is the first footnote reference, it will show up as
+"[1]".  We can refer to it again as [#note]_ and again see
+"[1]".  We can also refer to it as note_ (an ordinary internal
+hyperlink reference).
+
+.. [#note] This is the footnote labeled "note".
+
+Here is a symbolic footnote reference: [*]_.
+
+.. [*] This is the footnote.
+
+[2]_ will be "2" (manually numbered),
+[#]_ will be "3" (anonymous auto-numbered), and
+[#label]_ will be "1" (labeled auto-numbered).
+
+.. [2] This footnote is labeled manually, so its number is fixed.
+
+.. [#label] This autonumber-labeled footnote will be labeled "1".
+   It is the first auto-numbered footnote and no other footnote
+   with label "1" exists.  The order of the footnotes is used to
+   determine numbering, not the order of the footnote references.
+
+.. [#] This footnote will be labeled "3".  It is the second
+   auto-numbered footnote, but footnote label "2" is already used.
+
+Here is a citation reference: [CIT2002]_.
+
+.. [CIT2002] This is the citation.  It's just like a footnote,
+   except the label is textual.
+
+.. _hyperlink-name: link-block
+
+.. __: anonymous-hyperlink-target-link-block
+
+__ anonymous-hyperlink-target-link-block
+
+Clicking on this internal hyperlink will take us to the target_
+below.
+
+.. _target:
+
+The hyperlink target above points to this paragraph.
+ +

Directives

+
.. image:: mylogo.jpeg
+
+.. figure:: larch.png
+
+   The larch.
+
+.. note:: This is a paragraph
+
+   - Here is a bullet list.
+
+.. figure:: picture.png
+   :scale: 50 %
+   :alt: map to buried treasure
+
+   This is the caption of the figure (a simple paragraph).
+
+   The legend consists of all elements after the caption.  In this
+   case, the legend consists of this paragraph and the following
+   table:
+
+   +-----------------------+-----------------------+
+   | Symbol                | Meaning               |
+   +=======================+=======================+
+   | .. image:: tent.png   | Campground            |
+   +-----------------------+-----------------------+
+   | .. image:: waves.png  | Lake                  |
+   +-----------------------+-----------------------+
+   | .. image:: peak.png   | Mountain              |
+   +-----------------------+-----------------------+
+ +

Substitutions

+
The |biohazard| symbol must be used on containers used to
+dispose of medical waste.
+
+.. |biohazard| image:: biohazard.png
+
+|Michael| and |Jon| are our widget-wranglers.
+
+.. |Michael| user:: mjones
+.. |Jon|     user:: jhl
+
+West led the |H| 3, covered by dummy's |H| Q, East's |H| K,
+and trumped in hand with the |S| 2.
+
+.. |H| image:: /images/heart.png
+   :height: 11
+   :width: 11
+.. |S| image:: /images/spade.png
+   :height: 11
+   :width: 11
+
+* |Red light| means stop.
+* |Green light| means go.
+* |Yellow light| means go really fast.
+
+.. |Red light|    image:: red_light.png
+.. |Green light|  image:: green_light.png
+.. |Yellow light| image:: yellow_light.png
+ +

Comments

+
.. This is a comment
+
+..
+   _so: is this!
+
+..
+   [and] this!
+
+..
+   this:: too!
+
+..
+   |even| this:: !
+ +

Inline markup

+
This is *emphasized text*.
+This is **strong text**.
+This is `interpreted text`.
+:role:`interpreted text`
+`interpreted text`:role:
+This text is an example of ``inline literals``.
+The regular expression ``[+-]?(\d+(\.\d*)?|\.\d+)`` matches
+floating-point numbers (without exponents).
+
+See the `Python home page <http://www.python.org>`_ for info.
+
+Oh yes, the _`Norwegian Blue`.  What's, um, what's wrong with it?
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Nothing is highlighted inside table cells

+
+---------------+----------+
+| column 1     | column 2  |
++--------------+-----------+
+| **bold**?    | *italic*? |
++--------------+-----------+
+ +

The inline markup recognition rules are not as strict as they are in the spec

+

No inline markup should be highlighted in the following code.

+
2 * x a ** b (* BOM32_* ` `` _ __ |
+"*" '|' (*) [*] {*} <*> ‘*’ ‚*‘ ‘*‚ ’*’ ‚*’ “*” „*“ “*„ ”*” „*” »*« ›*‹ «*» »*» ›*›
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-rip.html b/docs/_style/prism-master/examples/prism-rip.html new file mode 100644 index 00000000..99769c3b --- /dev/null +++ b/docs/_style/prism-master/examples/prism-rip.html @@ -0,0 +1,12 @@ +

Comments

+
# This is a comment
+ +

Strings

+
"foo \"bar\" baz"
+'foo \'bar\' baz'
+ +

Regex

+
regular_expression = /abc/
+ +

Symbols

+
string_symbol = :rip 
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-roboconf.html b/docs/_style/prism-master/examples/prism-roboconf.html new file mode 100644 index 00000000..ca57221e --- /dev/null +++ b/docs/_style/prism-master/examples/prism-roboconf.html @@ -0,0 +1,49 @@ +

Full example

+
ApacheServer {
+    # Apache instances will be deployed by Roboconf's Puppet extension
+    installer: puppet;
+
+    # Web applications could be deployed over this Apache server
+    children: My-Dash-Board, Marketing-Suite;
+
+    # Properties exported by this component.
+    # 'port' should have a default value, or we will have to set it when we create an instance.
+    exports: port = 19099;
+
+    # 'ip' is a special variable. It will be updated at runtime by a Roboconf agent.
+    exports: ip;
+
+    # Other components properties that this server needs to have so that it can start.
+    imports: LB.port (optional), LB.ip (optional);
+
+    # Here, the Apache may also be notified about components instances of type LB.
+    # The imports are marked as optional. It means that if there is no LB instance, an
+    # Apache instance will be able to start anyway.
+    #
+    # If the import was not optional, e.g.
+    #
+    # imports: LB.port, LB.ip;
+    # or even
+    # imports: LB.port (optional), LB.ip;
+    #
+    # ... then an Apache instance would need at least one LB instance somewhere.
+
+    # Imports may also reference variables from other applications
+    imports: external Lamp.lb-ip;
+}
+
+facet LoadBalanced {
+    exports: ip, port;  # Define we export two variables.
+}
+
+instance of VM {
+
+    # This will create 5 VM instances, called VM 1, VM 2, VM3, VM 4 and VM 5.
+    name: VM ;  # Yes, there is a space at the end... :)
+    count: 5;
+
+    # On every VM instance, we will deploy...
+    instance of Tomcat {
+        name: Tomcat;
+    }
+}
diff --git a/docs/_style/prism-master/examples/prism-ruby.html b/docs/_style/prism-master/examples/prism-ruby.html new file mode 100644 index 00000000..4f1e3906 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-ruby.html @@ -0,0 +1,30 @@ +

Comments

+
# This is a comment
+=begin
+Multi-line
+comment
+=end
+ +

Strings

+
"foo \"bar\" baz"
+'foo \'bar\' baz'
+ +

Regular expressions

+
/foo?[ ]*bar/
+ +

Variables

+
$foo = 5;
+class InstTest
+  def set_foo(n)
+    @foo = n
+  end
+  def set_bar(n)
+    @bar = n
+  end
+end
+ +

Symbols

+
mystring = :steveT;
+ +

String Interpolation

+
"foo #{'bar'+my_variable}"
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-rust.html b/docs/_style/prism-master/examples/prism-rust.html new file mode 100644 index 00000000..d4479684 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-rust.html @@ -0,0 +1,68 @@ +

Comments

+
// Single line comment
+/// Doc comments
+/* Multiline
+comment */
+ +

Strings

+
'C'; '\''; '\n'; '\u7FFF'; // Characters
+"foo \"bar\" baz"; // String
+r##"foo #"bar"# baz"##; // Raw string with # pairs
+b'C'; b'\''; b'\n'; // Bytes
+b"foo \"bar\" baz"; // Byte string
+br##"foo #"bar"# baz"##; // Raw byte string with # pairs
+
+ +

Numbers

+
123i;                              // type int
+123u;                              // type uint
+123_u;                             // type uint
+0xff_u8;                           // type u8
+0o70_i16;                          // type i16
+0b1111_1111_1001_0000_i32;         // type i32
+
+123.0f64;        // type f64
+0.1f64;          // type f64
+0.1f32;          // type f32
+12E+99_f64;      // type f64
+
+ +

Booleans

+
true; false;
+ +

Functions and macros

+
println!("x is {}", x);
+fn next_two(x: int) -> (int, int) { (x + 1i, x + 2i) }
+next_two(5i);
+vec![1i, 2, 3];
+
+ +

Attributes

+
#![warn(unstable)]
+#[test]
+fn a_test() {
+	// ...
+}
+ +

Closure parameters and bitwise OR

+
let x = a | b;
+let y = c || d;
+let add_one = |x: int| -> int { 1i + x };
+let printer = || { println!("x is: {}", x); };
+
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Nested block comments

+
/* Nested block
+	/* comments
+	are */
+not supported */
+ +

Delimiters of parameters for closures that don't use braces

+
|x| x + 1i;
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-sas.html b/docs/_style/prism-master/examples/prism-sas.html new file mode 100644 index 00000000..8932ebb0 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-sas.html @@ -0,0 +1,158 @@ +

Comments

+
/* This is a
+multi-line comment */
+
+* This is a comment too;
+ +

Numbers, dates and times

+
42; 4.5; 4.5e-10; -3; -3.5e2; -4.2e-23;
+0afx; 0123x; abcdefx;
+'1jan2013'd; '01jan09'd;
+'9:25't; '9:25:19pm't;
+'01may12:9:30:00'dt; '18jan2003:9:27:05am'dt;
+'2013-05-17T09:15:30–05:00'dt; '2013-05-17T09:15:30–05'dt;
+'2013-07-20T12:00:00+00:00'dt; '2013-07-20T12:00:00Z'dt;
+ +

Strings

+
'Single quoted string';
+"Double quoted string";
+'String ''quoted'' string "containing" quote';
+"Double ""quoted"" string 'containing' quote";
+ +

Operators

+
A**B;
+'foo'||'bar'!!'baz'¦¦'test';
+A<>B><C;
+A~=B¬=C^=D>=E<=F;
+a*b/c+d-e<f>g&h|i!j¦k;
+~a;¬b;^c;
+(a eq b) ne (c gt d) lt e ge f le h;
+state in ('NY','NJ','PA');
+not a;
+ +

More examples

+
/* Some examples adapted from the documentation (http://support.sas.com/documentation/cdl/en/basess/64003/PDF/default/basess.pdf) */
+
+data city; * another inline comment;
+
+	input Year 4. @7 ServicesPolice comma6.
+		@15 ServicesFire comma6. @22 ServicesWater_Sewer comma6.
+		@30 AdminLabor comma6. @39 AdminSupplies comma6.
+		@45 AdminUtilities comma6.;
+	ServicesTotal=ServicesPolice+ServicesFire+ServicesWater_Sewer;
+	AdminTotal=AdminLabor+AdminSupplies+AdminUtilities;
+	Total=ServicesTotal+AdminTotal;
+
+	Test='A string '' whith a quote';
+	Test2 = "A string "" whith a quote";
+
+	label   Total='Total Outlays'
+			ServicesTotal='Services: Total'
+			ServicesPolice='Services: Police'
+			ServicesFire='Services: Fire'
+			ServicesWater_Sewer='Services: Water & Sewer'
+			AdminTotal='Administration: Total'
+			AdminLabor='Administration: Labor'
+			AdminSupplies='Administration: Supplies'
+			AdminUtilities='Administration: Utilities';
+	datalines;
+1993 2,819 1,120 422 391 63 98
+1994 2,477 1,160 500 172 47 70
+1995 2,028 1,061 510 269 29 79
+1996 2,754 893 540 227 21 67
+1997 2,195 963 541 214 21 59
+1998 1,877 926 535 198 16 80
+1999 1,727 1,111 535 213 27 70
+2000 1,532 1,220 519 195 11 69
+2001 1,448 1,156 577 225 12 58
+2002 1,500 1,076 606 235 19 62
+2003 1,934 969 646 266 11 63
+2004 2,195 1,002 643 256 24 55
+2005 2,204 964 692 256 28 70
+2006 2,175 1,144 735 241 19 83
+2007 2,556 1,341 813 238 25 97
+2008 2,026 1,380 868 226 24 97
+2009 2,526 1,454 946 317 13 89
+2010 2,027 1,486 1,043 226 . 82
+2011 2,037 1,667 1,152 244 20 88
+2012 2,852 1,834 1,318 270 23 74
+2013 2,787 1,701 1,317 307 26 66
+;
+proc datasets library=work nolist
+;
+contents data=city
+;
+run;
+
+
+data city3;
+	set city(firstobs=10 obs=15);
+run;
+
+data services (keep=ServicesTotal ServicesPolice ServicesFire
+				ServicesWater_Sewer)
+	admin (keep=AdminTotal AdminLabor AdminSupplies
+			AdminUtilities);
+	set city(drop=Total);
+run;
+proc print data=services;
+	title 'City Expenditures: Services';
+run;
+
+data newlength;
+	set mylib.internationaltours;
+	length Remarks $ 30;
+	if Vendor = 'Hispania' then Remarks = 'Bonus for 10+ people';
+	else if Vendor = 'Mundial' then Remarks = 'Bonus points';
+	else if Vendor = 'Major' then Remarks = 'Discount for 30+ people';
+run;
+proc print data=newlength;
+	var Country Vendor Remarks;
+	title 'Information About Vendors';
+run;
+
+libname mylib 'permanent-data-library';
+data mylib.departures;
+	input Country $ 1-9 CitiesInTour 11-12 USGate $ 14-26
+	ArrivalDepartureGates $ 28-48;
+	datalines;
+Japan 5 San Francisco Tokyo, Osaka
+Italy 8 New York Rome, Naples
+Australia 12 Honolulu Sydney, Brisbane
+Venezuela 4 Miami Caracas, Maracaibo
+Brazil 4 Rio de Janeiro, Belem
+;
+proc print data=mylib.departures;
+	title 'Data Set AIR.DEPARTURES';
+run;
+
+data missingval;
+	length Country $ 10 TourGuide $ 10;
+	input Country TourGuide;
+	* lines is an alias for datalines;
+	lines;
+Japan Yamada
+Italy Militello
+Australia Edney
+Venezuela .
+Brazil Cardoso
+;
+
+data inventory_tool;
+	input PartNumber $ Description $ InStock @17
+		ReceivedDate date9. @27 Price;
+	format ReceivedDate date9.;
+	* cards is an alias for datalines;
+	cards;
+K89R seal 34 27jul2010 245.00
+M4J7 sander 98 20jun2011 45.88
+LK43 filter 121 19may2011 10.99
+MN21 brace 43 10aug2012 27.87
+BC85 clamp 80 16aug2012 9.55
+NCF3 valve 198 20mar2012 24.50
+KJ66 cutter 6 18jun2010 19.77
+UYN7 rod 211 09sep2010 11.55
+JD03 switch 383 09jan2013 13.99
+BV1E timer 26 03aug2013 34.50
+;
+run;
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-sass.html b/docs/_style/prism-master/examples/prism-sass.html new file mode 100644 index 00000000..7200e789 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-sass.html @@ -0,0 +1,47 @@ +

Comments

+
/* This comment will appear in the CSS output.
+  This is nested beneath the comment,
+  so it's part of it
+
+// This comment will not appear in the CSS output.
+  This is nested beneath the comment as well,
+  so it also won't appear
+ +

At-rules and shortcuts

+
@mixin large-text
+  color: #ff0000
+
+@media (min-width: 600px)
+  h1
+    @include large-text
+
+=large-text
+  color: #ff0000
+
+h1
+  +large-text
+ +

Variables

+
$width: 5em
+#main
+  width: $width
+
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Deprecated Sass syntax is not supported

+
.page
+  color = 5px + 9px
+
+!width = 13px
+.icon
+  width = !width
+ +

Selectors with pseudo classes are highlighted as property/value pairs

+
a:hover
+  text-decoration: underline
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-scala.html b/docs/_style/prism-master/examples/prism-scala.html new file mode 100644 index 00000000..1dc56f87 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-scala.html @@ -0,0 +1,100 @@ +

Comments

+
// Single line comment
+/* Mutli-line
+comment */
+ +

Strings and characters

+
'a'
+"foo bar baz"
+"""Multi-line
+string"""
+ +

Numbers

+
0
+21
+0xFFFFFFFF
+-42L
+0.0
+1e30f
+3.14159f
+1.0e-100
+.1
+
+ +

Symbols

+
'x
+'identifier
+ +

Full example

+
// Contributed by John Williams
+package examples
+
+object lazyLib {
+
+  /** Delay the evaluation of an expression until it is needed. */
+  def delay[A](value: => A): Susp[A] = new SuspImpl[A](value)
+
+  /** Get the value of a delayed expression. */
+  implicit def force[A](s: Susp[A]): A = s()
+
+  /**
+   * Data type of suspended computations. (The name froms from ML.)
+   */
+  abstract class Susp[+A] extends Function0[A]
+
+  /**
+   * Implementation of suspended computations, separated from the
+   * abstract class so that the type parameter can be invariant.
+   */
+  class SuspImpl[A](lazyValue: => A) extends Susp[A] {
+    private var maybeValue: Option[A] = None
+
+    override def apply() = maybeValue match {
+      case None =>
+        val value = lazyValue
+        maybeValue = Some(value)
+        value
+	  case Some(value) =>
+        value
+    }
+
+    override def toString() = maybeValue match {
+      case None => "Susp(?)"
+      case Some(value) => "Susp(" + value + ")"
+    }
+  }
+}
+
+object lazyEvaluation {
+  import lazyLib._
+
+  def main(args: Array[String]) = {
+    val s: Susp[Int] = delay { println("evaluating..."); 3 }
+
+    println("s     = " + s)       // show that s is unevaluated
+    println("s()   = " + s())     // evaluate s
+    println("s     = " + s)       // show that the value is saved
+    println("2 + s = " + (2 + s)) // implicit call to force()
+
+    val sl = delay { Some(3) }
+    val sl1: Susp[Some[Int]] = sl
+    val sl2: Susp[Option[Int]] = sl1   // the type is covariant
+
+    println("sl2   = " + sl2)
+    println("sl2() = " + sl2())
+    println("sl2   = " + sl2)
+  }
+}
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Nested block comments

+
/* Nested block
+	/* comments
+	are */
+not supported */
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-scheme.html b/docs/_style/prism-master/examples/prism-scheme.html new file mode 100644 index 00000000..de50f226 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-scheme.html @@ -0,0 +1,35 @@ +

Comments

+
; This is a comment
+ +

Booleans

+
#t
+#f
+ +

Strings

+
"two \"quotes\" within"
+ +

Functions

+
(lambda (x) (+ x 3))
+(apply vector 'a 'b '(c d e))
+
+ +

Full example

+
;; Calculation of Hofstadter's male and female sequences as a list of pairs
+
+(define (hofstadter-male-female n)
+  (letrec ((female (lambda (n)
+		     (if (= n 0)
+			 1
+			 (- n (male (female (- n 1)))))))
+	   (male (lambda (n)
+		   (if (= n 0)
+		       0
+		       (- n (female (male (- n 1))))))))
+    (let loop ((i 0))
+      (if (> i n)
+	  '()
+	  (cons (cons (female i)
+		      (male i))
+		(loop (+ i 1)))))))
+
+(hofstadter-male-female 8)
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-scss.html b/docs/_style/prism-master/examples/prism-scss.html new file mode 100644 index 00000000..f0daaf57 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-scss.html @@ -0,0 +1,31 @@ +

Comments

+
// Single line comment
+/* Multi-line
+comment */
+ +

At-rules

+
@import "foo.scss";
+@media (min-width: 600px) {}
+.seriousError {
+    @extend .error;
+}
+@for $i from 1 through 3 {}
+
+ +

Compass URLs

+
@font-face {
+	font-family: "opensans";
+	src: font-url("opensans.ttf");
+}
+ +

Variables

+
$width: 5em;
+#main {
+    width: $width;
+}
+ +

Interpolations are highlighted in property names

+
p.#{$name} {
+    #{$attr}-color: blue;
+}
+
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-smalltalk.html b/docs/_style/prism-master/examples/prism-smalltalk.html new file mode 100644 index 00000000..7fb70f8f --- /dev/null +++ b/docs/_style/prism-master/examples/prism-smalltalk.html @@ -0,0 +1,92 @@ +

Numbers

+
3
+30.45
+-3
+0.005
+-14.0
+13772
+8r377
+8r153
+8r34.1
+8r-37
+16r106
+16rFF
+16rAC.DC
+16r-1.C
+1.586e5
+1.586e-3
+8r3e2
+2r11e6
+ +

Strings and characters

+
$a
+$M
+$-
+$$
+$1
+'hi'
+'food'
+'the Smalltalk-80 system'
+'can''t'
+ +

Symbols

+
#bill
+#M63
+#+
+#*
+ +

Arrays

+
#(1 2 3)
+#('food' 'utilities' 'rent' 'household' 'transportation' 'taxes' 'recreation')
+#(('one' 1) ('not' 'negative') 0 -1)
+#(9 'nine' $9 (0 'zero' $0 ( ) 'e' $f 'g' $h 'i'))
+ +

Blocks

+
sum := 0.
+#(2 3 5 7 11) do: [ :primel | sum := sum + (prime * prime)]
+
+sizeAdder := [ :array | total := total + array size].
+
+[ :x :y | (x * x) + (y * y)]
+[ :frame :clippingBox | frame intersect: clippingBox]
+ +

Full example

+
Object>>method: num
+    "comment 123"
+    | var1 var2 |
+    (1 to: num) do: [:i | |var| ^i].
+    Klass with: var1.
+    Klass new.
+    arr := #('123' 123.345 #hello Transcript var $@).
+    arr := #().
+    var2 = arr at: 3.
+    ^ self abc
+
+heapExample
+    "HeapTest new heapExample"
+    "Multiline
+    decription"
+    | n rnd array time sorted |
+    n := 5000.
+    "# of elements to sort"
+    rnd := Random new.
+    array := (1 to: n)
+                collect: [:i | rnd next].
+    "First, the heap version"
+    time := Time
+                millisecondsToRun: [sorted := Heap withAll: array.
+    1
+        to: n
+        do: [:i |
+            sorted removeFirst.
+            sorted add: rnd next]].
+    Transcript cr; show: 'Time for Heap: ' , time printString , ' msecs'.
+    "The quicksort version"
+    time := Time
+                millisecondsToRun: [sorted := SortedCollection withAll: array.
+    1
+        to: n
+        do: [:i |
+            sorted removeFirst.
+            sorted add: rnd next]].
+    Transcript cr; show: 'Time for SortedCollection: ' , time printString , ' msecs'
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-smarty.html b/docs/_style/prism-master/examples/prism-smarty.html new file mode 100644 index 00000000..5e57922f --- /dev/null +++ b/docs/_style/prism-master/examples/prism-smarty.html @@ -0,0 +1,81 @@ +

Comments

+
{* This is a comment with <p>some markup</p> in it *}
+{* Multi-line
+comment *}
+ +

Variables

+
{$foo}
+{$foo.bar}
+{$foo.$bar}
+{$foo[$bar]}
+{$foo->bar}
+{$foo->bar()}
+{#foo#}
+{$smarty.config.foo}
+{$foo[bar]}
+
+ +

Strings and numbers

+
{$foo[4]}
+{$foo['bar']}
+ +

Tags and filters

+
{assign var=foo value='baa'}
+{include file='header.tpl'}
+{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}
+{$title|truncate:40:'...'}
+{$myArray|@count}
+
+{math equation="height * width / division"
+   height=$row_height
+   width=$row_width
+   division=#col_div#}
+ +

Control flow

+ +
{if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}
+   ...
+{/if}
+{if count($var) gt 0}{/if}
+{if $var is even by 3}
+   ...
+{/if}
+
+{foreach from=$myArray item=i name=foo}
+	{$smarty.foreach.foo.index}|{$smarty.foreach.foo.iteration},
+{/foreach}
+
+<ul>
+{foreach from=$items key=myId item=i}
+  <li><a href="item.php?id={$myId}">{$i.no}: {$i.label}</li>
+{/foreach}
+</ul>
+
+ +

Literal section

+
{literal}
+	<script>
+		(function() { /* This is JS, not Smarty */ } ());
+	</script>
+{/literal}
+
+<style type="text/css">
+{literal}
+/* this is an intersting idea for this section */
+.madIdea{
+    border: 3px outset #ffffff;
+    margin: 2 3 4 5px;
+    background-color: #001122;
+}
+{/literal}
+</style>
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Smarty tag in the middle of an HTML tag

+
<div{if $test} class="test"{/if}></div>
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-soy.html b/docs/_style/prism-master/examples/prism-soy.html new file mode 100644 index 00000000..648b8e5f --- /dev/null +++ b/docs/_style/prism-master/examples/prism-soy.html @@ -0,0 +1,36 @@ +

Comments

+
/* Multi-line
+comment */
+// This is a comment with <p>some markup</p> in it
+ +

Variable

+
{$name}
+{$folders[0]['name']}
+{$aaa?.bbb.ccc?[0]}
+ +

Commands

+
{template .helloNames}
+  // Greet the person.
+  {call .helloName data="all" /}
+ // Greet the additional people. + {foreach $additionalName in $additionalNames} + {call .helloName} + {param name: $additionalName /} + {/call} + {if not isLast($additionalName)} + <br> // break after every line except the last + {/if} + {ifempty} + No additional people to greet. + {/foreach} +{/template}
+ +

Functions and print directives

+
{if length($items) > 5}
+{$foo|changeNewlineToBr}
+{$bar|truncate: 4, false}
+ +

Literal section

+
{literal}
+This is not a {$variable}
+{/literal}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-sql.html b/docs/_style/prism-master/examples/prism-sql.html new file mode 100644 index 00000000..6fe99775 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-sql.html @@ -0,0 +1,34 @@ +

Comments

+
# Single line comment
+-- Single line comment
+// Single line comment
+/* Multi-line
+comment */
+ +

Strings

+
"foo \"bar\" baz"
+'foo \'bar\' baz'
+"Multi-line strings
+are supported"
+'Multi-line strings
+are supported'
+ +

Variables

+
SET @variable = 1;
+SET @$_ = 2;
+SET @"quoted-variable" = 3;
+SET @'quoted-variable' = 3;
+SET @`quoted-variable` = 3;
+ +

Operators

+
SELECT 1 && 1;
+SELECT 1 OR NULL;
+SELECT 5 & 2*3;
+SELECT 2 BETWEEN 1 AND 3;
+ +

Functions and keywords

+
SELECT COUNT(*) AS cpt, MAX(t.pos) AS max_pos
+FROM `my_table`
+LEFT JOIN `other_table` AS t
+WHERE `somecol` IS NOT NULL
+ORDER BY t.other_col DESC
diff --git a/docs/_style/prism-master/examples/prism-stylus.html b/docs/_style/prism-master/examples/prism-stylus.html new file mode 100644 index 00000000..2b8ffdca --- /dev/null +++ b/docs/_style/prism-master/examples/prism-stylus.html @@ -0,0 +1,72 @@ +

Full Example

+
/*!
+ * Adds the given numbers together.
+ */
+/*
+ * Adds the given numbers together.
+ */
+// I'm a comment!
+body {
+	font: 12px Helvetica, Arial, sans-serif;
+}
+a.button {
+	-webkit-border-radius: 5px;
+	-moz-border-radius: 5px;
+	border-radius: 5px;
+}
+
+body
+	font: 12px Helvetica, Arial, sans-serif;
+
+a.button:after
+	-webkit-border-radius: 5px;
+	-moz-border-radius: 5px;
+	border-radius: 5px;
+
+body
+	font: 12px Helvetica, Arial, sans-serif
+
+a.link > button#test, input[type=button], a:after
+	-webkit-border-radius: 5px
+	-moz-border-radius: 5px
+	border-radius: 5px
+
+font-size = 14px
+font = font-size "Lucida Grande", Arial
+
+body {
+	padding: 50px;
+	font: 14px/1.4 fonts;
+}
+
+border-radius()
+	-webkit-border-radius arguments
+	-moz-border-radius arguments
+	border-radius arguments
+
+body
+	font 12px Helvetica, Arial, sans-serif
+
+a.button
+	border-radius(5px)
+
+@media (max-width: 30em) {
+	body {
+		color: #fff;
+	}
+}
+
+@media (max-width: 500px)
+	.foo
+		color: #000
+
+	@media (min-width: 100px), (min-height: 200px)
+		.foo
+			color: #100
+
+sum(nums...)
+	sum = 0
+	sum += n for n in nums
+
+sum(1 2 3 4)
+// => 10
diff --git a/docs/_style/prism-master/examples/prism-swift.html b/docs/_style/prism-master/examples/prism-swift.html new file mode 100644 index 00000000..98d6eb55 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-swift.html @@ -0,0 +1,80 @@ +

Comments

+
// this is a comment
+/* this is also a comment,
+but written over multiple lines */
+
+ +

Numbers

+
42
+-23
+3.14159
+0.1
+-273.15
+1.25e-2
+0xC.3p0
+1_000_000
+1_000_000.000_000_1
+ +

Strings

+
let someString = "Some string literal value"
+var emptyString = ""
+// String interpolation
+let multiplier = 3
+"\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)"
+ +

Control flow

+
for index in 1...5 {
+	println("\(index) times 5 is \(index * 5)")
+}
+for _ in 1...power {
+	answer *= base
+}
+while square < finalSquare {
+	// roll the dice
+	if ++diceRoll == 7 { diceRoll = 1 }
+	// move by the rolled amount
+	square += diceRoll
+	if square < board.count {
+		// if we're still on the board, move up or down for a snake or a ladder
+		square += board[square]
+	}
+}
+switch someCharacter {
+	case "a", "e", "i", "o", "u":
+		println("\(someCharacter) is a vowel")
+	case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m",
+		"n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":
+		println("\(someCharacter) is a consonant")
+	default:
+		println("\(someCharacter) is not a vowel or a consonant")
+}
+
+ +

Classes and attributes

+
class MyViewController: UIViewController {
+    @IBOutlet weak var button: UIButton!
+    @IBOutlet var textFields: [UITextField]!
+    @IBAction func buttonTapped(AnyObject) {
+	    println("button tapped!")
+	}
+}
+
+@IBDesignable
+class MyCustomView: UIView {
+    @IBInspectable var textColor: UIColor
+    @IBInspectable var iconHeight: CGFloat
+    /* ... */
+}
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Nested block comments

+
/* Nested block
+	/* comments
+	are */
+not supported */
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-tcl.html b/docs/_style/prism-master/examples/prism-tcl.html new file mode 100644 index 00000000..080d817c --- /dev/null +++ b/docs/_style/prism-master/examples/prism-tcl.html @@ -0,0 +1,26 @@ +

Comments

+
# This is a comment
+ +

Strings

+
"foo \"bar\" baz"
+"foo\
+bar\
+baz"
+ +

Variables

+
$foo
+$foo::bar_42
+$::baz
+${foobar}
+set foo::bar "baz"
+ +

Functions

+
proc foobar {baz} {
+	puts $baz
+}
+
+proc RESTORE/post/:post_id/comment/:comment_id {post_id comment_id} {
+    #| Restore a comment handler
+    comment_restore $comment_id
+    qc::actions redirect [url "/post/$post_id" show_deleted_comment_ids $comment_id]
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-textile.html b/docs/_style/prism-master/examples/prism-textile.html new file mode 100644 index 00000000..4ff4d127 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-textile.html @@ -0,0 +1,178 @@ +

HTML

+
I am <b>very</b> serious.
+
+<div style="background:#fff">Foo bar</div>
+ +

Blocks

+
h1. Header 1
+
+h2. Header 2
+
+h3. Header 3 written on
+multiple lines
+
+bq. A block quotation
+on multiple lines.
+ +

Footnotes

+
This is covered elsewhere[1].
+
+fn1. Down here, in fact.
+ +

Structural emphasis

+
I _believe_ every word.
+And then? She *fell*!
+
+I __know__.
+I **really** __know__.
+
+??Cat's Cradle?? by Vonnegut
+
+Convert with @r.to_html@
+
+I'm -sure- not sure.
+
+You are a +pleasant+ child.
+
+a ^2^ + b ^2^ = c ^2^
+log ~2~ x
+ +

Block attributes

+
p(example1). An example
+
+p(#big-red). Red here
+
+p(example1#big-red2). Red here
+
+p{color:blue;margin:30px}. Spacey blue
+
+p[fr]. rouge
+ +

Phrase attributes

+
I seriously *{color:red}blushed*
+when I _(big)sprouted_ that
+corn stalk from my
+%[es]cabeza%.
+ +

Phrase alignments and indentation

+
p<. align left
+
+p>. align right
+
+p=. centered
+
+p<>. justified
+
+p(. left ident 1em
+
+p((. left ident 2em
+
+p))). right ident 3em
+ +

Attributes and alignments combined

+
h2()>. Bingo.
+
+h3()>[no]{color:red}. Bingo
+ +

Lists

+
# First item
+# Second item
+# Third
+
+# Fuel could be:
+## Coal
+## Gasoline
+## Electricity
+# Humans need only:
+## Water
+## Protein
+
+* First item
+* Second item
+* Third
+
+* Fuel could be:
+** Coal
+** Gasoline
+** Electricity
+* Humans need only:
+** Water
+** Protein
+
+#(foo) List can have attributes too
+#{background: red} Red item
+ +

Links and images

+
I searched "Google":http://google.com.
+
+I am crazy about "Hobix":hobix
+and "it's":hobix "all":hobix I ever
+"link to":hobix!
+
+[hobix]http://hobix.com
+
+And "(some-link)[en]links":# can have attributes too!
+
+!http://redcloth.org/hobix.com/textile/sample.jpg!
+!openwindow1.gif(Bunny.)!
+!openwindow1.gif!:http://hobix.com/
+
+!>obake.gif!
+
+And others sat all round the small
+machine and paid it to sing to them.
+ +

Tables

+
| name | age | sex |
+| joan | 24 | f |
+| archie | 29 | m |
+| bella | 45 | f |
+
+|_. name |_. age |_. sex |
+| joan | 24 | f |
+| archie | 29 | m |
+| bella | 45 | f |
+
+|_. attribute list |
+|<. align left |
+|>. align right|
+|=. center |
+|<>. justify |
+|^. valign top |
+|~. bottom |
+
+|\2. spans two cols |
+| col 1 | col 2 |
+
+|/3. spans 3 rows | a |
+| b |
+| c |
+
+|{background:#ddd}. Grey cell|
+
+table{border:1px solid black}.
+|This|is|a|row|
+|This|is|a|row|
+
+|This|is|a|row|
+{background:#ddd}. |This|is|grey|row|
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Nested styles are only partially supported

+ +

Only one level of nesting is supported.

+ +
*A bold paragraph %containing a span with broken _italic_ inside%!*
+ +

HTML inside Textile is not supported

+ +

But Textile inside HTML should be just fine.

+ +
<strong>This _should_ work properly.</strong>
+*But this is <em>definitely</em> broken.*
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-tsx.html b/docs/_style/prism-master/examples/prism-tsx.html new file mode 100644 index 00000000..d83d1dd8 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-tsx.html @@ -0,0 +1,31 @@ +

Full example

+
import * as React from 'react';
+
+interface IState {
+	clicks: number;
+}
+
+export class Clicker extends React.Component<any, IState> {
+	constructor(props) {
+		super(props);
+
+		this.state = {
+			clicks: 0,
+		};
+	}
+
+	public clickHandler = () => {
+		this.setState({ clicks: this.state.clicks + 1 });
+	}
+
+	public render() {
+		return (
+			<div>
+				<p>You have clicked the button {this.state.clicks} time(s).</p>
+				<p>
+					<button onClick={this.clickHandler}>click me</button>
+				</p>
+			</div>
+		);
+	}
+}
diff --git a/docs/_style/prism-master/examples/prism-tt2.html b/docs/_style/prism-master/examples/prism-tt2.html new file mode 100644 index 00000000..1a6711f9 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-tt2.html @@ -0,0 +1,61 @@ +

Comments

+
[%# this entire directive is ignored no
+    matter how many lines it wraps onto
+%]
+[% # this is a comment
+   theta = 20      # so is this
+   rho   = 30      # <aol>me too!</aol>
+%]
+
+ +

Variables

+
[% text %]
+[% article.title %]
+[%= eat.whitespace.left %]
+[% eat.whitespace.right =%]
+[%= eat.whitespace.both =%]
+[% object.method() %]
+ + +

Conditionals and Loops

+
[% IF foo = bar %]
+this
+[% ELSE %]
+that
+[% END %]
+[% FOREACH post IN q.listPosts(lingua = "de") %]
+  <a href="[% post.permalink %]">[% post.title | html %]</a>
+[% END %]
+ +

Multiple Directives

+
[% IF title;
+      INCLUDE header;
+   ELSE;
+      INCLUDE other/header  title="Some Other Title";
+   END
+%]
+ +

Operators

+
[% FOREACH post IN q.listPosts(lingua => 'de') %]
+  [% post.title | myfilter(foo = "bar") %]
+[% END %]
+ +

Known Limitations

+
    +
  • + Outline tags are not supported.
  • +
  • The arguments to + TAGS + are usually misinterpreted
  • +
  • In TT2, you can use keywords as identifiers where this is + unambiguous. But these keywords will be highlighted as keywords, not + as variables here.
  • +
  • The + ANYCASE + option is not supported.
  • +
  • + Any number of backslashes in front of dollar signs inside of double quoted + strings are ignored since the behavior of Template Toolkit 2.26 seems to be + inconsistent. +
  • +
diff --git a/docs/_style/prism-master/examples/prism-twig.html b/docs/_style/prism-master/examples/prism-twig.html new file mode 100644 index 00000000..0a707815 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-twig.html @@ -0,0 +1,35 @@ +

Comments

+
{# Some comment
+on multiple lines
+with <html></html>
+inside #}
+ +

Keywords

+
{% if foo %} bar {% endif %}
+{% for key, value in arr if value %} {{ do_something() }} {% endfor %}
+{% include 'header.html' %}
+{% include 'template.html' with {'foo': 'bar'} %}
+ +

Operators

+
{{ not a }}
+{{ 20 // 7 }}
+{{ b b-and c }}
+{% if phone matches '/^[\\d\\.]+$/' %} ... {% endif %}
+ +

Twig embedded in HTML

+
<div>
+{% if foo %}
+	<p>Foo!</p>
+{% else %}
+	<p>Not foo...</p>
+{% endif %}
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Tag containing Twig is not highlighted

+
<div{% if foo %} class="bar"{% endif %}></div>
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-typescript.html b/docs/_style/prism-master/examples/prism-typescript.html new file mode 100644 index 00000000..561c4dc4 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-typescript.html @@ -0,0 +1,28 @@ +

Full example

+
interface SearchFunc {
+  (source: string, subString: string): boolean;
+}
+
+var mySearch: SearchFunc;
+mySearch = function(source: string, subString: string) {
+  var result = source.search(subString);
+  if (result == -1) {
+    return false;
+  }
+  else {
+    return true;
+  }
+}
+
+class Greeter {
+    greeting: string;
+    constructor(message: string) {
+        this.greeting = message;
+    }
+    greet() {
+        return "Hello, " + this.greeting;
+    }
+}
+
+var greeter = new Greeter("world");
+
diff --git a/docs/_style/prism-master/examples/prism-vala.html b/docs/_style/prism-master/examples/prism-vala.html new file mode 100644 index 00000000..ef5e98a9 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-vala.html @@ -0,0 +1,33 @@ +

Comments

+
// Single line comment
+/** Multi-line
+doc comment */
+ +

Strings

+
"foo \"bar\" baz"
+"Multi-line strings ending with a \
+are supported too."
+"""Verbatim strings
+You can create
+multi-line strings like this too."""
+@"Template string with variables $var1 $(var2 * 2)"
+ +

Regex

+
/foo?[ ]*bar/
+ +

Full example

+
using Gtk;
+
+int main (string[] args) {
+	Gtk.init(ref args);
+
+	var window = new Window();
+
+	var button = new Button.with_label("Click me!");
+
+	window.add(button);
+	window.show_all();
+
+	Gtk.main();
+	return 0;
+}
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-vbnet.html b/docs/_style/prism-master/examples/prism-vbnet.html new file mode 100644 index 00000000..bc2a376b --- /dev/null +++ b/docs/_style/prism-master/examples/prism-vbnet.html @@ -0,0 +1,16 @@ +

Comments

+
!foobar
+REM foobar
+'foobar
+ +

Example

+
Public Function findValue(ByVal arr() As Double,
+    ByVal searchValue As Double) As Double
+    Dim i As Integer = 0
+    While i <= UBound(arr) AndAlso arr(i) <> searchValue
+        ' If i is greater than UBound(arr), searchValue is not checked.
+        i += 1
+    End While
+    If i > UBound(arr) Then i = -1
+    Return i
+End Function
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-velocity.html b/docs/_style/prism-master/examples/prism-velocity.html new file mode 100644 index 00000000..a97fa05e --- /dev/null +++ b/docs/_style/prism-master/examples/prism-velocity.html @@ -0,0 +1,47 @@ +

Comments

+
## Single line comment
+#* Multi-line
+comment *#
+ +

Unparsed sections

+
## Section below is not parsed
+#[[
+	## This is not a comment
+]]#
+ +

Variables

+
$mud
+$customer.Name
+$flogger.getPromo( $mud )
+$!{mudSlinger_9}
+$foo[0]
+$foo[$i]
+$foo["bar"]
+$foo.bar[1].junk
+$foo.callMethod()[1]
+ +

Directives

+
#set($foo.bar[1] = 3)
+#if($a==1)true enough#{else}no way!#end
+#macro( d )
+<tr><td>$!bodyContent</td></tr>
+#end
+#@d()Hello!#end
+ +

Integration with HTML

+
<html>
+  <body>
+    Hello $customer.Name!
+    <table>
+    #foreach( $mud in $mudsOnSpecial )
+      #if ( $customer.hasPurchased($mud) )
+        <tr>
+          <td>
+            $flogger.getPromo( $mud )
+          </td>
+        </tr>
+      #end
+    #end
+    </table>
+  </body>
+</html>
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-verilog.html b/docs/_style/prism-master/examples/prism-verilog.html new file mode 100644 index 00000000..d7c9a0bf --- /dev/null +++ b/docs/_style/prism-master/examples/prism-verilog.html @@ -0,0 +1,103 @@ +

Note that this package supports syntax highlighting for both Verilog and System Verilog.

+ +

Comments

+
/* Multiline comments in Verilog
+   look like C comments and // is OK in here. */
+// Single-line comment in Verilog.
+ +

Literals

+
// example code from: http://iroi.seu.edu.cn/books/asics/Book2/CH11/CH11.02.htm
+module declarations;
+  parameter H12_UNSIZED = 'h 12;
+  parameter H12_SIZED = 6'h 12;
+  parameter D42 = 8'B0010_1010;
+  parameter D123 = 123;
+  parameter D63 = 8'o 77;
+  parameter A = 'h x, B = 'o x, C = 8'b x, D = 'h z, E = 16'h ????;
+  reg [3:0] B0011,Bxxx1,Bzzz1;
+  real R1,R2,R3;
+  integer I1,I3,I_3;
+  parameter BXZ = 8'b1x0x1z0z;
+
+  initial begin
+    B0011 = 4'b11; Bxxx1 = 4'bx1; Bzzz1 = 4'bz1;
+    R1 = 0.1e1; R2 = 2.0; R3 = 30E-01;
+    I1 = 1.1; I3 = 2.5; I_3 = -2.5;
+  end
+
+  initial begin #1;
+    $display("H12_UNSIZED, H12_SIZED (hex) = %h, %h",H12_UNSIZED, H12_SIZED);
+    $display("D42 (bin) = %b",D42," (dec) = %d",D42);
+    $display("D123 (hex) = %h",D123," (dec) = %d",D123);
+    $display("D63 (oct) = %o",D63);
+    $display("A (hex) = %h",A," B (hex) = %h",B);
+    $display("C (hex) = %h",C," D (hex) = %h",D," E (hex) = %h",E);
+    $display("BXZ (bin) = %b",BXZ," (hex) = %h",BXZ);
+    $display("B0011, Bxxx1, Bzzz1 (bin) = %b, %b, %b",B0011,Bxxx1,Bzzz1);
+    $display("R1, R2, R3 (e, f, g) = %e, %f, %g", R1, R2, R3);
+    $display("I1, I3, I_3 (d) = %d, %d, %d", I1, I3, I_3);
+  end
+endmodule
+ +

Full example

+
`include "internal_defines.vh"
+
+//*****************************************************************************
+// memory_decoder: a custom module used to handle memory transactions
+//*****************************************************************************
+//
+// out_mem (output) - The output to memory
+// out_reg (output) - The output to the register file
+// mem_we  (output) - Which byte in the word to write too
+// mem_in  (input)  - The input from memory
+// addr_in (input)  - The lowest 2 bits of byte offset to store in memory
+// data_in (input)  - The input from the register file to be stored
+// l_bit   (input)  - The load bit signal (control)
+// b_bit   (input)  - The byte bit signal (control)
+//
+module memory_decoder(out_mem, out_reg, mem_in, data_in, l_bit, b_bit, addr_in,
+                      mem_we);
+
+  output reg  [31:0]  out_mem, out_reg;
+  output reg  [3:0]   mem_we;
+  input       [31:0]  mem_in, data_in;
+  input       [1:0]   addr_in;
+  input               l_bit, b_bit;
+
+  always_comb begin
+    mem_we = 4'b0000;     // dont write memory by default
+    if (l_bit == 1) begin // ldr and ldrb
+      out_mem = mem_in;   // dont change memory!
+      if (b_bit == 1) begin
+        /* figure out which byte to load from memory */
+        case (addr_in)
+          2'b00: out_reg = {24'b00, mem_in[7:0]};
+          2'b01: out_reg = {24'b00, mem_in[15:8]};
+          2'b10: out_reg = {24'b00, mem_in[23:16]};
+          2'b11: out_reg = {24'b00, mem_in[31:24]};
+        endcase
+      end
+      else begin
+        out_reg = mem_in;
+      end
+    end
+    else begin            // str and strb
+      out_reg = `UNKNOWN; // We are not reading from mem
+      if (b_bit == 1) begin
+        /* figure out which byte to write to in memory */
+        out_mem = {4{data_in[7:0]}};
+        case (addr_in)
+          2'b00: mem_we = 4'b1000;
+          2'b01: mem_we = 4'b0100;
+          2'b10: mem_we = 4'b0010;
+          2'b11: mem_we = 4'b0001;
+        endcase
+      end
+      else begin
+        mem_we = 4'b1111; // write to all channels
+        out_mem = data_in;
+      end
+    end
+  end
+
+endmodule
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-vhdl.html b/docs/_style/prism-master/examples/prism-vhdl.html new file mode 100644 index 00000000..b4950851 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-vhdl.html @@ -0,0 +1,92 @@ +

Comments

+
-- I am a comment
+I am not
+ +

Literals

+
constant FREEZE : integer := 32;
+constant TEMP : real := 32.0;
+A_INT <= 16#FF#;
+B_INT <= 2#1010_1010#;
+MONEY := 1_000_000.0;
+FACTOR := 2.2E-6;
+constant DEL1 :time := 10 ns;
+constant DEL2 :time := 2.27 us;
+type MY_LOGIC is ('X','0','1','Z');
+type T_STATE is (IDLE, READ, END_CYC);
+signal CLK : MY_LOGIC := '0';
+signal STATE : T_STATE := IDLE;
+constant FLAG :bit_vector(0 to 7) := "11111111";
+constant MSG : string := "Hello";
+BIT_8_BUS <= B"1111_1111";
+BIT_9_BUS <= O"353";
+BIT_16_BUS <= X"AA55";
+constant TWO_LINE_MSG : string := "Hello" & CR & "World";
+ +

Full example

+
-- example code from: http://www.csee.umbc.edu/portal/help/VHDL/samples/samples.html
+library IEEE;
+use IEEE.std_logic_1164.all;
+
+entity fadd is               -- full adder stage, interface
+  port(a    : in  std_logic;
+       b    : in  std_logic;
+       cin  : in  std_logic;
+       s    : out std_logic;
+       cout : out std_logic);
+end entity fadd;
+
+architecture circuits of fadd is  -- full adder stage, body
+begin  -- circuits of fadd
+  s <= a xor b xor cin after 1 ns;
+  cout <= (a and b) or (a and cin) or (b and cin) after 1 ns;
+end architecture circuits; -- of fadd
+
+library IEEE;
+use IEEE.std_logic_1164.all;
+entity add32 is             -- simple 32 bit ripple carry adder
+  port(a    : in  std_logic_vector(31 downto 0);
+       b    : in  std_logic_vector(31 downto 0);
+       cin  : in  std_logic;
+       sum  : out std_logic_vector(31 downto 0);
+       cout : out std_logic);
+end entity add32;
+
+architecture circuits of add32 is
+  signal c : std_logic_vector(0 to 30); -- internal carry signals
+begin  -- circuits of add32
+  a0: entity WORK.fadd port map(a(0), b(0), cin, sum(0), c(0));
+  stage: for I in 1 to 30 generate
+             as: entity WORK.fadd port map(a(I), b(I), c(I-1) , sum(I), c(I));
+         end generate stage;
+  a31: entity WORK.fadd port map(a(31), b(31), c(30) , sum(31), cout);
+end architecture circuits;  -- of add32
+
+use STD.textio.all;
+library IEEE;
+use IEEE.std_logic_1164.all;
+use IEEE.std_logic_textio.all;
+
+entity signal_trace is
+end signal_trace;
+
+architecture circuits of signal_trace is
+  signal a:    std_logic_vector(31 downto 0) := x"00000000";
+  signal b:    std_logic_vector(31 downto 0) := x"FFFFFFFF";
+  signal cin:  std_logic := '1';
+  signal cout: std_logic;
+  signal sum:  std_logic_vector(31 downto 0);
+begin  -- circuits of signal_trace
+  adder: entity WORK.add32 port map(a, b, cin, sum, cout); -- parallel circuit
+
+  prtsum: process (sum)
+            variable my_line : LINE;
+            alias swrite is write [line, string, side, width] ;
+          begin
+            swrite(my_line, "sum=");
+            write(my_line, sum);
+            swrite(my_line, ",  at=");
+            write(my_line, now);
+            writeline(output, my_line);
+          end process prtsum;
+
+end architecture circuits; -- of signal_trace
diff --git a/docs/_style/prism-master/examples/prism-vim.html b/docs/_style/prism-master/examples/prism-vim.html new file mode 100644 index 00000000..567b8206 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-vim.html @@ -0,0 +1,25 @@ +

Comments

+
" This is a comment
+ +

Variables

+

+set softab = 2
+map <leader>tn :tabnew
+
+ +

Map

+
mystring = :steveT;
+ +

Functions

+

+func! DeleteTrailingWS()
+  exe "normal mz"
+  %s/\s\+$//ge
+  exe "normal `z"
+endfunc
+ +

Logic

+

+if has("mac")
+  nmap <D-j> <M-j>
+endif
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-visual-basic.html b/docs/_style/prism-master/examples/prism-visual-basic.html new file mode 100644 index 00000000..733faa82 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-visual-basic.html @@ -0,0 +1,36 @@ +

Comments

+
' Comment
+REM This is a comment too
+ +

Strings and characters

+
"Foo""bar"
+“”
+"a"c
+ +

Dates and times

+
# 8/23/1970 3:45:39AM #
+#8/23/1970 #
+# 3:45:39AM #
+# 3:45:39#
+# 13:45:39 #
+# 1AM #
+# 13:45:39PM #
+ +

Numbers

+
42S
+.369E+14
+3.1415R
+ +

Preprocessing directives

+
#ExternalChecksum("c:\wwwroot\inetpub\test.aspx", _
+    "{12345678-1234-1234-1234-123456789abc}", _
+    "1a2b3c4e5f617239a49b9a9c0391849d34950f923fab9484")
+ +

Keywords

+
Function AddNumbers(ByVal X As Integer, ByVal Y As Integer)
+    AddNumbers = X + Y
+End Function
+Module Test
+    Sub Main()
+    End Sub
+End Module
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-wasm.html b/docs/_style/prism-master/examples/prism-wasm.html new file mode 100644 index 00000000..5cc1b65c --- /dev/null +++ b/docs/_style/prism-master/examples/prism-wasm.html @@ -0,0 +1,43 @@ +

Comments

+
;; Single line comment
+(; Multi-line
+comment ;)
+ +

Strings

+
""
+"Foobar"
+"Foo\"ba\\r"
+ +

Numbers

+
42
+3.1415
+0.4E-4
+-3.1_41_5
+0xBADFACE
+0xB_adF_a_c_e
++0x4E.F7
+0xFFp+4
+inf
+nan
+nan:0xf4
+ +

Keywords

+
(func (param i32) (param f32) (local f64)
+  get_local 0
+  get_local 1
+  get_local 2)
+ +

Identifiers

+
$p
+$getAnswer
+$return_i32
+ +

Full example

+
(module
+  (import "js" "memory" (memory 1))
+  (import "js" "table" (table 1 anyfunc))
+  (elem (i32.const 0) $shared0func)
+  (func $shared0func (result i32)
+   i32.const 0
+   i32.load)
+)
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-wiki.html b/docs/_style/prism-master/examples/prism-wiki.html new file mode 100644 index 00000000..295eb3f8 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-wiki.html @@ -0,0 +1,165 @@ +

Embedded markup

+
Paragraphs can be forced in lists by using HTML tags.
+Two line break symbols, <code><nowiki><br /><br /></nowiki></code>, will create the desired effect. So will enclosing all but the first paragraph with <code><nowiki><p>...</p></nowiki></code>
+ +

Headings

+
= Header 1 =
+== Header 2 ==
+=== Header 3 ===
+==== Header 4 ====
+===== Header 5 =====
+====== Header 6 ======
+ +

Bold and italic

+
'''''Both bold and italic'''''
+'''Only bold'''
+''Only italic''
+ +

Links and Magic links

+
[[w:en:Formal_grammar|Formal grammar]]
+[http://www.cl.cam.ac.uk/~mgk25/iso-ebnf.html EBNF help]
+
+ISBN 1234567890
+ISBN 123456789x
+ISBN      1 2 3-4-5 6789 X
+ISBN 978-9999999999
+
+RFC 822
+PMID 822
+ +

Magic words and special symbols

+
#REDIRECT [[somewhere]]
+
+{{SITENAME}}
+{{PAGESINCATEGORY:category}}
+{{#dateformat:2009-12-25|mdy}}
+
+__NOTOC__
+
+{{!}}
+
+~~~ ~~~~ ~~~~~
+ +

Lists

+
* Lists are easy to do:
+** start every line
+* with a star
+** more stars mean
+*** deeper levels
+
+# Numbered lists are good
+## very organized
+## easy to follow
+
+; Definition lists
+; item : definition
+; semicolon plus term
+: colon plus definition
+
+* Or create mixed lists
+*# and nest them
+*#* like this
+*#*; definitions
+*#*: work:
+*#*; apple
+*#*; banana
+*#*: fruits
+ +

Tables

+
{|
+|Orange
+|Apple
+|-
+|Bread
+|Pie
+|-
+|Butter
+|Ice cream
+|}
+
+{|
+|Lorem ipsum dolor sit amet,
+consetetur sadipscing elitr,
+sed diam nonumy eirmod tempor invidunt
+ut labore et dolore magna aliquyam erat,
+sed diam voluptua.
+
+At vero eos et accusam et justo duo dolores
+et ea rebum. Stet clita kasd gubergren,
+no sea takimata sanctus est Lorem ipsum
+dolor sit amet.
+|
+* Lorem ipsum dolor sit amet
+* consetetur sadipscing elitr
+* sed diam nonumy eirmod tempor invidunt
+|}
+
+{|
+|  Orange    ||   Apple   ||   more
+|-
+|   Bread    ||   Pie     ||   more
+|-
+|   Butter   || Ice cream ||  and more
+|}
+
+{|
+! style="text-align:left;"| Item
+! Amount
+! Cost
+|-
+|Orange
+|10
+|7.00
+|-
+|Bread
+|4
+|3.00
+|-
+|Butter
+|1
+|5.00
+|-
+!Total
+|
+|15.00
+|}
+
+{|
+! style="text-align:left;"| Item !! style="color:red;"| Amount !! Cost
+|-
+|Orange
+|10
+|7.00
+|-
+| style="text-align:right;"| Bread
+|4
+|3.00
+|-
+|Butter
+|1
+|5.00
+|-
+!Total
+|
+|15.00
+|}
+ +

Known failures

+

There are certain edge cases where Prism will fail. + There are always such cases in every regex-based syntax highlighter. + However, Prism dares to be open and honest about them. + If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug. +

+ +

Nested magic words are not supported

+ +
{{#switch:{{PAGENAME}}
+| L'Aquila = No translation
+| L = Not OK
+| L'Aquila = Entity escaping
+| L'Aquila = Numeric char encoding
+}}
+ +

Nesting of bold and italic is not supported

+
''Italic with '''bold''' inside''
+ diff --git a/docs/_style/prism-master/examples/prism-xeora.html b/docs/_style/prism-master/examples/prism-xeora.html new file mode 100644 index 00000000..541a9165 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-xeora.html @@ -0,0 +1,111 @@ +

Special Constants

+
$DomainContents$
+$PageRenderDuration$
+ +

Operators & Variables

+
$SearchKey$
+$^SearchKey$
+$~SearchKey$
+$-SearchKey$
+$+SearchKey$
+$=SearchKey$
+$#SearchKey$
+$##SearchKey$
+
+$*SearchKey$
+
+$@SearchObject.SearchProperty$
+$@#SearchObject.SearchProperty$
+$@-SearchObject.SearchProperty$
+ +

Controls

+
$C:ControlID$
+$C:ControlID:{ <!-- Something --> }:ControlID$
+$C:ControlID:{ <!-- Something --> }:ControlID:{ <!-- Something (Alternative) --> }:ControlID$
+
+Control with Parent
+$C[Control1]:Control2$
+$C[Control2]:Control3:{ <!-- Something --> }:Control3$
+$C[Control2]:Control3:{ <!-- Something --> }:Control3:{ <!-- Something (Alternative) --> }:Control3$
+
+Control with Parent & Leveling
+$C#1[ParentControlID]:ControlID:{ <!-- Something --> }:ControlID$
+
+All Control Tags has leveling specification;
+$C:LoopControl1:{
+	$#FirstLoopSQLField1$
+
+	$C:ControlID:{ <!-- Something --> }:ControlID$
+
+	$C:LoopControl2:{
+		$##FirstLoopSQLField1$
+		$#SecondLoopSQLField1$
+
+		$C#1:ControlID:{ <!-- Something --> }:ControlID$
+	}:LoopControl2$
+}:LoopControl1$
+
+XML setup on a Control in Controls.xml
+<Control id="[ControlID]">
+	<Type>[ControlType]</Type>
+
+	<Bind>[ThemeID|AddonID]?[ControlClass].[FunctionName],SomeOperatorTags(seperated with |)</Bind>
+
+	<BlockIDsToUpdate localupdate="True|False">
+		<BlockID>[BlockID]</BlockID>
+		<BlockID>[BlockID]</BlockID>
+		<BlockID>[BlockID]</BlockID>
+	</BlockIDsToUpdate>
+
+	<DefaultButtonID>[ControlID]</DefaultButtonID>
+
+	<Text>[TextBox, Password value or Button Text]</Text>
+
+	<Content>[Textarea Content]</Content>
+
+	<Source>[Image URL]</Source>
+
+	<Url>[Link URL]</Url>
+
+	<Attributes>
+		<Attribute key="[HTMLAttributeKey]">[AttributeValue]</Attributes>
+	</Attributes>
+</Control>
+ +

Directives

+
$T:TemplateID$
+$L:TranslationID$
+$P:TemplateID$
+ +

Executable Functions

+
$F:AddonLib1?GlobalControls.PrintOutSums$
+$F:AddonLib1?GlobalControls.PrintOut,~FormField$
+$F:AddonLib1?GlobalControls.SumNumbers,~FormField|=5$
+ +

Client Side Function Binding

+
$XF:{AddonLib1?GlobalControls.SumNumbers,~FormField|=5}:XF$
+ +

Inline Statements

+
$S:StatementID:{ <!-- C# Code --> }:StatementID$
+$S:StatementID:{!NOCACHE <!-- C# Code --> }:StatementID$
+
+$S:Statement1:{
+	int intvalue1 = 5;
+	int intvalue2 = Integer.Parse("0" + $~FormValue$);
+
+	return intvalue1 * intvalue2;
+}:Statement1$
+ +

Request Blocks

+
$H:RequestBlockID:{ <!-- Something --> }:RequestBlockID$
+$H:RequestBlockID:{!RENDERONREQUEST <!-- Something --> }:RequestBlockID$
+ +

Cache Block

+
$PC:{ <!-- Page Content Part --> }:PC$
+ +

Message Handling Block

+
$MB:{ <!-- Message Output Content --> }:MB$
+$MB:{
+	$#Message$
+	$#MessageType$
+}:MB$
diff --git a/docs/_style/prism-master/examples/prism-xojo.html b/docs/_style/prism-master/examples/prism-xojo.html new file mode 100644 index 00000000..35480744 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-xojo.html @@ -0,0 +1,63 @@ +

Comments

+
' This is a comment
+// This is a comment too
+Rem This is a remark
+ +

Strings

+
""
+"foo ""bar"" baz"
+ +

Numbers and colors

+
42
+3.14159
+3E4
+&b0110
+&cAABBCCDD
+&hBadFace
+&o777
+&u9
+ +

Example

+
Dim g As Graphics
+Dim yOffSet As Integer
+g = OpenPrinterDialog()
+If g <> Nil Then
+  If MainDishMenu.ListIndex <> -1 Then
+    g.Bold = True
+    g.DrawString("Main Dish:",20,20)
+    g.Bold = False
+    g.DrawString(MainDishMenu.Text,100,20)
+    g.Bold = True
+    g.DrawString("Side Order:",20,40)
+    g.Bold = False
+    If FriesRadio.Value Then
+      g.DrawString(FriesRadio.Caption,100,40)
+    End If
+    If PotatoRadio.Value Then
+      g.DrawString(PotatoRadio.Caption,100,40)
+    End If
+    If OnionRingRadio.Value Then
+      g.DrawString(OnionRingRadio.Caption,100,40)
+    End If
+    yOffSet = 60
+    If CheeseCheckBox.Value Then
+      g.Bold = True
+      g.DrawString("Extra:",20,yOffSet)
+      g.Bold = False
+      g.DrawString(CheeseCheckBox.Caption,100,yOffSet)
+      yOffSet = yOffSet + 20
+    End If
+    If BaconCheckBox.Value Then
+      g.Bold = True
+      g.DrawString("Extra:",20,yOffSet)
+      g.Bold = False
+      g.DrawString(BaconCheckBox.Caption,100,yOffSet)
+      yOffSet = yOffSet + 20
+    End If
+    g.Bold = True
+    g.DrawString("Notes:",20,yOffSet)
+    g.Bold = False
+    g.DrawString(NotesField.Text,100,yOffSet,(g.Width-40))
+  End If
+End If
+
diff --git a/docs/_style/prism-master/examples/prism-xquery.html b/docs/_style/prism-master/examples/prism-xquery.html new file mode 100644 index 00000000..8166d771 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-xquery.html @@ -0,0 +1,47 @@ +

Comments

+
(::)
+(: Comment :)
+(: Multi-line
+comment :)
+(:~
+: The <b>functx:substring-after-last</b> function returns the part
+: of <b>$string</b> that appears after the last occurrence of
+: <b>$delim</b>. If <b>$string</b> does not contain
+: <b>$delim</b>, the entire string is returned.
+:
+: @param $string the string to substring
+: @param $delim the delimiter
+: @return the substring
+:)
+ +

Variables

+
$myProduct
+$foo-bar
+$strings:LetterA
+ +

Functions

+
document-node(schema-element(catalog))
+strings:trim($arg as xs:string?)
+false()
+ +

Keywords

+
xquery version "1.0";
+declare default element namespace "http://datypic.com/cat";
+declare boundary-space preserve;
+declare default collation "http://datypic.com/collation/custom";
+ +

Types

+
xs:anyAtomicType
+element
+xs:double
+ +

Full example

+
<report xmlns="http://datypic.com/report"
+xmlns:cat="http://datypic.com/cat"
+xmlns:prod="http://datypic.com/prod"> {
+for $product in doc("prod_ns.xml")/prod:product
+return <lineItem>
+{$product/prod:number}
+{$product/prod:name}
+</lineItem>
+} </report>
\ No newline at end of file diff --git a/docs/_style/prism-master/examples/prism-yaml.html b/docs/_style/prism-master/examples/prism-yaml.html new file mode 100644 index 00000000..bea52f86 --- /dev/null +++ b/docs/_style/prism-master/examples/prism-yaml.html @@ -0,0 +1,107 @@ +

Null and Boolean

+
---
+A null: null
+A null: ~
+Also a null: # Empty
+Not a null: ""
+Booleans: [ true, True, false, FALSE ]
+
+ +

Numbers and timestamps

+
---
+Integers: [ 0, -0, 3, 0o7, 0x3A, -19 ]
+Floats: [ 0., -0.0, .5, 12e03, +12e03, -2E+05 ]
+Also floats: [ .inf, -.Inf, +.INF, .NAN ]
+Timestamps:
+  canonical: 2001-12-15T02:59:43.1Z
+  iso8601: 2001-12-14t21:59:43.10-05:00
+  spaced: 2001-12-14 21:59:43.10 -5
+  date: 2002-12-14
+  times:
+    - 10:53
+    - 10:53:20.53
+
+ +

Strings

+
---
+product: High Heeled "Ruby" Slippers
+description: "Putting on these \"slippers\" is easy."
+address:
+  city:   East Centerville
+  street: !!str |
+    123 Tornado Alley
+    Suite 16
+
+  specialDelivery:  >
+    Follow the Yellow Brick
+    Road to the Emerald City.
+    #Pay no attention to the
+    man behind the curtain.
+
+ +

Sequences and maps

+
---
+- Casablanca
+- North by Northwest
+- {
+    name: John Smith, age: 33}
+- name: Mary Smith
+  age: 27
+---
+"name": John Smith
+age: 33
+men: [ John Smith,
+    "Bill Jones" ]
+women:
+ - Mary Smith
+ - "Susan Williams"
+
+ +

Tags

+
---
+!!map {
+  ? !!str friends: !!seq [
+    !!map {
+      ? !!str "age"
+      : !!int 33,
+      ? !!str "name"
+      : !!str "John Smith",
+    }
+  ],
+  men:
+    [ !!str "John Smith", !!str "Bill Jones"]
+}
+
+ +

Full example

+
%YAML 1.2
+--- !<tag:clarkevans.com,2002:invoice>
+invoice: 34843
+date   : 2001-01-23
+bill-to: &id001
+  given  : Chris
+  family : Dumars
+  address:
+    lines: |
+      458 Walkman Dr.
+      Suite #292
+    city    : Royal Oak
+    state   : MI
+    postal  : 48046
+ship-to:
+  <<: *id001
+  product:
+    - sku         : BL394D
+      quantity    : 4
+      description : Basketball
+      price       : 450.00
+    - sku         : BL4438H
+      quantity    : 1
+      description : Super Hoop
+      price       : 2392.00
+tax  : 251.42
+total: 4443.52
+comments:
+    Late afternoon is best.
+    Backup contact is Nancy
+
diff --git a/docs/_style/prism-master/extending.html b/docs/_style/prism-master/extending.html new file mode 100644 index 00000000..59101b6f --- /dev/null +++ b/docs/_style/prism-master/extending.html @@ -0,0 +1,247 @@ + + + + + + +Extending Prism ▲ Prism + + + + + + + + + +
+
+ +

Extending Prism

+

Prism is awesome out of the box, but it’s even awesomer when it’s customized to your own needs. This section will help you write new language definitions, plugins and all-around Prism hacking.

+
+ +
+

Language definitions

+ +

Every language is defined as a set of tokens, which are expressed as regular expressions. For example, this is the language definition for CSS:

+

+
+	

A regular expression literal is the simplest way to express a token. An alternative way, with more options, is by using an object literal. With that notation, the regular expression describing the token would be the pattern attribute:

+
...
+'tokenname': {
+	pattern: /regex/
+}
+...
+

So far the functionality is exactly the same between the short and extended notations. However, the extended notation allows for additional options:

+ +
+
inside
+
This property accepts another object literal, with tokens that are allowed to be nested in this token. + This makes it easier to define certain languages. However, keep in mind that they’re slower and if coded poorly, can even result in infinite recursion. + For an example of nested tokens, check out the Markup language definition: +
+ +
lookbehind
+
This option mitigates JavaScript’s lack of lookbehind. When set to true, + the first capturing group in the regex pattern is discarded when matching this token, so it effectively behaves + as if it was lookbehind. For an example of this, check out the C-like language definition, in particular the comment and class-name tokens: +
+ +
rest
+
Accepts an object literal with tokens and appends them to the end of the current object literal. Useful for referring to tokens defined elsewhere. For an example where rest is useful, check the Markup definitions above.
+ +
alias
+
This option can be used to define one or more aliases for the matched token. The result will be, that + the styles of the token and its aliases are combined. This can be useful, to combine the styling of a well known + token, which is already supported by most of the themes, with a semantically correct token name. The option + can be set to a string literal or an array of string literals. In the following example the token + name latex-equation is not supported by any theme, but it will be highlighted the same as a string. +
{
+	'latex-equation': {
+		pattern: /\$(\\?.)*?\$/g,
+		alias: 'string'
+	}
+}
+ +
greedy
+
This is a boolean attribute. It is intended to solve a common problem with + patterns that match long strings like comments, regex or string literals. For example, + comments are parsed first, but if the string /* foo */ + appears inside a string, you would not want it to be highlighted as a comment. + The greedy-property allows a pattern to ignore previous matches of other patterns, and + overwrite them when necessary. Use this flag with restraint, as it incurs a small performance overhead. + The following example demonstrates its usage: +
'string': {
+	pattern: /(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
+	greedy: true
+}
+
+ +

Unless explicitly allowed through the inside property, each token cannot contain other tokens, so their order is significant. Although per the ECMAScript specification, objects are not required to have a specific ordering of their properties, in practice they do in every modern browser.

+ +

In most languages there are multiple different ways of declaring the same constructs (e.g. comments, strings, ...) and sometimes it is difficult or unpractical to match all of them with one single regular expression. To add multiple regular expressions for one token name an array can be used:

+ +
...
+'tokenname': [ /regex0/, /regex1/, { pattern: /regex2/ } ]
+...
+ +
+

Prism.languages.insertBefore(inside, before, insert, root)

+ +

This is a helper method to ease modifying existing languages. For example, the CSS language definition not only defines CSS highlighting for CSS documents, + but also needs to define highlighting for CSS embedded in HTML through <style> elements. To do this, it needs to modify + Prism.languages.markup and add the appropriate tokens. However, Prism.languages.markup + is a regular JavaScript object literal, so if you do this:

+ +
Prism.languages.markup.style = {
+	/* tokens */
+};
+ +

then the style token will be added (and processed) at the end. Prism.languages.insertBefore allows you to insert + tokens before existing tokens. For the CSS example above, you would use it like this:

+ +
Prism.languages.insertBefore('markup', 'cdata', {
+	'style': {
+		/* tokens */
+	}
+});
+ +

Parameters

+
+
inside
+
The property of root that contains the object to be modified.
+ +
before
+
Key to insert before (String)
+ +
insert
+
An object containing the key-value pairs to be inserted
+ +
root
+
The root object, i.e. the object that contains the object that will be modified. Optional, default value is Prism.languages.
+
+
+
+ +
+

Writing plugins

+ +

Prism’s plugin architecture is fairly simple. To add a callback, you use Prism.hooks.add(hookname, callback). + hookname is a string with the hook id, that uniquely identifies the hook your code should run at. + callback is a function that accepts one parameter: an object with various variables that can be modified, since objects in JavaScript are passed by reference. + For example, here’s a plugin from the Markup language definition that adds a tooltip to entity tokens which shows the actual character encoded: +

Prism.hooks.add('wrap', function(env) {
+	if (env.token === 'entity') {
+		env.attributes['title'] = env.content.replace(/&amp;/, '&');
+	}
+});
+

Of course, to understand which hooks to use you would have to read Prism’s source. Imagine where you would add your code and then find the appropriate hook. + If there is no hook you can use, you may request one to be added, detailing why you need it there. +

+ +
+

API documentation

+ +
+

Prism.highlightAll(async, callback)

+

This is the most high-level function in Prism’s API. It fetches all the elements that have a .language-xxxx class + and then calls Prism.highlightElement() on each one of them.

+ +

Parameters

+
+
async
+
+ Whether to use Web Workers to improve performance and avoid blocking the UI when highlighting very large + chunks of code. False by default + (why?).
+ Note: All language definitions required to highlight the code must be included in the main prism.js + file for the async highlighting to work. You can build your own bundle on the Download page. +
+ +
callback
+
+ An optional callback to be invoked after the highlighting is done. Mostly useful when async + is true, since in that case, the highlighting is done asynchronously. +
+
+
+ +
+

Prism.highlightAllUnder(element, async, callback)

+

Fetches all the descendants of element that have a .language-xxxx class + and then calls Prism.highlightElement() on each one of them.

+ +

Parameters

+
+
element
+
The root element, whose descendants that have a .language-xxxx class will be highlighted.
+ +
async
+
Same as in Prism.highlightAll()
+ +
callback
+
Same as in Prism.highlightAll()
+
+
+ +
+

Prism.highlightElement(element, async, callback)

+

Highlights the code inside a single element.

+ +

Parameters

+
+
element
+
The element containing the code. It must have a class of language-xxxx to be processed, where xxxx is a valid language identifier.
+ +
async
+
Same as in Prism.highlightAll()
+
callback
+
Same as in Prism.highlightAll()
+
+
+ +
+

Prism.highlight(text, grammar)

+

Low-level function, only use if you know what you’re doing. + It accepts a string of text as input and the language definitions to use, and returns a string with the HTML produced.

+ +

Parameters

+
+
text
+
A string with the code to be highlighted.
+
grammar
+
An object containing the tokens to use. Usually a language definition like Prism.languages.markup
+
+ +

Returns

+

The highlighted HTML

+
+ +
+

Prism.tokenize(text, grammar)

+

This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input and the language definitions to use, and returns an array with the tokenized code. + When the language definition includes nested tokens, the function is called recursively on each of these tokens. This method could be useful in other contexts as well, as a very crude parser.

+ +

Parameters

+
+
text
+
A string with the code to be highlighted.
+
grammar
+
An object containing the tokens to use. Usually a language definition like Prism.languages.markup
+
+ +

Returns

+

An array of strings, tokens (class Prism.Token) and other arrays.

+
+
+ + + + + + + + + + diff --git a/docs/_style/prism-master/faq.html b/docs/_style/prism-master/faq.html new file mode 100644 index 00000000..ae32cb68 --- /dev/null +++ b/docs/_style/prism-master/faq.html @@ -0,0 +1,182 @@ + + + + + + +FAQ ▲ Prism + + + + + + + + + + +
+
+ +

FAQ

+

Frequently Asked Questions, with a few Questions I want people to Frequently Ask.

+
+ +
+

This page doesn’t work in Opera!

+ +

Prism works fine in Opera. However, this page might sometimes appear to not be working in Opera, due to the theme switcher triggering an Opera bug. + This will be fixed soon.

+
+ +
+

Isn’t it bad to do syntax highlighting with regular expressions?

+ +

It is true that to correctly handle every possible case of syntax found in the wild, one would need to write a full-blown parser. + However, in most web applications and websites a small error margin is usually acceptable and a rare highlighting failure is not the end of the world. + A syntax highlighter based on regular expressions might only be accurate 99% of the time (the actual percentage is just a guess), + but in exchange for the small error margin, it offers some very important benefits: + +

+ +

For this reason, most syntax highlighters on the web and on desktop, are powered by regular expressions. This includes the internal syntax + highlighters used by popular native applications like Espresso and Sublime Text, at the time of writing. + Of course, not every regex-powered syntax highlighter is created equal. The number and type of failures can be vastly different, depending on + the exact algorithm used. Prism’s known failures are documented in the Examples section.

+
+ +
+

Why is asynchronous highlighting disabled by default?

+ +

Web Workers are good for preventing syntax highlighting of really large code blocks from blocking the main UI thread. + In most cases, you will want to highlight reasonably sized chunks of code, and this will not be needed. + Furthermore, using Web Workers is actually slower than synchronously highlighting, due to the overhead of creating and terminating + the Worker. It just appears faster in these cases because it doesn’t block the main thread. + In addition, since Web Workers operate on files instead of objects, plugins that hook on core parts of Prism (e.g. modify language definitions) + will not work unless included in the same file (using the builder in the Download page will protect you from this pitfall). + Lastly, Web Workers cannot interact with the DOM and most other APIs (e.g. the console), so they are notoriously hard to debug. +

+
+ +
+

Why is pre-existing HTML stripped off?

+ +

Because it would complicate the code a lot, although it’s not a crucial feature for most people. + If it’s very important to you, you can use the Keep Markup plugin.

+
+ +
+

If pre-existing HTML is stripped off, how can I highlight certain parts of the code?

+ +

There is a number of ways around it. You can always break the block of code into multiple parts, and wrap the HTML around it (or just use a .highlight class). + You can see an example of this in action at the “Basic usage” section of the homepage.

+

Another way around the limitation is to use the Line Highlght plugin, to highlight and link to specific lines and/or line ranges. +

+ +
+

How do I know which tokens I can style for every language?

+ +

Every token that is highlighted gets two classes: token and a class with the token type (e.g. comment). + You can find the different types of tokens either by looking at the keys of the object defining the language or by running this snippet in the console: +

function printTokens(o, prefix) { for (var i in o) { console.log((prefix? prefix + ' > ' : '') + i); if (o[i].inside) printTokens(o[i].inside, (prefix? prefix + ' > ' : '') + i); } };
+

Then you can use the function for every language you want to examine. For example, markup:

+
printTokens(Prism.languages.markup);
+

which outputs:

+
comment
+prolog
+doctype
+script
+script > tag
+script > tag > tag
+script > tag > tag > punctuation
+script > tag > tag > namespace
+script > tag > attr-value
+script > tag > attr-value > punctuation
+script > tag > punctuation
+script > tag > attr-name
+script > tag > attr-name > namespace
+script > rest
+style
+style > tag
+style > tag > tag
+style > tag > tag > punctuation
+style > tag > tag > namespace
+style > tag > attr-value
+style > tag > attr-value > punctuation
+style > tag > punctuation
+style > tag > attr-name
+style > tag > attr-name > namespace
+style > rest
+cdata
+tag
+tag > tag
+tag > tag > punctuation
+tag > tag > namespace
+tag > attr-value
+tag > attr-value > punctuation
+tag > punctuation
+tag > attr-name
+tag > attr-name > namespace
+entity
+
+ +
+

How can I use different highlighting for tokens with the same name in different languages?

+

Just use a descendant selector, that includes the language class. The default prism.css does this, to have different colors for + JavaScript strings (which are very common) and CSS strings (which are relatively rare). Here’s that code, simplified to illustrate the technique: +


+.token.string {
+	color: #690;
+}
+
+.language-css .token.string,
+.style .token.string {
+	color: #a67f59;
+}
+ +

Abbreviated language classes (e.g. lang-css) will be converted to their extended forms, so you don’t need to account for them.

+

The same technique can be used to differentiate XML tag namespaces from attribute namespaces:

+
.tag > .token.namespace {
+	color: #b37298;
+}
+.attr-name > .token.namespace {
+	color: #ab6;
+}
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/favicon.png b/docs/_style/prism-master/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..11838d355486c147ded60afcf81aa67e3c69cce1 GIT binary patch literal 209 zcmV;?051QDP)\n' + + '********************************************** */\n\n')) + .pipe(concat('prism.js')) + .pipe(gulp.dest('./')); +}); + +gulp.task('plugins', ['languages-plugins'], function() { + return gulp.src(paths.plugins) + .pipe(uglify()) + .pipe(rename({ suffix: '.min' })) + .pipe(gulp.dest('plugins')); +}); + +gulp.task('components-json', function (cb) { + componentsPromise.then(function (data) { + data = 'var components = ' + JSON.stringify(data) + ';\n' + + 'if (typeof module !== \'undefined\' && module.exports) { module.exports = components; }'; + fs.writeFile(paths.componentsFileJS, data, cb); + }); +}); + +gulp.task('watch', function() { + gulp.watch(paths.components, ['components', 'build']); + gulp.watch(paths.plugins, ['plugins', 'build']); +}); + +gulp.task('languages-plugins', function (cb) { + componentsPromise.then(function (data) { + var languagesMap = {}; + var dependenciesMap = {}; + for (var p in data.languages) { + if (p !== 'meta') { + var title = data.languages[p].displayTitle || data.languages[p].title; + var ucfirst = p.substring(0, 1).toUpperCase() + p.substring(1); + if (title !== ucfirst) { + languagesMap[p] = title; + } + + for (var name in data.languages[p].aliasTitles) { + languagesMap[name] = data.languages[p].aliasTitles[name]; + } + + if(data.languages[p].require) { + dependenciesMap[p] = data.languages[p].require; + } + } + } + + var jsonLanguagesMap = JSON.stringify(languagesMap); + var jsonDependenciesMap = JSON.stringify(dependenciesMap); + + var tasks = [ + {plugin: paths.showLanguagePlugin, map: jsonLanguagesMap}, + {plugin: paths.autoloaderPlugin, map: jsonDependenciesMap} + ]; + + var cpt = 0; + var l = tasks.length; + var done = function() { + cpt++; + if(cpt === l) { + cb && cb(); + } + }; + + tasks.forEach(function(task) { + var stream = gulp.src(task.plugin) + .pipe(replace( + /\/\*languages_placeholder\[\*\/[\s\S]*?\/\*\]\*\//, + '/*languages_placeholder[*/' + task.map + '/*]*/' + )) + .pipe(gulp.dest(task.plugin.substring(0, task.plugin.lastIndexOf('/')))); + + stream.on('error', done); + stream.on('end', done); + }); + }); +}); + +gulp.task('changelog', function (cb) { + return gulp.src(paths.changelog) + .pipe(replace( + /#(\d+)(?![\d\]])/g, + '[#$1](https://github.com/PrismJS/prism/issues/$1)' + )) + .pipe(replace( + /\[[\da-f]+(?:, *[\da-f]+)*\]/g, + function (match) { + return match.replace(/([\da-f]{7})[\da-f]*/g, '[`$1`](https://github.com/PrismJS/prism/commit/$1)'); + } + )) + .pipe(gulp.dest('.')); +}); + +gulp.task('default', ['components', 'components-json', 'plugins', 'build']); diff --git a/docs/_style/prism-master/img/logo-ala.png b/docs/_style/prism-master/img/logo-ala.png new file mode 100644 index 0000000000000000000000000000000000000000..ebd3f129a98eb5c16ee5b7559c994beba3c81e8e GIT binary patch literal 1745 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 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/img/logo-drupal.png b/docs/_style/prism-master/img/logo-drupal.png new file mode 100644 index 0000000000000000000000000000000000000000..6f2b026b7c26e66455a02de72b2ba17f949455d4 GIT binary patch literal 2371 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 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/img/logo-sitepoint.png b/docs/_style/prism-master/img/logo-sitepoint.png new file mode 100644 index 0000000000000000000000000000000000000000..cf275f6eca9f4cbd7c3b46e79c034de121c295da GIT binary patch literal 2703 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 JPDHLkV1g(N_A~$h literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/img/logo-smashing.png b/docs/_style/prism-master/img/logo-smashing.png new file mode 100644 index 0000000000000000000000000000000000000000..8d34f6f38d345c08fc3263b3bd8573d8a07fff65 GIT binary patch literal 14160 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 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/img/spectrum.png b/docs/_style/prism-master/img/spectrum.png new file mode 100644 index 0000000000000000000000000000000000000000..5954bd46ff3f78b6c101148f6475165c9392fcf6 GIT binary patch literal 359393 zcmV(xKw0ssI2*e?Nv00n!fNklH*flDyWUPFVMJAU$k!Uw|(+OqkCt@;Jv}S|Kzpg`wKe&H++b1ShX zck(n3fdBv@784qcZp$=c-5SMA2M8kr10%N(0AS!YCW-<85JIy-p*Hl1U2fIxRJTf} z(`YivNFyLJ66+QKkVpWnt7bU~B&sATsvv~kWYNj)y&=C87^>>PkEhtmj_KZ)RZOo z?41E)Oa~FEauxTA2_=O*v|MT%<0mpvdGM%zKEbK z>3hWqElX#XqLS~Q-7v=B5*?;sMZhF7mI1P)$OVdIEg_6C`4UqRTHh`+Z?b7$4b$x$ zN5y%_VJdBB21BY9;2o+=c_|z3JTDETs~2^~$o;>7Qt#KGS4(4gWAx}Jc$ZNB?APGN zcml^m`cm7)JoBr0-BSR(`y_1vmHQh^qR`Yf$VI~7HD-y>w;rqFf4_eyJq?X9CD=@J zxC6wcNfGb0_^3!3cki^Gh@Lc*@k|vOV>HIk!B^Gs8e`Pro2g@PFotp57-N5EZ1(br!}|FW?hD3P<@B+3aNrL| zj~hLxH}R;iIwwyGsx)7Z$7j-vN7K%4bR((dUT-mWQ7MmOXnjsvHx$MguVCteWOq0Y z$?!XZ{iP`L^=egRjhF&D*0(W+XMU58$DY+IaUy~PU4A+6M16bG{Z9UR)lQO=Dnpho zH_u8cwI!1!{ZdoU{asXyF@^}n*r=z&7dy-e+onKvZm9|8HVbmFbz|O-)T@~W71`f|#r@3~(>QuM za|9o?c+v2CNyNi^x~CZP{+XlLyjW&dEz34w1efJKnagzzuMC&N^%4=BSjIE_wW*0Q zILeOqX}gB0XK5KamzkSSHJLXC7wRGB2*z$QUfLrVuEab#7dFONKWleK`ro1l>NO|U z;VfTW+JWmKOMAya(a!2fy%ZF~_c!%fJsMvVTW~N8mDBUR5owHf_PhAR&F`s73Raj&cCn0Eeji)3 z_)wslC5f;#u)pBosOFWu!oW*bVMJpm_= zqkB$;>St!rPG$*X%zGg8N4r2{=yI0|*Uj5GRtbiapcUsbC{|D%%0e_mZK{sf8~HnS zW8b1u+b9ZSjHz=oQK}Zua~j`hMB|GF>jms=F(`~N4dMA8g#5ke(S%u@A}2GeOn9M# zvaCD<3@jQf^|cMWO41K`Yt%6~bj}A}4#R1Tsn?0hkHK+0O$Wdn4YD^x)V0o4agj{N%<;q( zG-6==cPcd{l}_1}%}b^>3S-P<@JsD2bM8gwFF_Sqi0bI42hdo?>rXB!ns7<1NQ0sU zxiMsH-7w3}ttd+E+r}8vKXwnj#FvF6vldwoB`E7p(|8~n4b&k2HhHI5cETc1d4d3f zq!OXh;bnqd9eq2&u}nLqpmCbKfBxh^s-678wEnjoiMn^EwK0Y;cWv=xpZukxKcMQX zW!{d>lR06Ah+&^sr+X#Fm|?}M0%9SE_}MxejTNB|gJpJeSY>M~38mGE9D?COE3_Z5 z*lpWf={&1Vwy<$1X;DEKV-tqC9hhwLNdhDJYZLD3ynoeYjL`riUcF9mC>lbBNtxU` zxHW-JV14!~fx~PtT0EBu&zcvS0I+#$wjiTAF_hRDS$GXrgE1C6)DJPPt`r%*PBe*h zqRTR!yWiFMjYzCpjA@9caja63VDc*`DNaui>+?h=iGXi4Jp9oi_Vp-pZcWhZcnCgU zR)b+1WRzmUU7YNw3z%2FH^z9`#3j4Dx?Hg0)~RwA)o}rR_q?xAF%~lhz6SmBP~$5z z`eTtMSNb3+D_Bji-AYZGWCSmGe@@}71 z7`v#HyP)~~-xyCYO?fWNFl`srta4uY`py{RqgvYcLj1TOlo>(C6b|jhMV=KV8_LpN zk2VTrHpYd6a|$)^(n$=*bu|EZ!7!(RBPC|OF$UXK^5RYKr_w1xS7*4I#v*3ZGdHT! zD$5w7ezt(x-`8F`>Mh9IQ^mWVCxj{o^E0+PVAzhKb@CeYO<*g_MCcgMM?!L+2dm@vT`P77Q zM#)Z1+tsFgcEel`8*~I$d$>EE@r;--<@QoPO{ytnLRnr*NX;y>@iw~|U|bp=yF!J+ z#?gqSml%fN+7<)>UN4qC4@26{c7=HN0+?|#&cV)Dl7)N zG^Brc4qw^Mx!TaH7I~W}e9RyTj4>2Ga|$9LJ|o0ic3N~@m#4(1)C^9FoVfIq%^%lT z&0cYQgJyTlnD8ws?sC1PhcULwv3V+>zTo8h*QCK=vW(k9plr~9;%|n50ki?Ve%&?> zLzsdm_s8KY)sKipmA_1ad{^W^;h(}~4WzqbmEjL`5TSj2Pw~OSm$F(i+Sk}cg#+8@ zb5RC7Sun!)nhx2D9m|AU&`<* zb5po7;u@IK+cMOfX&Cr|n51M&Q_)y3m2~n64#ftokM!$*ix00w*~7~C^n}qyfKLP~E@=4u$k>;i1sCRR{_Z_c6wp(n#9NQaK#Tw7>L+!<^z3 zW5yI->*P@vf7ckJ7$P{e^yjp>of!>Z$=d!8ueR*zM0hPtYb)XOJ}{TcqI(tP^O1H& zT((=Q+HTdYCXa-M_Ev~79t*mZtk&J5`75EWS`VzVbYFkgbHH-H6GseVc^aq7h zoPcOK%IR}O3+t*O^(1F~I-4Xk$szFaIE*IL4_Y5?XG4eGSU!DY+T1E-jPas`>@5w| zB&#>xx2XtKcOD~W*z+%A=0L<}gw(}Hrrkb3;bJ3QU!UjJg|_KwJlU@zlNA42RWX`v zUZ|RMKFi9v9?sS{$mlVbz2A*7CLvrDm;On^`+#6GgY7aeZXaVTv7k;}-6<0tRTsMQ zyHdQLA_k`pBZe^ZoPY?WT7pP2h#9kVnTT5-8h0L-NDqA-_me|Z|L1hizy7X~ce{>_ zG5WSVQWv3Iroj5^KjR4Mb8>PisMPvYQsUCB42*o)fr{L67@I@&^*KVp)iOY=%4(Sb zdBHGJLo7b|db^~?$l0hoPpV#;R1uoF^Ju)b8~#9oXB32S2QiN?l87%CmC)DcMAWz2 zD#I~Eq-hb&e2I@r2bMW!Flrjtqh6bNMq*SSg9BSPb})vw_aE{SVSV~!fTT1nXX-EP z?|)T1uhY_ay7X9Qe-&;=9-9rYW`o*v81Ci>%GG<#@e`DjSH3-?!Ks%O9g|m|Q!EQb zaSCSf(yA68V=)&brvG}+j|LGc+cP>peq?NTEC%2w0+?HXQo8e=8! z(viy5#2HM?Ec?MzRcWY(oZiY*4yd|hvLObAjE<)hFROgJjNy`jLyp8@%#Ga?!}bG@ zhFiqqr4pX;2*&mXV@!|jewsv#uihP8Q}Y zucq8Jatsb*jICoyF*sbGr*$GDHlm202#-x;=EK@pzogfX$`$W5KBE^Dn-3MnrphlK zL~3~Zh8XW1TiW0I((PahzAeox8Os%8jOiaMw6nFHHdTRxFPdZsW6TIkVIru%CYA`^ zcmxrWCj`uH&X|8SrHt8x>SNXpSY)iRr*%;wL#lX&XuP~Iis0#1pqCyW+u z3NbQtp7<2aWQ-wLo>TwC5?@b48vn%dt!S``i%FFrBx3!#?%j&B#G2G#7I@auv3;Vf zwBr4lXk-*`rrz%;`%+nNv*Tj|{k!FIUOPC{)Yuru!ek!F!-OXX=o>hkQF}VQy`izJ zHpWZ{0ly3cpHEC%Nll!LdulR6Eof+cp#GscCq(^=;5|&o;23Nz=MHS#RqUVQKEuP= z=DGafUSN!wW(g>jCm`mpLT%Tjs!K%5YZfM0;p=yARI{Mcz(u1$0COVPn$@s4F|{W+ zx=hE6F^26^i|YRgFLT@Hnqam9@%Af#i6Jn?5cIl$>Z9e*Uy9ZEay4u!q#aX4MLIJa zSf!{;CXR2DUtJpedJ$|WnSsSKCSy!T4-wTT$okB?3S^8B3(8i@44^Ei{&Dr{`^s

{K>%VJ^5zk3Y{faY6?Wm=PrsSGT;@jtX34QYr2Qvsi4mSbF zi-^t`rQ>S$^t*KERYv1mR8%J7Eo);eirX*yH1`qC_rXvlRrN)SOw}?tSH|sfdl|+9 z@sSh(!8PkfJxj04$*kBASV7TRk{)#OB1 zWq`h?!^JXcp2-2(VpZ?m*3+hgZDQ68)xM0JtSP2`ONUwW1TXE zr*BU2Qo*;V;AN^Y;|&VN)_1iQ`QnSO0+%HS%+XMLl!GQa=9 zAL00O-xIJDV~e|!<4r}CiDLnI4)d`NuEni$wOqzf8Bo)3RblZ)*Evloix@UPT&aJ& zgWU|{&|#Kc1oftUiqFGc3!=L{j+Sl9Y?q8M?|d$))!6Q3$&$%*a8Yq{7*lz-m!Ue| zc7+;sd=q-Dfr>Bc;EsQqDST36*7kz+q5b(VW8^ve20G`5pnS)=J6)3n4IX5aVEwV+ zkt^TVDkUgP35+)gsCb_lor}g!A7s}Oztf!9DBTvjsJP*bxxVN!H2bb*n1EA!o-;Z) zZ1R9w<&Z|2g!P$cK&bkQ#v<0JK0XD_MCNj}C6y6_gPSJy!W9LrlC)1K)MLdtYP2Pe z^VVJ=sd3SiJu%{UZLK$7A7h1+Kin3_;4r4a056TsMi1>GFs(3W(5No3ooovOz~$BtZz82_V`{WH@puSEDj~d znsVnr$H$?^&2jof9rSfk;cA>0@#$gjp8>Kw#vOp*C;DrG@maEh>VpH0hzn_G-GU z2AHqw5)nLkVc|!YL;kev?8|p`#i|nsIM%^s3hUQ14uV23qH(X#=tbpxZmU!kM^_$$ z6aE_1CRO}zdD$oNPRO3*nUCTGM-_O2V_fGI4*hdiAfpD?RNp!$FZ3G`>K(ue91k7Vh44x{>8RJ4C)*cc-ht??z9Epn@ew4PoOUXlh0DoUsfZ7%)! zk13R4f2c9v$ulo=OvnDrlqwOP8RAkXuRXQ>&@*hc_GGp$IqlU~i<%XUUb7qurR7N~ z5ghh*924O*hWda+;C3y{52tsAcTQ&%KfoL2oOZzNe!cVX2O?ze1-K^BavcA^2=LaMW4e zSfKivShtHYMXVNVT&_un0qzZ9U}qxc=?+vn;6!zcus$dKouT4a4pJWZVmf&OWp=|H znQ{aX0bN8R#r%M;T&O|NSnjm^nk6b+R1zu^BJRcD;QK>p*n8TFl=ZDLKaOK?jOPMc zvb4NMmZ_%K4AUrvq-$c`G{*3D!A1U2#N<5imW7=jh$rIlswZkmm7A5u4C12lF^`c} zeS+<*aJ;gu-uai}7?CYHriuhFYMdb%WdH9`+9D%&Zj-@$0=x-J8=jox;aJi^zGQ}-UG=SO(%@EO=kx8>s{u$5z{){ zm}$dCXfSU$b*V9K*D6Ez2dOCO2tt=9Ef1Ni4GZwbJ(F6EY>zXXNvV0ibyvOy>VPpV>}$lKf%%I z*GX+S?uUq6(YcK2Y0*S+e1je)Zz@lPpx^!R`dLMMJm|Ff#ri1uD12KCUdHdU#4JFt ze&C~vvf-b<4(kW%d=7~^{w-o@(4LeoDr}$1DuS=1R9(!%M}}S9N%z5BF3xp$g5%?~ zb4rtfxVLoQ}{a^U@{8y?PHC>k+2SY+;Y#mjZ>4X?Vj4}3a{mBly=VRF9=GoPj z*&|mNJ4Y7jR8m$^Ay%B@LLPMnoCHRzPd2oL?gl2Ct@JtUt#`xMEDVTEpxD1K4R6Hk z)mwwbGr`h{36u8h!k%%=vG6kCB^?|xr(Nj+NJ?T6z@VAWr8hqXb1l1Fi*(J=W#&jM z&OB~2l4WLi+umTv&b!eF=Wo|{(#FZcQrg9Fos?lF^^z&^x?_7m_bnS5C6l=}yLas( zI9vc3h7GtvNH1TMM{R}1;ItbyY19IptbzgHps?6k5O%wMe9&P<7YLGMjm^0NXskoR zH#BEhuW6HvaST)as~eGaDPlVh-w~LDl9Uw1rXeG?{fCTk245S_cZBLnN=o7hoG_nl&AeC7*Kb;aUzzb&<6hk%cm)D{Rg#hxB0bQO zqUh_sG#M4m9}_v$2Blzb{Bmy_6ii#t?)qab^@h{?f*Hd62+#N+>SMNu%4~=WQ&iL# zJhkUxT3$&>ih2Fk-?(aA8T}PnE-pi zTc`-iqGXQV)Cfd{`3NAKHoLxQSQn1ZrAcf_nJbwoDmKxr-tlyZre*5P;A`4=a)8E) zw^^8o&BBrsQ10S2%wK{g9drAlEdj2AGn-&DI6Xv2i$c`HJ_7pTQ(m5Yk0uH&qvL9PR>IMf4_|d zY~N2XNX$~xRY-8-hrTgkfbB`g7BN-{z(feWCnd3PiVD7;1y%CNw*PT)-OmI3{UngO zRZ;P^tnEf{#;!Yp2uxWPda9_HYOkhDtXjA4M8x(N3Mt(B0?m$JoE?byD5J>Pjl!#x z>WFK_c4vW|n4J=l7E}thrcAg}ENffX%tp)42oCMO-#KKp{~c{zk>{vci7q`#j!j7t z=I>(fMw}SC7YVFu+=K?f+_zPjw!<0!+=n1QTjaH@OG!MFLtQnsG)IQ@(D6r?$Kh;> z3Ns=&%qBeSwy-3(gNWXgqiQzfoRkay?mBDt@5cld(d?Mvy#0|7@yQWPBU7VU`{y z8!FApB?pW^{PNVb%8maP2GCGr5^D|l+Qd;%PBwh}Zktg7pwJ22re@9X%KLLk{wd`( z*tlTZM50o-A%df@tKmX>w$jW#kUJ8uUiF@7pR-t9$qV|AdzmY0Yf)|^&RpA$;KnUy zjlzM7t$Ubv)}TeMwKDL8wJ0$-*v(W*k#+%5DttF_ld}F!5^sI($@@Cmv<9n~k1Pgq zWB}0^&X2>!BOns#*&38U^`4K?3VH6pB@fb-v3G&ic4eb$EmxCYZz<+Y3V{D}zMvD0 z;DqMa=1Yd6jk2VQ!W}{LMC}_yWTgG2^xq-YLr!8@X)R5vD$;HV&>z!6`|tUn0V0DG z@|6smnQ~i&>yyUas|*?%G%<9&=g!5CMvbq|-G^t(M_GZsO8HR=y!!qe0`*O70xG5YjPV}ak@Nk?C0v%kF7z8_N z_8(x51>5I1a41^-#F5bwRYs}}#Sfs+rVW+m=Vc(HoGBB_P?fBZlB&KIV8X1~QdFwW z-N_!>(?QI{Yv2$<)w%Dr**C=aVW};MWzP}i+mW2|tZe{|;>0*IkCshQQ7P%;VDTy{ zDi|PNv`-1#>_;6bPu_Nqnv^LjfoR0E_l;yQOTR)sorTF^-Vi9e#yxO(Y#$gNrb*Eu zUL3umPzzyHAt@3YC31hhw#%Jdf35`?eI2$;Oe&Q6a@-PD2w-@qrGAUSA-~TmgoH<5 zR*)%W3fmt?t+6qNsV^HW!_5v}6wBTk0NohgT7^`s=;B+Hsi!EM+yUZl(AH|_9ryOS zU_$0LRfRtVEo1tr{bng6L_dujQLst8U&hVM-F{r2n!mr~Ev5v6TVOtS#F{Ya9@aXZ zOJo>a()zxh_-e2u|6Hf&(KjWVprb^HL*C~DJ?y>L3=^9`pfJdWVC{t#XD{ONcC@BB zy_5Yiu-n)2Dq(vH3Y zvDN&hV~DvA^+*$9YZ(NHnA^_WrfR1(_%jfhHyx4muf-+v&vu=}XG|F04#S1{KaR%* zFYU`~oL4epKqxf6Z{4-OQ9HJ2wmc|cy(=nOf$5WUuWm@rnPWX+&^^M$4(p+Ez5I6B z9Q79iaxVsKnc-iKn07ichk_{yY+XB9M3e2t4pJjU#Y&Y4SzHnI&(Km=+-Pr^mYL9? zmaH|y1xYJO@mXXX<~B@YBX5G6B@%-pqhLQ6SaeT3c~BU^07iA-etMm7G{wv;l~y+~ zqQGfP#s@lZqkgl5VGq;tU=Ha4q6JgW&>TK`h&k^i=VGVY7^@C{)VorW=0tGBHESOy zwUmF&U6D6&7iCZ>c+j2+NyYvP8yodp)+zrYpJj8 zV}lgup5i!|^4JXcXt|E9`+8-Hx8WMrkP_ zCz-5x&+9`DK~9?qDJpu$uwc^Dwb;z_)uJI7LA~Fmf|4{#q;@fpO0;vNSv)z zw4;1Uu=S*^qw^Lsm*D>}y21ElNifB9%GAxZE&W~y_<5n7`qJh5&)mBv|OZMqrwS+dxD22%2!0rfg;641NWaiZZL^9VwT`ABXRS!ZGmkw?i^5XnQ=Z3hiw{JaomD2TKllQ2zz83~)8U2Y21QfhAq zGF_3-Nm;{vapI7FVy*fl!)V#Fp>Oc&YFsYpkOPf^gUNapdWGMAux%kYQ$>YNQDf9R z*e&s$L`xI5_w&uF^3U;}FmuzzL(aWP*Tz~YD!WJxek&hs0Uc^*k0<5EJ_&ba2l5!e zVi@OEpjYy`FZxESI(}tjV`RvMQq+7Unz0*6x+5Qpnb@Ve(`M1|ClIR8Exh;1AMp|H zASQ0)91#rIGbyi+%_L*@O<(D7?pOpEeHV>VL~$lF2t2E(z%HduM{6b9zZv9}5gbX1 zN3kuReywqR(aDvIKou1hK3Bzj{|MLr<^$J^+AoX@nb7juoyjgZ($D;n#7b3E=xVmk z*;Lg6cZNZVQ23Vu#n_oq;GJDu4ChcMG2=|&T}P+GAGrH<#7bcPSqFC*g~VmG(lSUc zU(cb+PQJU%2W9uSee-Ffv!rV{Ey}FXceT%vagwRw)5*wi8f}wO!~}v#(MZ1a^hZmOI}& z9I1Y^BNU*+$G^KhHsv*c;^Pv95$UO>?n{tn8o-zx;>dXM-e4I?ZV+Gb2O^SGv|U(J zQI5GsNlNQ4MR8G5hSo2g8_3y_4>(M#ibZQA$PlXEh#JjsbJ{D1St=IpPt#oCpB`LntuAgmhn_W6Mg*(`eOO*w<4FIM};{}eD zmd9^qc?$>nC>CEaosnWwjmUx<(wOOttsN0&XPw);j7 z<}e@lvstc+QqrmpQk}6CxTDv0rV*HvxD^0_5&z`;lmr>IvtNz4DdNtoq<5j3L%huE z!0aU;Ug54c>QI66ZsIbzN`ShGPxW&yns@W(;A#QK3j_o+-^E=^d5xY#NtvR;RoPFk zQtAX5>S*T#JtEor7vRFlVzeW*vrsGU6+&h@cn)FcPP^E~3;YdjO=&;iG2&bcT!LPS z!(Cr}{QMP3KmmV5oD>K^@XSM&gd|c)dJq-115M4h0+VPsI5?icab1zt%^MMp2#zG)>xsI9TPE|YB_{?8Z)&-&VV&9K z4kkK|YQrsPuyVEqLQWQB?xe2U0hj6RjU#LAk+7~@{^Q_U!om4Pq>~gfMwtFWj*Eco3sgK3`__4hj!-s&M z%`<)EZSZp)u^N3jUE_gSGY@P`5n0E$)k-kqt$EFbOlov@2=IXQ@0d~3Vn*A8fbMeL zt~nMt*-}39AwPNka4?!fmdIJ3PIRSrvD~a?vLrcfQk^Y=ZGYk`qkzXRvY$*!!W<1h z%dc+3)9=X5Llc}%Y=1HSHAqRQYlDqV{-Y^0T@{2NZ5Q0Xg38xdJFGlS!85a|y3=Hg zc$OCJc+y-v!rFU#Zi6#LWi0VeZt5XA2G@h53@>ROED{UaV{` zIOFFI{x8EVGwq#A;t3MtKF;f$HtQ72k!=%6nNHBwVFf*1w%Y1S$e3prwFlYG4(inNXmFA?4vQ7VNeC9A`DzcJ1 zSv!A+?P~%+o)g3-%*Vz?N4+|SSRDl`&Kj?>nKW5YWO(Hrn!ZkvJk`q)jKLmy036$w+-zI3q_Uya-|gdTKSLVent0ddd%`yeJd}eIF!Pk9h}>sB zf$cgdzpTViZxd`H9UQz7^u|}tpR0fb^r%oQJxbfie)O@aYX@1=wTCABSeK~GI9yv& zYFSGRWW%hSUlXLFt@+9CC5~__+_tqAtNe=@;;wNvcSXv7YWt`~cLg$cv3>mdQ$2IG z`wf-|aNaS9gvBKztNlfE!pyWgNw~pxac~g-aZ*m~^!_}DG;Qmyab~-gEfc#WV{yiH z6{qSFmx?9H6>P%Hjh{>vmG~YqDMfLMG&FNB$arRvn;%Umh^1c_Uw$oSj<|m~Dy@9= zx~_3MptN%s`6Z^kCe~oTm6rE3%27@Q_pGqZ-k1@sz*{9#H`mTamQ?V>wM8C1tOpf^ zFTt0LeEonud=d?fhZWSr!)h3me1S!$@->bx^xt_`Tw+8vArYkOd}a6 z_>mP`DJs}g)OLe`*hGBeUoQzPW`3SrF4UQ#!g=j$>7So}2X_&818RZt@<@j9k^GhN zDur5JXCu}5RcQ8QF*pJu*GakB_MuQW2#hlt6t=(aq>nu_>~NO22Yi z1>0aR9w(!X!Wsih$4G3`Ue49hKM=EsAa3{s_L3Nlh0VK{#z;!x_?NT0G6=NxZUcMa zz(Q^9}ECzJps1m(9FfUNgduH5mAs0aDGbNu06f8OT{aK!C~-9ZLd$&@ZGx=;KW7( z?Yt6^Z6T#tA4hz)l!@ievHzMsFLZ_ZvF>wgGkRY^v4b0LcDerAY49xKoj^v7mgB9x z8%h2{q9h`|-3hD1y7Doahm#2Vend>>PviKu19Ks_zl;(7IGu}#VdDxWR)N7b!imri zFgYr6Uhc{r5R#vD_Exri+N*#| zV79fF1Nu((p!;Nyq@UP=IIzg9jV-_3L(ExwGuF`*8*;G;>Ma7>8mXuriB)KDZpGAz@>QM@TOm5shP>MJO|5Ck2LLqBEahJ_dm%p6Kbk4}w6CQdMUt$6fk^z{|*F(^3wDm+=pmV(+5N z;@1{%MDr@J6O()W-d{0j!fU%^C43$xSSRarkj6!nWLl$Nt1&I+LM7>~QdIb)@l{Dm z3hiU~JUAga-J@1$6W&TKS=GhE2>}GZ`ADBQ9<8wG)NQt__a`*r;NpaT>e=6fjb(k( z;+8dHb=8B2OVWa5#(gxg$*+P&i;#U6JL!Mhy|!U4a{d_AxG5;LXPpke)m7EkwM>CM zo$QWQ)$8#hUGfXcezWTOpqLCJO(ij?iVA_i=|w4>bTRFe($LA5BBi7*vt83l`(O6H z@XYrMw+%+P{kVYf-*wbWW`=gjAKCNP0Ub$Mj8=B5Jt4M5^Yu_HzDAAfe@m$|$E0re z(gj`&7bzQACbZ(J=?`I5yN@iZ$ft3rus?rDP2zN?XB8FReO$=7cPN}B_J1FbDU0J( z!hU&cjTml~A%Qe{E^%I%k2)AuW=RX3xRX+JC`A^4*q|*oE8X*rq` z=io31qn;EM<_V_$dcICs*c41%X`DD!ai6r|CtfNO3Pf>0F)1qeEsr%e66}YpfoH+0 z8x^_JK=2L9Hi2#T7XlgOdQASLfK+Q)h0<^7>mP1gS_-?VLd#&(386A` zI+Gjq^l|hOakDO%I6lFft+|KiRddIjl5Dy^b3K zPU#Z`g?2!KcHJQ|LD=0+TUw1S$kv6$HddtRR*$~3@n6%*^28}gpTr?+sL$6l9nXdn z@w(bBz@}!jiNmG$>$~FWiiG1h@D5chwH5ZXnS=fOQ2WVbWH{^Ivr=N2&AN)0Sk^<_ z%ef-4Hdl4Bgn2l&LejBXOQ%UIpPu=X>TxmawhVmyedMyY*tGVcO6r9t8!Xc%4%4vizj^lx6qt*M zsFUcz;2@6tk~QV?JpZjJ&v3XSk{fWQ>QUW{`A{QP&7%U zFvnZ&KvI z3M#l48_YpH!CXN8ywuHjqL_d8A93*JL|d}0;b3fTe;rT6GilYHKMU+th&8)Dyj)^% z@RmE(0NPd7h)a?KErRuhHowlg_J7+quDd40@oNnU>kx26quEyIUg`HWmcvNPJ_h9< zfBj-uPO*n&rP1kGaV33Bka8=vA6CKm=9-L1rC-;U*x$0hP(N6c8XlBZ{drwzzsme;zm#ReF&6rcf8DnY zP-MBYLcl46>(Q=^Wj3MB3n(2N8Kp`_a3lp@gzVJC&~xfaN#;|hjmEI5#cJ!*_{>$p z$6m+HE=P$LmYHrzx#Fo86XM@F;h_o?MCu?Jpk&O(zC-OfoJGVEj0ptZ(Wi(Mns@p$ zYC~(IPR2K}&p0j%1eV#M)T;jKNl_t5Q&Uvp1D%u@97!xt5hG5T04+ga)qAdLVrU>F zcg_N+93~Asb zCB4z>fK}`xG&b>l=3Dr={6AxyK!}3N?5h?+6PSacjM2TbA|?tAGg~kPBVNaSaR(yf zM(9vUdLQEGHJwf}7cCqrLI!D^*r_Nq^=!Y5smZU4ijmpw!5jmy4%*(U6h+{;O<66@ zXc)E|2}_timmu39G52yDZ3(OR?e8txna>pC)+06f?OnsRz6+SIfBwEMiLT1zk`^jS z(Lt}_@y!tZ1R1@a66%d`#OL*-R!R7o@YOsaY?I~H8s`8~b-B}!-IY!Xfw8jkS*f)Y z0xcvZai7ksqw7^rN*(X!V5btiywER2j>SOdh_S0MbNrO*Yx%1`q;0!pyW;%BLp%RS zOw@Z$R0?j(jBEUjZBA&LL{H32;iU0r6H>JQM#e?|rrQC-^3>!^=ZmoAHiWG3IdUTwpj+thfNdI8h73Jl$Y6oLwVKyVy+qo>_aK9#z4^l z8Nl}iUooGdvmgcSG(<4nzp>De4b5N|0J$3o%8@8=)Yxay^F4=+Wdwo|$b)J;tL9~X+gVPna%W})-q{Kty{V+0RJk+K|asF)VeQQbRLQa!tc zoWx=gmc+w1f=}O_oY!mT(yl{Ls0G?DD1TJ|yITV62NQ|RFAWM)^(fBm8+E$lID}TY zVAjXOdFr7%zzU6UQY*J&&go>Jp|mxKk>rw)cuFwq_o|}8`bl9)*T<)(QF*O_spmi` zslDR+0jlcB(0|7DPQC5hd)wJM+n>q%VBm0fd6)QaCOA8<$H)X4jD)ri!Znnz-OkaA z2*1S(0in8Yfu7mN;q1m88%-i6zkT^W1IovI^ftabw&tXz@G9k>?XQ&#*CUnfMXwvg zBVH-?;XzOgu_egh^+D`^i5XSwEoNB!)|>xE>_Sed6gs3-d-C?!m}l=Z!dPGq9XZc2 zNMjOKv)I=*x3q`5S{;9Eb_9I&9cGz7`N(##vNdb}7TB)XuC+!jKJj?M%EL1q97&X< zq`|}|%}<6Q6Przbf-#1Qp(t<&F*U!L3GqX6Y}v0z>HYfocfojSoxvaMxyS!yJsa>zM>zC{}TJJ4t*zsjdj6630JF$i@fDIGw(iyXKK0hGH_RQ}K28}2x+^H{rjl$x3M-?{&5 z{btuXKw}%DYGox~g3SOI;$&4@+VH;@23G#m%QOqw?r_$lMJ5E-EaKG&jy|xQmCX8qw8Y}~ zUA#58nKLzO_PwvDblyE1Nk0{_NQ<{rIT2!dYuok=!VWUl2*@ZMhmQ}1u?-p`Jso%j zXhq@wS}qCJB76dks01havx&d$Z|_696^{yaD1t)`%QCxmwltZzI582|ai2Z?MPE(! z%ePG54xM)+7OM&E=cTPXtrl;-7`gGL1G+vBrIkGWe;I~-g6nty&V26%-Nkq&aNR!G zWU)jN%?a`sS!F4YrMkc-S08gRUyIbl9?I9A&=G9Bndta&Lg@c1FZ>tYTpgtZ)QCs{ z=D)k!PC{y!(mn2!XjpCgkx?*{s=d;FrTKrwIXiTB>U*{puGQIu=9@2Y5{nY0{8P&R z?yv2nqM&3N-JpyP>lxVerB`p}y1Z2pFal%-p_=vPxp2B4knW31?z{f)QxqTVZrN!* zMo@>oBJwY&Hu1{vruGw?8#=+7;4QrH?;4r38Jtr2&T+`DSPV+6%<`@6sP-0VAVp=R ztS=hy1uxio9WSv{0!0&y@A!=E%PaXcr-p7p1@0Hb%X7$30&yJXOh2z_zR+^^DgOFW z)r+pOHs;S;lPsu6lS3T6pC1Z8;g1+^`g=U&Oa8Y1XMO4ccIefzSHbM)_v4^L3ZQUJ zEw$VS9F}|^NKvUHDJpf=nh6`*kvn<4@&euK&z6_bRtd#8VlXf9%`cXI&9Esdw*mYU z?_s7Xs5PR=pmlQ$ix>W0F~I59cM|u2Bx-j<++-xZkTX;1%BLR_hb!v^LJIMB_I4$m zqOxfJrAe|27*feuy2b&F|op>WJ zUJp>(yqoM&v~YfDe!A%p985eA+@iIX&WGU$%yV-mbHqS_Ig<0w)99O8iwHNSg2 z%9XNc;>N75u~?m5DJt_~?mihz%<;OB3kBOHMzBD(fL4l}ouy@Q9>O8fWM2vcj(v ze*70Le>Fbv=P-~_uV9F4dY+xMW(v%fe$jw8KExNS4Me^WSN1oEyC9BWT?iYh9B0bR6c zk=|6LiR31 z_ZII|dO?=K`Tb3_h%;uXNTq1REd9qapRXsXQvTtPLBPC&B%rw`sP()>APuL`Nqu14 zi_C*5P<}YcjI$oX*7kp14*gl<{It^Wf9^({DX(~RShY6Zxv5oGK>ngN`g7`Pb0V(h z0|rb617HHeD6a}Z>7J5H=j455aVWHHFb%2`^F2}~7Q3r3mrVc``y3%L8SQN;>_zf_ zo>n38tgnL$9T(y9$+Ra#@^xz+ZF9?I zGQ73KIBB?31`$cH`+y?|Kk;e#X_!)xuZ1|5Q;N(o#{+?JM1U`Oq|X^GEV{njh$kPP ze)ki=(^byF2m_30cY~WkH6018WZzF8G;9-R@+HY&e#UVN%~+6_@-(tli1}IcQuP*| zW$o%EFm_I?}-(&Mh(je z$PX805SSP{gDo$({EDA<& zEbjni(V{5ggWpk|e<7I83<>yNMmz;H*Jr?UvUl+m{5`zSy!k5}Lxnad8EfZa*h>kF zhj(l@V6Mxx76|BI5X6k|v+Q&Xt^i|;exJ!ne7AaLYSSV&08;Gl%HC@RPmPP-VYNldbP`egg5Vazn=t{$6Ol zY{Z0sROklTq|`fBv)0pIeK~P7Ez=t0g6WbR!gkFUMrnxVes-M?jYjz*gyf@FhaOsG zw#k43rPfVl`e(69t=!BwM~d6f@%9xDo#}65<97R03Pe>GZ3UL`BOoYjHE|jSw*QJ* zE#zvE5;ayje!85LTY%N31vAPsiAXn_PZD3P)fsr$v%E$*%R1vX46Ge;ki06Z)B44) z%feW+9FE@I++BZ%y{t3oIynG~SC6n6XC@NTJ0&37?=M>;$EG7U-6hRZ9`CH>kS=@! zZ!?Zi+YbC4wLu_phlksHa;^&!iw4c39qx`5>dcF?&e~C%EW)- zwJALlTh|z$JdBGP&nkm25Lpk)cuFdNUy%uFWdwViQBEePJq38-Iq;)J$S*K0nrKLXR1BT-Ow}EF#pWFWV|nNDAW2vcCxtv z*FqQXdzfP8%F8tu>2m+4n&F-=aR29cD%PL)1StP?>mJEPaI^=_m62l8ItjYI7Mp+uafv52lF29H3@>rBpT!i2_#9rtRp(sak)wgIP@vR$chuUV0%n zf3_bV_+bBwW|rskahf;Vb^K4nIXr4*U_ui3qQo%y($^I62&RQkI+)Eg6N@;)cvW4uat%*E&uoN)rU05 z$Re&RsQJ-s-gA+AwZCV@RJBct*qtOcRM@3X6sGyy6t16xcX{aPY8?h#BBFJeyX(L_C(nFHJPBXH|ET5#8}spI7a&)AqN2gK8XCS>)4ALq?j?)w-->`Tq{9aE-k2-=%&RwA&!7ed$%c71JpCb8~)J+6GHO~3S+wX;6&0;eqeGM=b5=2}H6@h}rK2L1H0lK(&XCm$6tE%SKMGF~)AS5eD1Mbk=q))D#L7?p>=!dPsDM-qK!-BWo0p!Y6jG`x^+ zdHyz7=>g)}R*rFVOyFC`N7l^l~ED$+blZiweG zP6)*5y)a4Cw9I~G%rPqsfi)Yo|M#LTC{ilQmyMf#zg5t0;E*?N{0q@)F4?j**TTF9gAPw|rR zp?zkneAhTr;Uj4qL^Clix7TGPVUB>WO4|~xd+tR}shgMiu5%*@)D_^cC`@&70HCfE z!C~C-rtti#`;)1j%QTE|P6j_nrV{OZGI;&$&6vVLfod)wfJEeU8TP|eB92I`P?~JRrA>wJFLEZ)$OW&;N_yI2jBpNqC zc)k~wnA~48?k%^Lb55?7yb&BpW3sLs6&i`LebIGvxe{VrtL45GC2KnEpXPJ^ER{uh z{LXlj5Q1+a%Fo2@3|ePw!z!O!`>P;TkEEK7#}OzqxHcl$4;rv7!7IN^CK%L zGk1V8Uh5)nL7rdPWOfCn5!A{gu0^b%zE7fG&3e8HsZ4t5>Pk>C)El9TSY~qT+Bg%C zy=D#yJ3YlwS&Cfb-QiM;mt42HaYXndU@~Vt%;}Y8v@wnWnI{f@QBJ zC`zesQt*UZHfttWNixG(YLpP9MxO?fQ?$F;ag1Pva*s4}{K!jZCYZlraIq%~2~JE& z>omH7pF0Zq1Qsrr6*tMACaYQ7W%lbM*RGWqUsqg1c$>P2`H9_ESM1Dx>yOXS)K2?h z<#^_z>q1}deWb32&a#He{T@DWh7X0=wxj1=2WO&otyU;>RQEu0YJ`;F|50n(M{qy4M7nLU0TBMrxFJEM3u^o;ul z_390dm*6gx#MJ&?OWA?M34T;(I{IO_BVXU;#%^t*0zU);GlF0`rA+gSX^%b_{HGkL zYb}U$z@XN`bcfeMeEKr6*hYBMo&lq(381p+I{RL{4H{pj@bRFep_94JE`qg0AC;oA zNd5Ok8(7aegHy9X`J5@L#Qhk*zdj%tPQE*O7FnRvy&5#k$n}(*kmQ{K3J6%f)X_V{ zshsCi53NP!hk5BDs+x~9<>dXMXYjTR7BBs-MHGGSvkIw^5AmmStGl{yG%qhBBl&m{ z?S)Nq5#JM92FHg>oTUh>ntw1-I!Vb-sUJ08CieQKbKD?M_hru-vDXB-&|2$u8u7Y} zjsV+>)YLXyBH{#4P@Hnc%3sffQ!9b3pg9VG#4aS;Y)o$cIY>*Rw;d?j8`zZ|YLADH z;!Q{WedI@wo#xp$EFGkve&}xgO^e|o`61RZ71aV~vURLP72Yh(cZytmxW+4kYGfrN zv4+)BNMsgZRumV(Av)HhYx8!0A}NMO!r)y(Cn)G-rJb;B&Jfu_CuBVTid8&E+rj&O zT{tJ*AgxZ z9;Tbhe^KgA3Y&%p{(Kh$5#x0nvW|O~*nYj1QW>aj+Xh|gk znrR!7Pf~D-Ewi1Vu-#32Wu#UMN9_4~r+PD{-KY^UyYt1nc6F{YDiF^n<~GLj#r)%Q zGfGG`n`mdbX3VlvQyZ#9D|6=)qh_>yM$YOdl1?8rj>*p0F(S_nhbK)g(EEaYrBgce zWhNSPC%A@2jerfPZe)lKqIQkck-OQ4Uu)3)uKAn%3)A%rH&F`L^eB0}7;4e3jq~%R zXDFziaDbu@xuXp=Aq|>_+XjYJ*=fxjo5LGa%PVMUXgH$vJu2NsavoEHp~HK6iL^z zxmlYS;}IM*?>eUF?DmOi5t=ouaf}eo8B*V}!n^T@-R#vT6yi~C&5tpzV7NQYv8M$D&Aw==VlI2^(V*T38>y?HihbVNs69|% zne0y27~stJuB?hu8Xv3@o1zyp#uS~O8h`uSs~FJAUKDEmCLsa)`kf}jQj-x7XtX$# z^AN9rXmn#u8nTP?C&tak7V&W_XCWp4tu1;XMP4OUF5`#5_tg2a=Ykh;=xDQ_>-L4eqbK0-<8*#@jh}H7${so8T>ud3k&o$V zDH>Gr{U+Z&A9*Uln|_hpk)>ui6LE)VJ_6xJ`JxkNqHGZQ@jo^Ars7d8Mv0$LAk`}& zx+_0FHGpN{0&97&HaCqc)}yw4WX{{YVMKFvG|sGTkd_&C2wh?h>NvjYJN-QqY~^{D zx*OtAM@&1z>0Y0j>q4E-eb-;@>JH-~fdE`RMa7$SW|{pxL|N1)Z%!F*F6bpBruXLK zL{6tXW9sBaT+}bclrb4akW9#A`^DtsdZUP=-Zi?hqZC{M%T8t8pkU46{t0U|Vz6v! zginks?F9Bo6Hq=eQo!5Pqr}H(^o)|=WXBNofL{sNyzVxSApr$^vdNGaSFHlDEqgbI zwSI=6q+$D1&j4nwao-DoNm0Se8`-@yTkmc$jnX#+fkcv0)IP*Z8zc&Moku>ef%)DI zE7;C~g%gpt35b;};qbFBVnQa2yUix0+xD)pU8%`}JCmSQT1xnq@ls-Kj}z0fuAP5G znJ+S$Rv+mD!hSK=uRr4K*P6+@+>MwC!$|&&HQX|j>zy$ccK{yWEbs8_JPz9aRO#ZW zZTLn&mW-)zdFDUF&f*GEV#45N9#rNlwja~ zcsxPQ{Vw-$S>D^AZcrDFQ-_wZCY}%9Ju6~|Yo+nUL zpELQKhoUyxg`5sIR3__AdY$u0`x7M+bTQ{wj#VZ2T-($-xtch?BxGZe@jid59LVWa zJ`7bK~-g^uSXf}iy@7Ajc zv~tfeC5eG8aBl31o$Q+#NgxV;QLumx-#^uDZW%!P$`%}J!_I`P<&`F5> zY)#rOPZ-3t7p>_QSUdKQp=x#l`ZTe7uk`X^Y1bjvCEs)(Ub?F&IDG5Unx#6fzC6lm-bEOG+fK)4hf!HS+Lbpm8YJ-pX(op&Z$Wnw>o z*2FXP&!61!Wk-J-6Ij336Q|R^R``qB<9J$oOHXOvklr)bq$RRocEK4Rs1e zhT3D=t7n8Fw;6i1`l%j1PWUI1vb;Wd317`YKz9;)yor?2Qu=pgMg9@J$fvev%XcV6 zg;wPZ{l4xUM{f*BBg$QWi&?os$$IuDffl46KdE%Mlj7nv_ek5Q(Rb<;Cnxe{o!$5< zG8QK&8Ed*0*0SAtDE^q&yV_ow+2u1ARbM9*b#jI@<*G!-|Ds!$g{o5O$0Kpje1h|b zOZhw44|a!f=*>K!4}<+8d1!9#$BUvDAl^)3SAhf|Lp@BKe}p|XaHUk=Wje99H$Ltc zG~fN82ZM$^fWE)elT2~Q`1s%Q0hiY?*~sg*-2CP6U}%E2*nA8Qd?AuL&>$3QsirI> zqmkScwolODWvkavDK|`gcu#b-T4*j-4=vWdFW?)FPAYlCUCODkro-L*1dg{Tz^pH(R`L)Ovds0L1gBJ^XKNPWycp{o%_I%&fQPCea;)M zl87=0w5&IE(`9nAe}pu#L>Rr)7h)%fD38gS!r)M%BG7kYL0-|ETqILQrZUwD#KmA? z<64To%eSwhqEQi23WJJ|++w4L9x8>5>E6hwZEN0UjX)T(t4~@c5{?HCC}%iskHdY8 zBi`!H#Z`SL_7ksGUDe#K%@?Cl8sr*eKID2vGAij=vB+1btNX&}TzRh>&oNvP9JQ4C z!Er7)`yo(Ef(u4)c))-$dx`E7B*F|#%0wmswu+B;@U=kMzF_(;_M0I@qg|jM!M0Rj zs_ZXjBGJca^z2i>gide|D6e)g8ouKs6+>V;I3jlgBfq$u5qUJo<2!}Xg3K2BIEmHY!&o;ZL2RX|w^#O@P|$t-1Y-$bl;){MmN<119{FnOTsR4 zzA6H(VL7C$Qa~xN+nnj08u0893if^@fc6XHY=#Zep6cW* zNt$v`kC|CM4lWw;@%9vzz~p7D&05c@|(&Ip|hdUaYvLU9Baa`nQQUdfR_bFzchnd0d4 z;~CiOl7F1Y59S0gK}q8DCIjBM<3L+rr|Mgk@?WLgYWZS6P8pO0o9?092)lH+>(J>g zR#&ICtK`}#EuOu~Uro(!J67X+DvUhYcygNoD0mGG=7u1?BkfPvxzB{axRe7N1E!=> zR0v>h>D7R$8AMto_scKbcb(`28#&$cJZiLsobQGe#4)nRsDp0^CW!+-Z!boHc&-(} zQJa}_+b<4?OUZ#&AjStYH*UCVzfNwyCq|yFCLWf2ic0*y68}s15&X0CA0K4rW6)v0 zJuCf1Z<+q#t&Jk3O2G0B`lrhjPQ-Gde$Mvlu9~(I~bVwzaBu z?^9sCsl7tq@;GWORAVlCheDz8akvMYcO9M!ueQSybD;dEQ|+`6s${A95C6+u=@-4q zCZ9y8Sd`IFjmy|_w32#XkncH}Nn5oZ5SXjh8U{QTAa-Bx(Fa4t4<=rLPzF+h_ z7cVXaL~702>D|$|B-^jhF-zgFNly0{hHJdsnj3iPc_9V8Eh7_!kDnO7fevnKchU*; z_bM*$Twpp%`FUbwO0=i?-~L^ML9XdgFv2FzjnN*PI!>*JHa?VofkYl!Z<^Khk5jRM z1Rr}2pGZ}8V4~uk3JEt8c*YWi$2mc`*qu2K|_uU&~MzZstPd(PJPS}uV897X3y^=4)`vi9g2Gx_v~8Ph2rBaVLsbe0!Q zjq=Ag!)q;LUn|0W@uzjR@w}X7TbBx$Z^^Z55%bgUjtoDo^KAhoglZg#QqHn8l~Cji zS^q5D8R75X>e6$fqQR{W{grK0#ST6wnS#^`Dj|w!(^Ucsn{odtu`Psi?YIPC5{YHRd05VlPYqqIA>&bTv8bR@DL3|Z&d{*H$S}q>&nf}zW71kATzecn z-!|8KMeOxZo&2}ienZsDO?#bvin(f2uFPNfGq_)PPhRMX~HHQkD;;bQQ7>(Qbl$2+RSQ^T%7~S~d}V_Nq@ersIy=Pwen)D&nxaBFNxN;KDqqGTZz$*6%pHHN zEoeSPMWx6VBvkW^d@O7}?{m@0JmzX$mRCp2&*bXcXL7`)PPs4Pu^VEi`KiSANUw;3 zd2*vD*Ep?MS^?*S^)+pu&GU=$T8)?d0{Cq8A$J2_LbTUE+c;uQYdUKX2Yww^DV##s zgas(dt!|xALKA!Mg9dX+*`?f2pjL<;Nw2B@y4@-Led4XgJ)xMAts`ZB)v7Vlb4J;W zJ)XsiGZh6bQ9zubS(M1UWxj)#9d%*vJKNQpplPGewAgjZqU5XBs6;(_Ony;a&Zd>A ztPero=+4jOH`V?3OXtLqNK{F9XXc7UiS*K)0Qxj?D1UtQH%ig*YrPi*{zs!ssryPB zInpFwCX^HRB3bFSqr}9ZrUl0sAEkrmv#nOzXBD9G(Oq*_8ij8~?r`sM40|-$>IuBQ_>mmrW*4!09=liSyA;ev zqQmo6hB?-?QlAT&Qr``6@sxDE zlrTb?CE|FA)1o*@Ntg%W5FDySZ4nWE$ z;**Q)89!$CK90cKK)T%jg@|+T%;62Z*$7b!TJ4*c^R9#QN&!(X>B|m`n)pf_7?<1zzPZ4b6Ns%A^v- zNZyR5GbQOSzDs|5u7<1``Y-K=)Szg-z9(lIVtjmK%`WmDRhxXQM^Fp;?3kKGGWqtO zLw&_ujaERr;7&q`RM{B;**Z%9Xpg7aFF%yij6ZW%tM*mW_NCvH5UIDaQQwY5;?R`Y z!6?8{WclrG{`S8W{?SDj!@trI16Ng$pW7`9-viyDly7q7#}-+%+7C_JP4sKU{`7H?AL-htd+f$FV~IHvf-F1v zN|cbs?oJS;A5p9&?XRGC^;xt%r=rg2(o_?%-67C(*8Fd?4N@pYersC8Mn|T{-@W2Y zG>&4Y*wfZTg_q3GC^ zQOZNj$6V=&qPlao`i(8m!aNAChJUlY@jPh?H5qL6?^XY1f2dQ9J@CZiybS)%hwI-# z#_Lwds4={~5GO z7tQq(xUTS5m{u)?U$^RV$nL!+wi)f8_>IlwsPE$6rwHZB|De~FaMrdFJ$^9LVm5p2L z0_UwY;bDns(EGi$>HeJ(6SN1y zc{?uPHyFm95h7e*ys6>V?p*iv3&Tt?dZ4&ocR#OOXWMPD)vK*z$3Bs^f3H zOgs_4{YYhbI==m8^`qomJI%u{b%!ZeV(hU@*l9}8Ms!ZDT|J=&BU26x%u}RJVvr9` zX$8Z$gwh&CGAF^K|464PPY#QDjGOhqPi<>Z>=3+t+tuL!SAB2=_dCD>|+j(Q}$;(H9Ja&7o zJj(cD+Y+%NX_LHRoJT)RK%KZct}64-I`H!E?Mt;^eA*|aP*nFxQK5TrYB>3pQdGyM z7~PpXn>OM}a2tMBv$-U0{yhADZMvN4W2ZHF7*}6C&u9S58nv<-Be}>C18#!ObsQw4 z&cQ$EF;jT!IW1`zd6}8%ETp_eINQc$^1&1r z%}NLCDB<8B0FQEcGT71!TeSbeM@CUspNmJ#^Uj%N)v?M1v}wYNavjX2<<(4EcFmE* zNHQVzxs!+ZvmM}Qdp#NL(!DjbMO!>qw8wdD&zk$ulm5aUv)){+5d*nXCmNY_H3+Qu zu?G--bk2VWg85O7;DpClDRN-C*s?5N{JFPo%7etP+&kMRAQm-(tqcz@?R^cvBy3-J zn9xfg1EqhWiSNKn5FSodcx1-Wm^<(jSGws}C-}!09H}ZQY>)S?(cY=UA&Gq`DgB`M zmsNRZ<9y11fw_4|n|YMhXUq?ru6e^c%%sk_Lp~WMcr{g2W-!TbF_*MbRNN->^CEPr z38pIn_yEmgem=se#+NzXeVoeR|H@w>H#&?a)6Y`Nyw;bQ1v%hZ8a<_GY@?391O1RN zyH28rc;b-jc|bYkchOgKRxhgao2NV=29JkOQ7t#hmw!UM9zcZu+vzw)j2+?{HyDV< z#z_zG?tdKycbI`Gqvn5+<*>wjD@7ZhL$KF{2hguSxlJ2lr= zY=Gh?*vgvR$7|(%u4QnM%=IM}O~aMog3`!J;8F*Ld)7TU$yvfI&hx%+ri*T*9=~T< z?N%T^IlDG!3|LG2*im81=@jmN=aA(B-_3|aNeMN;oUXCT#GV)|OLKb)p@+~IASm1S zTx+II2LuXlX7uia#HUon?-SU??+XpX4S6JHkC4D1|mGxEow}9iEf> zdxQeRk+1YO=w82gXloE2H?zBf!ka)bYg(sr5p~X-$GPm<#jYMY?p2Jh{`PUPP|K|r zVR$E$*oCR}ROq4x80MT(DubG=-O_J5>^A5~YIA*T=6~xtVc5A!Gpr9tKb08_!_C)D zI%?X8G(-E*#)ArhP*M(mz36&`iEyF+b3$|m6F^23{vpCgXY86p$gYq?_)K-}+H!u# zRymBCXh#c!bE8#GWj;*Y*(eZB=vSf(C934tQ<=E=cx#dSV(jw%g1h*w`|d^lxpfa z?Wiz0{p)tyK3*X|`OX}M=Z7B-@IwH&m$bD>G6!JyWK#2`Z8JVeu+a!`&}`@D{m{fr zZ=BFvfppqV?}(wWUBPn+ck^Ysv((z|1ALXswm|}tG|+ZYPp#Kg>ji}3P1)6(|LfQz{ny*pUJWr*>!8s z9qF6tOs8%!LM{yosbV-IeXL%M6$YjelvR)vVkn`n<-XRxQdFwR1W7FX`8ZYD|Jr0F zZvgR7yVthN&`A1*w~(?Dpb0D@U;@hav}uh}?^SxP=cp5bVSaeQ3^YO@z z0ZXWm!Nthim5XF5UU5LAz=_`@nQAHXg9J~PiH^UR(b)0#k?zclGwr?bLcrJ9U_#vp zz2aTMF@KoOH2WT!>vDFYx~J$~XwoqqEe=R7&<(%Fa&A@1Z;DntYp?Nqa>%dOolyrx zA?dlrh^NsIkgpgWU=OdQKPOFGxeN8aq)W1qQ4s>okVLZ%)GaWkU z+&03^B^3tVHTi^vt5baHE)0(EQvR!yy7y1$O4?LQxz8#hss0sQx6B=FU;V*BA`&*&6t?7kPAS%C3=Tj35`) z*_P?{E9Am_`Rr)dlY4fUd1UDw2Vea!^buDobwnm#+xabcED6H=c4bZLLwmOmkE?WA z+b=;q*hgO@qws_QjN7)hOW>meaHE(5G5_`6J?hn4dy}5Ig=JkiG+)MO8_J>r&0uv4 z2yeyR?6p2v&z2VY-!v>(e{7}SKY96*KIkk#zbn|NyNE5 z3!MJ^xoUVg)LEnYfSg^*qWke#-+K#FS16rRO|qe`AH;MF^X$qAnGVj+qH-bEj(@sq z`2RhU=-}qK$D=ar85tAh4Z4txdyyLK1VN^FRBl?&;jV`(UuiPTF6E81h@(b95qCO8 zrHH{P#y&f=K0rVWlnd<_hf2Anv7_~@Ko+J%RV!~je9;N4aXY~40eH-%2MO$-c?+t*w#f9mvZaW{4$uf zWpai=^Se4cFp%VHt7fjrl&#P6*3|J7EPt7$K<>I8x@M|JwZ~&u-J6-w@ORjD*x!YSQJ1dw8T9=J4H)# zfA6!9>(Mw+qB;;$-PJHEQWRrSzND+h2bWevGQapPr4`%ctG&aEMP>vsEx&716bx`M z^TrFu8)(^2$@-~HP5#8 zfN96u1FmIFdq+qh#qu*0f|gT%2pcBxh(iL?6(^_msBv$XH4hCR4#Rga_s3J2uU`mj z1$v6YWFCm=OUm{}R;R8ETscK#*1Ap=HQfq2v9pxD5Es)XMG*NJc6qQ<=?6bMVLGM`@m=b91OLp3o2bxFJYm4Ke?)iF_v6 z^)05n-+nsTk>xBW0!>y34QB*;<9#%|6hDXBeEzU#DV1SOAPV=wF2Ksb>=zp$&_{v# zfPdLvA^xI!jfG0#&RD=J^AJ+|Lui+y(u1~E-TIBF7C%8GdAlPbumd#ND!LV_{aBYmohup?d z^C!GAg6(pMw89LaAnoYLqwhL{=#Xx!-O(xDHF*9iUkoyT{ zSW@PGJ}lGZ_`*#XX&+*?@KjK28*+`9l{{)z30_BQaVd>1MmI#-#1d#>ynsu*#{oPaCnjp(4LyKPvv5K%0u)^9ZDdeVEkTy-i`EP1^SjuL}rR`}t!jrkVk3DqH2 zbIU7{!Nz{Q=1!stPZb7jVn|G7Gbj}eLx{1TKf6#A+4IY1t57tKZsq#xkn`}8VQ^)$ z^}`REc$X+kE_pltltX}U6DO4*q6q^QU84Yzdu*LO1bR^%J2S*qq-L1{J;M6`l~?} zzy1I0y^E3~DG#Qd5ANB+{a@|w{$1}MpXVb&Iq!%TR;69;E+V5MD-A*j5Fm7z#lx_f zzt)0<_m$eb3GHO~mtuiMBG`E=5a*Tv_xDI)hZ(DLglUQ)j1;ln^0;Cgj58hXU*P^d zvQs9PT~MC+>qAa+2*?|)l3Mt06UOZr^PSlW&I6vu6a#0gu}&NuW8~2z$HB}1_xF(V z{_mvfm@hMPECQ!6kIZ_pBgSQXW5&qlOXhe~kZt{p)tz{;uwa zGH39(&;H3F#`v`r%ovC6{NS(HoA4jUjpke*!}7?&M$Off^ZNQ%s*XF^6?d#=U(DyuO;2NCR)>c~oj~rT2J<7;)s%_D zEpYA|VPk=B!hD00ek`Kl$(i(sFHFqOto=4$260Oi@yQ|ALb3YOl7JM@i~I@CmY{c= zWBxyMV7{N}=BbWh|4`us&pvJ>r%W;+c@tIkdg3CK!Z~daSReBzEFe@|5#(Ge-7@g) z0Oj{d_fvi7`u`Q?=F2BbD{XI(?R;+1ALirp!awra)Z_UFh=QOKd+JLn)oixB=CzDX za+PqXxft^`(T^!4J8{YajxA!6@bHPlm@jZ(o;YBZoB!^lSp<*ddaekE95aN)D&$uL z6}}VbuledKBsr-oYuzNsKEI)%BAN8(8~CfatkQa~)px8eZg^^1NIto;v%I}NZu(KHlosMs@--@JEL|iUJkQ%@t>#&-^7&08R`ipPr4fvbrQ^_@4Qi_1 z=syqo`#p(U^wwc+z8#A;Of&x91ySkr(x%lDR+ee4BPUCvvDCiHUU(gGDrT6}Vbl>{f?ri-7je zG z)Ei|Onq_D0ejo_Sh*{2titmPo3`lmo)bU|^K&kB4Q`SGRxYLcaKbhP@%fb2c2s~`j9bS29 zrJO;3^I|`(NJZ{Fifqj4EXi54H}4gm$5wP@-^&ta_0;>W*QmE?E4vf6hS$5;w~FeV zF?wZF?ULFEtPkUQhA$=W&>LLBf2ZoE`#XJnhtW+`UpuUT&$Efw6|v8H2>8C+Tdkru z`pr4ZmE4$5C8i3pmv;Tl!J}mtYhJ7I$&oJ$SYx9rQZIfaX(siqX=RM9yX|tC{fa)U z`0wL`qn`=^gWqnurzdp*I#A&-P(ERdc|OOGZ?j#S`n416@HT#IEkfr*K9MGsVd!=Z z4f(oC@dC*+%H+M`^y{#k6(N)!Qkg~$=f#Q7P&ZXS@ajd|!F+;KBa6xaKRmwRS;3$=O6n6csf+fM!Jc(eVcpM3TEn>^Q7UCK z0vc`@&N0qjwMY8+=lSsiKY2WtP6RgJ0{cmYoE`x^-M2_sED}w~7|oSo&T4VPUy}LD zewbB{X;v>DV?A}&XTCfyzwTV}mA88o=Fw&SHDa)7?*)Z$M&;kRk4U<;EORn^^rlCNV<$bAsA}he&L(5DIOvL?@?3=(m4-+;!#wn>E1Eh zjQct;Z)#BszPC)wzt8XpvRGvhp%@KJ*{L<)I%~#}S@>rdXCgw{xD+qH-=$k=X zuxyjq^~3=W_B`bQNIt{V7Ce0~fM0X@@-F6y%z=L&(sI{;)GRyVoj;q16c$D4#L2WT ztwOa{*l}up@Izn?pbA@xWRa%kMNEcjsn5?@Z~La0QJAH^V|uzlE-o}!Am`|gZLJ@9 zXzAc$ZsapaokfNzBJ6bp7dvRwe0gD<&hORI!}p8|sqsN;s<+0;-`Rl0M3djbjyYO> z1hV|kyAsE(FNu5Mn6U+#dIX|?u)Q0DwQ*IiYt0q0_fI6_C@cDrH`Ya~!w|0P%aB)H zz@Z>S_GTu}s$dc!J`5GS`TVmiGpD1Zhx!*LOmAJ*r-ZWMI`SBQzfYK9Cvwlwz|C77 zs_?t6!ORoj1cWDIn28GKYeA#HgyY)Y z@+E|`1;hk(8)-WT)xmk`Vt${kb0AUw3a0)jHSsol>od>rQ*`WzBdgXMVN-G4xglbMtYHXivg5x z1MG{wAcMvJG4QgDt zkZX_7Il}~Ga2q~SQt)JdI9_QXgBshZW`1qL6ggG*y@bHYs1*9$@yYH6bd94E-ZN$= zjZg?&iqB(CvGo4?mpTirg*f|8zYU2-J!fqRBT=KQB)-ySoL;0#u0L=n&&;b&B%}&- zNggvp?|9!(vgL16o%27`ixq?>!tBx4usL6An&urQ!RI`-Rd$BX+V6IItT|P+4}=D@ z(YK7_Ya}jqAkr8c6g}jsy3JIWxUh|3e+#aEW6*L5#lC}j=2s|SLb*$IsF;;)lLt?? zv(Sfo!x$cBr68Li{M*=!lpG&jaDCBtobCwwPpqZxe2K#_vT5?@?hx-9eZ^=gS`H`r z{Pk_c9J`52@oC?^*L})-+XwwN3AY;f)WkbD8KnS3midhcrR2Sd2L5EVG!AxLCL`uE zi^EnxoQ8}hZj*gx}yh6|O#vQKt5hXag`T1!qtvAXIz7d^yUsL={TqYjO> z@bf$IwMnPfxZxOKIk3^#ju{^mZ7GDB`r!iIz#e}BD9 zwJftJ>jTqi+r{eBG)(;{>~yir-*Wri#J+&T>95~zb7Uj!dk<(c&QAk>o*qh^JM!t^ ztJ`ik@Gli6xx5{sMrYMU7WI+txSK^Q0+% zEN(|>1YKZ*R(Qfbw&&#?KTk}aTQV}N4t{p1rS!_v-eVgM_~d!uB3BF}umB&L$hk2Tl({_w<` zu;lB*pk6FBeXGtI%PCKoyJO=BE%Fwq++KI_z=?BUfW09fc>nKNA1eNYp=8M;>_R=# zm_u0kbnwi09uq%BLJ@5NS+z^fcB4KHo1x*IgiJtnmesz%0w{+uE4GqR?w-Vp!o!#Yr*!cNFrkk?RSH`I4dn=r? zHjDH(;Qf_RuQhG&kfKqG_kxx##i+GU*PEymM}3Bv%H*WnN~O+OmCzCe1r$3y3 zUln!#y2`7Q-2bfQ$+k{b3%{NJ=sv3IyI;Nja!0lAJWm4~-PeD^#O1mwa@h$Fd51Qa zf(b03oKjR%bmJ!6`-_Sz*oz$?IwTX0ERXT1WMiVj&{i5q#j8&&fXManXpC9*oQIL; zstCmtHY0%p8jPVgyt{{(WGhs!h{b=Hjf#|WEitl2xBnujCZ51Cz87()w;X0 z1&~^FeuteYq1YD^mUhcCG?@y&g$4(o*RJcFZd2u^(8Q!l4aULZ^v}e?oQ!5^Fdq)+ zbqyAHQvU@zNK3^0nmj|+>LeKpiN!g`ddfxCVE;}I1gHHv3%9QpT)VsY?*+4qh!MJqKIAA7v*pCp82Kfpe}Y(6Un??vDjKC-EKO{+Jy*qdI^GptJyQI&-O z-c7}WZl4-;`B7nm=r3GnbJ?fH7h5f9_d7X;yuTONac@;dg0TeJ;edvtHLO zbHq!3Z+>O8$$SY*m%MeVL-WK1v2tmjgiIXZfo9}gu&$S4Z`x;SSYztNv8yL;suIWA z%~=xRQ^^V7B=y}QhZlil2kIev*%9Ohs7AkjaCECku^Lt>6uV|+ZOPu;+wzmq7C z&IRdMdm$DnahlP;qG=@jsdLlpL>k&P4N||-5jsJBn7LjfIBxe|S8t+o!F6C`zg&Q= z-rs?Rj_;I60c`etn38mp=Dc*e(MDLW3o)ZB=|iLTdf9$)FQ_lAPcIdsKI%gE&)OUb z${fngcA@qfBB$6?&B&dGc&o@qkyL0n6Ed}4C6Q-pySvnPNpHCGy-r?W-p8{Ta5;VG z%GwpIA@qy*DLRgikK_3NYG`vWq~qs*ihZ8-AbVXb4|=lS74XPRk?ehBe&WmKY) zIfgcu#>ny&*(ZmzQomOy6~3lm>r|5F3sz%+_9X9WoD#L<2jW*AK-p$j`r4;f{7c>< z!u!XS%M{nF9(;{GJ#VsT^OT`GF23jIxADsGos6%JhL>XAoZebH7F{X{zWtcJz|@6@ zSE~X{`rP$X{Xhlpp&roR-R`eO+J1r>ZSx=T+UX+}+Kn}L9Z&b1fkGEYTb0GemR*xF zC7MZw|J8b0iijD7pT?DWlTagl4Pbp028@4vn)^iKQn-^*@&Ox};*WlyOV>Uq4E|gj zVy&P!nDBRR-A46JYoh5QNNPJHRaNmuF_ri3*#Sni;OjQJzLUHu0wh zO5)F3>UmAW{lF?e=w2`3U+|3EeZN4V6@zJUaNk+b?@bp~sJ&_}6UHpjFNDJ+@^c83 znKnTpQB!LM`JrTgfwLp_*G^7F(FQ|u1ct*TLkCy~^0J|*{0Di~sR7K|s6_i1C`X`zw9*d6_h0>y zRU0V^L<>8k)r^!DZQ9Xzb~F;m+SP%!&D3MPtxCZQCeRzPdF^zxzTP4xV;)bU*@|d! zqj3D+!g$y5@o`8q)`@zpP-h;@B09wBlT_>k`{X}u4k)d%hI1gLfvf}{(#a8X1`83b znxp!JE2hLUQjHVK(~>x(W&A6x`B05TRpYv~(I

  • Um-~ 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

    EL7`ns6- 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 z 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

    aUzBd&FnTy%XLNK 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 + + + + + + +Prism + + + + + + + + + +

    +
    + +
      +
    • + Dead simple + Include prism.css and prism.js, use proper HTML5 code tags (code.language-xxxx), done! +
    • +
    • + Intuitive + Language classes are inherited so you can only define the language once for multiple code snippets. +
    • +
    • + Light as a feather + The core is 2KB minified & gzipped. Languages add 0.3-0.5KB each, themes are around 1KB. +
    • +
    • + Blazing fast + Supports parallelism with Web Workers, if available. +
    • +
    • + Extensible + Define new languages or extend existing ones. + Add new features thanks to Prism’s plugin architecture. +
    • +
    • + Easy styling + All styling is done through CSS, with sensible class names like .comment, .string, .property etc +
    • +
    + +
    + +
    +

    Used By

    + +

    Prism is used on several websites, small and large. Some of them are:

    + +
    + Smashing Magazine + A List Apart + Mozilla Developer Network (MDN) + CSS-Tricks + SitePoint + Drupal + React + Stripe +
    +
    + +
    +

    Examples

    + +

    The Prism source, highlighted with Prism (don’t you just love how meta this is?):

    +
    
    +
    +	

    This page’s CSS code, highlighted with Prism:

    +
    
    +
    +	

    This page’s HTML, highlighted with Prism:

    +
    
    +
    +	

    This page’s logo (SVG), highlighted with Prism:

    +
    
    +
    +	

    If you’re still not sold, you can view more examples or try it out for yourself.

    +
    + +
    +

    Full list of features

    +
      +
    • Only 2KB minified & gzipped (core). Each language definition adds roughly 300-500 bytes.
    • +
    • Encourages good author practices. Other highlighters encourage or even force you to use elements that are semantically wrong, + like <pre> (on its own) or <script>. + Prism forces you to use the correct element for marking up code: <code>. + On its own for inline code, or inside a <pre> for blocks of code. + In addition, the language is defined through the way recommended in the HTML5 draft: through a language-xxxx class.
    • +
    • The language definition is inherited. This means that if multiple code snippets have the same language, you can just define it once, in one of their common ancestors.
    • +
    • Supports parallelism with Web Workers, if available. Disabled by default (why?).
    • +
    • Very easy to extend without modifying the code, due to Prism’s plugin architecture. Multiple hooks are scattered throughout the source.
    • +
    • Very easy to define new languages. Only thing you need is a good understanding of regular expressions
    • +
    • All styling is done through CSS, with sensible class names rather than ugly namespaced abbreviated nonsense.
    • +
    • Wide browser support: IE9+, Firefox, Chrome, Safari, Opera, most Mobile browsers
    • +
    • Highlights embedded languages (e.g. CSS inside HTML, JavaScript inside HTML)
    • +
    • Highlights inline code as well, not just code blocks
    • +
    • Highlights nested languages (CSS in HTML, JavaScript in HTML)
    • +
    • It doesn’t force you to use any Prism-specific markup, not even a Prism-specific class name, only standard markup you should be using anyway. So, you can just try it for a while, remove it if you don’t like it and leave no traces behind.
    • +
    • Highlight specific lines and/or line ranges (requires plugin)
    • +
    • Show invisible characters like tabs, line breaks etc (requires plugin)
    • +
    • Autolink URLs and emails, use Markdown links in comments (requires plugin)
    • +
    +
    + +
    +

    Limitations

    +
      +
    • Any pre-existing HTML in the code will be stripped off. There are ways around it though.
    • +
    • Regex-based so it *will* fail on certain edge cases, which are documented in the Examples section.
    • +
    • No IE 6-8 support. If someone can read code, they are probably in the 85% of the population with a modern browser.
    • +
    +
    + +
    +

    Basic usage

    + +

    You will need to include the prism.css and prism.js files you downloaded in your page. Example: +

    <!DOCTYPE html>
    +<html>
    +<head>
    +	...
    +	<link href="themes/prism.css" rel="stylesheet" />
    +</head>
    +<body>
    +	...
    +	<script src="prism.js"></script>
    +</body>
    +</html>
    + +

    Prism does its best to encourage good authoring practices. Therefore, it only works with <code> elements, since marking up code without a <code> element is semantically invalid. + According to the HTML5 spec, the recommended way to define a code language is a language-xxxx class, which is what Prism uses. + Alternatively, Prism also supports a shorter version: lang-xxxx.

    +

    To make things easier however, Prism assumes that this language definition is inherited. Therefore, if multiple <code> elements have the same language, you can add the language-xxxx class on one of their common ancestors. + This way, you can also define a document-wide default language, by adding a language-xxxx class on the <body> or <html> element.

    + +

    If you want to opt-out of highlighting for a <code> element that is a descendant of an element with a declared code language, you can add the class language-none to it (or any non-existing language, really).

    + +

    The recommended way to mark up a code block + (both for semantics and for Prism) is a <pre> element with a <code> element inside, like so:

    +
    <pre><code class="language-css">p { color: red }</code></pre>
    +

    If you use that pattern, the <pre> will automatically get the language-xxxx class (if it doesn’t already have it) and will be styled as a code block.

    + +

    If you want to prevent any elements from being automatically highlighted, you can use the attribute data-manual on the <script> element you used for prism and use the API. + Example:

    +
    <script src="prism.js" data-manual></script>
    + +

    Usage with Webpack, Browserify, & Other Bundlers

    + +

    If you want to use Prism with a bundler, install Prism with npm:

    + +
    $ npm install prismjs
    + +

    You can then import into your bundle:

    + +
    import Prism from 'prismjs';
    + +

    To make it easy to configure your Prism instance with only the languages and plugins you need, use the babel plugin, + babel-plugin-prismjs. This will allow you to load + the minimum number of languages and plugins to satisfy your needs. + See that plugin's documentation for configuration details.

    + +

    Usage with Node

    + +

    If you want to use Prism on the server or through the command line, Prism can be used with Node.js as well. + This might be useful if you're trying to generate static HTML pages with highlighted code for environments that don't support browser-side JS, like AMP pages.

    + +

    Example:

    +
    var Prism = require('prismjs');
    +
    +// The code snippet you want to highlight, as a string
    +var code = "var data = 1;";
    +
    +// Returns a highlighted HTML string
    +var html = Prism.highlight(code, Prism.languages.javascript, 'javascript');
    + +

    Requiring prismjs will load the default languages: markup, css, + clike and javascript. You can load more languages with the + loadLanguages() utility, which will automatically handle any required dependencies.

    +

    Example:

    + +
    var Prism = require('prismjs');
    +var loadLanguages = require('prismjs/components/');
    +loadLanguages(['haml']);
    +
    +// The code snippet you want to highlight, as a string
    +var code = "= ['hi', 'there', 'reader!'].join \" \"";
    +
    +// Returns a highlighted HTML string
    +var html = Prism.highlight(code, Prism.languages.haml, 'haml');
    + +

    Note: Do not use loadLanguages() with Webpack or another bundler, as this will cause Webpack to include all languages and plugins. Use the babel plugin described above.

    + +
    + +
    +

    Supported languages

    +

    This is the list of all languages currently supported by Prism, with + their corresponding alias, to use in place of xxxx in the language-xxxx (or lang-xxxx) class:

    +
    + +
    +

    Plugins

    +

    Plugins are additional scripts (and CSS code) that extend Prism’s functionality. Many of the following plugins are official, but are released as plugins to keep the Prism Core small for those who don’t need the extra functionality.

    +
      + +

      No assembly required to use them. Just select them in the download page.

      +

      It’s very easy to write your own Prism plugins. Did you write a plugin for Prism that you want added to this list? Send a pull request!

      +
      + +
      +

      Third-party language definitions

      + + +
      + +
      +

      Third-party tutorials

      + +

      Several tutorials have been written by members of the community to help you integrate Prism into multiple different website types and configurations:

      + + + +

      Please note that the tutorials listed here are not verified to contain correct information. Read at your risk and always check the official documentation here if something doesn’t work :)

      + +

      Have you written a tutorial about Prism that’s not already included here? Send a pull request!

      +
      + +
      +

      Credits

      + +
      + +
      + + + + + + + + + diff --git a/docs/_style/prism-master/logo.svg b/docs/_style/prism-master/logo.svg new file mode 100644 index 00000000..22fcdec9 --- /dev/null +++ b/docs/_style/prism-master/logo.svg @@ -0,0 +1,22 @@ + + + \ No newline at end of file diff --git a/docs/_style/prism-master/package.json b/docs/_style/prism-master/package.json new file mode 100644 index 00000000..cbffb02a --- /dev/null +++ b/docs/_style/prism-master/package.json @@ -0,0 +1,47 @@ +{ + "name": "prismjs", + "version": "1.15.0", + "description": "Lightweight, robust, elegant syntax highlighting. A spin-off project from Dabblet.", + "main": "prism.js", + "style": "themes/prism.css", + "scripts": { + "test": "mocha tests/testrunner-tests.js && mocha tests/run.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/LeaVerou/prism.git" + }, + "keywords": [ + "prism", + "highlight" + ], + "author": "Lea Verou", + "license": "MIT", + "readmeFilename": "README.md", + "optionalDependencies": { + "clipboard": "^2.0.0" + }, + "devDependencies": { + "chai": "^2.3.0", + "gulp": "^3.8.6", + "gulp-concat": "^2.3.4", + "gulp-header": "^1.0.5", + "gulp-rename": "^1.2.0", + "gulp-uglify": "^0.3.1", + "gulp-replace": "^0.5.4", + "mocha": "^2.2.5", + "yargs": "^3.26.0" + }, + "jspm": { + "main": "prism", + "registry": "jspm", + "jspmPackage": true, + "format": "global", + "files": [ + "components/**/*.js", + "plugins/**/*", + "themes/*.css", + "prism.js" + ] + } +} diff --git a/docs/_style/prism-master/plugins/autolinker/index.html b/docs/_style/prism-master/plugins/autolinker/index.html new file mode 100644 index 00000000..6053b62c --- /dev/null +++ b/docs/_style/prism-master/plugins/autolinker/index.html @@ -0,0 +1,70 @@ + + + + + + +Autolinker ▲ Prism plugins + + + + + + + + + + + +
      +
      + +

      Autolinker

      +

      Converts URLs and emails in code to clickable links. Parses Markdown links in comments.

      +
      + +
      +

      How to use

      +

      URLs and emails will be linked automatically, you don’t need to do anything. To link some text inside a comment to a certain URL, + you may use the Markdown syntax: +

      [Text you want to see](http://url-goes-here.com)
      +
      + +
      +

      Examples

      + +

      JavaScript

      +
      /**
      + * Prism: Lightweight, robust, elegant syntax highlighting
      + * MIT license http://www.opensource.org/licenses/mit-license.php/
      + * @author Lea Verou http://lea.verou.me
      + * Reach Lea at fake@email.com (no, not really)
      + * And this is [a Markdown link](http://prismjs.com). Sweet, huh?
      + */
      +var foo = 5;
      +// And a single line comment http://google.com
      + +

      CSS

      +
      @font-face {
      +	src: url(http://lea.verou.me/logo.otf);
      +	font-family: 'LeaVerou';
      +}
      + +

      HTML

      +
      <!-- Links in HTML, woo!
      +Lea Verou http://lea.verou.me or, with Markdown, [Lea Verou](http://lea.verou.me) -->
      +<img src="http://prismjs.com/img/spectrum.png" alt="In attributes too!" />
      +<p>Autolinking in raw text: http://prismjs.com</p>
      +
      + +
      + + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/autolinker/prism-autolinker.css b/docs/_style/prism-master/plugins/autolinker/prism-autolinker.css new file mode 100644 index 00000000..b5f76309 --- /dev/null +++ b/docs/_style/prism-master/plugins/autolinker/prism-autolinker.css @@ -0,0 +1,3 @@ +.token a { + color: inherit; +} \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/autolinker/prism-autolinker.js b/docs/_style/prism-master/plugins/autolinker/prism-autolinker.js new file mode 100644 index 00000000..3913c98a --- /dev/null +++ b/docs/_style/prism-master/plugins/autolinker/prism-autolinker.js @@ -0,0 +1,81 @@ +(function(){ + +if ( + typeof self !== 'undefined' && !self.Prism || + typeof global !== 'undefined' && !global.Prism +) { + return; +} + +var url = /\b([a-z]{3,7}:\/\/|tel:)[\w\-+%~/.:=&]+(?:\?[\w\-+%~/.:#=?&!$'()*,;]*)?(?:#[\w\-+%~/.:#=?&!$'()*,;]*)?/, + email = /\b\S+@[\w.]+[a-z]{2}/, + linkMd = /\[([^\]]+)]\(([^)]+)\)/, + + // Tokens that may contain URLs and emails + candidates = ['comment', 'url', 'attr-value', 'string']; + +Prism.plugins.autolinker = { + processGrammar: function (grammar) { + // Abort if grammar has already been processed + if (!grammar || grammar['url-link']) { + return; + } + Prism.languages.DFS(grammar, function (key, def, type) { + if (candidates.indexOf(type) > -1 && Prism.util.type(def) !== 'Array') { + if (!def.pattern) { + def = this[key] = { + pattern: def + }; + } + + def.inside = def.inside || {}; + + if (type == 'comment') { + def.inside['md-link'] = linkMd; + } + if (type == 'attr-value') { + Prism.languages.insertBefore('inside', 'punctuation', { 'url-link': url }, def); + } + else { + def.inside['url-link'] = url; + } + + def.inside['email-link'] = email; + } + }); + grammar['url-link'] = url; + grammar['email-link'] = email; + } +}; + +Prism.hooks.add('before-highlight', function(env) { + Prism.plugins.autolinker.processGrammar(env.grammar); +}); + +Prism.hooks.add('wrap', function(env) { + if (/-link$/.test(env.type)) { + env.tag = 'a'; + + var href = env.content; + + if (env.type == 'email-link' && href.indexOf('mailto:') != 0) { + href = 'mailto:' + href; + } + else if (env.type == 'md-link') { + // Markdown + var match = env.content.match(linkMd); + + href = match[2]; + env.content = match[1]; + } + + env.attributes.href = href; + } + + // Silently catch any error thrown by decodeURIComponent (#1186) + try { + env.content = decodeURIComponent(env.content); + } catch(e) {} +}); + +})(); diff --git a/docs/_style/prism-master/plugins/autolinker/prism-autolinker.min.js b/docs/_style/prism-master/plugins/autolinker/prism-autolinker.min.js new file mode 100644 index 00000000..9fdced95 --- /dev/null +++ b/docs/_style/prism-master/plugins/autolinker/prism-autolinker.min.js @@ -0,0 +1 @@ +!function(){if(("undefined"==typeof self||self.Prism)&&("undefined"==typeof global||global.Prism)){var i=/\b([a-z]{3,7}:\/\/|tel:)[\w\-+%~\/.:=&]+(?:\?[\w\-+%~\/.:#=?&!$'()*,;]*)?(?:#[\w\-+%~\/.:#=?&!$'()*,;]*)?/,n=/\b\S+@[\w.]+[a-z]{2}/,e=/\[([^\]]+)]\(([^)]+)\)/,t=["comment","url","attr-value","string"];Prism.plugins.autolinker={processGrammar:function(r){r&&!r["url-link"]&&(Prism.languages.DFS(r,function(r,a,l){t.indexOf(l)>-1&&"Array"!==Prism.util.type(a)&&(a.pattern||(a=this[r]={pattern:a}),a.inside=a.inside||{},"comment"==l&&(a.inside["md-link"]=e),"attr-value"==l?Prism.languages.insertBefore("inside","punctuation",{"url-link":i},a):a.inside["url-link"]=i,a.inside["email-link"]=n)}),r["url-link"]=i,r["email-link"]=n)}},Prism.hooks.add("before-highlight",function(i){Prism.plugins.autolinker.processGrammar(i.grammar)}),Prism.hooks.add("wrap",function(i){if(/-link$/.test(i.type)){i.tag="a";var n=i.content;if("email-link"==i.type&&0!=n.indexOf("mailto:"))n="mailto:"+n;else if("md-link"==i.type){var t=i.content.match(e);n=t[2],i.content=t[1]}i.attributes.href=n}try{i.content=decodeURIComponent(i.content)}catch(r){}})}}(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/autoloader/index.html b/docs/_style/prism-master/plugins/autoloader/index.html new file mode 100644 index 00000000..3e5357e0 --- /dev/null +++ b/docs/_style/prism-master/plugins/autoloader/index.html @@ -0,0 +1,204 @@ + + + + + + +Autoloader ▲ Prism plugins + + + + + + + + + + + +
      +
      + +

      Autoloader

      +

      Automatically loads the needed languages to highlight the code blocks.

      +
      + +
      +

      How to use

      + +

      + The plugin will automatically handle missing grammars and load them for you. + To do this, you need to provide it with a directory of all the grammars you want. +

      +

      + You can download all the available grammars by clicking on the following link: .
      + Alternatively, you can also clone the GitHub repo and take the components folder from there. +

      +

      + You can then download Prism core and any plugins from the Download page, without checking any languages (or just check the languages you want to load by default, e.g. if you're using a language a lot, then you probably want to save the extra HTTP request). +

      +

      + A couple of additional options are available through the configuration object Prism.plugins.autoloader. +

      + +

      Specifying the grammars path

      + +

      + By default, the plugin will look for the missing grammars in the components folder. + If your files are in a different location, you can specify it using the languages_path option: +

      + +
      Prism.plugins.autoloader.languages_path = 'path/to/grammars/';
      + +

      Using development versions

      + +

      + By default, the plugin uses the minified versions of the grammars. + If you wish to use the development versions instead, you can set the use_minified option to false: +

      + +
      Prism.plugins.autoloader.use_minified = false;
      + +

      Specifying additional dependencies

      + +

      + All default dependencies are already included in the plugin. + However, there are some cases where you might want to load an additional dependency for a specific code block. + To do so, just add a data-dependencies attribute on you <code> or <pre> tags, + containing a list of comma-separated language aliases. +

      + +
      <pre><code class="language-pug" data-dependencies="less">
      +:less
      +	foo {
      +		color: @red;
      +	}
      +</code><pre>
      + +

      Force to reload a grammar

      + +

      + The plugin usually doesn't reload a grammar if it already exists. + In some very specific cases, you might however want to do so. + If you add an exclamation mark after an alias in the data-dependencies attribute, + this language will be reloaded. +

      + +
      <pre class="language-markup" data-dependencies="markup,css!"><code>
      + +
      + +
      +

      Examples

      + +

      Note that no languages are loaded on this page by default.

      + +

      Basic usage with some Perl code:

      +
      my ($class, $filename) = @_;
      + +

      The Less filter used in Pug:

      +
      :less
      +	foo {
      +		color: @red;
      +	}
      + +
      + +
      + + + + + + + + + + + + + + diff --git a/docs/_style/prism-master/plugins/autoloader/prism-autoloader.js b/docs/_style/prism-master/plugins/autoloader/prism-autoloader.js new file mode 100644 index 00000000..4d6a6014 --- /dev/null +++ b/docs/_style/prism-master/plugins/autoloader/prism-autoloader.js @@ -0,0 +1,209 @@ +(function () { + if (typeof self === 'undefined' || !self.Prism || !self.document || !document.createElement) { + return; + } + + // The dependencies map is built automatically with gulp + var lang_dependencies = /*languages_placeholder[*/{"javascript":"clike","actionscript":"javascript","arduino":"cpp","aspnet":["markup","csharp"],"bison":"c","c":"clike","csharp":"clike","cpp":"c","coffeescript":"javascript","crystal":"ruby","css-extras":"css","d":"clike","dart":"clike","django":"markup","erb":["ruby","markup-templating"],"fsharp":"clike","flow":"javascript","glsl":"clike","gml":"clike","go":"clike","groovy":"clike","haml":"ruby","handlebars":"markup-templating","haxe":"clike","java":"clike","jolie":"clike","kotlin":"clike","less":"css","markdown":"markup","markup-templating":"markup","n4js":"javascript","nginx":"clike","objectivec":"c","opencl":"cpp","parser":"markup","php":["clike","markup-templating"],"php-extras":"php","plsql":"sql","processing":"clike","protobuf":"clike","pug":"javascript","qore":"clike","jsx":["markup","javascript"],"tsx":["jsx","typescript"],"reason":"clike","ruby":"clike","sass":"css","scss":"css","scala":"java","smarty":"markup-templating","soy":"markup-templating","swift":"clike","tap":"yaml","textile":"markup","tt2":["clike","markup-templating"],"twig":"markup","typescript":"javascript","vala":"clike","vbnet":"basic","velocity":"markup","wiki":"markup","xeora":"markup","xquery":"markup"}/*]*/; + + var lang_data = {}; + + var ignored_language = 'none'; + + var script = document.getElementsByTagName('script'); + script = script[script.length - 1]; + var languages_path = 'components/'; + if(script.hasAttribute('data-autoloader-path')) { + var path = script.getAttribute('data-autoloader-path').trim(); + if(path.length > 0 && !/^[a-z]+:\/\//i.test(script.src)) { + languages_path = path.replace(/\/?$/, '/'); + } + } else if (/[\w-]+\.js$/.test(script.src)) { + languages_path = script.src.replace(/[\w-]+\.js$/, 'components/'); + } + var config = Prism.plugins.autoloader = { + languages_path: languages_path, + use_minified: true + }; + + /** + * Lazy loads an external script + * @param {string} src + * @param {function=} success + * @param {function=} error + */ + var addScript = function (src, success, error) { + var s = document.createElement('script'); + s.src = src; + s.async = true; + s.onload = function() { + document.body.removeChild(s); + success && success(); + }; + s.onerror = function() { + document.body.removeChild(s); + error && error(); + }; + document.body.appendChild(s); + }; + + /** + * Returns the path to a grammar, using the language_path and use_minified config keys. + * @param {string} lang + * @returns {string} + */ + var getLanguagePath = function (lang) { + return config.languages_path + + 'prism-' + lang + + (config.use_minified ? '.min' : '') + '.js' + }; + + /** + * Tries to load a grammar and + * highlight again the given element once loaded. + * @param {string} lang + * @param {HTMLElement} elt + */ + var registerElement = function (lang, elt) { + var data = lang_data[lang]; + if (!data) { + data = lang_data[lang] = {}; + } + + // Look for additional dependencies defined on the or
       tags
      +		var deps = elt.getAttribute('data-dependencies');
      +		if (!deps && elt.parentNode && elt.parentNode.tagName.toLowerCase() === 'pre') {
      +			deps = elt.parentNode.getAttribute('data-dependencies');
      +		}
      +
      +		if (deps) {
      +			deps = deps.split(/\s*,\s*/g);
      +		} else {
      +			deps = [];
      +		}
      +
      +		loadLanguages(deps, function () {
      +			loadLanguage(lang, function () {
      +				Prism.highlightElement(elt);
      +			});
      +		});
      +	};
      +
      +	/**
      +	 * Sequentially loads an array of grammars.
      +	 * @param {string[]|string} langs
      +	 * @param {function=} success
      +	 * @param {function=} error
      +	 */
      +	var loadLanguages = function (langs, success, error) {
      +		if (typeof langs === 'string') {
      +			langs = [langs];
      +		}
      +		var i = 0;
      +		var l = langs.length;
      +		var f = function () {
      +			if (i < l) {
      +				loadLanguage(langs[i], function () {
      +					i++;
      +					f();
      +				}, function () {
      +					error && error(langs[i]);
      +				});
      +			} else if (i === l) {
      +				success && success(langs);
      +			}
      +		};
      +		f();
      +	};
      +
      +	/**
      +	 * Load a grammar with its dependencies
      +	 * @param {string} lang
      +	 * @param {function=} success
      +	 * @param {function=} error
      +	 */
      +	var loadLanguage = function (lang, success, error) {
      +		var load = function () {
      +			var force = false;
      +			// Do we want to force reload the grammar?
      +			if (lang.indexOf('!') >= 0) {
      +				force = true;
      +				lang = lang.replace('!', '');
      +			}
      +
      +			var data = lang_data[lang];
      +			if (!data) {
      +				data = lang_data[lang] = {};
      +			}
      +			if (success) {
      +				if (!data.success_callbacks) {
      +					data.success_callbacks = [];
      +				}
      +				data.success_callbacks.push(success);
      +			}
      +			if (error) {
      +				if (!data.error_callbacks) {
      +					data.error_callbacks = [];
      +				}
      +				data.error_callbacks.push(error);
      +			}
      +
      +			if (!force && Prism.languages[lang]) {
      +				languageSuccess(lang);
      +			} else if (!force && data.error) {
      +				languageError(lang);
      +			} else if (force || !data.loading) {
      +				data.loading = true;
      +				var src = getLanguagePath(lang);
      +				addScript(src, function () {
      +					data.loading = false;
      +					languageSuccess(lang);
      +
      +				}, function () {
      +					data.loading = false;
      +					data.error = true;
      +					languageError(lang);
      +				});
      +			}
      +		};
      +		var dependencies = lang_dependencies[lang];
      +		if(dependencies && dependencies.length) {
      +			loadLanguages(dependencies, load);
      +		} else {
      +			load();
      +		}
      +	};
      +
      +	/**
      +	 * Runs all success callbacks for this language.
      +	 * @param {string} lang
      +	 */
      +	var languageSuccess = function (lang) {
      +		if (lang_data[lang] && lang_data[lang].success_callbacks && lang_data[lang].success_callbacks.length) {
      +			lang_data[lang].success_callbacks.forEach(function (f) {
      +				f(lang);
      +			});
      +		}
      +	};
      +
      +	/**
      +	 * Runs all error callbacks for this language.
      +	 * @param {string} lang
      +	 */
      +	var languageError = function (lang) {
      +		if (lang_data[lang] && lang_data[lang].error_callbacks && lang_data[lang].error_callbacks.length) {
      +			lang_data[lang].error_callbacks.forEach(function (f) {
      +				f(lang);
      +			});
      +		}
      +	};
      +
      +	Prism.hooks.add('complete', function (env) {
      +		if (env.element && env.language && !env.grammar) {
      +			if (env.language !== ignored_language) {
      +				registerElement(env.language, env.element);
      +			}
      +		}
      +	});
      +
      +}());
      \ No newline at end of file
      diff --git a/docs/_style/prism-master/plugins/autoloader/prism-autoloader.min.js b/docs/_style/prism-master/plugins/autoloader/prism-autoloader.min.js
      new file mode 100644
      index 00000000..629f1b2b
      --- /dev/null
      +++ b/docs/_style/prism-master/plugins/autoloader/prism-autoloader.min.js
      @@ -0,0 +1 @@
      +!function(){if("undefined"!=typeof self&&self.Prism&&self.document&&document.createElement){var e={javascript:"clike",actionscript:"javascript",arduino:"cpp",aspnet:["markup","csharp"],bison:"c",c:"clike",csharp:"clike",cpp:"c",coffeescript:"javascript",crystal:"ruby","css-extras":"css",d:"clike",dart:"clike",django:"markup",erb:["ruby","markup-templating"],fsharp:"clike",flow:"javascript",glsl:"clike",gml:"clike",go:"clike",groovy:"clike",haml:"ruby",handlebars:"markup-templating",haxe:"clike",java:"clike",jolie:"clike",kotlin:"clike",less:"css",markdown:"markup","markup-templating":"markup",n4js:"javascript",nginx:"clike",objectivec:"c",opencl:"cpp",parser:"markup",php:["clike","markup-templating"],"php-extras":"php",plsql:"sql",processing:"clike",protobuf:"clike",pug:"javascript",qore:"clike",jsx:["markup","javascript"],tsx:["jsx","typescript"],reason:"clike",ruby:"clike",sass:"css",scss:"css",scala:"java",smarty:"markup-templating",soy:"markup-templating",swift:"clike",tap:"yaml",textile:"markup",tt2:["clike","markup-templating"],twig:"markup",typescript:"javascript",vala:"clike",vbnet:"basic",velocity:"markup",wiki:"markup",xeora:"markup",xquery:"markup"},a={},c="none",t=document.getElementsByTagName("script");t=t[t.length-1];var r="components/";if(t.hasAttribute("data-autoloader-path")){var s=t.getAttribute("data-autoloader-path").trim();s.length>0&&!/^[a-z]+:\/\//i.test(t.src)&&(r=s.replace(/\/?$/,"/"))}else/[\w-]+\.js$/.test(t.src)&&(r=t.src.replace(/[\w-]+\.js$/,"components/"));var i=Prism.plugins.autoloader={languages_path:r,use_minified:!0},n=function(e,a,c){var t=document.createElement("script");t.src=e,t.async=!0,t.onload=function(){document.body.removeChild(t),a&&a()},t.onerror=function(){document.body.removeChild(t),c&&c()},document.body.appendChild(t)},l=function(e){return i.languages_path+"prism-"+e+(i.use_minified?".min":"")+".js"},o=function(e,c){var t=a[e];t||(t=a[e]={});var r=c.getAttribute("data-dependencies");!r&&c.parentNode&&"pre"===c.parentNode.tagName.toLowerCase()&&(r=c.parentNode.getAttribute("data-dependencies")),r=r?r.split(/\s*,\s*/g):[],p(r,function(){u(e,function(){Prism.highlightElement(c)})})},p=function(e,a,c){"string"==typeof e&&(e=[e]);var t=0,r=e.length,s=function(){r>t?u(e[t],function(){t++,s()},function(){c&&c(e[t])}):t===r&&a&&a(e)};s()},u=function(c,t,r){var s=function(){var e=!1;c.indexOf("!")>=0&&(e=!0,c=c.replace("!",""));var s=a[c];if(s||(s=a[c]={}),t&&(s.success_callbacks||(s.success_callbacks=[]),s.success_callbacks.push(t)),r&&(s.error_callbacks||(s.error_callbacks=[]),s.error_callbacks.push(r)),!e&&Prism.languages[c])m(c);else if(!e&&s.error)k(c);else if(e||!s.loading){s.loading=!0;var i=l(c);n(i,function(){s.loading=!1,m(c)},function(){s.loading=!1,s.error=!0,k(c)})}},i=e[c];i&&i.length?p(i,s):s()},m=function(e){a[e]&&a[e].success_callbacks&&a[e].success_callbacks.length&&a[e].success_callbacks.forEach(function(a){a(e)})},k=function(e){a[e]&&a[e].error_callbacks&&a[e].error_callbacks.length&&a[e].error_callbacks.forEach(function(a){a(e)})};Prism.hooks.add("complete",function(e){e.element&&e.language&&!e.grammar&&e.language!==c&&o(e.language,e.element)})}}();
      \ No newline at end of file
      diff --git a/docs/_style/prism-master/plugins/command-line/index.html b/docs/_style/prism-master/plugins/command-line/index.html
      new file mode 100644
      index 00000000..109138b6
      --- /dev/null
      +++ b/docs/_style/prism-master/plugins/command-line/index.html
      @@ -0,0 +1,111 @@
      +
      +
      +
      +
      +
      +
      +Command Line ▲ Prism plugins
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + +

      Command Line

      +

      Display a command line with a prompt and, optionally, the output/response from the commands.

      +
      + +
      +

      How to use

      + +

      This is intended for code blocks (<pre><code>) and not for inline code.

      + +

      Add class command-line to your <pre>. For a server command line, specify the user and host names using the data-user and data-host attributes. The resulting prompt displays a # for the root user and $ for all other users. For any other command line, such as a Windows prompt, you may specify the entire prompt using the data-prompt attribute.

      + +

      Optional: You may specify the lines to be presented as output (no prompt and no highlighting) through the data-output attribute on the <pre> element in the following simple format:

      +
        +
      • A single number refers to the line with that number
      • +
      • Ranges are denoted by two numbers, separated with a hyphen (-)
      • +
      • Multiple line numbers or ranges are separated by commas.
      • +
      • Whitespace is allowed anywhere and will be stripped off.
      • +
      + +

      Examples:

      +
      +
      5
      +
      The 5th line
      + +
      1-5
      +
      Lines 1 through 5
      + +
      1,4
      +
      Line 1 and line 4
      + +
      1-2, 5, 9-20
      +
      Lines 1 through 2, line 5, lines 9 through 20
      +
      + +

      Optional: To automatically present some lines as output, you can prefix those lines with any string and specify the prefix using the data-filter-output attribute on the <pre> element. For example, data-filter-output="(out)" will treat lines beginning with (out) as output and remove the prefix.

      +
      + +
      +

      Examples

      + +

      Root User Without Output

      +
      cd /usr/local/etc
      +cp php.ini php.ini.bak
      +vi php.ini
      + +

      Non-Root User With Output

      +
      pwd
      +/usr/home/chris/bin
      +ls -la
      +total 2
      +drwxr-xr-x   2 chris  chris     11 Jan 10 16:48 .
      +drwxr--r-x  45 chris  chris     92 Feb 14 11:10 ..
      +-rwxr-xr-x   1 chris  chris    444 Aug 25  2013 backup
      +-rwxr-xr-x   1 chris  chris    642 Jan 17 14:42 deploy
      + +

      Windows PowerShell With Output

      +
      dir
      +
      +
      +    Directory: C:\Users\Chris
      +
      +
      +Mode                LastWriteTime     Length Name
      +----                -------------     ------ ----
      +d-r--        10/14/2015   5:06 PM            Contacts
      +d-r--        12/12/2015   1:47 PM            Desktop
      +d-r--         11/4/2015   7:59 PM            Documents
      +d-r--        10/14/2015   5:06 PM            Downloads
      +d-r--        10/14/2015   5:06 PM            Favorites
      +d-r--        10/14/2015   5:06 PM            Links
      +d-r--        10/14/2015   5:06 PM            Music
      +d-r--        10/14/2015   5:06 PM            Pictures
      +d-r--        10/14/2015   5:06 PM            Saved Games
      +d-r--        10/14/2015   5:06 PM            Searches
      +d-r--        10/14/2015   5:06 PM            Videos
      + +
      + +
      + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/command-line/prism-command-line.css b/docs/_style/prism-master/plugins/command-line/prism-command-line.css new file mode 100644 index 00000000..153a8707 --- /dev/null +++ b/docs/_style/prism-master/plugins/command-line/prism-command-line.css @@ -0,0 +1,33 @@ +.command-line-prompt { + border-right: 1px solid #999; + display: block; + float: left; + font-size: 100%; + letter-spacing: -1px; + margin-right: 1em; + pointer-events: none; + + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.command-line-prompt > span:before { + color: #999; + content: ' '; + display: block; + padding-right: 0.8em; +} + +.command-line-prompt > span[data-user]:before { + content: "[" attr(data-user) "@" attr(data-host) "] $"; +} + +.command-line-prompt > span[data-user="root"]:before { + content: "[" attr(data-user) "@" attr(data-host) "] #"; +} + +.command-line-prompt > span[data-prompt]:before { + content: attr(data-prompt); +} diff --git a/docs/_style/prism-master/plugins/command-line/prism-command-line.js b/docs/_style/prism-master/plugins/command-line/prism-command-line.js new file mode 100644 index 00000000..3c779914 --- /dev/null +++ b/docs/_style/prism-master/plugins/command-line/prism-command-line.js @@ -0,0 +1,139 @@ +(function() { + +if (typeof self === 'undefined' || !self.Prism || !self.document) { + return; +} + +var clsReg = /(?:^|\s)command-line(?:\s|$)/; + +Prism.hooks.add('before-highlight', function (env) { + var vars = env.vars = env.vars || {}; + var commandLine = vars['command-line'] = vars['command-line'] || {}; + + if (commandLine.complete || !env.code) { + commandLine.complete = true; + return; + } + + // Works only for wrapped inside
       (not inline).
      +	var pre = env.element.parentNode;
      +	if (!pre || !/pre/i.test(pre.nodeName) || // Abort only if neither the 
       nor the  have the class
      +		(!clsReg.test(pre.className) && !clsReg.test(env.element.className))) {
      +		commandLine.complete = true;
      +		return;
      +	}
      +
      +	if (env.element.querySelector('.command-line-prompt')) { // Abort if prompt already exists.
      +		commandLine.complete = true;
      +		return;
      +	}
      +
      +	var codeLines = env.code.split('\n');
      +	commandLine.numberOfLines = codeLines.length;
      +	var outputLines = commandLine.outputLines = [];
      +
      +	var outputSections = pre.getAttribute('data-output');
      +	var outputFilter = pre.getAttribute('data-filter-output');
      +	if (outputSections || outputSections === '') { // The user specified the output lines. -- cwells
      +		outputSections = outputSections.split(',');
      +		for (var i = 0; i < outputSections.length; i++) { // Parse the output sections into start/end ranges. -- cwells
      +			var range = outputSections[i].split('-');
      +			var outputStart = parseInt(range[0], 10);
      +			var outputEnd = (range.length === 2 ? parseInt(range[1], 10) : outputStart);
      +
      +			if (!isNaN(outputStart) && !isNaN(outputEnd)) {
      +				if (outputStart < 1) {
      +					outputStart = 1;
      +				}
      +				if (outputEnd > codeLines.length) {
      +					outputEnd = codeLines.length;
      +				}
      +				// Convert start and end to 0-based to simplify the arrays. -- cwells
      +				outputStart--;
      +				outputEnd--;
      +				// Save the output line in an array and clear it in the code so it's not highlighted. -- cwells
      +				for (var j = outputStart; j <= outputEnd; j++) {
      +					outputLines[j] = codeLines[j];
      +					codeLines[j] = '';
      +				}
      +			}
      +		}
      +	} else if (outputFilter) { // Treat lines beginning with this string as output. -- cwells
      +		for (var i = 0; i < codeLines.length; i++) {
      +			if (codeLines[i].indexOf(outputFilter) === 0) { // This line is output. -- cwells
      +				outputLines[i] = codeLines[i].slice(outputFilter.length);
      +				codeLines[i] = '';
      +			}
      +		}
      +	}
      +
      +	env.code = codeLines.join('\n');
      +});
      +
      +Prism.hooks.add('before-insert', function (env) {
      +	var vars = env.vars = env.vars || {};
      +	var commandLine = vars['command-line'] = vars['command-line'] || {};
      +	if (commandLine.complete) {
      +		return;
      +	}
      +
      +	// Reinsert the output lines into the highlighted code. -- cwells
      +	var codeLines = env.highlightedCode.split('\n');
      +	for (var i = 0; i < commandLine.outputLines.length; i++) {
      +		if (commandLine.outputLines.hasOwnProperty(i)) {
      +			codeLines[i] = commandLine.outputLines[i];
      +		}
      +	}
      +	env.highlightedCode = codeLines.join('\n');
      +});
      +
      +Prism.hooks.add('complete', function (env) {
      +	var vars = env.vars = env.vars || {};
      +	var commandLine = vars['command-line'] = vars['command-line'] || {};
      +	if (commandLine.complete) {
      +		return;
      +	}
      +
      +	var pre = env.element.parentNode;
      +	if (clsReg.test(env.element.className)) { // Remove the class "command-line" from the 
      +		env.element.className = env.element.className.replace(clsReg, ' ');
      +	}
      +	if (!clsReg.test(pre.className)) { // Add the class "command-line" to the 
      +		pre.className += ' command-line';
      +	}
      +
      +	var getAttribute = function(key, defaultValue) {
      +		return (pre.getAttribute(key) || defaultValue).replace(/"/g, '"');
      +	};
      +
      +	// Create the "rows" that will become the command-line prompts. -- cwells
      +	var promptLines = new Array(commandLine.numberOfLines + 1);
      +	var promptText = getAttribute('data-prompt', '');
      +	if (promptText !== '') {
      +		promptLines = promptLines.join('');
      +	} else {
      +		var user = getAttribute('data-user', 'user');
      +		var host = getAttribute('data-host', 'localhost');
      +		promptLines = promptLines.join('');
      +	}
      +
      +	// Create the wrapper element. -- cwells
      +	var prompt = document.createElement('span');
      +	prompt.className = 'command-line-prompt';
      +	prompt.innerHTML = promptLines;
      +
      +	// Remove the prompt from the output lines. -- cwells
      +	for (var i = 0; i < commandLine.outputLines.length; i++) {
      +		if (commandLine.outputLines.hasOwnProperty(i)) {
      +			var node = prompt.children[i];
      +			node.removeAttribute('data-user');
      +			node.removeAttribute('data-host');
      +			node.removeAttribute('data-prompt');
      +		}
      +	}
      +
      +	env.element.insertBefore(prompt, env.element.firstChild);
      +	commandLine.complete = true;
      +});
      +
      +}());
      diff --git a/docs/_style/prism-master/plugins/command-line/prism-command-line.min.js b/docs/_style/prism-master/plugins/command-line/prism-command-line.min.js
      new file mode 100644
      index 00000000..44d011ac
      --- /dev/null
      +++ b/docs/_style/prism-master/plugins/command-line/prism-command-line.min.js
      @@ -0,0 +1 @@
      +!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var e=/(?:^|\s)command-line(?:\s|$)/;Prism.hooks.add("before-highlight",function(t){var a=t.vars=t.vars||{},n=a["command-line"]=a["command-line"]||{};if(n.complete||!t.code)return n.complete=!0,void 0;var r=t.element.parentNode;if(!r||!/pre/i.test(r.nodeName)||!e.test(r.className)&&!e.test(t.element.className))return n.complete=!0,void 0;if(t.element.querySelector(".command-line-prompt"))return n.complete=!0,void 0;var o=t.code.split("\n");n.numberOfLines=o.length;var s=n.outputLines=[],i=r.getAttribute("data-output"),l=r.getAttribute("data-filter-output");if(i||""===i){i=i.split(",");for(var m=0;mp&&(p=1),c>o.length&&(c=o.length),p--,c--;for(var u=p;c>=u;u++)s[u]=o[u],o[u]=""}}}else if(l)for(var m=0;m');else{var l=o("data-user","user"),m=o("data-host","localhost");s=s.join('')}var d=document.createElement("span");d.className="command-line-prompt",d.innerHTML=s;for(var p=0;p
      +
      +
      +
      +	
      +	
      +	Copy to Clipboard ▲ Prism plugins
      +	
      +	
      +	
      +	
      +	
      +
      +	
      +	
      +
      +
      +
      +
      +
      + +

      Copy to Clipboard

      +

      Add a button that copies the code block to the clipboard when clicked.

      +
      + +
      +

      How to use

      +

      In addition to including the plugin file with your PrismJS build, ensure Clipboard.js is loaded before the plugin.

      + +

      The simplest way to include Clipboard.js is to use any of the + recommended CDNs. If you're using Browserify, Clipboard.js will be loaded auotmatically + if it's included in your package.json. + If you don't load Clipboard.js yourself, the plugin will load it from a CDN for you.

      + +
      
      +
      + +
      + + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/copy-to-clipboard/prism-copy-to-clipboard.js b/docs/_style/prism-master/plugins/copy-to-clipboard/prism-copy-to-clipboard.js new file mode 100644 index 00000000..0b185f47 --- /dev/null +++ b/docs/_style/prism-master/plugins/copy-to-clipboard/prism-copy-to-clipboard.js @@ -0,0 +1,75 @@ +(function(){ + if (typeof self === 'undefined' || !self.Prism || !self.document) { + return; + } + + if (!Prism.plugins.toolbar) { + console.warn('Copy to Clipboard plugin loaded before Toolbar plugin.'); + + return; + } + + var ClipboardJS = window.ClipboardJS || undefined; + + if (!ClipboardJS && typeof require === 'function') { + ClipboardJS = require('clipboard'); + } + + var callbacks = []; + + if (!ClipboardJS) { + var script = document.createElement('script'); + var head = document.querySelector('head'); + + script.onload = function() { + ClipboardJS = window.ClipboardJS; + + if (ClipboardJS) { + while (callbacks.length) { + callbacks.pop()(); + } + } + }; + + script.src = 'https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js'; + head.appendChild(script); + } + + Prism.plugins.toolbar.registerButton('copy-to-clipboard', function (env) { + var linkCopy = document.createElement('a'); + linkCopy.textContent = 'Copy'; + + if (!ClipboardJS) { + callbacks.push(registerClipboard); + } else { + registerClipboard(); + } + + return linkCopy; + + function registerClipboard() { + var clip = new ClipboardJS(linkCopy, { + 'text': function () { + return env.code; + } + }); + + clip.on('success', function() { + linkCopy.textContent = 'Copied!'; + + resetText(); + }); + clip.on('error', function () { + linkCopy.textContent = 'Press Ctrl+C to copy'; + + resetText(); + }); + } + + function resetText() { + setTimeout(function () { + linkCopy.textContent = 'Copy'; + }, 5000); + } + }); +})(); diff --git a/docs/_style/prism-master/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js b/docs/_style/prism-master/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js new file mode 100644 index 00000000..aa5742db --- /dev/null +++ b/docs/_style/prism-master/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js @@ -0,0 +1 @@ +!function(){if("undefined"!=typeof self&&self.Prism&&self.document){if(!Prism.plugins.toolbar)return console.warn("Copy to Clipboard plugin loaded before Toolbar plugin."),void 0;var o=window.ClipboardJS||void 0;o||"function"!=typeof require||(o=require("clipboard"));var e=[];if(!o){var t=document.createElement("script"),n=document.querySelector("head");t.onload=function(){if(o=window.ClipboardJS)for(;e.length;)e.pop()()},t.src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js",n.appendChild(t)}Prism.plugins.toolbar.registerButton("copy-to-clipboard",function(t){function n(){var e=new o(i,{text:function(){return t.code}});e.on("success",function(){i.textContent="Copied!",r()}),e.on("error",function(){i.textContent="Press Ctrl+C to copy",r()})}function r(){setTimeout(function(){i.textContent="Copy"},5e3)}var i=document.createElement("a");return i.textContent="Copy",o?n():e.push(n),i})}}(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/custom-class/index.html b/docs/_style/prism-master/plugins/custom-class/index.html new file mode 100644 index 00000000..ee4fade7 --- /dev/null +++ b/docs/_style/prism-master/plugins/custom-class/index.html @@ -0,0 +1,133 @@ + + + + + + +Custom Class ▲ Prism plugins + + + + + + + + + +
      +
      + +

      Custom Class

      +

      This plugin allows you to prefix Prism default classes (.comment will become .namespace--comment) or replace them with your defined ones (like .editor__comment or .comment_7sh3a).

      +
      + +
      +

      Motivation

      + +

      Prism default classes are sensible but fixed and too generic. This plugin provide some ways to customize those classes to suit your needs. Example usages:

      + +
        +
      • + You want to add namespace for all of them (like .prism--comment) to avoid conflict with your existing classes. +
      • +
      • + You use a naming convention (like BEM). You want to write classes like .editor__comment. +
      • +
      • You use + CSS Modules. You want to use your hashed classes, like .comment_7sh3a. +
      • +
      + +

      Features

      + +

      This plugin currently provides 2 features:

      + +

      1. Prefix all Prism classes with a string

      + + Prism.plugins.customClass.prefix('prism--') + +

      2. Replace some Prism classes with your defined ones via an object

      + +
      Prism.plugins.customClass.map({
      +	keyword: 'special-keyword',
      +	string: 'string_ch29s',
      +	comment: 'comment_93jsa'
      +})
      + +

      Object's keys are the tokens you want to replace (eg: comment), with their values being the classes you want to use (eg: my-comment). Tokens which are not specified will stay the same.

      + +

      Notes

      + +
        +
      • +

        Feature functions must be called AFTER Prism and this plugin. For example:

        + +
        <!-- 1. load prism -->
        +<script src="prism.js"></script>
        +<!-- 2. load the plugin if you don't include it inside prism when download -->
        +<script src="plugins/custom-class/custom-class.js"></script>
        +<!-- 3. call the feature you want to use -->
        +<script>
        +	Prism.plugins.customClass.map(myClassMap);
        +	Prism.plugins.customClass.prefix(myPrefixString);
        +</script>
        + +
      • + +
      • In most cases, using 1 feature is enough. However, it is possible to use both of them together if you want (Result will be like .my-namespace--comment_93jsa).
      • + +
      + +

      CSS Modules Usage:

      + +

      The initial purpose of this plugin is to be used with CSS Modules. It works perfectly with the class map object returned by CSS Modules. For example:

      + +
      import Prism from 'prismjs';
      +import classMap from 'styles/editor-class-map.css';
      +Prism.plugins.customClass.map(classMap)
      + +
      + +
      +

      Example

      + +

      Input

      +
      <pre class="language-javascript"><code>
      +	var foo = 'bar';
      +</code></pre>
      + +

      Options

      +
      Prism.plugins.customClass.map({
      +	keyword: 'special-keyword',
      +	string: 'my-string'
      +});
      +Prism.plugins.customClass.prefix('pr-');
      + +

      Output

      +
      <pre class="language-javascript"><code>
      +	<span class="pr-token pr-special-keyword">var</span>
      +	foo
      +	<span class="pr-token pr-operator">=</span>
      +	<span class="pr-my-string">'bar'</span>
      +	<span class="pr-token pr-punctuation">;</span>
      +</code></pre>
      +
      + +
      +

      Todo

      + +
      + +
      + + + + + + + + + diff --git a/docs/_style/prism-master/plugins/custom-class/prism-custom-class.js b/docs/_style/prism-master/plugins/custom-class/prism-custom-class.js new file mode 100644 index 00000000..bb5bd6a6 --- /dev/null +++ b/docs/_style/prism-master/plugins/custom-class/prism-custom-class.js @@ -0,0 +1,31 @@ +(function(){ + +if ( + (typeof self === 'undefined' || !self.Prism) && + (typeof global === 'undefined' || !global.Prism) +) { + return; +} + +var options = { + classMap: {} +}; +Prism.plugins.customClass = { + map: function map(cm) { + options.classMap = cm; + }, + prefix: function prefix(string) { + options.prefixString = string; + } +} + +Prism.hooks.add('wrap', function (env) { + if (!options.classMap && !options.prefixString) { + return; + } + env.classes = env.classes.map(function(c) { + return (options.prefixString || '') + (options.classMap[c] || c); + }); +}); + +})(); diff --git a/docs/_style/prism-master/plugins/custom-class/prism-custom-class.min.js b/docs/_style/prism-master/plugins/custom-class/prism-custom-class.min.js new file mode 100644 index 00000000..f22063f5 --- /dev/null +++ b/docs/_style/prism-master/plugins/custom-class/prism-custom-class.min.js @@ -0,0 +1 @@ +!function(){if("undefined"!=typeof self&&self.Prism||"undefined"!=typeof global&&global.Prism){var s={classMap:{}};Prism.plugins.customClass={map:function(i){s.classMap=i},prefix:function(i){s.prefixString=i}},Prism.hooks.add("wrap",function(i){(s.classMap||s.prefixString)&&(i.classes=i.classes.map(function(i){return(s.prefixString||"")+(s.classMap[i]||i)}))})}}(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/data-uri-highlight/index.html b/docs/_style/prism-master/plugins/data-uri-highlight/index.html new file mode 100644 index 00000000..380be2d6 --- /dev/null +++ b/docs/_style/prism-master/plugins/data-uri-highlight/index.html @@ -0,0 +1,60 @@ + + + + + + +Data-URI Highlight ▲ Prism plugins + + + + + + + + + + + +
      +
      + +

      Data-URI Highlight

      +

      Highlights data-URI contents.

      +
      + +
      +

      How to use

      +

      Data-URIs will be highlighted automatically, provided the needed grammar is loaded. + The grammar to use is guessed using the MIME type information.

      +
      + +
      +

      Example

      + +
      div {
      +    border: 40px solid transparent;
      +    border-image: 33.334% url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30"> \
      +                          <circle cx="5" cy="5" r="5" fill="%23ab4"/><circle cx="15" cy="5" r="5" fill="%23655"/> \
      +                          <circle cx="25" cy="5" r="5" fill="%23e07"/><circle cx="5" cy="15" r="5" fill="%23655"/> \
      +                          <circle cx="15" cy="15" r="5" fill="hsl(15, 25%, 75%)"/> \
      +                          <circle cx="25" cy="15" r="5" fill="%23655"/><circle cx="5" cy="25" r="5" fill="%23fb3"/> \
      +                          <circle cx="15" cy="25" r="5" fill="%23655"/><circle cx="25" cy="25" r="5" fill="%2358a"/></svg>');
      +    padding: 1em;
      +    max-width: 20em;
      +    font: 130%/1.6 Baskerville, Palatino, serif;
      +}
      + +
      + +
      + + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/data-uri-highlight/prism-data-uri-highlight.js b/docs/_style/prism-master/plugins/data-uri-highlight/prism-data-uri-highlight.js new file mode 100644 index 00000000..7ff8d1fd --- /dev/null +++ b/docs/_style/prism-master/plugins/data-uri-highlight/prism-data-uri-highlight.js @@ -0,0 +1,98 @@ +(function () { + + if ( + typeof self !== 'undefined' && !self.Prism || + typeof global !== 'undefined' && !global.Prism + ) { + return; + } + + var autoLinkerProcess = function (grammar) { + if (Prism.plugins.autolinker) { + Prism.plugins.autolinker.processGrammar(grammar); + } + return grammar; + }; + var dataURI = { + pattern: /(.)\bdata:[^\/]+\/[^,]+,(?:(?!\1)[\s\S]|\\\1)+(?=\1)/, + lookbehind: true, + inside: { + 'language-css': { + pattern: /(data:[^\/]+\/(?:[^+,]+\+)?css,)[\s\S]+/, + lookbehind: true + }, + 'language-javascript': { + pattern: /(data:[^\/]+\/(?:[^+,]+\+)?javascript,)[\s\S]+/, + lookbehind: true + }, + 'language-json': { + pattern: /(data:[^\/]+\/(?:[^+,]+\+)?json,)[\s\S]+/, + lookbehind: true + }, + 'language-markup': { + pattern: /(data:[^\/]+\/(?:[^+,]+\+)?(?:html|xml),)[\s\S]+/, + lookbehind: true + } + } + }; + + // Tokens that may contain URLs + var candidates = ['url', 'attr-value', 'string']; + + Prism.plugins.dataURIHighlight = { + processGrammar: function (grammar) { + // Abort if grammar has already been processed + if (!grammar || grammar['data-uri']) { + return; + } + + Prism.languages.DFS(grammar, function (key, def, type) { + if (candidates.indexOf(type) > -1 && Prism.util.type(def) !== 'Array') { + if (!def.pattern) { + def = this[key] = { + pattern: def + }; + } + + def.inside = def.inside || {}; + + if (type == 'attr-value') { + Prism.languages.insertBefore('inside', def.inside['url-link'] ? 'url-link' : 'punctuation', { + 'data-uri': dataURI + }, def); + } + else { + if (def.inside['url-link']) { + Prism.languages.insertBefore('inside', 'url-link', { + 'data-uri': dataURI + }, def); + } else { + def.inside['data-uri'] = dataURI; + } + } + } + }); + grammar['data-uri'] = dataURI; + } + }; + + Prism.hooks.add('before-highlight', function (env) { + // Prepare the needed grammars for this code block + if (dataURI.pattern.test(env.code)) { + for (var p in dataURI.inside) { + if (dataURI.inside.hasOwnProperty(p)) { + if (!dataURI.inside[p].inside && dataURI.inside[p].pattern.test(env.code)) { + var lang = p.match(/^language-(.+)/)[1]; + if (Prism.languages[lang]) { + dataURI.inside[p].inside = { + rest: autoLinkerProcess(Prism.languages[lang]) + }; + } + } + } + } + } + + Prism.plugins.dataURIHighlight.processGrammar(env.grammar); + }); +}()); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/data-uri-highlight/prism-data-uri-highlight.min.js b/docs/_style/prism-master/plugins/data-uri-highlight/prism-data-uri-highlight.min.js new file mode 100644 index 00000000..479828d9 --- /dev/null +++ b/docs/_style/prism-master/plugins/data-uri-highlight/prism-data-uri-highlight.min.js @@ -0,0 +1 @@ +!function(){if(("undefined"==typeof self||self.Prism)&&("undefined"==typeof global||global.Prism)){var i=function(i){return Prism.plugins.autolinker&&Prism.plugins.autolinker.processGrammar(i),i},a={pattern:/(.)\bdata:[^\/]+\/[^,]+,(?:(?!\1)[\s\S]|\\\1)+(?=\1)/,lookbehind:!0,inside:{"language-css":{pattern:/(data:[^\/]+\/(?:[^+,]+\+)?css,)[\s\S]+/,lookbehind:!0},"language-javascript":{pattern:/(data:[^\/]+\/(?:[^+,]+\+)?javascript,)[\s\S]+/,lookbehind:!0},"language-json":{pattern:/(data:[^\/]+\/(?:[^+,]+\+)?json,)[\s\S]+/,lookbehind:!0},"language-markup":{pattern:/(data:[^\/]+\/(?:[^+,]+\+)?(?:html|xml),)[\s\S]+/,lookbehind:!0}}},n=["url","attr-value","string"];Prism.plugins.dataURIHighlight={processGrammar:function(i){i&&!i["data-uri"]&&(Prism.languages.DFS(i,function(i,e,r){n.indexOf(r)>-1&&"Array"!==Prism.util.type(e)&&(e.pattern||(e=this[i]={pattern:e}),e.inside=e.inside||{},"attr-value"==r?Prism.languages.insertBefore("inside",e.inside["url-link"]?"url-link":"punctuation",{"data-uri":a},e):e.inside["url-link"]?Prism.languages.insertBefore("inside","url-link",{"data-uri":a},e):e.inside["data-uri"]=a)}),i["data-uri"]=a)}},Prism.hooks.add("before-highlight",function(n){if(a.pattern.test(n.code))for(var e in a.inside)if(a.inside.hasOwnProperty(e)&&!a.inside[e].inside&&a.inside[e].pattern.test(n.code)){var r=e.match(/^language-(.+)/)[1];Prism.languages[r]&&(a.inside[e].inside={rest:i(Prism.languages[r])})}Prism.plugins.dataURIHighlight.processGrammar(n.grammar)})}}(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/file-highlight/index.html b/docs/_style/prism-master/plugins/file-highlight/index.html new file mode 100644 index 00000000..e66b9897 --- /dev/null +++ b/docs/_style/prism-master/plugins/file-highlight/index.html @@ -0,0 +1,75 @@ + + + + + + +File Highlight ▲ Prism plugins + + + + + + + + + + + +
      +
      + +

      File Highlight

      +

      Fetch external files and highlight them with Prism. Used on the Prism website itself.

      +
      + +
      +

      How to use

      + +

      Use the data-src attribute on empty <pre> elements, like so:

      + +
      <pre data-src="myfile.js"></pre>
      + +

      You don’t need to specify the language, it’s automatically determined by the file extension. + If, however, the language cannot be determined from the file extension or the file extension is incorrect, you may specify a language as well (with the usual class name way).

      + +

      Please note that the files are fetched with XMLHttpRequest. This means that if the file is on a different origin, fetching it will fail, unless CORS is enabled on that website.

      + +

      + When used in conjunction with the Toolbar plugin, this plugin can also display a button to download the file. + To use it, add a data-download-link attribute on the <pre> element.
      + Optionally, the text can also be customized by using a data-download-link-label attribute. +

      +
      <pre data-src="myfile.js" data-download-link data-download-link-label="Download this file"></pre>
      +
      + +
      +

      Examples

      + +

      The plugin’s JS code:

      +
      
      +	
      +	

      This page:

      +
      
      +
      +	

      File that doesn’t exist:

      +
      
      +
      +	

      With a download button:

      +
      
      +
      +	

      For more examples, browse around the Prism website. Most large code samples are actually files fetched with this plugin.

      +
      + +
      + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/file-highlight/prism-file-highlight.js b/docs/_style/prism-master/plugins/file-highlight/prism-file-highlight.js new file mode 100644 index 00000000..65efaf9f --- /dev/null +++ b/docs/_style/prism-master/plugins/file-highlight/prism-file-highlight.js @@ -0,0 +1,105 @@ +(function () { + if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) { + return; + } + + /** + * @param {Element} [container=document] + */ + self.Prism.fileHighlight = function(container) { + container = container || document; + + var Extensions = { + 'js': 'javascript', + 'py': 'python', + 'rb': 'ruby', + 'ps1': 'powershell', + 'psm1': 'powershell', + 'sh': 'bash', + 'bat': 'batch', + 'h': 'c', + 'tex': 'latex' + }; + + Array.prototype.slice.call(container.querySelectorAll('pre[data-src]')).forEach(function (pre) { + // ignore if already loaded + if (pre.hasAttribute('data-src-loaded')) { + return; + } + + // load current + var src = pre.getAttribute('data-src'); + + var language, parent = pre; + var lang = /\blang(?:uage)?-([\w-]+)\b/i; + while (parent && !lang.test(parent.className)) { + parent = parent.parentNode; + } + + if (parent) { + language = (pre.className.match(lang) || [, ''])[1]; + } + + if (!language) { + var extension = (src.match(/\.(\w+)$/) || [, ''])[1]; + language = Extensions[extension] || extension; + } + + var code = document.createElement('code'); + code.className = 'language-' + language; + + pre.textContent = ''; + + code.textContent = 'Loading…'; + + pre.appendChild(code); + + var xhr = new XMLHttpRequest(); + + xhr.open('GET', src, true); + + xhr.onreadystatechange = function () { + if (xhr.readyState == 4) { + + if (xhr.status < 400 && xhr.responseText) { + code.textContent = xhr.responseText; + + Prism.highlightElement(code); + // mark as loaded + pre.setAttribute('data-src-loaded', ''); + } + else if (xhr.status >= 400) { + code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText; + } + else { + code.textContent = '✖ Error: File does not exist or is empty'; + } + } + }; + + xhr.send(null); + }); + + if (Prism.plugins.toolbar) { + Prism.plugins.toolbar.registerButton('download-file', function (env) { + var pre = env.element.parentNode; + if (!pre || !/pre/i.test(pre.nodeName) || !pre.hasAttribute('data-src') || !pre.hasAttribute('data-download-link')) { + return; + } + var src = pre.getAttribute('data-src'); + var a = document.createElement('a'); + a.textContent = pre.getAttribute('data-download-link-label') || 'Download'; + a.setAttribute('download', ''); + a.href = src; + return a; + }); + } + + }; + + document.addEventListener('DOMContentLoaded', function () { + // execute inside handler, for dropping Event as argumnet + self.Prism.fileHighlight(); + }); + +})(); diff --git a/docs/_style/prism-master/plugins/file-highlight/prism-file-highlight.min.js b/docs/_style/prism-master/plugins/file-highlight/prism-file-highlight.min.js new file mode 100644 index 00000000..31869b3c --- /dev/null +++ b/docs/_style/prism-master/plugins/file-highlight/prism-file-highlight.min.js @@ -0,0 +1 @@ +!function(){"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(t){t=t||document;var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(t.querySelectorAll("pre[data-src]")).forEach(function(t){if(!t.hasAttribute("data-src-loaded")){for(var a,n=t.getAttribute("data-src"),r=t,s=/\blang(?:uage)?-([\w-]+)\b/i;r&&!s.test(r.className);)r=r.parentNode;if(r&&(a=(t.className.match(s)||[,""])[1]),!a){var o=(n.match(/\.(\w+)$/)||[,""])[1];a=e[o]||o}var l=document.createElement("code");l.className="language-"+a,t.textContent="",l.textContent="Loading…",t.appendChild(l);var i=new XMLHttpRequest;i.open("GET",n,!0),i.onreadystatechange=function(){4==i.readyState&&(i.status<400&&i.responseText?(l.textContent=i.responseText,Prism.highlightElement(l),t.setAttribute("data-src-loaded","")):l.textContent=i.status>=400?"✖ Error "+i.status+" while fetching file: "+i.statusText:"✖ Error: File does not exist or is empty")},i.send(null)}}),Prism.plugins.toolbar&&Prism.plugins.toolbar.registerButton("download-file",function(t){var e=t.element.parentNode;if(e&&/pre/i.test(e.nodeName)&&e.hasAttribute("data-src")&&e.hasAttribute("data-download-link")){var a=e.getAttribute("data-src"),n=document.createElement("a");return n.textContent=e.getAttribute("data-download-link-label")||"Download",n.setAttribute("download",""),n.href=a,n}})},document.addEventListener("DOMContentLoaded",function(){self.Prism.fileHighlight()}))}(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/highlight-keywords/index.html b/docs/_style/prism-master/plugins/highlight-keywords/index.html new file mode 100644 index 00000000..46658734 --- /dev/null +++ b/docs/_style/prism-master/plugins/highlight-keywords/index.html @@ -0,0 +1,51 @@ + + + + + + +Highlight Keywords ▲ Prism plugins + + + + + + + + + + +
      +
      + +

      Highlight Keywords

      +

      This plugin adds special CSS classes for each keyword matched in the code. For example, the keyword if will have the class keyword-if as well. You can have fine grained control over the appearance of each keyword by providing your own CSS rules.

      +
      + +
      +

      Examples

      + +

      JavaScript

      +
      
      +
      +	

      HTML (Markup)

      +
      
      +
      +
      + + + + + + + + + + diff --git a/docs/_style/prism-master/plugins/highlight-keywords/prism-highlight-keywords.js b/docs/_style/prism-master/plugins/highlight-keywords/prism-highlight-keywords.js new file mode 100644 index 00000000..32b28122 --- /dev/null +++ b/docs/_style/prism-master/plugins/highlight-keywords/prism-highlight-keywords.js @@ -0,0 +1,17 @@ +(function(){ + +if ( + typeof self !== 'undefined' && !self.Prism || + typeof global !== 'undefined' && !global.Prism +) { + return; +} + +Prism.hooks.add('wrap', function(env) { + if (env.type !== "keyword") { + return; + } + env.classes.push('keyword-' + env.content); +}); + +})(); diff --git a/docs/_style/prism-master/plugins/highlight-keywords/prism-highlight-keywords.min.js b/docs/_style/prism-master/plugins/highlight-keywords/prism-highlight-keywords.min.js new file mode 100644 index 00000000..c4326fea --- /dev/null +++ b/docs/_style/prism-master/plugins/highlight-keywords/prism-highlight-keywords.min.js @@ -0,0 +1 @@ +!function(){"undefined"!=typeof self&&!self.Prism||"undefined"!=typeof global&&!global.Prism||Prism.hooks.add("wrap",function(e){"keyword"===e.type&&e.classes.push("keyword-"+e.content)})}(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/index.html b/docs/_style/prism-master/plugins/index.html new file mode 100644 index 00000000..7b4a48a7 --- /dev/null +++ b/docs/_style/prism-master/plugins/index.html @@ -0,0 +1,42 @@ + + + + + + +Plugins ▲ Prism + + + + + + + + + + + +
      +
      +
      + +
      +

      Available plugins

      +
        +
        + +
        +

        Contribute

        +

        Writing Prism plugins is easy! Read how at the “Extending Prism” section. +

        + +
        + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/jsonp-highlight/index.html b/docs/_style/prism-master/plugins/jsonp-highlight/index.html new file mode 100644 index 00000000..2ad4ac9a --- /dev/null +++ b/docs/_style/prism-master/plugins/jsonp-highlight/index.html @@ -0,0 +1,174 @@ + + + + + + +JSONP Highlight ▲ Prism plugins + + + + + + + + + + +
        +
        + +

        JSONP Highlight

        +

        Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).

        +
        + +
        +

        How to use

        + +

        Use the data-jsonp attribute on <pre> elements, like so:

        + +
        <pre
        +  class="language-javascript"
        +  data-jsonp="https://api.github.com/repos/leaverou/prism/contents/prism.js">
        +</pre>
        + +

        + Don't specifiy the callback query parameter in the URL; this will be added + automatically. If the API expects a different callback parameter name however, use the + data-callback parameter to specify the name: +

        + +
        <pre class="…" data-jsonp="…" data-callback="cb"></pre>
        + +

        + The next trick is of course actually extracting something from the JSONP response worth + highlighting, which means processing the response to extract the interesting data. +

        + +

        The following JSONP APIs are automatically detected and parsed:

        + + + +

        If you need to do your own parsing, you can hook your your own data adapters in two ways:

        +
          +
        1. + Supply the data-adapter parameter on the <pre> element. + This must be the name of a globally defined function. + The plugin will use only this adapter to parse the response. +
        2. +
        3. + Register your adapter function by calling + Prism.plugins.jsonphighlight.registerAdapter(function(rsp) { … }). + It will be added to the list of inbuilt adapters and used if no other registered + adapater (e.g. GitHub/Bitbucket) can parse the response. +
        4. +
        + +

        + In either case, the function must accept at least a single parameter (the JSONP response) and + returns a string of the content to highlight. If your adapter cannot parse the response, you + must return null. The DOM node that will contain the highlighted code will also + be passed in as the second argument, incase you need to use it to query any extra information + (maybe you wish to inspect the class or data-jsonp attributes to + assist in parsing the response). +

        + +

        + The following example demonstrates both methods of using a custom adapter, to simply return + the stringyfied JSONP response (i.e highlight the entire JSONP data): +

        + +
        <!-- perhaps this is in a .js file elsewhere -->
        +<script>
        +	function dump_json(rsp) {
        +		return "using dump_json: " + JSON.stringify(rsp,null,2);
        +	}
        +</script>
        +
        +<!-- … include prism.js … -->
        +<script>
        +	Prism.plugins.jsonphighlight.registerAdapter(function(rsp) {
        +		return "using registerAdapter: " + JSON.stringify(rsp,null,2);
        +	})
        +</script>
        +
        + +

        And later in your HTML:

        + +
        <!-- using the data-adapter attribute -->
        +<pre class="language-javascript" data-jsonp="…" data-adapter="dump_json"></pre>
        +
        +<!-- using whatever data adapters are available -->
        +<pre class="language-javascript" data-jsonp="…"></pre>
        +
        + +

        + Finally, unlike like the File Highlight + plugin, you do need to supply the appropriate class with the language + to highlight. This could have been auto-detected, but since you're not actually linking to + a file it's not always possible (see below in the example using GitHub status). + Furthermore, if you're linking to files with a .xaml extension for example, + this plugin then needs to somehow map that to highlight as markup, which just + means more bloat. You know what you're trying to highlight, just say so :) +

        + +

        Caveat for Gists

        + +

        + There's a bit of a catch with gists, as they can actually contain multiple files. + There are two options to handle this: +

        + +
          +
        1. + If your gist only contains one file, you don't need to to anything; the one and only + file will automatically be chosen and highlighted +
        2. +
        3. + If your file contains multiple files, the first one will be chosen by default. + However, you can supply the filename in the data-filename attribute, and + this file will be highlighted instead: +
          <pre class="…" data-jsonp="…" data-filename="mydemo.js"></pre>
          +
        4. +
        +
        + +
        +

        Examples

        + +

        The plugin’s JS code (from GitHub):

        +
        
        +
        +	

        GitHub Gist (gist contains a single file, automatically selected):

        +
        
        +
        +	

        GitHub Gist (gist contains a multiple files, file to load specified):

        +
        
        +
        + 	

        Bitbucket API:

        +
        
        + 	
        + 	

        Custom adapter (JSON.stringify showing GitHub status):

        +
        
        +
        +	

        Registered adapter (as above, but without explicitly declaring the data-adapter attribute):

        +
        
        +
        + +
        + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/jsonp-highlight/prism-jsonp-highlight.js b/docs/_style/prism-master/plugins/jsonp-highlight/prism-jsonp-highlight.js new file mode 100644 index 00000000..4ce5ca50 --- /dev/null +++ b/docs/_style/prism-master/plugins/jsonp-highlight/prism-jsonp-highlight.js @@ -0,0 +1,151 @@ +(function() { + if ( !self.Prism || !self.document || !document.querySelectorAll || ![].filter) return; + + var adapters = []; + function registerAdapter(adapter) { + if (typeof adapter === "function" && !getAdapter(adapter)) { + adapters.push(adapter); + } + } + function getAdapter(adapter) { + if (typeof adapter === "function") { + return adapters.filter(function(fn) { return fn.valueOf() === adapter.valueOf()})[0]; + } + else if (typeof adapter === "string" && adapter.length > 0) { + return adapters.filter(function(fn) { return fn.name === adapter})[0]; + } + return null; + } + function removeAdapter(adapter) { + if (typeof adapter === "string") + adapter = getAdapter(adapter); + if (typeof adapter === "function") { + var index = adapters.indexOf(adapter); + if (index >=0) { + adapters.splice(index,1); + } + } + } + + Prism.plugins.jsonphighlight = { + registerAdapter: registerAdapter, + removeAdapter: removeAdapter, + highlight: highlight + }; + registerAdapter(function github(rsp, el) { + if ( rsp && rsp.meta && rsp.data ) { + if ( rsp.meta.status && rsp.meta.status >= 400 ) { + return "Error: " + ( rsp.data.message || rsp.meta.status ); + } + else if ( typeof(rsp.data.content) === "string" ) { + return typeof(atob) === "function" + ? atob(rsp.data.content.replace(/\s/g, "")) + : "Your browser cannot decode base64"; + } + } + return null; + }); + registerAdapter(function gist(rsp, el) { + if ( rsp && rsp.meta && rsp.data && rsp.data.files ) { + if ( rsp.meta.status && rsp.meta.status >= 400 ) { + return "Error: " + ( rsp.data.message || rsp.meta.status ); + } + else { + var filename = el.getAttribute("data-filename"); + if (filename == null) { + // Maybe in the future we can somehow render all files + // But the standard + + + + + + +
        +
        + +

        Keep markup

        +

        Prevents custom markup from being dropped out during highlighting.

        +
        + +
        + +

        How to use

        +

        You have nothing to do. With this plugin loaded, all markup inside code will be kept.

        + +

        Examples

        + +

        The following source code

        +
        <pre><code class="language-css">
        +@media <mark>screen</mark> {
        +	div {
        +		<mark>text</mark>-decoration: <mark><mark>under</mark>line</mark>;
        +		back<mark>ground: url</mark>('foo.png');
        +	}
        +}</code></pre>
        + +

        would render like this:

        +
        
        +@media screen {
        +	div {
        +		text-decoration: underline;
        +		background: url('foo.png');
        +	}
        +}
        + +

        + It also works for inline code: + var bar = function () { /* foo */ }; +

        + +
        + +
        + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/keep-markup/prism-keep-markup.js b/docs/_style/prism-master/plugins/keep-markup/prism-keep-markup.js new file mode 100644 index 00000000..bc136c67 --- /dev/null +++ b/docs/_style/prism-master/plugins/keep-markup/prism-keep-markup.js @@ -0,0 +1,99 @@ +(function () { + + if (typeof self === 'undefined' || !self.Prism || !self.document || !document.createRange) { + return; + } + + Prism.plugins.KeepMarkup = true; + + Prism.hooks.add('before-highlight', function (env) { + if (!env.element.children.length) { + return; + } + + var pos = 0; + var data = []; + var f = function (elt, baseNode) { + var o = {}; + if (!baseNode) { + // Clone the original tag to keep all attributes + o.clone = elt.cloneNode(false); + o.posOpen = pos; + data.push(o); + } + for (var i = 0, l = elt.childNodes.length; i < l; i++) { + var child = elt.childNodes[i]; + if (child.nodeType === 1) { // element + f(child); + } else if(child.nodeType === 3) { // text + pos += child.data.length; + } + } + if (!baseNode) { + o.posClose = pos; + } + }; + f(env.element, true); + + if (data && data.length) { + // data is an array of all existing tags + env.keepMarkup = data; + } + }); + + Prism.hooks.add('after-highlight', function (env) { + if(env.keepMarkup && env.keepMarkup.length) { + + var walk = function (elt, nodeState) { + for (var i = 0, l = elt.childNodes.length; i < l; i++) { + + var child = elt.childNodes[i]; + + if (child.nodeType === 1) { // element + if (!walk(child, nodeState)) { + return false; + } + + } else if (child.nodeType === 3) { // text + if(!nodeState.nodeStart && nodeState.pos + child.data.length > nodeState.node.posOpen) { + // We found the start position + nodeState.nodeStart = child; + nodeState.nodeStartPos = nodeState.node.posOpen - nodeState.pos; + } + if(nodeState.nodeStart && nodeState.pos + child.data.length >= nodeState.node.posClose) { + // We found the end position + nodeState.nodeEnd = child; + nodeState.nodeEndPos = nodeState.node.posClose - nodeState.pos; + } + + nodeState.pos += child.data.length; + } + + if (nodeState.nodeStart && nodeState.nodeEnd) { + // Select the range and wrap it with the clone + var range = document.createRange(); + range.setStart(nodeState.nodeStart, nodeState.nodeStartPos); + range.setEnd(nodeState.nodeEnd, nodeState.nodeEndPos); + nodeState.node.clone.appendChild(range.extractContents()); + range.insertNode(nodeState.node.clone); + range.detach(); + + // Process is over + return false; + } + } + return true; + }; + + // For each tag, we walk the DOM to reinsert it + env.keepMarkup.forEach(function (node) { + walk(env.element, { + node: node, + pos: 0 + }); + }); + // Store new highlightedCode for later hooks calls + env.highlightedCode = env.element.innerHTML; + } + }); +}()); diff --git a/docs/_style/prism-master/plugins/keep-markup/prism-keep-markup.min.js b/docs/_style/prism-master/plugins/keep-markup/prism-keep-markup.min.js new file mode 100644 index 00000000..7f54d276 --- /dev/null +++ b/docs/_style/prism-master/plugins/keep-markup/prism-keep-markup.min.js @@ -0,0 +1 @@ +!function(){"undefined"!=typeof self&&self.Prism&&self.document&&document.createRange&&(Prism.plugins.KeepMarkup=!0,Prism.hooks.add("before-highlight",function(e){if(e.element.children.length){var n=0,o=[],t=function(e,d){var r={};d||(r.clone=e.cloneNode(!1),r.posOpen=n,o.push(r));for(var a=0,s=e.childNodes.length;s>a;a++){var l=e.childNodes[a];1===l.nodeType?t(l):3===l.nodeType&&(n+=l.data.length)}d||(r.posClose=n)};t(e.element,!0),o&&o.length&&(e.keepMarkup=o)}}),Prism.hooks.add("after-highlight",function(e){if(e.keepMarkup&&e.keepMarkup.length){var n=function(e,o){for(var t=0,d=e.childNodes.length;d>t;t++){var r=e.childNodes[t];if(1===r.nodeType){if(!n(r,o))return!1}else 3===r.nodeType&&(!o.nodeStart&&o.pos+r.data.length>o.node.posOpen&&(o.nodeStart=r,o.nodeStartPos=o.node.posOpen-o.pos),o.nodeStart&&o.pos+r.data.length>=o.node.posClose&&(o.nodeEnd=r,o.nodeEndPos=o.node.posClose-o.pos),o.pos+=r.data.length);if(o.nodeStart&&o.nodeEnd){var a=document.createRange();return a.setStart(o.nodeStart,o.nodeStartPos),a.setEnd(o.nodeEnd,o.nodeEndPos),o.node.clone.appendChild(a.extractContents()),a.insertNode(o.node.clone),a.detach(),!1}}return!0};e.keepMarkup.forEach(function(o){n(e.element,{node:o,pos:0})}),e.highlightedCode=e.element.innerHTML}}))}(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/line-highlight/index.html b/docs/_style/prism-master/plugins/line-highlight/index.html new file mode 100644 index 00000000..f3b58b4b --- /dev/null +++ b/docs/_style/prism-master/plugins/line-highlight/index.html @@ -0,0 +1,88 @@ + + + + + + +Line highlight ▲ Prism plugins + + + + + + + + + + + +
        +
        + +

        Line highlight

        +

        Highlights specific lines and/or line ranges.

        +
        + +
        +

        How to use

        + +

        Obviously, this only works on code blocks (<pre><code>) and not for inline code. + +

        You specify the lines to be highlighted through the data-line attribute on the <pre> element, in the following simple format:

        +
          +
        • A single number refers to the line with that number
        • +
        • Ranges are denoted by two numbers, separated with a hyphen (-)
        • +
        • Multiple line numbers or ranges are separated by commas.
        • +
        • Whitespace is allowed anywhere and will be stripped off.
        • +
        + +

        Examples:

        +
        +
        5
        +
        The 5th line
        + +
        1-5
        +
        Lines 1 through 5
        + +
        1,4
        +
        Line 1 and line 4
        + +
        1-2, 5, 9-20
        +
        Lines 1 through 2, line 5, lines 9 through 20
        +
        + +

        In case you want the line numbering to be offset by a certain number (for example, you want the 1st line to be number 41 instead of 1, which is an offset of 40), you can additionally use the data-line-offset attribute. + +

        You can also link to specific lines on any code snippet, by using the following as a url hash: #{element-id}.{lines} where + {element-id} is the id of the <pre> element and {lines} is one or more lines or line ranges that follow the format + outlined above. For example, if there is an element with id="play" on the page, you can link to lines 5-6 by linking to #play.5-6

        +
        + +
        +

        Examples

        + +

        Line 2

        +
        
        +	
        +	

        Lines 15-25

        +
        
        +	
        +	

        Line 1 and lines 3-4 and line 42

        +
        
        +	
        +	

        Line 43, starting from line 41

        +
        
        +	
        +	

        Linking example

        +
        + +
        + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/line-highlight/prism-line-highlight.css b/docs/_style/prism-master/plugins/line-highlight/prism-line-highlight.css new file mode 100644 index 00000000..6058db44 --- /dev/null +++ b/docs/_style/prism-master/plugins/line-highlight/prism-line-highlight.css @@ -0,0 +1,49 @@ +pre[data-line] { + position: relative; + padding: 1em 0 1em 3em; +} + +.line-highlight { + position: absolute; + left: 0; + right: 0; + padding: inherit 0; + margin-top: 1em; /* Same as .prism’s padding-top */ + + background: hsla(24, 20%, 50%,.08); + background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0)); + + pointer-events: none; + + line-height: inherit; + white-space: pre; +} + + .line-highlight:before, + .line-highlight[data-end]:after { + content: attr(data-start); + position: absolute; + top: .4em; + left: .6em; + min-width: 1em; + padding: 0 .5em; + background-color: hsla(24, 20%, 50%,.4); + color: hsl(24, 20%, 95%); + font: bold 65%/1.5 sans-serif; + text-align: center; + vertical-align: .3em; + border-radius: 999px; + text-shadow: none; + box-shadow: 0 1px white; + } + + .line-highlight[data-end]:after { + content: attr(data-end); + top: auto; + bottom: .4em; + } + +.line-numbers .line-highlight:before, +.line-numbers .line-highlight:after { + content: none; +} diff --git a/docs/_style/prism-master/plugins/line-highlight/prism-line-highlight.js b/docs/_style/prism-master/plugins/line-highlight/prism-line-highlight.js new file mode 100644 index 00000000..5d919ae6 --- /dev/null +++ b/docs/_style/prism-master/plugins/line-highlight/prism-line-highlight.js @@ -0,0 +1,181 @@ +(function(){ + +if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) { + return; +} + +function $$(expr, con) { + return Array.prototype.slice.call((con || document).querySelectorAll(expr)); +} + +function hasClass(element, className) { + className = " " + className + " "; + return (" " + element.className + " ").replace(/[\n\t]/g, " ").indexOf(className) > -1 +} + +// Some browsers round the line-height, others don't. +// We need to test for it to position the elements properly. +var isLineHeightRounded = (function() { + var res; + return function() { + if(typeof res === 'undefined') { + var d = document.createElement('div'); + d.style.fontSize = '13px'; + d.style.lineHeight = '1.5'; + d.style.padding = 0; + d.style.border = 0; + d.innerHTML = ' 
         '; + document.body.appendChild(d); + // Browsers that round the line-height should have offsetHeight === 38 + // The others should have 39. + res = d.offsetHeight === 38; + document.body.removeChild(d); + } + return res; + } +}()); + +function highlightLines(pre, lines, classes) { + lines = typeof lines === 'string' ? lines : pre.getAttribute('data-line'); + + var ranges = lines.replace(/\s+/g, '').split(','), + offset = +pre.getAttribute('data-line-offset') || 0; + + var parseMethod = isLineHeightRounded() ? parseInt : parseFloat; + var lineHeight = parseMethod(getComputedStyle(pre).lineHeight); + var hasLineNumbers = hasClass(pre, 'line-numbers'); + + for (var i=0, currentRange; currentRange = ranges[i++];) { + var range = currentRange.split('-'); + + var start = +range[0], + end = +range[1] || start; + + var line = pre.querySelector('.line-highlight[data-range="' + currentRange + '"]') || document.createElement('div'); + + line.setAttribute('aria-hidden', 'true'); + line.setAttribute('data-range', currentRange); + line.className = (classes || '') + ' line-highlight'; + + //if the line-numbers plugin is enabled, then there is no reason for this plugin to display the line numbers + if(hasLineNumbers && Prism.plugins.lineNumbers) { + var startNode = Prism.plugins.lineNumbers.getLine(pre, start); + var endNode = Prism.plugins.lineNumbers.getLine(pre, end); + + if (startNode) { + line.style.top = startNode.offsetTop + 'px'; + } + + if (endNode) { + line.style.height = (endNode.offsetTop - startNode.offsetTop) + endNode.offsetHeight + 'px'; + } + } else { + line.setAttribute('data-start', start); + + if(end > start) { + line.setAttribute('data-end', end); + } + + line.style.top = (start - offset - 1) * lineHeight + 'px'; + + line.textContent = new Array(end - start + 2).join(' \n'); + } + + //allow this to play nicely with the line-numbers plugin + if(hasLineNumbers) { + //need to attack to pre as when line-numbers is enabled, the code tag is relatively which screws up the positioning + pre.appendChild(line); + } else { + (pre.querySelector('code') || pre).appendChild(line); + } + } +} + +function applyHash() { + var hash = location.hash.slice(1); + + // Remove pre-existing temporary lines + $$('.temporary.line-highlight').forEach(function (line) { + line.parentNode.removeChild(line); + }); + + var range = (hash.match(/\.([\d,-]+)$/) || [,''])[1]; + + if (!range || document.getElementById(hash)) { + return; + } + + var id = hash.slice(0, hash.lastIndexOf('.')), + pre = document.getElementById(id); + + if (!pre) { + return; + } + + if (!pre.hasAttribute('data-line')) { + pre.setAttribute('data-line', ''); + } + + highlightLines(pre, range, 'temporary '); + + document.querySelector('.temporary.line-highlight').scrollIntoView(); +} + +var fakeTimer = 0; // Hack to limit the number of times applyHash() runs + +Prism.hooks.add('before-sanity-check', function(env) { + var pre = env.element.parentNode; + var lines = pre && pre.getAttribute('data-line'); + + if (!pre || !lines || !/pre/i.test(pre.nodeName)) { + return; + } + + /* + * Cleanup for other plugins (e.g. autoloader). + * + * Sometimes blocks are highlighted multiple times. It is necessary + * to cleanup any left-over tags, because the whitespace inside of the
        + * tags change the content of the tag. + */ + var num = 0; + $$('.line-highlight', pre).forEach(function (line) { + num += line.textContent.length; + line.parentNode.removeChild(line); + }); + // Remove extra whitespace + if (num && /^( \n)+$/.test(env.code.slice(-num))) { + env.code = env.code.slice(0, -num); + } +}); + +Prism.hooks.add('complete', function completeHook(env) { + var pre = env.element.parentNode; + var lines = pre && pre.getAttribute('data-line'); + + if (!pre || !lines || !/pre/i.test(pre.nodeName)) { + return; + } + + clearTimeout(fakeTimer); + + var hasLineNumbers = Prism.plugins.lineNumbers; + var isLineNumbersLoaded = env.plugins && env.plugins.lineNumbers; + + if (hasClass(pre, 'line-numbers') && hasLineNumbers && !isLineNumbersLoaded) { + Prism.hooks.add('line-numbers', completeHook); + } else { + highlightLines(pre, lines); + fakeTimer = setTimeout(applyHash, 1); + } +}); + + window.addEventListener('hashchange', applyHash); + window.addEventListener('resize', function () { + var preElements = document.querySelectorAll('pre[data-line]'); + Array.prototype.forEach.call(preElements, function (pre) { + highlightLines(pre); + }); + }); + +})(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/line-highlight/prism-line-highlight.min.js b/docs/_style/prism-master/plugins/line-highlight/prism-line-highlight.min.js new file mode 100644 index 00000000..6c870914 --- /dev/null +++ b/docs/_style/prism-master/plugins/line-highlight/prism-line-highlight.min.js @@ -0,0 +1 @@ +!function(){function e(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function t(e,t){return t=" "+t+" ",(" "+e.className+" ").replace(/[\n\t]/g," ").indexOf(t)>-1}function n(e,n,i){n="string"==typeof n?n:e.getAttribute("data-line");for(var o,l=n.replace(/\s+/g,"").split(","),a=+e.getAttribute("data-line-offset")||0,s=r()?parseInt:parseFloat,d=s(getComputedStyle(e).lineHeight),u=t(e,"line-numbers"),c=0;o=l[c++];){var p=o.split("-"),m=+p[0],f=+p[1]||m,h=e.querySelector('.line-highlight[data-range="'+o+'"]')||document.createElement("div");if(h.setAttribute("aria-hidden","true"),h.setAttribute("data-range",o),h.className=(i||"")+" line-highlight",u&&Prism.plugins.lineNumbers){var g=Prism.plugins.lineNumbers.getLine(e,m),y=Prism.plugins.lineNumbers.getLine(e,f);g&&(h.style.top=g.offsetTop+"px"),y&&(h.style.height=y.offsetTop-g.offsetTop+y.offsetHeight+"px")}else h.setAttribute("data-start",m),f>m&&h.setAttribute("data-end",f),h.style.top=(m-a-1)*d+"px",h.textContent=new Array(f-m+2).join(" \n");u?e.appendChild(h):(e.querySelector("code")||e).appendChild(h)}}function i(){var t=location.hash.slice(1);e(".temporary.line-highlight").forEach(function(e){e.parentNode.removeChild(e)});var i=(t.match(/\.([\d,-]+)$/)||[,""])[1];if(i&&!document.getElementById(t)){var r=t.slice(0,t.lastIndexOf(".")),o=document.getElementById(r);o&&(o.hasAttribute("data-line")||o.setAttribute("data-line",""),n(o,i,"temporary "),document.querySelector(".temporary.line-highlight").scrollIntoView())}}if("undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector){var r=function(){var e;return function(){if("undefined"==typeof e){var t=document.createElement("div");t.style.fontSize="13px",t.style.lineHeight="1.5",t.style.padding=0,t.style.border=0,t.innerHTML=" 
         ",document.body.appendChild(t),e=38===t.offsetHeight,document.body.removeChild(t)}return e}}(),o=0;Prism.hooks.add("before-sanity-check",function(t){var n=t.element.parentNode,i=n&&n.getAttribute("data-line");if(n&&i&&/pre/i.test(n.nodeName)){var r=0;e(".line-highlight",n).forEach(function(e){r+=e.textContent.length,e.parentNode.removeChild(e)}),r&&/^( \n)+$/.test(t.code.slice(-r))&&(t.code=t.code.slice(0,-r))}}),Prism.hooks.add("complete",function l(e){var r=e.element.parentNode,a=r&&r.getAttribute("data-line");if(r&&a&&/pre/i.test(r.nodeName)){clearTimeout(o);var s=Prism.plugins.lineNumbers,d=e.plugins&&e.plugins.lineNumbers;t(r,"line-numbers")&&s&&!d?Prism.hooks.add("line-numbers",l):(n(r,a),o=setTimeout(i,1))}}),window.addEventListener("hashchange",i),window.addEventListener("resize",function(){var e=document.querySelectorAll("pre[data-line]");Array.prototype.forEach.call(e,function(e){n(e)})})}}(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/line-numbers/index.html b/docs/_style/prism-master/plugins/line-numbers/index.html new file mode 100644 index 00000000..5af756ca --- /dev/null +++ b/docs/_style/prism-master/plugins/line-numbers/index.html @@ -0,0 +1,69 @@ + + + + + + +Line Numbers ▲ Prism plugins + + + + + + + + + + + +
        +
        + +

        Line Numbers

        +

        Line number at the beginning of code lines.

        +
        + +
        +

        How to use

        + +

        Obviously, this is supposed to work only for code blocks (<pre><code>) and not for inline code.

        +

        Add class line-numbers to your desired <pre> and line-numbers plugin will take care.

        +

        Optional: You can specify the data-start (Number) attribute on the <pre> element. It will shift the line counter.

        +

        Optional: To support multiline line numbers using soft wrap add css white-space to pre-line or pre-wrap.

        +
        + +
        +

        Examples

        + +

        JavaScript

        +
        
        +
        +  

        CSS

        +
        
        +
        +  

        HTML

        +

        Please note the data-start="-5" in the code below.

        +
        
        +
        +  

        Unknown languages

        +
        This raw text
        +is not highlighted
        +but it still has
        +lines numbers
        + +

        Soft wrap support

        +
        
        +
        +
        + +
        + + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/line-numbers/prism-line-numbers.css b/docs/_style/prism-master/plugins/line-numbers/prism-line-numbers.css new file mode 100644 index 00000000..08b29ed6 --- /dev/null +++ b/docs/_style/prism-master/plugins/line-numbers/prism-line-numbers.css @@ -0,0 +1,41 @@ +pre[class*="language-"].line-numbers { + position: relative; + padding-left: 3.8em; + counter-reset: linenumber; +} + +pre[class*="language-"].line-numbers > code { + position: relative; + white-space: inherit; +} + +.line-numbers .line-numbers-rows { + position: absolute; + pointer-events: none; + top: 0; + font-size: 100%; + left: -3.8em; + width: 3em; /* works for line-numbers below 1000 lines */ + letter-spacing: -1px; + border-right: 1px solid #999; + + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + +} + + .line-numbers-rows > span { + pointer-events: none; + display: block; + counter-increment: linenumber; + } + + .line-numbers-rows > span:before { + content: counter(linenumber); + color: #999; + display: block; + padding-right: 0.8em; + text-align: right; + } diff --git a/docs/_style/prism-master/plugins/line-numbers/prism-line-numbers.js b/docs/_style/prism-master/plugins/line-numbers/prism-line-numbers.js new file mode 100644 index 00000000..e9e684fe --- /dev/null +++ b/docs/_style/prism-master/plugins/line-numbers/prism-line-numbers.js @@ -0,0 +1,159 @@ +(function () { + + if (typeof self === 'undefined' || !self.Prism || !self.document) { + return; + } + + /** + * Plugin name which is used as a class name for
         which is activating the plugin
        +	 * @type {String}
        +	 */
        +	var PLUGIN_NAME = 'line-numbers';
        +	
        +	/**
        +	 * Regular expression used for determining line breaks
        +	 * @type {RegExp}
        +	 */
        +	var NEW_LINE_EXP = /\n(?!$)/g;
        +
        +	/**
        +	 * Resizes line numbers spans according to height of line of code
        +	 * @param {Element} element 
         element
        +	 */
        +	var _resizeElement = function (element) {
        +		var codeStyles = getStyles(element);
        +		var whiteSpace = codeStyles['white-space'];
        +
        +		if (whiteSpace === 'pre-wrap' || whiteSpace === 'pre-line') {
        +			var codeElement = element.querySelector('code');
        +			var lineNumbersWrapper = element.querySelector('.line-numbers-rows');
        +			var lineNumberSizer = element.querySelector('.line-numbers-sizer');
        +			var codeLines = codeElement.textContent.split(NEW_LINE_EXP);
        +
        +			if (!lineNumberSizer) {
        +				lineNumberSizer = document.createElement('span');
        +				lineNumberSizer.className = 'line-numbers-sizer';
        +
        +				codeElement.appendChild(lineNumberSizer);
        +			}
        +
        +			lineNumberSizer.style.display = 'block';
        +
        +			codeLines.forEach(function (line, lineNumber) {
        +				lineNumberSizer.textContent = line || '\n';
        +				var lineSize = lineNumberSizer.getBoundingClientRect().height;
        +				lineNumbersWrapper.children[lineNumber].style.height = lineSize + 'px';
        +			});
        +
        +			lineNumberSizer.textContent = '';
        +			lineNumberSizer.style.display = 'none';
        +		}
        +	};
        +
        +	/**
        +	 * Returns style declarations for the element
        +	 * @param {Element} element
        +	 */
        +	var getStyles = function (element) {
        +		if (!element) {
        +			return null;
        +		}
        +
        +		return window.getComputedStyle ? getComputedStyle(element) : (element.currentStyle || null);
        +	};
        +
        +	window.addEventListener('resize', function () {
        +		Array.prototype.forEach.call(document.querySelectorAll('pre.' + PLUGIN_NAME), _resizeElement);
        +	});
        +
        +	Prism.hooks.add('complete', function (env) {
        +		if (!env.code) {
        +			return;
        +		}
        +
        +		// works only for  wrapped inside 
         (not inline)
        +		var pre = env.element.parentNode;
        +		var clsReg = /\s*\bline-numbers\b\s*/;
        +		if (
        +			!pre || !/pre/i.test(pre.nodeName) ||
        +			// Abort only if nor the 
         nor the  have the class
        +			(!clsReg.test(pre.className) && !clsReg.test(env.element.className))
        +		) {
        +			return;
        +		}
        +
        +		if (env.element.querySelector('.line-numbers-rows')) {
        +			// Abort if line numbers already exists
        +			return;
        +		}
        +
        +		if (clsReg.test(env.element.className)) {
        +			// Remove the class 'line-numbers' from the 
        +			env.element.className = env.element.className.replace(clsReg, ' ');
        +		}
        +		if (!clsReg.test(pre.className)) {
        +			// Add the class 'line-numbers' to the 
        +			pre.className += ' line-numbers';
        +		}
        +
        +		var match = env.code.match(NEW_LINE_EXP);
        +		var linesNum = match ? match.length + 1 : 1;
        +		var lineNumbersWrapper;
        +
        +		var lines = new Array(linesNum + 1);
        +		lines = lines.join('');
        +
        +		lineNumbersWrapper = document.createElement('span');
        +		lineNumbersWrapper.setAttribute('aria-hidden', 'true');
        +		lineNumbersWrapper.className = 'line-numbers-rows';
        +		lineNumbersWrapper.innerHTML = lines;
        +
        +		if (pre.hasAttribute('data-start')) {
        +			pre.style.counterReset = 'linenumber ' + (parseInt(pre.getAttribute('data-start'), 10) - 1);
        +		}
        +
        +		env.element.appendChild(lineNumbersWrapper);
        +
        +		_resizeElement(pre);
        +
        +		Prism.hooks.run('line-numbers', env);
        +	});
        +
        +	Prism.hooks.add('line-numbers', function (env) {
        +		env.plugins = env.plugins || {};
        +		env.plugins.lineNumbers = true;
        +	});
        +	
        +	/**
        +	 * Global exports
        +	 */
        +	Prism.plugins.lineNumbers = {
        +		/**
        +		 * Get node for provided line number
        +		 * @param {Element} element pre element
        +		 * @param {Number} number line number
        +		 * @return {Element|undefined}
        +		 */
        +		getLine: function (element, number) {
        +			if (element.tagName !== 'PRE' || !element.classList.contains(PLUGIN_NAME)) {
        +				return;
        +			}
        +
        +			var lineNumberRows = element.querySelector('.line-numbers-rows');
        +			var lineNumberStart = parseInt(element.getAttribute('data-start'), 10) || 1;
        +			var lineNumberEnd = lineNumberStart + (lineNumberRows.children.length - 1);
        +
        +			if (number < lineNumberStart) {
        +				number = lineNumberStart;
        +			}
        +			if (number > lineNumberEnd) {
        +				number = lineNumberEnd;
        +			}
        +
        +			var lineIndex = number - lineNumberStart;
        +
        +			return lineNumberRows.children[lineIndex];
        +		}
        +	};
        +
        +}());
        \ No newline at end of file
        diff --git a/docs/_style/prism-master/plugins/line-numbers/prism-line-numbers.min.js b/docs/_style/prism-master/plugins/line-numbers/prism-line-numbers.min.js
        new file mode 100644
        index 00000000..5291216f
        --- /dev/null
        +++ b/docs/_style/prism-master/plugins/line-numbers/prism-line-numbers.min.js
        @@ -0,0 +1 @@
        +!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var e="line-numbers",t=/\n(?!$)/g,n=function(e){var n=r(e),s=n["white-space"];if("pre-wrap"===s||"pre-line"===s){var l=e.querySelector("code"),i=e.querySelector(".line-numbers-rows"),a=e.querySelector(".line-numbers-sizer"),o=l.textContent.split(t);a||(a=document.createElement("span"),a.className="line-numbers-sizer",l.appendChild(a)),a.style.display="block",o.forEach(function(e,t){a.textContent=e||"\n";var n=a.getBoundingClientRect().height;i.children[t].style.height=n+"px"}),a.textContent="",a.style.display="none"}},r=function(e){return e?window.getComputedStyle?getComputedStyle(e):e.currentStyle||null:null};window.addEventListener("resize",function(){Array.prototype.forEach.call(document.querySelectorAll("pre."+e),n)}),Prism.hooks.add("complete",function(e){if(e.code){var r=e.element.parentNode,s=/\s*\bline-numbers\b\s*/;if(r&&/pre/i.test(r.nodeName)&&(s.test(r.className)||s.test(e.element.className))&&!e.element.querySelector(".line-numbers-rows")){s.test(e.element.className)&&(e.element.className=e.element.className.replace(s," ")),s.test(r.className)||(r.className+=" line-numbers");var l,i=e.code.match(t),a=i?i.length+1:1,o=new Array(a+1);o=o.join(""),l=document.createElement("span"),l.setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=o,r.hasAttribute("data-start")&&(r.style.counterReset="linenumber "+(parseInt(r.getAttribute("data-start"),10)-1)),e.element.appendChild(l),n(r),Prism.hooks.run("line-numbers",e)}}}),Prism.hooks.add("line-numbers",function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}),Prism.plugins.lineNumbers={getLine:function(t,n){if("PRE"===t.tagName&&t.classList.contains(e)){var r=t.querySelector(".line-numbers-rows"),s=parseInt(t.getAttribute("data-start"),10)||1,l=s+(r.children.length-1);s>n&&(n=s),n>l&&(n=l);var i=n-s;return r.children[i]}}}}}();
        \ No newline at end of file
        diff --git a/docs/_style/prism-master/plugins/normalize-whitespace/demo.html b/docs/_style/prism-master/plugins/normalize-whitespace/demo.html
        new file mode 100644
        index 00000000..a6bcf22b
        --- /dev/null
        +++ b/docs/_style/prism-master/plugins/normalize-whitespace/demo.html
        @@ -0,0 +1,33 @@
        +
        +
        + +
        +
        +	
        +
        +
        +		var example = {
        +			foo: true,
        +
        +			bar: false
        +		};
        +
        +
        +	
        +
        +
        + +
        + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/normalize-whitespace/index.html b/docs/_style/prism-master/plugins/normalize-whitespace/index.html new file mode 100644 index 00000000..e1469de6 --- /dev/null +++ b/docs/_style/prism-master/plugins/normalize-whitespace/index.html @@ -0,0 +1,180 @@ + + + + + + + Normalize Whitespace ▲ Prism plugins + + + + + + + + + + + + +
        +
        + +

        Normalize Whitespace

        +

        Supports multiple operations to normalize whitespace in code blocks.

        +
        + +
        +

        How to use

        + +

        Obviously, this is supposed to work only for code blocks (<pre><code>) and not for inline code.

        +

        By default the plugin trims all leading and trailing whitespace of every code block. + It also removes extra indents and trailing whitespace on every line.

        + +

        The plugin can be disabled for a particular code block by adding the class no-whitespace-normalization to + either the <pre> or <code> tag.

        + +

        The default settings can be overridden with the setDefaults() method + like so:

        + +
        
        +Prism.plugins.NormalizeWhitespace.setDefaults({
        +	'remove-trailing': true,
        +	'remove-indent': true,
        +	'left-trim': true,
        +	'right-trim': true,
        +	/*'break-lines': 80,
        +	'indent': 2,
        +	'remove-initial-line-feed': false,
        +	'tabs-to-spaces': 4,
        +	'spaces-to-tabs': 4*/
        +});
        +
        + +

        The following settings are available:

        + +
        +
        remove-trailing
        +
        Removes trailing whitespace on all lines.
        +
        remove-indent
        +
        If the whole code block is indented too much it removes the extra indent.
        +
        left-trim
        +
        Removes all whitespace from the top of the code block.
        +
        right-trim
        +
        Removes all whitespace from the bottom of the code block.
        +
        break-lines
        +
        Simple way of breaking long lines at a certain length (default is 80 characters).
        +
        indent
        +
        Adds a certain number of tabs to every line.
        +
        remove-initial-line-feed
        +
        Less aggressive version of left-trim. + It only removes a single line feed from the top of the code block.
        +
        tabs-to-spaces
        +
        Converts all tabs to a certain number of spaces (default is 4 spaces).
        +
        spaces-to-tabs
        +
        Converts a certain number of spaces to a tab (default is 4 spaces).
        +
        +
        + +
        +

        Examples

        + +

        The following example demonstrates the use of this plugin:

        + +
        
        +
        +	

        The result looks like this:

        + +
        +
        +	
        +
        +
        +		var example = {
        +			foo: true,
        +
        +			bar: false
        +		};
        +
        +
        +	
        +
        +
        + +

        It is also compatible with the keep-markup plugin:

        + +
        +
        +	
        +
        +
        +	@media screen {
        +		div {
        +			text-decoration: underline;
        +			background: url('foo.png');
        +		}
        +	}
        +
        +
        +
        + +

        This plugin can also be used on the server or on the command line with Node.js:

        + +
        
        +var Prism = require('prismjs');
        +var Normalizer = require('prismjs/plugins/normalize-whitespace/prism-normalize-whitespace');
        +// Create a new Normalizer object
        +var nw = new Normalizer({
        +	'remove-trailing': true,
        +	'remove-indent': true,
        +	'left-trim': true,
        +	'right-trim': true,
        +	/*'break-lines': 80,
        +	'indent': 2,
        +	'remove-initial-line-feed': false,
        +	'tabs-to-spaces': 4,
        +	'spaces-to-tabs': 4*/
        +});
        +
        +// ..or use the default object from Prism
        +nw = Prism.plugins.NormalizeWhitespace;
        +
        +// The code snippet you want to highlight, as a string
        +var code = "\t\t\tvar data = 1;    ";
        +
        +// Removes leading and trailing whitespace
        +// and then indents by 1 tab
        +code = nw.normalize(code, {
        +	// Extra settings
        +	indent: 1
        +});
        +
        +// Returns a highlighted HTML string
        +var html = Prism.highlight(code, Prism.languages.javascript);
        +	
        + + +
        + +
        + + + + + + + + + + diff --git a/docs/_style/prism-master/plugins/normalize-whitespace/prism-normalize-whitespace.js b/docs/_style/prism-master/plugins/normalize-whitespace/prism-normalize-whitespace.js new file mode 100644 index 00000000..b6c64727 --- /dev/null +++ b/docs/_style/prism-master/plugins/normalize-whitespace/prism-normalize-whitespace.js @@ -0,0 +1,190 @@ +(function() { + +var assign = Object.assign || function (obj1, obj2) { + for (var name in obj2) { + if (obj2.hasOwnProperty(name)) + obj1[name] = obj2[name]; + } + return obj1; +} + +function NormalizeWhitespace(defaults) { + this.defaults = assign({}, defaults); +} + +function toCamelCase(value) { + return value.replace(/-(\w)/g, function(match, firstChar) { + return firstChar.toUpperCase(); + }); +} + +function tabLen(str) { + var res = 0; + for (var i = 0; i < str.length; ++i) { + if (str.charCodeAt(i) == '\t'.charCodeAt(0)) + res += 3; + } + return str.length + res; +} + +NormalizeWhitespace.prototype = { + setDefaults: function (defaults) { + this.defaults = assign(this.defaults, defaults); + }, + normalize: function (input, settings) { + settings = assign(this.defaults, settings); + + for (var name in settings) { + var methodName = toCamelCase(name); + if (name !== "normalize" && methodName !== 'setDefaults' && + settings[name] && this[methodName]) { + input = this[methodName].call(this, input, settings[name]); + } + } + + return input; + }, + + /* + * Normalization methods + */ + leftTrim: function (input) { + return input.replace(/^\s+/, ''); + }, + rightTrim: function (input) { + return input.replace(/\s+$/, ''); + }, + tabsToSpaces: function (input, spaces) { + spaces = spaces|0 || 4; + return input.replace(/\t/g, new Array(++spaces).join(' ')); + }, + spacesToTabs: function (input, spaces) { + spaces = spaces|0 || 4; + return input.replace(RegExp(' {' + spaces + '}', 'g'), '\t'); + }, + removeTrailing: function (input) { + return input.replace(/\s*?$/gm, ''); + }, + // Support for deprecated plugin remove-initial-line-feed + removeInitialLineFeed: function (input) { + return input.replace(/^(?:\r?\n|\r)/, ''); + }, + removeIndent: function (input) { + var indents = input.match(/^[^\S\n\r]*(?=\S)/gm); + + if (!indents || !indents[0].length) + return input; + + indents.sort(function(a, b){return a.length - b.length; }); + + if (!indents[0].length) + return input; + + return input.replace(RegExp('^' + indents[0], 'gm'), ''); + }, + indent: function (input, tabs) { + return input.replace(/^[^\S\n\r]*(?=\S)/gm, new Array(++tabs).join('\t') + '$&'); + }, + breakLines: function (input, characters) { + characters = (characters === true) ? 80 : characters|0 || 80; + + var lines = input.split('\n'); + for (var i = 0; i < lines.length; ++i) { + if (tabLen(lines[i]) <= characters) + continue; + + var line = lines[i].split(/(\s+)/g), + len = 0; + + for (var j = 0; j < line.length; ++j) { + var tl = tabLen(line[j]); + len += tl; + if (len > characters) { + line[j] = '\n' + line[j]; + len = tl; + } + } + lines[i] = line.join(''); + } + return lines.join('\n'); + } +}; + +// Support node modules +if (typeof module !== 'undefined' && module.exports) { + module.exports = NormalizeWhitespace; +} + +// Exit if prism is not loaded +if (typeof Prism === 'undefined') { + return; +} + +Prism.plugins.NormalizeWhitespace = new NormalizeWhitespace({ + 'remove-trailing': true, + 'remove-indent': true, + 'left-trim': true, + 'right-trim': true, + /*'break-lines': 80, + 'indent': 2, + 'remove-initial-line-feed': false, + 'tabs-to-spaces': 4, + 'spaces-to-tabs': 4*/ +}); + +Prism.hooks.add('before-sanity-check', function (env) { + var Normalizer = Prism.plugins.NormalizeWhitespace; + + // Check settings + if (env.settings && env.settings['whitespace-normalization'] === false) { + return; + } + + // Simple mode if there is no env.element + if ((!env.element || !env.element.parentNode) && env.code) { + env.code = Normalizer.normalize(env.code, env.settings); + return; + } + + // Normal mode + var pre = env.element.parentNode; + var clsReg = /\bno-whitespace-normalization\b/; + if (!env.code || !pre || pre.nodeName.toLowerCase() !== 'pre' || + clsReg.test(pre.className) || clsReg.test(env.element.className)) + return; + + var children = pre.childNodes, + before = '', + after = '', + codeFound = false; + + // Move surrounding whitespace from the
         tag into the  tag
        +	for (var i = 0; i < children.length; ++i) {
        +		var node = children[i];
        +
        +		if (node == env.element) {
        +			codeFound = true;
        +		} else if (node.nodeName === "#text") {
        +			if (codeFound) {
        +				after += node.nodeValue;
        +			} else {
        +				before += node.nodeValue;
        +			}
        +
        +			pre.removeChild(node);
        +			--i;
        +		}
        +	}
        +
        +	if (!env.element.children.length || !Prism.plugins.KeepMarkup) {
        +		env.code = before + env.code + after;
        +		env.code = Normalizer.normalize(env.code, env.settings);
        +	} else {
        +		// Preserve markup for keep-markup plugin
        +		var html = before + env.element.innerHTML + after;
        +		env.element.innerHTML = Normalizer.normalize(html, env.settings);
        +		env.code = env.element.textContent;
        +	}
        +});
        +
        +}());
        diff --git a/docs/_style/prism-master/plugins/normalize-whitespace/prism-normalize-whitespace.min.js b/docs/_style/prism-master/plugins/normalize-whitespace/prism-normalize-whitespace.min.js
        new file mode 100644
        index 00000000..39fa5795
        --- /dev/null
        +++ b/docs/_style/prism-master/plugins/normalize-whitespace/prism-normalize-whitespace.min.js
        @@ -0,0 +1 @@
        +!function(){function e(e){this.defaults=r({},e)}function n(e){return e.replace(/-(\w)/g,function(e,n){return n.toUpperCase()})}function t(e){for(var n=0,t=0;tn&&(o[s]="\n"+o[s],a=l)}r[i]=o.join("")}return r.join("\n")}},"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof Prism&&(Prism.plugins.NormalizeWhitespace=new e({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",function(e){var n=Prism.plugins.NormalizeWhitespace;if(!e.settings||e.settings["whitespace-normalization"]!==!1){if((!e.element||!e.element.parentNode)&&e.code)return e.code=n.normalize(e.code,e.settings),void 0;var t=e.element.parentNode,r=/\bno-whitespace-normalization\b/;if(e.code&&t&&"pre"===t.nodeName.toLowerCase()&&!r.test(t.className)&&!r.test(e.element.className)){for(var i=t.childNodes,o="",a="",s=!1,l=0;l
        +
        +
        +
        +	
        +	
        +	Previewers ▲ Prism plugins
        +	
        +	
        +	
        +	
        +	
        +
        +	
        +	
        +
        +
        +
        +
        +
        + +

        Previewers

        +

        Previewers for angles, colors, gradients, easing and time.

        +
        + +
        +

        How to use

        + +

        You don't need to do anything. With this plugin loaded, a previewer will appear on hovering some values in code blocks. + The following previewers are supported:

        +
          +
        • angle for angles
        • +
        • color for colors
        • +
        • gradient for gradients
        • +
        • easing for easing functions
        • +
        • time for durations
        • +
        +

        This plugin is compatible with CSS, Less, Markup attributes, Sass, Scss and Stylus.

        +
        + +
        +

        Examples

        + +

        CSS

        +
        .example-gradient {
        +	background: -webkit-linear-gradient(left,     #cb60b3 0%, #c146a1 50%, #a80077 51%, #db36a4 100%); /* Chrome10+, Safari5.1+ */
        +	background:    -moz-linear-gradient(left,     #cb60b3 0%, #c146a1 50%, #a80077 51%, #db36a4 100%); /* FF3.6+ */
        +	background:     -ms-linear-gradient(left,     #cb60b3 0%, #c146a1 50%, #a80077 51%, #db36a4 100%); /* IE10+ */
        +	background:      -o-linear-gradient(left,     #cb60b3 0%, #c146a1 50%, #a80077 51%, #db36a4 100%); /* Opera 11.10+ */
        +	background:         linear-gradient(to right, #cb60b3 0%, #c146a1 50%, #a80077 51%, #db36a4 100%); /* W3C */
        +}
        +.example-angle {
        +	transform: rotate(10deg);
        +}
        +.example-color {
        +	color: rgba(255, 0, 0, 0.2);
        +	background: purple;
        +	border: 1px solid hsl(100, 70%, 40%);
        +}
        +.example-easing {
        +	transition-timing-function: linear;
        +}
        +.example-time {
        +	transition-duration: 3s;
        +}
        + +

        Markup attributes

        +
        <table bgcolor="#6E5494">
        +<tr style="background: lightblue;">
        + +

        Less

        +
        @gradient: linear-gradient(135deg, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);
        +.example-gradient {
        +	background: -webkit-linear-gradient(-45deg, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%); /* Chrome10+, Safari5.1+ */
        +	background:    -moz-linear-gradient(-45deg, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%); /* FF3.6+ */
        +	background:     -ms-linear-gradient(-45deg, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%); /* IE10+ */
        +	background:      -o-linear-gradient(-45deg, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%); /* Opera 11.10+ */
        +	background:         linear-gradient(135deg, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%); /* W3C */
        +}
        +@angle: 3rad;
        +.example-angle {
        +	transform: rotate(.4turn)
        +}
        +@nice-blue: #5B83AD;
        +.example-color {
        +	color: hsla(102, 53%, 42%, 0.4);
        +}
        +@easing: cubic-bezier(0.1, 0.3, 1, .4);
        +.example-easing {
        +	transition-timing-function: ease;
        +}
        +@time: 1s;
        +.example-time {
        +	transition-duration: 2s;
        +}
        + +

        Sass

        +
        $gradient: linear-gradient(135deg, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%)
        +@mixin example-gradient
        +	background: -moz-radial-gradient(center, ellipse cover, #f2f6f8 0%, #d8e1e7 50%, #b5c6d0 51%, #e0eff9 100%)
        +	background: radial-gradient(ellipse at center, #f2f6f8 0%, #d8e1e7 50%, #b5c6d0 51%, #e0eff9 100%)
        +$angle: 380grad
        +@mixin example-angle
        +	transform: rotate(-120deg)
        +.example-angle
        +	transform: rotate(18rad)
        +$color: blue
        +@mixin example-color
        +	color: rgba(147, 32, 34, 0.8)
        +.example-color
        +	color: pink
        +$easing: ease-out
        +.example-easing
        +	transition-timing-function: ease-in-out
        +$time: 3s
        +@mixin example-time
        +	transition-duration: 800ms
        +.example-time
        +	transition-duration: 0.8s
        +
        + +

        Scss

        +
        $gradient: linear-gradient(135deg, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);
        +$attr: background;
        +.example-gradient {
        +	#{$attr}-image: repeating-linear-gradient(10deg, rgba(255, 0, 0, 0), rgba(255, 0, 0, 1) 10px, rgba(255, 0, 0, 0) 20px);
        +}
        +$angle: 1.8turn;
        +.example-angle {
        +	transform: rotate(-3rad)
        +}
        +$color: blue;
        +.example-color {
        +	#{$attr}-color: rgba(255, 255, 0, 0.75);
        +}
        +$easing: linear;
        +.example-easing {
        +	transition-timing-function: cubic-bezier(0.9, 0.1, .2, .4);
        +}
        +$time: 1s;
        +.example-time {
        +	transition-duration: 10s
        +}
        + +

        Stylus

        +
        gradient = linear-gradient(135deg, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%)
        +.example-gradient
        +	background-image: repeating-radial-gradient(circle, rgba(255, 0, 0, 0), rgba(255, 0, 0, 1) 10px, rgba(255, 0, 0, 0) 20px)
        +angle = 357deg
        +.example-angle
        +	transform: rotate(100grad)
        +color = olive
        +.example-color
        +	color: #000
        +easing = ease-in
        +.example-easing
        +	transition-timing-function: ease-out
        +time = 3s
        +.example-time
        +	transition-duration: 0.5s
        +
        + +
        +

        Disabling a previewer

        +

        All previewers are enabled by default. To enable only a subset of them, a data-previewers attribute + can be added on a code block or any ancestor. Its value should be a space-separated list of previewers + representing the subset.

        +

        For example:

        +
        <pre class="language-css" data-previewers="color time"><code>div {
        +	/* Only the previewer for color and time are enabled */
        +	color: red;
        +	transition-duration: 1s;
        +	/* The previewer for angles is not enabled. */
        +	transform: rotate(10deg);
        +}</code></pre>
        +

        will give the following result:

        +
        div {
        +	/* Only the previewers for color and time are enabled */
        +	color: red;
        +	transition-duration: 1s;
        +	/* The previewer for angles is not enabled. */
        +	transform: rotate(10deg);
        +}
        +
        + +
        +

        API

        +

        This plugins provides a constructor that can be accessed through Prism.plugins.Previewer.

        +

        Once a previewer has been instantiated, an HTML element is appended to the document body. + This element will appear when specific tokens are hovered.

        + +

        new Prism.plugins.Previewer(type, updater, supportedLanguages)

        + +
          +
        • +

          type: the token type this previewer is associated to. + The previewer will be shown when hovering tokens of this type.

          +
        • +
        • +

          updater: the function that will be called each time an associated token is hovered. + This function takes the text content of the token as its only parameter. + The previewer HTML element can be accessed through the keyword this. + This function must return true for the previewer to be shown.

          +
        • +
        • +

          supportedLanguages: an optional array of supported languages. + The previewer will be available only for those. + Defaults to '*', which means every languages.

          +
        • +
        • +

          initializer: an optional function. + This function will be called when the previewer is initialized, + right after the HTML element has been appended to the document body.

          +
        • +
        + +
        + +
        + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/previewers/prism-previewers.css b/docs/_style/prism-master/plugins/previewers/prism-previewers.css new file mode 100644 index 00000000..b36988c2 --- /dev/null +++ b/docs/_style/prism-master/plugins/previewers/prism-previewers.css @@ -0,0 +1,242 @@ +.prism-previewer, +.prism-previewer:before, +.prism-previewer:after { + position: absolute; + pointer-events: none; +} +.prism-previewer, +.prism-previewer:after { + left: 50%; +} +.prism-previewer { + margin-top: -48px; + width: 32px; + height: 32px; + margin-left: -16px; + + opacity: 0; + -webkit-transition: opacity .25s; + -o-transition: opacity .25s; + transition: opacity .25s; +} +.prism-previewer.flipped { + margin-top: 0; + margin-bottom: -48px; +} +.prism-previewer:before, +.prism-previewer:after { + content: ''; + position: absolute; + pointer-events: none; +} +.prism-previewer:before { + top: -5px; + right: -5px; + left: -5px; + bottom: -5px; + border-radius: 10px; + border: 5px solid #fff; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.5) inset, 0 0 10px rgba(0, 0, 0, 0.75); +} +.prism-previewer:after { + top: 100%; + width: 0; + height: 0; + margin: 5px 0 0 -7px; + border: 7px solid transparent; + border-color: rgba(255, 0, 0, 0); + border-top-color: #fff; +} +.prism-previewer.flipped:after { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 5px; + border-top-color: rgba(255, 0, 0, 0); + border-bottom-color: #fff; +} +.prism-previewer.active { + opacity: 1; +} + +.prism-previewer-angle:before { + border-radius: 50%; + background: #fff; +} +.prism-previewer-angle:after { + margin-top: 4px; +} +.prism-previewer-angle svg { + width: 32px; + height: 32px; + -webkit-transform: rotate(-90deg); + -moz-transform: rotate(-90deg); + -ms-transform: rotate(-90deg); + -o-transform: rotate(-90deg); + transform: rotate(-90deg); +} +.prism-previewer-angle[data-negative] svg { + -webkit-transform: scaleX(-1) rotate(-90deg); + -moz-transform: scaleX(-1) rotate(-90deg); + -ms-transform: scaleX(-1) rotate(-90deg); + -o-transform: scaleX(-1) rotate(-90deg); + transform: scaleX(-1) rotate(-90deg); +} +.prism-previewer-angle circle { + fill: transparent; + stroke: hsl(200, 10%, 20%); + stroke-opacity: 0.9; + stroke-width: 32; + stroke-dasharray: 0, 500; +} + +.prism-previewer-gradient { + background-image: linear-gradient(45deg, #bbb 25%, transparent 25%, transparent 75%, #bbb 75%, #bbb), linear-gradient(45deg, #bbb 25%, #eee 25%, #eee 75%, #bbb 75%, #bbb); + background-size: 10px 10px; + background-position: 0 0, 5px 5px; + + width: 64px; + margin-left: -32px; +} +.prism-previewer-gradient:before { + content: none; +} +.prism-previewer-gradient div { + position: absolute; + top: -5px; + left: -5px; + right: -5px; + bottom: -5px; + border-radius: 10px; + border: 5px solid #fff; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.5) inset, 0 0 10px rgba(0, 0, 0, 0.75); +} + +.prism-previewer-color { + background-image: linear-gradient(45deg, #bbb 25%, transparent 25%, transparent 75%, #bbb 75%, #bbb), linear-gradient(45deg, #bbb 25%, #eee 25%, #eee 75%, #bbb 75%, #bbb); + background-size: 10px 10px; + background-position: 0 0, 5px 5px; +} +.prism-previewer-color:before { + background-color: inherit; + background-clip: padding-box; +} + +.prism-previewer-easing { + margin-top: -76px; + margin-left: -30px; + width: 60px; + height: 60px; + background: #333; +} +.prism-previewer-easing.flipped { + margin-bottom: -116px; +} +.prism-previewer-easing svg { + width: 60px; + height: 60px; +} +.prism-previewer-easing circle { + fill: hsl(200, 10%, 20%); + stroke: white; +} +.prism-previewer-easing path { + fill: none; + stroke: white; + stroke-linecap: round; + stroke-width: 4; +} +.prism-previewer-easing line { + stroke: white; + stroke-opacity: 0.5; + stroke-width: 2; +} + +@-webkit-keyframes prism-previewer-time { + 0% { + stroke-dasharray: 0, 500; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 100, 500; + stroke-dashoffset: 0; + } + 100% { + stroke-dasharray: 0, 500; + stroke-dashoffset: -100; + } +} + +@-o-keyframes prism-previewer-time { + 0% { + stroke-dasharray: 0, 500; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 100, 500; + stroke-dashoffset: 0; + } + 100% { + stroke-dasharray: 0, 500; + stroke-dashoffset: -100; + } +} + +@-moz-keyframes prism-previewer-time { + 0% { + stroke-dasharray: 0, 500; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 100, 500; + stroke-dashoffset: 0; + } + 100% { + stroke-dasharray: 0, 500; + stroke-dashoffset: -100; + } +} + +@keyframes prism-previewer-time { + 0% { + stroke-dasharray: 0, 500; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 100, 500; + stroke-dashoffset: 0; + } + 100% { + stroke-dasharray: 0, 500; + stroke-dashoffset: -100; + } +} + +.prism-previewer-time:before { + border-radius: 50%; + background: #fff; +} +.prism-previewer-time:after { + margin-top: 4px; +} +.prism-previewer-time svg { + width: 32px; + height: 32px; + -webkit-transform: rotate(-90deg); + -moz-transform: rotate(-90deg); + -ms-transform: rotate(-90deg); + -o-transform: rotate(-90deg); + transform: rotate(-90deg); +} +.prism-previewer-time circle { + fill: transparent; + stroke: hsl(200, 10%, 20%); + stroke-opacity: 0.9; + stroke-width: 32; + stroke-dasharray: 0, 500; + stroke-dashoffset: 0; + -webkit-animation: prism-previewer-time linear infinite 3s; + -moz-animation: prism-previewer-time linear infinite 3s; + -o-animation: prism-previewer-time linear infinite 3s; + animation: prism-previewer-time linear infinite 3s; +} \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/previewers/prism-previewers.js b/docs/_style/prism-master/plugins/previewers/prism-previewers.js new file mode 100644 index 00000000..0f0d2f9c --- /dev/null +++ b/docs/_style/prism-master/plugins/previewers/prism-previewers.js @@ -0,0 +1,708 @@ +(function() { + + if ( + typeof self !== 'undefined' && !self.Prism || + !self.document || !Function.prototype.bind + ) { + return; + } + + var previewers = { + // gradient must be defined before color and angle + 'gradient': { + create: (function () { + + // Stores already processed gradients so that we don't + // make the conversion every time the previewer is shown + var cache = {}; + + /** + * Returns a W3C-valid linear gradient + * @param {string} prefix Vendor prefix if any ("-moz-", "-webkit-", etc.) + * @param {string} func Gradient function name ("linear-gradient") + * @param {string[]} values Array of the gradient function parameters (["0deg", "red 0%", "blue 100%"]) + */ + var convertToW3CLinearGradient = function(prefix, func, values) { + // Default value for angle + var angle = '180deg'; + + if (/^(?:-?\d*\.?\d+(?:deg|rad)|to\b|top|right|bottom|left)/.test(values[0])) { + angle = values.shift(); + if (angle.indexOf('to ') < 0) { + // Angle uses old keywords + // W3C syntax uses "to" + opposite keywords + if (angle.indexOf('top') >= 0) { + if (angle.indexOf('left') >= 0) { + angle = 'to bottom right'; + } else if (angle.indexOf('right') >= 0) { + angle = 'to bottom left'; + } else { + angle = 'to bottom'; + } + } else if (angle.indexOf('bottom') >= 0) { + if (angle.indexOf('left') >= 0) { + angle = 'to top right'; + } else if (angle.indexOf('right') >= 0) { + angle = 'to top left'; + } else { + angle = 'to top'; + } + } else if (angle.indexOf('left') >= 0) { + angle = 'to right'; + } else if (angle.indexOf('right') >= 0) { + angle = 'to left'; + } else if (prefix) { + // Angle is shifted by 90deg in prefixed gradients + if (angle.indexOf('deg') >= 0) { + angle = (90 - parseFloat(angle)) + 'deg'; + } else if (angle.indexOf('rad') >= 0) { + angle = (Math.PI / 2 - parseFloat(angle)) + 'rad'; + } + } + } + } + + return func + '(' + angle + ',' + values.join(',') + ')'; + }; + + /** + * Returns a W3C-valid radial gradient + * @param {string} prefix Vendor prefix if any ("-moz-", "-webkit-", etc.) + * @param {string} func Gradient function name ("linear-gradient") + * @param {string[]} values Array of the gradient function parameters (["0deg", "red 0%", "blue 100%"]) + */ + var convertToW3CRadialGradient = function(prefix, func, values) { + if (values[0].indexOf('at') < 0) { + // Looks like old syntax + + // Default values + var position = 'center'; + var shape = 'ellipse'; + var size = 'farthest-corner'; + + if (/\bcenter|top|right|bottom|left\b|^\d+/.test(values[0])) { + // Found a position + // Remove angle value, if any + position = values.shift().replace(/\s*-?\d+(?:rad|deg)\s*/, ''); + } + if (/\bcircle|ellipse|closest|farthest|contain|cover\b/.test(values[0])) { + // Found a shape and/or size + var shapeSizeParts = values.shift().split(/\s+/); + if (shapeSizeParts[0] && (shapeSizeParts[0] === 'circle' || shapeSizeParts[0] === 'ellipse')) { + shape = shapeSizeParts.shift(); + } + if (shapeSizeParts[0]) { + size = shapeSizeParts.shift(); + } + + // Old keywords are converted to their synonyms + if (size === 'cover') { + size = 'farthest-corner'; + } else if (size === 'contain') { + size = 'clothest-side'; + } + } + + return func + '(' + shape + ' ' + size + ' at ' + position + ',' + values.join(',') + ')'; + } + return func + '(' + values.join(',') + ')'; + }; + + /** + * Converts a gradient to a W3C-valid one + * Does not support old webkit syntax (-webkit-gradient(linear...) and -webkit-gradient(radial...)) + * @param {string} gradient The CSS gradient + */ + var convertToW3CGradient = function(gradient) { + if (cache[gradient]) { + return cache[gradient]; + } + var parts = gradient.match(/^(\b|\B-[a-z]{1,10}-)((?:repeating-)?(?:linear|radial)-gradient)/); + // "", "-moz-", etc. + var prefix = parts && parts[1]; + // "linear-gradient", "radial-gradient", etc. + var func = parts && parts[2]; + + var values = gradient.replace(/^(?:\b|\B-[a-z]{1,10}-)(?:repeating-)?(?:linear|radial)-gradient\(|\)$/g, '').split(/\s*,\s*/); + + if (func.indexOf('linear') >= 0) { + return cache[gradient] = convertToW3CLinearGradient(prefix, func, values); + } else if (func.indexOf('radial') >= 0) { + return cache[gradient] = convertToW3CRadialGradient(prefix, func, values); + } + return cache[gradient] = func + '(' + values.join(',') + ')'; + }; + + return function () { + new Prism.plugins.Previewer('gradient', function(value) { + this.firstChild.style.backgroundImage = ''; + this.firstChild.style.backgroundImage = convertToW3CGradient(value); + return !!this.firstChild.style.backgroundImage; + }, '*', function () { + this._elt.innerHTML = '
        '; + }); + }; + }()), + tokens: { + 'gradient': { + pattern: /(?:\b|\B-[a-z]{1,10}-)(?:repeating-)?(?:linear|radial)-gradient\((?:(?:rgb|hsl)a?\(.+?\)|[^\)])+\)/gi, + inside: { + 'function': /[\w-]+(?=\()/, + 'punctuation': /[(),]/ + } + } + }, + languages: { + 'css': true, + 'less': true, + 'sass': [ + { + lang: 'sass', + before: 'punctuation', + inside: 'inside', + root: Prism.languages.sass && Prism.languages.sass['variable-line'] + }, + { + lang: 'sass', + before: 'punctuation', + inside: 'inside', + root: Prism.languages.sass && Prism.languages.sass['property-line'] + } + ], + 'scss': true, + 'stylus': [ + { + lang: 'stylus', + before: 'func', + inside: 'rest', + root: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside + }, + { + lang: 'stylus', + before: 'func', + inside: 'rest', + root: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside + } + ] + } + }, + 'angle': { + create: function () { + new Prism.plugins.Previewer('angle', function(value) { + var num = parseFloat(value); + var unit = value.match(/[a-z]+$/i); + var max, percentage; + if (!num || !unit) { + return false; + } + unit = unit[0]; + + switch(unit) { + case 'deg': + max = 360; + break; + case 'grad': + max = 400; + break; + case 'rad': + max = 2 * Math.PI; + break; + case 'turn': + max = 1; + } + + percentage = 100 * num/max; + percentage %= 100; + + this[(num < 0? 'set' : 'remove') + 'Attribute']('data-negative', ''); + this.querySelector('circle').style.strokeDasharray = Math.abs(percentage) + ',500'; + return true; + }, '*', function () { + this._elt.innerHTML = '' + + '' + + ''; + }); + }, + tokens: { + 'angle': /(?:\b|\B-|(?=\B\.))\d*\.?\d+(?:deg|g?rad|turn)\b/i + }, + languages: { + 'css': true, + 'less': true, + 'markup': { + lang: 'markup', + before: 'punctuation', + inside: 'inside', + root: Prism.languages.markup && Prism.languages.markup['tag'].inside['attr-value'] + }, + 'sass': [ + { + lang: 'sass', + inside: 'inside', + root: Prism.languages.sass && Prism.languages.sass['property-line'] + }, + { + lang: 'sass', + before: 'operator', + inside: 'inside', + root: Prism.languages.sass && Prism.languages.sass['variable-line'] + } + ], + 'scss': true, + 'stylus': [ + { + lang: 'stylus', + before: 'func', + inside: 'rest', + root: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside + }, + { + lang: 'stylus', + before: 'func', + inside: 'rest', + root: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside + } + ] + } + }, + 'color': { + create: function () { + new Prism.plugins.Previewer('color', function(value) { + this.style.backgroundColor = ''; + this.style.backgroundColor = value; + return !!this.style.backgroundColor; + }); + }, + tokens: { + 'color': { + pattern: /\B#(?:[0-9a-f]{3}){1,2}\b|\b(?:rgb|hsl)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:rgb|hsl)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B|\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGray|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGray|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGray|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gray|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGray|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGray|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGray|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i, + inside: { + 'function': /[\w-]+(?=\()/, + 'punctuation': /[(),]/ + } + } + }, + languages: { + 'css': true, + 'less': true, + 'markup': { + lang: 'markup', + before: 'punctuation', + inside: 'inside', + root: Prism.languages.markup && Prism.languages.markup['tag'].inside['attr-value'] + }, + 'sass': [ + { + lang: 'sass', + before: 'punctuation', + inside: 'inside', + root: Prism.languages.sass && Prism.languages.sass['variable-line'] + }, + { + lang: 'sass', + inside: 'inside', + root: Prism.languages.sass && Prism.languages.sass['property-line'] + } + ], + 'scss': true, + 'stylus': [ + { + lang: 'stylus', + before: 'hexcode', + inside: 'rest', + root: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside + }, + { + lang: 'stylus', + before: 'hexcode', + inside: 'rest', + root: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside + } + ] + } + }, + 'easing': { + create: function () { + new Prism.plugins.Previewer('easing', function (value) { + + value = { + 'linear': '0,0,1,1', + 'ease': '.25,.1,.25,1', + 'ease-in': '.42,0,1,1', + 'ease-out': '0,0,.58,1', + 'ease-in-out':'.42,0,.58,1' + }[value] || value; + + var p = value.match(/-?\d*\.?\d+/g); + + if(p.length === 4) { + p = p.map(function(p, i) { return (i % 2? 1 - p : p) * 100; }); + + this.querySelector('path').setAttribute('d', 'M0,100 C' + p[0] + ',' + p[1] + ', ' + p[2] + ',' + p[3] + ', 100,0'); + + var lines = this.querySelectorAll('line'); + lines[0].setAttribute('x2', p[0]); + lines[0].setAttribute('y2', p[1]); + lines[1].setAttribute('x2', p[2]); + lines[1].setAttribute('y2', p[3]); + + return true; + } + + return false; + }, '*', function () { + this._elt.innerHTML = '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + ''; + }); + }, + tokens: { + 'easing': { + pattern: /\bcubic-bezier\((?:-?\d*\.?\d+,\s*){3}-?\d*\.?\d+\)\B|\b(?:linear|ease(?:-in)?(?:-out)?)(?=\s|[;}]|$)/i, + inside: { + 'function': /[\w-]+(?=\()/, + 'punctuation': /[(),]/ + } + } + }, + languages: { + 'css': true, + 'less': true, + 'sass': [ + { + lang: 'sass', + inside: 'inside', + before: 'punctuation', + root: Prism.languages.sass && Prism.languages.sass['variable-line'] + }, + { + lang: 'sass', + inside: 'inside', + root: Prism.languages.sass && Prism.languages.sass['property-line'] + } + ], + 'scss': true, + 'stylus': [ + { + lang: 'stylus', + before: 'hexcode', + inside: 'rest', + root: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside + }, + { + lang: 'stylus', + before: 'hexcode', + inside: 'rest', + root: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside + } + ] + } + }, + + 'time': { + create: function () { + new Prism.plugins.Previewer('time', function(value) { + var num = parseFloat(value); + var unit = value.match(/[a-z]+$/i); + if (!num || !unit) { + return false; + } + unit = unit[0]; + this.querySelector('circle').style.animationDuration = 2 * num + unit; + return true; + }, '*', function () { + this._elt.innerHTML = '' + + '' + + ''; + }); + }, + tokens: { + 'time': /(?:\b|\B-|(?=\B\.))\d*\.?\d+m?s\b/i + }, + languages: { + 'css': true, + 'less': true, + 'markup': { + lang: 'markup', + before: 'punctuation', + inside: 'inside', + root: Prism.languages.markup && Prism.languages.markup['tag'].inside['attr-value'] + }, + 'sass': [ + { + lang: 'sass', + inside: 'inside', + root: Prism.languages.sass && Prism.languages.sass['property-line'] + }, + { + lang: 'sass', + before: 'operator', + inside: 'inside', + root: Prism.languages.sass && Prism.languages.sass['variable-line'] + } + ], + 'scss': true, + 'stylus': [ + { + lang: 'stylus', + before: 'hexcode', + inside: 'rest', + root: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside + }, + { + lang: 'stylus', + before: 'hexcode', + inside: 'rest', + root: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside + } + ] + } + } + }; + + /** + * Returns the absolute X, Y offsets for an element + * @param {HTMLElement} element + * @returns {{top: number, right: number, bottom: number, left: number, width: number, height: number}} + */ + var getOffset = function (element) { + var elementBounds = element.getBoundingClientRect(); + var left = elementBounds.left; + var top = elementBounds.top; + var documentBounds = document.documentElement.getBoundingClientRect(); + left -= documentBounds.left; + top -= documentBounds.top; + + return { + top: top, + right: innerWidth - left - elementBounds.width, + bottom: innerHeight - top - elementBounds.height, + left: left, + width: elementBounds.width, + height: elementBounds.height + }; + }; + + var tokenRegexp = /(?:^|\s)token(?=$|\s)/; + var activeRegexp = /(?:^|\s)active(?=$|\s)/g; + var flippedRegexp = /(?:^|\s)flipped(?=$|\s)/g; + + /** + * Previewer constructor + * @param {string} type Unique previewer type + * @param {function} updater Function that will be called on mouseover. + * @param {string[]|string=} supportedLanguages Aliases of the languages this previewer must be enabled for. Defaults to "*", all languages. + * @param {function=} initializer Function that will be called on initialization. + * @constructor + */ + var Previewer = function (type, updater, supportedLanguages, initializer) { + this._elt = null; + this._type = type; + this._clsRegexp = RegExp('(?:^|\\s)' + type + '(?=$|\\s)'); + this._token = null; + this.updater = updater; + this._mouseout = this.mouseout.bind(this); + this.initializer = initializer; + + var self = this; + + if (!supportedLanguages) { + supportedLanguages = ['*']; + } + if (Prism.util.type(supportedLanguages) !== 'Array') { + supportedLanguages = [supportedLanguages]; + } + supportedLanguages.forEach(function (lang) { + if (typeof lang !== 'string') { + lang = lang.lang; + } + if (!Previewer.byLanguages[lang]) { + Previewer.byLanguages[lang] = []; + } + if (Previewer.byLanguages[lang].indexOf(self) < 0) { + Previewer.byLanguages[lang].push(self); + } + }); + Previewer.byType[type] = this; + }; + + /** + * Creates the HTML element for the previewer. + */ + Previewer.prototype.init = function () { + if (this._elt) { + return; + } + this._elt = document.createElement('div'); + this._elt.className = 'prism-previewer prism-previewer-' + this._type; + document.body.appendChild(this._elt); + if(this.initializer) { + this.initializer(); + } + }; + + Previewer.prototype.isDisabled = function (token) { + do { + if (token.hasAttribute && token.hasAttribute('data-previewers')) { + var previewers = token.getAttribute('data-previewers'); + return (previewers || '').split(/\s+/).indexOf(this._type) === -1; + } + } while(token = token.parentNode); + return false; + }; + + /** + * Checks the class name of each hovered element + * @param token + */ + Previewer.prototype.check = function (token) { + if (tokenRegexp.test(token.className) && this.isDisabled(token)) { + return; + } + do { + if (tokenRegexp.test(token.className) && this._clsRegexp.test(token.className)) { + break; + } + } while(token = token.parentNode); + + if (token && token !== this._token) { + this._token = token; + this.show(); + } + }; + + /** + * Called on mouseout + */ + Previewer.prototype.mouseout = function() { + this._token.removeEventListener('mouseout', this._mouseout, false); + this._token = null; + this.hide(); + }; + + /** + * Shows the previewer positioned properly for the current token. + */ + Previewer.prototype.show = function () { + if (!this._elt) { + this.init(); + } + if (!this._token) { + return; + } + + if (this.updater.call(this._elt, this._token.textContent)) { + this._token.addEventListener('mouseout', this._mouseout, false); + + var offset = getOffset(this._token); + this._elt.className += ' active'; + + if (offset.top - this._elt.offsetHeight > 0) { + this._elt.className = this._elt.className.replace(flippedRegexp, ''); + this._elt.style.top = offset.top + 'px'; + this._elt.style.bottom = ''; + } else { + this._elt.className += ' flipped'; + this._elt.style.bottom = offset.bottom + 'px'; + this._elt.style.top = ''; + } + + this._elt.style.left = offset.left + Math.min(200, offset.width / 2) + 'px'; + } else { + this.hide(); + } + }; + + /** + * Hides the previewer. + */ + Previewer.prototype.hide = function () { + this._elt.className = this._elt.className.replace(activeRegexp, ''); + }; + + /** + * Map of all registered previewers by language + * @type {{}} + */ + Previewer.byLanguages = {}; + + /** + * Map of all registered previewers by type + * @type {{}} + */ + Previewer.byType = {}; + + /** + * Initializes the mouseover event on the code block. + * @param {HTMLElement} elt The code block (env.element) + * @param {string} lang The language (env.language) + */ + Previewer.initEvents = function (elt, lang) { + var previewers = []; + if (Previewer.byLanguages[lang]) { + previewers = previewers.concat(Previewer.byLanguages[lang]); + } + if (Previewer.byLanguages['*']) { + previewers = previewers.concat(Previewer.byLanguages['*']); + } + elt.addEventListener('mouseover', function (e) { + var target = e.target; + previewers.forEach(function (previewer) { + previewer.check(target); + }); + }, false); + }; + Prism.plugins.Previewer = Previewer; + + Prism.hooks.add('before-highlight', function (env) { + for (var previewer in previewers) { + var languages = previewers[previewer].languages; + if (env.language && languages[env.language] && !languages[env.language].initialized) { + var lang = languages[env.language]; + if (Prism.util.type(lang) !== 'Array') { + lang = [lang]; + } + lang.forEach(function (lang) { + var before, inside, root, skip; + if (lang === true) { + before = 'important'; + inside = env.language; + lang = env.language; + } else { + before = lang.before || 'important'; + inside = lang.inside || lang.lang; + root = lang.root || Prism.languages; + skip = lang.skip; + lang = env.language; + } + + if (!skip && Prism.languages[lang]) { + Prism.languages.insertBefore(inside, before, previewers[previewer].tokens, root); + env.grammar = Prism.languages[lang]; + + languages[env.language] = {initialized: true}; + } + }); + } + } + }); + + // Initialize the previewers only when needed + Prism.hooks.add('after-highlight', function (env) { + if(Previewer.byLanguages['*'] || Previewer.byLanguages[env.language]) { + Previewer.initEvents(env.element, env.language); + } + }); + + for (var previewer in previewers) { + previewers[previewer].create(); + } + +}()); diff --git a/docs/_style/prism-master/plugins/previewers/prism-previewers.min.js b/docs/_style/prism-master/plugins/previewers/prism-previewers.min.js new file mode 100644 index 00000000..477d4e52 --- /dev/null +++ b/docs/_style/prism-master/plugins/previewers/prism-previewers.min.js @@ -0,0 +1 @@ +!function(){if(("undefined"==typeof self||self.Prism)&&self.document&&Function.prototype.bind){var e={gradient:{create:function(){var e={},s=function(e,s,i){var t="180deg";return/^(?:-?\d*\.?\d+(?:deg|rad)|to\b|top|right|bottom|left)/.test(i[0])&&(t=i.shift(),t.indexOf("to ")<0&&(t.indexOf("top")>=0?t=t.indexOf("left")>=0?"to bottom right":t.indexOf("right")>=0?"to bottom left":"to bottom":t.indexOf("bottom")>=0?t=t.indexOf("left")>=0?"to top right":t.indexOf("right")>=0?"to top left":"to top":t.indexOf("left")>=0?t="to right":t.indexOf("right")>=0?t="to left":e&&(t.indexOf("deg")>=0?t=90-parseFloat(t)+"deg":t.indexOf("rad")>=0&&(t=Math.PI/2-parseFloat(t)+"rad")))),s+"("+t+","+i.join(",")+")"},i=function(e,s,i){if(i[0].indexOf("at")<0){var t="center",a="ellipse",r="farthest-corner";if(/\bcenter|top|right|bottom|left\b|^\d+/.test(i[0])&&(t=i.shift().replace(/\s*-?\d+(?:rad|deg)\s*/,"")),/\bcircle|ellipse|closest|farthest|contain|cover\b/.test(i[0])){var n=i.shift().split(/\s+/);!n[0]||"circle"!==n[0]&&"ellipse"!==n[0]||(a=n.shift()),n[0]&&(r=n.shift()),"cover"===r?r="farthest-corner":"contain"===r&&(r="clothest-side")}return s+"("+a+" "+r+" at "+t+","+i.join(",")+")"}return s+"("+i.join(",")+")"},t=function(t){if(e[t])return e[t];var a=t.match(/^(\b|\B-[a-z]{1,10}-)((?:repeating-)?(?:linear|radial)-gradient)/),r=a&&a[1],n=a&&a[2],l=t.replace(/^(?:\b|\B-[a-z]{1,10}-)(?:repeating-)?(?:linear|radial)-gradient\(|\)$/g,"").split(/\s*,\s*/);return e[t]=n.indexOf("linear")>=0?s(r,n,l):n.indexOf("radial")>=0?i(r,n,l):n+"("+l.join(",")+")"};return function(){new Prism.plugins.Previewer("gradient",function(e){return this.firstChild.style.backgroundImage="",this.firstChild.style.backgroundImage=t(e),!!this.firstChild.style.backgroundImage},"*",function(){this._elt.innerHTML="
        "})}}(),tokens:{gradient:{pattern:/(?:\b|\B-[a-z]{1,10}-)(?:repeating-)?(?:linear|radial)-gradient\((?:(?:rgb|hsl)a?\(.+?\)|[^\)])+\)/gi,inside:{"function":/[\w-]+(?=\()/,punctuation:/[(),]/}}},languages:{css:!0,less:!0,sass:[{lang:"sass",before:"punctuation",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["variable-line"]},{lang:"sass",before:"punctuation",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["property-line"]}],scss:!0,stylus:[{lang:"stylus",before:"func",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["property-declaration"].inside},{lang:"stylus",before:"func",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["variable-declaration"].inside}]}},angle:{create:function(){new Prism.plugins.Previewer("angle",function(e){var s,i,t=parseFloat(e),a=e.match(/[a-z]+$/i);if(!t||!a)return!1;switch(a=a[0]){case"deg":s=360;break;case"grad":s=400;break;case"rad":s=2*Math.PI;break;case"turn":s=1}return i=100*t/s,i%=100,this[(0>t?"set":"remove")+"Attribute"]("data-negative",""),this.querySelector("circle").style.strokeDasharray=Math.abs(i)+",500",!0},"*",function(){this._elt.innerHTML=''})},tokens:{angle:/(?:\b|\B-|(?=\B\.))\d*\.?\d+(?:deg|g?rad|turn)\b/i},languages:{css:!0,less:!0,markup:{lang:"markup",before:"punctuation",inside:"inside",root:Prism.languages.markup&&Prism.languages.markup.tag.inside["attr-value"]},sass:[{lang:"sass",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["property-line"]},{lang:"sass",before:"operator",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["variable-line"]}],scss:!0,stylus:[{lang:"stylus",before:"func",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["property-declaration"].inside},{lang:"stylus",before:"func",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["variable-declaration"].inside}]}},color:{create:function(){new Prism.plugins.Previewer("color",function(e){return this.style.backgroundColor="",this.style.backgroundColor=e,!!this.style.backgroundColor})},tokens:{color:{pattern:/\B#(?:[0-9a-f]{3}){1,2}\b|\b(?:rgb|hsl)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:rgb|hsl)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B|\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGray|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGray|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGray|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gray|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGray|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGray|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGray|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,inside:{"function":/[\w-]+(?=\()/,punctuation:/[(),]/}}},languages:{css:!0,less:!0,markup:{lang:"markup",before:"punctuation",inside:"inside",root:Prism.languages.markup&&Prism.languages.markup.tag.inside["attr-value"]},sass:[{lang:"sass",before:"punctuation",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["variable-line"]},{lang:"sass",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["property-line"]}],scss:!0,stylus:[{lang:"stylus",before:"hexcode",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["property-declaration"].inside},{lang:"stylus",before:"hexcode",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["variable-declaration"].inside}]}},easing:{create:function(){new Prism.plugins.Previewer("easing",function(e){e={linear:"0,0,1,1",ease:".25,.1,.25,1","ease-in":".42,0,1,1","ease-out":"0,0,.58,1","ease-in-out":".42,0,.58,1"}[e]||e;var s=e.match(/-?\d*\.?\d+/g);if(4===s.length){s=s.map(function(e,s){return 100*(s%2?1-e:e)}),this.querySelector("path").setAttribute("d","M0,100 C"+s[0]+","+s[1]+", "+s[2]+","+s[3]+", 100,0");var i=this.querySelectorAll("line");return i[0].setAttribute("x2",s[0]),i[0].setAttribute("y2",s[1]),i[1].setAttribute("x2",s[2]),i[1].setAttribute("y2",s[3]),!0}return!1},"*",function(){this._elt.innerHTML=''})},tokens:{easing:{pattern:/\bcubic-bezier\((?:-?\d*\.?\d+,\s*){3}-?\d*\.?\d+\)\B|\b(?:linear|ease(?:-in)?(?:-out)?)(?=\s|[;}]|$)/i,inside:{"function":/[\w-]+(?=\()/,punctuation:/[(),]/}}},languages:{css:!0,less:!0,sass:[{lang:"sass",inside:"inside",before:"punctuation",root:Prism.languages.sass&&Prism.languages.sass["variable-line"]},{lang:"sass",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["property-line"]}],scss:!0,stylus:[{lang:"stylus",before:"hexcode",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["property-declaration"].inside},{lang:"stylus",before:"hexcode",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["variable-declaration"].inside}]}},time:{create:function(){new Prism.plugins.Previewer("time",function(e){var s=parseFloat(e),i=e.match(/[a-z]+$/i);return s&&i?(i=i[0],this.querySelector("circle").style.animationDuration=2*s+i,!0):!1},"*",function(){this._elt.innerHTML=''})},tokens:{time:/(?:\b|\B-|(?=\B\.))\d*\.?\d+m?s\b/i},languages:{css:!0,less:!0,markup:{lang:"markup",before:"punctuation",inside:"inside",root:Prism.languages.markup&&Prism.languages.markup.tag.inside["attr-value"]},sass:[{lang:"sass",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["property-line"]},{lang:"sass",before:"operator",inside:"inside",root:Prism.languages.sass&&Prism.languages.sass["variable-line"]}],scss:!0,stylus:[{lang:"stylus",before:"hexcode",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["property-declaration"].inside},{lang:"stylus",before:"hexcode",inside:"rest",root:Prism.languages.stylus&&Prism.languages.stylus["variable-declaration"].inside}]}}},s=function(e){var s=e.getBoundingClientRect(),i=s.left,t=s.top,a=document.documentElement.getBoundingClientRect();return i-=a.left,t-=a.top,{top:t,right:innerWidth-i-s.width,bottom:innerHeight-t-s.height,left:i,width:s.width,height:s.height}},i=/(?:^|\s)token(?=$|\s)/,t=/(?:^|\s)active(?=$|\s)/g,a=/(?:^|\s)flipped(?=$|\s)/g,r=function(e,s,i,t){this._elt=null,this._type=e,this._clsRegexp=RegExp("(?:^|\\s)"+e+"(?=$|\\s)"),this._token=null,this.updater=s,this._mouseout=this.mouseout.bind(this),this.initializer=t;var a=this;i||(i=["*"]),"Array"!==Prism.util.type(i)&&(i=[i]),i.forEach(function(e){"string"!=typeof e&&(e=e.lang),r.byLanguages[e]||(r.byLanguages[e]=[]),r.byLanguages[e].indexOf(a)<0&&r.byLanguages[e].push(a)}),r.byType[e]=this};r.prototype.init=function(){this._elt||(this._elt=document.createElement("div"),this._elt.className="prism-previewer prism-previewer-"+this._type,document.body.appendChild(this._elt),this.initializer&&this.initializer())},r.prototype.isDisabled=function(e){do if(e.hasAttribute&&e.hasAttribute("data-previewers")){var s=e.getAttribute("data-previewers");return-1===(s||"").split(/\s+/).indexOf(this._type)}while(e=e.parentNode);return!1},r.prototype.check=function(e){if(!i.test(e.className)||!this.isDisabled(e)){do if(i.test(e.className)&&this._clsRegexp.test(e.className))break;while(e=e.parentNode);e&&e!==this._token&&(this._token=e,this.show())}},r.prototype.mouseout=function(){this._token.removeEventListener("mouseout",this._mouseout,!1),this._token=null,this.hide()},r.prototype.show=function(){if(this._elt||this.init(),this._token)if(this.updater.call(this._elt,this._token.textContent)){this._token.addEventListener("mouseout",this._mouseout,!1);var e=s(this._token);this._elt.className+=" active",e.top-this._elt.offsetHeight>0?(this._elt.className=this._elt.className.replace(a,""),this._elt.style.top=e.top+"px",this._elt.style.bottom=""):(this._elt.className+=" flipped",this._elt.style.bottom=e.bottom+"px",this._elt.style.top=""),this._elt.style.left=e.left+Math.min(200,e.width/2)+"px"}else this.hide()},r.prototype.hide=function(){this._elt.className=this._elt.className.replace(t,"")},r.byLanguages={},r.byType={},r.initEvents=function(e,s){var i=[];r.byLanguages[s]&&(i=i.concat(r.byLanguages[s])),r.byLanguages["*"]&&(i=i.concat(r.byLanguages["*"])),e.addEventListener("mouseover",function(e){var s=e.target;i.forEach(function(e){e.check(s)})},!1)},Prism.plugins.Previewer=r,Prism.hooks.add("before-highlight",function(s){for(var i in e){var t=e[i].languages;if(s.language&&t[s.language]&&!t[s.language].initialized){var a=t[s.language];"Array"!==Prism.util.type(a)&&(a=[a]),a.forEach(function(a){var r,n,l,o;a===!0?(r="important",n=s.language,a=s.language):(r=a.before||"important",n=a.inside||a.lang,l=a.root||Prism.languages,o=a.skip,a=s.language),!o&&Prism.languages[a]&&(Prism.languages.insertBefore(n,r,e[i].tokens,l),s.grammar=Prism.languages[a],t[s.language]={initialized:!0})})}}}),Prism.hooks.add("after-highlight",function(e){(r.byLanguages["*"]||r.byLanguages[e.language])&&r.initEvents(e.element,e.language)});for(var n in e)e[n].create()}}(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/remove-initial-line-feed/index.html b/docs/_style/prism-master/plugins/remove-initial-line-feed/index.html new file mode 100644 index 00000000..8eb942fa --- /dev/null +++ b/docs/_style/prism-master/plugins/remove-initial-line-feed/index.html @@ -0,0 +1,59 @@ + + + + + + + Remove initial line feed ▲ Prism plugins + + + + + + + + + + +
        +
        + +

        Remove initial line feed

        +

        Removes the initial line feed in code blocks.

        +
        + +
        +

        How to use (DEPRECATED)

        + +

        This plugin will be removed in the future. Please use the general purpose Normalize Whitespace plugin instead.

        +

        Obviously, this is supposed to work only for code blocks (<pre><code>) and not for inline code.

        +

        With this plugin included, any initial line feed will be removed by default.

        +

        To bypass this behaviour, you may add the class keep-initial-line-feed to your desired <pre>.

        +
        + +
        +

        Examples

        + +

        Without adding the class

        +
        
        +<div></div>
        +
        + +

        With the class added

        +
        
        +<div></div>
        +
        + +
        + +
        + + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.js b/docs/_style/prism-master/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.js new file mode 100644 index 00000000..f62a8bfe --- /dev/null +++ b/docs/_style/prism-master/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.js @@ -0,0 +1,21 @@ +(function() { + +if (typeof self === 'undefined' || !self.Prism || !self.document) { + return; +} + +Prism.hooks.add('before-sanity-check', function (env) { + if (env.code) { + var pre = env.element.parentNode; + var clsReg = /\s*\bkeep-initial-line-feed\b\s*/; + if ( + pre && pre.nodeName.toLowerCase() === 'pre' && + // Apply only if nor the
         or the  have the class
        +			(!clsReg.test(pre.className) && !clsReg.test(env.element.className))
        +		) {
        +			env.code = env.code.replace(/^(?:\r?\n|\r)/, '');
        +		}
        +	}
        +});
        +
        +}());
        \ No newline at end of file
        diff --git a/docs/_style/prism-master/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.min.js b/docs/_style/prism-master/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.min.js
        new file mode 100644
        index 00000000..e0016a49
        --- /dev/null
        +++ b/docs/_style/prism-master/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.min.js
        @@ -0,0 +1 @@
        +!function(){"undefined"!=typeof self&&self.Prism&&self.document&&Prism.hooks.add("before-sanity-check",function(e){if(e.code){var s=e.element.parentNode,n=/\s*\bkeep-initial-line-feed\b\s*/;!s||"pre"!==s.nodeName.toLowerCase()||n.test(s.className)||n.test(e.element.className)||(e.code=e.code.replace(/^(?:\r?\n|\r)/,""))}})}();
        \ No newline at end of file
        diff --git a/docs/_style/prism-master/plugins/show-invisibles/index.html b/docs/_style/prism-master/plugins/show-invisibles/index.html
        new file mode 100644
        index 00000000..cb0ad436
        --- /dev/null
        +++ b/docs/_style/prism-master/plugins/show-invisibles/index.html
        @@ -0,0 +1,46 @@
        +
        +
        +
        +
        +
        +
        +Show Invisibles ▲ Prism plugins
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        + +

        Show Invisibles

        +

        Show hidden characters such as tabs and line breaks.

        +
        + +
        +

        Examples

        + +
        
        +	
        +	
        
        +	
        +	
        
        +
        + +
        + + + + + + + + + + diff --git a/docs/_style/prism-master/plugins/show-invisibles/prism-show-invisibles.css b/docs/_style/prism-master/plugins/show-invisibles/prism-show-invisibles.css new file mode 100644 index 00000000..c57be588 --- /dev/null +++ b/docs/_style/prism-master/plugins/show-invisibles/prism-show-invisibles.css @@ -0,0 +1,34 @@ +.token.tab:not(:empty), +.token.cr, +.token.lf, +.token.space { + position: relative; +} + +.token.tab:not(:empty):before, +.token.cr:before, +.token.lf:before, +.token.space:before { + color: inherit; + opacity: 0.4; + position: absolute; +} + +.token.tab:not(:empty):before { + content: '\21E5'; +} + +.token.cr:before { + content: '\240D'; +} + +.token.crlf:before { + content: '\240D\240A'; +} +.token.lf:before { + content: '\240A'; +} + +.token.space:before { + content: '\00B7'; +} diff --git a/docs/_style/prism-master/plugins/show-invisibles/prism-show-invisibles.js b/docs/_style/prism-master/plugins/show-invisibles/prism-show-invisibles.js new file mode 100644 index 00000000..f3d120a9 --- /dev/null +++ b/docs/_style/prism-master/plugins/show-invisibles/prism-show-invisibles.js @@ -0,0 +1,21 @@ +(function(){ + +if ( + typeof self !== 'undefined' && !self.Prism || + typeof global !== 'undefined' && !global.Prism +) { + return; +} + +Prism.hooks.add('before-highlight', function(env) { + var tokens = env.grammar; + + if (!tokens) return; + + tokens.tab = /\t/g; + tokens.crlf = /\r\n/g; + tokens.lf = /\n/g; + tokens.cr = /\r/g; + tokens.space = / /g; +}); +})(); diff --git a/docs/_style/prism-master/plugins/show-invisibles/prism-show-invisibles.min.js b/docs/_style/prism-master/plugins/show-invisibles/prism-show-invisibles.min.js new file mode 100644 index 00000000..9df7258c --- /dev/null +++ b/docs/_style/prism-master/plugins/show-invisibles/prism-show-invisibles.min.js @@ -0,0 +1 @@ +!function(){"undefined"!=typeof self&&!self.Prism||"undefined"!=typeof global&&!global.Prism||Prism.hooks.add("before-highlight",function(e){var f=e.grammar;f&&(f.tab=/\t/g,f.crlf=/\r\n/g,f.lf=/\n/g,f.cr=/\r/g,f.space=/ /g)})}(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/show-language/index.html b/docs/_style/prism-master/plugins/show-language/index.html new file mode 100644 index 00000000..e79b1ccf --- /dev/null +++ b/docs/_style/prism-master/plugins/show-language/index.html @@ -0,0 +1,54 @@ + + + + + + +Show Language ▲ Prism plugins + + + + + + + + + + + +
        +
        + +

        Show Language

        +

        Display the highlighted language in code blocks (inline code does not show the label).

        +
        + +
        +

        Examples

        + +

        JavaScript

        +
        
        +
        +	

        CSS

        +
        
        +
        +	

        HTML (Markup)

        +
        
        +
        +	

        SVG

        +

        The data-language attribute can be used to display a specific label whether it has been defined as a language or not.

        +
        
        +
        + +
        + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/show-language/prism-show-language.js b/docs/_style/prism-master/plugins/show-language/prism-show-language.js new file mode 100644 index 00000000..38675bb6 --- /dev/null +++ b/docs/_style/prism-master/plugins/show-language/prism-show-language.js @@ -0,0 +1,31 @@ +(function(){ + +if (typeof self === 'undefined' || !self.Prism || !self.document) { + return; +} + +if (!Prism.plugins.toolbar) { + console.warn('Show Languages plugin loaded before Toolbar plugin.'); + + return; +} + +// The languages map is built automatically with gulp +var Languages = /*languages_placeholder[*/{"html":"HTML","xml":"XML","svg":"SVG","mathml":"MathML","css":"CSS","clike":"C-like","javascript":"JavaScript","abap":"ABAP","actionscript":"ActionScript","apacheconf":"Apache Configuration","apl":"APL","applescript":"AppleScript","arff":"ARFF","asciidoc":"AsciiDoc","asm6502":"6502 Assembly","aspnet":"ASP.NET (C#)","autohotkey":"AutoHotkey","autoit":"AutoIt","shell":"Shell","basic":"BASIC","csharp":"C#","cpp":"C++","cil":"CIL","coffeescript":"CoffeeScript","csp":"Content-Security-Policy","css-extras":"CSS Extras","django":"Django/Jinja2","erb":"ERB","fsharp":"F#","gcode":"G-code","gedcom":"GEDCOM","glsl":"GLSL","gml":"GameMaker Language","graphql":"GraphQL","http":"HTTP","hpkp":"HTTP Public-Key-Pins","hsts":"HTTP Strict-Transport-Security","ichigojam":"IchigoJam","inform7":"Inform 7","javastacktrace":"Java stack trace","json":"JSON","jsonp":"JSONP","latex":"LaTeX","livescript":"LiveScript","lolcode":"LOLCODE","markup-templating":"Markup templating","matlab":"MATLAB","mel":"MEL","n4js":"N4JS","nasm":"NASM","nginx":"nginx","nsis":"NSIS","objectivec":"Objective-C","ocaml":"OCaml","opencl":"OpenCL","parigp":"PARI/GP","objectpascal":"Object Pascal","php":"PHP","php-extras":"PHP Extras","plsql":"PL/SQL","powershell":"PowerShell","properties":".properties","protobuf":"Protocol Buffers","q":"Q (kdb+ database)","jsx":"React JSX","tsx":"React TSX","renpy":"Ren'py","rest":"reST (reStructuredText)","sas":"SAS","sass":"Sass (Sass)","scss":"Sass (Scss)","sql":"SQL","soy":"Soy (Closure Template)","tap":"TAP","toml":"TOML","tt2":"Template Toolkit 2","typescript":"TypeScript","vbnet":"VB.Net","vhdl":"VHDL","vim":"vim","visual-basic":"Visual Basic","wasm":"WebAssembly","wiki":"Wiki markup","xeoracube":"XeoraCube","xojo":"Xojo (REALbasic)","xquery":"XQuery","yaml":"YAML"}/*]*/; +Prism.plugins.toolbar.registerButton('show-language', function(env) { + var pre = env.element.parentNode; + if (!pre || !/pre/i.test(pre.nodeName)) { + return; + } + var language = pre.getAttribute('data-language') || Languages[env.language] || (env.language && (env.language.substring(0, 1).toUpperCase() + env.language.substring(1))); + + if(!language) { + return; + } + var element = document.createElement('span'); + element.textContent = language; + + return element; +}); + +})(); diff --git a/docs/_style/prism-master/plugins/show-language/prism-show-language.min.js b/docs/_style/prism-master/plugins/show-language/prism-show-language.min.js new file mode 100644 index 00000000..7f4dd60f --- /dev/null +++ b/docs/_style/prism-master/plugins/show-language/prism-show-language.min.js @@ -0,0 +1 @@ +!function(){if("undefined"!=typeof self&&self.Prism&&self.document){if(!Prism.plugins.toolbar)return console.warn("Show Languages plugin loaded before Toolbar plugin."),void 0;var e={html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",css:"CSS",clike:"C-like",javascript:"JavaScript",abap:"ABAP",actionscript:"ActionScript",apacheconf:"Apache Configuration",apl:"APL",applescript:"AppleScript",arff:"ARFF",asciidoc:"AsciiDoc",asm6502:"6502 Assembly",aspnet:"ASP.NET (C#)",autohotkey:"AutoHotkey",autoit:"AutoIt",shell:"Shell",basic:"BASIC",csharp:"C#",cpp:"C++",cil:"CIL",coffeescript:"CoffeeScript",csp:"Content-Security-Policy","css-extras":"CSS Extras",django:"Django/Jinja2",erb:"ERB",fsharp:"F#",gcode:"G-code",gedcom:"GEDCOM",glsl:"GLSL",gml:"GameMaker Language",graphql:"GraphQL",http:"HTTP",hpkp:"HTTP Public-Key-Pins",hsts:"HTTP Strict-Transport-Security",ichigojam:"IchigoJam",inform7:"Inform 7",javastacktrace:"Java stack trace",json:"JSON",jsonp:"JSONP",latex:"LaTeX",livescript:"LiveScript",lolcode:"LOLCODE","markup-templating":"Markup templating",matlab:"MATLAB",mel:"MEL",n4js:"N4JS",nasm:"NASM",nginx:"nginx",nsis:"NSIS",objectivec:"Objective-C",ocaml:"OCaml",opencl:"OpenCL",parigp:"PARI/GP",objectpascal:"Object Pascal",php:"PHP","php-extras":"PHP Extras",plsql:"PL/SQL",powershell:"PowerShell",properties:".properties",protobuf:"Protocol Buffers",q:"Q (kdb+ database)",jsx:"React JSX",tsx:"React TSX",renpy:"Ren'py",rest:"reST (reStructuredText)",sas:"SAS",sass:"Sass (Sass)",scss:"Sass (Scss)",sql:"SQL",soy:"Soy (Closure Template)",tap:"TAP",toml:"TOML",tt2:"Template Toolkit 2",typescript:"TypeScript",vbnet:"VB.Net",vhdl:"VHDL",vim:"vim","visual-basic":"Visual Basic",wasm:"WebAssembly",wiki:"Wiki markup",xeoracube:"XeoraCube",xojo:"Xojo (REALbasic)",xquery:"XQuery",yaml:"YAML"};Prism.plugins.toolbar.registerButton("show-language",function(a){var t=a.element.parentNode;if(t&&/pre/i.test(t.nodeName)){var s=t.getAttribute("data-language")||e[a.language]||a.language&&a.language.substring(0,1).toUpperCase()+a.language.substring(1);if(s){var r=document.createElement("span");return r.textContent=s,r}}})}}(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/toolbar/index.html b/docs/_style/prism-master/plugins/toolbar/index.html new file mode 100644 index 00000000..5547c5de --- /dev/null +++ b/docs/_style/prism-master/plugins/toolbar/index.html @@ -0,0 +1,134 @@ + + + + + + + Toolbar ▲ Prism plugins + + + + + + + + + + + +
        +
        + +

        Toolbar

        +

        Attach a toolbar for plugins to easily register buttons on the top of a code block.

        +
        + +
        +

        How to use

        +

        The Toolbar plugin allows for several methods to register your button, using the Prism.plugins.toolbar.registerButton function.

        + +

        The simplest method is through the HTML API. Add a data-label attribute to the pre element, and the Toolbar + plugin will read the value of that attribute and append a label to the code snippet.

        + +
        <pre data-src="plugins/toolbar/prism-toolbar.js" data-label="Hello World!"></pre>
        + +

        If you want to provide arbitrary HTML to the label, create a template element with the HTML you want in the label, and provide the + template element's id to data-label. The Toolbar plugin will use the template's content for the button. + You can also use to declare your event handlers inline:

        + +
        <pre data-src="plugins/toolbar/prism-toolbar.js" data-label="my-label-button"></pre>
        + +
        <template id="my-label-button"><button onclick="console.log('This is an inline-handler');">My button</button></template>
        + +

        For more flexibility, the Toolbar exposes a JavaScript function that can be used to register new buttons or labels to the Toolbar, + Prism.plugins.toolbar.registerButton.

        + +

        The function accepts a key for the button and an object with a text property string and an optional + onClick function or url string. The onClick function will be called when the button is clicked, while the + url property will be set to the anchor tag's href.

        + +
        Prism.plugins.toolbar.registerButton('hello-world', {
        +	text: 'Hello World!', // required
        +	onClick: function (env) { // optional
        +		alert('This code snippet is written in ' + env.language + '.');
        +	}
        +});
        + +

        See how the above code registers the Hello World! button? You can use this in your plugins to register your own buttons with the toolbar.

        + +

        If you need more control, you can provide a function to registerButton that returns either a span, a, or + button element.

        + +
        Prism.plugins.toolbar.registerButton('select-code', function() {
        +	var button = document.createElement('button');
        +	button.innerHTML = 'Select Code';
        +
        +	button.addEventListener('click', function () {
        +		// Source: http://stackoverflow.com/a/11128179/2757940
        +		if (document.body.createTextRange) { // ms
        +			var range = document.body.createTextRange();
        +			range.moveToElementText(env.element);
        +			range.select();
        +		} else if (window.getSelection) { // moz, opera, webkit
        +			var selection = window.getSelection();
        +			var range = document.createRange();
        +			range.selectNodeContents(env.element);
        +			selection.removeAllRanges();
        +			selection.addRange(range);
        +		}
        +	});
        +
        +	return button;
        +});
        + +

        The above function creates the Select Code button you see, and when you click it, the code gets highlighted.

        + +

        By default, the buttons will be added to the code snippet in the order they were registered. If more control over + the order is needed, an HTML attribute can be added to the body tag with a comma-separated string indicating the + order.

        + +
        <body data-toolbar-order="select-code,hello-world,label">
        +
        + +
        + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/toolbar/prism-toolbar.css b/docs/_style/prism-master/plugins/toolbar/prism-toolbar.css new file mode 100644 index 00000000..2b234e19 --- /dev/null +++ b/docs/_style/prism-master/plugins/toolbar/prism-toolbar.css @@ -0,0 +1,58 @@ +div.code-toolbar { + position: relative; +} + +div.code-toolbar > .toolbar { + position: absolute; + top: .3em; + right: .2em; + transition: opacity 0.3s ease-in-out; + opacity: 0; +} + +div.code-toolbar:hover > .toolbar { + opacity: 1; +} + +div.code-toolbar > .toolbar .toolbar-item { + display: inline-block; +} + +div.code-toolbar > .toolbar a { + cursor: pointer; +} + +div.code-toolbar > .toolbar button { + background: none; + border: 0; + color: inherit; + font: inherit; + line-height: normal; + overflow: visible; + padding: 0; + -webkit-user-select: none; /* for button */ + -moz-user-select: none; + -ms-user-select: none; +} + +div.code-toolbar > .toolbar a, +div.code-toolbar > .toolbar button, +div.code-toolbar > .toolbar span { + color: #bbb; + font-size: .8em; + padding: 0 .5em; + background: #f5f2f0; + background: rgba(224, 224, 224, 0.2); + box-shadow: 0 2px 0 0 rgba(0,0,0,0.2); + border-radius: .5em; +} + +div.code-toolbar > .toolbar a:hover, +div.code-toolbar > .toolbar a:focus, +div.code-toolbar > .toolbar button:hover, +div.code-toolbar > .toolbar button:focus, +div.code-toolbar > .toolbar span:hover, +div.code-toolbar > .toolbar span:focus { + color: inherit; + text-decoration: none; +} diff --git a/docs/_style/prism-master/plugins/toolbar/prism-toolbar.js b/docs/_style/prism-master/plugins/toolbar/prism-toolbar.js new file mode 100644 index 00000000..93294514 --- /dev/null +++ b/docs/_style/prism-master/plugins/toolbar/prism-toolbar.js @@ -0,0 +1,137 @@ +(function(){ + if (typeof self === 'undefined' || !self.Prism || !self.document) { + return; + } + + var callbacks = []; + var map = {}; + var noop = function() {}; + + Prism.plugins.toolbar = {}; + + /** + * Register a button callback with the toolbar. + * + * @param {string} key + * @param {Object|Function} opts + */ + var registerButton = Prism.plugins.toolbar.registerButton = function (key, opts) { + var callback; + + if (typeof opts === 'function') { + callback = opts; + } else { + callback = function (env) { + var element; + + if (typeof opts.onClick === 'function') { + element = document.createElement('button'); + element.type = 'button'; + element.addEventListener('click', function () { + opts.onClick.call(this, env); + }); + } else if (typeof opts.url === 'string') { + element = document.createElement('a'); + element.href = opts.url; + } else { + element = document.createElement('span'); + } + + element.textContent = opts.text; + + return element; + }; + } + + callbacks.push(map[key] = callback); + }; + + /** + * Post-highlight Prism hook callback. + * + * @param env + */ + var hook = Prism.plugins.toolbar.hook = function (env) { + // Check if inline or actual code block (credit to line-numbers plugin) + var pre = env.element.parentNode; + if (!pre || !/pre/i.test(pre.nodeName)) { + return; + } + + // Autoloader rehighlights, so only do this once. + if (pre.parentNode.classList.contains('code-toolbar')) { + return; + } + + // Create wrapper for
         to prevent scrolling toolbar with content
        +		var wrapper = document.createElement("div");
        +		wrapper.classList.add("code-toolbar");
        +		pre.parentNode.insertBefore(wrapper, pre);
        +		wrapper.appendChild(pre);
        +
        +		// Setup the toolbar
        +		var toolbar = document.createElement('div');
        +		toolbar.classList.add('toolbar');
        +
        +		if (document.body.hasAttribute('data-toolbar-order')) {
        +			callbacks = document.body.getAttribute('data-toolbar-order').split(',').map(function(key) {
        +				return map[key] || noop;
        +			});
        +		}
        +
        +		callbacks.forEach(function(callback) {
        +			var element = callback(env);
        +
        +			if (!element) {
        +				return;
        +			}
        +
        +			var item = document.createElement('div');
        +			item.classList.add('toolbar-item');
        +
        +			item.appendChild(element);
        +			toolbar.appendChild(item);
        +		});
        +
        +		// Add our toolbar to the currently created wrapper of 
         tag
        +		wrapper.appendChild(toolbar);
        +	};
        +
        +	registerButton('label', function(env) {
        +		var pre = env.element.parentNode;
        +		if (!pre || !/pre/i.test(pre.nodeName)) {
        +			return;
        +		}
        +
        +		if (!pre.hasAttribute('data-label')) {
        +			return;
        +		}
        +
        +		var element, template;
        +		var text = pre.getAttribute('data-label');
        +		try {
        +			// Any normal text will blow up this selector.
        +			template = document.querySelector('template#' + text);
        +		} catch (e) {}
        +
        +		if (template) {
        +			element = template.content;
        +		} else {
        +			if (pre.hasAttribute('data-url')) {
        +				element = document.createElement('a');
        +				element.href = pre.getAttribute('data-url');
        +			} else {
        +				element = document.createElement('span');
        +			}
        +
        +			element.textContent = text;
        +		}
        +
        +		return element;
        +	});
        +
        +	/**
        +	 * Register the toolbar with Prism.
        +	 */
        +	Prism.hooks.add('complete', hook);
        +})();
        diff --git a/docs/_style/prism-master/plugins/toolbar/prism-toolbar.min.js b/docs/_style/prism-master/plugins/toolbar/prism-toolbar.min.js
        new file mode 100644
        index 00000000..17cee962
        --- /dev/null
        +++ b/docs/_style/prism-master/plugins/toolbar/prism-toolbar.min.js
        @@ -0,0 +1 @@
        +!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var t=[],e={},n=function(){};Prism.plugins.toolbar={};var a=Prism.plugins.toolbar.registerButton=function(n,a){var o;o="function"==typeof a?a:function(t){var e;return"function"==typeof a.onClick?(e=document.createElement("button"),e.type="button",e.addEventListener("click",function(){a.onClick.call(this,t)})):"string"==typeof a.url?(e=document.createElement("a"),e.href=a.url):e=document.createElement("span"),e.textContent=a.text,e},t.push(e[n]=o)},o=Prism.plugins.toolbar.hook=function(a){var o=a.element.parentNode;if(o&&/pre/i.test(o.nodeName)&&!o.parentNode.classList.contains("code-toolbar")){var r=document.createElement("div");r.classList.add("code-toolbar"),o.parentNode.insertBefore(r,o),r.appendChild(o);var i=document.createElement("div");i.classList.add("toolbar"),document.body.hasAttribute("data-toolbar-order")&&(t=document.body.getAttribute("data-toolbar-order").split(",").map(function(t){return e[t]||n})),t.forEach(function(t){var e=t(a);if(e){var n=document.createElement("div");n.classList.add("toolbar-item"),n.appendChild(e),i.appendChild(n)}}),r.appendChild(i)}};a("label",function(t){var e=t.element.parentNode;if(e&&/pre/i.test(e.nodeName)&&e.hasAttribute("data-label")){var n,a,o=e.getAttribute("data-label");try{a=document.querySelector("template#"+o)}catch(r){}return a?n=a.content:(e.hasAttribute("data-url")?(n=document.createElement("a"),n.href=e.getAttribute("data-url")):n=document.createElement("span"),n.textContent=o),n}}),Prism.hooks.add("complete",o)}}();
        \ No newline at end of file
        diff --git a/docs/_style/prism-master/plugins/unescaped-markup/index.html b/docs/_style/prism-master/plugins/unescaped-markup/index.html
        new file mode 100644
        index 00000000..442ef2aa
        --- /dev/null
        +++ b/docs/_style/prism-master/plugins/unescaped-markup/index.html
        @@ -0,0 +1,195 @@
        +
        +
        +
        +
        +	
        +	
        +	Unescaped markup ▲ Prism plugins
        +	
        +	
        +	
        +	
        +
        +	
        +
        +	
        +	
        +
        +
        +
        +
        +
        + +

        Unescaped markup

        +

        Write markup without having to escape anything.

        +
        + +
        +

        How to use

        +

        This plugin provides several methods of achieving the same thing:

        + +
          +
        • Instead of using <pre><code> elements, use <script type="text/plain"> +
          <script type="text/plain" class="language-markup">
          +<p>Example</p>
          +</script>
          +
        • +
        • Use a HTML-comment to escape your code +
          <pre class="language-markup"><code><!--
          +<p>Example</p>
          +--></code></pre>
        • +
        +
        + +
        +

        Examples

        + +

        View source to see that the following didn’t need escaping (except for </script>, that does):

        + + + +

        The next example uses the HTML-comment method:

        + +
        +
        + +
        +

        FAQ

        + +

        Why not use the HTML <template> tag?

        + +

        Because it is a PITA to get its textContent and needs to be pointlessly cloned. + Feel free to implement it yourself and send a pull request though, if you are so inclined.

        + +

        Can I use this inline?

        + +

        Not out of the box, because I figured it’s more of a hassle to type <script type="text/plain"> than escape the 1-2 < characters you need to escape in inline code. + Also inline code is not as frequently copy-pasted, which was the major source of annoyance that got me to write this plugin.

        +
        + +
        + + + + + + + + + diff --git a/docs/_style/prism-master/plugins/unescaped-markup/prism-unescaped-markup.css b/docs/_style/prism-master/plugins/unescaped-markup/prism-unescaped-markup.css new file mode 100644 index 00000000..3ba2a1e6 --- /dev/null +++ b/docs/_style/prism-master/plugins/unescaped-markup/prism-unescaped-markup.css @@ -0,0 +1,10 @@ +/* Fallback, in case JS does not run, to ensure the code is at least visible */ +[class*='lang-'] script[type='text/plain'], +[class*='language-'] script[type='text/plain'], +script[type='text/plain'][class*='lang-'], +script[type='text/plain'][class*='language-'] { + display: block; + font: 100% Consolas, Monaco, monospace; + white-space: pre; + overflow: auto; +} diff --git a/docs/_style/prism-master/plugins/unescaped-markup/prism-unescaped-markup.js b/docs/_style/prism-master/plugins/unescaped-markup/prism-unescaped-markup.js new file mode 100644 index 00000000..8684ebac --- /dev/null +++ b/docs/_style/prism-master/plugins/unescaped-markup/prism-unescaped-markup.js @@ -0,0 +1,44 @@ +(function () { + + if (typeof self === 'undefined' || !self.Prism || !self.document || !Prism.languages.markup) { + return; + } + + Prism.plugins.UnescapedMarkup = true; + + Prism.hooks.add('before-highlightall', function (env) { + env.selector += ", [class*='lang-'] script[type='text/plain'], [class*='language-'] script[type='text/plain']" + + ", script[type='text/plain'][class*='lang-'], script[type='text/plain'][class*='language-']"; + }); + + Prism.hooks.add('before-sanity-check', function (env) { + if ((env.element.matches || env.element.msMatchesSelector).call(env.element, "script[type='text/plain']")) { + var code = document.createElement("code"); + var pre = document.createElement("pre"); + + pre.className = code.className = env.element.className; + + if (env.element.dataset) { + Object.keys(env.element.dataset).forEach(function (key) { + if (Object.prototype.hasOwnProperty.call(env.element.dataset, key)) { + pre.dataset[key] = env.element.dataset[key]; + } + }); + } + + env.code = env.code.replace(/<\/script(>|>)/gi, ""); + code.textContent = env.code; + + pre.appendChild(code); + env.element.parentNode.replaceChild(pre, env.element); + env.element = code; + return; + } + + var pre = env.element.parentNode; + if (!env.code && pre && pre.nodeName.toLowerCase() == 'pre' && + env.element.childNodes.length && env.element.childNodes[0].nodeName == "#comment") { + env.element.textContent = env.code = env.element.childNodes[0].textContent; + } + }); +}()); diff --git a/docs/_style/prism-master/plugins/unescaped-markup/prism-unescaped-markup.min.js b/docs/_style/prism-master/plugins/unescaped-markup/prism-unescaped-markup.min.js new file mode 100644 index 00000000..f48514a3 --- /dev/null +++ b/docs/_style/prism-master/plugins/unescaped-markup/prism-unescaped-markup.min.js @@ -0,0 +1 @@ +!function(){"undefined"!=typeof self&&self.Prism&&self.document&&Prism.languages.markup&&(Prism.plugins.UnescapedMarkup=!0,Prism.hooks.add("before-highlightall",function(e){e.selector+=", [class*='lang-'] script[type='text/plain'], [class*='language-'] script[type='text/plain'], script[type='text/plain'][class*='lang-'], script[type='text/plain'][class*='language-']"}),Prism.hooks.add("before-sanity-check",function(e){if((e.element.matches||e.element.msMatchesSelector).call(e.element,"script[type='text/plain']")){var t=document.createElement("code"),n=document.createElement("pre");return n.className=t.className=e.element.className,e.element.dataset&&Object.keys(e.element.dataset).forEach(function(t){Object.prototype.hasOwnProperty.call(e.element.dataset,t)&&(n.dataset[t]=e.element.dataset[t])}),e.code=e.code.replace(/<\/script(>|>)/gi,""),t.textContent=e.code,n.appendChild(t),e.element.parentNode.replaceChild(n,e.element),e.element=t,void 0}var n=e.element.parentNode;!e.code&&n&&"pre"==n.nodeName.toLowerCase()&&e.element.childNodes.length&&"#comment"==e.element.childNodes[0].nodeName&&(e.element.textContent=e.code=e.element.childNodes[0].textContent)}))}(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/wpd/index.html b/docs/_style/prism-master/plugins/wpd/index.html new file mode 100644 index 00000000..9157a483 --- /dev/null +++ b/docs/_style/prism-master/plugins/wpd/index.html @@ -0,0 +1,68 @@ + + + + + + +WebPlatform Docs ▲ Prism plugins + + + + + + + + + + + +
        +
        + +

        WebPlatform Docs

        +

        Makes tokens link to WebPlatform.org documentation. The links open in a new tab.

        +
        + +
        +

        How to use

        + +

        No setup required, just include the plugin in your download and you’re good to go!

        + +

        Tokens that currently link to documentation:

        + +
          +
        • HTML, MathML and SVG tags
        • +
        • HTML, MathML and SVG non-namespaced attributes
        • +
        • (Non-prefixed) CSS properties
        • +
        • (Non-prefixed) CSS @rules
        • +
        • (Non-prefixed) CSS pseudo-classes
        • +
        • (Non-prefixed) CSS pseudo-elements (starting with ::)
        • +
        + +

        Beta: This plugin is still in beta. Please help make it better: Test it and report any false positives etc!

        +
        + +
        +

        Examples

        + +

        CSS

        +
        
        +	
        
        +
        +	

        HTML

        +
        
        +
        +	

        SVG

        +
        
        +
        + +
        + + + + + + + + + \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/wpd/prism-wpd.css b/docs/_style/prism-master/plugins/wpd/prism-wpd.css new file mode 100644 index 00000000..43b7165a --- /dev/null +++ b/docs/_style/prism-master/plugins/wpd/prism-wpd.css @@ -0,0 +1,11 @@ +code[class*="language-"] a[href], +pre[class*="language-"] a[href] { + cursor: help; + text-decoration: none; +} + +code[class*="language-"] a[href]:hover, +pre[class*="language-"] a[href]:hover { + cursor: help; + text-decoration: underline; +} \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/wpd/prism-wpd.js b/docs/_style/prism-master/plugins/wpd/prism-wpd.js new file mode 100644 index 00000000..dc147d4f --- /dev/null +++ b/docs/_style/prism-master/plugins/wpd/prism-wpd.js @@ -0,0 +1,169 @@ +(function(){ + +if ( + typeof self !== 'undefined' && !self.Prism || + typeof global !== 'undefined' && !global.Prism +) { + return; +} + +if (Prism.languages.css) { + // check whether the selector is an advanced pattern before extending it + if (Prism.languages.css.selector.pattern) + { + Prism.languages.css.selector.inside['pseudo-class'] = /:[\w-]+/; + Prism.languages.css.selector.inside['pseudo-element'] = /::[\w-]+/; + } + else + { + Prism.languages.css.selector = { + pattern: Prism.languages.css.selector, + inside: { + 'pseudo-class': /:[\w-]+/, + 'pseudo-element': /::[\w-]+/ + } + }; + } +} + +if (Prism.languages.markup) { + Prism.languages.markup.tag.inside.tag.inside['tag-id'] = /[\w-]+/; + + var Tags = { + HTML: { + 'a': 1, 'abbr': 1, 'acronym': 1, 'b': 1, 'basefont': 1, 'bdo': 1, 'big': 1, 'blink': 1, 'cite': 1, 'code': 1, 'dfn': 1, 'em': 1, 'kbd': 1, 'i': 1, + 'rp': 1, 'rt': 1, 'ruby': 1, 's': 1, 'samp': 1, 'small': 1, 'spacer': 1, 'strike': 1, 'strong': 1, 'sub': 1, 'sup': 1, 'time': 1, 'tt': 1, 'u': 1, + 'var': 1, 'wbr': 1, 'noframes': 1, 'summary': 1, 'command': 1, 'dt': 1, 'dd': 1, 'figure': 1, 'figcaption': 1, 'center': 1, 'section': 1, 'nav': 1, + 'article': 1, 'aside': 1, 'hgroup': 1, 'header': 1, 'footer': 1, 'address': 1, 'noscript': 1, 'isIndex': 1, 'main': 1, 'mark': 1, 'marquee': 1, + 'meter': 1, 'menu': 1 + }, + SVG: { + 'animateColor': 1, 'animateMotion': 1, 'animateTransform': 1, 'glyph': 1, 'feBlend': 1, 'feColorMatrix': 1, 'feComponentTransfer': 1, + 'feFuncR': 1, 'feFuncG': 1, 'feFuncB': 1, 'feFuncA': 1, 'feComposite': 1, 'feConvolveMatrix': 1, 'feDiffuseLighting': 1, 'feDisplacementMap': 1, + 'feFlood': 1, 'feGaussianBlur': 1, 'feImage': 1, 'feMerge': 1, 'feMergeNode': 1, 'feMorphology': 1, 'feOffset': 1, 'feSpecularLighting': 1, + 'feTile': 1, 'feTurbulence': 1, 'feDistantLight': 1, 'fePointLight': 1, 'feSpotLight': 1, 'linearGradient': 1, 'radialGradient': 1, 'altGlyph': 1, + 'textPath': 1, 'tref': 1, 'altglyph': 1, 'textpath': 1, 'altglyphdef': 1, 'altglyphitem': 1, 'clipPath': 1, 'color-profile': 1, 'cursor': 1, + 'font-face': 1, 'font-face-format': 1, 'font-face-name': 1, 'font-face-src': 1, 'font-face-uri': 1, 'foreignObject': 1, 'glyphRef': 1, + 'hkern': 1, 'vkern': 1 + }, + MathML: {} + } +} + +var language; + +Prism.hooks.add('wrap', function(env) { + if ((env.type == 'tag-id' + || (env.type == 'property' && env.content.indexOf('-') != 0) + || (env.type == 'rule'&& env.content.indexOf('@-') != 0) + || (env.type == 'pseudo-class'&& env.content.indexOf(':-') != 0) + || (env.type == 'pseudo-element'&& env.content.indexOf('::-') != 0) + || (env.type == 'attr-name' && env.content.indexOf('data-') != 0) + ) && env.content.indexOf('<') === -1 + ) { + if (env.language == 'css' + || env.language == 'scss' + || env.language == 'markup' + ) { + var href = 'https://webplatform.github.io/docs/'; + var content = env.content; + + if (env.language == 'css' || env.language == 'scss') { + href += 'css/'; + + if (env.type == 'property') { + href += 'properties/'; + } + else if (env.type == 'rule') { + href += 'atrules/'; + content = content.substring(1); + } + else if (env.type == 'pseudo-class') { + href += 'selectors/pseudo-classes/'; + content = content.substring(1); + } + else if (env.type == 'pseudo-element') { + href += 'selectors/pseudo-elements/'; + content = content.substring(2); + } + } + else if (env.language == 'markup') { + if (env.type == 'tag-id') { + // Check language + language = getLanguage(env.content) || language; + + if (language) { + href += language + '/elements/'; + } + else { + return; // Abort + } + } + else if (env.type == 'attr-name') { + if (language) { + href += language + '/attributes/'; + } + else { + return; // Abort + } + } + } + + href += content; + env.tag = 'a'; + env.attributes.href = href; + env.attributes.target = '_blank'; + } + } +}); + +function getLanguage(tag) { + var tagL = tag.toLowerCase(); + + if (Tags.HTML[tagL]) { + return 'html'; + } + else if (Tags.SVG[tag]) { + return 'svg'; + } + else if (Tags.MathML[tag]) { + return 'mathml'; + } + + // Not in dictionary, perform check + if (Tags.HTML[tagL] !== 0 && typeof document !== 'undefined') { + var htmlInterface = (document.createElement(tag).toString().match(/\[object HTML(.+)Element\]/) || [])[1]; + + if (htmlInterface && htmlInterface != 'Unknown') { + Tags.HTML[tagL] = 1; + return 'html'; + } + } + + Tags.HTML[tagL] = 0; + + if (Tags.SVG[tag] !== 0 && typeof document !== 'undefined') { + var svgInterface = (document.createElementNS('http://www.w3.org/2000/svg', tag).toString().match(/\[object SVG(.+)Element\]/) || [])[1]; + + if (svgInterface && svgInterface != 'Unknown') { + Tags.SVG[tag] = 1; + return 'svg'; + } + } + + Tags.SVG[tag] = 0; + + // Lame way to detect MathML, but browsers don’t expose interface names there :( + if (Tags.MathML[tag] !== 0) { + if (tag.indexOf('m') === 0) { + Tags.MathML[tag] = 1; + return 'mathml'; + } + } + + Tags.MathML[tag] = 0; + + return null; +} + +})(); \ No newline at end of file diff --git a/docs/_style/prism-master/plugins/wpd/prism-wpd.min.js b/docs/_style/prism-master/plugins/wpd/prism-wpd.min.js new file mode 100644 index 00000000..86bad362 --- /dev/null +++ b/docs/_style/prism-master/plugins/wpd/prism-wpd.min.js @@ -0,0 +1 @@ +!function(){function e(e){var n=e.toLowerCase();if(t.HTML[n])return"html";if(t.SVG[e])return"svg";if(t.MathML[e])return"mathml";if(0!==t.HTML[n]&&"undefined"!=typeof document){var a=(document.createElement(e).toString().match(/\[object HTML(.+)Element\]/)||[])[1];if(a&&"Unknown"!=a)return t.HTML[n]=1,"html"}if(t.HTML[n]=0,0!==t.SVG[e]&&"undefined"!=typeof document){var s=(document.createElementNS("http://www.w3.org/2000/svg",e).toString().match(/\[object SVG(.+)Element\]/)||[])[1];if(s&&"Unknown"!=s)return t.SVG[e]=1,"svg"}return t.SVG[e]=0,0!==t.MathML[e]&&0===e.indexOf("m")?(t.MathML[e]=1,"mathml"):(t.MathML[e]=0,null)}if(("undefined"==typeof self||self.Prism)&&("undefined"==typeof global||global.Prism)){if(Prism.languages.css&&(Prism.languages.css.selector.pattern?(Prism.languages.css.selector.inside["pseudo-class"]=/:[\w-]+/,Prism.languages.css.selector.inside["pseudo-element"]=/::[\w-]+/):Prism.languages.css.selector={pattern:Prism.languages.css.selector,inside:{"pseudo-class":/:[\w-]+/,"pseudo-element":/::[\w-]+/}}),Prism.languages.markup){Prism.languages.markup.tag.inside.tag.inside["tag-id"]=/[\w-]+/;var t={HTML:{a:1,abbr:1,acronym:1,b:1,basefont:1,bdo:1,big:1,blink:1,cite:1,code:1,dfn:1,em:1,kbd:1,i:1,rp:1,rt:1,ruby:1,s:1,samp:1,small:1,spacer:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,"var":1,wbr:1,noframes:1,summary:1,command:1,dt:1,dd:1,figure:1,figcaption:1,center:1,section:1,nav:1,article:1,aside:1,hgroup:1,header:1,footer:1,address:1,noscript:1,isIndex:1,main:1,mark:1,marquee:1,meter:1,menu:1},SVG:{animateColor:1,animateMotion:1,animateTransform:1,glyph:1,feBlend:1,feColorMatrix:1,feComponentTransfer:1,feFuncR:1,feFuncG:1,feFuncB:1,feFuncA:1,feComposite:1,feConvolveMatrix:1,feDiffuseLighting:1,feDisplacementMap:1,feFlood:1,feGaussianBlur:1,feImage:1,feMerge:1,feMergeNode:1,feMorphology:1,feOffset:1,feSpecularLighting:1,feTile:1,feTurbulence:1,feDistantLight:1,fePointLight:1,feSpotLight:1,linearGradient:1,radialGradient:1,altGlyph:1,textPath:1,tref:1,altglyph:1,textpath:1,altglyphdef:1,altglyphitem:1,clipPath:1,"color-profile":1,cursor:1,"font-face":1,"font-face-format":1,"font-face-name":1,"font-face-src":1,"font-face-uri":1,foreignObject:1,glyphRef:1,hkern:1,vkern:1},MathML:{}}}var n;Prism.hooks.add("wrap",function(t){if(("tag-id"==t.type||"property"==t.type&&0!=t.content.indexOf("-")||"rule"==t.type&&0!=t.content.indexOf("@-")||"pseudo-class"==t.type&&0!=t.content.indexOf(":-")||"pseudo-element"==t.type&&0!=t.content.indexOf("::-")||"attr-name"==t.type&&0!=t.content.indexOf("data-"))&&-1===t.content.indexOf("<")&&("css"==t.language||"scss"==t.language||"markup"==t.language)){var a="https://webplatform.github.io/docs/",s=t.content;if("css"==t.language||"scss"==t.language)a+="css/","property"==t.type?a+="properties/":"rule"==t.type?(a+="atrules/",s=s.substring(1)):"pseudo-class"==t.type?(a+="selectors/pseudo-classes/",s=s.substring(1)):"pseudo-element"==t.type&&(a+="selectors/pseudo-elements/",s=s.substring(2));else if("markup"==t.language)if("tag-id"==t.type){if(n=e(t.content)||n,!n)return;a+=n+"/elements/"}else if("attr-name"==t.type){if(!n)return;a+=n+"/attributes/"}a+=s,t.tag="a",t.attributes.href=a,t.attributes.target="_blank"}})}}(); \ No newline at end of file diff --git a/docs/_style/prism-master/prefixfree.min.js b/docs/_style/prism-master/prefixfree.min.js new file mode 100644 index 00000000..94fc4087 --- /dev/null +++ b/docs/_style/prism-master/prefixfree.min.js @@ -0,0 +1,5 @@ +/** + * StyleFix 1.0.3 & PrefixFree 1.0.7 + * @author Lea Verou + * MIT license + */(function(){function t(e,t){return[].slice.call((t||document).querySelectorAll(e))}if(!window.addEventListener)return;var e=window.StyleFix={link:function(t){try{if(t.rel!=="stylesheet"||t.hasAttribute("data-noprefix"))return}catch(n){return}var r=t.href||t.getAttribute("data-href"),i=r.replace(/[^\/]+$/,""),s=t.parentNode,o=new XMLHttpRequest,u;o.onreadystatechange=function(){o.readyState===4&&u()};u=function(){var n=o.responseText;if(n&&t.parentNode&&(!o.status||o.status<400||o.status>600)){n=e.fix(n,!0,t);if(i){n=n.replace(/url\(\s*?((?:"|')?)(.+?)\1\s*?\)/gi,function(e,t,n){return/^([a-z]{3,10}:|\/|#)/i.test(n)?e:'url("'+i+n+'")'});var r=i.replace(/([\\\^\$*+[\]?{}.=!:(|)])/g,"\\$1");n=n.replace(RegExp("\\b(behavior:\\s*?url\\('?\"?)"+r,"gi"),"$1")}var u=document.createElement("style");u.textContent=n;u.media=t.media;u.disabled=t.disabled;u.setAttribute("data-href",t.getAttribute("href"));s.insertBefore(u,t);s.removeChild(t);u.media=t.media}};try{o.open("GET",r);o.send(null)}catch(n){if(typeof XDomainRequest!="undefined"){o=new XDomainRequest;o.onerror=o.onprogress=function(){};o.onload=u;o.open("GET",r);o.send(null)}}t.setAttribute("data-inprogress","")},styleElement:function(t){if(t.hasAttribute("data-noprefix"))return;var n=t.disabled;t.textContent=e.fix(t.textContent,!0,t);t.disabled=n},styleAttribute:function(t){var n=t.getAttribute("style");n=e.fix(n,!1,t);t.setAttribute("style",n)},process:function(){t('link[rel="stylesheet"]:not([data-inprogress])').forEach(StyleFix.link);t("style").forEach(StyleFix.styleElement);t("[style]").forEach(StyleFix.styleAttribute)},register:function(t,n){(e.fixers=e.fixers||[]).splice(n===undefined?e.fixers.length:n,0,t)},fix:function(t,n,r){for(var i=0;i-1&&(e=e.replace(/(\s|:|,)(repeating-)?linear-gradient\(\s*(-?\d*\.?\d*)deg/ig,function(e,t,n,r){r=Math.abs(r-450)%360;return t+(n||"")+"linear-gradient("+r+"deg"}));e=t("functions","(\\s|:|,)","\\s*\\(","$1"+s+"$2(",e);e=t("keywords","(\\s|:)","(\\s|;|\\}|$)","$1"+s+"$2$3",e);e=t("properties","(^|\\{|\\s|;)","\\s*:","$1"+s+"$2:",e);if(n.properties.length){var o=RegExp("\\b("+n.properties.join("|")+")(?!:)","gi");e=t("valueProperties","\\b",":(.+?);",function(e){return e.replace(o,s+"$1")},e)}if(r){e=t("selectors","","\\b",n.prefixSelector,e);e=t("atrules","@","\\b","@"+s+"$1",e)}e=e.replace(RegExp("-"+s,"g"),"-");e=e.replace(/-\*-(?=[a-z]+)/gi,n.prefix);return e},property:function(e){return(n.properties.indexOf(e)?n.prefix:"")+e},value:function(e,r){e=t("functions","(^|\\s|,)","\\s*\\(","$1"+n.prefix+"$2(",e);e=t("keywords","(^|\\s)","(\\s|$)","$1"+n.prefix+"$2$3",e);return e},prefixSelector:function(e){return e.replace(/^:{1,2}/,function(e){return e+n.prefix})},prefixProperty:function(e,t){var r=n.prefix+e;return t?StyleFix.camelCase(r):r}};(function(){var e={},t=[],r={},i=getComputedStyle(document.documentElement,null),s=document.createElement("div").style,o=function(n){if(n.charAt(0)==="-"){t.push(n);var r=n.split("-"),i=r[1];e[i]=++e[i]||1;while(r.length>3){r.pop();var s=r.join("-");u(s)&&t.indexOf(s)===-1&&t.push(s)}}},u=function(e){return StyleFix.camelCase(e)in s};if(i.length>0)for(var a=0;a text.length) { + // Something went terribly wrong, ABORT, ABORT! + return; + } + + if (str instanceof Token) { + continue; + } + + if (greedy && i != strarr.length - 1) { + pattern.lastIndex = pos; + var match = pattern.exec(text); + if (!match) { + break; + } + + var from = match.index + (lookbehind ? match[1].length : 0), + to = match.index + match[0].length, + k = i, + p = pos; + + for (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) { + p += strarr[k].length; + // Move the index i to the element in strarr that is closest to from + if (from >= p) { + ++i; + pos = p; + } + } + + // If strarr[i] is a Token, then the match starts inside another Token, which is invalid + if (strarr[i] instanceof Token) { + continue; + } + + // Number of tokens to delete and replace with the new match + delNum = k - i; + str = text.slice(pos, p); + match.index -= pos; + } else { + pattern.lastIndex = 0; + + var match = pattern.exec(str), + delNum = 1; + } + + if (!match) { + if (oneshot) { + break; + } + + continue; + } + + if(lookbehind) { + lookbehindLength = match[1] ? match[1].length : 0; + } + + var from = match.index + lookbehindLength, + match = match[0].slice(lookbehindLength), + to = from + match.length, + before = str.slice(0, from), + after = str.slice(to); + + var args = [i, delNum]; + + if (before) { + ++i; + pos += before.length; + args.push(before); + } + + var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy); + + args.push(wrapped); + + if (after) { + args.push(after); + } + + Array.prototype.splice.apply(strarr, args); + + if (delNum != 1) + _.matchGrammar(text, strarr, grammar, i, pos, true, token); + + if (oneshot) + break; + } + } + } + }, + + tokenize: function(text, grammar, language) { + var strarr = [text]; + + var rest = grammar.rest; + + if (rest) { + for (var token in rest) { + grammar[token] = rest[token]; + } + + delete grammar.rest; + } + + _.matchGrammar(text, strarr, grammar, 0, 0, false); + + return strarr; + }, + + hooks: { + all: {}, + + add: function (name, callback) { + var hooks = _.hooks.all; + + hooks[name] = hooks[name] || []; + + hooks[name].push(callback); + }, + + run: function (name, env) { + var callbacks = _.hooks.all[name]; + + if (!callbacks || !callbacks.length) { + return; + } + + for (var i=0, callback; callback = callbacks[i++];) { + callback(env); + } + } + } +}; + +var Token = _.Token = function(type, content, alias, matchedStr, greedy) { + this.type = type; + this.content = content; + this.alias = alias; + // Copy of the full string this token was created from + this.length = (matchedStr || "").length|0; + this.greedy = !!greedy; +}; + +Token.stringify = function(o, language, parent) { + if (typeof o == 'string') { + return o; + } + + if (_.util.type(o) === 'Array') { + return o.map(function(element) { + return Token.stringify(element, language, o); + }).join(''); + } + + var env = { + type: o.type, + content: Token.stringify(o.content, language, parent), + tag: 'span', + classes: ['token', o.type], + attributes: {}, + language: language, + parent: parent + }; + + if (o.alias) { + var aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias]; + Array.prototype.push.apply(env.classes, aliases); + } + + _.hooks.run('wrap', env); + + var attributes = Object.keys(env.attributes).map(function(name) { + return name + '="' + (env.attributes[name] || '').replace(/"/g, '"') + '"'; + }).join(' '); + + return '<' + env.tag + ' class="' + env.classes.join(' ') + '"' + (attributes ? ' ' + attributes : '') + '>' + env.content + ''; + +}; + +if (!_self.document) { + if (!_self.addEventListener) { + // in Node.js + return _self.Prism; + } + + if (!_.disableWorkerMessageHandler) { + // In worker + _self.addEventListener('message', function (evt) { + var message = JSON.parse(evt.data), + lang = message.language, + code = message.code, + immediateClose = message.immediateClose; + + _self.postMessage(_.highlight(code, _.languages[lang], lang)); + if (immediateClose) { + _self.close(); + } + }, false); + } + + return _self.Prism; +} + +//Get current script and highlight +var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop(); + +if (script) { + _.filename = script.src; + + if (!_.manual && !script.hasAttribute('data-manual')) { + if(document.readyState !== "loading") { + if (window.requestAnimationFrame) { + window.requestAnimationFrame(_.highlightAll); + } else { + window.setTimeout(_.highlightAll, 16); + } + } + else { + document.addEventListener('DOMContentLoaded', _.highlightAll); + } + } +} + +return _self.Prism; + +})(); + +if (typeof module !== 'undefined' && module.exports) { + module.exports = Prism; +} + +// hack for components to work correctly in node.js +if (typeof global !== 'undefined') { + global.Prism = Prism; +} + + +/* ********************************************** + Begin prism-markup.js +********************************************** */ + +Prism.languages.markup = { + 'comment': //, + 'prolog': /<\?[\s\S]+?\?>/, + 'doctype': //i, + 'cdata': //i, + 'tag': { + pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i, + greedy: true, + inside: { + 'tag': { + pattern: /^<\/?[^\s>\/]+/i, + inside: { + 'punctuation': /^<\/?/, + 'namespace': /^[^\s>\/:]+:/ + } + }, + 'attr-value': { + pattern: /=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i, + inside: { + 'punctuation': [ + /^=/, + { + pattern: /(^|[^\\])["']/, + lookbehind: true + } + ] + } + }, + 'punctuation': /\/?>/, + 'attr-name': { + pattern: /[^\s>\/]+/, + inside: { + 'namespace': /^[^\s>\/:]+:/ + } + } + + } + }, + 'entity': /&#?[\da-z]{1,8};/i +}; + +Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = + Prism.languages.markup['entity']; + +// Plugin to make entity title show the real entity, idea by Roman Komarov +Prism.hooks.add('wrap', function(env) { + + if (env.type === 'entity') { + env.attributes['title'] = env.content.replace(/&/, '&'); + } +}); + +Prism.languages.xml = Prism.languages.markup; +Prism.languages.html = Prism.languages.markup; +Prism.languages.mathml = Prism.languages.markup; +Prism.languages.svg = Prism.languages.markup; + + +/* ********************************************** + Begin prism-css.js +********************************************** */ + +Prism.languages.css = { + 'comment': /\/\*[\s\S]*?\*\//, + 'atrule': { + pattern: /@[\w-]+?.*?(?:;|(?=\s*\{))/i, + inside: { + 'rule': /@[\w-]+/ + // See rest below + } + }, + 'url': /url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, + 'selector': /[^{}\s][^{};]*?(?=\s*\{)/, + 'string': { + pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, + greedy: true + }, + 'property': /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, + 'important': /!important\b/i, + 'function': /[-a-z0-9]+(?=\()/i, + 'punctuation': /[(){};:,]/ +}; + +Prism.languages.css['atrule'].inside.rest = Prism.languages.css; + +if (Prism.languages.markup) { + Prism.languages.insertBefore('markup', 'tag', { + 'style': { + pattern: /()[\s\S]*?(?=<\/style>)/i, + lookbehind: true, + inside: Prism.languages.css, + alias: 'language-css', + greedy: true + } + }); + + Prism.languages.insertBefore('inside', 'attr-value', { + 'style-attr': { + pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, + inside: { + 'attr-name': { + pattern: /^\s*style/i, + inside: Prism.languages.markup.tag.inside + }, + 'punctuation': /^\s*=\s*['"]|['"]\s*$/, + 'attr-value': { + pattern: /.+/i, + inside: Prism.languages.css + } + }, + alias: 'language-css' + } + }, Prism.languages.markup.tag); +} + + +/* ********************************************** + Begin prism-clike.js +********************************************** */ + +Prism.languages.clike = { + 'comment': [ + { + pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, + lookbehind: true + }, + { + pattern: /(^|[^\\:])\/\/.*/, + lookbehind: true, + greedy: true + } + ], + 'string': { + pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, + greedy: true + }, + 'class-name': { + pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i, + lookbehind: true, + inside: { + punctuation: /[.\\]/ + } + }, + 'keyword': /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, + 'boolean': /\b(?:true|false)\b/, + 'function': /\w+(?=\()/, + 'number': /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, + 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, + 'punctuation': /[{}[\];(),.:]/ +}; + + +/* ********************************************** + Begin prism-javascript.js +********************************************** */ + +Prism.languages.javascript = Prism.languages.extend('clike', { + 'class-name': [ + Prism.languages.clike['class-name'], + { + pattern: /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/, + lookbehind: true + } + ], + 'keyword': [ + { + pattern: /((?:^|})\s*)(?:catch|finally)\b/, + lookbehind: true + }, + /\b(?:as|async|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/ + ], + 'number': /\b(?:(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+)n?|\d+n|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/, + // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444) + 'function': /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\(|\.(?:apply|bind|call)\()/, + 'operator': /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ +}); + +Prism.languages.javascript['class-name'][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/ + +Prism.languages.insertBefore('javascript', 'keyword', { + 'regex': { + pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/, + lookbehind: true, + greedy: true + }, + // This must be declared before keyword because we use "function" inside the look-forward + 'function-variable': { + pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i, + alias: 'function' + }, + 'parameter': [ + { + pattern: /(function(?:\s+[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)[^\s()][^()]*?(?=\s*\))/, + lookbehind: true, + inside: Prism.languages.javascript + }, + { + pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/, + inside: Prism.languages.javascript + }, + { + pattern: /(\(\s*)[^\s()][^()]*?(?=\s*\)\s*=>)/, + lookbehind: true, + inside: Prism.languages.javascript + }, + { + pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)[^\s()][^()]*?(?=\s*\)\s*\{)/, + lookbehind: true, + inside: Prism.languages.javascript + } + ], + 'constant': /\b[A-Z][A-Z\d_]*\b/ +}); + +Prism.languages.insertBefore('javascript', 'string', { + 'template-string': { + pattern: /`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/, + greedy: true, + inside: { + 'interpolation': { + pattern: /\${[^}]+}/, + inside: { + 'interpolation-punctuation': { + pattern: /^\${|}$/, + alias: 'punctuation' + }, + rest: Prism.languages.javascript + } + }, + 'string': /[\s\S]+/ + } + } +}); + +if (Prism.languages.markup) { + Prism.languages.insertBefore('markup', 'tag', { + 'script': { + pattern: /()[\s\S]*?(?=<\/script>)/i, + lookbehind: true, + inside: Prism.languages.javascript, + alias: 'language-javascript', + greedy: true + } + }); +} + +Prism.languages.js = Prism.languages.javascript; + + +/* ********************************************** + Begin prism-file-highlight.js +********************************************** */ + +(function () { + if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) { + return; + } + + /** + * @param {Element} [container=document] + */ + self.Prism.fileHighlight = function(container) { + container = container || document; + + var Extensions = { + 'js': 'javascript', + 'py': 'python', + 'rb': 'ruby', + 'ps1': 'powershell', + 'psm1': 'powershell', + 'sh': 'bash', + 'bat': 'batch', + 'h': 'c', + 'tex': 'latex' + }; + + Array.prototype.slice.call(container.querySelectorAll('pre[data-src]')).forEach(function (pre) { + // ignore if already loaded + if (pre.hasAttribute('data-src-loaded')) { + return; + } + + // load current + var src = pre.getAttribute('data-src'); + + var language, parent = pre; + var lang = /\blang(?:uage)?-([\w-]+)\b/i; + while (parent && !lang.test(parent.className)) { + parent = parent.parentNode; + } + + if (parent) { + language = (pre.className.match(lang) || [, ''])[1]; + } + + if (!language) { + var extension = (src.match(/\.(\w+)$/) || [, ''])[1]; + language = Extensions[extension] || extension; + } + + var code = document.createElement('code'); + code.className = 'language-' + language; + + pre.textContent = ''; + + code.textContent = 'Loading…'; + + pre.appendChild(code); + + var xhr = new XMLHttpRequest(); + + xhr.open('GET', src, true); + + xhr.onreadystatechange = function () { + if (xhr.readyState == 4) { + + if (xhr.status < 400 && xhr.responseText) { + code.textContent = xhr.responseText; + + Prism.highlightElement(code); + // mark as loaded + pre.setAttribute('data-src-loaded', ''); + } + else if (xhr.status >= 400) { + code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText; + } + else { + code.textContent = '✖ Error: File does not exist or is empty'; + } + } + }; + + xhr.send(null); + }); + + if (Prism.plugins.toolbar) { + Prism.plugins.toolbar.registerButton('download-file', function (env) { + var pre = env.element.parentNode; + if (!pre || !/pre/i.test(pre.nodeName) || !pre.hasAttribute('data-src') || !pre.hasAttribute('data-download-link')) { + return; + } + var src = pre.getAttribute('data-src'); + var a = document.createElement('a'); + a.textContent = pre.getAttribute('data-download-link-label') || 'Download'; + a.setAttribute('download', ''); + a.href = src; + return a; + }); + } + + }; + + document.addEventListener('DOMContentLoaded', function () { + // execute inside handler, for dropping Event as argumnet + self.Prism.fileHighlight(); + }); + +})(); diff --git a/docs/_style/prism-master/style.css b/docs/_style/prism-master/style.css new file mode 100644 index 00000000..80a674ed --- /dev/null +++ b/docs/_style/prism-master/style.css @@ -0,0 +1,407 @@ +@import url(https://fonts.googleapis.com/css?family=Questrial); +@import url(https://fonts.googleapis.com/css?family=Arvo); + +@font-face { + src: url(https://lea.verou.me/logo.otf); + font-family: 'LeaVerou'; +} + +/* + Shared styles + */ + +section h1, +#features li strong, +header h2, +footer p { + font: 100% Rockwell, Arvo, serif; +} + +/* + Styles + */ + +* { + margin: 0; + padding: 0; + font-weight: normal; +} + +body { + font: 100%/1.5 Questrial, sans-serif; + tab-size: 4; + hyphens: auto; +} + +a { + color: inherit; +} + +section h1 { + font-size: 250%; +} + + section section h1 { + font-size: 150%; + } + + section h1 code { + font-style: normal; + } + + section h1 > a { + text-decoration: none; + } + + section h1 > a:before { + content: '§'; + position: absolute; + padding: 0 .2em; + margin-left: -1em; + border-radius: .2em; + color: silver; + text-shadow: 0 1px white; + } + + section h1 > a:hover:before { + color: black; + background: #f1ad26; + } + +p { + margin: 1em 0; +} + +section h1, +h2 { + margin: 1em 0 .3em; +} + +dt { + margin: 1em 0 0 0; + font-size: 130%; +} + + dt:after { + content: ':'; + } + +dd { + margin-left: 2em; +} + +strong { + font-weight: bold; +} + +code, pre { + font-family: Consolas, Monaco, 'Andale Mono', 'Lucida Console', monospace; + hyphens: none; +} + +pre { + max-height: 30em; + overflow: auto; +} + +pre > code.highlight { + outline: .4em solid red; + outline-offset: .4em; +} + +header, +body > section { + display: block; + max-width: 900px; + margin: auto; +} + +header, footer { + position: relative; + padding: 30px -webkit-calc(50% - 450px); /* Workaround for bug */ + padding: 30px calc(50% - 450px); + color: white; + text-shadow: 0 -1px 2px black; + background: url(img/spectrum.png) fixed; +} + +header:before, +footer:before { + content: ''; + position: absolute; + bottom: 0; left: 0; right: 0; + height: 20px; + background-size: 20px 40px; + background-repeat: repeat-x; + background-image: linear-gradient(45deg, transparent 34%, white 34%, white 66%, transparent 66%), + linear-gradient(135deg, transparent 34%, white 34%, white 66%, transparent 66%); +} + +header { + +} + + header .intro, + html.simple header { + overflow: hidden; + } + + header h1 { + float: left; + margin-right: 30px; + color: #7fab14; + text-align: center; + font-size: 140%; + text-transform: uppercase; + letter-spacing: .25em; + } + + header h2 { + margin-top: .5em; + color: #f1ad26; + } + + header h1 a { + text-decoration: none; + } + + header img { + display: block; + width: 150px; + height: 128px; + margin-bottom: .3em; + border: 0; + } + + header h2 { + font-size: 300%; + } + + header .intro p { + margin: 0; + font: 150%/1.4 Questrial, sans-serif; + font-size: 150%; + } + + #features { + width: 66em; + margin-top: 2em; + font-size: 80%; + } + + #features li { + margin: 0 0 2em 0; + list-style: none; + display: inline-block; + width: 27em; + vertical-align: top; + } + + #features li:nth-child(odd) { + margin-right: 5em; + } + + #features li:before { + content: '✓'; + float: left; + margin-left: -.8em; + color: #7fab14; + font-size: 400%; + line-height: 1; + } + + #features li strong { + display: block; + margin-bottom: .1em; + font-size: 200%; + } + + header .download-button { + float: right; + margin: 0 0 .5em .5em; + } + + #theme { + position: relative; + z-index: 1; + float: right; + margin-right: -1em; + text-align: center; + text-transform: uppercase; + letter-spacing: .2em; + } + + #theme > p { + position: absolute; + left: 100%; + transform: translateX(50%) rotate(90deg) ; + transform-origin: top left; + font-size: 130%; + } + + #theme > label { + position: relative; + display: flex; + justify-content: center; + align-items: center; + width: 8.5em; + height: 8.5em; + line-height: 1em; + border-radius: 50%; + background: hsla(0,0%,100%,.5); + cursor: pointer; + font-size: 90%; + padding: 0; + } + + #theme > label:before { + content: ''; + position: absolute; + top: 0; right: 0; bottom: 0; left: 0; + z-index: -1; + border-radius: inherit; + background: url(img/spectrum.png) fixed; + } + + #theme > label:nth-of-type(n+2) { + margin-top: -2.5em; + } + + #theme > input:not(:checked) + label:hover { + background: hsla(77, 80%, 60%, .5); + } + + #theme > input { + position: absolute; + clip: rect(0,0,0,0); + } + + #theme > input:checked + label { + background: #7fab14; + } + +footer { + margin-top: 2em; + background-position: bottom; + color: white; + text-shadow: 0 -1px 2px black; +} + + footer:before { + bottom: auto; + top: 0; + background-position: bottom; + } + + footer p { + font-size: 150%; + } + + footer ul { + column-count: 3; + } + +.download-button { + display: block; + padding: .2em .8em .1em; + border: 1px solid rgba(0,0,0,0.5); + border-radius: 10px; + background: #39a1cf; + box-shadow: 0 2px 10px black, + inset 0 1px hsla(0,0%,100%,.3), + inset 0 .4em hsla(0,0%,100%,.2), + inset 0 10px 20px hsla(0,0%,100%,.25), + inset 0 -15px 30px rgba(0,0,0,0.3); + color: white; + text-shadow: 0 -1px 2px black; + text-align: center; + font-size: 250%; + line-height: 1.5; + text-transform: uppercase; + text-decoration: none; + hyphens: manual; +} + +.download-button:hover { + background-color: #7fab14; +} + +.download-button:active { + box-shadow: inset 0 2px 8px rgba(0,0,0,.8); +} + +#toc { + position: fixed; + left: 1%; + max-width: calc(48% - 450px); + font-size: 80%; + opacity: .3; +} + +@media (max-width: 1200px) { + #toc { + display: none; + } +} + +#toc:hover { + opacity: 1; +} + + #toc h1 { + font-size: 180%; + } + + #toc li { + list-style: none; + } + +#logo:before { + content: '☠'; + float: right; + font: 100px/1.6 LeaVerou; +} + +.used-by-logos { + overflow: hidden; +} + .used-by-logos > a { + float: left; + width: 33.33%; + height: 100px; + text-align: center; + background: #F5F2F0; + box-sizing: border-box; + border: 5px solid white; + position: relative; + } + .used-by-logos > a > img { + max-height: 100%; + max-width: 100%; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + +label a.owner { + margin: 0 .5em; +} + +label a.owner:not(:hover) { + text-decoration: none; + color: #aaa; +} + +#languages-list ul { + column-count: 3; +} + #languages-list li { + padding: .2em; + } + #languages-list li[data-id="javascript"] { + border-bottom: 1px solid #aaa; + padding-bottom: 1em; + margin-bottom: 1em; + margin-right: 1em; + } diff --git a/docs/_style/prism-master/templates/footer.html b/docs/_style/prism-master/templates/footer.html new file mode 100644 index 00000000..b0e306a5 --- /dev/null +++ b/docs/_style/prism-master/templates/footer.html @@ -0,0 +1,15 @@ + +

        Handcrafted with ♥, by Lea Verou, Golmote +& all these awesome people

        + + diff --git a/docs/_style/prism-master/templates/header-download.html b/docs/_style/prism-master/templates/header-download.html new file mode 100644 index 00000000..4e3df4e2 --- /dev/null +++ b/docs/_style/prism-master/templates/header-download.html @@ -0,0 +1,2 @@ +Download Prism +Customize your download to include only the languages and plugins you need and the compression level you prefer. \ No newline at end of file diff --git a/docs/_style/prism-master/templates/header-main.html b/docs/_style/prism-master/templates/header-main.html new file mode 100644 index 00000000..01fe9406 --- /dev/null +++ b/docs/_style/prism-master/templates/header-main.html @@ -0,0 +1,12 @@ +

        Prism

        + +Download + +

        + Prism is a lightweight, extensible syntax highlighter, built with modern web standards in mind. + It’s used in thousands of websites, including some of those you visit daily. +

        + + diff --git a/docs/_style/prism-master/templates/header-plugins.html b/docs/_style/prism-master/templates/header-plugins.html new file mode 100644 index 00000000..45e2aac8 --- /dev/null +++ b/docs/_style/prism-master/templates/header-plugins.html @@ -0,0 +1,8 @@ +

        Prism plugins

        + +Download + +

        + Prism is a lightweight, extensible syntax highlighter, built with modern web standards in mind. + It’s used in thousands of websites, including some of those you visit daily. +

        diff --git a/docs/_style/prism-master/test-suite.html b/docs/_style/prism-master/test-suite.html new file mode 100644 index 00000000..5aeebf2a --- /dev/null +++ b/docs/_style/prism-master/test-suite.html @@ -0,0 +1,167 @@ + + + + + + +Running the test suite ▲ Prism + + + + + + + + + +
        +
        + +

        Running the test suite

        +

        Prism has a test suite, that ensures that the correct tokens are matched.

        +
        + +
        +

        Running the test suite

        + +

        Running the test suite is simple: just call npm test.

        +

        All test files are run in isolation. A new prism instance is created for each test case. This will slow the test runner a bit down, but we can be sure that nothing leaks into the next test case.

        + +
        +

        Running tests for specific languages

        + +

        To run the tests only for one language, you can use the language parameter: npm test -- --language=markup.

        +

        You can even specify multiple languages: npm test -- --language=markup --language=css.

        +
        +
        + +
        +

        Writing tests

        + +

        Thank you for writing tests! Tests are awesome! They ensure, that we can improve the codebase without breaking anything. Also, this way, we can ensure that upgrading Prism is as painless as possible for you.

        +

        You can add new tests by creating a new test case file (with the .test file extension) in the tests directory which is located at /tests/languages/${language}.

        + +
        +

        Language directories

        +

        All tests are sorted into directories in the tests/languages directory. Each directory name encodes, which language you are currently testing.

        +

        All language names must match the names from the definition in components.js.

        + +

        Example 1: testing a language in isolation (default use case)

        +

        Just put your test file into the directory of the language you want to test.

        +

        So, if you want to test CSS, put your test file in /tests/languages/css to test CSS only. If you create a test case in this directory, the test runner will ensure that the css language definition including all required language definitions are correctly loaded.

        + +

        Example 2: testing language injection

        +

        If you want to test language injection, you typically need to load two or more languages where one language is the “main” language that is being tested, with all other languages being injected into it.

        +

        You need to define multiple languages by separating them using a + sign: markup+php.

        +

        The languages are loaded in order, so first markup (+ dependencies) is loaded, then php (+ dependencies). The test loader ensures that no language is loaded more than once (for example if two languages have the same dependencies).

        +

        By default the last language is the main language: php+markup will have markup as main language. This is equal to putting your code in the following code block:

        +
        ...
        +<pre><code class="language-markup">
        +	<!-- your code here -->
        +</code><pre>
        +...
        + +

        If you need to load the languages in a given order, but you don't want to use the last language as main language, you can mark the main language with an exclamation mark: php!+markup. This will use php as main language. (You can only define one main language. The test runner will fail all tests in directories with more than one main language.)

        + +

        Note: by loading multiple languages you can do integration tests (ensure that loading two or more languages together won't break anything).

        +
        + +
        +

        Creating your test case file

        +

        At first you need to create a new file in the language directory, you want to test.

        +

        Use a proper name for your test case. Please use one case of the following conventions:

        +
          +
        • issue{issueid}: reference a github issue id (example: issue588.test).
        • +
        • {featurename}_feature: group all tests to one feature in one file (example: string_interpolation_feature.test).
        • +
        • {language}_inclusion: test inclusion of one language into the other (example: markup!+css/css_inclusion.test will test CSS inclusion into markup).
        • +
        +

        You can use all conventions as a prefix, so string_interpolation_feature_inline.test is possible. But please take a minute or two to think of a proper name of your test case file. You are writing code not only for the computers, but also for your fellow developers.

        +
        + +
        +

        Writing your test

        +

        The structure of a test case file is as follows:

        +
        
        +... language snippet...
        +----
        +... the simplified token stream you expect ...
        + +

        Your file is built up of two or three sections, separated by ten or more dashes -, starting at the begin of the line:

        +
          +
        1. Your language snippet. The code you want to compile using Prism. (required)
        2. +
        3. The simplified token stream you expect. Needs to be valid JSON. (required)
        4. +
        5. A comment explaining the test case. (optional)
        6. +
        +

        The easiest way would be to look at an existing test file:

        +
        var a = 5;
        +
        +----------------------------------------------------
        +
        +[
        +	["keyword", "var"],
        +	" a ",
        +	["operator", "="],
        +	["number", "5"],
        +	["punctuation", ";"]
        +]
        +
        +----------------------------------------------------
        +
        +This is a comment explaining this test case.
        +
        + +
        +

        Explaining the simplified token stream

        +

        While compiling, Prism transforms your source code into a token stream. This is basically a tree of nested tokens (or arrays, or strings).

        +

        As these trees are hard to write by hand, the test runner uses a simplified version of it.

        +

        It uses the following rules:

        +
          +
        • Token objects are transformed into an array: [token.type, token.content] (whereas token.content can be a nested structure).
        • +
        • All strings that are either empty or only contain whitespace, are removed from the token stream.
        • +
        • All empty structures are removed.
        • +
        +

        For further information: reading the tests of the test runner (tests/testrunner-tests.js) will help you understand the transformation.

        +
        +
        + +
        +

        Writing specific tests

        + +

        Sometimes, using the token stream tests is not powerful enough. By creating a test file with the file extension .js instead of .test, you can make Prism highlight arbitrary pieces of code and check their HTML results.

        +

        The language is determined by the folder containing the test file lies, as explained in the previous section.

        +

        The structure of your test file will look like this, for example:

        +
        module.exports = {
        +	'&#x278a;': '<span class="token entity" title="&#x278a;">&amp;#x278a;</span>',
        +	'&#182;': '<span class="token entity" title="&#182;">&amp;#182;</span>',
        +};
        +

        The keys are the codes which will be highlighted by Prism. The values are the expected results, as HTML.

        +
        + +
        +

        Test runner tests

        +

        The test runner itself is tested in a separate test case. You can find all “test core” related tests in tests/testrunner-tests.js.

        +

        You shouldn't need to touch this file ever, except you modify the test runner code.

        +
        + +
        +

        Internal structure

        +

        The global test flow is at follows:

        +
          +
        1. Run all internal tests (test the test runner).
        2. +
        3. Find all language tests.
        4. +
        5. Run all language tests individually.
        6. +
        7. Report the results.
        8. +
        +
        + + +
        + + + + + + + + + diff --git a/docs/_style/prism-master/test.html b/docs/_style/prism-master/test.html new file mode 100644 index 00000000..e28cce1d --- /dev/null +++ b/docs/_style/prism-master/test.html @@ -0,0 +1,203 @@ + + + + + + +Test drive ▲ Prism + + + + + + + + + + +
        +
        + +

        Test drive

        +

        Take Prism for a spin!

        +
        + +
        +
        +

        + +

        + +

        Result:

        +
        + +

        + Language: +

        +
        +
        + +
        + + + + + + + + + + + diff --git a/docs/_style/prism-master/tests/helper/prism-loader.js b/docs/_style/prism-master/tests/helper/prism-loader.js new file mode 100644 index 00000000..3257485a --- /dev/null +++ b/docs/_style/prism-master/tests/helper/prism-loader.js @@ -0,0 +1,131 @@ +"use strict"; + +var fs = require("fs"); +var vm = require("vm"); +var components = require("../../components"); +var languagesCatalog = components.languages; + + +module.exports = { + + /** + * Creates a new Prism instance with the given language loaded + * + * @param {string|string[]} languages + * @returns {Prism} + */ + createInstance: function (languages) { + var context = { + loadedLanguages: [], + Prism: this.createEmptyPrism() + }; + + context = this.loadLanguages(languages, context); + + return context.Prism; + }, + + /** + * Loads the given languages and appends the config to the given Prism object + * + * @private + * @param {string|string[]} languages + * @param {{loadedLanguages: string[], Prism: Prism}} context + * @returns {{loadedLanguages: string[], Prism: Prism}} + */ + loadLanguages: function (languages, context) { + if (typeof languages === 'string') { + languages = [languages]; + } + + var self = this; + + languages.forEach(function (language) { + context = self.loadLanguage(language, context); + }); + + return context; + }, + + /** + * Loads the given language (including recursively loading the dependencies) and + * appends the config to the given Prism object + * + * @private + * @param {string} language + * @param {{loadedLanguages: string[], Prism: Prism}} context + * @returns {{loadedLanguages: string[], Prism: Prism}} + */ + loadLanguage: function (language, context) { + if (!languagesCatalog[language]) { + throw new Error("Language '" + language + "' not found."); + } + + // the given language was already loaded + if (-1 < context.loadedLanguages.indexOf(language)) { + return context; + } + + // if the language has a dependency -> load it first + if (languagesCatalog[language].require) { + context = this.loadLanguages(languagesCatalog[language].require, context); + } + + // load the language itself + var languageSource = this.loadFileSource(language); + context.Prism = this.runFileWithContext(languageSource, {Prism: context.Prism}).Prism; + context.loadedLanguages.push(language); + + return context; + }, + + + /** + * Creates a new empty prism instance + * + * @private + * @returns {Prism} + */ + createEmptyPrism: function () { + var coreSource = this.loadFileSource("core"); + var context = this.runFileWithContext(coreSource); + return context.Prism; + }, + + + /** + * Cached file sources, to prevent massive HDD work + * + * @private + * @type {Object.} + */ + fileSourceCache: {}, + + + /** + * Loads the given file source as string + * + * @private + * @param {string} name + * @returns {string} + */ + loadFileSource: function (name) { + return this.fileSourceCache[name] = this.fileSourceCache[name] || fs.readFileSync(__dirname + "/../../components/prism-" + name + ".js", "utf8"); + }, + + + /** + * Runs a VM for a given file source with the given context + * + * @private + * @param {string} fileSource + * @param {*} [context] + * + * @returns {*} + */ + runFileWithContext: function (fileSource, context) { + context = context || {}; + vm.runInNewContext(fileSource, context); + return context; + } +}; diff --git a/docs/_style/prism-master/tests/helper/test-case.js b/docs/_style/prism-master/tests/helper/test-case.js new file mode 100644 index 00000000..cbf51a95 --- /dev/null +++ b/docs/_style/prism-master/tests/helper/test-case.js @@ -0,0 +1,196 @@ +"use strict"; + +var fs = require("fs"); +var assert = require("chai").assert; +var PrismLoader = require("./prism-loader"); +var TokenStreamTransformer = require("./token-stream-transformer"); + +/** + * Handles parsing of a test case file. + * + * + * A test case file consists of at least two parts, separated by a line of dashes. + * This separation line must start at the beginning of the line and consist of at least three dashes. + * + * The test case file can either consist of two parts: + * + * {source code} + * ---- + * {expected token stream} + * + * + * or of three parts: + * + * {source code} + * ---- + * {expected token stream} + * ---- + * {text comment explaining the test case} + * + * If the file contains more than three parts, the remaining parts are just ignored. + * If the file however does not contain at least two parts (so no expected token stream), + * the test case will later be marked as failed. + * + * + * @type {{runTestCase: Function, transformCompiledTokenStream: Function, parseTestCaseFile: Function}} + */ +module.exports = { + + /** + * Runs the given test case file and asserts the result + * + * The passed language identifier can either be a language like "css" or a composed language + * identifier like "css+markup". Composed identifiers can be used for testing language inclusion. + * + * When testing language inclusion, the first given language is the main language which will be passed + * to Prism for highlighting ("css+markup" will result in a call to Prism to highlight with the "css" grammar). + * But it will be ensured, that the additional passed languages will be loaded too. + * + * The languages will be loaded in the order they were provided. + * + * @param {string} languageIdentifier + * @param {string} filePath + */ + runTestCase: function (languageIdentifier, filePath) { + var testCase = this.parseTestCaseFile(filePath); + var usedLanguages = this.parseLanguageNames(languageIdentifier); + + if (null === testCase) { + throw new Error("Test case file has invalid format (or the provided token stream is invalid JSON), please read the docs."); + } + + var Prism = PrismLoader.createInstance(usedLanguages.languages); + // the first language is the main language to highlight + var mainLanguageGrammar = Prism.languages[usedLanguages.mainLanguage]; + var env = { + code: testCase.testSource, + grammar: mainLanguageGrammar, + language: usedLanguages.mainLanguage + }; + Prism.hooks.run('before-tokenize', env); + env.tokens = Prism.tokenize(env.code, env.grammar); + Prism.hooks.run('after-tokenize', env); + var compiledTokenStream = env.tokens; + + var simplifiedTokenStream = TokenStreamTransformer.simplify(compiledTokenStream); + + var tzd = JSON.stringify( simplifiedTokenStream ); var exp = JSON.stringify( testCase.expectedTokenStream ); + var i = 0; var j = 0; var diff = ""; + while ( j < tzd.length ){ if (exp[i] != tzd[j] || i == exp.length) diff += tzd[j]; else i++; j++; } + + // var message = "\nToken Stream: \n" + JSON.stringify( simplifiedTokenStream, null, " " ) + + var message = "\nToken Stream: \n" + tzd + + "\n-----------------------------------------\n" + + "Expected Token Stream: \n" + exp + + "\n-----------------------------------------\n" + diff; + + var result = assert.deepEqual(simplifiedTokenStream, testCase.expectedTokenStream, testCase.comment + message); + }, + + + /** + * Parses the language names and finds the main language. + * + * It is either the last language or the language followed by a exclamation mark “!”. + * There should only be one language with an exclamation mark. + * + * @param {string} languageIdentifier + * + * @returns {{languages: string[], mainLanguage: string}} + */ + parseLanguageNames: function (languageIdentifier) { + var languages = languageIdentifier.split("+"); + var mainLanguage = null; + + languages = languages.map( + function (language) { + var pos = language.indexOf("!"); + + if (-1 < pos) { + if (mainLanguage) { + throw "There are multiple main languages defined."; + } + + mainLanguage = language.replace("!", ""); + return mainLanguage; + } + + return language; + } + ); + + if (!mainLanguage) { + mainLanguage = languages[languages.length-1]; + } + + return { + languages: languages, + mainLanguage: mainLanguage + }; + }, + + + /** + * Parses the test case from the given test case file + * + * @private + * @param {string} filePath + * @returns {{testSource: string, expectedTokenStream: Array.>, comment:string?}|null} + */ + parseTestCaseFile: function (filePath) { + var testCaseSource = fs.readFileSync(filePath, "utf8"); + var testCaseParts = testCaseSource.split(/^-{10,}\w*$/m); + + try { + var testCase = { + testSource: testCaseParts[0].trim(), + expectedTokenStream: JSON.parse(testCaseParts[1]), + comment: null + }; + + // if there are three parts, the third one is the comment + // explaining the test case + if (testCaseParts[2]) { + testCase.comment = testCaseParts[2].trim(); + } + + return testCase; + } + catch (e) { + // the JSON can't be parsed (e.g. it could be empty) + return null; + } + }, + + /** + * Runs the given pieces of codes and asserts their result. + * + * Code is provided as the key and expected result as the value. + * + * @param {string} languageIdentifier + * @param {object} codes + */ + runTestsWithHooks: function (languageIdentifier, codes) { + var usedLanguages = this.parseLanguageNames(languageIdentifier); + var Prism = PrismLoader.createInstance(usedLanguages.languages); + // the first language is the main language to highlight + + for (var code in codes) { + if (codes.hasOwnProperty(code)) { + var env = { + element: {}, + language: usedLanguages.mainLanguage, + grammar: Prism.languages[usedLanguages.mainLanguage], + code: code + }; + Prism.hooks.run('before-highlight', env); + env.highlightedCode = Prism.highlight(env.code, env.grammar, env.language); + Prism.hooks.run('before-insert', env); + env.element.innerHTML = env.highlightedCode; + Prism.hooks.run('after-highlight', env); + Prism.hooks.run('complete', env); + assert.equal(env.highlightedCode, codes[code]); + } + } + } +}; diff --git a/docs/_style/prism-master/tests/helper/test-discovery.js b/docs/_style/prism-master/tests/helper/test-discovery.js new file mode 100644 index 00000000..b2aade1a --- /dev/null +++ b/docs/_style/prism-master/tests/helper/test-discovery.js @@ -0,0 +1,115 @@ +"use strict"; + +var fs = require("fs"); +var path = require("path"); + + +module.exports = { + + /** + * Loads the list of all available tests + * + * @param {string} rootDir + * @returns {Object.} + */ + loadAllTests: function (rootDir) { + var testSuite = {}; + var self = this; + + this.getAllDirectories(rootDir).forEach( + function (language) { + testSuite[language] = self.getAllFiles(path.join(rootDir, language)); + } + ); + + return testSuite; + }, + + /** + * Loads the list of available tests that match the given languages + * + * @param {string} rootDir + * @param {string|string[]} languages + * @returns {Object.} + */ + loadSomeTests: function (rootDir, languages) { + var testSuite = {}; + var self = this; + + this.getSomeDirectories(rootDir, languages).forEach( + function (language) { + testSuite[language] = self.getAllFiles(path.join(rootDir, language)); + } + ); + + return testSuite; + }, + + + /** + * Returns a list of all (sub)directories (just the directory names, not full paths) + * in the given src directory + * + * @param {string} src + * @returns {Array.} + */ + getAllDirectories: function (src) { + return fs.readdirSync(src).filter( + function (file) { + return fs.statSync(path.join(src, file)).isDirectory(); + } + ); + }, + + /** + * Returns a list of all (sub)directories (just the directory names, not full paths) + * in the given src directory, matching the given languages + * + * @param {string} src + * @param {string|string[]} languages + * @returns {Array.} + */ + getSomeDirectories: function (src, languages) { + var self = this; + return fs.readdirSync(src).filter( + function (file) { + return fs.statSync(path.join(src, file)).isDirectory() && self.directoryMatches(file, languages); + } + ); + }, + + /** + * Returns whether a directory matches one of the given languages. + * @param {string} directory + * @param {string|string[]} languages + */ + directoryMatches: function (directory, languages) { + if (!Array.isArray(languages)) { + languages = [languages]; + } + var dirLanguages = directory.split(/!?\+!?/); + return dirLanguages.some(function (lang) { + return languages.indexOf(lang) >= 0; + }); + }, + + + /** + * Returns a list of all full file paths to all files in the given src directory + * + * @private + * @param {string} src + * @returns {Array.} + */ + getAllFiles: function (src) { + return fs.readdirSync(src).filter( + function (fileName) { + return fs.statSync(path.join(src, fileName)).isFile(); + } + ).map( + function (fileName) { + return path.join(src, fileName); + } + ); + } +}; diff --git a/docs/_style/prism-master/tests/helper/token-stream-transformer.js b/docs/_style/prism-master/tests/helper/token-stream-transformer.js new file mode 100644 index 00000000..deb831c4 --- /dev/null +++ b/docs/_style/prism-master/tests/helper/token-stream-transformer.js @@ -0,0 +1,32 @@ +"use strict"; + + +module.exports = { + /** + * Simplifies the token stream to ease the matching with the expected token stream. + * + * * Strings are kept as-is + * * In arrays each value is transformed individually + * * Values that are empty (empty arrays or strings only containing whitespace) + * + * + * @param {Array} tokenStream + * @returns {Array.} + */ + simplify: function (tokenStream) { + if (Array.isArray(tokenStream)) { + return tokenStream + .map(this.simplify.bind(this)) + .filter(function (value) { + return !(Array.isArray(value) && !value.length) && !(typeof value === "string" && !value.trim().length); + } + ); + } + else if (typeof tokenStream === "object") { + return [tokenStream.type, this.simplify(tokenStream.content)]; + } + else { + return tokenStream; + } + } +}; diff --git a/docs/_style/prism-master/tests/languages/abap/comment_feature.test b/docs/_style/prism-master/tests/languages/abap/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e0f28feba3d7df45f10f21bcda3873189760a09f GIT binary patch literal 201 zcmdPm<Q4a&bm0CFkenrskC>=_n{^DaGnwh(Rq&PYwpE>=j(FH(S7S*!;Dtc5C9 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/abap/eol-comment_feature.test b/docs/_style/prism-master/tests/languages/abap/eol-comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f29fc84a5d3e1054e6cc062793fec3d5818c4e07 GIT binary patch literal 215 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 J@4x=j{{i-fA0+?) literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/abap/number_feature.test b/docs/_style/prism-master/tests/languages/abap/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0c9556e708b4621d81a1ef7dd826dd0c46d78957 GIT binary patch literal 224 zcmXruToQ5QW#VSd5X7V^$y= zoi`y|PB4K@(2Zz?53V(D{C3P_Xg8I?RA0!}Zf$U>=vB#r-Dz`o$d^~FdL+6ILp&Do z;kL8KD*2S^{7l0W&d;h}2D|jxno+X(&yTp;>U!tl)jIh0-e>T`a}UZiaBr^9DS6py m*lX3qF9(ec;I(_#9<14aK&5Ndc@07P5bIssx%P0-P5ueTwey(( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/abap/string-template_feature.test b/docs/_style/prism-master/tests/languages/abap/string-template_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7979fbefa069ef7119334f36d449ba47dda2a77a GIT binary patch literal 539 zcmb_ZF%H8Z44jL^A1u$IpXf871F1+`r411<75IBhP&TrlA`2Ov@37BlvUb!iah51k zX;e|?;|UQ6gG~32DmW7zr|=|a7m2~nW)XHZP6z9708DrvK%x)sy*x!Q-}R$|DM)Rr z!fjrUq$&gM6aHHn&IBU?)GF>yVo6&@2!0uTd*p;Sx)P#DPO<Q4a&bm06_*rc=A|p? zC@86`E5+)di-FvMT{s5fFigpW1T118hhrCxf%rrzmX`~N$oGzOMrv|)u|isYkpjd| G#d-kBMNU5e literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/actionscript/keyword_feature.test b/docs/_style/prism-master/tests/languages/actionscript/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c41a8524e5f95a1cc67505bee4924cff5b8ecfee GIT binary patch literal 2895 zcmbuBL2l$A5JlHx$#+0rXXXN4&M{h95L}K?(_jJa9^Za`(M}eTB7M(zflK&RbwNYb zw`DYMS?qN*&KA+Jx&^ObOBwslrC91{CYkLPnh~S|o6=|`z@hKtPn9?!&g`QNVTX}2 zhAq14Qyh(-LHXMnidHsm^HabbO+Ewywokndo;$apZ(N=%Q&qjG**g^oY zT6eYYm|U~JTTN=ssfw#I!Q9@0ccaNtw;Vy2Z53oy9=@%wE*iEjIU!)pJBYfkEsIUJ z;cfxnlSin>;)7-cPi)MzM|;!AVs)R|nn&|46@-s2Y?G#GZ&Hw7GoP8KyX5TkV`(f_ zT@j}5`tIjHJnDDpyC0X~D*GelX?QV%EyL@JxeTjr{f77{>hy@&uW0+vXBy+0Jd1)$!$(=>`DgV$!5>AQ_h`L<#-A;N##>|I>DGT} zT-($M7~PDg^UkxaHPSdbD9xhL@+|r>4Y#(<(`fEAd}sigSE)e5t(wy`ga^$Y@`UC; sRm=$w6+1Nkp^0b*NGG0c0_!`x?_U2$di`F+U5g4`1IcR+4OV{r1&Re`qW}N^ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/actionscript/operator_feature.test b/docs/_style/prism-master/tests/languages/actionscript/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..14c007c75bb0dbf73728364cbc267550d6dbaebd GIT binary patch literal 1107 zcmbW0L2AP=5JlG&=nmfoYhgw81vE;a#|SZml2T~E!O2qO>=^~R2=iC5$9VMoXTHFi zh=dUn2F%_?K@yCDNiYaz@h%_)RMe`eXfCK4Rlj89jDpgl=u&hoC>qbFsH8(D(7UD5 z-kRL8#ZIjvQu5Bb^v2cd_TGK$`{i<4kGEy*H|S%3*x(fRV%BF*?z=Xe>W*-tkOMZTb&6jR#qr$&}=-D{pd*~JsB$$KB;l) yY|oCAGt`*vCsazcck8{iXvb_K8w{Nc?=;>Yz^~ua_umyi%ZlUqjQ>fzem($i86F$} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ada/attr-name_feature.test b/docs/_style/prism-master/tests/languages/ada/attr-name_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c30a2f57d232adc0c7d11844e16237b019f3e8ad GIT binary patch literal 275 zcmeawD@jdHEm9B8tV-qOa?VIBN=z;R^1~8yc)57Fbjbi9ebKyJoY6{UiA9--Nja%X zItogj5Q~&zbrhnN5=%;obn_B(!7^aGf#Mii;I6@@3FttjSY9q5BHxwH8L7$H#R_Tp QMG7DnWhRxDq!#M|0G(<>)Bpeg literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ada/boolean_feature.test b/docs/_style/prism-master/tests/languages/ada/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4019c444f8b53c40620226d2914ad19fd46effee GIT binary patch literal 201 zcmXRZDoy3(N=wWs22#9Sx?}*5zGz-9&S<5i{QR8M#5^S(1*H<8xk|A*=)z!&lwx_g YfQWqCoHJ6Bvx^nd@{1IpRu=040MAk^8UO$Q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ada/char_feature.test b/docs/_style/prism-master/tests/languages/ada/char_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..145f2cee8b6e7f3a53fe2ab63cfd18e3be28d7f7 GIT binary patch literal 186 zcmY#SQ|IMUcLWl=T)JcckiKYMF3xDBk`VRdCDCS4c`M;^hMINCzN&(Y#!o(Mrkrxw)x%B}zI9O1ipAu{xN7FuRmu adAWdyd<&g3Qj@cb71HvH6ri>i>j40SqbpYc literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ada/keyword_feature.test b/docs/_style/prism-master/tests/languages/ada/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e5c815f22f653fc6be3a7ca323e0528ef8fdd53e GIT binary patch literal 2409 zcmbW2L2lbH5JlG&pgR~|r@2Iq5oAGAV|ieSREJb-_w@Zk$w-0zZW08f^gf65*qlG% zl&$t%IF&Y33(;R=lx3fbE0cyIgFj3dl0TV+2PUjK$*2ia9snX1V$7-3kRT2cr(i&X zOdf!#2246?#m+T1{vNY9x3BuUi}D0lx%nq9psc0Omru%@`dQIeR( zz8iDJrXKE}N>dd(hlmpt=S@0m^-QLmm%f`b9#h6{Y4y}HqH?{6VQF50^QV~UplR&8 zCB$nOvC(2-oRP$0`Wb2iIm)nlnv3Nsu^nMSJuwT(gG^#JoMtlnkislD#N^j1Ym;%3 zFE277-sdG)+r8x3`Fg64#UCCiUMwg5?RnHNj@w+WcoUm7wJ2nP^tX^TRYi8I?|*Cj zcG1aSv|jq|?%!nJ{rtwC$G!L6kN4wM9ycU-d^sG0U#jEB%fGyE+O8dw+CBV_Q0Qjc zO=Tg|#Aq5A^~=pT%c@;}ve@f^U@s7c_lhCXUP4qsO>tfWD;!IZxm3X!)CLxpl>_}PP)hUUXC8XLi_Z81)L$r~G4 i+&UfOXnh2u7al+Q4*%b8h;J8(*K&XX9rmtRUjG1L9K9C+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ada/number_feature.test b/docs/_style/prism-master/tests/languages/ada/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a27f1af82c908b4dcd4b9e34a8a3075a07b17d10 GIT binary patch literal 368 zcmXpp;^i_iiZ?JY;N>#bGc<`eG>y09(DLW;m z#JeRXrz*SZ8XLtM@^bNV>5>6J`l5NcIHQ&FN^_G^i|%wq{2~R2FN^g6GvH5| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ada/operator_feature.test b/docs/_style/prism-master/tests/languages/ada/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..21a313746d60ba519f0378c03aa22e44be669b35 GIT binary patch literal 492 zcmbV|F$%*l3`OS(bcc_J3{G6{LDte^gbbym6gs##y+5^w4y`psm_Iz8W&A~%l44Fw z0;#FcnhCMyfDwVo!+S&~rf^`|y@lztxcu76^_`2G;6&Xzbu=}KUvo~DDZMDBXlztd pZ1C^tXo^EGjy(z$b^r6d=M5I!%2dzs!Y_~Q_S|vL1>e^9^9Kyrb!z|s literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ada/string_feature.test b/docs/_style/prism-master/tests/languages/ada/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c44e9cd0171099d4e51b75654baa1b5d51035a55 GIT binary patch literal 216 zcmY#V;^k6u%g&EJ@|%O3TlWPf9E@G2-Ro<Q4a&bm0l_eHsCMM;iD(NUFIROn&CA6Zt(2Ufo12-fBX5_ zafp+ahKy5vMIy1^7r*y;w&T2)!=qVx8J_Xz+8;B16!;`To*yvzZ~xWS=Al#NfNtph zYRUy;61OHin#Jh;wnac^2Vok%oZc$(Ui6ZtH#paB>VfWKpEH_9{1#zn&MsmyVTqG4 zI^#@<Bovtq*9s zyc7Ii@k|F2JENef1kUh6b8t@fy zcD1wpHcHa%U8S_|fyTaf%sfA2=$BJAeM9J_@<4YhmeXiF6LFkIf~P!?y5fA-Gr zITS(iMU(rgX>_bbnx1GcnfqOl<9RRmXJUvMn)?F9VMa0fyHLb^2PkqYta^64pjU17KA^^k!Cg z{54z{;=S(w77XpYEfIODEy{Rnwst*8Z|#9z#J5rrNBO)(@+*s^{V!|_j;{a! literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/apacheconf/directive-flags_feature.test b/docs/_style/prism-master/tests/languages/apacheconf/directive-flags_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0bb206ecba91ca90fcc5960c9defb5413241f1c7 GIT binary patch literal 228 zcma#{4~pgGiuTb740Z%Ec)4`R03dzQyj+~oN-3E|smUdoWvRMpIf?1TN;(Qk(LfuN iVs&szL#$Q;T27Ju&Kar6*~JQJ`9%tFM<{?Dp$7m3?KCR@ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/apacheconf/directive-inline_feature.test b/docs/_style/prism-master/tests/languages/apacheconf/directive-inline_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6b4df43b26d2dcb50355274e46e9fb7ce444161e GIT binary patch literal 35174 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 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/apacheconf/string_feature.test b/docs/_style/prism-master/tests/languages/apacheconf/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d2849caf0b5b862a1681cef9af7f53de16e1e7d4 GIT binary patch literal 370 zcmY#N%gjR<30R?Lu!GNyj;3u0Fb_DUM|jPrQ(vJ z%)E3Z9R(1VQz=FXYFUgD&~VP!SRHJt;4Z?W2510CFVKpz#G=f^q?}ZsCFt%48xOJ- xVh}G^EG0g2&PYwpE>=j(FH(Sbt5}bh%Q2@oUm+PG19MHWLS|lZW=bktDF7M;R_Oo$ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/apacheconf/variable_feature.test b/docs/_style/prism-master/tests/languages/apacheconf/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..025fe75b7a93f4eec31be233fa7c2679c7821057 GIT binary patch literal 266 zcmY!>$S*44 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/apl/assignment_feature.test b/docs/_style/prism-master/tests/languages/apl/assignment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b06cb39b2b992eb18eb80493c11f30023c9752fb GIT binary patch literal 239 zcmYd%)HcCT!AQZFmy4H6mka>X7tPDXsg$Us1Eivr5{rv7)AMpu^GcL-6qJC*E5$-2 u@=9})Qj0)>hCm^OXeESz5xRh}QY|%wq{2~Q}i}V0K>ovsy literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/apl/comment_feature.test b/docs/_style/prism-master/tests/languages/apl/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a308451082d0ea28a70a2ad92dd59eae59200ed2 GIT binary patch literal 272 zcmaFVJC~R1QSV#@xBUF1#3EiUWkvnc;v)T|%sl$wj)D@Q4a&bm0CFkcAmn7zuDCsCDJ?dSf u6svdk*^4;s4k(!)ctdN#pqyTetu^s?7$VVjr literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/apl/dfn_feature.test b/docs/_style/prism-master/tests/languages/apl/dfn_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ef4be35c77b3a73617aaf8b2c625c430877554e5 GIT binary patch literal 442 zcmb<6uzl3K1&nrCsb{3-JnC*yc+}B;XvL%6t+l*dyj;3u0Fb_DUM|jPrIfTh zB^?E&YNc2mFh8#}Hz~CUBxC>+N-NDvF3HRXtFy%>2y`IXJLn~miF!jA# g(L`#MVtKiMi2Sg0&PYwpE>=j(FH&$x%PZCc0FCK({Qv*} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/apl/dyadic-operator_feature.test b/docs/_style/prism-master/tests/languages/apl/dyadic-operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..bd141edef64f82060c48ec918934a7525171d14e GIT binary patch literal 406 zcmdN>c+|TXh!^m3J?dSe@Tg;k!lRxYyj%`IY8NjTFPAPE0HiOPmy0u6DWx(oB{Nw! zzaX_Ju_V7pNk>6RPbpSM0jmtqC3xf(0OfF*33NJcogFi9%k}KQW2yrleY=!mdAWdy Z`~Y&!NKMWzR!GY)QhVxk!=ht3V9we13l5o!QAqTF#N254IJDp2T4wu{V=CQoWN{e@Q{ElVmJ$)Rhzz z-?o*N*q=*I^0?xEAbCej5K{mT7Wx32HDYC34SX#T3*c>H^@+t^TzsyPhDV8m5fUGX z>PxH!04+otAW&Fz5*ZwI7x9+RIVgTt4-vft%mAiHnur#Fk7v;vEL0>Xs1|FQ(m_&@~Z`B=roBL>r6<)IK#(eWFzZ0)rNVZR#2*rtMH|$ZDlY>te)E zgMc(8rV#lDddOgpyOPt4QN|3K3?{o}P7|L^6TP8YMTXRgJ*&dL*cRTG57OI*`_fZQ M%GGE2ou;*$ADn|P)c^nh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/apl/monadic-operator_feature.test b/docs/_style/prism-master/tests/languages/apl/monadic-operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0dcc9b088cec0edf9b92428d7acc8c3ae20d75a9 GIT binary patch literal 443 zcma!1&{ufWvtQv+Zv!vap%p+HhR8Il#ml8j1_0@c=H=pyR?5xKOH9d3 z*3BP9Biq%oTE~k%M3g}EclD!Q;Nt{+5T7ge1KFOYK_{>$qV{FG# frC44rAR<2uoikFCvx^nd@{1Ip0jU5B$YMPJc;$n9 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/apl/number_feature.test b/docs/_style/prism-master/tests/languages/apl/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..815d1ca8b096d8a06d91d1e3bf36bbf27c88497c GIT binary patch literal 420 zcmXpp;^i{dGc++YwdCbGv>wQN)G-ezSW{0wVH*#5p51IlEXPEx$+s5-!Dh04AJd2><{9 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/apl/statement_feature.test b/docs/_style/prism-master/tests/languages/apl/statement_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..24c68744e18b707a4bdd8a1f62bcc458208e7d4e GIT binary patch literal 209 zcmcC=OycFTa?8(mN-W~#;^opM1Az2J^Kx-UD;1X{mZavU=9MVvC@5JuCMm`0U=fGd crWDJ|1w`aq>70?8oL#JtmS3a*x3^di0L%6+0{{R3 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/apl/string_feature.test b/docs/_style/prism-master/tests/languages/apl/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8bc8dd1bbfe8b58ba23b49dc41d95672a7eede90 GIT binary patch literal 240 zcmY#a=jBpQ%g;|rEP}Aq)uC)&E?qJJFBdOYG%putv{G?NQD$Dcl8%Csy1G)V4!RiB hPOLIeHz>vOasd(f4sp&%P0lV>NXsu$fVieu4*=t)G=l&D literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/apl/system-function_feature.test b/docs/_style/prism-master/tests/languages/apl/system-function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..81cbcaa11166a3bbaf45661d02044d38c529da4b GIT binary patch literal 309 zcmaFVH`UXhm+MjA)Nn^IhkdC4W2 z`FTn@3Q9nmJpGkob@0fCJK~pj4#F=Fa=TJ2FBcGz?*ZqG)a2}9g|z%41&A*cV7@5U F0|3VXRN(*s literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/applescript/class_feature.test b/docs/_style/prism-master/tests/languages/applescript/class_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..547906deabc9fdfca144e78a47cd16af178362ac GIT binary patch literal 1955 zcmbVN&5qk35Iz^l?=bRt+lS~%t*RcnYA=;mdmv!ofNOJ4HOA2WLZsX*uuE59;aL zk1s#7d{7>>1CM6*ds+_YaWXil@1H-CKR1(hFy3AwMEn!M;1ul{qelu?_UHo~5Gkyk z%!vfA*3CtyY?DesXra@f&Xiq%zuNEV5PmJ%Q^w>4%KpkpizHtKVVBjMT~}caP&7*% zv+S&?iRU63B>85YoC>_E4try8q}cPzu}kco(J{rdCc4yA7Ipp zUgOIHTw@#AgrrbUpzN&mvC@)M+klCs!ai|UK!w2qO?(y*vzx#+%0~81l(;XPa3^$N z>5I-oZIe#IT_YT&9um;nMMTCs5~7cgBytke*2y##np+p$7WBTE-$I)^s|%TXSg7VM z=rl_kmc*|a);4#43$47*x5#VS?WJte`<7`=h$4#F?OM3?|MPBgqzLD1f8#1xP~Wkw zqz;_^imIrukwv%bD1%C5$78Dpd*3|Lgl3*M g$~y`?HpiDi(f{qU^YMh{mA-qk2b%Z%0mks*AG!2s+W-In literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/applescript/comment_feature.test b/docs/_style/prism-master/tests/languages/applescript/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d823ba429a69e95d5be05b89c22a4eae2c3adb53 GIT binary patch literal 405 zcmbV|!3x4K42I7J@(!V1Tv_)H;$v((%$n)2YoYCYep}`?5b>~5X!7Sz_)?{)caE-| zM>uZbN#+s1VL3IMQ2}OK!t2HspG; J9AcVMy#f9^Wy=5n literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/applescript/keyword_feature.test b/docs/_style/prism-master/tests/languages/applescript/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..bde63a16c1fac951fd155c1db6ad55da4daf7288 GIT binary patch literal 2742 zcmbVO!E&Q83_UM1{DUUvZhvAwqtk;40z4%)Yn#yg{XUr_(<1Gq9cr8>AxpBQXV=BG zkn7@=$qj`QxzYKMOWU}`r9wlB7tB*!Lyvd%JwLEQojZR}$3skv*XTp=VZ?0mp~q{E zTibLT*p&%C>$e@3jX6+fvAt1iTya?Yo0R`iwpdBbu)2F zF%e%m-H1Ou+#Q^#41R$2;8TX{&=}&H$^VpsX zjriI16bG4?NIsJDz+9oqH(Nl(_86k?@?8BKceo8PoV(G&3j6sBDf|)XL+h7Qo z`P5^?o{b_*D;0lXxB~@DG9jdrT*&TRJlrh_IWGx8tk{5=wu!N!+vE}2Hbta$^Rljt z)k@p^{=r|{w9Q-F{CYcm@NJ8!KfTZiM{g~s_ZK>%SJtQ;P>t>f7PzwgJi(T*9%)PP zJmZ#7`zl2M&F=y1MPb1AA~7UVGzN?!0(uPXUR8#^cyGY9>NIZTzPlOgeJN9A2M5qlOE6XR?+< ztI`&vbtx3BOk>j8G+J97;A3!pP`Zy^s0CtI8F)5JQ&^%lqj$gN{d)zW+o~_6`x>j% zcC3^y`rz#CT5DRTwDxnQ8g;s&&bIV_!_S=%ECG(AT1pth1cgDgpjPs6b9RbR$~)!! z2L=T}aH}ch&{2Rumf6`np!W(6m+uZ5yCAh|6 X{QS1?XX5imt`|9n+s^&kkYE1+ONLj7 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/applescript/number_feature.test b/docs/_style/prism-master/tests/languages/applescript/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..96eb6f2862202adcc1a908c7fd2d24e9216366be GIT binary patch literal 258 zcmXpp;^i{dGc++YwFEL!4Gnm?O!SOgbxnD>c)4`R03dzQyj+~oN_nNZNvTCjItofA sMoO_dXkt)Hu}AHU6RkA?Zl34PGAGC_Ye4a#Ltryr*H-kVvSyOBZ)>(t=jZ|4qh zqi?(3FLmG2BFJq<2y0~cl@zVf7JB1gXL_g5#0d0X(_V@w2!E{Kx|KhC}%1OW&d>l#MkdkXg#>{uDNzIB?qWwO zNvMjtzG5x!P$liGAyUUGamd5M5KC{~+qjWjIu<3B^MBH?n32gGrvAsxB+)yrIH%$# zdkm?0a+lMCc!!j?+|rfiuBgj?;HkpN+H}bezOqUJvQExD`>vZ*Sw^B+AIQb4&n#Eu zvvE*5b_!4B@G%D!F~OCp!!oGdw{#MmIGi2_QALs_Q^_FCDz1hzhK(1TW*o%v#z8e+ mb&&)dn$49I`1|=O`2C=FKP=$?6*yL{1B1i&pdpS$`|S-nAR-U| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/applescript/string_feature.test b/docs/_style/prism-master/tests/languages/applescript/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..42770f6156980519cc220c042395b28fdaad6d04 GIT binary patch literal 206 zcmY#V;^k6G%g@%#sWRb%nyx{F2mSUM^lPT`~YjUohinNi0bOQmJ_po6dp!(6Bo%gY5sSW{0wVG) Ua?VIi&MsC+%P&%Z*jB6u0049)(EtDd literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/arff/string_feature.test b/docs/_style/prism-master/tests/languages/arff/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c3178f17b13a87eb41f94f1127aaacca56ee82dc GIT binary patch literal 294 zcmY#N$uCXHNmVE;%`Zt!iBVElP*o@{Day=CSK{STF9yMkUsv}~Moe`s?6sv=#0o7eGN-@YTQ;Ox~0wVIA=bVw6oL#JtmR|%7 HiDEqf`8i5E literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/admonition_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/admonition_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6b1688f59b54522bf910458b27248cf5d066ce5b GIT binary patch literal 460 zcmWIX46ssg%g;|rEaK(z^AB+a^AvzwAgHK1N=(Vk&&w>y%+FKOQBVp2x>G3@$bdRFrYHs|jzuBZ z4{((*kKj~}@E=?c(C;{v!~70cOwa;YxWIJ)jaTC3iUoO;jPTI~>2uCVP0lV>NXsu$ JK!j4U9sv9!cM|{r literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/attribute-entry_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/attribute-entry_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a12299ab8863526caeb5bb19e133a5b62670d351 GIT binary patch literal 1006 zcmbu8O%8%E5QWz^=^bjfS`W~~m5G-S7C>qskk-_)&~SJ=Q!K_<@rMNr?VDk~H%0D^ zVP#>Zzg;PzMEV7Mhm92_J`Rt#3-YCmN(d?0!WGv3FEh*n@GkvZCxv)%rf6 ze-Ci#b>;fPHAX}8XlE$RCE>%Ni1bg^3~}SL up}%cgGW>g9Pu*uee|ww@!cdX}&JX8SK;EuaReNSfV_5`YaC#ec-rN8=jt~(5 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/attributes_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/attributes_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a4eb9e25f9ce20a3b9bc9bd9a6b889a79a154b96 GIT binary patch literal 9311 zcmeHM-EZ4A5P!A-{|_3IE@`I3OShpw2JfX<9|kmgXkQB1X=s_Yg~*~O(fNSm|9y9q zL{X&Zucku>I4`kC9`E?OpSmCEY{B9$fAMLO@g&F} zz2b3jqHXiz(J#OL{t$_&cSe&lFPhN_lVkbMt1;&n^JEeXywgt~UZW(KaQ*kEKXH#J z)_=6!`GueVnr}qOo@kXORmtK~vFto9`d; zIO`GS&-@$zkBs;a(MU{tkw4aM#&j%>?48;;b49b`a z_Bf+rdKDbM^Lk#N#`7ule)9T5CaCxMX4#+6*^I7mh|RMo=E*UHGtI&XE)dGyK6W2_ z%hO9g8hejF^nQNrpTeGE3E6;+qlArCat0=@R<|IktL$fs*_UO~yIkG$qhu_ey#6?) z;qr2|d~=hmP*bOUzQ>=u@tt;y;B_ND{0c~v#9$8by#OBJnF^6c!-ZgQS@SU%oG+44 zEGXW27$pH2pm4eT{GP@O+=4hWU?pH|HNZ5`Y7O!YElo!t=#e6OqCuu9umI$xIQ(xi z-x5LVVIw?fWx34B`9!0Ixq(~nk7qJf$ZX%J!iUjZB1!~H=P46xLmpQF(%^tI^gE$=TP^3noCMSamgGD^ zX?57PA?PH5K<$=ZE$Rv?vQJpq`?>=qW%HPZYz8Mmh>`Y`2wT=|A4LG()_K6nGsw3Z z(fNuny{BnJhq27SNZg7u287R9N(E2x@I5t}L4pTP2V;E~;p-E%+PK*-XlAB#G}~EE z&`3O$fMHaXKXoVylB$H7wdiOVZ1$U@Aer(8`|2pXRjUmMG{5W;pO^>&QbP?0yHc_l zvXa@mv1)dXd=J<`548Jffu_Az^PKz2Z zd_&r;>YiErH!>qoVOW@-N)KJC=eHheq9*H@;c4Roq>P9rw!Vpy+;8l{56HkCve)@g*}E1Ifb zHe|*1-S@_s)|Lg_Z7zmNm31|4W!qNPZzF9*9v|Gb26&oe?Ua>meS0~ z@-J|T6B_$HAGlgWEyuEZ;A;3TTYX(PaJ79u-yXOc1XAro93-vv?+yp9wuWNXi|T=^ zVFK6dzwELW1rMei)Y3q)`VIynMv-(B{{vTph8cp7P#WC}3q$QqR`(S)vNyWwf6CQL z=2atWwY*pVV4|9pIr}hzu&l&8!!65?*4D6Gb6h&0MPysH>dRJ*S*#94^*fB^t XZ2)io_WZjk3-2;-%u}yQRu}&QGI_&5 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/callout_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/callout_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b7de9b1bcb055d4b096b0c0da715415f009bb8e9 GIT binary patch literal 608 zcmbVJK?=e!5Ih^$KZHG3!Ml1;=qK79(o#_@jil+N_;_byJQO2JL&zqXX=f&zTU#5a zciRIgEIPNA6zb79Qc@;Tq#k<=6oG%zBbn5C!4S2A)QY1LXS(3Vbe$bN_6(0)WgsMO zHH*K}l|6qj!e<~LSDGNd4frJZn-he*sk>H;-~`?K*f)MO{%WD4ImCT=N`Mgv&gA93 q=J_MgoRUg3XUrpoH%T~@)^det6&B3peLG#+<~HcFbvkxz*gOILppp{+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/comment-block_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/comment-block_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4c4248edf5685a84973bfd458dafe33de599a39a GIT binary patch literal 283 zcmdPb*VpIe0un$HM!V(bCnXkv_)dvcFhO1}T`~a3kZ4{m&S<6N{M_8syb|4{oc!c$ zB^?DNkex9_F?k?bDOLx+B8Zbf%0U?DEQC&8u2_&QWH?S2q|Z4cH95OjAuYd10qR5r IuoH{*0Q^!wrT_o{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/comment_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c2ccc51b5069aa85417bc8845d38a90647718649 GIT binary patch literal 601 zcmbV}I}U>|42I`g@*Sd#6*MR4RH>Ih3=pNF;^7Ly#^Ff}janY9gqKAA?cbjhr4W=7 zccMIN5fIKCKKUiQ(+IeNo%Ku;o2IfXcJ^6tTi+$g%FuLr-gIX~ocb5^^&5W4< literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/entity_feature.js b/docs/_style/prism-master/tests/languages/asciidoc/entity_feature.js new file mode 100644 index 00000000..2e99cd10 --- /dev/null +++ b/docs/_style/prism-master/tests/languages/asciidoc/entity_feature.js @@ -0,0 +1,4 @@ +module.exports = { + '➊': '&#x278a;', + '¶': '&#182;' +}; \ No newline at end of file diff --git a/docs/_style/prism-master/tests/languages/asciidoc/entity_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/entity_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a3d5ce817593d6aae329367c926e60d8717bfedb GIT binary patch literal 916 zcmbtSO$)*>3_V-ue<&5Uixu2OK|J|0#tz$zSd>k=3>5tFru(Q{=VjVco4maDk|tO_ zqU|o-i(t9gMSIRT3;fVwa4aAWJxG|?uu@-YZIH89%Rm>>@dRDYGR!}XA_qxcjPEnVI6&(!eAZZ|rq|-?ejm~O>>LcdW z#;qqJ)dhmN8$dYq=&4lL!RNdF%4Pd+%}&$FsFe~gU{rQ1^K0*JG6$txGxL6ADsHI; sgTyo&ewa7IZjYR}pLU6VT{)q~8fV?||F*iv3*^^IoJ%7bUmB|Q8>2+oiU0rr literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/hr_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/hr_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..822a7dbb456abacfc88b35345a06fe6e2fde422d GIT binary patch literal 195 zcmY#aSLfy8b4F@% OcCkWQevv{(ksbi-NFodX literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/indented-block_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/indented-block_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c6d665754aa832de4feba4cc0596381337dbcd4c GIT binary patch literal 599 zcmbVIv1-FG5S?rAKOCCckT`oFLn(CY<}D6JwlCHZMWWJW>CkWQNv_+v&<;5yc<=6> zt@o<3D2u!M`sD%I_T+u1L)%JcCtwGieoJ$B_8wN!Sxp_-Zc|GdGTZMzv7o#R05!2i znMu8;nqZY`0n1`@L#4kQmUV$v1{&p;6ZzFsNFQir|1Mg+zvavcN(x?FImJ^=Ql Bp!xs+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/inline_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/inline_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d88a57080cd1a027196a6113c7eb14373058418b GIT binary patch literal 11872 zcmeHNZExZ@5dPdq`48E^iWb_HZa-FSccuFoEQJ6rM5PIrmsM}K?Qg%CaqJ|HF-}TP ztOQaE8Bd-Wk0+kTj;HKtyAIMYox09!wv6-nhI#+wamLcY07PjRtx5?9p5iD@x50wV zTxTF|2F+obC2_PGy3Rc4YY@Xkr1Fw6!e5Z8g?D9OWlNax}YA)3vQem3cFkh`X+P=Ya}lW(QmQ=O4F%` z$aD(ETnA)B5t*Toj4BZtmBP_BNYiYc#QADH8p(!U8N!}W?)NLY{k{;trTIKvB;huD z6QcVx-?D@Y?}hMpkY!0Y&og$Fum_f~Xu)1Z<9HlIi*=k#CZ%LN59gaOUM0bH{jVq5 zrNYh4GvM6ai5t$(&%_WvaZw7Tj6|+;3m?b{88R4v56-~q_`tBrk%1(tjtO2W zqXAh}83)%=rdQyNA*3Z7Vc`!m?&>{VQTt6zSqU-s&kpX-<3 z6SiW{+iQ~k#lOBv4uiewSzQO1&MoGY+5pyfJO9X@#9 z*mcgvei&`Si20WuUgC8YY{CUzkNs^PEwVhw!Z-qfKlLZ@UrY_CqS3(dJ)2A}wcrZi zY(|K+3a5h|4E#2z1X?SSTF~~GvWV*Npf84=8^Q{m+Y?sMFoty=ZTJp>sP zXT=WgHh?9%qfxpKwZtpdcshK=otCS-7Qhrv%Y|NBSmP>(QyBxKp}5*F_YC;Et0|Ak z-W8t#TNyr^>PcB^4{1@z_8}SqJZ-^V3_kA;u{B{apsPW)i85yoZ9qBdo`NoDi9N7A z6S2o^MLz6dflNSIlzZ^HSshex8s&Rd7V{af2ZFSq7zWT9K|r?})A#{cg~9&&i9{#x zj@+SxEnB)^fL0#T77U>cD5aB;byO16Q1GFNau~kHepV1sJwu@VbFiyLd!Yv2RNoyw zafe1cloa9nASdonyfLt;YL(=s_YbxA5s-08giqW-jYy0A4f|<{NCA|&6L&aqhsLCL z;ts`DgZ=Y#wA`Vf0yXj=xoNs{j{$j{pa}3rdYiC}(K|>KHfL>I^iqqDFJFj-msvIT zcdxbJJ`Z=rbi|$Zg@N*TKEC^>ZEn43v@GepQcqxa3Ysg#Da>dGPfwhRjg_-ApN<%O zNJk(%=y0R*q3xQhWdymt95y^bBu1`@gX;>s0a~g%mUKFzY>Hud6J#+4-sihXa0lD~ zhbMML`c;&2;U!r3-+cTgTt8wTKm7qdBEO>SIN~^d{sVmcE`8+ZfOHeswbbE9h%9uz z9_7P_FOGQ9oH|QKrLL8swH`GOK8Kz)q2%JpGBHMDUq82l8Wq~2HYj!S<0p5pkH_7P z-Ob_*Ug@S1sB+}79%EIt8+_M+>fZe{-`{JtcuawnBwn!Dc#p85lzQ=l#|tn&KECua I_MCnB4-Y{OQ~&?~ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/line-continuation_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/line-continuation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..651fa81fa397a73ffca70a260d46a63cec772c69 GIT binary patch literal 319 zcmbVHK?=h_2s~Ht58^S&_7jDCBFQ0HQo6Kg+1>oV+Dp;S#^CPg@p*eFG~+B}+@QPKoid^x=2LXt$}hhtk^y#OR-y z$$Wp3HEF8glbrdM3E~G4R;AhlHlUi%X= zQU8kv049+!fr)&BV4_D1#=WzAhWmxC3M^ZFZn=YPZQ3Plf4 bK_LjAxNM2Uz3)wZZ1Ia6%9+Fd%C&F5W}-c1 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/list-punctuation_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/list-punctuation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..60dbf13cb588697dfc404982c032a9b159a903e4 GIT binary patch literal 1673 zcmbW1&5DCC5Xa93@(#gUWfhdY_Oc86616Nz=~8KFinT?g55F_{GK$8wIhe`hmzh6f zCMo-ol9I$sYG#7h;7W`$$}_zi70S@t(WhQ1&>c62G(w3vn34R-N&3d1gpv)Y z*~F*n+N77;dDq-{Q^|Au!QwRD!WX5NbqStXFnJp6Ni5P**rdl1Et`ObJR67zvPI8Y z89^Sd%OH3_23(?{=moZiof1>)*=j$nB^#1>g9B>#OSE{2?uK+g1+;=IwXH}P@A<_$ zQmtIKxoi&mIu$3mJ3<#?dqRJXS`%LhNT>Ivde_9y zos^j#x8*K;a55R>+G0j^FB>jS`&o7PR5^8{U=O!3B^%y0T}AHenImDN)iX b*`oM2Uda^CeINF_DsK;tl z@sUNhTXXib7P@t+lRDpNTOGv&D2n0JU@A9A*II)?LEK_Hp?_l2ZA@$to$pK%9=R5k z)Y=Y?7*KOeFglpR&91maI*4E))l4M&Tm)ekVnk95YT0^4|MehrGgd);r9!vPChl}6 zJl*zGUfKw9XS5+!7#SS^*bxFGh9}OubLJ+|o5R_b=H!vNx?(Bsy;0S%hrR6}3>o+# z>p_|tL%nOwA%v!!z3JXUHRiZRIxyBXgg7YIL(?7_jgM0`w5D%s1?qfKm4hI?M~Xkd CCi*7; literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/macro_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/macro_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..50ee1616096a8978e898045e1bf435b880907dda GIT binary patch literal 5621 zcmeI0%Wk7E6o%JC$~z#h1J$HEB&2C)G*2))nuSAM@B}adr;SE^_&LXzm|#N4Wj0l^ zNCXF8{^R5SGkFt27DBQhdMaGDqj{Mz_f6mQSMwP!UfE8vDi5OHJYiM6c;<;4Q&~fB zK1-!6gNKKYj}QM<#A_iozNnIi=%-yLOiED zlOm`q8gEjXe^2m+AB#LvgYcXtEU4p(vBHz-HeVMQFN-8f8BbCfJ}ws-FE$}*9>Ne& zO~cUrC4}4b0J{7?WfHC2FvQ7w-h9?-{hA3th4a~G2p{T0!4T-ftJn5bwzb0U({ zxDsUH;uT!JZHriPQNSJ2Rts4{n3NdV(l!{t-KGhZvf}HlWOdsO^wWDf(oaJKANSsA zwq-cR&_*=R_Ig=inLEx3zgKGb(fRLp^Zyjk_{7mEFHGc6cxx;sew|qKrcs^5HZF3D z73`Sbt+en$Iq0yQw(y9t*9&#L(~8q|rs_}|v{4{RR#7P`EYi^2K3v4530${&4HJe1 z>oJH8jB|C{yZGE4g={)8%K>nmJ5Su?;1u2UY0ziVJ!yF!kFQT>Uv`H zyy0$dF6iDzYp1be?ZMc+>L28qo7pF0l@J4iDE|$&(NTZ3Y-+ zPjwF|-C!D}?0)p7>L+G&>Dq(mV5VEkyI#m4t?a4qw}q90KCkSy7sx&dE$1k;uFu5) zxNah961^M?UzZ5#T33%?(A}U%>S0W6?>+J+;wOO2IZCo~QZU(%Mz`Hbp21{~0_~jX zqLqy^4SJilV1{b;igovIw>Y|78yV;n+3W!aHhtsTJ%pg6LqMI{;TPzqPhP|HQ!h7) z0hqL2U!Qk447`Xzp01?a9S+77?{HABMRzz1oqYG_u{#_R^V(w@^;9@$w^w|a&wvw` U|EcvOW$~tlKXoftfxq_u0k=N=_5c6? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/other-block_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/other-block_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fb33c207f67fe9b9c403c6eb23258583f1bffeed GIT binary patch literal 829 zcmbVKO>4t23_VYv{~&w}NnszyZ7@d9W9-e^ZCz<&N@cWJVfg=K=+aA>PYnFdwnF&X1^DAzZA43zcq*ba;_d#29Qkt3oG3?JR>L-bZZm$cc5kwr5w4 zph)~LT9$57fxj6Z`!lxu(ZUJCUOUsW@AcU9>`5kU2mMUrq8M9#f8q(hC`(QVy#Id+ z9xJW(o_4M!Kb~Zt)B7;C{HMqB=}Fp>+-V;D0^z}UN9tHER5Fl~#<(tUZmY?=Fojm123h bfQWpnoikFCvx^nd@{1He_A7wxFV+J9SFkSI literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/passthrough-block_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/passthrough-block_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a5bb08b43c2c08b791a63eb47a0b946956301ff8 GIT binary patch literal 633 zcmbVJ!LEZK5Ijr5KWsQzZT$dmFE8;YtZ5LbkXmS9Nt%BB1GSBL-fA#}*B7-U`ZVUT7B_X?lbc9cZHs7T4_ zi!a@4Dal&);NGKhHjL`jPgdO65mF_Uf)N-vYHK3Mk{|1ism9LkY<5`^_&-g;wt3Q- z%^EGcbK&gUF8W=Q-)gp|Uj6ousq1%%ZTqrFM>{x7WmSx?% zbxYzMYw1QLCR$wI&*4`|ar1Ds4mQJpc^JN;JKl|s*3;s literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/replacement_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/replacement_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ca27610e212a578f8a374f179dce685bd122f671 GIT binary patch literal 1040 zcmcJOu?~VT5Qb-(^c|WmKw^CZCuSGoMi>CkNJJpz*nD`efLN%D1{nywzjycDPa8y` z2u??O#UW>$1&j5;dW@R*w(h4UrqnviL^yklx%46IBug;4-#-HfXI>&Tv{hEX9cq+2 zA*qW@cfyU+c%OyX#D`K?Vg*zrq1Bd^saD(91@;-1O>HPGM-P$=^wJ3-L)2y7BXn<$ zRc0;TBS#FM7aqGmT(ZWLR_D|I_1=Rom literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asciidoc/table_feature.test b/docs/_style/prism-master/tests/languages/asciidoc/table_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0b4bd3c69a7f035ba2a10e9e1cee32b014db5b32 GIT binary patch literal 1778 zcmb_d$!@|h5IxtD|6%a4(1@5_D!Fjy2Y^U4H6m(Q6bJRq4J_wi}^4&UvL}VEyxS!zye$!$Ldm#()4aNE^6WY|O;(aFwn3p1$3=o3l zkT;0kKq@644Te^}pyX}A%tf#c=pAm4r+reK){d5|MFRjfx3a9jpjFKOZ+h1Kne8+Ltxop0c!52~643ELmCR>De6MU(dl zF#h(YQv-dnAGsK}&WtUs>RKibAJYZk9+@xVs+-IcgRM+Qp#R{-Nm=bKWwW!3+I| z!DsOggU@c7VZsE;`rSM9U}zeORT1ipVa(w-^{2T*VoE}C>M`S3ID!5k!KgGhk$i|e s$UaLRPaJ;Xgg`Cvi)fM;y*gB0pf&W9|9-kw$Nlbfg+twd9I7+S}9fsLk!tCrC6?5 Uyhb`_q$XzrbrdN;jV(l1gAR Yl(=H?8snUinw+hWmS3a*H>#Km08Yywg#Z8m literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asm6502/number_feature.test b/docs/_style/prism-master/tests/languages/asm6502/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..55262f67bdab039fc7a41acd97c7b8affbe7f710 GIT binary patch literal 263 zcmeZqaa2$?G&1K34sldau`n<&;PP>aP*7Gi1TqbQkc&$f7vSQG=2B3IR?06(&QD2I z(oszy-Fld~1l@{1H8PAKLA0MC&wp#T5? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/asm6502/register_feature.test b/docs/_style/prism-master/tests/languages/asm6502/register_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..91ec7c42be8b380377d28640eafc1a1ae7e6cb32 GIT binary patch literal 214 zcmeZqaa2&TFfcICso-)9_EB);;?l(hxVWOZ6cnPB@(YslQ&N?56qI~i9F<~qz=9d6 z6?vt(NvTC3aj=OH86_Phh=QWj^vvQChb5s=dmx=5;<_ccAq#*IIIP4qQU_qZz;F{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/aspnet/comment_feature.test b/docs/_style/prism-master/tests/languages/aspnet/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..da388e5f769cbad4b9aa28c62291d4a25f02c593 GIT binary patch literal 292 zcmcCf)dd1oJ6pNkg53M+L}@F-0+XFjp$Y@^S$Y`A&7tNKMWz1{zxgb8E34 E0RNRhL;wH) literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/aspnet/page-directive_feature.test b/docs/_style/prism-master/tests/languages/aspnet/page-directive_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3d79dae938e20fbec694a99f5e23749ce0ea2c87 GIT binary patch literal 2105 zcmc&#%WlFj5Ikea|6p0-M*0O%QE}>_Dnh+c4kle7Y7$4bgT&w0o7j0lkjeq);&^8^ zvza)%^Xc+UYsmKLg&m|^@V!uc`bx=s%9bmc8zs{gU^TL2?^%&T2D#BLVgphcxA_p- zfa-0&E(N&2XK9MktVDeBk+nEBw+haQEH#EYIU6{Df;{%L4IC4%K}qz$MF}NaN+w%g zSgGhIQ4pKt49tilpD~2SFg|Zh0vRUfI+z0K;0-h4g#iTTdbs?zK_?gDey2*Y~OoRg}&mOpUB1GqYC ze5k6zZ??Qj?AYWHT(4ZI{kltW#&tQ~!EWs8(U?bxrwod`XDg;SXYqE#I(x(r#cPCt z2d(p~4g7sp1@*5TNW5+(LB+8R1uCG^Dg#xpw#_k=^k5VODx(=a!Sw4<_iuShZ1;M6 XIId0*|7tt?6%%R7u-mX^O6r$Cu_qw4 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/autohotkey/boolean_feature.test b/docs/_style/prism-master/tests/languages/autohotkey/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6d97d4bffadedab7229c12cab1d94939919806a7 GIT binary patch literal 200 zcmXRZDoy3(N=wWs22#9Sx?}*5zGz-9&S<5i{QR8M#5^S(1*H<8xk|A*=)z!&lwx_g XfQWqCoHJ6Bvx^nd@{1IpRu%&Qqc|(< literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/autohotkey/builtin_feature.test b/docs/_style/prism-master/tests/languages/autohotkey/builtin_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..afbe8d33253d9d0ccd92ed29213a6764e306a136 GIT binary patch literal 2644 zcmbVN%Z}SH3_RC>{~^eE+n-pVMKA54$Hl^s6(&(vvAvRn-!*fz$Fd5tzNZorxhRx8e9JqIk_M3@x2gZI{WAaa}9=IFf0&BfFluSgslo z`$4?qh?{6f_~7Xz$&T}o-O9rtw@pr~jI$-ETE*4-G9KI!$-!5}6^N4D#hk>KcLmlq z<8YA}p=+CAzTn)lPc!x)C)i2ImFkUsDH^$5OtR-i4l;RT;Tw=GqLs>*!pGN~8j9j` zF=OB5v+cOalL-l5Ljipy7{|#wxTU2;*w+$4%tbjnk7Jext&l!wg;ZV*aE9a>s&)!; zUFC?v+vIXO3Tg(B*VN!pdup2xPy2p$KDlB4u-ltH?w=q2)8Z;Kb+lBAP$ULE7E$N6Vd`^W+T2)7 zPt#jkkJzIZiFRvFg00<3pwhlXul>vcZE%h)9nZi_0YtByKma8P3KZ5L$Vwvw^6dM8 zXqahfD-LL%-NQg49A3$)iss&|g1PfJsHAoetEQw~%w0E1S^OOlg$^ z;8_CvOT64Q4a&bm0CFkenrskC>=_n{!1I<;6)xi)3S)>%p Z%LPQ_+vc2+nw(v%kd|Mh0JXAM4*&;!D%$`6 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/autohotkey/constant_feature.test b/docs/_style/prism-master/tests/languages/autohotkey/constant_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ab116734881a5f2696a269ea1a1f3bea58081826 GIT binary patch literal 6174 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 nZizmo6Cqq%WG6 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 V{}Av?@58>04`p3H=x2rgzdtQTai9PI literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/autohotkey/tag_feature.test b/docs/_style/prism-master/tests/languages/autohotkey/tag_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0ca92589e4928a2f1e50094135b970ea350e8815 GIT binary patch literal 250 zcmYex&$r^`O3TlWPf9ETvUs_4$p9dI(Y#!o(MlzW=}I~ZNtg2G14ps@U ceM+&sTtGy=rOp|t$=SsUY57G8Fq@0@00UDm761SM literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/autoit/boolean_feature.test b/docs/_style/prism-master/tests/languages/autoit/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5750be06cf27d835178f9345f9de005d2777d503 GIT binary patch literal 201 zcmWG3Doy3(a!br922#9Sx?}*5zGz-9&S<5i{QR8M#5^S(1*H(6xk|A*=)z!&lwx_g YfQWqCoHJ6Bvx^nd@{1IpRu=040EBWYng9R* literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/autoit/comment_feature.test b/docs/_style/prism-master/tests/languages/autoit/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d88708f344a3dcc17d707a0ce3c776bd54403f89 GIT binary patch literal 689 zcmcIiK@P$o5Ijr59|&IBr1b+FeFk_yq|umy0s4P;t3<3slO_@_JF`2??jk4=Z1A3v zt?}b%U5b57IwVRq03UT|+LE*GgkfCJ7G%B&6y&S`@w)^7pg~E$;$WQwLy|vR;2qTcEG@A7Id^wkLB1;h literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/autoit/directive_feature.test b/docs/_style/prism-master/tests/languages/autoit/directive_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9219f700a04f6581dba69c5c2105b40948249467 GIT binary patch literal 294 zcmY%P%MU3^tn^II&*SA%_Rn)HEy?#R2`))2DhWzW&nzxUEmBZ&tw_u*$VpY=<>KYi zB?Ex;Me}lTMk}Rc7NsVaWR|5W=_n{EBkWd+)xjc<)j2?=3eif%B}JKe=|EGWm11D- fi&0XFjpgM6BJ!Q-oRONGU96CnU!(wcYq1^x<%djU literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/autoit/function_feature.test b/docs/_style/prism-master/tests/languages/autoit/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..13c82ddad2a8e98362d6e99b16934bf16f2faf0e GIT binary patch literal 386 zcmYex&)3l8rflFa-(B^?DNpe0JN zIttNB1t7uFM3}e+R#8o$C^jQN?!>BrbYp;iB+VpVu2@Qf#5p51IlEXPEx$+s7B0nl E0PoObF8}}l literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/autoit/keyword_feature.test b/docs/_style/prism-master/tests/languages/autoit/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2db276cb775c8e25cd3b7c39efe8b14164c281a3 GIT binary patch literal 1312 zcmbVLL2kn!5Ih%&KUh8|{e+WLmZBWuv^hjMxDJ+42vjyG>F>J>b}t?G5Faqi?836l z6!oB_D4ZR9{CRDIDkd_5c6? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/autoit/number_feature.test b/docs/_style/prism-master/tests/languages/autoit/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5c6ac5bcaa4ddd3d6e60f8b2219301faa0267347 GIT binary patch literal 328 zcmXpp;^i{dGc++YwdCb8Nwom+OkH(>90NV`RBc0`v_XYaVv1X0aw;zuFPAPE0HiOP zmy0u6DX%m)DYZyRM?uNNNGVnaO$_P|ObMX7Fa;s*#1x0R8;bddREskTZnrAp@DtVq`zM7{wsH_d`9gd)mDQgk+k&C*E>lI3dW0KLc+2$JK5PVOToQ! z%&qoYOa&4JAwfB=9MM7*t_lRDaDXcXXp27=fFQ;0ixui>DYBZ!$s2p&l4?F;bJLXX zc{CJ2w3K9^AOj2*aj1suti93g&_S4^UyiyNN8c${oW%=kNouWg+O*INUQ2YWRLaM5 ut_d`H2#n;jf3u)g2U0Y@eC6TVoo*xb&eQszBWZgkW2esF-JmDq?EV2zN15sX literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/autoit/url_feature.test b/docs/_style/prism-master/tests/languages/autoit/url_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1f6d3cd4969c15910536642a558db2e2fddb0234 GIT binary patch literal 298 zcmY$+%uCKGO-WU-Nz2dIODr|E2i*fjKfpNhy|>3y8>fs&htaa(1yoT7Hp2T4qja Ou|j4Z5P`#|SPuXXaY#Y{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/autoit/variable_feature.test b/docs/_style/prism-master/tests/languages/autoit/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e36ffe327ab33a934fc561a56a18ccb272d73acb GIT binary patch literal 343 zcmY#M%g^WKQUQ|jNr^@ACPutm4$k?x1*IjaMSh97sUU7ZsAExb29Oov=)}v#%cV;O z0O^b7<>HK1DoZTNOiap2Rnk#V0@>K<&;C@#dV0ODq>azI}w#qx3i5&2$m e&PYwpE>=j(FH(T{r&u8|FGV3YF}WzeSPuZKiB&lO literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/bash/arithmetic_environment_feature.test b/docs/_style/prism-master/tests/languages/bash/arithmetic_environment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a9c5663dc1ee205c163e4aa88f7d3f6329563428 GIT binary patch literal 924 zcmbV~KW~FD5XEQwDNd&jCZrNbK^YRJ&h6GIVF2nRD8-J9N!4#(8{_aNbb$r?hk1VY z?kI%~1Q3JolNU;3Six2=@gxNFd&o11AL;En<{70u#H3F#$={M3j+uHbFo7cP2b0q zc&X8yF)(n1It`~WBRjl)^?YvY&`@!7cdcZ}&t2(wY#V^K+QC02m$A{_m*!8#G@EfY zI@wv9s9J9}7!OVVkBE<;uI%?m$S>0XJrr$iGwDsDcKM;1oUXK?xx{7ER}nchk=j}Q upVEF#N)PHXwcs&M6Bn+3Bwaf8Zx>cvYtVDAE)`Q{0gT^EDR{-Ws{a5)cHXoA literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/bash/command_substitution_feature.test b/docs/_style/prism-master/tests/languages/bash/command_substitution_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2b78b518514304ab126569e345547e43581f864e GIT binary patch literal 752 zcmb`FO%8%E5JuO`DVhljP0&kt3~0h%5rWX96pgoc+7hV*qe0pAn|9{CmT)JES~9Gp z#66_*A_WZn8p|_Q4a&bm0CFkenrskC>=_n{E1I<;6)xi)3S)>%p Z%LPQ_+vc2+nw(v%kd|Mh0JXAM4*<_bDtiC` literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/bash/function_feature.test b/docs/_style/prism-master/tests/languages/bash/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f3fb71232b5174dcbf73177506956b59e7c21537 GIT binary patch literal 7994 zcmbVR%aZFR5M4)A{)etvXR=5>A)k@T0wZK`Edc|_9^bFeX|QvX;bfC33pA&jhnfa; zADPXYA|~aSqSjTfcWdnG+TF!9#Mfg6P?FoW(`1es_ec5I&c_x1)@-<{*!eWsW%lJNcD>|;a*s30cn>IZj1>y&6+JEf zBKBI2UF_ye7P~_`?mOftO+YIEIiekkYR+Oy+PtUw6hJ zrDl^()4a&+mtOpa+Y7F&myKJ@1qwd5M?_s@-d%ylahlvEyCm+LvsGY&GoIOno4C5x z7-24V!}GdNXHg`bDk|tg@R?#po6nSGnU|P%7^T_cG%XidTEB}&e~U-6Wk;JOZn%4@ zW(QHRS6M3NzZ}J7x#((O*9*ZT&{=-Vn6O$N7DK z8XXO=WU`vAqQJ_o&dew_U>8|^sWCrfjRjNFve^gEoy23+ZsKS0OJBd!}V!cDFokQOT1Tq&~oaFs2brY*vAoNV#ZhC&^&wy1KfT@ay| zEUpaglzo7>Rr9m{(0Z2*qirQFvOU75?B?oF1lg_Zvzd2!nE*HH2m96ix)fB4U*c&( zt^as*pml)#_G`JDBzw&03AR9S1lVO)H-J(_Cr1T*lO0zuAxf|k930R)DY!c!M z1BF=q@_5ItnkAGiM(niH6q5_`Tu>M}nNsevRkL7ee}9V}+o zZs49!P-u}8! zRNfW{l|EK>dwJktv%5*guFbpJG$(Y}@M7W1K?-(pX`8UXWA)j0NP*oiQf`Us@DyGlH=w$jr;3OrbijUpSXDu&xK2 zy6k*G?eWC-HR@${FZb-#=AR~CihRzO_vWe(S41cJ{gIM`DNfV-|M=5(f1IYD{&-uC zV5^Ve?Pqyw27CMSXZZs6ml+dO3ij6>7vYhqpuG@@q`e`5kCXlPJCiiMUq|ruR;7}a zpq63%MNA|YV8cwG?`op1FYgh?+nj;KZgytl^$37;p&b%IcaX!Zby2-+D(M@0-o^bfK|dY+7`Gx4jLtimg> zB0cAuMe{O#cdUNBtJ{vH=!i-WC{>J`gE0 zlsyq*X*wFBYtlsvw+W7zg`fz?30if753AE+_EB4dc!Kt*o(MeI$o+NPb6DvtfpkHQvc{w*;EBf07DJLSNNA=Vt1fgaaQ;t7$pYZ+SWsAaQ4~ z=70o8YR}MiDtw7OT3QF?af*!&Al+2*##F+9sFDx>l)|W}90Nhgl08`nC=V0X1fFz4 zHgIDui0Th2g9xA81{+yZ$gxGIKSrFLw4ERsbsJ;C;6|Yk0XP+)gKZkiLexRK5R@!% z+wvf0m^SzsFg0}8#@&!M#Q7V$LsW^ofd3g48~wv3@q;4zk4Cl<9|4Ips)N`dpjE33 zCRfghD8HB}E>dcWNtCPNgYYz<(^;&i#&0nJv2&)mVdKO|4~ZE}*{M;t(`XDQ4%Ub^ zqU(rxUsN2_hXnyS$9idO9T9-OBdGFuv~y+nn0}}Hh(tL+1~*cW4gs2wG-$jb!IelP zFbhPLMI)+>BLqHLQuD?y?-8XZ8A_buNnjG~#%L0pI+1doqb^8LfWwqQixOS%qyz;$ z$x#}DHENX(sbnkZh@JmG=vdMK{47K1m`dRiP2;fXoI0ybnsl0*3utEAh;X9+WX9>} zPp*7yrQ|t5J;TVBZG5}xe%bY%fgd|jN}i$M=m8Hac_;4(rSVA@o!4gq5d91$r&9kE zK$P{{0N`PM?Q6lP|N49|O7J~l1gW3(FAi^io+kYM|7VBa^%GdpFRr2=BVXSi$}fKb Da@i0g literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/bash/keyword_feature.test b/docs/_style/prism-master/tests/languages/bash/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b3bacf55af569a0fff6f0ce50dc18cdcbf225824 GIT binary patch literal 763 zcmbV~F>b>!3`OS(&>cQBr#?W|9wW%$N)$|3kN{am+S`|MlA)od7>0+(Ps;kA9MKla zptO;EI3lt&u~d9lnpgOe8|R&HTR4$5oZ)AY#y$JSC1ayRzF89rLdk?(^ajAs3_-DTDPbX^thDGVluqO?6G1&`Pi?J;U7u?l>(=bp1tOYVw2 f_Fyn%Qrfe-S|jiK`|`DrUpMrfo>RhOakl9XfiK*M literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/bash/shebang_feature.test b/docs/_style/prism-master/tests/languages/bash/shebang_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c41860d026958cd0efaaf0ee386e358d998aa9fd GIT binary patch literal 183 zcmY#Z)KALH(@#n)&fw+Z<Q4a&bm06=$R-CFZ3o=_n{EBg|Eb<>dk*@(p*+ RNKMWzR!GY)Qh?f^2LKlPCL{m= literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/bash/string_feature.test b/docs/_style/prism-master/tests/languages/bash/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fd2a30317d0ff5d940bf378fce63484526b98c03 GIT binary patch literal 1300 zcmbtU!A`?43_UMW{=o{9dfD~`Jq*D>T!sYPmI`%S2NPQZZN~-i?>r}IyKXJhpgkn^ z%X4D;B}z#V1X8G#F+9cKEh*-4=3REqev7kHG02|&7^doff%uJC7}Dd@!`<}uc{070 z0$$6NV&98JM3eg)i&KB>msk(50271`@^$*MN$6u|ieyQ7k-_FImu5FV^keIit}uaF zZ(RcWN4TJc*>01xXr4?FRR|HHNHP4w$Gn*oy_s^SRs)(TjbBC4;LslgZC=eC=^z04 zg_G$N&FQ9Ux1b|}?QjQKbJw+MV@=f{bD#@RYXhhVTgA`C#V;yC$En$y!U)x0NJ zT$qewhaqAgRP)WQfu&bwc`~%sIR|f7IwQJO>`)T0 zv-Z+_D;%#`le41K1>^%%H-(KFstVB1e&b?UeMu4h=YCziCX2V6Rwg6&Pz?P;5vNOX cPekc)2gyfLTyAnhi<((VHK%pzUzmLK1AT~I_5c6? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/bash/variable_feature.test b/docs/_style/prism-master/tests/languages/bash/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..16b7448aa3ef1b3ff96b4fb039b682952767bc35 GIT binary patch literal 240 zcmY#M%g^WKQgHy{Y9Lb~DY2-Qmy4H6mka>X7tPDX8Ld>7Sd^KVl#{BYqoAY$G*&5A k2UFYut0>$RO0m3LKt#S%oHJ6Bvx^nd@{1H;?kUy-0D(a@?EnA( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/basic/comment_feature.test b/docs/_style/prism-master/tests/languages/basic/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d306176161943d6996121aeeb4dd326438f13466 GIT binary patch literal 240 zcmY#XaLdn6N-W~#3Uc*@vw696$pE}uyj;<|T%6HL$@#gtsd*(zIttNBicnLPVqb4F@%cCkWQevtyyLB)CiLX!Tbz*P9U>iLE}8TLL|^tyt5 z^02%=-Kc(o*c9rP+bgZi$G8QKLyg~T zCrHl*J&>uuFs22mu8~4@j#x6tFF)7eJ!nZD0a{$D;a|8bi@Q}47`nw{j)m?lK4bS_ zV2NM_SNsKzh7C)Fq$O^1L|o%qJhvq#h{ZIy;NKuzSzDo{xRrIoM61Uy)@9a#L8uRK zb>*h6sevgXR&Zubaap059880F7a)}oz_|D~c#~|X(_+kbMvHyI?lq5-EzXCLlOpj;{&p90pL%PS9AaYqu^0)d%g3yvn;EI4SOXG?tX z^o$fi#zS&E#~4CB#RPLDZDFW-+kSwyc7W;!ccJ?ie7NmoU%Xw{m|*C7=E=GuZt=>I z=j)BjdyB!Ye&qY(!;jzbN4*b^4?lc3eE$2(r@wyx`sMKM>EMp}@bTUM+4Z*3NYom< zk)#5`tNHg^OQX2QB!J!3{AbB7nk#MahE(G9&XfReQ3cd{RRXwaCI6fx8@I9KxBIyR zMQtm}MdL!(X7X9{Wkit+lr*zLhrcZnUX?Dj@%|u#*xk)2()h&NXg_hAI z6s4^_>nRQ7LCM}Tqr_^i)QCJ$_k5~Vc(*I$o^v&ZEGz-(z!a5i&D{#vv$=wh-zA$F zUjkY@$ZfjU3DS^Un3tPZs|#hM)f*CF0+9e}63v$@YjulO&~{MONO4v>5{UBCs})g4 z{=MY03{XI;qckFyfLcpS-%wLY#LKgb3QbGbnoUAc8ftZ&Qb47r*|qjlP?Yyys}H4o zk}mzXhLmcoDmwt`Oogmoa#@RZ0h8IQ)vH=bp21qvO8Hjhb|BQf3PBOvVY4>Y&|WP| zu-4BVgq3Rt>fOWls#~k=b+`sunQJ6>_^95sLapZ|#0p;mL5G!HfRyiD2<#M;0(u9{ zW;dacdw-$PjuLwisW8berc=bSbCFg$CxYFLlz-9A>>ZF)sXdWKI>y*HX$5pr3P5kA z*)m4#zohuyk!kEEH>h@PQUM)YkB`nyLhSWAKz@J**P{x2rvTe0;$F_qVpgZ@+%}``d3n{R7K< B@YVnT literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/basic/keyword_feature.test b/docs/_style/prism-master/tests/languages/basic/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ecac6855ed986576a0989844892e4b4c8ba848f4 GIT binary patch literal 3307 zcmbVOL2er{3_RC>|FG~m?H}Yd*A^^GhNO)f1Ua=S3gi$VITZbUXJ{t@it#0ZBiS=t zQsPQOhPGU+&5jsT2^&l;+}d(6hLq0Z5Z0}vxjWc6?n2C*HnCz#7JMqsCHNc5!G}Yk zS;?(07n{%nMjKP8@UgLJn80#ww)HQYH6j9tnf5lNe8$_`+!1FJ;d@i~Kd%!!Sz=s{ zal)Lj1@Q?vw|DJH{GClb?~#~%5>)?l$MZC-Qg2t%haA7|iL zmu(I9v5Xx{-P;|8$ULQ(ZMc}FG6p6K^PVGDpGrZ7u|~K#>^*Ne9AK2~JD@Tl3geeN zc=9mYdC~ahaWMCIVDxe{S{}LLVeK0%T;8$l;m}uFjc>A=C#xDVR;~5I#N*4%z}5O( z;in#aHPx3^XCQ5dH-yJq%v&b7S+cPYqep5x<9=K6Bhz~5am3Hg1B3`ZRy>Gb%wanP zLU%C0BKnRizifla?bUaViTK?S(dK;4+njqupqZ;!E^ecph9ewfpQpgrc=9)W+Tk_g zM~%$*a`E*Oe|+wKx%hIwdV2i(=lSL5>SkDlwtBevALKnzFfWe6d6NXrt91o_ziX0j z(i?B1GUxSFIPa^(ae*bSQh`&dY|8<6UJ?)ifm0O}e3l8xP&cj+5E9KmSu}wIr3q+{ zCLl&vh_14V8>q~S1Sx2OptfCs+Lq`Sd!YXknt-_`AH!T(q zK%5mywU&5SS(X`de*E$DI{bQm87^Jj>$iWfGCza> literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/basic/number_feature.test b/docs/_style/prism-master/tests/languages/basic/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5adeb7af0a9d058964297b357166437222612bf1 GIT binary patch literal 290 zcmXpp;^i{dGc++YwdCb8O0@v-Ok8z=90NUbS8YR}G%uGf833d&nwN_+S}CtIHz~D9 zNk>7+#7HSt2TcrWIi>{AF_?l7$6<;?9jg?}%LPQ_yVyA+H95OjAuYd10pjdpJpi#C BJ8J*{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/basic/operator_feature.test b/docs/_style/prism-master/tests/languages/basic/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b2d93f619b7e89c82bca9527071a09038ddfa40a GIT binary patch literal 566 zcmbV}y$ZrG6oqFm+;=!+=+Gbg0!cvB!NEq0h)`M(sR#~{*7wJBaOus|aHo&+UBW#Y z+CW<-3u~A%6i87rbudVnHq{RM^A(5ViK%iIxEeQCGcgql-sCk*t48@xKit25P&t%V zZH^f-5oQAu@&sqHon#TrWU!DZm8gtu>trtS5l=th-`TkS0Zc%RSO5S3 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/basic/string_feature.test b/docs/_style/prism-master/tests/languages/basic/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..83fea35edbae561447447bacccb085aa8bf284a3 GIT binary patch literal 210 zcmY#V;^k6G%U4p$Pf9ETvU$05$p9dI(Y#!o(MrW7MVWc&N;(QkF+ivktAin$mJgBv dSqGBmNXsu$fY@BD2LLv5&Y5IwIz|6vdq9GW!iLyv|+uxX$)-8RsLGzTYET2n^~va)3_{p~xl9a&Dj zPTJfunvXYc=8fao1B`R}VfZ&2}pSceD>s)x*hQ;wp6l zD)HDCx#KF)(oC6!*4l!D3Tfb+ENhna(5x#dR71sZnZYf4UAgxYY~*-IYh>9@*SFN! z#$I@OD`Q?ieqc^=YJyDm)v~G`4wN((oJ_ifW;_74c|VyBpy$ijz9JD`)BX zf8sI6x(iCvdrLaziZ={=#!{c76RVFOfxaYXHPn)2=hZm_DaYifUBqpWiDCsCDSpf}Jiq%0AgxaGN a%gY5sg2b5Iuv$f3RFf0yRZK?Wv^*ZO^;6Jwa5Zj#EYrab!E~qN@LWXI#@lYNFjD zK=!=(c=N_~@;Vw0&Y+f6TPQZSt^hsVEJnlR4S!OjkvyOrms(F~jXQ)0O-4iYr@2PM zuirnt+dv3*%gV91OqsZv+#obqifIYPx_hasc3UI9oE=%bmoUn${-m8&_5uAI0{EHKV7al$#!9jEXdmZpBW%v%@_xn%V-A2hL%Svt79fR5e ezS%$Mp-Wj_>H3kqfZH(JC<%G>jUM^iS052CWS2QmdXS7mMW^sO= zl8yq12jnK_=jNv7l>h~l;1(;z>R?KOT^dsqlLv7tTunh~UUErkVo4_0R3%kaxC||f e2D&RYmX`~N$PWkSjMU`pVuiH)A_b@ui}e8C8eMV# literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/bison/keyword_feature.test b/docs/_style/prism-master/tests/languages/bison/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..49fb3733176d0565a679447cd69b787850d9f1bc GIT binary patch literal 373 zcmbVI%MJn|3_RO}e;_2it$x5>{S2}PT`_Kml<yQj@cb71HvH6dgAt&$r^`N=ht>H!%V-R2&R}q$*H?mrIun0MZxD%f%V3l$2SVpQogw0OA3; z1*Lh(C8dcanP5RBRaK=}9jHuEenDzcNhMIN63{h3aRm(JR#;U-Tup)opzjE&#&jmo gm9eqBTtGyAkT_?gCTABbq~#YW6hOS2nOdv|0EnSm_5c6? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/bison/string_feature.test b/docs/_style/prism-master/tests/languages/bison/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3f3f6c0d58c9368373870c5e24827adf1b8ddfad GIT binary patch literal 486 zcmbVIK?;K~5Ii@KKZJ$g#r6Su>@(aPRJ4_Xkt81ceJ5$Lr3wW@SlG$zPG+>0qPMnC z8EU2ol}ag^+5zGW2vYi@BXQ$4E z1>E!@gPC7?v9f(|!+49_Sz+ CriQ8j literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/bro/comment_feature.test b/docs/_style/prism-master/tests/languages/bro/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e1eff305fd328f0d027fcd4e4a3be9bdde64720e GIT binary patch literal 344 zcmY#ZR!Gjz%}vcK;ZhFqck$;^R#tHHjPP~kQdWqFh~VPVB?EAAMRRdRD?trb(ou+3 zPy(6@VhOrgPK4FOxxUk478gut42afp21l5{}}?A8yr0u zqjzjwBAC^L4Jlf8g`Z)j2@|cv1bXg1F!o>_BM_(H5XXh4v=SZ*Ik4TxC(efgj5{!R zze?&P2PU5e*+(vIn613!EV3xv&5GTyygB&Y{7Mn!qCle$6CyDp%cWPuG&uQUlQZSZ zaHo-dz%0wopf%>a*nFvJPHtrD9q|3Z1Dx@7?r(HFq>TR5^+Rq~e>wfbxqq6z8>%Cv z!y1>CYwTyuq`w;0DQRBErg@p8#&xiozbCCDdGwmTw4ei791ZFY4YPbSEqc-SI-*knAcyxA+I^<9r(c literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/bro/string_feature.test b/docs/_style/prism-master/tests/languages/bro/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..68277b5147be2fb41e4cdc5386049bbab1fa9e52 GIT binary patch literal 386 zcmbVIyAHxI44m;-SjUj1%%y`nUGM;@Y1FWy!G(3QoRTm>GCQCP4WD4U?(dM6TlqXA2xxM8?)znppBA4W6mNa&lq-U(4(G}VVC7X^OO@Zrb=8F)6PpXYim4@S81|JvmpF#ScsbaYVZ1)QMNx*Qc!yxBf_7B&7TiI b;6o5L6vQK%>b0Tc;?&^*0}X-# literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/c/constant_feature.test b/docs/_style/prism-master/tests/languages/c/constant_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..449305a71eed09513716b55b56ddb517e9cc864c GIT binary patch literal 656 zcmbV}K?;K~5JlGw%pF43ws#PXAdR-vxDp9sm6l2b6Yt+>B6N{#8Upi~H?x@kg~)P7 zg#aW3%S)%ym^;Pu;zw0HF79@CTxGv0ddmQnHDiD(O0OcRA5PISb*iEqkkZe$+{?V` zy$;I)2+;YDx9v56P7Ud2sdOhbi7*lF7}7=_X3z68d$6Bb3&PBq;vcX!`Is@z*WRr3 t^$&A{%-9`dCIBDXBMAT#Qh=D)NDIjP|FcV8L;q2DoEO|p6Fx#zmoE+Rtib>P literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/c/keyword_feature.test b/docs/_style/prism-master/tests/languages/c/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..feb9ff937784fff5b9420f6f0eda777344901362 GIT binary patch literal 1533 zcmbVM%Wm5+5ImOv|6!qX+J9(sD01ngy#)cmP%DWr#SQqV<9>aXlpWMwr&ZyYZ!WnHS>bGQTp8T4n#Q zb(DMO{Fka@+iwL5iuK+1iUdzz>R4F?95~I_VYI?3g<>m2{x+kp`E(IaHcZjwv3_#CC;vXz?ZL5C3w95{=?vBtD5mTZk6RJG#E?p_4z%y{ze)ubyZjUYt0%>W=JBC2&*^Kd*|6U13O64 zJ`}O$#rY`87L&D!qp(=Ky3UG~b?4V$>{UXZURZLjt*b+ev+BLWBZzgt21G?|JoVB1 z5L>u^3U)_9S`5*1WZC&m2zI>HCE&>;Hh-OMSz}*-&#A+L!4aj-`-73FV*xCA#`{e&8}9f zh=d*kI;4acRdU8OsoW4yFsnpEGW3SQ&>3OP?*~1ru85)va^+V0TC_H9?e#9+_hz+lHGI__;9Y&dlv8? sExn0R+EBW+%Aanh>GBHSpF_px^S|x&^Ys38!N;=Vcs}Fz+g((C0Q3+6SO5S3 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/cil/asm_reference.test b/docs/_style/prism-master/tests/languages/cil/asm_reference.test new file mode 100644 index 0000000000000000000000000000000000000000..991f998cc2bbc28137bb2d0454e67f8a379904a8 GIT binary patch literal 189 zcma#fEl$oa%E?TM<>JyM6L4`wb8$v1D3v7^WhN%&q$=qsC`H4~RZ@uMqR8-&)Z&t2 Zg~a0G)ZC<;N`<1-wA7;1yyVnkE&zluEA0RP literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/cil/boolean.test b/docs/_style/prism-master/tests/languages/cil/boolean.test new file mode 100644 index 0000000000000000000000000000000000000000..c6cfe746fd036fc6a004fff9569d1a62fb0d3b33 GIT binary patch literal 186 zcmd-oDJo6nN=wWsPUYg#B?EAAMRRdRD<$RU=cFd)Dd{LEflO42)j<;lTcH%o6-%x) PA*sbB#R^b+iuJev3bQHg literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/cil/comment.test b/docs/_style/prism-master/tests/languages/cil/comment.test new file mode 100644 index 0000000000000000000000000000000000000000..97a30a459fbce66fcd3c12937c62f835949d9cbb GIT binary patch literal 191 zcmdPbS18HIELH%bM1_*n;u0<{T`~a|S2P!Aw1QG{er|4RUWt;9f|5SE=}HQ*T(Oi` O5dw5#u>#bJVlDu&h$>zH literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/cil/instructions.test b/docs/_style/prism-master/tests/languages/cil/instructions.test new file mode 100644 index 0000000000000000000000000000000000000000..fc01826c814d06ea3cdc5984641ee61290721e42 GIT binary patch literal 7817 zcmbVQ%Wm8_5IirxBJepY#E&HYiQM)UWe-rT05L3flf`Ow zlNyTbw(COMb6H`d(uwrSiS**cyqTU0cP<@^YpFPr%BXb+*n4`2k5*0(-$FM$~hJN(TZ?>v^i|YU*Vi09`3qD;>{iVlRZD$ zd4|AvVoYqV#^185n3_tP;fE8cIG z=Gn4hjf=1~$#uLXRlC`=yG^^Vnk`J}XKzW>Y-yGileDZ@7Z|04O)4-+1#BuHL!mt? zTMMmW?v~X`TfQt|40YIoye$$TVcwRN>$IeYU=QcHNY2HNVLf~ed7j!hoW^rMt|5*1 z(6DTdRZv3g3Lhyj9>RjpgsP=x<+d z-P$aw{nYDLueWxxo(-g}Rku1L;QQ(jaQaYClri8OqI)|dl(UND$QW>*(Y?J95S-@l z_@j)KbCH6kpQ?41je1m^uViZu;IFZGY*b*l9SJS62j5X1>`u` z$OVJvMyDO$1PPV1rNZRz)y|%(FHfWjC}&g!MQMrWSk;|JS{Jx>ksBAebCG)w;lXwn z)W0wu$Vqk`&FG)#ZZxFhAiV3H8#3uQEbr3y=LHAqJ$l*&|3u!MINlC+&F@YeZxFlm z-HGEZW0$@=alDCmbex-9%=Kz^2Xq%9xf7h+xl67CNjiYLk_ra5C(&+qDc!2)#O_?8 zd%cA@5btFk#+#Y|%iYaEbTIjTCn$E~6Ro@hdhN|S7g4K7Ta8-9jNH1`)G>mb)}z>M zMMAh}x_}c8FQ+;nLOLQsIwV3nZoKzB{NO_$eMtQZ%BB0f6WFI6%$;6utl0}#ZW8&@ zEF;R-^BqWgooRZlGNv8On2w5=6IjOfc)hyp)C|H-5OO1|yqzHAW>~Tlaysqi>b2`1 zp56B)fj3(p(Xo=G*Nc#jl#rfvK+a+j+F?0M1)BU|m8^^Jz5Ha=T#cM5%iier>EN|H z`x%l1dditbaINXh3>>`~7@}Vj01n5w?l9vd9Yb!z1@!Qir;-e2t|U@&SqejT%WKy$ zmJFC6)ts1ulDcb^e3|Z#Y>GaiSZ+;Fa<)wa`Yd4?In{kyMeC&I-12y$>q};+#Pi?xD zr}od93Eknz?|BIq}+#DV@OPs}A8M zGwgD7w6LZ&`D{&X^2{*HQJj6*GS8}e&P)4<{sAw{T?>}?3*PeEg2P<5*Nz;xz$`0% c^(B1y+sycXz2)ZLAo({ZX2;)*?YUpV|9Bf~!vFvP literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/cil/keywords.test b/docs/_style/prism-master/tests/languages/cil/keywords.test new file mode 100644 index 0000000000000000000000000000000000000000..53a4645a25d293102ae1264a3c7497ba6636cdff GIT binary patch literal 2787 zcmbuB&34-$5QW#Br||JQT{Owb$%AB?j!e#c82n78me>mWY7z~+i-~uR{pf-#G{oph2huPfjn{^Co?2h)WfHPA zB@T9`(G;eUtveVm_0CjZh(kRPrxX+M$K;)rIr*b-7;~#rpq)9GFt+t*+sT@wim69j zkm+_lnsRr$)DQRc>P8;s?DphLDC9<$CsXVzxx*Bb1Z3?o$V@KeVuEF9Xtexz&{AfS zQs$BJk*buf5U6dTS_#(bQ9E(k8J(ntw-8T({G>b4$|^hRr?UJ%X(g{?_B>KB#U1%+ zo|ppXq7go29}C6dC)*ciLm1dI4eVV}wzV2FNJ(gsJF6_0^mFGFPZ&}(muEE(jGS$%ELB5&% zk$n#G5c&R$@ZNTN=PFk{K{AI}77Ie-M+Dg5j0bwZwx1dM+ZS=?UXY#$wcx7$MDT z7}r#Xpl3g3O%T>l3W!|E#tIfCSs`6qAXUAAV3D9z^l*>RS*Q@yJc98rIfJk%93)-z zFk5sGGrS5_%a#6jw<`eeg32fwp!&KN$Io8$d2I}SdQ)*UiM^iq%nwRw^jX sOD-u*EXm9VOIQO%(G`R3$EBK=E0z+MIcKCMXBR7^}0G5wBGXMYp literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/clike/class-name_feature.test b/docs/_style/prism-master/tests/languages/clike/class-name_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..04c211254ea0a3e36b8fdc711818042a69bbe554 GIT binary patch literal 784 zcmbV~OOC@J42IW1;tt5GR%&~Rk>(O13x+ys)W%fcsx!AA9zs>pvI$}Vn9u(Gus0Ke z`gTr=i5UH8EUF*lrNCcCI#=6#zu}C;p%~eli7OV^kVQ8tok7B<(%GXmY%gjTU-wc- zaon&H*GtiX%|hW2&waTZ$;=1`mCPN)fDjMEkbZ#nnqK*|sVHql)wJ8phe)sLw6XV4 zrHE}}5vYeN{ym*P$Bbd3T64(xeyT_h_Xk;i7@iy@NbB;sgN2lZHK1O3u&CP0cG&(os;- zhuNhRtAim2v>dB2$TcxVF?kU8D8=$}0TKC*a?VIi&MpQTTBJ~%nU|iEs+*IUm#UDM Sm!gncnp2Vq;X)lRE*Su%FPfK&Gg>LFG%vX%Ge1vBM?nc_x>BqT zShxTrT$%`z(ZC_D2^Pm@5XhN0G?8kUi4o}r@p8pd5;o2msma;J3TgR83a|hw)&l^d C>|VP7 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/clike/issue1340.test b/docs/_style/prism-master/tests/languages/clike/issue1340.test new file mode 100644 index 0000000000000000000000000000000000000000..0b5effa041c852a5548597239f34eb6638a042d6 GIT binary patch literal 242 zcmbVFK?=h#3_H)@KbY(m)_P-mM=v|JJFRXpG!Des|ChopyH-d7VJvY(U`B{d2;Bkf zeMBO$KQ;wv;)x9P|76ao`CYxMfm2hJ&#fOG8$FOOzCfS)0N5*@WDSOYz zEuvZYHc)buk(IVN|FBA3-!`XSE%?|%990L(O={?%SNGCaHl?*9YgXUU@=`HeKSWHA zL5%YEirLo?#JHm`&|{?Hl4J7X0yc=4WgE%a;x;i|O(~{#?~3_iaWPzjAf}JJd@5+0 U;h!X3XSB;&(hi(f*dw)Go(6L*@Bjb+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/clike/number_feature.test b/docs/_style/prism-master/tests/languages/clike/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f6bcc0b662fec96a14916d8ff0ab599f1fc7ae34 GIT binary patch literal 388 zcmXpp;^i{dGc++YwdCb8Ni{U!m6-kLnsUX_P(aDvUi&CA6Zt&~@qo0M9lq@$o@Vx$zSgC+)b4W>F(2Am1s) t@^S$Y`CfF+NKMWzR!GY)Qbj692vMRa9d2e7OfhUftQ78H{dZO2_4t+F zG|TCVR8idc;>j9W&qIE_g!B6Z9VZCmNB)8<@2P@Gun%EB^f43>n%G)1&O`41=oNU* Umy-CLIfqug(DLl%j;nI`2H)+dtpET3 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/clojure/boolean_feature.test b/docs/_style/prism-master/tests/languages/clojure/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..55720b4f46d952248a79087faa51179f0fef5681 GIT binary patch literal 214 zcmYdG%qdRgDk&;W<;u&<;o{OI18{Lgb8$v1CFSSmq$cJm=_n|rflO73)j<;mS%WDG cv{xyXE0$cloikFCvx^nd@{1IpE-2Om0Qti*xc~qF literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/clojure/comment_feature.test b/docs/_style/prism-master/tests/languages/clojure/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c4f5c7d182ecbb1dd875027d849041ebb19cc333 GIT binary patch literal 257 zcmcDvRw&8HELH%b7+8es!W jG*$;)4cu91j!=r_isd5HA2s*XcJ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/clojure/keyword_feature.test b/docs/_style/prism-master/tests/languages/clojure/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0c32cd2db4a60d2d48fdb44dc92dc86a3f52c959 GIT binary patch literal 7093 zcmb`M!E)Om5Qfk3Q@B2*N#wjh;vV`KnH(@e5e)_v;bh#W@9qM!q#l}K@r(c?^zrW^ zqt*JhRo(Z^t;V8tP#6`U{16_>&O-6~?1F;2IUJ~j!Zv)KzWaFJmK*S#Q_UC zu-Kz%=oBHP8b^oLiZ`%3*NyVtc_czN^%`a0LXREBG&Gkm(M`glDlrVowvFtyNnZ{6 zRCq5g%}Jow1-LO)&Cxld1bP#Do8yI6irTWLC8T!i&PRi$(znhyF%fiBi&qW}gchHRRG&t~(o zxp~51nunZVY|ECy*_MTc4>O-fm;##uAhId`3~p5gwiV#OthN*%c#~ZMKMsY z6#(m|hJmo3EM=7&*x4nCVIXa7b6UA7*d6DfEkjkaA~8_7Q7>eb8%Ue|oK=pZ=S3xy zzsx}#w=bSs2rV~oztqH01y9Z;tXvg7eiy8A6h6BvqMA92rHUeniN-@=BvJ`QkxXW> zRK-B33JT+>4C36PDG;lJN|9WKv3v!wO$-Ey#zN&FGU{TXVgy>nKn!3rh_`|mC1V7f zXypdl@hXS{hjP^2ip1EE@9Uu!dlgz(Zs21*RZkUB&ns5BfromiHHqQ&=QXR`!2SA3 zUyfP_eGCKh>*%zO<*Mj)cH*$^c0#2$Vj{9s<(-Q57>=*v8~N2lhAMiczmiz0;K?;3 zaZt9MgE;%uJUKy3hOdUfEFyOXD(6PBnG6(!$eBVn77vxvGhAQg)J~ShRE3$LN~oAv ziZG@s%1R|!Occa@**?w>C+Ea6i>ZoIY84E`gj|-y+mIn;DQ6^(uP_@}5rv7xj4O9L z<|Q+Q`EyRW%`1(eDkev3p&1sV02B+tUiQ8~w+NsOI=a`Y32wO{2l|3oV{kp3o^I4o84Ps9IEo7d96B7XKt PzK>hj54UMm#{K3mqMz0UOJA)=;4g#;y`QWxIdgrIh5s|w50-Pw1tkFD-H zqBJ>VbuTS^M+CMta&lRkq{-sx<4XwqkQO^CSTx?EVVxWtnIc-T907g9N{r+|wnbq) zkF<40s%v1r1Y_I_`6_SNG^^Il!bz>d$P(9l^u|^%@>7Dh=&u|>&V3%=X|m&3MVPC4 uYHt>uHmKJBo!4g}-VajYB*vjc-4mP~E(A;FP8M1X4+sn4fk_zQv?-scjEM>W literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/coffeescript+pug/coffeescript_inclusion.test b/docs/_style/prism-master/tests/languages/coffeescript+pug/coffeescript_inclusion.test new file mode 100644 index 0000000000000000000000000000000000000000..ccf8963ba1b83c807a539cc929d09eeaffe6dd81 GIT binary patch literal 322 zcmbVIyAHxI44fM&|6rK~q?Qlp+KrX5%@73#EJ{+P*%1Fu9!2c6EDv|S)7ic8))Gn4 z;Nfk(|DY67bUP~R#^f`igUoXU>jTt;Q15}`P+oO4ftPp!c5u-*I)4FC14{w` literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/coffeescript/block-regex_feature.test b/docs/_style/prism-master/tests/languages/coffeescript/block-regex_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b01a9a42de843749ef2e386b4c011a59ad7e1dcf GIT binary patch literal 618 zcmbtROAf*y5M4{c9VXMQl`|NR(Xs$awP_0mx-c5=E|fM}T^Q>u2=jTo#~a32ZEYci zI-fm)L;rsvSv}3 zI-GCQBR#N$m*2* literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/coffeescript/class-member_feature.test b/docs/_style/prism-master/tests/languages/coffeescript/class-member_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6fdbcf3e3aaf68622a080de104e3815bc1f4131b GIT binary patch literal 224 zcmZ?BOUzB><#I^N&yP<^EaK(j<Q4a&bm0CFdj-7whJx<|d^UDd{LEIe;us liq*j`3AI)!mX`~N$hX@$BQ-g@SRpOHNCE5s1&9NR^#Bd`Gx`7k literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/coffeescript/comment_feature.test b/docs/_style/prism-master/tests/languages/coffeescript/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5d034ff0f076aa48d3b9c311640b689aecae83fb GIT binary patch literal 309 zcmY#R%g^WKQdR&`3Q37YK&CPhCn>Q?0Vu%B#ml8j1_0@c=H=pyR!Yv#%}vcKQPNRR zQU+S36svew?$ zWe|*#2nm9a?>Gd63gJ)*>w4=rzc!C%YQ4SBBBO-~)R}ub*qMERgb_Mh;dUGbc8g9V z_1=O{U$E(D{+mXx`<4n(XGA%8pb6GEZDbp<{C>-LHmgkgFv^GlR8&_RcX#1r zqDx|TrOQF1E8}9#7+lV;xJD^nHl~R$+s6kd+ypLc%@m2gMyT|IOEG#%dyeuj1)|7-dDCwYbtVm3oOpK*5R=i2zoPiV{Xs?0$ z;sdhpUZ%Jc6c;);)8RRQZ_UdOel_mRny0tn%EunlG(6MbWE$R|=^J*|L8FI)&N>0T z7d;Et*y|=^*G5nvqo`lT z)6s5D)CqwzDYQCO2ZVEVl$(`lI;>5BusV%Z>l@y!!SQqd`@QgZ&F7~8-vqiDVgB_O D)3f;2 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/coffeescript/property_feature.test b/docs/_style/prism-master/tests/languages/coffeescript/property_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0f256798760bf38331f82bb4c9aa7bfaa70b3f18 GIT binary patch literal 265 zcmYex&$r^`O3TlWPf9FO05W;Gbjbi9ebKyJoY6`JMfnA(MJ1I=ItofaW0hicAi|}2 z$t9(UC7JnoAQ>yTII41xE8tQXT6no)DRH24Mrv|)u|isYkwSh_R%&vI0@SgYsl|E# D!?-`g literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/coffeescript/string_feature.test b/docs/_style/prism-master/tests/languages/coffeescript/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f5a68685166f20b622c6d4a31f73a20147666946 GIT binary patch literal 1321 zcmbVLOLD^?3|*TU?w}zHHgWIJ=`rjq{2{F;4z&KPI=y=(0g3H8pPEbtONghZhorR> z`siHPaw*E9LqjS2qd#ok9}L)iH+C@Hr)!I$arOuB4xVXVyc41(Oikb(lxzZ~#XG@Y zKRIY(uV;z8UK z)nUK%A)g!WJkPt_67fIRGL_>`9hPw9N5FeW5p*>M$t4~F6fs5mvlpc*mXGYoC5j|Q zP`t&oxX$y~4o%xwlTKAYSuZ8sh#*y-35p8cjrD4gVl&lNQpZTv@IS%+p`J((6sAZ_ zvQ=fK7L}g%SZILx6s$e9qWKGR5!>s5AXsCZjv)Kvda>sz5yda=^7Be@ph4L%Un$*t z`!Ln1hokGD#~Eu)O1%b!t$}OtrfhaYNMbOs{@e$DFulkxd|?pomyF*Uz7rphPo0i ng=(IiQY_H4SResJpVMJY-;3QAy;m11=i wq9IJ(yu{p8kOa_PpfD-QL2gru<>dk*@*U`$k(!)ctdN#pqyX_W$UVh+08(#3jQ{`u literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/cpp/keyword_feature.test b/docs/_style/prism-master/tests/languages/cpp/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..180f68ef09291d4f7741078994d67912ead3d7e5 GIT binary patch literal 2699 zcmbVOO>f&U3_Z_){{xY8cjz`01A5%gD2hOpnOLYI8Tv??{rZuz+;t&$X%SfRBSp!i z_+E{7$6zuT9^(N_K7pwv!b^;P99|NdSFk1{J&K*d&L*|T{lmVr$@g#jG7i?8oF8e7 zr^SPfA(NG#__id5X}YI44J|HIgbA%L*M%nsQ#}Ql&|{(ZNWc2xX?6|fU)D;F*^ z)%P;f8z-;)q&FH`)oJ9S^ZUaOE`IF}JT?!WG#8$%KI8E96My3{4o~CorH}|3p&#kDV+^cGwt$DR&t(k>kYi`BRnqApu?S8pH)@fx2>G^>z zl=w^^Vhz)Y1UtQG2I^!5X8IxcwqA{oggfz*#2Q}-nE6Y9j<5LbRx80t-yo061SlLk zAqxDRAeB9dF{OWJP-$2hRp1-LD)BqziY4z9EG>87YiMP_L zbZ?|D;YRoWfx9SZoBUM?Wi6|Qgqw;8cvBT+6P6k2|3P*%W0W_7WJ!y@>XeMpbW4T# zDhfl>H6{KgbaDX;pFq11N}PmIiM}bN@bAhgaaK|#(5jrmy$h*^cWL-n`nt?28+2_J ikv6SX4eB17mhYa&fqtJC^j|aD*WCV1Gu}g2_WTDx4_wy( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/cpp/operator_feature.test b/docs/_style/prism-master/tests/languages/cpp/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a29f08ea5b372ab537978f0da5a8a7c738355eab GIT binary patch literal 1299 zcmbW1!ES>v42IA1Q~V&ofi&ZeaC+EdRApjYr%kQOMtj%+_1WhH?UMbcB1MGHe{9Rd zcJOG>qJsBuPC`K6%MCRa4B`}C(I{F)r3gXIs;Cus!Ckj;*CWAS$ z6Ds5R4Yr;S-+1}F#xHwKGtSdBuE_0cn&aljcD8IQ;_rAwcJi<*r?102T8wgo(v|y7 z&OBiaVJ%@5VV*g3DRLe<1aiLbBg~~YqO1v92pgC~r$p%)Y#3}AtQfR=LL%ACA+%<2 zVQ@$=uTsH$(lVtw<;OkyA6*xn=F%;RM1?GQWw2l{-G%HDvm|LX*TUzSTho!;*QO+f zwN1Ifn(BW)SsQa|jZ6&GN9uYawsF8|@-6#&2gTFJ;q`dIyG@+&bi&`rxID@)f5%yi literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/cpp/raw_string_feature.test b/docs/_style/prism-master/tests/languages/cpp/raw_string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f9a896f882d464b731109b978041188cfc08eaa4 GIT binary patch literal 370 zcmbV{K?;LF3`N%sGeC&RiU^r1Va7~x(g{(t_9xOZsad%guSA0hYgSluMoN1`!A(n+YRsE!Gpq(NdEH5jkbTovEmL{VAtmOisKo{y5wa60beg-0N6Dlt|yy2Y)(7dx6!knF>(^ Zh2LQIPZ=iHS)NRN_TtcX;#;bp!xP!jeGdQt literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/crystal/expansion_feature.test b/docs/_style/prism-master/tests/languages/crystal/expansion_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b40bd1f51ff615f9d7a4a5e5a5de34bd92165dac GIT binary patch literal 648 zcmbVK-3r1W6u#bhii6y>I+xrio%^4v7<-G1GsTC(pf+jW%4zcx1w7#jw?+_%-e&WAx0) tx{Rt91J^3-bRl?n%p|usn|Vmv0Jiq+4>!@=N4%;5JKhWmr++YR;RP2Kr;`8x literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/crystal/keyword_feature.test b/docs/_style/prism-master/tests/languages/crystal/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..962beadf84ce93712d694dc66eec9125f14c6313 GIT binary patch literal 1886 zcmbW2&u-f=493qBpm!j0?(zaX?67t~fTD+8i$YLrdJ!T^uKp}bpMI1aZ;2^jLj%Kh ze)=Ra6!}H(V+y)Upsmpn>NUb1e;5b*fcglXjwnTEb&U5?^f;8e2ec8(%?whY>j7QN zfr!f^;ICBB-~$ZVNnr*suCuvEdd8$(hbo$P^fY&CqS9Zaux1aV?t+KW_t_#iS_S+7 zJ|~#GaS21wPr>}u31JF8VVAInfU(OI;+9?}@A{~crv(G192||lWkZ2Qv?MQ&0p`7d zet9k^PZ*>~2Xv6m6V@AToSktd8A{AM?LyzYqr1fzrN}NB3#T&WbTAa{$)p3E4cZ=* zdf0teik^?p59(?6{HT-^N`2cs(Hr3fN%8puA1S1Gk>bN zpef6)L!%Pq+FHd8oOyQUDrZ`%dd{*Vwho|1b$eWwHem~_+Gbg7m8C78SDI^4UnPpV zjcIH5aay~P;nJN9`g(dd^+(;yWPiGuM%FpGv^Sr#v^yJ_+kaW=pBcF}iDlANVrJK9 zY*Jl>@!3^cn5SZP9j>h|#Bp&YqU!_|n_}W(TTR$FksDiMld8=%Xt6!Q>u9PEGI{aE z1|*;4lzfxH>Z6Qae6_*<`Ya8uLtKovF>f~F&8rl2ecX+|9@?mYFx5 zH*cnO?K#`LDvc@oTCTBd7{=4&a=&L&NEc_7y-W##OUif{pybtNQ^PMO2A%lF%b zkc+-xP=~T89EV9VVKu776QZEM^TI&836%UK76VxnYn=qfPTj z0ODNsy&3pN=P9_=95ia_P^CvvExd+RHvms*4OW*%L!(}8T3zwrD1N?@bca_l3Ol~e zB#v8dC|;Ik$27W=7F=`RI__>A)s3&~#SQqWAN#U=({N7&^h%$Up;PMp8FH3cwD9$3 R_5C1%W5&WHWwi#G^9#Knb)x_P literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/csharp/class-name_feature.test b/docs/_style/prism-master/tests/languages/csharp/class-name_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..113982b6fe01ade30d87dd5c8b1bc0441f6e3038 GIT binary patch literal 709 zcmbV~K?;K~5JlGw>aF|@iLRA1YcJRagg zUzG(SBghnQj4A^4b6UEGP_D?=Y|4i-#kSB+!uTRi%w-k^x=>h!vnU)AC3swiQ^3W+ Vcl&;vu0}VVsH_v-y`W|2_8%+2y>R@s{e3~PZEUz0InL}XGrK!0(V&5k zoocdzpfZo*6ao(jITFM=s#g?(f8acWO)`>A+ndT;Mt&At6Z_l;pU!#@2>^7NRZ9 y&RQJ6(+xi}{m+2y>OKi~mcG${>fM$@g0q7|Uk(!p)iSj0GB>HmpBp&yXr?zVe$_~lHG5CVGV z-Sq(W+~D15K+(!&#tUFK{(DEnmv_eF?R}!pBA_X%StSC=Q4$Go5uOMl{H9@Ap{xq; WN^yb2bIK;QQ;l~|%bnZXy=^vXjXECy literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/csharp/issue1365.test b/docs/_style/prism-master/tests/languages/csharp/issue1365.test new file mode 100644 index 0000000000000000000000000000000000000000..6aaf3c71696b2469d209762bc8a9bb7eb6d40dc0 GIT binary patch literal 899 zcmbVLy=ucS5T0xBI~?lbKvF2B9g?k?4BaxC461W>L~JQoc0w_E_e!$PHKHZOLet%S zKe{^!*+aRlaElsG^tMVstYjoXTA4TY$1v5BJxmo)XMEL5V~M#vIs z)S8zre~Y7Y_gRS?a)2oLZw&Sf((!zU!O(^X%DO}icUu)Y!@qi|wc%VME!0R*DOg1o4XJ_0N4TYM)(w%6Y^FV15d&9aT_q z!UP1ngPE1=B`}%#-o5VuKFR1(s`1sOlqfp-ma=j2ig)eJg=?Co@R^GELhub;Ln*h- zmunuuPVyMO$Q|qTQ7g=Ifo8%U4K;Ef!E7l7J5S;37-y1&R(Q={hoscT_WPqO`+2$h3a++}|$N_H8Od7lmI#tt zrf4RW=9}0&)MT-eEVT&(Tlb}7u5^5UfF+1d{3tipa>JC3-gDsLFmnTDFLkA)S7tSg>p*3{R{M6LVOZ2q60Vi21Z z<_~AcZb=po|5BP7Wf$5QG-|?biLOj7tlW|Ms!h|SxU(rWE;^opM1Az2J^Kx-UE9I5uCZ!fB=_n`}0L@d1<>dk*@(p#)NKMWzRw&6x zEKyKOQ&K1>N=?hGP{=F>vhoX3i*hOzGBVRMa)7ubHANv2D4tkUqL7~k)RL+Iaf}`> OS8!^og0h8ynH~T~oHYUf literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/csharp/keyword_feature.test b/docs/_style/prism-master/tests/languages/csharp/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e1c37f0a08db0655419967852af362599f45f362 GIT binary patch literal 3400 zcmbVP%Wm5+5Iom_|H1IN?GNPG&j@m$rIpQuCIvp^xL@BHO7^952ofZuG()bIOLBMO zPNily)cwwlBbwk{LD&BVi=&TczTV@2?&drOo?J1sDFw9I+y}aQ1vGSGaCNxg<>E41 z8$Jw%hu}(iL7!rQ4RqDVhDoCh{_0?Aw8^yqZnR)$M}wo4rw?PodupdZ{2txa!y^lH z#bUdnT`Xd@ea^uT^wU18<+$HXu8*30bRpdF?my|#6q3WJDZx!N=IHg56HJ{A#5trB z{W_z^U~?vxFcz{>?-|Bd9-|j@2L@AEN4Gr*6gyo!an-y`N=u^rH5|Lslo^s zIwNQd7M3`s$OvS^GO}G^h<$AgQ&~5$mLq!2yrckEcs_0y%f0JwcW(joe)sDeKb-fv-~D(!e%SqneK`I+9Nl(l zj&DEzqsCF8yjBX=;CATc1l&Z0^J)s5cU8f-yb9)RRyeM=fO+2~jEz?~GJ=GAick!5 z2Jpk{amLBOURR$YH{eB$W@gcNPc?$ta*t$sGLp=ioh0>0SBgv$WI|KKn&AY)l&4_i zKm{`?Dtyb5l49BvM9-rNUlXfjkZBdp)T{8M4#<|A)p%rU0V91YwC8h0Ai*n`8DHRj zQs7n-6s2N`q$h`NWdz*U4*jFpXk%(wUZot?Ct(5wOQEP>5{_p9KWm)g><08}D`jaE zCe~W1h^=@kYOSV7?+7mXaLBl_I*@l7x<3*JENl1e!uu#ikfYI0>(sPEcLsNgS$A;9UkD-}XEF XeqRgz;XgFxfSPoG06uJ@u>Af9TbAhS literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/csharp/number_feature.test b/docs/_style/prism-master/tests/languages/csharp/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..126808037b79cba38724e8fb2c9645697c9bc9cd GIT binary patch literal 286 zcmXpp;^i{dGc++YwdCb8s7OjoN(IspPL58lyj;9ox?}*5zGz-9&S<5)(%hufA|)LK zB@-j1SRFJmsI{095NBW!2RlnCmX`~N$akA_Mrv|)u|isYkwQvpa%OH~jzVHyib6(e MMIww3ad@#F0L9ioWB>pF literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/csharp/operator_feature.test b/docs/_style/prism-master/tests/languages/csharp/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4749c38c75452e66955dd470fd1515dc7ef1651d GIT binary patch literal 1048 zcmbW0!D_=W5Jb-v>_3bJ*1?MEAMnbDd`5^Nl$1gPE>4aj-`;K1UaC1o==3z2T}G>j zgaIRZq=Xp7<&0?(cSk_MA}%VDVo;2VUXiofxgscvVo`A&f=P?Gl%ZLiLKU5QV3`5k=p$6W&xg9C#jgFSLGl@6S!)+Xv$ED6`H}v^__v*xGW`v`5}BvhWRT4)_G8; z^Wl1tqH=bY;El6V&>;*gC`91k4MOjNXN?$;;y`au7_sdiEs6QU%Toe6__XMq@AS~K@@FwMxtTdBXs$Q)@dn*JDjQJ!J6p|u Gj{7fRodkXW literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/csharp/punctuation_feature.test b/docs/_style/prism-master/tests/languages/csharp/punctuation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b9a7bf1499bdbf15871db19805bb64cad342cbfb GIT binary patch literal 468 zcmbWzF$#k~6a>)PImPfRh0PvdEw=C&%P)c?BnT>rR^r_Ss}z&QUp|K6Gm(KU6H`KF zjwp0)+*z{$ZWj(HsEW<&*e~mSc~7GSS~L%WgXUIq`opJ-_N?>yd`9Gp&b#JK^RBtp V+?d0!4&A*T{qW^;`tWD&hyxFEdIA6d literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/csharp/string_feature.test b/docs/_style/prism-master/tests/languages/csharp/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2814cb561c3b989ea81db04d9c3d967dcc446302 GIT binary patch literal 506 zcmbVI!4AS83_VNIe;~bZnfrzrKV#j2ZA=$8h=6{-1x-vGUIwIv_xect5JBMN2pwNQ zG{~u8AU#vYOk@N^uYImkT7gicawLu*jyqP;wIB{HhUjN|!Ac_W#;)3++#+$4AM%H8 z$|{C=kkWsdNuvL(BTtqGF3EZRZI6oBkRr?kb|Cod_vw5!!!5|kd1;+r^&+($<aYiepWEQ0+mt>Zu zD(NUFmEyEWDVCQDh{(6iIU_YWyI3JDzepibL8&Z1Get?kIXFN8Za+{eCnvu=HANw* SQlU6CH#0duCqGY*mkR*!aY4cW literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/csp/directive_with_source_expression_feature.test b/docs/_style/prism-master/tests/languages/csp/directive_with_source_expression_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fc059f4246af8c6d518f73b7232ff15e05c9c81f GIT binary patch literal 255 zcmXR;F3Kz@(Jd}YR!FT#%q_@C)l1ILwdUpG<Q4a&bm0rDPVRCYNNEr7Gzt zC>0}YQHs?8$}1sTro_t?ONoWf8L7$H#R_TpMGDTr0Sa)Nfg(9M`Q@o83Q3g;i3-K} WrA5i9KyMZlr4|=w=I810asdE}?La~R literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/csp/safe_feature.test b/docs/_style/prism-master/tests/languages/csp/safe_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..af31d1ac4d7ba7dfc75fd7c48143e666311206f3 GIT binary patch literal 547 zcmbu5F>k^!5QXPP@_#sa@c?NhRMH{pL`$dAp+X%HgJqv(Lr7Ae6On)4BpwRN1~;AF zyLZz2G#c3yAtkRslvRl$2MS$*Q6Vgh071b!6;j=m^5j%6^p^_L4y7GjD;LWweXqaj z&6Bj-b#|~n-}Y^*yV<5~gZxmYE*@@hGGMT-6sG%BP^v~Nt?UoC{s0YLhqdAT^Fl`>K*lJiqim2?!8 zlpz)=#p+DVW8WTVtKiMh!sNS$hL1rIv_7ukxSV9updcF;VV?QK*4Q*@<3rL0)p068Te^ z{SQ2E*b7g&o7Lr*7o2usnbDokl#hAc;F{C^++edSSiW~z?Mv<2`klhb!z1^~N8ZVK q9kEQWsO?#zQ~E%!_{!QE5%HbFz<;-|wC5t1?Hk%iF! literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/css!+css-extras/selector_feature.test b/docs/_style/prism-master/tests/languages/css!+css-extras/selector_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3931a6633472b7390c38823fa3a5efa97413bf36 GIT binary patch literal 1024 zcmb_b%Wi`(5IhHof3P-}M1@H05vjfOGl&lc8)22$5ng&|e!jcrQISIrB%Hjj*|BG6 zyf0LPrWdy~X(%Wf+Xu`$gHv)$J8bj1wVgh^xtG@?cgMo1QgJi}`z6>Dl=u)_Eu6Hff_)LX!(YZS(ItAD>x zkqbzwOGy)O9bAorLhBvZZy;%Q3-Idwp0%LvR0xsxoemE#Sddw&htaHNl5B%bP$f(N ztQ`wLGLnmC8Sl8R#a)Vv-zJ1-%TLyw2`R+hRs$Nob@cO@4Sfdr@AcD!e3vF0?4I-7 lXKU)OAR6C`wXs7sC*ormil>86P7AApur63_#Qd{_(=YU$5n})V literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/css!+css-extras/unit_feature.test b/docs/_style/prism-master/tests/languages/css!+css-extras/unit_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6d5c15c8e60c5a19eaff6eb232d13316ada4d4de GIT binary patch literal 400 zcmXpsFi_>?GAv5X<>fLpFvuaYifU zmF6a;7Aff{C>a_UD8=e1L@Sl%WtM;hRDoP{HK;0puESIVbSv3_UMW{vnD~2`Vym-K{LW7L49X9!8euhm_(J%-%q zO#i6XILv>pf)<&nkPSEw2Ab~n%u9pSW^$g}YP)I&!6zI&8G}2k+W;*h;A-%4@Dmpi uyla3LrjPk1$A@OVEWV7v-@4Zk`pKuHxM!DM-ax%KtaLtXYQG!JBPCzz(G{Qo literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/css+haml/css+haml_usage.test b/docs/_style/prism-master/tests/languages/css+haml/css+haml_usage.test new file mode 100644 index 0000000000000000000000000000000000000000..c90047f28f99df620d41c3f7fbee704fc8849efb GIT binary patch literal 538 zcmbV|u?mAQ5QgUpzQd7OeE?UN?sgN0ke(=wu_UojM4!DEQ?zJZJZ{PV<^KD*R2UNm zm&Bs6FpOak1{1wgF9ZC7_(VCwf(#2*HPWJv$(Tjpq*YVAMG~3Y%F4(ygA#@9v;%XB zg*u;I$Bb0>M%HQ x@Yu~|HHwFUs?(6=Ir!5pDB7-!QzYVdZ`b}A(WPZs*qQepznRn; zAtRCWEhQjym6h(gFbD$`HY8N6hO4vx>n9ZKOMuiA%pn=R&Qj$t*-=(VCehRHS9O#&5(fYECh*y{tl%YX+GE&hi|aD16`ZC2h_+$@IBb9?o->V5z$YJE z(azh0%86(a%q@_wTah?{J(XTMrr9Kh#HHxmeI_C$RNsgPw zM=QV=V?Vn9I(IVFaXK(8xyKS9c+ctOff<87+3;#`K{m|6UuLN1-%TeDm(i zdS^TlD{C$!w4(5iobS@6+3Z~>Drv?D)PhwKPUoTEm8|kVSSIrj?(c&7a|5KxpeyH; zz2-86+aTx~hDH=2EG%t3Yn;3}{Z9#Dh`l{~shLKT%$=1}BA_c;! zu%TDCRVrH|8Lu>EkBQ8aQ$RMEW}1&CYcmiiSfvww|932Y4rf Ikrxg426cS;TL1t6 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/css/comment_feature.test b/docs/_style/prism-master/tests/languages/css/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a3899eddb2026b70faf840df1409328af0e767b9 GIT binary patch literal 309 zcmdPb($eSU($`W*%g5{tlmUM^iS052CWS2QmdXS7mser|4RUWt;9f|5Sa zE~Qupb~^GN~b=CI7I6oS`%U%eEarO(^8rY){r6G<&wLPQ<4p1 z#pNT$3XVNfr5jx6*-IRhv!bgdpN4ykWt}sZ`gq%61Q)8dSEY`H-h zQ1HhBUFx7yN`&O1lxikECW|vLNiu&Wr=d_2Q!O8Wk2PKazJc#JniSt6cf|>WCB|nx zi!xd8AD5qLS#(C5Fjvcc?U0)7`KyfJ!+aQ-f7m&IwGEaq#_(HjEE1i6Yt?R#4$6-7 R@Ya+?H{w_CuP7vE78b*iqS28Iz!K(ScX`*g&149ig0MGY)5*6`U;!84!ZS z_>e0h4cV0Css)laF=|eiR~nTur=?_x*unmp~6qh<@esNBu6`9|qph e&lTpZq{wG%Dx-Uci#69qoB#)3Ltv`ynzJW$kfs>` literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/css/property_feature.test b/docs/_style/prism-master/tests/languages/css/property_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d01e2d1dc0b6718b5adab7809baf9358f0c512e5 GIT binary patch literal 585 zcmbu7K@Ng25JlILaEGRA>VjoidJMt>N>x(qkf9CnKAwRKa4}mjXjDSbF6aMwnfX%z zH6SM_%OnhnT&NR*)g=>Cy{N5p0_$Xc{M<6a}ji`X#8{<+iPEQM-``v&B3tV*`~JHUvcIsgCw literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/css/selector_feature.test b/docs/_style/prism-master/tests/languages/css/selector_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5a5972013529c02f703f425d75db3a89549540a6 GIT binary patch literal 495 zcmbtQOAdlC5MA4(cbIgE-~rfr3}At!mB!jJZDGUZ9jx7GOhjk*=6y2rG~&XUMua__ zdJhTI+V~JFIT}0EBhKnU6i>F~jHIOGtomVAU&Gn15kXlcBYIJSpc6z#$+W&rPR6N^ z2HnamdH*6$7iaQI)B9&z0*WnS`lxJu>!_>GHqN?#dOVIwUIJ+J5R5xpRaxT{^lpIb LWTQzi7Z(n9wB?2H literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/css/string_feature.test b/docs/_style/prism-master/tests/languages/css/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c849d6044c8c0264506bac75bbcde424a956c550 GIT binary patch literal 438 zcmbVINe;sx3_KT!KUlsXMM?9BJ|oT{3$#@mtOEIefu?Gb-eMskdpx7@pdn;NDU>0_ ztfWB0Oj7in%hPYOAW#>Op!9ck1fByFwG>iR2P*LzDNYUg;O_Q{B_N?8N~Q?0Eq7pa znQi_fkrpXLj%@U|a3R)OTdj9g7TK?4o#o1n%D~g4ZAcb3w___se8&U0-1PA9VAz3= W89a6MnmOn(=R5M;|0bW5{P_*wKy7~j literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/css/url_feature.test b/docs/_style/prism-master/tests/languages/css/url_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..05ce8f9f74279884569e3eba611d22bc9fcce433 GIT binary patch literal 436 zcmbtPK@Ng25IozYf7tYbO$wjz87v2|1&yTDLjNy|wV>%q_p+Itnaxb_sn8yy=uFXmb3DQAz#hep%zOPp@3EjC>r%mZD}(kzO$o{8JfI^ z=+UM!8P)paL$-e7tof(o>0-{e33}&&8cGGhK7yN#Rxn-dFq-lOp|u*c3thTYPjicN A8~^|S literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/d/comment_feature.test b/docs/_style/prism-master/tests/languages/d/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ed1f86036b85e99d2fdcddd4d1002ee4b177eb10 GIT binary patch literal 576 zcmbVJL2kk@5Ikeaf0&vZ0rnAnKrg)!4tBC_ERv0Cn;wezdu;{Usze;HEKA;*S?`RO zPjrldoEKvGL}-UrE3K%isGN8kN3EO<__1tlDh}mL5?ATd(hm{t>F7FTemG~@1?8tO6{iLRTEI_jha%iwCzqe62)(YmMz83+&1S9M#XWxMPQ@N} zt?u<+$$(PJ<>)m=)GaW~a2{0mG9hgv)}UWUCu`8JL3=E$Q;F=1m7!A6V_9W_ox}X_ z(MncPDz(=q?WM~u+9nu>ZuU-GV&)M|haaU6GYm1Pw0bk-!Hsnhb1>oye6;UWqu~K# zPs$sW;Jo%;eaCEiXR-1@H6DWu=G9=t!L?C5YV{c{tqTY5&Zxv5>qy-@%+i|{Hlu2e zYA+S9_JfkroRaHC?}BcU$42asX~0Df%RIc-ScumlimRr^jbJ8hns|6RBu7p`1!;zJ z6Xo1Yanx|ybT(<{r;BYcGi$y}o1llWPXmX8!RacKMpJYgJeC?RqsA8JijgJ&9Dc`q zxMDs*G5IcL$3&a<07VE|j!-OflWj`W$w^lyhp~+~?VOL)`H+8^fZeU@yZeu~buG1r zr<*Tx{p0;(LGQjie%RhWJ!YFv&$rv{-}S%2oA=vdeEW2l?Y8$11(Mq5?fZvMnfQA9 zc=Pl;*PlPX^}L^5T-UgaCcsg3eZn@$X{_r}c{Sj`d*JZ8k+X50EA3pF;PD#17=v$3 z*GYA~`tvvbq}|JU^~cNRs4r*d+s$>gx!QcY{x3Gi4n|2Z;rQM%d>SY!@rMxzNCcJ$ zMPb)77)Soda0E31OO)dy*iXeu1L9)9N`DuvYA_EN+Bk57LRG69%XJLJ3JY zgh&~P;gXV;@SYv)rK5qo#rnx$|oLSV$4O(`eol@XF} zDZYT_jEok)c5UABHXCE%en@5~=919}oN_WdsaHwGd&+?d3vtFiT7SNRXDV{0)KZ#AP zvgW2#65*7|s(g_uGM)0XZeJjakf&@>_LR#~pHf--Q|jkqfYA9ZK#1~OAWV5b5GFq; z2=Vs9*nC^B@c;YIj1LFh9H$C;rMkMV%5!77uBK5pM)g&2M{TD{*|ysEZm0VGQsJ>^ OtZu96GVEMG{q+NSTKAs- literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/d/number_feature.test b/docs/_style/prism-master/tests/languages/d/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..817bd7e3d6693946b4d875f907bc729688643068 GIT binary patch literal 788 zcmbV~O^bst5QfhUa zys<_KYn;}ad_!gz48lU?*5yn0L80**DYUXaTT8JrNcp*y0&J|xPgj@QFN*6L<$COn zsMjN!1#eVY_t=empB2GZ{TzJ}w)nPoITpRHRPhsRH@OB*itLR=b$cmh`}FVn+xkno zNK$Lk!y;nz_Z)9HxMLx+^)bD;AWSpH({y8gpLWQ+oc=lexGt!{VW`7lQj6o0dR&Io qWI3rD60gU7s?DWI{kR`!$KwWA3Ow&$k?prXork3Rza-N=8PpBa`LT%r literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/d/operator_feature.test b/docs/_style/prism-master/tests/languages/d/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d7e291da7814bfa4a3f3bb2d0a6fe4a22d557403 GIT binary patch literal 1446 zcmbW1&1%Ci5QNVa=p9xD>tIFl3rM>3F+vTcq|_9W689+l?42$2P-`x2h-aP2r=Msi zZp|9+tqH-J7_CW3QcBj8YR!6;b+g8yI=#tRaxT`?D)sv+T45}UEDLI`;&A0!w8C&1 zH(K$9ehw0#Q6hAb2|CLR9c6@i@z5p>iW#B1?9d_w>cl~@1t>NE)gAx+rQ^=lJe-Hy z$L0R~dAkoM8Cn~jPMzyLb3DP9RWF z!*T#41*aaIC^+}vOu?}SM+$2A4}0_!)c?)_Y!qZor{LbtxKmKg!_tLh^o*V|owo=;o)0t}vQ+5i9m literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/d/property_feature.test b/docs/_style/prism-master/tests/languages/d/property_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9e61b062942bb20bfd440f2c95705b283ee7d929 GIT binary patch literal 420 zcmbV|K?=hl5JlG&yu;v1A?*dS5qgY}g^h+tiUu{5+`dlH&_bXPapU{=|DTad@QVp) z1M3oKl@u40NNuBfJPoADMlM=PD7l_E_^+en(ypq!bhS3Ko&8>;I EH!QkuEdT%j literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/d/register_feature.test b/docs/_style/prism-master/tests/languages/d/register_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3eb57c6738b0a710f0e33076990bc2e1ecc619c8 GIT binary patch literal 3853 zcmbW4Pixyi6vWRJ=sPSvwU8FCRcUWH(|ulh@-p}FcLrk&}+bos8X9v*dPiIj$tC@rO< zEGQ_fs|jI+2^ob6(S+%o#*WPL;NCeA?wvC+hE%520JeIhWC~DE)D!hYJy4tv0rE)6 z6tYMb$s$=KYseb1hO8k=WQi=1C9;;RC2Pr${S-U0j;tf=EQA$rv!}#!9u`QnM509! zEfbc1WM+^^LAX$)3q`z8Py`2Eakrhg(z^dZ|tCkO}dOomf`oK#SH@Ju!RKyLc v;wIKNsp4j}h?`i%O^my&EBwFy2g3OM`OD8!`1<=LY(JlVg?~R4P9OdPaDxNA literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/d/string_feature.test b/docs/_style/prism-master/tests/languages/d/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fc501b11d46bf34ac8c649d38e02a58e77c42f7d GIT binary patch literal 1007 zcmbVK(Q1Q05Pa^z{ll>@Hjq|7pahzfyygR3A;#3S6e6B239b3}&Yo6lJYNzdFnhCm zb30>+%$Z0lOL@UmPzD%9X1!d!(8*ZZrQfvIN~@CMyr4p>U1}3Flyu+WnZr*VUO4>I z;R~>ItT!92mZ>#vtX9D7N!W2i*IReEc8nkmOu&KseMM399LPY?4cQ_Z11%>eId-4>UJqnV2YBku;*4UCgXO&l8IeD8IE Yr9>-yx2JaX_L_ZECNHdMqFX)w0xKc~FaQ7m literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/d/token-string_feature.test b/docs/_style/prism-master/tests/languages/d/token-string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..01627c4a851dc6956b47cf5f2af2af5536bd1854 GIT binary patch literal 232 zcmXS{PRq})<>e}@Rw%4aN-U~X0CIS_bjbi9ebKyJoY6`p`Pr#?y2T|$nR)3-ItogK oU`v!@b#TbStyYTVNXsu$06Rhf;)r5B084c^ZU6uP literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/dart/keyword_feature.test b/docs/_style/prism-master/tests/languages/dart/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a5e3c6c2da8c0e13d7925fcdba7f17031005d989 GIT binary patch literal 1755 zcmbVNL2l$A5Iipue`xtQ%H{((?lYns7`q*#VZZ_$$G_hKyxQF~hfzi&BbSQ;)752@ z4nJO~T@TA{x@cvtDMvGAGAVH^14v|cW3yJ*$mT|)NsLP#7p+DI-V4Uy69^cx^&8W~ zv)NoOBge>-R#Twq@aAquVg~{C+g&UETmx3&&&<&qSAfiZDv~pH5#m9!#e;TrxC>FM zcg|#It?Yeud}p5vA2*P~=*ih@H1W{N^NuHeb5IT|M*~G#4OWbtml*akZqaL%Aepks z*k0Peq_kVSA?3v;tr|CDH~Cl@FGU{)`}hcUqJ6QB3G9XHA!?=7&u{$7yjQJ$ybd=$ z_7JDxiH3Uom*MS+{)21H1lno{Sg4#u6*F3qJ1~ka(PDy*dUb_h7ngKEoM}g*+NiPD z&5wCQA%ZUl@X})!v-R=nz9#g~DV}cZ;nkfTttm)$v#-F5oh1l+cVwI2CHwS$cSdc9 zHsyiCIon1oQQN4GxsT5>~xXO8r6k)ZW{^72Ho`iRf@Ev?Ip4YnVB7Cr}MZ*be7Re z(a{5A3?B2B$y1{f@~92y*-i*Nh6J7<(VXG1+;uC36z2o4?DbNddX=rLw``RG)xE>0 z!F3`N%!=nmh3coC1A3s{~-k1;e5%9IWr$dGhta`q~VE{e1om%^PmV4oo5lf*8?MA{YdtXdYqe1xb)K zD(b3LgD98;O(UlK#5#Nzrk6{%Jg)2fv#i|-T}s{i3IAEn%8YWb!qKAMqWzGWbY5NS z4HoTQwo4@Wbcl>BTWv=u3N{!c1Y*Ls}vpSm^10`1fhyl8R&mfesnh@g}d9uYim zFa%*70cU{kB7nWq=txAXa#7GbCq>&(4U~dt+nKgfNKyU}tgECrR5;Ckuoo-{g3abt2y5$=$(g&tRD?L7B`y?8rwnVmUc(t=S=hi_hp=iavZFI6%2Ir%@a4| F_yU>{DVCQDh{$)ab4F@% PcCkWQevty$)x~-MmZLfu literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/diff/diff_feature.test b/docs/_style/prism-master/tests/languages/diff/diff_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0e53490016a7c21d3039688268040dd0a182f30b GIT binary patch literal 418 zcmbVIOAdn|5M7sqJB)0L9-wKu=`oCp28NbsFaq9Rr;1{`YF}6|ywA)~0AYw1P`yXa zI4h42=e&gHXi0O;9JlQb!)R6e&M1Ee`D)Hiwb0fWAwd+>dP^6LTv+Tdq9(y%)WlmC z(6558;gd-3A^R?g%o9Gh6AfqcnZM}|knjFN)dn!Vhjj=EsUbX^2HGAyx(J~eFi3fWhZ71^Wfm3sQUP1u!k}NWw36AGr84iVCFZP9c>I9AXN{Jsi%zHyJZ)sv zYCN>6Vz(P?O{(`7$n&Zccx~$%mGOo_yx|mK@I`*FPherNe&eIOBn%b_)Jhrv-NA~H zVF3mJR`f4{Gj`un<;De0GwhwK(W(?D^6chq*nx|qet@a9w`uSvCpuO`0;30MY(=J9u1hJXNbD*sfD<{#&ct!8)mrciK_y@(MpC@y$5xqM^{!VY zc}&yJ*rUwwqd(6$>2W1|6wq$G;5nfNrnU=Q$j=`r_>2I@`pJ0llwY{hYmov}Aq0RNa}+isC}2s0s*^YE$uNc?-E*PrKv cio1k+^)N7FdH--f3(U?9J4(eIy%L+~7ij4uG5`Po literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/docker/comment_feature.test b/docs/_style/prism-master/tests/languages/docker/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..054d6023d168b01d574d26410f92bb4d88dd8417 GIT binary patch literal 201 zcmY%9Q4a&bm0CFkenrskC>=_n{EE5+(yh(Rq&PYwpE(V%bqyV+DSPuZd+A4bh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/docker/keyword_feature.test b/docs/_style/prism-master/tests/languages/docker/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a36a7e00b6ba53ced883b21fd89176d0aef404b1 GIT binary patch literal 1433 zcmbW1O^@0z5QfjS`;Hk{LK-e> zDTmn4jK_Z8vFkj~Mz#rtX+j6OL6&ukJml<`=Z;~&-lyfBv#~L9rubPN_y?Jq>KI2d zE`M%SB0DPIbOMCDnFC=2-7?8Iv;Iz8--2)7dp-Pd=8&A6Ad&D}ZBsCnG_+;=Ie*+_h(8OaC9#jO*LyKX9#+WN&@$}lus^i=FVG*GAj7Q! z@urmE%r>4a8xArrVwL_7Pn{l4TF%saow#@iScp<(q6MP87AwvSZvgv3=1-jYL(8^t zJyS=F-pbwXjD;#mf;7^wKXoVmXy6z&6!9hvutv_>pBOrB!P%FEc$cT6$|Jp#OG=1U z3yY}CqcVC1K-5Cs1490p-jIsd=NB z)_x(pYMN%2j6^iKshQIbBZ_R+OkJ#ZNf$Ij6;EpLPC@i21(Q+rYEkBKy3w*PwQ-jM zfx4b&D^uWypX;&c@5b1hR YPYgZ}pMMMbTN%C=@TPLO+*#522gN;!S^xk5 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/docker/string_feature.test b/docs/_style/prism-master/tests/languages/docker/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e131f0213681520061b9bee65be182d765d76559 GIT binary patch literal 367 zcmbV{I|_g>42EX|xkJg4MZJW_Fb*od5G=IbA5&6rP#2pHNxr;(A_SVfkRSSBz83@w zm=RbZCun|#8X#0ZUg~QRik9LTwqv2vk*HBuKC-%5?65DM3W6MZ-CG6ob83>4^}ND+ VqBbMw|F5%Ir*V&N_Q9FhSYMbKSGfQH literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/eiffel/boolean_feature.test b/docs/_style/prism-master/tests/languages/eiffel/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5750be06cf27d835178f9345f9de005d2777d503 GIT binary patch literal 201 zcmWG3Doy3(a!br922#9Sx?}*5zGz-9&S<5i{QR8M#5^S(1*H(6xk|A*=)z!&lwx_g YfQWqCoHJ6Bvx^nd@{1IpRu=040EBWYng9R* literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/eiffel/char_feature.test b/docs/_style/prism-master/tests/languages/eiffel/char_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6a9b1248c0b5880ae557f32b99c3cdf6643043c0 GIT binary patch literal 222 zcmY#SROjVVS5*g-`i4fv`al*hmo6Cqq%WG6i!)j&IU})1Nk>6RJyBgLRtHrGXceXy d#A2mbUM?Ua-*)GW)a2}9g|z%41&|Yp^#H~xDXRbg literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/eiffel/class-name_feature.test b/docs/_style/prism-master/tests/languages/eiffel/class-name_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a7e15a6b6c7ac099f87e7f7bc005c445859da69c GIT binary patch literal 240 zcmZ?d<#O})=jC!Tafx>`aW>}V;^opM1Az2J^Kx-UD<$V778mR0CFZ6o=_n{UD#hwx n5eC|cT>|C~rC44rAR^x}&Kar6*~JQJ`9%s~7b$>TRICR8-_J9$ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/eiffel/comment_feature.test b/docs/_style/prism-master/tests/languages/eiffel/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8a6b93e320f9f3e72034c752aa8a85a22bec66b7 GIT binary patch literal 254 zcmdPZ<>k`VRY=RvS4c`M0<)EX93==3#3vo_a`AFS^Kx-UD<$XW=BDPADCsCD>FO%Q p>R<}OY{o7b19D3Y*fC16yj(y;zKfhQQj@cbf%X+CK%G^r2LQsEH{SpN literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/eiffel/keyword_feature.test b/docs/_style/prism-master/tests/languages/eiffel/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cb6ae29832dbd41b27ef282ea70bf9f52a41c3db GIT binary patch literal 1909 zcmbVNL2leI3_RC>|3K_HeMLS{^w3L?gI1<@g=i&Ll9Nqd-=S<5NXSzbw#*%pBgrDi z&X-&(xeKR8E(QlXMsjHy2iKbOSDr|~TEis~pc2k&<8gq;zmSjckk9FrOCw*{iSKbO zMF=N8uNRCnoF?3LEpYLD!TgAak-^IM#wEEp4m0QxLUYMC z89q2sn8zX9mKeBFNLMbQ;aL~<4UY8cN^n?83@=PEdlxb0WgJp&gqta!YmO{N#HMrd zunPSu?AKCZVdXrBgoR;G?#2NAt^unkT>Z-Qo9h}eSK(IPsdB{3cr32qT~N(8WVS0- zx?)p81fzvW`^v`QPYx5kNyI&uaTtf6-}p)1(>VNiI=%4wTQ1Y-fljWU?&(e0L3sxoc0yfaCpbf`S z;Km$NR`JpSCKzT7_m}?pAh(V&<~mwPv-FlS;H||Bs=en_iu9lbq9+yHxAV1L_NLXr zTN4|2Z))I*>F9EmBVDgSQ2_(Zi@^yPi~TG$&WqjkyM-D{oV>b!++uG3|-W6nPsyz%M@m=GuKZ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/eiffel/operator_feature.test b/docs/_style/prism-master/tests/languages/eiffel/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fcba4b34a2b007a8e07b8cf576c648786bb65017 GIT binary patch literal 539 zcmbV}Jqp7x3`XY)bcYX*`LQlwXX!EG20}?GG~kkS3_g3Dp+hTA5gyFrNqj;fV6%3E zwGd&F1c7)a2j|hD%ikI;Dy9J*iHWH_QAc0Tbm>iePs{j;i)mm&E^}+}OOHI7TC15z zW@@UWf>}Vm)ai literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/eiffel/string_feature.test b/docs/_style/prism-master/tests/languages/eiffel/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4b6692f8f559e9382fe5b950a1468850a46c941d GIT binary patch literal 609 zcmbV|!485j42I7x**lCTTnO_OIQST22T;I8+>(J_2=8t?5KVv!Kw$m*wWU7*XHdHs z+;ng;XK`70j4+`zsj7D1I72mrkqm;;lN3o}hB3SsGK5JskT8sa9Fr_`l?N{R8^zg4 zLDzd@8%PD@c!N$?DsGd5+sk3n=ayESiB-MQ+qJkg^~Gv(Vw(xxAcZ|o*GDI6=f&i5mx|}B?Tu`Wt$tczZ=z^TV=MgP R**d$#@5+}&Z=PTJ`~f(gp9cT{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elixir/atom_feature.test b/docs/_style/prism-master/tests/languages/elixir/atom_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5b1c47d2f1b05edcae786e9ae1bb0e6ab9aaf957 GIT binary patch literal 232 zcmcC2DJo6n<+4gk%qa%ZZu$96iA5$xyj;9ox?}*5zGz-9&S<5?lKfmH9R(#TkPS+) lI;etR`!GadwkyT*asd(fPH@ghP0lV>NXsu$0J)=B4*>S#GRFV_ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elixir/attr-name_feature.test b/docs/_style/prism-master/tests/languages/elixir/attr-name_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..de7cadc8981e4c73dbf585011df20d1cf18efbed GIT binary patch literal 573 zcmbVJF%E+;44fM&f3PyAmFSqY&p-?YT!9LtN{mo{UkA!SVW^tTCtvP-m!pHsLh0aI zXjOX$j+-`Gpf1upAZs->6lA)4Z?%flQN<2Q3|eV*{^KQHuGJ|w&vB@DL~i|HESTIB zq98ajhx33vB^2EX4`W|aNLVHi?D%$F-0;f-{`HVw%>2Cr31-R6U}22=JiSVqzl6ketq!`_vvRH3({R zQ(DdBMq*}!*||Y`g#SZDz0kvaqw!X+2ne?eE6=qERm(a?{~l5_ToWs4zzz+8x{Dogn literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elixir/boolean_feature.test b/docs/_style/prism-master/tests/languages/elixir/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..aa949797d22aef92453dc97a05c79389103b05e5 GIT binary patch literal 236 zcmXRZDoy3(N=wWs22y#MIlNrFT)JcckiKYMF3xDBr2PDx)Wkd`9R;Nlpy5ifI_Sb+ o+pvfOtyhZW(^b literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elixir/capture_feature.test b/docs/_style/prism-master/tests/languages/elixir/capture_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8a64b6615455050f9f3bf12ecec7d991103112fc GIT binary patch literal 770 zcmbVK!D_=W3_UO4e-J*Hgk~x3z3i}S`vvY8Ugor6s~sHsvag@yVn{+WMvXD(`AK?u zb{8$|K^%3sG(X0>m#t()Df;ofi?$8Dvs+m;B?c8M@Fa36By2z;AP)T)n(kYNU@XEl zh#kVLcz$3}o?^ulr#8F>#ob`M4$fo1_x!EKOT}9~gy;=nGuiomAl*@ubmEj5pXSZR z%Y;Q@wSqS*I5h&&o}}L|#!voa|3BVeofOyp9IwWPX F<`=Xh%`X4| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elixir/comment_feature.test b/docs/_style/prism-master/tests/languages/elixir/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7a7981d944907f6d49c65463e7cbeacbaa536e2f GIT binary patch literal 262 zcmY%9dk*@*U-zk(!)ctdN#p1oL9C9stP&Jm~-c literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elixir/issue1392.test b/docs/_style/prism-master/tests/languages/elixir/issue1392.test new file mode 100644 index 0000000000000000000000000000000000000000..c7d20a8366e6d893133653e894dcf2a8be37a93a GIT binary patch literal 318 zcmbVG%?iRW3_e@vJA_=^VD=fj_yjwa9cmk;;M%b^u*bKxC?cK~atQf;$GrM*SG-u0 zs5{^MMy{7aiqnp%IxWQk$CoP(<<_`xu$fKvG2j5GaH@Z7k^ebe<7hOwI9)kYRkn6- k=*PClNs6-jn_oiWm0*sJ9|WJ|1TKbS1{(`L6MW^WCkob4Q2+n{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elixir/issue775.test b/docs/_style/prism-master/tests/languages/elixir/issue775.test new file mode 100644 index 0000000000000000000000000000000000000000..d3243f80a8b7f9edd727e7b7fc5e76a015841915 GIT binary patch literal 336 zcmbV{I}U>|3_xch`82KH$RRQs{55GUJhXjDHqm0mrEL zRnw$Zsq;>^$Xg}`aVQWlzis+NaD=ve444UG5^#QTYiS`1$S|i6C<=p*>@C4z&aGAt RBB;CW3a^yGlAvF?{Q_{sRiFR> literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elixir/keyword_feature.test b/docs/_style/prism-master/tests/languages/elixir/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e1b02a1ae3cffee2d4ffb84fd3f1b5f57a5fcae2 GIT binary patch literal 996 zcmbVLNp8b13_MqW{y_Mg_7iZAB>Qu2qczbB3A`ZVU2it=?aF z8t<&t+j&~?exu~36HKPbFkMdYA8oQoG&+Gb*%&;I?K;Y4)>VM4*I)pnPvOU>e@={# zn>C|VyH#V(HX=N|98-34C65Hu%pc6)G>FzYN{FOMex%zTC&A}<39OGi8u!SbXx{TE nV9qCF$02)QMKcFjU@g$oMJs+^Pxa@5cFp}t@nwZayz|E|rzk0JBYWlP}9k7H@26E2s1~qexNpJZ$D+l#_Xzt!sj`DaL%CxbI7R! z1hiLDw$y0oTlb%S(QqGkTnImT~}$#9AQ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elixir/operator_feature.test b/docs/_style/prism-master/tests/languages/elixir/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c97dcce5ef6ee0d9fa3eea7ea1040567d788b65f GIT binary patch literal 918 zcmbW0!3x4K5Jb-|>_2RK$ibL;FG((bhE)(z6vayQSp0T3f(N^EGHgP5%xs6SIp3JN zj;U>#nx_>+j~!c?K~Ufwl9Y~y z>`@jZ3o;v2Evc5gH>#P`Ox_9AnbbKGnK*2C=vw1+Z>#VVjTTrJdH4{f=M zt*)O2n8pu|G{JQK@uVUA9lWLrz!dm2!2rJmQ=5TCqN&S(BjMC#;E{Oh@&e)p0QZC6 T_BC9d`u=jc8EnqG(C+vFWh${g literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elixir/string_feature.test b/docs/_style/prism-master/tests/languages/elixir/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ca54f4be820506fe1e3a0a3b4ceebe0ad638592c GIT binary patch literal 1828 zcmcgs!EVAZ3_TMm|4^Ajhs1`2I8M7D?FTsQ(DVQuY}KHdS|$$AeEaOUDX_Vk#-V^z z`@NUMkH&V@WMl1WSx&TaJ{}%t)4Bl`CnirwX23CoI0y-t$4tf;AMQ9FWg!X5QH97$ z!gRXCq&jj^hd4+HSUfWMq?J|xc+Ru65ti0uTE#IQ*n&Qzb)psxNL#pr2$Pfy^TU8O zT7}vWqjSkJKTJ$C7KW)-_cwfKU82<>fofmo#T$&H1o(Z>tAI2e|6nm4GzuUNm*&NO zU4Gi_a-Z9Rb|4t>*Y!5v<;Woh!z1{;h$y~xD@JG2GkPVjA*EgT`~mo45cpjWxc0IL z)q=}RbAJp7Je?6V{o28DI{dVETBsK;Zn;3S9p4E3x*1hnZq98d)QcA>G@`(=8?Wfs zP2FXtoeW$p7I@V-2K=`)MKc==h71b!0Otk?F0_b9Lbv$m&UEYlRf;?Oxj-^273=%0 zyV-~~h6bA<^ZmZq&Zd+9cRy(*k4P9AzTN`OUleJDzuTwq{C%B$RMEzk5s%{P;Tv^X B+kF54 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elm/builtin_feature.test b/docs/_style/prism-master/tests/languages/elm/builtin_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..da96c1dd6c5a138299459f5de7f7911c71ee854f GIT binary patch literal 1273 zcmbW1!EVDK42I7`;vKA1;cY0{2W4{qXQXaq7KTl@Ai3DvZiQ=f+=1e1Y)ok15N z&qE+;H8Z%0DjSrzV?ZYwBPB;uDVlXShp3YR4>CstXp z+_{*81j(AHK-P$)SIzLqc8gaLiKIVKRfbq(mAQ)QL_DidvdZ18DixuNYAegJj798Z z1S&F@oJPsA4Fp|vv^}}(6A@ZdSMiaIU42#ItIv2~yXMt-GABDx(Be$N*{RJ@EB@VX U*QXC^KO^+~pM=&z@$G|FzmBzor2qf` literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elm/char_feature.test b/docs/_style/prism-master/tests/languages/elm/char_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c4d33fcd2a973a68d63ce7c773d8685a317b0942 GIT binary patch literal 276 zcmY#SROjVVk5LDcd0^7W7)({TxdLfkE?qJJNMAHB7iY9maz5+xl4C0(%5O0hcV z5)eCMiemC0wkpN)asd(fRy${;CTAA|JyfJnoSB!Nld7AOnU|`Nn3tlETbfgn3E@JW HR;&jA2=qJX literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elm/constant_feature.test b/docs/_style/prism-master/tests/languages/elm/constant_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..06f25f10e5c580e3534058d575be3cab8d12e7ed GIT binary patch literal 254 zcmZ?E&*$ZG%g@(yN-W~#a!Rby19FlQi{ed;c)57Fbjbi9ebKyJoY6|j`FX`9iFqYT tItofaW0hicunB{##wLa07^PTVE+8V`Ma~(i$=SsUY57G8FlQC(0RRY_J7WL< literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elm/hvariable_feature.test b/docs/_style/prism-master/tests/languages/elm/hvariable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..defa3ba74dc17f9bbe5358fe4236f967144f3d25 GIT binary patch literal 258 zcmYex&*$ZG%g@(KN-W~#a!RbyOUus(vg1vRc)57Fbjbi9ebKyJoY6`dWr;T#EArAOBZNaaO}H!qx{2y3;nmMllePqkelKw~vXj2$~Hez!O4@nsi>= zBCiZm*H3)tORl)hf1pbu{K&=n{FN-pI>VHehNf6vf3j^jVK8KQ)2m_d8V=9s4DOyZ zXQMN6{!9Hj=a=YMdTi#tg$l`jGbO(osU;h2mMjLNf%EOZPbEd%(sFZOA9Q>4>VcdZ KAL-=qN{SC&a|Ocy literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/elm/keyword_feature.test b/docs/_style/prism-master/tests/languages/elm/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6f1132a4ec619d60d70e45e4ff00f22f8621f828 GIT binary patch literal 530 zcmbV|!3x4K42I7J@(!Wr=}Y(+V~4V(F08g=o#@`)l<7g+(@LP>=g&{_SuZw`R&Ns% z`@{(Rnq!i1BXJ}FL4uQ)*H*uUJg*4%I6OR4bhM7FmUWwT5aE2_<+&E&)S8L6XIuu; zkg<6$(>3&~mQvok@Z~#H{15#eR`|u0Qm6#%Br4uarjV6XC1Xcdm}9v@Mq3HUtWAfY VbsYG01cgg6sZ9O7&&;xKP0#qx3i5&3>` n&PYwpE>=j(FH%TJP0q|s%uz_pOHs&3tw@CNAs#K(HJl1rGS-CBcV=Hn zm$g-;84t>1+u|%*R66Vx8?P1zB}|@K*<~JL&HO5vCC;jteWJmevVm?ERb23KgXbC!6HuhxZLL0&5yy&rYc< zde5UPgG3fj*iu0tqFbj{trCSmz07mU%chGEPCNvJ2I121*Fr@cEx4_A>elS>jMC^X3W{pI=wWW!|_bIFrRZEdCjV95Vo~-a@(ilR5owrIKq8Hr%8sQ%CtmWF?KZGWZg|KNQDbx?T z_Ji=s=qNi+frd_B#>xoB_1(gyN$A4djACTE%;r|Y)#8#f&c;>T|3O}kR5uPjjD^>? JXYk_S@^4^|u0&(|%!EOv|0IubOI z03*aB-g?4g>muUKBGBv`R@8nE4|uv5nQ6ncC?!H5gk)u5Gr%^$ekFAv0;aWEOIC18 z1+GIFCa)|vF6$UZ+`E>0l!>8Fah0}Ot=c2cMIkg-PMzOzU@A2t*TTuRCbtyhrZ!y) za1c;8_!QR8>LGT~QAU7ZA)UcsN86fW)!(_hyr~*AhRcvR(;7p^rPiXsIPR!xg1Q`H z70Z6JToV!882ixH2&5^}+U#v3_72=gZEotfb>c0-KerGM+n&DvZ$CUcSM*dWivJlE PvJyv5KbSh33-SH{AKc!y literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/erlang/atom_feature.test b/docs/_style/prism-master/tests/languages/erlang/atom_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1761a8bb91e4a5162fa20fb0727015636b4abe22 GIT binary patch literal 299 zcmYex&*$Yz%g=X+Pf9G}DJ2xj3Vh5=-)Pm2?!8 zfF>)&>YxjO?S+XKmgbkFrs%?Sz#RjYR{(-&C3Gb~C&mDQx>77J7Z8!}Sm%t?KYiB?Ex;Me}lTMk^)f=jNv7l_=>bD5=6sRf^^10wVH_cFssm P&MpQTSEK+nzgQ0dfTksv literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/erlang/function_feature.test b/docs/_style/prism-master/tests/languages/erlang/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..72d8857d1530e81a74faf09be392befecfceca63 GIT binary patch literal 416 zcmXReNG#9O;N?oo&v%GVN-P30)q!jUAX6R0j!}<^0Wo;Fbjbi9ebKyJoY6{YrFqFE znfZB2Itog~AUl;}brhnN3P8f8i7*)rpeTlNnA7mJJ(scqo9RmdF lxODPz#ZnR`&Kar6*~JQJ`9%sa2Nx?O=A|e=e1Q>ZaM$} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/erlang/keyword_feature.test b/docs/_style/prism-master/tests/languages/erlang/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3af1da3d3933fd8ff55525c34a52522b7a1ced56 GIT binary patch literal 410 zcmbV|K@Nl<3`N(|q<3goJ9CLShH*i#4MYP8pvKz^#*M?QY*@W~+W)^So;J&#j805J z5ZI68gd!VuDM>kg8G_bmBV32}- tR~Gw?&{g66$`$X=f-`TUFZmmG_MrxZ@}8ISwQQzD5+dn&rmLOwIRF&mZM^^h literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/erlang/number_feature.test b/docs/_style/prism-master/tests/languages/erlang/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0e5890f3fae14dbf88026ec09138d1d4eb2e2c97 GIT binary patch literal 383 zcmXpp;^i_@HZ(Bg~{Q zO-e0N(os+{F;a@vK@$Tz1XCF7Fic^fL$L~`;tOp` literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/erlang/operator_feature.test b/docs/_style/prism-master/tests/languages/erlang/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..addd5d3dd393dc9070ca65f6ba92fc15cef26a4b GIT binary patch literal 920 zcmbW0O>V;=5QW!8;tnq?LnwR8<4undWnni&sY*ixQPtyjsM|#|vxU=BJ?cj*qVTb=LDr{2N(3#BmgYQ!E!Dw19 zi+hCyDGQy++ETccC`z=^vW?0&k1}@BV*8+_lqWACTS3C^4K**1O$@BtN1-iiuq(yE ssokzE+)Yxew3Zi1SKrDWevRx7*6@1V%`fNl`rdHj|76Y?f3|MV-?ygvVgLXD literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/erlang/string_feature.test b/docs/_style/prism-master/tests/languages/erlang/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..42770f6156980519cc220c042395b28fdaad6d04 GIT binary patch literal 206 zcmY#V;^k6G%gc)4`R03dzQyj+~oN@a;fnTbg`sY*HuNy&>)a2}9g|z%41(+L)^#HttJH7w_ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/flow/flow-punctuation_feature.test b/docs/_style/prism-master/tests/languages/flow/flow-punctuation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ba0c900515b6d2347e4fcea2bb7c4228300ddd4b GIT binary patch literal 289 zcmb=fQAo?rSFlnjE-A{)OIN6=<>lh#(j^0c^hNV>aYiep<>Z&^7L?{Cmy{-!Waj57 z=_n{w*C@pTDX?WgezX#rycJLythuDJAQhwm;vSGD>;~49w9I4$B)91S0CL$$_5c6? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/flow/function-variable_feature.test b/docs/_style/prism-master/tests/languages/flow/function-variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cda25c97bf47ab8ecebbd640a1bc6b3a1286ca3c GIT binary patch literal 690 zcmbVK%?g7s3_h>WcL+T>&^>^lmpz7fsG^%}Yox7%A-?;Jl7l~o&7R7ad|&bxiXri~ajV_**3PII~ zDi0x3*j841v;-z2G*McjbedR%2b8Mx_|4QR6f?zt+DUk}H*2qQ&z!r$Nn=#rC`_#^ z`b&3p`(1S4YPMK2uf=PX0I6f3!0%la&|c{23=#3J_o{q2sL=wC S1o$KzlxVze4BZ_q!d<@kyuZ5u literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/flow/keyword_feature.test b/docs/_style/prism-master/tests/languages/flow/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fc1ca2accbf6f0ece6d873a426b9028726e65db0 GIT binary patch literal 656 zcmbV}%MOAt5JlHE=|7N$CHfP{${3BfBPWG zg|%FEt|?8xK`c$9<7dUwJTSs&yW;WxRTyn5a%XmSw~#C$elDrAe>rXkfMs2Pg#7_M z8Ug|D5TpmoAmBZO^k^zXeqDxmupI(12Z(%wfni7rLOwcDW8~iT`Q-y^?<(oJOqLMU F?gP8}u$ce= literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/flow/type_feature.test b/docs/_style/prism-master/tests/languages/flow/type_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..53827c351afdc5191384e8bd762d8bc4b7cf1720 GIT binary patch literal 460 zcmbV|u?oU45Qb+D?j1tr>O&|vc5y5n+Ing*O(aQ+eS4E89lWt2aK{G+|Nqs~*povr zW!{2Q=853TJX@=&GYI{*TqiRGWh3g$f-tHt-P66+2(wjjM>y_y>8?RIG%_q7l9iD4 znn||RAI(WQ&ABU0yW2y?9tBk}-e! E0kbT1#{d8T literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/fortran+pure/fortran_inclusion.test b/docs/_style/prism-master/tests/languages/fortran+pure/fortran_inclusion.test new file mode 100644 index 0000000000000000000000000000000000000000..176cad9ecfa30d62be27c883d762cc7a0e4aafd4 GIT binary patch literal 327 zcmY$jQP9=WRdCBMDk)0Lvorwlc)5%Wk0Q(uFWsma;JK(`brKpkAH2LOnoO$7h| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/fortran/keyword_feature.test b/docs/_style/prism-master/tests/languages/fortran/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e3bb493bbea430d79eae2f2bc266b0623e0cac5d GIT binary patch literal 3315 zcmbVOO;6k~5Ir|i{zJ59+W%l2XV+TCPHhKRAx@O45(gwWRQ>mzXD4C1dh`H7iTAx3 ze~dG4#`H~ITy6b zN~YO<$mm+>W15tfp%{v#RtaMl$}5Z`7Sq9JWqqn6>t~ppG^XlhPI<~M%lts>X#Bd# zwlTh!$M@OZC}%ttGIuuPDO>c|+z{fZ1lfl!2fXmKavG~)xQ;p>ym(tLbHy^q#)J1c z%HFJQn=$lr2~*IfpJC+HXq-)A=4a>ZaB7<{897pzvcwU~PZF-tlz2@+CPUyRnNfV? zb)&LOGfDWdfZT?hCYn4)nIoE8i_;}_BR0u6qs1xZFttrqac|_;?ZF~Ux6xuA3Alvm z*wv_&aUDvOx^qf?pRv6JL=e1&GM$91+}1FAjdMs8hGNp;T@EpnORW*XNy1)^dA7^> zI)*u0gfyQfZ1G?aG5I=DvU@L=DBJJNpk^lnIUEoK%s6}-crGp&*7b9g09$OwYd7~| zX1%P^Hpdbu+<}DNyLt^#22;5%`M&3vEW#O0Dhnt1cItPNGQN_0!1c}8Lfd@( z#2@_b+vdyt?)mA@@0ZsfyQ^-8kV(Gn9;J3pddGlg8mR3`NZH&p%}SJ7UKc|B^ep| zu5yeO*`sjPK|)nwBt%h4if6XlRY8fzN)>Tsd{tY@Kz=z<^_Xy%0!>U-#b#8MaKb>- zDO^RKP@C#Au9gADpe}G6g@Q4qau5Qggul-LX3&qx1eBeTZDq0jz#KE#$TDlWz zF5L*h(Z3KF4Gn?O;V^hIrR8B1T@_6cG2Xf)%Asu{#M(zON*XHyqtha=v|hW1wvqqO W_h0(g)8q47_w(hoTbi)9Z+`*BR7zj~ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/fortran/number_feature.test b/docs/_style/prism-master/tests/languages/fortran/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c7b4a4cf3c77258eeea338981459f3174e867d25 GIT binary patch literal 702 zcmbVJ%WA_g5Ik3)e-L}|B{nN*ZNA|E}zqmMZuVA%u2z zv}k6?St*QeO@BVzmiLcR=-g#CCFAlmn;X*YoUtS;n2HIdMNC{{lH0XoQ0>^ zKhP^Xi}p&xPN@70$2$?iCuhROU#G$@J2!$~$K7|giGL-HhV}%-tA>!%c&{6n;tVlN uG8&)I^psP0Q)4Rr4Cm_SNWuH^bXV`)>&HR8?e=Q$E*F>6=k<zTne6}o literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/fsharp/annotation_feature.test b/docs/_style/prism-master/tests/languages/fsharp/annotation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3445236d0d52e7f3b27ba0bc2a0230a8a4f8c97f GIT binary patch literal 670 zcmbu7K@Ng25JlJY6wRz40Tb9lSZLxUN*9Ho5_M|Ya(|~HU?6Oe<$oRK{emdYT9=ZE z;;2jrwK5RpoU$;Dc@`02$&QCH!2$saQ9I>2jSzE6D0=nSxPHt)6d>adXdcSi1l6;p zvp@zTSWJ`>BnzaU`ey;v9T&`&Nu$xV=)SgV-Ef#8V4dmk>QyU$YZXjn;Tvs%-1iuY x(EB#)@3O=GS+~a9rCaOc3CxGHDO;ELab3Xii?H24%jwoOcgru@@VTx%us7yPu3Z2C literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/fsharp/class-name_feature.test b/docs/_style/prism-master/tests/languages/fsharp/class-name_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..79399642463e1b000124697e68ee5c4b05329cf6 GIT binary patch literal 3602 zcmcIm$!^;)5ItL8LGa`Rv4P}hAS&9lLJM>WlHMF27>SC6$dW-(Ne$%VJHtg(Xezah z)ECr{ATUrJQ20kjsd`huybQuvC&YU*Cgv0!F*Klw=mGZ*?i-IRgu%n@DsMzt%e*Eu z(N?K(@tKSAiD%ABSr>35t#4(tdE!Ep8Gp;FH3Wt$0G*vfboLA&+n-awhVpxa2IqJ$ z*3Pt^i3ddb%Hl)ZE1Q_FxoDgECj;&@GcP15MJs>R)s{3l0h-GCK}G&TzOxa5QbDOx zA*WVX^M6|~$b$88!&AxXhl-;@!OMq20>->*m;}Y=GLwbi6&H)m68wj<5(NOVhbtHmDp8bFzgfb;GxA@Mco}V zs(uj)hys!Bo}zU)9Y&3)J%2X&`tpEw-5BtgLU#yZMAp&TYucm9gsM)m!`aMmhElqU zCOfg1exrSMA(x8QCB-gibD!wQ_of6R_BkQ+uExfOpT4;vdAj-`5_)Hw-5o{P9*d({ zv#sj=6K8s>M*lhm^r*MuL9%`N|7IijK=;drr8bz5zG=Wr2tA~5$FL?%w)|&;3=N;2 zyM9nn`j4lNRS&71x-q@VA{j=tP$lJ;pv(WLtIUqZF>fQWzyuAxI7h_+#o=b}8-x$x zzUas32DFNP(6pL77@aBOz#K3Z`@#NR2Hiq%kVXAghmcP-!h zs9_q~T}8>go*S+ywbKN`KwxN4?>a}=Lmq}qnN*rRDF^^YnOUBW@wYGWgHLI;OS#a@HK1O3u&CP0cG&(os;- zhuNhRtAj2FvK*^0$TcxVF?kU8D8=$}0TKC*a?VIi&MpQTTBJ~%nU|iEs+*IUm#UDM Sm!gncnp2Vq;X)l!MnQE+}wLnq)CW2g#RV%p$0)v67<^jW# fH1oJ($qjtxjMU`pVuiH)A_b%QF^Wmi~ke9Y_b0m|_KNWIJm5?|TQ7kje~=g=BN@ z?%lhOMg^#>O<)6+)XlpNH3&2a&NyojETy{!(J+Cn>>#bykVwe4kdzsuXW#!e+J_8Z zCD7}N-Pi!S?Hbi86V#z6%WpWOu;A>j5J&a>W!*tMfI!LO1Mi_Iv=qX2%E@3I!J84B zN+ky$oHm~X@2K>hK&M6Cz90YR#jue#&Wu(8)J`#^?oMVOPBLg~NLV^Z5>*^tk1!2l z^q5zjZzsHr6J)<7FXTP@c-%ZO4La_%#D0k$*Ce8yCe}CSvYtbS=2QE#Qq*bA@Z;=; oy~-)>wO0G1$1QRoJBzt&S1S+NfRU~8D|k~1?w_7t9#@?G027GU(f|Me literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/fsharp/keyword_feature.test b/docs/_style/prism-master/tests/languages/fsharp/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..17f058a5e335585283f8e957881638a85463bf47 GIT binary patch literal 3345 zcmbVP%Z}SH3_RC>|3RB`+aJiWpHb{Vk?BNTSu$ifkA8iJlC$WVEKuws4`)Pu`}<)6Aq;%Hn8_A*F%wNE%4SN#8sIps#hwD0XeU}`5cFN7 z8(3n3UtB{lX*`-VQ#6PvT`6Zjz-rF^%4?q2Q}E7Y;&)jy64bt5%!0fil}oV&7D(*s zz*#P!LQe3L@bNI^F>~1K%qcS~(t!7ixnc#^=~(}D|}4bH{O!b-@#UQ3Um7C!a5N0TrLSwPX3M!OQ&C)irHrDF9kE_Bzv z9PD=L53gU%$ALIVY*8S-C4l$Dd~Jkvy+(?0y;se8=3~ENp(%2FN5y)(ed@*m4@$4|^z%ZNl{$@+G&$L%ilkV_9ydMB%8xuhlGo!1W7yHTvdf>t+EoW zRae5b3IpDUx0Pk#@Lr}BAJpw;ujFyhkLs>5pxlco({{2I){ncxJwkfR^Y!c@N&s6^ z5iG6A2pCOA!MF)2+*?-?4y{W`xOOcC<}Rktb6XSEMOGYcd(tk;GskVQ87i6I?`LbC zf)|Zc!{n(&vlWKid;#vK;%+Q#Yj>6?y0rjn+g5m6I~V3??*ij?FF~c0K@KQ0K_5tO z=mh~nKL`wZLSRi_0N&@S3Jzhu2@r`t1&P8`wTa>Z-BK0HKZdG;(dnwB5pGrDNR%ay zM5}bICuhI#s)>ZdrjZ1`X(oX;4Fz~lUqzKLZz4;;Pthd@ng~<)-&L9Pfl3o#Q*8o% vsyJnWD(jlVf86d({D}#!sfoeEYv1AZc}4hxCGleTzYeHQv$ezJd*A&5k46>8 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/fsharp/number_feature.test b/docs/_style/prism-master/tests/languages/fsharp/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f2f86ed288d3a8ae429f7232c78fc4603da30dc2 GIT binary patch literal 1008 zcmbVKO>cuR3_UMW{zJrd6!A4mkL%P*mDsVTs)wWv0xi&qEE@d#C8k`!>!DF(zdYMd zU_0yu7m|{&-@b2mrgf-PCAeZwi3K7G!)Wru1dK(Lq%kE?@J2}-B)iwdzATU{2ht!) zt$=e*E?DPD@;QOV73Z1N$TO#uXBr?_1rQ9t!oj1pn+NCM6jx6iS9hZ1<>a-d5wi1q z=7rD|@9Z!5u}fIQb`7PAJp@N@&1MZ5e{vgh{)lT}#+72t5>M55R)%Z~y=R literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/fsharp/operator_feature.test b/docs/_style/prism-master/tests/languages/fsharp/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7e15afc40d470cea37d7a7aac99a25857f7d62c4 GIT binary patch literal 2059 zcmbW2!D_=W5Jb=2uUH%GgB{s-A!`r)j1WU9DTN+Vk{*q}y|XDjRGMBAGD>)iq+M&Z z*1V`{x(^xuTnTb8LIE0}8R|syV(#`KV{j$N!3YItfM%#OF}IuB&F$ub-5kJfup8_K zyZzYJ?LHt5b0HRUfLIK%7-BKRVx7n^h@_w)%QQ)h5*LYCqv4w+CCxtiPu6|kbzN8O z`(C$glMSP!P1AN4Kn8JbS>WA+?xTq5s*N;@E{pV-ED|30h#ckV*j_%**O#x$wLNH? zm-ckfzbrA9Yac zAv$Oc(Kbn(&Wa_eFA*aeb3Gf7?n4qnAFtmut1g+e-Ik?^(1^>g&cuE9V1CxnRvHz{a?7P1ssxm|Otg&zTt0PEV8ok5J# q-<-}MzzCt^jv?L4C{hOd`qKZK?`QE7-VX;=QBD3MWQjubXB8O)&Gm!eU%0hyd4Kr99VXb=?qKS(4YnR!Fl~cq+kW)|(;mGC literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/gcode/checksum_feature.test b/docs/_style/prism-master/tests/languages/gcode/checksum_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d3ea45613ab0a27bbb48df1d553feb8f4e63b66a GIT binary patch literal 185 zcmZ=avd}Uz;^NXJ18{Lgb8$v1Wv5n_=NF|Y=_n|<8(ApD>VO23Gg6bYi%WAsqCg9j XV!2|;wZs{0ltNm5kpj%rVm&SZL$fDw literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/gcode/comment_feature.test b/docs/_style/prism-master/tests/languages/gcode/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cb2533f89587cc0160dceeb54af0f1cebc109a42 GIT binary patch literal 347 zcmbVIu?oUa44l2M2ybekb#M|oI_M`9N(XHt4@ynRdr@(Js6s)2Gt0S$JIOTr^RqASQ%X2P`vR`}Z1 v_hjH@7VV9ij2il@_s{u7+ z-M~O8RtH@WXe|~|kUK!aXsUq@!&D4%DHc(X)0JYmV##&Bb4F@%cCkWQevyK^u0mp7 Pih{3ha(+r`u^txyH)TUa literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/gcode/property_feature.test b/docs/_style/prism-master/tests/languages/gcode/property_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9dee88682da36eb92ae65bd1b43ff3652fe0d69b GIT binary patch literal 338 zcmbV{y9&cF3`OVaD}?4a37xv<(G0Lr!+cojJ45pN=FWB33} Ceov?X literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/gcode/string_feature.test b/docs/_style/prism-master/tests/languages/gcode/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d05306d7dbc3ee777b6e82eb7b7a79f8ebec4a84 GIT binary patch literal 296 zcmeY@wJ=u*R`QJu@(&Gh4N_7FP;zu~uBfcCR#H+hG%{A=;?gApaB)R*aYid;r&gBd z7o{laC@A>?EmDfr;Q|R46y+DB7L`kVp*NH8D!qbOd100d;c> fP&3HYAdOtH;pH+^aQ1KvQg94*_VncCvb0oi^Y>RsN-W~#;^opM1Az2J^Kx-UE9In? zrRFH)m13cW t!cDNWgsF!b0rUw>1kD7X|A6{=xqyg#Upi-`CTABbq~#YWfZb562LOXrN*w?I literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/gedcom/line-value_feature.test b/docs/_style/prism-master/tests/languages/gedcom/line-value_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4ab43e728b7ce0425d310b28be0148d1e1ca4444 GIT binary patch literal 839 zcmXq1aQ5)@QE&i}E`|=gTt*53K90@`hZ~Qy9qv57<#4ag!yOxr?0mRm-_hp7lXV{M zoN{!^(OHLQJ>1o#b9nC2orf15X+OMD=lIscYai~|cx2bZ9s6~TwjAF4aOc#cQ;*Kp zIlSxPuI9sgkM82-GF0$$^mSE8&QD3TQZO(!G}d?a_w{vDaCGtybJYh~?cx~Xs^FmP z;vVGc?jPjo=;xqdY^dPk>a1XBX=x5p;q31hqTrlgP+63jo>8KZo|=-JpX=ZNq4n~M z(s{Xfxpc_@AbruiT%6HLIjLo-IZ8STN`^|YI$)8K#B>lJ6h<(ioXosb-Lk}-(o~>K zbhJ`Ier8@tY7s~oEG(5`W1;%tCK|!CLrnw)HB1QAL?!A+0MI=U@4%gd?mh`|6<^{28qCWDMC2zC=Zw_k>|%wq{2~QVgeicNK(QVG Dr$iEx literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/gedcom/pointer_feature.test b/docs/_style/prism-master/tests/languages/gedcom/pointer_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f39ffb77a6c7b63cf25bb5b61be7966d65eae906 GIT binary patch literal 500 zcmZ=rQ*_|va!AY1k9SHe0x{!N6qQs|)zmdKwX}6~_4KW*ZEWrAqhn&@5~^!z>lBoM zYLmc94HO)LL!Ep*Lqc4G927uIUM@ogH%H%K1qUGM=@SVwkC#iA3;@y>&CA6ZtyGYo znOBlpq@<&u5le8$Q3SGf zD!O@ZFMUAJWD#m=K7M%5E;MA%{^jQWZZv`+ZMFyq>jfv(wFs+LjqdA4RgfxGSNuuz zPjTvok%%fLS(IC4Dmu+1>nz8jsF~#9(vvbM=eSzN=7iW7CRrMHqB?|lmoH}jaM$M) Kzada`oi;xOja*Iu literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/gherkin/atrule_feature.test b/docs/_style/prism-master/tests/languages/gherkin/atrule_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..23bc5408c58815cb43e576009288abccade00fde GIT binary patch literal 24704 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 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/gherkin/feature_feature.test b/docs/_style/prism-master/tests/languages/gherkin/feature_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..774dd363c85bfc9aed4762fc4dbae5e2c037ce0f GIT binary patch literal 9142 zcmb`MO-~zF6o%Ke9 zNlVlw!X#rNhz%tfl0X->rLN4lSzusuC6uaa|3vS#XME2LhDbR^0(;(b?lX7BADr`^ zfw-Dct;w^>Rb7u0BN~a5Tr@H;s!u9o#G;cQp5;fz1WhJo%78ge)0R9wM@=;~O4X!t zj*jZ|szpI8YpNPGP2~$p0pdI{NW!9qYFcW7$aG(?u7m;~r>JJ8NnECS$~aKel&WQ@ znpUMYNQsp-z=j5EPiuF;83$D!2l={|uvA^s2)`}WQXr5vC-t@taak?F(|LB1Bzx)> z0k>+9rwhEG^VpEy}!~@&X6H_@HsK9;3ZukAoqfv$|gc_F4bnjT22VyZeP&r+ac-VkTNvzi9Gei zF_O%h@L1J|YGwnPsmHl0ldAJMexWMZ;y5+pdTLarjO&+$z(2Z~Yvh#FFX@(%qj93d z)g1pc>JtEaiEo!A$#n|ALQ{p9hKUBXEdI5SO@K3ACg1~jIeTi14k@Ry;KlipT%U~B z?#aD;RbA0W6|Gj#Qb07wHA|PrUsGdDuRaArrt@mmm!$SheTvi<66%CrU#QJU{acOH z?x>-+YvbyHbBoOaKikXZO-|nC&&uvA$#8o_d+ZxzHGk-}x;cN8y}P`-usgT=aQCiU z(OPXiX>IJ?Zh>!0u5IkyYHb|Mww6KW#@;l~T?wlDC9YL?wk;l&{nEj#(t6%jDsc7Q zt-T))X7}&!KRcL}Ojazjr72ciR#To!j=2XahSsu9{Qa*w~nJM`#28e+3+50 zPBC#pu5#W}<}5L%!g-SPuT%c-Huzi}7UmA877q)r4-5Ij!lF!kd;7P43S08{?^5tM z8aeYGKha1uG8~P3FdVzu`DYzFtqc#x(sXh{H-7w)9yg|Z4KwH)ySi6Nmqxx`dqF==B!++n17PD_G z(Ul@$ppnIpI=wHBAlhXNL3Y>}O0X%%kVGGkS>J8_F%aPvpw@Q{1}w$%Bybqd#=t>* z=L19W%n}r$u- zT|=#xh8zatdw3WIwEa+=j#G$1_~s&tA^k`UCS+k^P|)?naC#c0C}1yd6$9*H$Kr5D z99$GGX!@d1VV@WSJJDLkfP4APsBf)az^;MaubpzwyFVyklVgCuS;t_28IQzB{~iT` zmOlpcjwt~K9T+TNK)q%WDBjWW1rB%I!~;h?W=Mj9hUO|L*3nT63Wu5A^zXz+20keC zaWf(e)Eg^d5aCG_hUE>fFbHqnbuuCv84(k$_ZWno5$n#6(nQ+iV=Y7R#$l$SY6{6@ Olnl{QS(2jWNB;vK`Xes@ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/gherkin/outline_feature.test b/docs/_style/prism-master/tests/languages/gherkin/outline_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..19fc54f9404f77bcc4243c67cf71c2a8b9879176 GIT binary patch literal 185 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 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/gherkin/tag_feature.test b/docs/_style/prism-master/tests/languages/gherkin/tag_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..51026ea1b1d1106022e8658484c889b67df470db GIT binary patch literal 291 zcmZ?B%q_?-DoM;M;pK8j%FM~h%u81QGLo}XixeCZ^YZd5dAT?p((?0pxp=vB$p9dI z(Lghzl}ZxRm2?!89N<VjQ>l2hQ zaK5)qdL&9*2*>=+D&mQ%6d3OuIM+&d)=;v1_MrtI!969E@EvFF6O+q?00h6h79RL6T literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/git/comment_feature.test b/docs/_style/prism-master/tests/languages/git/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c3d0358e78c659c3d6fcc63771eb980bbfa41e6e GIT binary patch literal 415 zcmbV|!485j42I7x**p9h7foOfV2p`D6K_5MZ~!cfD8sPw{%*#L5iT@6G-?08{TktB zQH`ao4O)}D%9flI5mHlHUxEizgnH=vj+yTJ&;z!UBdE4xjO2)My`0WCG~JVqT5AJRx=e~qrow)*tYWBW=3rIC|6@x8v%_Dce32>tftvGBg%m#5qo#)H NheI=rpMQH^r{9YLYc~J@ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/git/commit_sha1_feature.test b/docs/_style/prism-master/tests/languages/git/commit_sha1_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fbc58ed2bd59cab420c3e788a5cbc0307fc69944 GIT binary patch literal 501 zcmbV}F$)4Q425S4{SU{@DovZF*HK*D9Yv%~Qcgq!_5Y)yILcwjlHq&Fd*RFZe7tuB zpa5!1>Zy4yriJiwvBg=GaJ)S_-5!4>h45VlGv3`~m@- zN1&1&V*qqcy!zM9 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/git/coord_feature.test b/docs/_style/prism-master/tests/languages/git/coord_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8d8c5e2b48560a32074a089ed8f7138e8ae3a081 GIT binary patch literal 259 zcmZ>8P|!70&^FXDQgCqK<#KQU@+~cNj10h(p^<_%ga?%1<>KYiB?Ex;Me}lTMk^)f v=NF|Y=_n|HY=PUV6svMv9n9ie zcqjd#PVRLMhqk22Nr$qYP799f0BE#MtGko(k-nNorf00CZW#tw%ZQ;wi!7Q$l=gev zbv|0nTbfV?b;ld?Vw5-Gj_3D||KBW69$aF?KF{lkUdBx?Jh;F`{GCufIX=NTj_yUP pFrYa9*LWy#^K5`u8vK)?ptgqt8lvo6$c)4`R03dzQyj+~oO2s8bnR)3-ItofLK&TX}gCPpE z5}Sm&I;LWKYiB?Ex;Me}lTMk^)f=jNv7 zl_=>bDCq;OR*KcZ6b9KFQxua2aSb*lSoMM3i&Zt)z!<2JO0m3LKt#SroHJ6Bvx|Xd L7AZh|Q>+I7YN<*+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/glsl/keyword_feature.test b/docs/_style/prism-master/tests/languages/glsl/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e07768ca1796773077e5305e99ea40b49fc0eab7 GIT binary patch literal 7520 zcmbVRO>g5i5It9b{)3S7wm_`h_SCMgdufh~MM2ASOhgt9edMFRzB5A(Wl4`ov5SBf z-y1%TNQxZJnsMyiVH#~&G`<_gvY0w|^8KYOUQGY)x~H-@OsA9W%VId2-X7WTY1SKAL)+l=moq_1Xd2p!Dj$~_&ZgJL1PAH?a53n zsk>8I*p{JTI`rg#>*(2aWg*VEPJT|UXIGAXI&f#=?~C|&@V+gJvF9#NMuc2PW8@6K z)3vvalm6V$n4aFLx8u~4`o)a9ii(8ak6M>DUFWT201 zG0hhGNEZ6Y7SZ6_bg-$VRMdzo$?Sgrc&1hTI{Opq$$+g_(Ea|;zBli46RF;MA9(e9 z7wm7H4+iQ{GDt5c{Mxe{FuAwe|4m<0deK;&g_&I$uioY_*#nY7tg1q&-Y9&3Os2a% zRn(9x3$yhYe1BZObVO1s9_nSQ8PRSMvTddBh;C2mqKJn))I zT(k}YeOpo6Fv!BNf0dgbg9)RwKG+c*?%PT*(xDbc*O*k&`Ut{_TarOVN%c(zH1?ea z@5aM8DI%5lXfG2S`V4a&JLH*8k8#FUb?tthW7=PNDK`Fc;ho@W`q7QDDVTU1n1Rlw zrZvOxRSqjQv)x4C_x>7 zv;sIyxWrn3I(h(7GzL%!&j23cH9&9x2jCdd0mhvG$T1&)=O7S}t^*)_!T^=H5#SO? z0z5>PfS?Tqpd5Pwn1fLOb94$|30DE0;#a`MfEF;v5a9wQguH;@fR*5CvBhxwiol1A zz#EjHAR38KP>p3M7)JIKbz?XqLt#0xr$`#ZNJfJ6jk!eX5Y1`;Uql-?6Y!i88XWN_ zqeM3e@^pPZa0@g(0pAW#z>yN4jGLk0gA##AKrSyEW4X*g6lut9XJak5ABZ9ixgKq- z<+=n>q#^gIjkVmbAPP0`F4NMDj5O908Lw!7kvki}(Dofvawmw)Zl7anX4c;6 z#p!qI1(K>7$@SZ((F_-wjdmK-#Ag&(|1+C- zUC4JL;r)kmq!!DW*Aa+!7oecSkaI!#yh0i&aUs3x(vdV=OQXz~g$wj%IOezEyWWPL zU5)gI>dDcJRk#RlI#C}owEB?fj5^=svf7YT6x4}*Kw>_vvrW;<=YOU;C3-5j51T0*+=4dyPsu2f4`nY{dTs^^H5RttBRS_;gA0Sx*;s4 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/glsl/number_feature.test b/docs/_style/prism-master/tests/languages/glsl/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..20ac4d11092e45b27412cb5f94b965e5b105dad1 GIT binary patch literal 462 zcmXr0a7s*ZOH5AXWlU2~v}p1G^GAyC?+6r?N^tS$${ zOylJ;(lhXJaYifUmF6a;7Aff{C>g+f+=e4uHiRio9Zu`|Mq zp$DRXwl=oPSGR5bAEyV2)QttiCl_ceiHKvN3b2qi6;<9EOD)nYfQY}ch!MM3B99W< dRx9qub-do8e~=jinqM)E^R(dFFZ^%l@&+Hxx*q@l literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/go/boolean_feature.test b/docs/_style/prism-master/tests/languages/go/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1ee119262567bee76811387c3e3b32d1952e9e39 GIT binary patch literal 290 zcmbV`K?;B{3x@`sRf^%Firq(rGG1`D?J{kGysdNM2o29_O*u=ywm$EFDJOb%fY z4f!FoKd$r!gl6E$dv$WKA+|i4FDtVZoINVEh*j`o$|FL~f8Bm{^B!pNCy6S(-gJp3 G7rGm{5JbBG literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/go/builtin_feature.test b/docs/_style/prism-master/tests/languages/go/builtin_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..414018fe02f71ec4439b354011076c17a2404902 GIT binary patch literal 1250 zcmbVLL2iRE5IonC|A08Bl^_x7z0ZhpFvMw59NRL`mfv^Q(DcyZ5`?^FW~^P-J8cL~ zt9Bl(R$aJ7XTO`neOuM9TG^CB((2-Z8Ta+N5mA~vP7Pz~{kvAZAM=6}*j7yrqQ{r0 zr!0^a3JD^SC>n{sqBtU(iP8Eq3NaCj3&UT1QeB+2I$LL@?EYqu-dV5J&0GO^`=wPh zzV8rF9O}x!L6NM%|0dgoPm45KJwNcsxuaH3$FiMzH}<~V6=jP~mZ#l67_BAnz1Q0u znor1l8w6jkXNzeLgpms*@N%PsKr1=Q3Wd08xO`u8oE9mgLF59nw1U&TLeRuQY-YwV zlH|*D5(4AOP?=wbFNUK`oC&;)JR!sb1coUHDlQ=~Y(voOBZiByws6PNiuK5W)r;jx YE4+^z^6kTR*P*zCR2b)q)tSS~52FNH%K!iX literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/go/keyword_feature.test b/docs/_style/prism-master/tests/languages/go/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a2799f73f11de3d47628baaab14a7bac560f0b5a GIT binary patch literal 927 zcmbW0O>V;=5QW!8;trPA=_z`QD2oXhY|9Q<{4~n#`yj4VRc{rGAM?Gz$TN>?QdzBW zk`?1D0b>lg^rlHZX8z5R(Cu_x8>|%+jL*&x70VSXsm8_ z?H^YDzCv$q(AGcQp~BH6iYNCdpUt6-(JP7<*3l+9NukOWhUrwOtiW4(borDf<%=U$ y_A6;OJI-+2ANk9B+J6ktIFpJ!o~wXM`9+Nhvho;`FGG@9L04yK{p3GwD@P(nmLuOu|1{Q8ZA+z$R9CvO*o}oUvav8m hU+s}3^_+x@cRH^hmec3${p*2`ZO8R~$Me)Y=3miT0(Sra literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/go/string_feature.test b/docs/_style/prism-master/tests/languages/go/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..97e3960b72534f6fcd9809180fda65827eaa21a9 GIT binary patch literal 617 zcmbVJK?=e!5Ih^mAL3qesZzxs2*p2ih1S}tSW-w^^e0}#lU~GM_?O}{+-*TnktTM+ zEP<2gH2J1lg&Z)VK}&~J`(_cC1~);ZlX+MB*Z-FR?k0%rNoNXINJ0C5Yo_Zo*_J9R Qtg^L9OBI`?>YOTvPa_kecK`qY literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/graphql/attr-name_feature.test b/docs/_style/prism-master/tests/languages/graphql/attr-name_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7f976e6d502fe9f5129119dcff53952b63662bc0 GIT binary patch literal 496 zcmbV|zYc>S5XNUoc!vvWgTkh_A_Fmsdp2{0=<+xz(imjB z*a^yoi#euPw7Zsclm2)%^@extt79c>=pM$!`Ncu&<$$lR5YkC2QDS_@a{ixiI`ARR i8P)kuzP*fYJv@5{>fI=BdQ4a&bm0CFkenrskC>=_n{EE5+(yh(Rq&PYwpE(V%bqyV+DSPuZd+A4bh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/graphql/directive_feature.test b/docs/_style/prism-master/tests/languages/graphql/directive_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ca9b70048ad4779db61696f95e30280ec7a5cbb6 GIT binary patch literal 214 zcmZ=L&dx00<#Nc(OU@}xN#*6@<Q4a&bm0rDPVRCYNNEr7GztC^>*kSBlla eA_KKhDVCQDh{(6qIU_YWyI3JDzeoXYbuj<}QZXq2 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/graphql/keyword_feature.test b/docs/_style/prism-master/tests/languages/graphql/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..06d16f2abf7c48d1e532d2770d4e2aad77a83be3 GIT binary patch literal 406 zcmbu5K?=e^3`N%la)%-7I)_m35^WcQrYfZqn@*A5-WhEv>Z~-YkmQH=e?PKL2#vaP z$37r*V{qXrew~>{#E3ULrwG>C)E`6;5Vk*5(v=9Cl3Jebq9-a0^$COO;&Z-mWmXGl zX7#S3rvdu@R$5hsdaA4rH(oRF`IW literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/graphql/number_feature.test b/docs/_style/prism-master/tests/languages/graphql/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c58cc24d91fc736fa5b7debf21b6dac4f2c1b0c0 GIT binary patch literal 332 zcmXru#VGfveuNXsu$fcULg4*(UfME?K) literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/graphql/string_feature.test b/docs/_style/prism-master/tests/languages/graphql/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a3d26be33a1f6906a0eec4b351c2384afb510fa5 GIT binary patch literal 262 zcmY#V;^k6G%g8N-RzdPANXsu$KzOrQ4*-S9Vu=6% literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/groovy/issue1049.js b/docs/_style/prism-master/tests/languages/groovy/issue1049.js new file mode 100644 index 00000000..2ce81537 --- /dev/null +++ b/docs/_style/prism-master/tests/languages/groovy/issue1049.js @@ -0,0 +1,8 @@ +module.exports = { + '"&"': '"&amp;"', + '"&&"': '"&amp;&amp;"', + '"<"': '"&lt;"', + '"<<"': '"&lt;&lt;"', + '"&lt;"': '"&amp;lt;"', + '">"': '"&gt;"', +}; diff --git a/docs/_style/prism-master/tests/languages/groovy/keyword_feature.test b/docs/_style/prism-master/tests/languages/groovy/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..57b7e16419bab456e4ac0f9ef106c55b25f465a9 GIT binary patch literal 1958 zcmbVNL2}zL3_Mpe`UA%2v>(W^&&cFJQ;@|m18PXfj{5onqLMlV51M#nN?L+T5?riY zfdNMd1nyioJI{URO2N!9C}# z2Qy;Vhs9Md4H^}Y306ThK*_O1MQ{z;O@TFdUdZzzxlN?Wcy2|jPA&DW+s1%h$Y#ip z8juRzz$*L(u~tG0uBA~~4s2*Epa#!|$F=f2C}gWJizZF&SK(*{Hi(1D>3@m*tIKirqA!F4?8vJ4`hnaW#G32`)HSpb@8uM1aGDE6= z8F=%v21_+K8@?N!?N9@3@obK0!yg>dbgE-Es5bL#1goXC!qsDI_yN6rI&qW97K&Q6 iS<8oYn~u%OPp^F^*Z2MW_k{jhw(p;d5q1%lUw;91>{t{4 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/groovy/number_feature.test b/docs/_style/prism-master/tests/languages/groovy/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..bd12ff9df09b16b6825141e2583c003d20eef30d GIT binary patch literal 824 zcmbVK+irs}41Hdt{6oa+Xq2Q(>K;c6Ri*wxRiOZ(MQvF{HHrQG>|__M@l!2G?BioY ze4=WlwcGAmnr|AGnMmmrxHO2>O(=7xaL=VMOx6H~MjFIK5=0cb;R?QkHFt-&`)K>)XV=FoiO2Y1 zrAQA_{^~sAf?4Tk##$?DN4On0)lQ~`8RJO8jI@mnWL1dU?R90B&gS>8x5svRi5nuj zr27?Z|LH4#k`d!_-wIu_U>sS0QO%t!6XrT$&N%w+B5jVS@UpmN;gWKs?~-zKF@d}~ zm=)zHN$P|Tl;jMYIToq3lN6mva4~(PcHEU;0rH!uBP+_8l353=FxBrOlU)rbF Qvpjdb98V{i&%@b$18F{Jr~m)} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/groovy/shebang_feature.test b/docs/_style/prism-master/tests/languages/groovy/shebang_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c5806ebbb399a7676569187645d3d951fb52d46c GIT binary patch literal 248 zcmY#ZOv}$tN-W~#QdZP2EiTee%FNSG%_~z#FUrp^tK{Y4<Q4a&bm06=$R- zCFZ3o=_n{EL+w(E)xng)V!2W*FBcGz?*iwH)Z}c1wEQ9ks4Enb^K)}k^Gb^K0C-(H AYybcN literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/groovy/spock-block_feature.test b/docs/_style/prism-master/tests/languages/groovy/spock-block_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5cc72fe830819fc4b3d70472c8893f3d72ff0f1b GIT binary patch literal 443 zcmXR;Eh#Oq;^j)uEKAJ;(&ZUossutM=A{6|l54WUqZF%yO%mcn9Fkyn"$foo"', + '"${42}"': '"${42}"', + // Triple double quoted: interpolation + '"""$foo"""': '"""$foo"""', + '"""${42}"""': '"""${42}"""', + // Slashy string: interpolation + '/$foo/': '/$foo/', + '/${42}/': '/${42}/', + // Dollar slashy string: interpolation + '$/$foo/$': '$/$foo/$', + '$/${42}/$': '$/${42}/$', + + // Double quoted: no interpolation (escaped) + '"\\$foo \\${42}"': '"\\$foo \\${42}"', + // Triple double quoted: no interpolation (escaped) + '"""\\$foo \\${42}"""': '"""\\$foo \\${42}"""', + // Slashy string: no interpolation (escaped) + '/\\$foo \\${42}/': '/\\$foo \\${42}/', + // Dollar slashy string: no interpolation (escaped) + '$/$$foo $${42}/$': '$/$$foo $${42}/$', + + // Single quoted string: no interpolation + '\'$foo ${42}\'': '\'$foo ${42}\'', + // Triple single quoted string: no interpolation + '\'\'\'$foo ${42}\'\'\'': '\'\'\'$foo ${42}\'\'\'' +}; \ No newline at end of file diff --git a/docs/_style/prism-master/tests/languages/groovy/string_feature.test b/docs/_style/prism-master/tests/languages/groovy/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..639db8255fe662cb2c6d41b5664083742da5c3cd GIT binary patch literal 1062 zcmbVK+it@k41FFF|6n1cN>w^OVxLj^kT%IWEsfWZKJ4#jn?$)l_fVpMFUQ8l#~5B( z(bga?M6J$cFS=GcS#lDHlt~nj=$wK62E9QN1VYLV39FT(Feit1ENErPWSvE4ql}V@ zHLe5P9xiyh)!hJl2V4o|6o+Vw0#?Ymp4bmv>83=>h7K<*uKK9e+tGxf|LQ(X0md&r zb1Jf4syf2{1N6S5CZFNr`={|_r|h&pbNQHeLS*VoBRvn%(-^%;o!P4xPlFcp<_Z~n znug4tnUD*anUTh^567mQP5oSZhCJC$1R2?sCW<36tSoctkmW3BLUo7cPAOJL zAzCRpKP45&jgD5zE6q(xEdoiI7%9cZ#_C|xrAwABTe5Vik*7_Opf+BvSWvK#5t_On gea;!F$=SsUY57G8#hH2OIjOoinR%%Sppeu90M|!u%m4rY literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/haml/doctype_feature.test b/docs/_style/prism-master/tests/languages/haml/doctype_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5f5a731bcd74427082580e8f1066b2548fbe4d2e GIT binary patch literal 242 zcmY#XROIDSR8&+jg;2pIMVZMZyj;9ox?}*5zGz-9&S<5S{N$3#f>b3P1tp;AO0hav lL={YNh(jEq6wAv6MC7}~IU_YWyI3JDzeoY3MizcT&)zV0};rwU&bgYK@3B870e=DE}(_v2ZM7)YI1h5LRx;20!ml_c?tzNi9oU>wW3510HkeQ A?EnA( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/haml/multiline-code_feature.test b/docs/_style/prism-master/tests/languages/haml/multiline-code_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..06cb2b439da5b3a6da6dd1f2932217cfc624e9ea GIT binary patch literal 1988 zcmbuAO>ToQ5QW#VETSj)F=s0;6;hLd@V2Gq$9v4H}tTNq!Fvj7`2@%O;lEWp;l zU1(;|y*on#!xm@L0DF_ug|^S1f2Ir?TD`@?8E2v1U+5Hdo~SxjsmvW0&fSSzgwCbT zRGOu^@Dh0xdLRs)yuKVn*+9O52C1&;wZWoD@7Pkz!YnHbQN~KP`ffud_Drix9}}MG z^UONGo3%91UuMynjOI_duH6LDaorn%_}-K;uTGeKPQ;=A1I1A)35yn@p=}?TZNM> zk><^1faWrAaZS}3ah9QwRh1qxfua-D#)L`u zLS2o%0uZr=)X8EaOEssS<23E(bSID+o5IrBB>4T|f0|>I9l-pQ$Cf;Tr;@Z<=iGCYR+ zadN-!*~#WTxok!Vp>m%pEU8Wmw6UOc>mrsdTW2sU+ku@8OrNTe6I8mzC~X)HXG3{qiG&#Y5*CftthYq3s_ubiX5)#rCwg?fp zH$Q&ve7=!P`Jmq$nKwD;5Bj5xI1J5Rq&w~Y1WXwb#k}!1Fv7&(2u3AQzZPj$E?(WNl zSIb;;H6inz;@kigYa}RSYW48-%X;SV4Zk^NJVOCbjXHYN%YwJSVYR`Bk&F?EkSRnA za9cK5s37PljAiutE0=~pA@XGRjLPW^5BjZOg%veyM<--ON04Q@UPC78Lddxjo{Osz zXuE*U?^l1Qbp_H64@>oEQ8QQ>JphDx5Mge(MzAOYVV0+n$r+LbQhK5mJ!hK<)n&y}Ty1ye`OOS4{IXtA*iC?>TK6$&WoN?u>_vmor2d-R1~ zI2Dd0#3E9|RVHK4iDL>i8y<@U%E|70SW<;5SANLIoiA(bF2iyDT_#rPxdUJ;h?-c1#;_kU~%r4ZTOwV z#O_=D*EaO8cnbeRK_$@{H5! zChMxuT54;3uekQQdmW(mxouGUiQ2pJ=y#n@yoftt)J|UQO7NF7_GlwA~%_@|bZAz_M1(uFl)~>RF2`Mx4%#Rt?k>Q}l{!>WS8- zrq;w^XQ=j&K}RrBwTx>M7Bv4>M|}c^=7a=O*dItbvqY1&2KGo(J^SXG@FKtM|&0cQ6EtE3mEUnv-C}vs{mTm~l w)p{?LiE^W%21Sy^A`*tcq4n!S44!1>Xt7zRw>=CPI%5$hiYF4faWLrr0U7f^&j0`b literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/handlebars+pug/handlebars_inclusion.test b/docs/_style/prism-master/tests/languages/handlebars+pug/handlebars_inclusion.test new file mode 100644 index 0000000000000000000000000000000000000000..c69751fd060bdceadbe2fccb5ae22adf410f7e19 GIT binary patch literal 284 zcmcD@NX$#gNli*DD(2lh#(j^0c^hE>BidIU?%qdAN(nZ*y zq@w_mK}h8#=B5G#m8_7|#OgqlKpg^-Ms}7`EKoWYNB|M}4s^~)P0lV>NXsu$Kv=B+ Paj-&Wo`P3mN~#_JXM{(? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/handlebars/block_feature.test b/docs/_style/prism-master/tests/languages/handlebars/block_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..dd2c74e9c78cd0a234ad709a4d630819036a0634 GIT binary patch literal 696 zcmb`FO%8(~5QWzz;SL11Z9PNNV;C2RW1NUT0dzy~>;;WY+PbNc75QG~@n#0+5)iUx zvTs}HtnuEtG!pMAac)kqVrU-H;skRP=M<}Op@fp#ffMU8N-i0%MOP{)gf{%jA_}Yo zg)Lgp0dePe9u!`vUN#XdNmn)rjiOKx@fLkmJ}kWFd2r72>%k|NQJiQzjGeTju-JDo y`uyD?R=@pi<6o71hf})Vw|TKWMf#>YqsQIHK+l!xxWBnk;2aa literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/handlebars/boolean_feature.test b/docs/_style/prism-master/tests/languages/handlebars/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1f252a1450a688215f03cbdb0f619eebc2f15098 GIT binary patch literal 355 zcmbV{F%H5o3`J)m3tNuzh?1IPZg-kn+;cKF&AvWkg}e5dQ1ytMJR$nZ?H>=Db9v$mpA-)St|w= igwXtJ{#LKee!6$LcRJ*F>+49jdx0Tkh|I9HDwh{NZ(6wk literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/handlebars/comment_feature.test b/docs/_style/prism-master/tests/languages/handlebars/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c0fffb9f5600ba21363e7dd3c26a0243e790d727 GIT binary patch literal 437 zcmb=fR#ZsK&reD$s;%Yas;*Yl)dletfC4~VrJ$<|6$gp(a)E?V6hed`s(86{$pE}u zyj;<|T%6HL8Hsr*IjKM^ij{N}qNA0P^K)}k^GbjmC7{FL&QywxjnyGS0~VhUs}*Ed qOi@f8#Jj}mf>;RC2MQCAPF^k`B0p%HGg6bYi-8U*Qhu^s@8R(1&h literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/handlebars/handlebars_in_markup_feature.test b/docs/_style/prism-master/tests/languages/handlebars/handlebars_in_markup_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d9591ba4af6c58f5177d93d17f9f4d79651a2dd3 GIT binary patch literal 1071 zcmcgrO>cuR3_TYq|AG13uG*a+YZ|i5K4irQ6W?zaEbWuv!SJB(WI5bxDflr zcKrP8rK0hTF+yrpwr%Sz$-x{Ce{PcVs#<|DyAm-#cO1u?_51Vd%j5dv^8u}^Q05qO zM{$0iq-~kQoW+EX;sWN(0?_;m<}RJb23p5jCc5TYloGFi2hp6a%>Z8jbc%Y1b<>9k z;T{cO&t;ltTdt~0p)|`yA#|oFF?M)L9YDjC;M+VSf5+H>j6#sdQH>kASWax?h7!M5 z;99GNT2h!O8h{k3KM^Y9=CUq~%@vfZ&#~kc%`qn+|v*b{@yHdHEVKH1G L-8Zfd_3{22Y6KDX literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/handlebars/number_feature.test b/docs/_style/prism-master/tests/languages/handlebars/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..aa894ec501b8b44d332a0d276ed801dba0f0b37e GIT binary patch literal 691 zcmb`F!3u*g42I7u^c_O4Q&FdfT{qZENDtL!C{qWzfl&JH>sA%!WNczi$)E5M{zNJ8 zyMvG?ks)YJiBbxp(4<3-V*xua#%<7#f$s$|y8Bm2iMt>up(LSXldxRWvcyz0Epy;0 z8BJnYRK*P&BQd2IHyu{rtJEsv+P3jFtu^BY!nyM+{R1C`v)mQHxDt74h`rA2*8jRO nMfa!v#-_wLzWfc2IcAp@&esMcW<@1RFfRc)c4DaQ>09ps))u&5 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/handlebars/string_feature.test b/docs/_style/prism-master/tests/languages/handlebars/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f9f9d707a607a598739f81c73f7b96fb1edfa274 GIT binary patch literal 559 zcmbu6K@P$o5JlHcGIt=eVN*}xFU-KpS0t%+9HFrVQu`JY)4sgw|y zS?g3z)O&wy1C?6oTjc|@{0ez65X?AadIVX&u5RJ{)> GM-guvf0Qo( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/haskell/builtin_feature.test b/docs/_style/prism-master/tests/languages/haskell/builtin_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c50ca40bb20b6a1ee91a8d8f802cb8a611cfa4e4 GIT binary patch literal 7150 zcmbVR+iu%95Pe<){s$t@-37Y+g0@Mp0dgslEDCI~C}@ech{&W$NxAgv_Z(7k9M5G&8ZQ-qa zdmnNG*}(=-(EgeGjah+OUEJJ`!K{+A56eYmhpI7^^Q{jXQ#Hv{aogGCK#BoWyz_Bo zJNEj4c#m!msWGJ&Q@vCzxNBF%+MTx%BDD)~>w_I)0>N+ma33!MaR12PRm6Jg6g$J_ zYs2+8KQs>9u60}E!mBP9#_f5ETac#Sed7XH3e1=LxJQh}r4*BKkK}spKzibWb_K9tirkw)W2xerv6}le{8$Pn(28xVrS9sEAN4ExD;FT zPH~25Yg_-*VMci8E&>0`JYJ(eOWmJbLDTQVLh1^YZJHzXF|j#qB*01 zh7s2iN6g8>I${lde5Tq&+VPXeEU>T#)A{A1ORhFu^4qg#KYWFu^M!VSD_oD&fY*q{ zpYxz_oq>;KX?WfZ$&|-sFh534g6%CPk+OZ}_710HaG@~`wx_PjZ`o52DA$rb9ADwN zxXCORI0WLCo>#l{%HX*lG7;xiXkXwM3Uuc;0jnYtHa|bUq%v%KAGs9JD&Dcgsk+X= zFW}L7I1|ow7!y{Sa7`2T3N{^T(^s}FE@ZhtKeR*w?iwGdw76@%`(f}K;U?U!^WF4K zd;$?|zC7%3b$pi9m0npL`(-ukmDLns>^NN^;l8w77-(3rUt{{5DEcrRx?21i5DCVF z(K-tZ%N#!9`!D>X+_&Z8w{It_5&qeSlXvFC zuKJUI-nwQbHz04`V3F{Tfp#v=U5dy5Q%|5u`BA zIx1I!u>X^eQkKz(L=m+~@R{3kcx&gdPOvk~lVA?}B#ban(Y+TJDk5{7cuX)yWSX3^ zU$nbMUFgGSZ-yBOf}s&&JwChO(5}8qZ05jJ)#X1evpnyxea37Bck(%OUmZE z|JM5>I9Ak5(X!C67d>kXC{ZP7n^Q$idC486n*7aw zJI9h+3Ra|v&U1qI2fqFnhjAt{i;b9O5z%yuQ{m7$mpOU}LYSR<<6 zo+*D;`1kW^Z3-p9mV!CqJ_29L$b_l5qJGNIg`S+N>nJmLNhx2QL-S>Nh!kICXM&~^ zSl&`8aKFH{K`w4off5M3wPenTS@sc4$DB$Qllw{-e)ov7oVTkpD|x(1(p(pZK_N=t z%BhT@C_`C8otgB?rS74qnCc)3g>?~CdoGkn0TxaK`dUa)ROOnACW1a~5AT?SNU^k(xlztde?;SY;vQVvwp%H!@1?j7%(^#9Td6HOj1& z+GhI`%3jM&Qd=%RDX_drEKh+^XxEGe^((0p^(+O<^(~2`-lYvT6~H7v3StT&Wwc#IO%aewQ7b2h6*z5_T#}PRutcY$Q-*YS5>pLNkvW bxxoKluWo*BT=jrIGU2ZT{FB~P=KSM77c1=> literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/haskell/char_feature.test b/docs/_style/prism-master/tests/languages/haskell/char_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e4dedc444a71a630dfe861ab94415b11e09f2c57 GIT binary patch literal 249 zcmY#SROjVVkI4g*M#f;O!p#*(^K$8u0YLhqdAT^Fm69_OiJg<^mf lVi5$|k3|&Z9Hm%ZE+8V`P0ksq$=SsUY57G8Acqy}0RSe|G4cQa literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/haskell/comment_feature.test b/docs/_style/prism-master/tests/languages/haskell/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d8c8cdda20f41c6ce9c62238e12220ba66e14fdf GIT binary patch literal 252 zcmdPZRY=Rv=jEz~(n*O$3c9ttT)bSmWB`!9XkISPXr<)*+}zZ>5+xl4C0(%5O0hcV z5)eCMiemC0wkpN)asd(fRy${;CTAA|JyfJnoSB!Nld7AOnU|`Nn3tlETbfgn3E@JW HR;&jA2=qJX literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/haskell/constant_feature.test b/docs/_style/prism-master/tests/languages/haskell/constant_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..06f25f10e5c580e3534058d575be3cab8d12e7ed GIT binary patch literal 254 zcmZ?E&*$ZG%g@(yN-W~#a!Rby19FlQi{ed;c)57Fbjbi9ebKyJoY6|j`FX`9iFqYT tItofaW0hicunB{##wLa07^PTVE+8V`Ma~(i$=SsUY57G8FlQC(0RRY_J7WL< literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/haskell/hvariable_feature.test b/docs/_style/prism-master/tests/languages/haskell/hvariable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..defa3ba74dc17f9bbe5358fe4236f967144f3d25 GIT binary patch literal 258 zcmYex&*$ZG%g@(KN-W~#a!RbyOUus(vg1vRc)57Fbjbi9ebKyJoY6`dWr;>)j-^v``SDxny@|vpdX0bysa1 zJ7`Ubit+8vFRE5j`0A0H5x}(CZt@*BjN1ipf?)V!jS{LqQ$oo);rMq2C947=ugW^^ zWG8zE8S?-lt$aST5m*?Spv*i1o*iIRhCF4&Z1^b2bUsS++ls*QqbLO8v#s3ze_inC h>#ktmLRWMY%AhPIc&B^2Z{(@9tk#ANA8#}`e*=Rdum=DD literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/haskell/keyword_feature.test b/docs/_style/prism-master/tests/languages/haskell/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0fb3657923f647096d7c45b8f38246f729864f81 GIT binary patch literal 684 zcmbV}!EVDK42I7`;vFo`-Ckmk5%qw;ELJE~z?$amYm#Wv;+%?*5TA{)|KHh);G(S+ zyload7J5+n(aLAQ$UzD~iFcr9)M`BoUu(0;Aw+Ci-Ln6U2npx5+!1on>R#wZjUEVX z!~`p!M=Yq7R-bRI{%+9fV=xmgb1vRoz&P&STrcn+_Gtv|(@D5b%YkEQpG9_;LqG}= zr4!WUV|@H()AJ;M(^mvo?~^K<0U~)fMDW~uK6diwm`LvqO2|$NxH@dETJe70=I;^R OR3YR7Hb&U}u3s}B?5gNXj2&tlnd~2I3VVDjn-{y&N@(Blgtc-SED91;VZn-MhW>AQBQri!%9Ri%dKS zaxt7`V?N8T@DOH&{=$h8A=LJSmx^6I(xV^9vwOC-NvL-(+mP)%RXo`R(|m| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/haskell/operator_feature.test b/docs/_style/prism-master/tests/languages/haskell/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9cd8339fbf01e57da2fe6a3531e9e28c98a65eb0 GIT binary patch literal 1069 zcmbVL%WA_g5Ik3)e;E7VgB{6tV+li{KM}Li$dyyyEs+Kdlp4ii2YilDod5s; literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/haxe/keyword_feature.test b/docs/_style/prism-master/tests/languages/haxe/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6a26bd0962598c85d84c57ed311fd8b2e9459d75 GIT binary patch literal 1459 zcmbW1L2kn!5JlHT;trA5X)n=ZL|G7wYZMF?3~_z?er%_U>UWbUCglBLu+99D(HE`E ztw=UjFvGuFcIK{?HN|Zsur*>w`~*`FU{e$yE7aZ%rUnG`3D+9U^HedR&CBAqXOb}|q!Hwkykb~qhsV;Y79YQ~ zdKd&RqYp@>)%y#dw(g?U+oij^bxFDJ&ZkcB;=AklFMgf`lUV$ARwTF`9>+p4UIpXr zycs_VfJjG0FeNd#*9=iw5iyLaVt6mJf0P`F&rrl}LVI@VA(`i0WnnyU)G; zY4l+TqHPW#9F}1e9wPW@DkAMJW5RAbqU=5-!fs3^G^aAYS(gZ#mlEbn=|cC!6DiWdg4Gu}QLzF9c{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/haxe/operator_feature.test b/docs/_style/prism-master/tests/languages/haxe/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6963f80066e5d509c27a4f79d7dbbfdd4ebc83b6 GIT binary patch literal 723 zcmbV~Jqp7x3`XY)bcfG|c!(3{0=AbPBP38tN})qa+R^0fwTBL^JjDnPkN5dU$T`Pk zVJ%aSK38N42!TmK<=wy-ri7H3JbZxnOc604X0yeB20Lb^oIkKiZe%)*dVMb2<-KmY zgLcm8sT0^{h+oqdCd6KfeT~IhILL4)Ox&WRsH&ooqA5(An538r6QY-*ue{qAPlU^_ n|JoQU;aKfXE5n0CjYPXdv!0l89Uq0>ycAw8UM^iS07zdnFBfODQbAE_K~a8kYH@LXk&=#rl5%F6 zQmhVkDTo8`O5>KyOHqpDkDJ2xj3Vhic-^4E0lB;lxK~CTABbq~#YWfIW~}tOo#!ZBp_8 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/haxe/reification_feature.test b/docs/_style/prism-master/tests/languages/haxe/reification_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6d382b7cc6bf01a8f8b5e80853442d3631609513 GIT binary patch literal 308 zcmY#M<>gYTHqkb!<>lh#(j^0c^hNV>aYic@rDmpOCMT9;=I1HtC@8685HZvF8~E*I=egF1>g+! z)^etx(oP|)^n=I+La}&m^UVvPl(>RUk`5v2@Xgt3#zk=jXITNAca1s2QWT)@hO%7# z@>p0oWt0jg@k0;|Bm*!$qg0d#D>TN}uC+Jq8*8W#(FuMyF_g3$Oe8e_V`1=3dE4F` zeE+Ei&$wgydsREM0NY5~wszXvfzBfxwVOzOrG8D^(vi`8qJdJT+DhXLT^%N>r6!kTmZd7`C@AGZjaQ1* z0ZSGqrh&y_)+xpEasd(fb~KYiB?Ex;Me}lTMk}Rc7NsVaWR|5W=_n`_Alwl{l0#yYlwx_gfQWqO kIA^3LXBR7^Q4a&bm0rDPVRCYNNEr7GztDCI&;R*KaDOP1yp zC#HdAfOaXx@^S$Y`4&27q$Xz>t4%*-q1<>KYiB?Ex;Me}lTMk}Rc7NsVaWR|5W=_n{=qMNT2 s%gY5sQ4a&bm0rDPVRCYNNEr7GztC>20VRf^^10wVH_cFssm i&MsC+%P&&!2o4EWD9r6!kTmZd7`C@AGZjaQ1* z0ZSGqrh&y_)+xpEasd(fb~Q4a&bm0rDPVRCYNNEr7GztDCI&;R*KaDOP1yp zC#HdAfOaXx@^S$Y`4&27q$Xz literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/http/header-name_feature.test b/docs/_style/prism-master/tests/languages/http/header-name_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cd2612fa66ede99d6f84586af225f5a54107d72b GIT binary patch literal 662 zcmbu6F>k^!6oltm@_%^pY^Nac)cmZ%{LM|UuaWi*lF5LW9AC5zH}v|emJ zs@ClB-QQ-uI7~rj%GKy+jW;5ugc9+G*X6d9+-zBfDnTc#Dv)tt=X)*`*q*mG_8S;G zx3jEs50zdZ^`%#=hT~_3ed-(KaO8-%5Bx}axZ`SpzH4X*M#=s^V=OY%FEyCb!D$ib H7O8_TQvkGx literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/http/request-line_feature.test b/docs/_style/prism-master/tests/languages/http/request-line_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..70db1a9f384b34fd795556921163c6d529cc9b6f GIT binary patch literal 1311 zcmb`G!B2xQ6vods>HpC5JX-PQZVM7;Vt}}MB0CV$1tY8oHRykDTcB}L7Fouzy#BuT z`o1rTcMKI$)@w@nS60;}C%LH5ma&BTeu3%2KHU@x1X7j)~Xrh+(%!oYSv z>D;~rtut9rDO}@2;9c-R06_}DO^O@-@yT21m2XFmS4bbK)4CBgZ{)W+!HL=z-mmlz zd~Rl}D)y%CKUB5jzfiktY{XKWN!fVEtkR8PV}S9>^d*+5E7OdqaU|!qm3fwdd!wDO z=M1+DJeYGrcDAidx{PiNeZrn`?J}$h!S%62aIO#jZOZx3^=|;dUZ?1S@Ok=PQ1JY{ OMF-KKA%aLpuq8jzD`P1D literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/http/response-status_feature.test b/docs/_style/prism-master/tests/languages/http/response-status_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7384ff2a898ec1af081a3f60ff1367ee14fb4c19 GIT binary patch literal 554 zcmb`DF$=;l5QXOk@*j>YE^SS;gS#LVK^?l44%MD0ViS^d@ZX!zDpm?&@wU8|`?&Yg zEZa{-%wfhk>^797tso%bb681zxKtI^Jw1V~w9ael>ZNl?!~)in8c+F)dCX&b{r@Or?y6FIQZzjLOvRH*IU{a|elRye09y#JLW206X>|G>Sq h_6u$}5Jy&;*3^G&d<$F%_~vTQBYEc sn6DJ8gCPU84k(4D2kt7YQgCg&T(Oim)j1fT~K0F@s_!2kdN literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ichigojam/function_feature.test b/docs/_style/prism-master/tests/languages/ichigojam/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6cc325b6f0e7b72fb3e9fa13f640ea68ab8cc75f GIT binary patch literal 841 zcmbV~!Ab)`5Jb;5^gk?fjvoAj*-48-mND#1Of=*a42qC|(f_x4#gpYF%Tn~dt%0Gd zVqaBaiIAF9`dlClGBu2S7w zA6C=cFt?oWZ&fiqn#+&**+x;hzTi=u+p1h`!{O_=|9m?g!>kLjuVFX)LrY||CPJ|W zMjNA86!H4z2=-M{ydl(=&GDLHcDX4ZVn$$$B0+*ZC4!MLp$MH(Zvo?txxFXEjN%ZA fCNcWYrO~ypQ^9+Aq literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ichigojam/keyword_feature.test b/docs/_style/prism-master/tests/languages/ichigojam/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..71d83a480cf623ff533c17762a814bc92c938c70 GIT binary patch literal 1615 zcmbW1!EW0y5Jb;i!2e+AoaP@SdF>FUNrGJ2F@l_u6a{h!kQ|EseP)%O$~ndG67thh zT1zuCsTP?^lX+|^bJVe7J)$zIpl~W0>MV0kILPHH8qut2C;Jd}U7GB3l|ydJB!`B| zmL=>Zq_UVCr=3LgGKryK$s>N{c{G(+mn2CqsC$!)_8Ja%CMAwnDfy^UYQUY#Ax#k$9MgLo^V!~#AWEl%aGd-0ocBe@&-!fK{bJ%H?%NR^H z^79*?4fZ{3o(6sBJtB6xFEp*oRuEHa@O$0)kJq>%pT)aJontKR&Gf1|(0Z1zx!Khn= za45c~FcE|Io^ssvw7JzUMqFx<_s+nsP@kUbtxh<^W9WDxEd zLNG#wP^1i_nbC!aat)^b3Z7Ji68(CX^_^?D_1M#Hc-#oS-_N}H_si4k$M)CT`}SY( HecXNmmn)^? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ichigojam/label_feature.test b/docs/_style/prism-master/tests/languages/ichigojam/label_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..42ad2e853f8ddc0bcb8cef4141017746a628b1a9 GIT binary patch literal 206 zcmZ<=a13w_@^kg}=W+-R_4efD;^opM1Az2J^Kx-UE9E36rRFHL+#k&=#rl8KR0tPYwO)M1zsK!;)qLL81M p4)q970@X$gk71~QdsHcwmkWr<_pNhAYI1h5LRx;20>sP3dH}qZPb~ld literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ichigojam/operator_feature.test b/docs/_style/prism-master/tests/languages/ichigojam/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..59e799446d5f60bd833a6b4196a5e411e24d7a5a GIT binary patch literal 598 zcmbu6%?iRW5QNVT>^r16!o{6^X27cSqiD;P>KYZ z4Q2yl<_HtBjbNXsu$fY@BD2LLvV+45QW!`lsiOOu!3Hq$3QGhG6WaLj{HO0+t<$ybk!G$2xaVPbhiW15$2;1lnie^{I5 zvpjcEzEP(TcV*H8Pw-xpHZY=M@`9olZ9rUIKwR6UaAr^eZX+>@2WR9iNL>##D{b@6 zCIhESvF0sTeCkqO4rz;blT|Znd1Xg8V*<*_C;ONqE`h; z>yhsHJUP8>+UD@WgS=zgydC><(k5zqxXI6#^JBm7`rY&5`qTb@2sg@ra@7?0>j8@8 z=AiM~H4H&JZN+h=lqn5JiQJhiPRo~0rP*lq+T@!Ux_=WYW3fdgS_gx~Dm*5PGI{h^ z95cz{Wmp+drkDbCyg8ERo&p=)1Epa3kPsHH+QNt|IyB6qF3{vvzZg@6jS^My7*eH> v5>+E9QpJ-YP*oa-+%ll(FauVB?oVx#f3K_b$5n<~=q}E8t5kQZREPIp5@S57 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/icon/comment_feature.test b/docs/_style/prism-master/tests/languages/icon/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..09493ab5819ca0cc339c458ff65a11a56142c210 GIT binary patch literal 201 zcmY%9Q4a&bm0CFkenrskC>=_n{EE5+(yh(Rq&PYwpE>=j(FH(S7S*!;DoBAp{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/icon/directive_feature.test b/docs/_style/prism-master/tests/languages/icon/directive_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ede5ebc85d8e529c30eb6c10ef9db96eba933ffd GIT binary patch literal 372 zcmY$%%uCKGO-beDQpw5815qidX%I$f9*_wX$V`LL5CL8;T`~YK7cW;dFBfODQc7k~ zYH~?tS*ntbf|3fm1)a2}9 Zg|z%4g@U5gf};H7)Z$_w2kz@)JpfaKU$y`M literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/icon/function_feature.test b/docs/_style/prism-master/tests/languages/icon/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..715452f5f56e55b9d72efd8b03af1d2476532323 GIT binary patch literal 406 zcmYex&)3l8<#Nlf^n79U3QB9yIh7oX=V%1WORkRj|K_Fj3G~^eg7A2PC l7l9n9h}Dc}tfH|>z!0J+keoA8le3Ez((;QGU?Ekk2LR#2YLfr} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/icon/keyword_feature.test b/docs/_style/prism-master/tests/languages/icon/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0816911020fb60a51818a372b5df5010fc6926b2 GIT binary patch literal 1030 zcmbV~OOAsu5JcBw$#+1kGjoYKMwEpy&0t~K$e1MDeyRawlUfCV8^3CQ)LmT>H(Aqd z)_AuFMu3Xg%iz{n@sq8QsFI`}!(9rJ2N$9>e=&CsF%0-ps9~R^d-kr2SP?_Q<`GjQ zC3#}Ilrd!F&n0{5*MhVnJ{Rm=WX9nd>spdEOLaAP#C4hX!|N!(6*pQ_)eAhvpyycg z{lTN_uGV~A+ex+uZqQzuw$p;Nx62#f2-K1>yw{KjXHl7w3DmMPoO(vJF@$TU2tHaz zgfK98G?yx8w~40hXIT9}xEh4v%xGrUe0hp&bC`?@>N+Z@4T*60k_m@ViK5PBn6-WP bHc8&i-rlUi`?=$PNAc6r47oI??U$c_{6in+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/icon/number_feature.test b/docs/_style/prism-master/tests/languages/icon/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fc8efc845380f840b183a52d3d8d0c426d1ce426 GIT binary patch literal 476 zcmXru<w8Z38pi;A<#H!Syl1h*&T`~YjUoL+#k&=#rl7UjJ4w?|qrI>=) z#GpRGR1EYPrXa+pnBowhgT>Jt0tyLC_27`f6h?#;rW`!vlwx_gfQbCybIwRj&MsC+ M%P&%ZgkiBB013cq4*&oF literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/icon/operator_feature.test b/docs/_style/prism-master/tests/languages/icon/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a2e29ffad245a99b92bb37571b740f9cec745c90 GIT binary patch literal 1881 zcmbW1!D_=W5Jb-v=pQzQ_+ZEJ-AGQLpOMs1N=l&z7pF(#Z||&}9GV?n5=3@9Jnc%h zv>WfXvhAXGrIZ>fsk$f?0-|@d)EIDT{CU?%1Kl7Xdbjtkl~xtpE_U7p2@OUsLEV7I zn}|>`c~D72Sp(uts7kVzUeP{EzdplQ9ko{PAO~fRa@274ZjeFMEVGUzlS*=tC1R+% zL{)d0bb9EpPi)USZ1ahq&O3Scaw^83%k=&`PQ^}&P4Tuf<`$;>=kN&_Sy~cbiIJ5h z@d1g+z?C%XtnKugd903}7q-sE=EPAVCIeT}taHx_wKgYCDkE8W9A<_Fn>3Jx;sOwm zR}U;FE)6Xo$eT*{iqZ_mQD-bcb0kBvEQK>Pd1tuvY_&Z}t6hPzENw0?O`OYoK)Hu& zjF!aKaI_@479-DR<_>l~dL1KYOU~5GOy@9KC@Z$uVvB+gFGbrfogOKir#YVC_5MCA cq$XYi&pV9gyZ-Cf<>UJ*pW`I=)_>jq0VM9?=>Px# literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/icon/string_feature.test b/docs/_style/prism-master/tests/languages/icon/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..78bc0349acd5706832277c2932808aa6fe01df0f GIT binary patch literal 347 zcmY#V;^k6u%a2jYPf9F;u=C@2xquunSp^j0i_@% literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/inform7/comment_feature.test b/docs/_style/prism-master/tests/languages/inform7/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f0aedfe0d35ce009eafe936bfc81fa3cc46a1a6c GIT binary patch literal 233 zcma!c%g;|rEQ;mjiUzWHxqxgCQ3Vv><Q4a&bm0CFkenrskC>=_n|H%m&$_ n6sv(8=pTTf&6NPvPGUErC{C!sm4MQs~&5+pE%C>}d<@-X( znlI{OB5PWo((Ga_m=4sQF+?tbE4ea|^KA){t?8%_9AxhHSVhON41rJ9(3o)yapyw6 zj+IBsd7aA{xx_SMc_Z9ZYQk~i8n_*6hrNMwA>VBi7lDq1h%WI4oTI#xHMo+}6y&}{ zSMu<{7}GN5dRarhUzh4g4mrZ7G9y&vlVUv$)?|-x@LA%A`}HZ+LKz1Z2^pWor*cOr z7taXtC%Y!t_=TP30c(2NQ^i%4_1t4f8QWTtpPa=H~F(|~7X zDjp(L&78D*RxvB?4|S`cG&2oQ87vJ!ab7xvVn@qpj@ID!|Gx1l%Ffd2+`W0^k8hRL Byubhe literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/inform7/number_feature.test b/docs/_style/prism-master/tests/languages/inform7/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cb5ca7ff6149b4b6e685133923a7522f9fcb646b GIT binary patch literal 572 zcmbV}u?~YE5QgVoa_?|qwnnWTI`=V*OPf=P3JIY0@eA6aflb1~$6et6uC5Snd0ChD z2g1D=dxWwmW(2L6+@{G5h8dyLi=j@gOjdpnEU&DHWj{DlQuzWG&eM+F#?$H%!u7-o zeGS5;5o(!VY(z$)u0)$f?Dy;RBBV%ZNR?8b(nI=x%ZE--aF8|!Cvj;|6f)_Z=4=`eS-bL$nBfpC8F{;P+^$(}s?@*!&AzFO{VL literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/inform7/position_feature.test b/docs/_style/prism-master/tests/languages/inform7/position_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a29821797f3b103e3fd0eb462ca1dc1a8724b513 GIT binary patch literal 1308 zcmbW0!EVDK42I7`;vG=V-CkmkQT0F*(y(SY0#ekspKVyWY0eIfszCkO#=*bs8E#H1 zJAByQg={itb+-N0BtJLdvnUbCEMzn7Ym*_(R5+zYcb}v>?1ta^jHc3hnW-0B0y${<2 zC`Ym+C4?;%I=RVKgqx5>TBZFDVzEoS$$t;gKuGM@h)51RBD-MkMz_I|BHO4*Xk8>L djiYGi0qss&;qUn=eV<%^O=g5>zDG5^eF0ECmbVIStATvqo(Ej#~HKNth`IJ4uac)n#^emhRPvOA4dRXx(g`2<2A`tISpT zvI4D+r;KWae6$_UC3@;5rxN{w1Q7mU-Jq2Z${c}Ut;**7j68~TbckIMf zO(}&r?zI|)URg$eO4AK{8E#UV!C8CpeYaYile+Ahi~D_EuE&u}htu-#z!!s2i)F8U zoYN{(Kz{>Pd~Pa?IaD4+zv8(!*fdWz!RFe-q3?o?%|3UNd2qt`S-5=TB93&qV$rPb zR5bYr(bS`hh8-J59|srBW5=Ue1&{fLATl&{3XA) zzWedEE7v#NcQ3v0^HYZ*S+qX3Vkj8;1fNt{k|9Nt$Bf zN#^mn1gTXkNd`7{h`emfiYFrPL5Q@kny$BIT! z>{&Iq2^Lm)eFM+RLa~3ehTAapVU}MWLscm1S2T-3RmCU-U8CbqN=Gf4_EE5^;RaUq zaU13J_K;1!=9Q|lsTZl+1bNt%7BkP4I&*l@YYs!fH-N0^9Q!|tS?NBX=BsL4y$!f? veGxFQy&ou6o}pV1-WUvOuMUdg9kP4xJN$qDG4ksq$FtAR-TER?(*OJmF8;uA literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/inform7/string_feature.test b/docs/_style/prism-master/tests/languages/inform7/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..56a880e16386d27eeb02d258ab7ac0f8468bf2c1 GIT binary patch literal 1425 zcmcIk%WlFz3_OFxKUjO|h4K$o|DftE&0&*uf<@SkcAe7veeHxcyo3<6fD|(EV|F}_ zF^jpWLfBsx^TI~`pHT(8Mra$`V+2Y-9$wM2+`N&m^B36Kno6?%DM1keuOYGZZV1%O zGDMGY39Ti`a^P&-K+$vvJCfkKA(moN3hK}}O^#`mNga$kN(g%bXI+F!*@T2nD3sBb z8weFNRIgbmIw~z=8mRAV55@4jW8g4g<#+;Zd(bO?7rrip_;ZBNqW?(=9Vc?Q%FsI@ zm5Vxy`STqg&C3?^S!NO|0kee6e8|`2`SKi>pMj)8U%s@f$4feYbouX6;EF>AfSnp*vQylj#DmXf14E)4c42fxqYeS-a zYeW9H;DMp0gd<|P$(8S@(9Hag>mFC?*S6#NPBq+1exT#o_Dtu$C}I>#M($PI(fw2W zb-f;1k-rt@lJQRFd&?p|PHNob+Z2>N65hGEP=5C>{_7gcO@eB8$LRJake4N>Bj9jB FSKs$}ncDyW literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/inform7/title_feature.test b/docs/_style/prism-master/tests/languages/inform7/title_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ec3cdbfbb41fff322ef1c4b11fc0d8979fcb0058 GIT binary patch literal 451 zcmbV|JqyA>42EX|`41s;EBN^XEI12Fm(t-{A}u|QT+jcnIGvZRA=8t0$n)0f-w&Y; zm2_6^TtGOfPP9$H#f3<_1XP22MG3S|*j4&C>XQx$ySdH_9TS33E*J!a24U539HSR5 si0k}sZj1j!reW@xmAP9<6S2-Fl2^bj!grVVPz};gGu<`NuZ(&90So7G`~Uy| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/inform7/variable_feature.test b/docs/_style/prism-master/tests/languages/inform7/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..25c2f740527275440a07ca28e51305775ab8b067 GIT binary patch literal 2188 zcmbW2L5|}f5JlG$DR+pxnN3e$Vvf=31-9u96PvQY&P;AU^{b3qqR6JBh$0{ZxP>@s%bh9YRa@@Nj^AhY+(hbW*6-| zm{KDH>i_UMN@TEjS|(oU;#0;ZX~e+f9w^oLGheVQH}Q@n|0(;ak)_E`PPe#ZfJC#l z=xlff+P%{g-4q~Wm1Gd#AU68U`EKtuGaAptdU-FOXXZ!yfr3ZJ1{~qhc-20HI7=W)QHtoYOz{No7ySF zevDY?ml@ULYDsNs9#PE7%GJ(n0b808GqXZAIwOSnwIB@e88-#ukF{D&(@?e07H*!K z!&6N~@m;eT@!VRjMra*NqHVcA9rXr*lDwQ~3LC)i9O#$Su&Gtj-CPyGM>x8V2H S54U{zpme#r6!4YGum1rqfOu2@ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/inform7/verb_feature.test b/docs/_style/prism-master/tests/languages/inform7/verb_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3da285d30311f2fc75e853486ece63676498ab4f GIT binary patch literal 3406 zcmbW3OLE&V42IX$jPBs^I_V{Pj7%1^%v!1`Q6(uW?&%BShvb%^vxpZY{NW)ImI0V~ zcK2br9FlJv6D%z$neIx6#3`;eK#V{qvN%~rrzK1x zk$i;Ur_LHjRuHlqq)iVPbYR^s2@xm; zBv?&J?rT5HC~@t_0N;z12V905n_oO{y}41q-cT$OfxM$c^t5J38`EK=WVcP;I6uSG z`7rxn68Zo0g?t|0;5kJbaEgJnzm^f#x(*R(bVE!Qd2n8SKIc8sFj_-d%PaZjjbr** z9OmF}!o3v3hYNI~;k5v>Uw9HXU&&_b59idJI9 z-mf6ELU7jNmT|OlhWLB2_7BwSkhZwXOj%466+(^=Ni69IEG2`4BomR$v;|IdLecd> zPLlj04@ldqp75qGQ%-W*V5i4H;Ah-Spx>BQ{)zK9#;cLHXq7Xp@~W(KxVFhF#mO6+ zx6SJpK5f%BZ*BAK?Rc}{bbL7+&Ex-le1G|06|6$re_tuKN}v>67fO0kk-26lGo)4H zoU)Rlx@gL^riSlTSc@!GN!e4SsF|ZYDQl@;Pk23$)V7LGE^AM4e8OvwKus(iwhE~^ z>Sf7MJrzYQeS*~~_d2T`P<0jGYOq%Df2qV$pB3h6t!S>@CCrsvGj$VGd1XjtzQ(jW z`ax;S-Ju4lkSP4<9G|E@ajRUO8Y+5>im2j9|0xZn8r@?O>$ch)y|?6hC)Nt}*5@u=F{`{b z5mS*eMn6}WBGiINuUF>M`4!*h0HxTb0;Rw}@C56-?(>84kRDxf%odvRq@gh84uxe3 z(Ht|0;xeHqUT>^Cy_B{XUFuY&WuJ3O`#k4VSfzByL{u8fe57%n$~4WhrJ^)E)tI`) e{tLFvdmfp-FloJJzaPEruJQ2GheMvX;`hJUi{(B5 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ini/comment_feature.test b/docs/_style/prism-master/tests/languages/ini/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..85faefe78bbfd6e11f497b65d41cd89cbfff662e GIT binary patch literal 201 zcmcEK<+4^t%g;|rEaK(j<Q4a&bm0CFkenrskC>=_n{!E5+(yh(Rq&PYwpE(V%bqyV+DSPuaBk}BH( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ini/key_value_feature.test b/docs/_style/prism-master/tests/languages/ini/key_value_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5d25d9d3cfa23284e805c0f8e86e14f99db8b7e8 GIT binary patch literal 342 zcmbu4F$%*l3`OS{doGPiWO|R(4M|_lBr{=QF{NO?}_w?QH}VK z!V}#w>YIatofGlfd)oo(QF n3kqe9_>Z+bdqzC;yHg7DPtn`M*(E7YQ7!I$-CC&?=a?>E#2HZO literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ini/selector_feature.test b/docs/_style/prism-master/tests/languages/ini/selector_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3158a665da3d2c7c012410a3f714f4de3ad4147c GIT binary patch literal 221 zcma#fFV9OYisj{sPRq|vN(8ZZxpc_@AbruiT%6HL#i==|$tC$kN;(Qk(GcU6Vs$X3 lpcX0tt)$3S=Zw_k>|%wq{33;7pv9T_c?u<&B{`|ZdI0dIGz9KUUrO4ZABGG_+3L}@>_>u>huQSZxSY9_ z%qc2^?h+03lD1`yOVohbQVP1l6Sy7_(Bss*I^#NVq#L`&t2k}c@U@kH;6dxvp#FD+ S@hJBF9p+Dwmu0Do<%Tb3dr(IJ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/io/number_feature.test b/docs/_style/prism-master/tests/languages/io/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..371be063de0811b6cf2fb054ef083eb28f3bf1b6 GIT binary patch literal 321 zcmXpsGUhTgGS)LOHRCb>lR#dot_esm6-dW56&_ z7?+13T;grQh|bnEAsg_N{B8m{gS88 M@%;qqZDoHIaiBZyv$qRuB=I7;90%btrdSERG)nLU+dR$nQ zDk*Vs=~4@DaYb`+Mk^JU6lLb6E9odG#Q>pFtPV&JC{~b@s#{o^Uy_=li>d^q3`r@n rB*GgpF;H&Jzr7X25 zNl8aRsZJ?YM*&%&7ASzGMju^`z86_bF)>(_C4t0HEKI`?@x`LA1VdGcl~OD( Z7Z8yj7|t1~$=SsUY57G8kPs=>0|5MAR$%}D literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/j/comment_feature.test b/docs/_style/prism-master/tests/languages/j/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c816bf19fa401996950ed40e029a50d43bff3261 GIT binary patch literal 211 zcmeZs(&OdwbJA0A%ghtGQHdguGv_jxz|OI-1iJ+_K|7})6x%*0OoWoqkk1`3Y`AAsjC%8p4;*(apVubp z(3)|XAD?-A-gp?wfW$v*r5$elA6v028P(?1wvI@sktk}GjRc!oDTF%h1 zx`lkch*!wvj7i3&j2n;TUm3)g7~&1}J`~PLCF43SbT+0-l(YSFe7ar6=Zfp{!rw5j F^aV~f=Cl9+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/j/keyword_feature.test b/docs/_style/prism-master/tests/languages/j/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..38f982d87a427d9c55c8665fb3597319ed4ebc25 GIT binary patch literal 1240 zcmbVML2iRE5IonC|A08B`9!3ga>_M|Dub6oZHK3%?a0xU+8`d(bk))Hs!0<=glke^qB#> zI|7g!fl=-ZBDhrmKI{Qlnh9{}E`X)o1%7?2x&NSK5(FShXCW?=?jI7D5Dj3c!=eRtR=o Zeb$Qa_pP_hl9&G8J6if}+0uRsX&Q=p<+h~5l9#Yp z_?n$^j{Sp6maJxp)&|z3ZNXdcip8qbYY?r-%P+M@$xJBp4 zTl97VWWyNprg`_Q(&oglDX840Vqh$?6=y+QCEx$wxTp8=_2UeO?-R_|?(Ba73Sc0^ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/j/string_feature.test b/docs/_style/prism-master/tests/languages/j/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8cfa97fc3cb436a8793bfbb7e7b4f820c8842978 GIT binary patch literal 204 zcmY#a=jBpQ%U4&=Pf9ETvU$05$p9dI(Y#!o(MrW7MVWc&N;(Qk>gr0dI_P3>o0MXC Zxqyg#>zp%Ele3Ez((;QGAa)k(0RRCUDsKP) literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/j/verb_feature.test b/docs/_style/prism-master/tests/languages/j/verb_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..55f908663f1adffff33af9fbf97942332a733cbb GIT binary patch literal 1971 zcmbW2&2HjA5QNWb$?s6{&&59-5eRGs$0$NMM9Lf3fV3-COZET(Wfcj-vv1F^2X_yr zAO@=1_4SMgG(O@;I2wMNFbIPkVMjcic?^S_Fj&}ng^EydwMI>-S>(tGIg1P#A!AXZ zB$O;tq=b}3f`pK;=+F^576l4I!6HUXh*^Ze5=#n$8D{($22)JA+MsdQ&V)0I6XC>P z5h3EQ4PoQ1J`v`GHFM8|7s4B>SHhOCcfD2yw+1a|-wh519|oUnRu2ZN?>r{fj9J|C z7+Eu9amQo8W?;Z_$ZBN3i7~5*0fP^$_e$(QU#@iT#1}yPtCkX3T0{h9GBCRY zL}V%>Q*T|33^Z5PaaL#63c<%q?9I?*4j&-T=Ep{~w`Wcv_V9oS*+*|NL{nuk9Z8nQ@?h D{W80P literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/java/function_featrue.test b/docs/_style/prism-master/tests/languages/java/function_featrue.test new file mode 100644 index 0000000000000000000000000000000000000000..2ca6169f8efa9771e5c9a09bbccda736fc634eae GIT binary patch literal 556 zcmbV~K?;K~5JlIWQ-rJ(w7Aw?dkk?g)kwvfkwh&;yn832P>L1E3T`<=DNxR$w=4d(Y23z>!++P&eREO9HIKHnA4()^T7E-oLye7c5+3uSp;j5} dXjaEx*iXabG|2Y8-1(~V+Va0JVhyuLcmh`rll1@q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/java/generics_feature.test b/docs/_style/prism-master/tests/languages/java/generics_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d1d5e5363a6d6fa93f9dc7e816ed7392cf594c08 GIT binary patch literal 1451 zcmdT^&uhXk6h1G|{~_d}LKP+m18Xn!vh%!^9%9XEu_h&LCPVz+mmf{B(aPusV?Cwc z`;qs)_q~*2TjVKB3tUz3jTJ1|gz$XvfIh#{nq-8B@B1YkpDD#hqGD9X){+rQc%D`gSGi^KQqZ&(xXu|>&VliihHjEgi#q`!N@Sv>smL*& z?Y$0u(YWrRd(E%Z+D!2~6(g+xWawli;kag8@vyR$Uy(0mV$r{?`etflTbIN0qz7MW z{0{$8(KckTRLstpG`9ltTSJ$_cEeh`)62EcklDhY&h4Lc+dpn9j$5Mj+Ppb-cn)_B n=`pHmp3_VTT)s^`&JRT60lDnMpR;IB(nAH`8HZL~GY@C+M3>Hv(jg|N7He9X6f3^GN!mnPanO+Aa^Fwxr)myG z&VUtEN>~@g=1j#2WhywfSOc~S1(&eP752GhM~PD&K^JbRqAs?i6+FTq3}$~EquYnU zWKS-5zm+v75s=CjNwR1R*s@*TK4yYm(P%z;akMwzzB`8u4c=OIgcAy^b0)RFsZkeM zHG-*zs=O5D(`Cohz|gCklLtqt*aJgV$~`brL>?F_Ui87)O3nSl$ c0rmZV>zgyOi-coYgPU^kibQh}Zr$|z`ZV|7TTD4{?xuI`3L!+oWoE{AUV;#0ky*D}( z{3uuOj!T&KE9IoxT=JL~YYMi#B%tR>HBdAe>Hg&W)iBM}D3DfH4s7KCes%PuOGqyE z5|+hz3Z}qD&2Bl+6ZuGwf4JfUVoqmvl;GR4ktdQjBEP*#uV#taHAtl0=+*2S7Pzle zx8~*wq&-rnYo2#HQSj#;3fAMge1dPf(d{bil?r*oWDWnXK;Og){Mt*tg&FBa)_niM zAD?@(=G)tJ!N)z9d3u4#9WyY!zra6*=S+wK%?N4#=g`n7>X;%CF{Vn$$CN2KJa)o< zjG@r~9!n+bm{W0VmL0+(T*q81xjg8?-UnZ(V-b{$&&^PZAFCqr`sxUkS4oJxT1qxG zrr{Irv3o-9{p7>)ZYtTltcv`(y-IPcvuylaZ&B&%t^^(XuT%&KBBcXDs00k5F+h~i zP83C_W&<%wZ7@f4UZis_7nYK<7J8L@yg!u0}6MsNT3oh*es;X^j z&-lIZ%$w;^$5N_((cwgPJ9 zjTNp}%p2C=QsY+8wrCTqEc_dkh3N9HbP(O;1#hKx%Bu~8V;{R$>%k>U0&{8bSnaQ+ zu3NBIvcjXE@=2x#9gp#<1My3GxWymwyzS-Rrjl*iGlD11tywOWUS_AgH5*kU2#QuW z2F?j0Xv8&r-cTSGvI6#?{A%B>Kf!SH`a+SJ&(6Q_qKMv&AAAi@560H~jPZbq-=BpQ zEjw^MBI4s8Xu%PCdZ5RC(3KygS4NY)h^BP^ym6&F$GqX;lJDs&0hqdH{5kr62RtU* zF61ou9mxhSidF}67#0) zV#+xMW!QD_G-W;tcT$ZqYzHI_DbtCeO~aX0?&Q!>Fpon{DtmHNRE3|aLlz$tsa867 zPU?lCg!#8q>@&*pj2U%5+r3f8qcny(%u)1G=gG+SFuHpq^%#|J%4X6`Go@((6za(V zH5;3C!964a-->4H?iuk%>2W|8je|m|9FOxv0gKeB-xtet7Rhub7eE6_Uir~P<2aSc o>@A(Gg%^&43ckNOea&Z=E2!3vEsSO1j#&*0rEz*STFhtv0dK42;{X5v literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/java/number_feature.test b/docs/_style/prism-master/tests/languages/java/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..014ed37f6a60aa9c06f3c0b15ed0b60bd576181f GIT binary patch literal 836 zcmbVKL2kn!5Ih%&KOnBQ5nx*NoT@$L2T_Eu!AjJ|u^d&RzwZK0TGiW2z_Nzjox$E& zqbV`kr`MJeN|ex{9Vn4Py*4HT9V!I?VsYdAo9jb4DDgb06m?>l8qg`ITF_Kwoe0T{ zAm1ri5>~#+YTLqvR*Tk}&^+3wMb~BpX_YM{nF*(~tt>m0QqtV95^qPz!;X)ir!LIA zX547LuU9dT1-Ci)r?zx$UA}Y?OXRL%TDLCa$=r2BaB<0%M$fLeOwUD7@(rbU!nXhb literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/java/operator_feature.test b/docs/_style/prism-master/tests/languages/java/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8c8eb39311ebb469dbb69c0ad6a4fe2541227d95 GIT binary patch literal 1044 zcmbW0O$x#=6ol6Xa))W5T{On-rHKoVAr?dwL7`Gz7SHZfaO0bm<#n2T%;cvb0U;nH z?;;|LjRFO=L&r)~b~5r@d=o$On@JNAwMNZiW5UE@V}mtb-u39&Y0ywxwA2a}HD>Rq ze>`(;=iOpg4)@b|cn)K^L>bEc5M4t&q8;**}aACuRG|Hw!;5UXx5#r zGfSqRn1%6@WzJM7QKkf?t1I%C{=Z1u%jtN1;5>{t+-~^ZsK?5?Hz?W&jQ{`u literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/java/package_feature.test b/docs/_style/prism-master/tests/languages/java/package_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9fe6f1f353a67ce10891a8756916873778f8ba60 GIT binary patch literal 1354 zcmds1O%H-F3_Y`7vGhoEe}JPW4kq3Shh|PibPzT){(DzP*&ZY2SbI>3U||6l-$2sG&E zb^KC8KUD(qfX2*;4$VrNY8w8=fDn?XBTb*m)mfak&X36GWrtP#m$ckHPV?%YQ_tKV k+7|EJ7$14&RmV50nlvCw-+fvZJ0)|&H$}ypSH%c+1@+u|@Bjb+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javascript+haml/javascript_inclusion.test b/docs/_style/prism-master/tests/languages/javascript+haml/javascript_inclusion.test new file mode 100644 index 0000000000000000000000000000000000000000..2420e60f120e509b7a0a642e70255f1a67161bd1 GIT binary patch literal 466 zcmcJMF%N<;5QS%(^gmoW194{5#28oI2*U|Ss6tEHLUiG`+d?9;l6d3$-rc+0r4Jm? z7DjfCv)%r6!19CzamLx`g>;1hR)%;(g~6F0oQX;{j!e7+hzJ5%kiwR{D1Md@c{E#8 z-`>dt`dvxn9_5oE6J4(g*Q1kK1=Bb;{x6j?pU&Bai^QStSX1$|P-z1f|B&nS5SUK{ hQo$M9CV^W`;AB%0STX}y(5iU@T0k#!XwYesd;rz+e5(Ke literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javascript+http/javascript_inclusion.test b/docs/_style/prism-master/tests/languages/javascript+http/javascript_inclusion.test new file mode 100644 index 0000000000000000000000000000000000000000..f7977c55453d2b7f8b413ce1621d8bcdeb624afc GIT binary patch literal 419 zcmbVIyAHxI44kRdf3Q4L*r_^oK}<-nRUJ%fM0q4pNQ?US*eyZ~unc@7j^P(|_LD?B)NWwHwDPv5xj rtcl%NjB+{FvZj_t?*CnsCpMQm99@8ow7nbK1~Zibt%db|zg;{5h|_K2 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javascript/boolean_feature.test b/docs/_style/prism-master/tests/languages/javascript/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4019c444f8b53c40620226d2914ad19fd46effee GIT binary patch literal 201 zcmXRZDoy3(N=wWs22#9Sx?}*5zGz-9&S<5i{QR8M#5^S(1*H<8xk|A*=)z!&lwx_g YfQWqCoHJ6Bvx^nd@{1IpRu=040MAk^8UO$Q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javascript/class-method_feature.test b/docs/_style/prism-master/tests/languages/javascript/class-method_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..303f481f95e620671ba77aa341fa45735bdbd4af GIT binary patch literal 1066 zcmdT@!HU8#5Iwihe;5W2E!4#y@U-9;cq=`OF-37rBuUXy{P&$?8|ije1Q!-8IkfZg z=FOYwh!3(B*3vrYvovY6&f!u*2TNEK&|f)5wo?K&Wbz2WfXpC|uXLupTQR%v96nh( zf8z1HiZv@d$nLDo7E3_kYs9(?@$fNMbd(HL=qty1z)r0at|hnE%Jcfb39QB=Lzq3r zWD`Pui<4miCym$O1PNZy%X3{5O8G@ekXsh7=#w<$v?t?oz$;YkaT5~a0&C87r|9BV z!*6DO7H|#sgUM0L!pvf(v3VY23{RZAxcRZk*+Yxpd;5o;k7eTy{Ga+{g#0gLDWB(e X?|mo5!9t@Aghd11f}P&lw=Dex7y}fp literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javascript/constant_feature.test b/docs/_style/prism-master/tests/languages/javascript/constant_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e17f2855ad6bac4d7e48466f71cc15dfbc80ede5 GIT binary patch literal 399 zcmXR*EK+du_qXQdO3u$KE&;LQog9PUd?&{!6C)sxmrIun0MZxD%f%V3l$}~xo?n!r zq@$ozmRO_|s{Tlf6kbch9bRUI33lPqL>KKb)R=){OH{@TYN5t;uVJsyQ@HL4dX&Byc$Aqa zMq*7|@Xh=E-rrmZ7{Yv;gqv6-;6dg?-i7_ab@p>12DK-JA{=mu8a&OD@b59;@8D%n zD5{TA!ppia96{zfXzWpIW;RgxMBPI0=j%AbKU(lKq(V6zPoJ~z53&j#3ixnRLj6j} zb$Ts+uH!mm*XfKIk)z6{|x#H1&MLxg(Oi!45ckO1e$Bi1xeU7oI|gQmgZ`EWk!%br8;l7Qu8Rs~af z45UagXwdjxDn%z%u12XoC@NCT`;e*)i&e%?u%5hCd!+se!C&dkFGU0Sm$z+r^D_lqG+)&+uj cq^jTz=9Z)^W~Q{U03X2THk96Z+76|-0Xh&K>;M1& literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javascript/issue1337.test b/docs/_style/prism-master/tests/languages/javascript/issue1337.test new file mode 100644 index 0000000000000000000000000000000000000000..e49f78d114735dc9e6ec54f6f0e78534807fe9bf GIT binary patch literal 291 zcmdPbS4c0-DbOoVEJ@DLP}kEhE=tzd($d$`%PLmaQHWO0%`Zz;kJYs1<>KYiB?Ex; zMe}lTMk^)f=jNv7l_=>bDCrYxt5Pg47Z8zewR1*la(1yoT7Hp2ZfQQ4a&bm0m89ktO#y^(oq1310~>m zr39r|9f(+FUP)?EK|WA@W_}(_DNrqnxNbpdUUEq(OpTICHB>)t+tBQTdr&DBWG`nd z#C}2+)k2g*RipU;XizNBG$0~B#GEryle3Ez((;QG@=}XSQd1OQp$CnTVm*c6)Kmp! ILt{&G0E4=1c>n+a literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javascript/issue1526.test b/docs/_style/prism-master/tests/languages/javascript/issue1526.test new file mode 100644 index 0000000000000000000000000000000000000000..320219cbc994f36e214561542ad3b2b0e7db20cb GIT binary patch literal 813 zcmbVK!D_=W3_UN9e-PTC3ABL?wo7R*`-C1t4#rdFtg97dhtj`a?A2u}Ne4APn5Spy zJxMKjZHk5C1FeJ{52C61bZi%8o;_6FkS#{MXX^+yTS)K7DauIFD&){3g}e3CK)~ zsUE#Ec`Do&wIUC>qEH_o=xvJ$0KF9oGlp9t3zrlhc(1`07lT$e0^=6^ADgEKg_1$x zqlp~|hgFzhDKZoarNvlGgJ}T<+O-PRd#$*CGxlz7=-rZg8mwy^wiFB5LNglc)jMoD zQK<O9W^5j2M* zKjUj0zW>9Ib(eAYcA4&U>@m&Li<&Io-t_wNwf($L^r*|U@o`q{BL>#!#(!0q{1^E5 zNta-=tp4gkeu;btbmP+StJ8Fi<}{b zqx^=>3?v@jmi5H=dvX-x$f0t!rCK@830Y3Jye-B#y?4N<0_1c$uU#6Fm;E|5GmgT*=-umzE0Etvc(b{9_z`0fS3N`~Uy| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javascript/number_feature.test b/docs/_style/prism-master/tests/languages/javascript/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..16f0e5fdf3721bc3fd693f42730da9e51e2c00ef GIT binary patch literal 650 zcmbV|!EOQ}5Qfj4WZr>r?YdcTZPTMR9=!Mh#sjQlB`P$qM)&PqipECvBq5p1_XAPwe*dJcyIzG)u;e}zOdG3w_vl^I{*QNbQBQYD egy|tT);wO_Q+IZL6PTx8Pl0S}?9ctp{`?ihwW5Ro literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javascript/operator_feature.test b/docs/_style/prism-master/tests/languages/javascript/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..eb46bc49939b589c382e8ab9030074dbb8a001b7 GIT binary patch literal 1138 zcmbW0O=`n16ol6m=ni9py|5$u0(#1##|SZml2T~E#p%-I>>V4r$(vQoSUkD0jZQ@^Is8AV2yG2WJuwtb+=+IHdmXi^q;Ss}x z$QtW(c(Rmd%sIICaIZWGXAkEs_;i}A za(mDnr+B)E6^qL0piJ&jx4GEJq^HbnAGc!VuTu$_Z%NUur(5Moc=hnAJPCIm?vy9) z!iTT!GWr!qK|d5bd3F+P<716H%h3l}l=V3V>h;Qe|GIvB-|;ywxZG~|FVXw(2Z1vq AMgRZ+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javascript/regex_feature.test b/docs/_style/prism-master/tests/languages/javascript/regex_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e08db8a26e28f335dfcd8c36b4820e2a7506bf84 GIT binary patch literal 881 zcmbtS!A=7q5Isx6KTNo+T9j;EFZSTU&j1eFhOQe^XjnGU82{Y?Y}Ry1Q|%^`g_-vl zc=N>8Ias$|tSAw<7G1yl7&&gFl1l5(C2zj2pP#UFb9(@>V1~ecv6M(9sq;^1kybSb zXkY%%+B#yh9ZH_2~wd}GqH;7ayyk2RY}sn&`|et;W(SKq4*XY;AyxW zcWdLLf^`PEz42{uDfPphFwGpZ$f+Ut-gfaEbz~F8PTyb}aM?@9PJ=xfxXhM0e5ZUC9I1PF(p-oFksT#7i`m**0?Zb`R3>UnNN)}()pyw2wL()ATa>uD) kK7%*Vjhc7|d5{nVus!&d$k-Xx@*%{N%Y?ld%o|Ad1O(fqj{pDw literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javascript/supposed-function_feature.test b/docs/_style/prism-master/tests/languages/javascript/supposed-function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7568de9b7941fbe1ad55a8633e959704c11de332 GIT binary patch literal 781 zcmbu7O$x#=5QW#~6hl@OYA)bPJw|ac{fP!^CM0da+nb~Reb<(rSmn>VA06gt;G zis5R)!Cy*1e+k>YsL`ti`@T?0Es`cWMzuD!UGWHt-49QQN^B~rN81dBtSmvs?($qF z)g^VrwV)RH70#Y{yvVX#=8;^-az^r~EU@KU@00xQI|jwmobQwJ6 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javascript/template-string_feature.test b/docs/_style/prism-master/tests/languages/javascript/template-string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..664c056ddb066cc7c0922a990aa0502ed20505bc GIT binary patch literal 1131 zcmbVL!H&Wp5It`b{(+DlG}_e|uY20huuZ5HcN<%1C_Od)`_4eILfjZ_(g5?`FmGNM zepZSeOU+5bVM~%}zu&HQU+IX;6|r;#bg{%e!xUa}%8&3@@Siwd!2mL%H*~Y1xH8I( zXuGB~0U1wciyekC#2xy0UI&b3Z4 zTMX3H(g@utXu4L?i;Ux0H^|Bip2N~{$_Jtx+N02r$@behsyd-dqilRNhiCF`4h9n9 zQdisGWKQVb^Umq?1*Y4=GZIvH26zzH$e~!?wG_0JC)y5;sol}nrEWm`&p#UYDa8N) literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javascript/try-catch_feature.test b/docs/_style/prism-master/tests/languages/javascript/try-catch_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c4bbd8b2b8b85e8eba14d47f29d5e792c6545cf1 GIT binary patch literal 453 zcmXRZs#K^}s8vW#EJ@B#&`8w;^U^Z&5_59EGQ3>8T)JcckiKYMF3xDB?9|Hg{Gt>k z9R;P5qDrM$9k6IYXc*+W?+DreQx`mSE$&M!(A**9vV?;&Zr vxGLhoc>VsH=+CUSx`4l%`MJ=zWt=5pSqQbo9Nwfj6wJcZsy!%C>({{v!*FG2 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javastacktrace/stack-frame_feature.test b/docs/_style/prism-master/tests/languages/javastacktrace/stack-frame_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b4c400e45871e08e51a6f502133d86f1617a3403 GIT binary patch literal 1484 zcmeHHJ#WG=5S{U_u&fRs5le^-RUKNX8(mN*n&C(s;U@8+*a7w5_v|DHQXwFfIyFON zzq|8&y*qGx3EIe#e&cZZggq=~^9h5CBEEuB@lEacLAx!tNH<7R?KB!FxIw3^H&3vX z8KT@kCH>nEuZYid4$j`d>Am7h<+hj}y>%*&+GzJQemA+ngW)Tzt3*v0iw1m*t=VWT ztb-(vvWj9CQ%(?Jx%xU_mC{{+6Y(^FNdeYIrqL5V@J_O;P2y?_9E~@T9iDl-1$}ZI z-qRmBJZbC>lF&_}f7kF{KaRvX)2C6nOP|K-n*L8Jw*z*~@VAUU8LYEG s{|lB5NU>Qr7m9LmY)_IrUsN|_$>O2Q>}9Kx-0}=79#$F;E6qyw4U{3BfB*mh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/javastacktrace/summary_feature.test b/docs/_style/prism-master/tests/languages/javastacktrace/summary_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..01497f85fda618a12e4cd2c5750e5b3c98447519 GIT binary patch literal 3566 zcmeHK!EW0y3_VX@LHOMI1AHrr0z0%rvG$hwpvqjLRF(`$PV2v)lsIx^$64%d#X2kq zf>TlrUm)Rm#bUcpa|v} z-0`BnbgN$DrP+qDdlK9Nmta>KX#q(|xlEu-<9jVFFEQw5a0M2P1q?X{*>In^DfS}0 zrnSKWo|_DUvsQ%)qnuwR>H-ZguV{eE0!&?18jZILp&D|q(^*g-=rdKO_(sc0U|Ken zR%>K7y=(4w{~l0p1lkZEArB#f>?EK})uI5YtjoiowiztOeBHRiuuV?L<%|y@3-V== zn7S;fZjuXdkM6lcr(JSul9p&H%Frz(o(xHT;gp@EswJ~E^)d-@8mqahVW;%8y%V02z2q28 zqT>Ice$l^~&f?+$T>X2@+mF@UpTO)tUBf7JCiLMl-czx6vxKI4jG{5zf%#Kevu)DT zhK`TV?(gZ-2Zi&l(~BC6n~ru27~ZQR^GG|lO|%MA-mmRqc8v~&E!)m&G~M_(hwc$z jpQIyCAB1e?53_X)yVdVr;#}5F3n9w*(J4|D@!J%tI8_^{wO~?56vy*;=0@?(kh}zH3 z@w1)BEHfgDttcn3lBTo~tVN<#3P)*kc+aIt*_%kE5s7UuFq_w?$Ro(G(v`6}d)9>% z6X1o;GGWHL;2;&exVN=1-!c&leTy^85R^E=XgHd(gOSP>3Kp=`s?>!T0#{lIPHy&a z$A`fOeu3}B>8MT0BjAs1)f~2w^Xh{zvDJp$lhzt{zzAsuNVBU{Vx?9Dbczv}_z&c$ z;>H(oV(v$HaXmlzNad#=D^%$zF$bB0vl7Ck;9hI|j~INmtT}stZd>J3Al3E4Ow&@1 zha`dU=SFR{uRMKyVmGns+1!&~gmlH-)Z-$?O<2J9k2HSLNC%*&ZeSpSo54Q>C@l_J zM&)d}S>5n9Dxj09wT8_72l;U~9D!Sb zKKHcC+^kL?ay5OuU3GMjI248!&uaocIoq=Pc91P|k?c#@X#={lhswTcV@rtfrs=lP Qy*48Zcn#rUD!g~bzfhA)kN^Mx literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/jolie/keyword_feature.test b/docs/_style/prism-master/tests/languages/jolie/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..55a95cab1ac589fa64d28af6943e8bb4b4b0961e GIT binary patch literal 2384 zcmbW3!EW0y42I7$;CC=`ZubH?4ZF0(fEK;%5DbGNGYJtz@+3KK_VoKHJ8_XR7|Z+v;d+BicJ@#7+dXGNZgJCbsb4C;T-1Ye-#M~^4^)jlfAHkZ; zL1w?ikb?~l-AA7(Zj7ab!7KggDdks6UGPcveD?IyoY2XquEcPj4imj)LKIQxE`~uo z*hCVCG&0i9iHgss%r)(VNl#pcVp~LS(xkuAGtk}A+7B7zd{t=#~eeT88$y*%6 z^IwS~?-)^e8p<)?d4qUd!XCqpWk*~*PV*ETWAJ2-2FH{p*~lH-`QAC)G_DqYQfCJ2 zg~$<~m-7yscXidpaO4&adYlbG(Hmna?v0EEF30hf0yYmvif}~n$QBFg>i!ddb+xLi zFRR6#PD6<8;;vcn_|z87ue)nBzBeH_+tsSeYgBQ0pDK|Ts{(n$Dwtn&!K-GGPKR}H z68utK!G3!9Hx^tU=A0XlW=LM zd@&7(xT*FB&5C3e0o2eai5eM2@)m(?YUsU?YFwmMvqNk(Gv1hH=8a|*iPr2zv^6lP z(f=Q4QF_gTh`!iAXyjZCv}Nz=gN94R(7>gJXi%z(W}oVehDznpfYc(*K2;|T&Gky7 kQo%I)RMUW@td*Znl(u_W{C!7upBjYN;NO5|Ds$=UKYS*#ssI20 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/jolie/number_feature.test b/docs/_style/prism-master/tests/languages/jolie/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..90d5c96f31842a86ad78863f5a274aa9d6b68bdf GIT binary patch literal 297 zcmXpp;^i_i^5Nw&)H6yo=H)WbGj!E80ntXO+J?Mbyj;3u0Fb_DUM|jPrM%MIq|_oM z9R(#5BPE4c9SlJqETUkyU=fEn4yy#nwLl48E+8V`&CVIA$=SsUY57G8DXGbsxrsRn J5DygV0RUNyJ_G;& literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/jolie/operator_feature.test b/docs/_style/prism-master/tests/languages/jolie/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..963acc2f13532de7984b57de8dbbff5e62c7506d GIT binary patch literal 786 zcmbV~%?iRW5QNVL@(z=LIhe-YZBhjvLwcxx2v#et7r}=&sYoo@Q$tw7$LwTCRzquO z$C-ig+aCmkuNKy!MCo8kSj(A%^H?d))>t6N90gW*W5bzmp0GmSjjF=3NmE*EXtf=#OsofwG>D_UmHH*Y=ZafSVGn5I_WgGKNn9l0T08E8=KWV58Muhs3Ij z#tC3POoHWvHTWYCilD$@V#&!);?9ikY(?F>i`YMUOCf^uI?!FvtyJ3LhZ9DT3&Ld| zw54F|q1SWyf&OdA6H6Xm^27K4{p5|VPA$|fK-F&ru7(?J6CsUxHA=dMaQA2l!ypU>sE8netF$mO5U+SVmxsY7hg!>G}9I!r=LSTfqWp3#CADd5L3BOO`hk{{YS+u(ib_bbo( l7bYW=-n{gmuk}|+YptHGsK|=L<#ZHkI*4dc?6d5={Q&(eYgqsQ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/json/boolean_feature.test b/docs/_style/prism-master/tests/languages/json/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4019c444f8b53c40620226d2914ad19fd46effee GIT binary patch literal 201 zcmXRZDoy3(N=wWs22#9Sx?}*5zGz-9&S<5i{QR8M#5^S(1*H<8xk|A*=)z!&lwx_g YfQWqCoHJ6Bvx^nd@{1IpRu=040MAk^8UO$Q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/json/comment_feature.test b/docs/_style/prism-master/tests/languages/json/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..50341d39924c80ecad39cc384cc8c6edeb7b327b GIT binary patch literal 531 zcmbV}u?~YE5QgWH@D7(7iI&~5UHb;=U@UEo3I=d!jPG8qmBi>&2_fO<1HOZavy+r? zYqWye^u5wPBq$|jKx4ug5dtoqsoRKvkY7p=B_wh-6PF%nv@Z{bej)-Sa6~2PNf}vcBSvokDYIR)1^jt=IjH_I)aG+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/json/null_feature.test b/docs/_style/prism-master/tests/languages/json/null_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1283944abea7feb34e5df0392baf255296e3c3e2 GIT binary patch literal 163 zcmc~R&B@{A;^opM1Az2J^Kx-UE9C)AQPNR>(6PK+Kt#Tg&Kar6*~JQJ`9%sKbM*k) Cf*@`H literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/json/number_feature.test b/docs/_style/prism-master/tests/languages/json/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ca87a480d5dc1c9c8cf560ae52523287bfe6394d GIT binary patch literal 420 zcmbV|%?iRW5QNVz>^p?L+AR4+doF#7(u)!iM1>aL-z2RUx2J|2Cf{aZW(KE> zHns?nO*$hOcKy*Igj3QHL0c}rv|}H7UsNbc7nvVBPT3m}4gF(+JnAPn)sil^g5x(ejR~P^Q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/json/operator_feature.test b/docs/_style/prism-master/tests/languages/json/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9d30b2e5e6cb29b1331b6e70187460bf3ab7c29a GIT binary patch literal 161 zcmcEG;?gApaB)R*aYifU7o-*?mgE;H=_n{!DaCTdl53iCMrv|)u|isYkwRiljsncw HVm&SZrMV&^ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/json/property_feature.test b/docs/_style/prism-master/tests/languages/json/property_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3880ad733dab4b10a7213a20204c73b8e2e7beab GIT binary patch literal 633 zcmbu6O%B2!5QW#0a0fDLG-;P?Jw|Z>4UNWF8VU>B^zJe=G*J_6l?6W^!@POJ2#vK8 zv~oBNAPSBIL^)A1QnH&*tl+rU5|jhMN=o82CHo%+zN=!g3cAqNJ}7^&EpP@SoKPfk zXFKEk9idG1$+^O`3=(o6hAD3y28s;ZaMLECBBK`}zVJ7pwW-S`#j}Sg@r~}*if;6y jW$YLJYp(T6yFPfL}G?6vA9GByK0aFiB}CYge#WJP;<^mP0lV>NXsu$KngoOE&w_g BY~=s| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/json/string_feature.test b/docs/_style/prism-master/tests/languages/json/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8dddae58fb9284bbc10b79006343e58be445c9ae GIT binary patch literal 548 zcmbVJ!485j3_ZJK|FHBtJrLu8tDiwRAOR&NjEwC7gnzdiP6Rb3EX$hpz4g6z0GvUo z)H5JlGVPAuCD2BvV}vN^GI&<(aFCu50|Jbkakk&E+`ELcT>`DqRec31s2){J_h*ZhM^H^Wo9(C&W+7XrD`WW1m#AnrqHIF94)jRkQqf25D*9cyMI5u0IUS$ nE58t+S3q@2;-{v+pGk>6WUDlMkA+5=|~`ih8W literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/jsx/issue1103.test b/docs/_style/prism-master/tests/languages/jsx/issue1103.test new file mode 100644 index 0000000000000000000000000000000000000000..fdb4030cb217973a2b38216dc15796685d1fbfde GIT binary patch literal 565 zcmbVJ%TmKI3_K?@`3H@-_CbeZn_f!4pvRDdk_hT)V+ThGQ@$Q60ftbx)Z>e^yV9=R zlZX29X!`w`YqkO@Y%0^kvvVmH0W9bpVYyu=aT3pOII7E%ILh$EmpA7toB{UaF`tDl zPM4$hGIR}l66ckgj>HUwUP7&-0^>&!s;0B0bR@=Em25^y6k$k$D#(Xrfk`5MZmDJ+ zg&`zPp`Om&fT`+w@~4?UkSF|J`t@p>A^$!(Sr+QU1~mpteouPV z^Wogs_5*w;*1K>VN06S(Wv|D;FiodC%d_H+73<18dni%p6L%2f+eEW&a7G4-+DgF# zR=Y@3#IzJb;poZ{m>-E%#Hxi-B8l`Xp~Rm7@D~oIx1FrQ+Htuk63OExnIPl;2rg#f z`sk#?e(O+s-!jcZMq@W1DVhF4ZpKdvPqRCfTBQ5_A3HZ}E&-$=foQO;2VpSez<4KQ b9cUQrwQCuC{l!L}^6Z@%9-m)c-!%RPKI4`T literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/jsx/issue1236.test b/docs/_style/prism-master/tests/languages/jsx/issue1236.test new file mode 100644 index 0000000000000000000000000000000000000000..3cc3ae2b8ad5d9791e58025463dcdc36fe5e8ee5 GIT binary patch literal 511 zcmbV|zY2pe5XR>UzQd8OHP9A1iHncWQ5>!@R9l;fISWO6_a;gSrkf$d9l!g&`;+E% z(^fEY&Z%w;?|R*tDT|{xN;W*FE8=KZFv2@KfQ#3O&ALGe8ju>TYza$Qd2nTxh!%}W z6uzVb^JuJetXxV8X1ZQt^>h9=8@*Z3#%|~t67|U&+hK0xHuo&ld9qf`r}8k6O~K#+ z&SqTNn>%5lYX@F`ZSWW{16$q^e8wEDhw}%u2ZdlpVhsV)XO4uJy=ZlTMphtcV literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/jsx/issue1294.test b/docs/_style/prism-master/tests/languages/jsx/issue1294.test new file mode 100644 index 0000000000000000000000000000000000000000..4d167f146cf71900a861cfdba39da125210b04c3 GIT binary patch literal 1416 zcmb_c!A`r04sI3X{SQ}-r2<>LP)f=X|maw zo%dc}`WAPo$p~Ux$|51?_Fx=Bx83rBSbc=Ndck@aKB*2&uHRu^s3cZ;1rnBWgYYOR zpO=s;LXbJ6lA+9!yHt?LluSB-&*Kgzb&L19mP}`00*PV-GQ4?!XG6K2T$m!uk$IdX zr5QLW0ri_H59Aij+v41^<~I)8ci@4)*W4SmTkY1M#$)HEj5rk=EVm|$MIQt@i^Qyd z+W0c9>ZFBUP$5YfZO6J7>bWF*+bd!Ar3 zgdLbU<>x1vlH2<(!z5Da0pX6Uo+yiSL=jb5k0^i5zaG}6um8W*5bPfuYoPc)3`=YK yRk26ZJYL^ehm2LFM&>sCx<=%G%)-wk+r*w{b7bSgZ~dF*1re@>xA%8^iG2bFY;vRk literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/jsx/issue1335.test b/docs/_style/prism-master/tests/languages/jsx/issue1335.test new file mode 100644 index 0000000000000000000000000000000000000000..35c2704ebfaf648ee0b44ebc5f0acd42b5e1b77a GIT binary patch literal 2728 zcmeHJO>5&Y5Ix7>{~)x5B#@*HWiKJlVS8Ejnqvq=v8P>8M>5u!r5OMBm1N6~Wn4_-qT3iF9o6$M2e@B$FEU2gE@(I1iy2&Qh&eDBKNy6 z*gnZiCItu#140spEGiG?laP{Y+lK`a>;fAy{U%{rEv}$-3+)RB9jh?thb71{g{VB; zl_pSi^7HxzQ$;fN0*zf5EN}RQK^W*NCI^b_g)WHs?*GyMvO>gIFyvBb6S}2GUERdk z#VJ#2X|`*Cy1Vpfz+-K5pbRm076;mNp0==xbDp8gtV7ldOD|{C<@Atp6q#KiEZ2KP z$lF8{3e*||KxymOZsZwzx6v@7)F8m3pd z&{H>)+NU0Rjk%Bb^Zu??)nr2J`^6p|lc*Qcchm&ehHkF=JF}<*2V!pA8+-u&tvU9e zQT^O-r1cnekD!KjXER{#qr`@R*3a#4sjo~VDJUX9Atd^J#&bpFGl`2leIw_b#Tw*7 b@dSu|aS`)6;^zWkMfL#X)B5r8a~S*t9sBdA1rqbMIjvtOSZ0&s!E8#g-fwY48lgK6!Gu%6-;UiqAEykLKIgu?5~MznJ~dN-VJG-M0l1C>8a^Rb0SP8k)fr5ANb(|AM&!m_cE&3 zC*2VIw*wuuy(m=A6mNu1p$W}5n5L1UW>SWNodE%(hUN(8V^&6)Qk}`seb6ACL0NRX zRi?8pIUa;g&;6~ZgIsUO9}BJtj2+@^!}BOkmi~G&vXO8{IKqzf+tI4{1r@V=#6*Ao zfDT8gS8jYQkcM%>^Nbf#(kW#cG}^Bj7omc0oHmV3d291n$eJSZob5-3xjHw8u^`1R zIoX--#3Fx0T^sXT7)4p?t>B)Kf8OI2S%I&w`{S?gP(kq}2^tX~6_i9TfLyq$$m{W) Za3OgKgo#E~&{^0sIRcQU?d~NG{2vI13rPR~ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/jsx/issue1356.test b/docs/_style/prism-master/tests/languages/jsx/issue1356.test new file mode 100644 index 0000000000000000000000000000000000000000..3c4789a8766a77fdb9f923681bf286ae518d4dd7 GIT binary patch literal 568 zcmbVJ%MOAt5IjS|KQ!wVXpGSlaPbp7B8Lqrk5F3!i}CYqA(#~OpuKE2vyYkC1XSjmAjo8^x`bmE_<NYwkjg= zBrDDuI`8_)68`45^5o0vz&8~BKiRnvWjC-&_sraFV5L@MRJ5vQ#vq8e)o103xzH&d)S%Zn|Y7* zqwM}zWn1oyW9AauS|p74l{sME<3d+eQwVA}$+FNA=Cjl>GEGFr zm2wN7qX9!SmKvP)s)TW(deCSe6PtaZ61A*oaMmmPhCA^Lex4K3&LG|28BIpnCuUyw q;i(qsJO9h08;Xa5OIZWv6}_N5-BFMNS-?I%t{_H)<$AN*+SVHZYI?>1 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/jsx/issue1408.test b/docs/_style/prism-master/tests/languages/jsx/issue1408.test new file mode 100644 index 0000000000000000000000000000000000000000..e54a44c31f3e2bf1be6520ff389f6d1faa74f7d7 GIT binary patch literal 811 zcmbV~O>2Wd5QfhY{13x4$5>kEp@bxt-bxRJ99j^;t#0DBx{6Nvf%xA$tFDcP5{P)% z`Fdye*;&Qv6Ds;i<+`pR6Xjm%C%K~~g!8&mv3wR{ znfXX!j|(v8vB6ex&=DO3sa$gkt}s}bv>Ec8Xih=r@KF$zo)(!jQrKPrhhP{Xg%S>#;P!Dx9g zib-U8r};2CQyafvKjm4827?y5g*~2;*PxI0xOt)pR~GmONH0A+)TD6JDhJ%2|I63x wA(7EX1-rZii=CI;V23Y735?LPWiUbh_AVo`*5mdScu%ikD!Sdky zc<*vAXJ-XB2Bxa0N@+mstdO~ZZ^1JgPgS{9Qb-GjFaXdP61vx~EwXK;CG;ppE15JW zJllNoC5l2NLp)vjf0Zus3x6{7Dg7~}9>V~47(`Dj!lhyGma>i5|0$ib0kDjkWb=XZ zJ0p_36c|dGZ=KD3_zdRNxC3+=If`v1Gh1=HR+6g42ms{u;+>dVX@`b)L2!?)HEtp; zM30D5*7El6WS{uYI;wx!O&TJ1`dGfCuJDW^dgH2Sf?c_M%xQhkgv}A#$hj@}T1FP7 zBxz=PChK7V=voiqHuqw7tLg@^Te%@=^lZJ?bm^|uOSl*V8|4inpfl vcrzQlVSxMDw`IB#*~Y*^X;^5!Eb(nLU{*?7FnekFE`}c=;C=M@F$#l!G=gji literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/jsx/plain-text_feature.test b/docs/_style/prism-master/tests/languages/jsx/plain-text_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6c942066c7777fed39f37b654112df1a714ca14a GIT binary patch literal 991 zcmc(e!EVAZ42I7{$~#y-!>AA^)WTtp(e@D9utq?FQg@n!`tC~zSw}g6Hqlf3`>W&r zcGFsYt~s0RjM)kcJ7ZmtUd53*zhmL7Aj=?u4J;S1f~4;`ORpSfvnL+TILloRIgzI0A?;dxSGq-@x{~7O%toAKXBM2^^0DgNx=~mSeT<0yQ7CL5vB+(Ttm$$*klP_pd5ds_xl>ZUI4WohrZ zALratS}I7UPOHHax3~01N?U#?}DGoOI&A>z>anATx?-U0LO#P z5^uqz1nMpUH5!#%C}`9J6Oi;3&#Dw6CI>uKO_|Du%8ZvPCG1lc3qS&(5;nRSBB_+Z zD^V;}3P$O`1hh17G(zRt^^YTc6M2HMwc3SZa{^^dHJd+(VT190CX3xlx4`&mMTfor zvz$l42K`{-DLwEhnWujHQo2q>R>@(d3tUHk(*Q&@<;bqk8|!(UZt5 z=`fph7XFR+DE-8M#=&;W88_CIU{pN_?P@!9vJYi1ApLO0nv8?3Q;3Alz0jeZ>mcm%@8bH6rMsHE Pa6xV!9tjFw`>yi|lCgeh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/julia/boolean_feature.test b/docs/_style/prism-master/tests/languages/julia/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4019c444f8b53c40620226d2914ad19fd46effee GIT binary patch literal 201 zcmXRZDoy3(N=wWs22#9Sx?}*5zGz-9&S<5i{QR8M#5^S(1*H<8xk|A*=)z!&lwx_g YfQWqCoHJ6Bvx^nd@{1IpRu=040MAk^8UO$Q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/julia/comment_feature.test b/docs/_style/prism-master/tests/languages/julia/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..054d6023d168b01d574d26410f92bb4d88dd8417 GIT binary patch literal 201 zcmY%9Q4a&bm0CFkenrskC>=_n{EE5+(yh(Rq&PYwpE(V%bqyV+DSPuZd+A4bh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/julia/keyword_feature.test b/docs/_style/prism-master/tests/languages/julia/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e2cfa8c88f28d744166ebe8767bc86783114fc30 GIT binary patch literal 1204 zcmbVM!EVDK3_TBtf3R}y_7nSzss}1+%dT zy~%D)!x9|yZt_v9-ebY_O8?oJ3s{5ptd+GU1h6RU$AHl^zEBAd( z8DaF1GFBK<)@od$MV}%}A@wGJAGPxHyrAjnU_W!l_Ms%LfYe`5&WQR+RfO&;lw^nsE!J7h0@o|FN*$0BPdVk@mc}K0@j@`wrx0HwO0G-*} z*PRaVXXCe>a;vtN&}XiDzhy%0zd(5&4H_PhjIIM~p*+9_&5%TNop2NMqlDwoAl)P( zf_I5XJmm(-T|**#)0BX@y60v;L?^>pg#W-KO4@lQBbADHR;@r;#S&%THHcZ@B7B#< xz}W^3mdzI;oO~iNa!iBaVI+~j#u6wStvhK&@9S>+JUe?S_2Phf=j^sCA3u?raf1K= literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/julia/number_feature.test b/docs/_style/prism-master/tests/languages/julia/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..72fc7a48e57a406a54566f59fb0c78fccc655e5d GIT binary patch literal 551 zcmbV}O%8(~5QWzz;SPkg5}=rN-6p++ae;`@)W2w((A#&wx+$(C1elM75eKQNQdR1Lh;)gv?=8AW&cFe)!S%;3XLBnWaJ*+iZMC7qY&sd>iTxKjY*BrU$;I2l^IAQXbg2_sh zJUTcJw}<1#@f;950^_=*H8AVp)8Ouk-|rvJ8|U3*wDZ7|>JBD*IuyhCG`@ZfW3fZg z7RMbnDbJh$I|+6w*hsKZK`TLOW7IAJG7Nyez^^pfmVu##Ysu z0yi(oe?_aVC0VQBB*96MnS!QL%HmR0aT0WjirXukR=XC9D@z_X*Ao<#pm92=k}E32 t6`}RhYz(n2=~7f*rFC|$mb_`ndvP=w$KwtD@^O0myx@Hp@!#c_=Rb-CLpcBd literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/julia/string_feature.test b/docs/_style/prism-master/tests/languages/julia/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..207b3f4425a78ff81477bbea0120187ea64d93c7 GIT binary patch literal 504 zcmbVIF$%*l44f0wMwph_XZ_YfHe;<-jszs4;YEIL_fUJ^5@|vAI1L zQM9dSd`rY6WrZk4+YIMfODX-VY5Yv~6H*&NC-}0L`M0WkWVLR605@(8;T(7HHul{+ W+QA2#ZH(4U58I6{xNh!4y#4@JDs{F1 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/keyman/atrule_feature.test b/docs/_style/prism-master/tests/languages/keyman/atrule_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1171caf3befe415924b4836e0a5267b056d8e74e GIT binary patch literal 370 zcmbV|(F(&L3`L(8$Ug+1yZyvIqx2!O&PtsQqm2Ijtdud@w@M&z$xZH&gE)E^>jIVF zbQ}$WO|iVGhzpixvk1bAvz{o#))5e{C*JDo5iY&roQgN9BgOT+8an#dTAIDMg{$&z tLkoMD{$)QJ8pGbOp{W6()_K1BWb`cbjEUHLk_xJGN$l5;{KPcM?F-+QW8VM( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/keyman/bold_feature.test b/docs/_style/prism-master/tests/languages/keyman/bold_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..58e731c2ce138b3843c1d308e265c8b46a805bdf GIT binary patch literal 1676 zcmbVM%Z}q95Iipu|A2DvDYHMZpD`M(u-&%V@UVa+M~1Co>ERpS z7*^IxtV^!vJD-8!(*`#F;ZQqEfpZa58kEsuNFyUpbA=ou$6?`iHBNCqEJDu+t&;o6 zSj9Te?F=59**iw?A>5tIJPGTbLXYO@avL}XB}vcxkEI|P!-12uah0THs4XQ?TNcG- zN!>$SN|Kh8b@ez1`78q`h;kS}4z(@T0I?p{Q(B55{+Z;Y)$yjiV>ybUU6}*>FLcjk5?4$u* literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/keyman/comment_feature.test b/docs/_style/prism-master/tests/languages/keyman/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3056bde85df55b4101988d9a4566142a86c17673 GIT binary patch literal 210 zcmYdRaLdo<<>E{R(MgF#yj;9ox?}*5zG$F1(Mrkrxw)x%B}zI9N?=2kVs)^J11(dE a<>dk*@@;g^NKMWzR!GY)Qh-`ptOo!Y+bzrh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/keyman/function_feature.test b/docs/_style/prism-master/tests/languages/keyman/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3852ade1b21dc2796c4e7955b5eef22b2f054cc7 GIT binary patch literal 784 zcmbu7K~IA~5QWc@@E<07;etj@dhlcjwt{RL1KW6jW>XN-O|h76jq%^h>;g^Wc+tHu zFW=0BeQ$HG^46}Cvxea(k=dNvA_~_ri59|8Q_Fcb$v= ziXZ#xsJcD#f#rB_w)TI5f;9!Bk#&chO624h$wvoCICx63$z_sS-wRg$_RC`yW z5})Noc1#J9G#xV~=@4v0TYbtMpVYs?54Ux-)6jGW*wtU!hfj6f!lrHEz0+EiZ4GbT Kt7=qz&{yB>JIGQ1 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/keyman/keyword_feature.test b/docs/_style/prism-master/tests/languages/keyman/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7bbd2303ee927687fe9a95ad4522463816c9c0c5 GIT binary patch literal 715 zcmbVKL5{;93_RD8|6p-$_Y?b!Ce#9~DtES{t~Biy_#V@%(axGX8i zk+~pb`@e=z--Ua)6V`bnA;@V`p!T5%5- z6n?nUka4pjPosvajS9Wn+R)s6R&?=QVKs+_!Xp^P--Bwv5?4c~CaK6f_0|7-(uyg` Yn;t>-`|*E%@i1qSF{3)C#~kF3KOaxgVgLXD literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/keyman/number_feature.test b/docs/_style/prism-master/tests/languages/keyman/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c71eb6e02d7125714f1488521f02244fdb8c2c19 GIT binary patch literal 376 zcmbVH%?g7s3_dTAcL=?%8|{$!0K(qDlX&Rb4rTs8Rq*kbZaqy;ek32{OG3VsXQeWY z;O;q-);i-vSZ|6+s|N!i(|H5}!sP(sUWIU~#IW>FAA}@Pe(#D}{^{&vM@+u99rn2+ z{(Ns6=?_sOa2$W8XuN$-^cn*#Lu*IpB{^@~-gJ^0znWB#861svHXYf<1Y>6(D2`9p E4@x&y)c^nh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/keyman/operator_feature.test b/docs/_style/prism-master/tests/languages/keyman/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..bc439e8597c407663c053d5661c7698c70b9973a GIT binary patch literal 282 zcmdN^u;b;5QPAP#(ooRk<>KYiB?Ex;Me}lTMl0nPq!uNXw L2_XV;eX$+@Ft$N$ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/keyman/tag_feature.test b/docs/_style/prism-master/tests/languages/keyman/tag_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2aa760ae329bc585659bbe04717c779ff35ba55e GIT binary patch literal 320 zcmY$%POZ#M%(LRDJ2xj3Vh zN)pqRbQF|SptdW;>YxgPoPsV0br-rY#0ZchvCDv6tQ5=31w`aK+c_gOIlEXPEx$-1 RF(*f%peQvhvm&)v4*>gpO2+J@U~~y+aEl~4m?*^70U-6*4^FK!poQ_a{@(X+LZQn0p{je?vfJ3 zlL0rQHN8X1(UCB6DPUDK0WePJHC7c>ng4LQT%;MYwKh z%G*KLx-OpDOr$^Dx^Pbo=?TcRHx-FIkdo>nJ&ENzQ7oALh1I!1`d}!p8Z@$Hix*m{ Bm;nF) literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/kotlin/function_feature.test b/docs/_style/prism-master/tests/languages/kotlin/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8bfd2b226109abc09d80b71513426fab36a42739 GIT binary patch literal 426 zcmYex&)3l8|kLq2e-(hO#imz-U}SD}b*D6gMxh7Nym+$D@^2R;z)g2I7ExFQ?d=@_uF#9%we0$P+&RTmMjOU?T)#q z8%y6|s4l?9n2IZsBIdd8j_Tb7X6?Jtm2rj%E`u1;b#bw+8&k{((TvuyByA5xV)dA5 z%2{HNh=-Fa4r9V^jqWOA-}#V1_*kzPAB(qa{G)h{md_;LCLoE)f=?CMojn%Hgx_^Z zYIA@RCwZ8W25g&3j2>PR5p;4Rc5BlXSa6i!ir+k9dL|lc!0zezx8;)-kKh>9wbP}F z@ag7N<%DpH8!zr`6O|i+*(4Qs`V*%080?(tWfB9_m#PSty$kl7?I5`#xS5Qt02U`f zJ>1G{DVAB&9Y*mA%DTW)?BBWBE4n#2VsLuyyZdaJVpL>tpC!Qb-R~cK%PbjDkuLc#|zgKwLQ7gpE;^y{f155rT$4{i?0QNW6IeoQic1N0%BIO|^(NAU*;Sh{kZ}q_*BP#?tG<+9U5Ih^mKa^Z;OSWmf+p4F2fKW=H(jtfoErOr#MEekuTpB{Mnc3YWGn6RK zC{ZP6@-0tT8;L=Z=!?hMxV0pwC|bhp9Cjm%7HFr_Y&Qp{_gT_D*NG|)IOK#IG~p7H zb5yA|*_=fyhN-JK+f?H5x;Jev!a(2wq7H4av{CbE2Re&jb7&rC9vC9|7>MShAfkur sJhw^FxNX*T-(cS2)bt<{OlXz52ZVe`2YX_ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/kotlin/operator_feature.test b/docs/_style/prism-master/tests/languages/kotlin/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..12f0cae315bdc6470a6573d2c521b0d6639ac962 GIT binary patch literal 1045 zcmbW0F>iw~5QXPj@_%?(f&s^7N7xMg8BvC)O-0ozM9@YV`0;%nx^OoIpDgp~y*tbH zd3X<>tO*E=gpjRCNF_)sRE)&nPlqm{MayN4n)84mAtQ4+V(h`uTN5Li2HR%M`TCB} z>mBoA%{qN!ofiC-=}`!4KJgXb(VCZ|n{Sup{4+1^0O#H5fF06UqE48DGzX0p^R7t9 zT0%vbRHkmHl4UB5DH(Z9+I~8ju~Xcwl(lNUS_*4bI7s236fTFjJJ_t|8>MjUCDTx0 z;^t$N=BANs+cYZ?#`CT8I$hqrR(#A0{`+Z- Ef3}hkf&c&j literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/kotlin/raw-string_feature.test b/docs/_style/prism-master/tests/languages/kotlin/raw-string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5a5ca3309bc4130360411462ac9f649bab1e15c8 GIT binary patch literal 343 zcmbV{OA5m<3`Exz=ng{bq?ah<5>^&Y=#M}Qa-q=Eca#vwrd>of#%SijjA{%Mo~{(p zA-k#!`Lk^yL4X6wVq;=z4@_{0>6Fy-yR9#O&UbAjsqK#Tee>HB2`wT95+PUgKV)vR fMF*Ji4SLxG3z7-Vzjj4zc=yGRuBZ+oR*!LWo9=_$Xr3! zN+Y;c)v?FuqBRlRV8kS(3&gcXdRg02)mB0N%@_PRi556U;f{w9MiEAbh-M8WR%xIC zp=>ljQ4a&bm0CFkenrskC>=_n|vD#hwxh(Rq&PYwpE(V%bqyV+DSPuZilq!P& literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/latex/equation_feature.test b/docs/_style/prism-master/tests/languages/latex/equation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..40caeebe89da3674d8b3083a0271eb0bfdf28caf GIT binary patch literal 3826 zcmc&%+m3=T5Pg<}e;^GHtI_?5{fw3e)T%^jSHx_L;oo;!>?jwdSVdoSW=_v^=1eVw zD=9aXnDiA?{-UPq~&z!FlapwDDoF`Hg3dqIs>S#i4 zDB6)}oNtgw8%Uz98bKAo_ae@+_=E)LKoa!Sh|rJ7c$ciNHI-I1I4No*8Z;>ol^%Eb zE)g8}gN`PoM%6^Fp)))~s*8z47rRD-DBqhs@lh&M-y2b4L?+XKl2A<$iK1yE1db7b z$s#Irvuw7IX&Q?qEGJBl9nq^tgk?<3Ljv$NJ^<^%WaInk0Ma`l1H$_$^~kg6QA#)r zJ!@n@Xi~yAC99)YsB=^HM4u&S3bglE1NQMP=X=~30NXSQ>D&Z?S+upTXV%`Iz} z*hO2r3?DqT78`Wdw|qJtTwR;AF524ge^A-S+w(pBZu!K^%1phj{A~DQdk9uC3rvZJ F?|(EVcYurl7gj(^n_H>Q-Zdh_55Gs7^=jcu<= zW!!Wav0QR(g;^<$$Ze_Wwc@gGu`v88Y-ua;;q;k%D8C!7<<`3+H!jm401%%h$K{l?l>d_LT#@Oeku5^Dr*7am`ty~oBiASr=)w2{0K1> zEGS~BbV$m(&q7lAu7W+ben`;L*dZb7KN6VpUsMPhMk&mJ1LGrxa~CP{M?(r_$UGF9 F^9z!^tPubJ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/latex/keyword_feature.test b/docs/_style/prism-master/tests/languages/latex/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7a1b86f9defcb9b21947a8f81495558f5566fde1 GIT binary patch literal 1035 zcmcJOK@P$o5JlILa0kM=H8Jr99)os4>7Y$35TH?Gyt_~}qSl3tWjD;9KVf)NRIqK- zS!!Kzd%>sxRVR@JnM9)Tkc1ttpiAQ3f#IU%+f-C*(eFWd(Q)V4YGsa@KWNv~kny$Q z25kAXz$l+^Fv5sov|v>BO87=Anh{zQ!_#P)5k^f+^!$-Khufi`h0{UXI_hsD7?och z@>l;bs!{oW+{5T+bdO&-qy2!!jQ&s5W^D3;Zs;=*^F|Vj{plFifvFGf$}cXz6N6D1 Wv7fLld92&)K(vlXZOMHF-0})z8#hJ( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/latex/url_feature.test b/docs/_style/prism-master/tests/languages/latex/url_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..53e1c0185959f31d0c70517e494102091a1b24ea GIT binary patch literal 265 zcmazkEy}6RC@Cqh($_C2$}G;!D%MNR&#mR<;^opM1Az2J^Kx-UE2Wj@C6{F8=PBtZ zD8fq;p1Ua(1yoT7Hp2 JXpm2_9so6eLE!)Z literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/less+haml/less_inclusion.test b/docs/_style/prism-master/tests/languages/less+haml/less_inclusion.test new file mode 100644 index 0000000000000000000000000000000000000000..fffe2ca74edff4b7f98131b913ab09b5ca9c0325 GIT binary patch literal 638 zcmdUsF>iw~5QXPj@_%^p9QXk+cInWu8)CSUqp@o2$Tm?U1iw8tq^XpuOSXD^pWnMX zy~=P1QaqKtbC^)RldmyLA;pr^>Pms%ym;W{+$QBVs@Ep6FLJ)xA!|RPrGb;E*6FI< zZ7{ImE;^sTtGteCztM5DT^uQDXR~j*c?SKZZ7~M=SOfEQH+E;L{{pjW(*oP9M%}rV z&GjGeks{qC#RDxC+4p?l?lYiw9{12KXHJw<_rp;Bpk_8 HsOWX!ZIOU2U69!Lg(^cRiHHaZN>aX`*clkuYI(Z5XPu=tIrpMF z+ZZM64#(5fi(ZTyhPb(&n$bF6Od9Dl4nW#Z4EklNh>~43H1ngA(>G5J$2+7#$Zlod vYgo#vi;IC-RD`KUBiC-(zv#qKRr7VX|8;qo<(a|81k@Yahu{KS_1)~hSC~mD literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/less/atrule_feature.test b/docs/_style/prism-master/tests/languages/less/atrule_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..333d672217b90d68c66dbff3263f5be27236f9f8 GIT binary patch literal 469 zcmbV|!3u*g42I7Z`VJu{1s!9%c@p**(nHY>%Vw3fvVr*SODh{g@M2GC`0^+JU-hch z66S@oYAs!3l`8UV>@J(>ti&P7d zM_`;x<0t9$V2HvQ1+lp4F4PU0dxG$11cNSt8;LYZ&5Jy&;*3^G&d<$F%_~vT zQBcy?SBlla6ofhen;g(ZScO4aVv1t&AdXau<>dk*@?Gkjk(!)c3^cSzp*S-yJttK+ YCo?ZqAu%sSA-6QABoo4g`lMJ70ObKl{r~^~ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/less/operator_feature.test b/docs/_style/prism-master/tests/languages/less/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..70939949558dd7b525f8b0235d3eb4f962405418 GIT binary patch literal 235 zcmdN^&{fb<(C6ji<Q4a&bm0csIL^u Z%LPQ_JIOgCH95OjAuYd10p_k^Jphp(GFt!u literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/less/property_feature.test b/docs/_style/prism-master/tests/languages/less/property_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..85288c4b8de6f2435aa95d4672c7252e28d286ef GIT binary patch literal 487 zcmYex&nwX_Pt8ovD6!(@a;Q$r&reD$s#O4Tk`j}%(~I&;^HOxd;@S34fa|zCAtSCSO JG&8kW4*-D!iAVqd literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/less/selector_feature.test b/docs/_style/prism-master/tests/languages/less/selector_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ae82f146b6e8d2ff2b6c839a2cb5b083e97fea85 GIT binary patch literal 539 zcmb`DK?=hl5JlG!yu&cvw2(;FT?KlK;KCSfr8X9mltReetA;=+*|gNvIDY^9d8~21 zRbI6)&6Kce($39G9V*yY&G`sBt#uBSbk_NBE6ehbB$O0C97-suDamT=l~r7MvQp? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/liquid/function_feature.test b/docs/_style/prism-master/tests/languages/liquid/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4689ef6a4989e3d1a7103eb427d9e3d1140f3aa4 GIT binary patch literal 1991 zcmbVN(T>|75PU8Y|FFvQ_5PviXPizJ!Rv+=0|lJu`t{v~*mo_Pmy0YzW_A~hW(RXF zU{b;`gQ=58Qz}o^SgKamBv*}he-JD>4>tNjuQeH4X$;oT@Mb+~HJgesqs_Qts5D#5 z=4o_SH{(2=-(Ze6N+=YIg$g6|VWKjGEiTi_i;ppD<%0Fwj6h?rr`6Bsf>xfl=S$5l zX|l6G3 zHc<%pT_qyJvLRwv;ax~$8Y@dcNoo?>v?mdKkOI!?BzV{n>var21T0Za(E@QuT;T4S zCuZ0|m;adap)I7erq?m6b&eE&@1-&0Xf7#>+fBl`0mo9kBc*ui(J{O=tpK+!ma6>I z*HXaV>0?oDeF5!WAeHL2Fs6L83yE#M@sQ|-BGJuZ1cEI`fSZvJKFEn(X^d|+CBWoc zGP)a?z_POmFgx1=xOv|rZZ|{XhmUFYI416X`Iu=2Dph1l9n-qU3ix5VGS^-B^r{s- xpSR-g7qq_$EHT6G$K@Hm`4YjtQ?&JF|Mp@sUA%N7(ZvXKt%m9rM}MES`U~4Wg1-O& literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/liquid/keyword_feature.test b/docs/_style/prism-master/tests/languages/liquid/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..84ffabd96ac61826afda78c350666f562f93755c GIT binary patch literal 985 zcmbtTL2kn!5IlFK{R8qj?I-$-C7D=Sw-z{q#}J&Of(@xy)nNO7W>L;YW0eIE6JK3Usfm$B`B|0P_3KpMGg-HN^wKNOJnOhqQ#r<#&1JV%KV8c&r+LS54=2#rVO1tsZ@ng11(917mOT7v^m z7?;0TyiESt8Z(AM>=;Z9QTWvf&AyXWCdm{O zZTK72iXUp43u%@Q-=tX2s*IHdGd-PV=OJQw=HHBrt`2QyC TuIJP3fy*@GIF9&UiO1#*IC}Mk literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lisp/boolean_feature.test b/docs/_style/prism-master/tests/languages/lisp/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..35d2ac1f3abd93f17fc30d2977f09dd52a1799ff GIT binary patch literal 444 zcmdNW(d6aQ$ji(DQEB=43Lt)Ti9#$d7cZAC833d&nwN_+TB)EkFS(>Nu_QA;Pf15X zNkb`CM&~q<>KYiB?Ex;Me}lTMk^)f=jNv7l_=>bC|QF{REp*00wVH_bLO48 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lisp/declare_feature.test b/docs/_style/prism-master/tests/languages/lisp/declare_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5aaf52fe2232ca4e836b27c7d7ffa372e4babede GIT binary patch literal 405 zcmdN$Nlng4EK1en<6R zLn&5AAzBG)A4mko1dF4o)*%T#(M4-7CHj`&oOi@f8F5`H)Vkrq9=Zw_k>|%wq N{2~Qt80hhG0RSofXM6wv literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lisp/defun_feature.test b/docs/_style/prism-master/tests/languages/lisp/defun_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b9c1f7fdc5ec99052f9cd4bdb56e89ed7d848f4d GIT binary patch literal 2491 zcmd^B&1%Ci3_j1`cMv{=1mZ#a3VRHbgOj*xNg5X?S=rl9vdJj z_)cl1@|GXk`9vsDpW2H&YgZXZ82#fwlq7kJ9nU+;&l1Wks7zCOPpSI>e2UILhEL6H z5&ld~?4P10sP$4?n!X0)EQaF=9>X@^R0rd>F`i@(RTm;m;LrtEdgCyR@3bVsO7Lq# an6r#lh7FsBB)zwzDXJDXH3xo$c>MxR7w236 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lisp/defvar_feature.test b/docs/_style/prism-master/tests/languages/lisp/defvar_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3d0b6ae03a5b26d45c2569ffb19c9cef44f7b7b2 GIT binary patch literal 1099 zcmcgr+YZ7Y41Jb_e;|FD$@C}u48j9rOqc0c7-;-^3!4!aW8!7&TTe?*TTZi5S7&Ki zWz3qA?BTIO+5}-}PdQ^unYMRHMETyCQv&R*@m=BvGGvj3!U~jZzOe9)Q?laF`BphE zU2R&(8Dt=G#$gx&0gg_iuNPy>5FT+Bldz9k7DpWdI2Z^fB0ed(#**_;LD+C;ayrF) zl%G Dl&?An literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lisp/heading_feature.test b/docs/_style/prism-master/tests/languages/lisp/heading_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2136495fa1132b321d4c45a5b5e1b4635b56baf1 GIT binary patch literal 176 zcmcDvwpPe6aYid;q$Z|h=A|p?C@5KjjZ})| PNXsu$fEr$`$IAr(1z{q9 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lisp/interactive_feature.test b/docs/_style/prism-master/tests/languages/lisp/interactive_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f3bc95866b1a8ce19b91d24114bdf63643590e58 GIT binary patch literal 441 zcmdPM%qvMPN=z=vEKAko<kO;H`!zGlN8B-LKhs#)Au2@RK%{e1A WIlEXPEx$-1B{exGu_#rKmkR(T?svKX literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lisp/keyword_feature.test b/docs/_style/prism-master/tests/languages/lisp/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f47119274e2fad4b5947750839844465f3a9208d GIT binary patch literal 2597 zcmbuB+it@k3_zcU#6LuNN~>l+vCnAxKnYn<8Khi#`TH50ZPKJoRh<_*zMNP|ust}F zyOk6mq!^sJS*_gIjBuaV)mxPr6^%~PEs5*Vc=TP5))~}_cP1rD2)-$h8Nz}_BN>+%E_Q0qPi9<{K7A$34Kf8x)4@5T z>6y{w5~=>#dga_5L)5aERt!|76$M)gJYb9z;}e$@Qf#Go+4f8EIv15~@cpLihkn25 zw*AT6uOUv=0xz9xzam#)1wy}zJ9y8zioO~iLVkbX|IiPS@|usBnTYl~GAWi@Mm++| z8u0Ki8FcKJ5cu5_7ePmzNr5K8B!tKWKx1MOYD;4xYBOXau#GYqtpPJBwRJNQt?4r< zZCo%Zv8r{#ON3?CVbP#40k@ bytkv#r_|LA36`I(tsmV*MT@IRdX?f6@9OV0 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lisp/lambda-feature.test b/docs/_style/prism-master/tests/languages/lisp/lambda-feature.test new file mode 100644 index 0000000000000000000000000000000000000000..032f1986e77de664e47a16c91653c7174c496adb GIT binary patch literal 547 zcmd5(K@I{T3_MH1A4pG-pr7y=ghQ8Q)vODKg&2Qt2_Dp4FM6@z(rJfjJMxTE*Q1b% zp5jbChFa4RU~Hg6aY-{C1HKD{y9i@oRtdZk)vslW1P- E?v-1a`Tzg` literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lisp/lisp-property_feature.test b/docs/_style/prism-master/tests/languages/lisp/lisp-property_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..62e324d122b4fae509f4bc63c223a8573ba7c8a9 GIT binary patch literal 239 zcmdPk<+4i4&*$aRaYic@l;$OulqQyB=I1HtC@5(t#p-~?b25ty zbPI~|3sQ?pDnT+J8)1@YnlzPSdAWdye787fq$Xz8$h3L{h-r+!{8VA3Q%IXY*gCTABbq~#YWK*Fk6kCzJo D*fGpN literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lisp/punctuation_feature.test b/docs/_style/prism-master/tests/languages/lisp/punctuation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..904ef79f48da1b441f1c268b7302632a3d0b00b9 GIT binary patch literal 323 zcmdPU6RLn&5AK>cLT)bSmWB`!9XkISPXr+SEyyTM7#FEVXJS80kB@Lxm9k6&| zX?{s+if(abZc=^@NCs>%PFaw9V3KG?YAVI@asd(fE_KdGP0lV>NXsu$fH+G5;;dpl GUM>Kh@juf5 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lisp/splice_feature.test b/docs/_style/prism-master/tests/languages/lisp/splice_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c80cd73da5934e7dcf8b9ce4a4e55b1c21659df3 GIT binary patch literal 253 zcmdPk<&CA6ZtyEB&mt0bsSdy8ar=+8xq@fh60~RkX v$jMAj1qp#{#3BlE0ZbUp5KX06UM?Ua-)+trsma;J3TgR83J`}B^KtH?Y>l4Nch}it*hvHa0SeoTC*1 n^H0u~2?=U8Xnr=Bn=$!#Y3gf$)_E|)0E?Y)H@=^}4!IOhY#(}i literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/livescript/argument_feature.test b/docs/_style/prism-master/tests/languages/livescript/argument_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c195da9c5d190d0ea3a1b8b046c0bb7cf1e0022d GIT binary patch literal 248 zcmY%6MVnZOdw6x^q;^opM1Az2J^Kx-UDbD5)vM>R<{QU==mQ fDhhOxQY|%wq{2~RI5>6J`l5NcIHQ%4^K)}k^GcL- z6qNLVwkgHxU+P$w$I@^S$Y`R;ViNKMWz2AWo+0CjA!9ssK@ BJ}3YH literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/livescript/identifier_feature.test b/docs/_style/prism-master/tests/languages/livescript/identifier_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0b9fc09eef4fd3bf4b066de5d057b08f7589bb96 GIT binary patch literal 456 zcmbV|!3x4K42I7J@(!iv#e?_+`WR!3wo9=n4YczxpWb$YL#UU95CY#H$p3p01TS(i z>3mu@vUM%e?53_Y(>|AQ3{9DpG~uRTrLpJ;n1)P)F^pfv15i2pvj0bF3xMx_-BuAiS{ z`=wEeuQ;NgS8H?nTa>QjiKEW*pthDCVQ?S=Mv%;oZ79>}ZWC~LumhEBrV$5p4O5Se zpF*0#kgXy3H5!-$ZX1N;NX$5z^thOp#nDrywDIV6c3XO^CXIL6tkf8?OkHf1cRs2p zit%GaZZi)#sM%ojOyhF%_Y_nm^>^EbYRf0!y>z-~QcC(c5gF(JXlCxg<~@Q677 z)d0yq+3n5J?@J$I)ZlR9b6|zW>sq7ZB}rp}><(S&Z3~RVZT4@A5S`4#dsWEof=5+w zT|uND+b8%z2_F>eq<1S+59(RtU#a){o@R8f?FIN3VK?~oVO_RNPixWZ3%hL>1? zuG(oTekm@z?1FSw-~&Ja*&%arcB1*55I~|6arWL$?M^FbyV1A*DfF_&<)(q!I*>}R Jf-sEc`5PJMc;x^9 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/livescript/keyword-operator_feature.test b/docs/_style/prism-master/tests/languages/livescript/keyword-operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b6f3d90ad631fb5a1702a041eee597c8b4e2e67b GIT binary patch literal 1064 zcmbVLL5{*O3_PzT{~_cI`w51m`&8w8>I zUlOzGJP{9SAauD$IL!$CLPMbE#8MFk;TuA_wZArpZX9(j+bFfmXN{tEv60m$m5^EI znkK4DDH4`4^ zm7|67Hjrk|i*cGgv>nuAv|4x!tCEMex_xF?WnEVG(X|^~R`JnXecXD>V|;*l@SL@G soQBaJc42nWMQt9#6yf2jm3TzZ_j|$YFLb_^FtAvy!%I0~RZjW+2a1P21^@s6 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/livescript/keyword_feature.test b/docs/_style/prism-master/tests/languages/livescript/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..123f37d5fd95e1bf5b05cf99ee9eb7a74d8e0e78 GIT binary patch literal 1360 zcmbW1O>V+45QW#Z-e##kB47v2FxKJU_vP{(j&Cwe18X-SL!i>esyD=nzy!j?D4-^B1 z_EhzFp`rwYFM+uNbYTo?3ot~DAQZy*?4?b~pwH6NA&vHwctM{&^5%B$N^^Ck^1u&t zxTA!U?TR(@#guGfe(CBgZ@9xaD4sa%m*5;#^%BFOdHUfnrdLjQUVWDiL%;`tc ay!J;LPbjf_y}9U|AFGxXreQCAt#|^NqIF9E literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/livescript/operator_feature.test b/docs/_style/prism-master/tests/languages/livescript/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d9565b24fdb64b521805951faa4ee57a33f7971d GIT binary patch literal 1763 zcmbW1!A|oq5QNWI@;j^}C5MEVdt{qPJVr&N0!386^cNM5k)NH}0Ec$xL}k0lm)Tio z?RYOyp1g}$VwD)tBJMg|Ea)j=C}kT89!y!L2`ziqb>6M3ti`(|N!!*FZbwO@_Mra( zph~LR0cusSO3IS%y(?1CvJ_m8f~c`zgy$f`;N2|q>|HBu>s>E>?_H3PB~(lx)Pjo& zZ9q`iqN)Ibi3+l0jEgLbcXxsWNb!fC#_hbj*)_+P!~f6Y>+x`IZl&2bkGHaGPVa~F z{`0h<_>C@gPk>wag))=qO4yI(MQl`PEjy-N7{s!YR9I(9H*C^P)YH z>uL?w!j#Dh6J;DKHLsLLVmeY7s8XqQCCiG>fEZNfiVudmuEc;WNxEmzTGFe%TNopT zg&L9~vBHfc2|ipl#lcQ-P-f~oTj8wC2wN*`l^J1gg}pK(BkPt1?_ E1^$W2C;$Ke literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/livescript/regex_feature.test b/docs/_style/prism-master/tests/languages/livescript/regex_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0369ddb83f6bd994447e41f5bbe6ce3f7e36e176 GIT binary patch literal 418 zcmbVI(F(#a418`O|4_0wndT$>jIIwl>J;fJodXp=-lUsY#ix}%gv(v-5<0|a_q*ii z)CJH)pcyew&>39`#GUc}=~Yb6?T0g!5q1Vd3VOZZiOzyn7L)J%4Qqo`#zI$rbuAJ# zsp)f2DW<4W&0*2~N_c=OWGEBau#F-3{wkKT*5ssc9?A>;BffVo*+j?_odeB(`5CrH O-<}6HNG9LnGHhOo$Yp{6 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/livescript/string_feature.test b/docs/_style/prism-master/tests/languages/livescript/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..313a1311a5c8b90a6c92b693f10a4d496b37e2f9 GIT binary patch literal 546 zcmY#a2LWC#AmNsu9|NS45{r;Tc)4JFkQyKcs{)BZ*bsSME?zF1Xoa-=dS$d>hd6DZEJ#Y13;@y>&CA6ZtyEl6l$n>Vq@$n&bSw}k#p+;+ zgWQVn5>6#WF?kSAVpD-d3}P%u3l2%Bfta!wVT7q91{7r2gn{;96GjPFrC44rAR<3- ToikFCvx|WdS)>37;bJ`iM4y95 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lolcode/boolean_feature.test b/docs/_style/prism-master/tests/languages/lolcode/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4409cfe0732c8ee1832677ea79e890ab1bb84577 GIT binary patch literal 197 zcmWId^yB4nbM*A#<>KYiB?Ex;Me}lTMk^)d=jWs*<|*kYD203aDaGobi-N3Cisj`3 XBJ%BW&PYwpE>=j(FH(S7SgZ#CpyDW) literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lolcode/comment_feature.test b/docs/_style/prism-master/tests/languages/lolcode/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6031e27b0200d69ff615866e5617311c28a29c45 GIT binary patch literal 269 zcmeZw3JF(8%g^WKN=htJ2=Q?V;^pFmiUCDff^$Y{a&|G$e?ck!K8@Ngwqb7ca&mzxqyg#KRIWlCTAA| M!>LFC=9pqV0H}CS6951J literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lolcode/keyword_feature.test b/docs/_style/prism-master/tests/languages/lolcode/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..bb59d25f0066a31863103e0c57034bfcba436670 GIT binary patch literal 1498 zcmbVMO-}+b6g=Cc|KVjXUeLc_itb7SyEWTIT)~4uhz0@)YK;Hhd0jRkX1qv9`#SUb zwjVPMGICygY0bD9Jy?TL7Y^Ip8V@##L(n{?M&sHVS6NezU29D&Lx>}cTs}rdlq$^n zUX$;A^uq~C-TJc3krXzaw zX|V!CVcIk<4T>!xF3RQ zGA@iT#~Wl!^T<(g1g{C^Dgvr32;Av}5Gou3cS`z`pldv8jZEsqM~F_1gy`f+h)%DB zfPe{_6islIIDw&gjv}8B>Iwq)HsMt78^ZQRB2>#10IQKy^&Wwf842FGlMrfG0{8v} zCG%|kxm$j`?RRP?7?k9nIGnJsJVDbNKyZBy{(z|@`we7^!(yk)(Em4-E-%gbF%22Jv$7a_N!*K>DJACPph|r&gBd z7o{laC@2Aq2V1BVs{@wGNlZ%30ZBj{024;l0do*c7FiR}fl9HwTtGy=E1fe^le3F~ MVNj$1Ho9030HCiwR{#J2 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lolcode/number_feature.test b/docs/_style/prism-master/tests/languages/lolcode/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..060d6d29597f3c7b8006c2bd7878a67b5a0782d9 GIT binary patch literal 198 zcmXpp;^i{dGc++YwdCdE<Q4a&bm0<(1|pr4}jaC@7g2DaGobi9xMVisj`3 XBJ%BW&PYwpE>=j(FH(S5SgZ#C?_Vbs literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lolcode/operator_feature.test b/docs/_style/prism-master/tests/languages/lolcode/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c55dcc18b0e7ed1c08c38e3fd8de446d6b697cac GIT binary patch literal 698 zcmbV}-wJ{-6vnR`>>b9gt#{D;H`1-#Mud1FVFU?=_Wqx3`%$RbWbEq z8i96J(zT6Eu*!>DDcPof@By zp|52a{V@^4U@JyuqcOHvkHJqE7+T`NAOwaHh!7<%R9;as&h^Re@6Giwuv^!&x^3AU H@vwUXQ)a4q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lolcode/string_feature.test b/docs/_style/prism-master/tests/languages/lolcode/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e3a25a9cda899dd9e29763732f8162e9db71a4a3 GIT binary patch literal 608 zcmbVJ!485j3_ZJK|IqYCf_?x85Bdux9+1O85F*fIn;J3xyWJ2m!GmGjp?lqXYx@wT zz=9}Mx{o5HHxva7M(b2{1MpzrIo@Hj+k+$eK($ApiQmR=HBS-Kk5{I0giht<8_`yJTZBOObW4ila|EhGQ z(mMAQ`WgQr<2$6mg0Dej)HHc(otX3IZ3`w+@R{$;w#>7$fr2#j2AL3Ul`UbY-uSQj MSsSQYuw~w?UOYvUr2qf` literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lolcode/symbol_feature.test b/docs/_style/prism-master/tests/languages/lolcode/symbol_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7f1534a175b67ab408bba12625fc541148f7965f GIT binary patch literal 673 zcmbtR(F%ev6n$>6f4JOd>mOzigrqR^L52^RN}@H!aGhA8q)I{{~$t$$diPjR+VIEHankY3lgsv~E`cW2;kCZ9k<_Qr9sY(C< literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lolcode/variable_feature.test b/docs/_style/prism-master/tests/languages/lolcode/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1066c33733d2517d04a6dae32b967332cac6eb61 GIT binary patch literal 168 zcmeYa;pO7x(j^0c^hNV>aYieZB^G5SCgr3m=_n|9hA74Iasd(fhB{}YCTABbq~#YW Jz)UXI0{{FZcSp|~mipv;W(!Pgz-mZEgQ z8Yic_mu@qZ2!X>cAxtJhDwQ=Q*=b$;kmr-Z4Vr1(Xg#4I(fxg}rzklnZo{(7e&s#m zUE`-*_un-knqg&Wz7@DJj=tcvE8qd|UW4C>-&tkmnffpA^KG_|#I7N-N}o5mXoFI$jzY9j0Z6bk5hkvIRa6rwieUu8$yoJ}U=l9JRAV)`mJG+>G>MlhmXd&V T&PYwpE>=j(FH(SoZm}K!A>@6y literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lua/keyword_feature.test b/docs/_style/prism-master/tests/languages/lua/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0020acae17c08c4f82ff0682ef57f8ef61adfee7 GIT binary patch literal 783 zcmbV~L5{;93`N(qC!0Mx#m*+Jw%*IwvKFR?Hj}$3+iuk{u1qC+(8lEADnAl!U8U{SL~Rz2 zb+;S#(p>wT^J+V$%LkvIyD^<^VUgdb))dY|h$V&l`7iB%2zXKey$1i_JfQ@30 zt&WJk3ky&Ni+&vtzQZ+X+9 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lua/number_feature.test b/docs/_style/prism-master/tests/languages/lua/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..913b5b8e0f367e55e89b1d10a93e58957abb1d73 GIT binary patch literal 558 zcmbV|%L;=q5JlGwerL3F(PU)^WH^@_m}8_s zD@CROAuoB5LNh@JIB^#j#FkYGM70A7&3oORc5UZ)G#V;?S2la5)G-IprG?!(M?|}Y zVjojeigd=|UMM6m;i%-&|aG9isE2k0$wp{s64odP4vJ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/lua/operator_feature.test b/docs/_style/prism-master/tests/languages/lua/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..dec283644c16472d2fe9ea05dcbac3bf6394cb21 GIT binary patch literal 623 zcmbV}Jqp7x3`XY)bcYXzWXO+w0ozND5fUgRrO+WI$ryb0Dno}>o??VBkN3%7HRw>I zWExRnN5SOa9FvEa3QQ4EN-hCGdP0(JEfZ6B;vBi2>C&6|JuSCwUQ7$qn4!fl>NKh~ zDg~)&qxLF|c8!YMG^agxF!ik0qR+9A3r8J}IhG9{@bCLVR!mw3Kjgp`zzP`JlwN{!YV$|7Tb^@~iQb6S_ zxXalm?5q@2*ucL)oYwS`Mzbd2wT8I5uAGZ~h*Xud7KW=574kQlGGh3lGe$M8>)L)? zDWotvmK5YI#i52_^pE}qg#t?tV6kE8Vm4j>*FFop?Ku-05(+u3)?0thZ3-^Cne)!r v#CWGeAa0%BLCzWuc#eEJGDhl8?=pt3E-7eU`=@cbx6N}E8L7$H#R_TpMG9a~>SpFClq43VrCFZ6U>j40y@mZJv literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/makefile/comment_feature.test b/docs/_style/prism-master/tests/languages/makefile/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0e0c6c43589f1015928a1437ca51ced70c1da70a GIT binary patch literal 249 zcmY%9$wj)Ic1QmhV! p7}Q!^QVKCKF-0+XK&L3h@^S$Y`R;MfNKMWz2HIDo0CiNc9snklH`o9G literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/makefile/keyword_feature.test b/docs/_style/prism-master/tests/languages/makefile/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..dcbbcc895a00ae7ed835294382ac99b4de4e8e68 GIT binary patch literal 4019 zcmb`K&5q+B41muYDer)C%1G0BiG7S}4m5$*Gc06)q_c0oHb3c4BCWLR9#UfC5656I zqtalNP$uBRj!M%Lbla%!$@wTilMHlHfmUB_gD>h!9Ka4{9+fEnZQ~Z@J)mUru*j%H zSXDEb(>Sv&++~vS(l%|=%W({|*6=N~b1$Nor$D;&Mru12#YqNb3?_Q#;e0d4FopRPs^jQ}xsP19s5L-= z<}$~ZzHO==+}l6Q0!D6LBYlV0cr>uW=wx97){}`1 zSPnKWUOE`LVEJ5SqNQ`0iIt8Hj?Ik90w$lRtYAXbs)P%NRSgp=7e!1k$Cc-~C}Z-f z)^tp`S`#wiQc20h!jhB=MI|j4iz;e17Ts%@V5uT!VwHlPi&icKTsSK8d8);9A7NzC jedcetwt4@b+s@C68b0X`spZ%l%!;Ih@0#7Qe zrLc?BN>mWWAyxV3M0bcU} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/makefile/symbol_feature.test b/docs/_style/prism-master/tests/languages/makefile/symbol_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d1fe40b5d033b5e7cf1593ad9a1f471e132ed59b GIT binary patch literal 368 zcmbtP%?iRW3_h>WcL-sE!t?=l^)W^d-Rx$uHlxjiy}jwY34&-2;e&iX`P{`bv|8J-;g(^f1Z>mfI5$9ZDP}`hVW7y?M;|BfkzJZ8Y^_gE D1ln9v literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/makefile/variable_feature.test b/docs/_style/prism-master/tests/languages/makefile/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..84431d07d0a5ee0634141e1a3bff617b2263b22e GIT binary patch literal 390 zcmY#!;N?leq4lbG?DlI=hDX|F5Gy;;mT)JcckiKYMF3xDBvc#gy#H5^5B^?DN z6$hnQ9ZXRb8?3@02Vs=}3Mxb^6_n;Bmy{-!Waj6A%+>&jDnT3%k{l5QXO;@gJVZYFo;hwM#p6%NBW{<|3nDu;9|DOMZJHwp&-(qB0=y?tRDO z*bh3MO}Kg~u*Jc$BkZJ*;+6&MS5^G2*H5g{_bA2Ys7}@~#d>M4Dir;<;PpURR6hY! zTTKQo5f^_3#*6RxqS*#tfbDGDsO2%LaBZ9S_TJ+GxlPDFg~Dn*Ts5UzIk1ko=yO;p za%d@@m~&mYm!7(F!YM?&&wq?*?64lMdTb} zB=Qn-Q-Oj?R&W)uIuHe52f)+=H58QQC6|;YmSpDVfix&9K@@T-L7b`t(iIyEBtZla hk?(TnjMU`pVuiH)A_bVM6d?Xk$jnplN=!-B0|4-^M&1Ab literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markdown/blockquote_feature.test b/docs/_style/prism-master/tests/languages/markdown/blockquote_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3d0a4dffd51f084b1cdf3fef5c52f4e57cc590e5 GIT binary patch literal 272 zcmcChNXyUX<+8Jb(h5)pFPAPEfR~GxE1H*!Gg>JrCqFs6ur$9URY^xd$xbO2NP?`0 sDT>Kc(!r*L7&QtAMM}I}u^{WnaHTFtpL0fPa&|G$Nks|>w-)OG04Iw+n*aa+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markdown/bold_feature.test b/docs/_style/prism-master/tests/languages/markdown/bold_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..486e6ab60ee9a06a778045bd2e5d8341e0848f5d GIT binary patch literal 1300 zcmcgsOK!s;6kG?1J0Mmqa&m{N$8ao!9a}{~Pyya#k+b(b<6l}gaiTVsko<=6FuXAc z(KuHsF9an5-zn)UDbtLUlyvXi3|4(DkXWkINRR-)n1C|?FeV@epm+h~HR)_0cyRrk zl1^3Ids@LH=8?bHo2)cZlPv-4w<% z?1t#|vHrcg=QZ60(v!N|dNX?E(|PB!<$oN)F;YsvCM6Ht3S0c{{iCjqfi=!Eyc>4x i%>>6{9by8ttxOx>f?%#;>95UL>TkxBJuoo8qvQ*|BuHKW literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markdown/code_feature.test b/docs/_style/prism-master/tests/languages/markdown/code_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..948c50920c44bf5706369334a4a3e3058b027977 GIT binary patch literal 675 zcmbV}!A`?442I7{$~#y+Zxcw|5GP)N+nAIzbvLulsS+17o*pLyx=oxGHB$52{`|*r zeT>lhr2ETR<6JpA60t~Q)I5q_*K2hZEdZ>vY0 zz-6!kgr( zl;tc9NS~0nLl*4dlVk^vkVhXdFF>>)V~7fhN};U0^UMbj->$4FU}6&T19VYJBBK(r nPe*7m_$edAzVc26MxR6@#9NR=hXZ!jw8xqts0P!-j7ibo0sXoU literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markdown/hr_feature.test b/docs/_style/prism-master/tests/languages/markdown/hr_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..bba290d4ac521a42780dc68ce9369c331e63bfb6 GIT binary patch literal 211 zcmdPW(&FXf<+JAjQ%G+G;3%{(5DHy=J4(+kTf z;TTbp<1V8eB{51U#yP8z((Ze4J0z&waH3RA$*zXU3pGh7SWGd$1}%LMeli+C;LsNF z0Y4^P|{M01(G0ZVv1t&lyp!ewIPx~M`4lFg-KR{B(W$k)I%{_K>^KlBd9!f2uCVP0lU`da_6Xso#>FT_W?Xk;JLYU~s@P2uH!SsnnddD3v$wP1b#@O{AAdJn*N?bm)<4-D zoSxj`JVdzo{q@BjYa|7^Tt90cpIv+M&|3#-;CAq?y@k;EkiyEedhj%LV0+-g7Laa3 M0gX8VdEZI#4W3~hQUCw| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markdown/title_feature.test b/docs/_style/prism-master/tests/languages/markdown/title_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a06f3326365af4020bc0a84f6190235660cf3121 GIT binary patch literal 917 zcmbV~OAdn|6h+4+VGjhR(!}qKQJ0|()Mzwqv_afWchilPkC)iR%FOx zJfr1AO`s>1@=^#cDb}xpJv8r-pYg2M{G9qqOoiwM#h5Xi=ef6%OhWsP%4W;^&hfvk z(>;3xrCa8FCwp@j$^F(8uM#0Rm$}#rm4jB{{0fc{95NgwJf=8KbkK36_^9MqiL@Y) U&-tJ7*4EX1M9siWuHzMg4+QA+KL7v# literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markdown/url-reference_feature.test b/docs/_style/prism-master/tests/languages/markdown/url-reference_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4dc25bafded554ad19ce8180d1184e2e95d37f16 GIT binary patch literal 1296 zcmdT^J#WJx6r6*^e|UL|6Dc3N6=mt#p{mpg7_fyKw~4U;cj&J#5QkQA+`+1i?`0y&2x~>_mKVpyZHccLSw%G literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markdown/url_feature.test b/docs/_style/prism-master/tests/languages/markdown/url_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ca8b9cff7289248026759f9a0fd34b11d7f48e8c GIT binary patch literal 419 zcmbu5F%QBZ5QXQG@E`Cdo78r9HF4@>;sgw|X)W4HbD+OpKsJMeG99`1zPopPG)8VG z=hl7Gtf=jBwRLZnl9CP2^cWnC5zr|FFN-S1{ZCRt$?k_2e4LVk!vkliSf~rgjW5Bs zrK~;-UltBxkGBr>{o*Hph#5poApjz+fGj$Ngv5C&)T*0@KniC_cKP0nlD{r-n1=pl L*=UfRPpz$A#?WOo literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup!+css+javascript/issue1240.test b/docs/_style/prism-master/tests/languages/markup!+css+javascript/issue1240.test new file mode 100644 index 0000000000000000000000000000000000000000..c9d5051df828073d39a68546c8e5bada5d06308f GIT binary patch literal 692 zcmbV~%Wi`(5JlIvqQ_UjRtB#7PkpBYS8RRsHu4<{?FG7lj4ldambj zhSXQC?&+kYXbpiU2S+GbiPY1*HDf@C{l!}Ngvz$o9pJScOafoQ6tAu_Q8JC!bV}|v zJW48=jW3ZQ=_^LSN<0cy{m@l3XsT_;7EG~-LZ3L5$59m1*$?vx3l2}wY`L)3Y0Uj* z-FeK)Jm$O@xL~M}q3w;+WZmdF&JOO@y!WjpvtxvH7dq$c%Qu#}%e$O%nz1f2r(fAF zVFntuFzFJDzotqaruqlEcndovnc?;gKfRf%@o=#Yp7n>GmIi~@R|9qD>$8Cu?V6#F P_>f^jI{#L{gZce8Fub!$ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup!+css/css_inclusion.test b/docs/_style/prism-master/tests/languages/markup!+css/css_inclusion.test new file mode 100644 index 0000000000000000000000000000000000000000..6296fcef0ac21d04499a2d1ea135da9358f400c7 GIT binary patch literal 1188 zcmbVMJ#T|B5S>BdKb&qRWltbW=1v)D21A?_B>`lcsx-=f?;RgO22!ao*}ivo&+i@% zwW+TXOkK(djr=x2sx@vs_f!;c_gp6tY7L3_*?8{5bHkv)Q=HZeX|@qEib0&|xvK>q z=f%`7MkCJX1F!83?aC@oO(jfLjY-k{_5A9Km!Wgy6#ZC6b9OPThfWE}F z8c>riQQu_}`M^FjNY@gYgA$gX0gB7!+Z_Kh{e>|-*XBTQW z^^oN?b{kjjO*eIDG+3moW}A&OW@p9TA8FA~izqzDH3Or8{mqFfS$d56^j7p-f-V1< zcb_u7XgC!LcKbb4TAU?hxz3If-i5kUrB8=heul7pQ-C}KB0sio3b6KBQW^R73(OWI AW&i*H literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup!+javascript/javascript_inclusion.test b/docs/_style/prism-master/tests/languages/markup!+javascript/javascript_inclusion.test new file mode 100644 index 0000000000000000000000000000000000000000..ef9a0ce9f5501d1e32735ff08159a8c13d27d7c7 GIT binary patch literal 983 zcmcJOOKyWO5Qf)S@*S*MB@zi2AZ)s;)DsXEE;Xr})F3~i=Jp-S*eM|_8nrAC^T7Xn zzwOerS`L=k%OG}O#g{EU_?d?+R9)Y%)@2dGijp#Y0hZV+*MP}uos!K14<(e;{*~2W z`2li z7iDIZJ;c(?xG>n=KPCg*AXU&{IWW`_E4k5m{t+JCAH`=PtEIwvvidKKE)wTGrwJzX6kL^)>(i literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup+actionscript/xml_feature.test b/docs/_style/prism-master/tests/languages/markup+actionscript/xml_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a5b5227fd31e49c64ec93a59ec552537632aee0d GIT binary patch literal 1070 zcmcgsO;3X`7(SPT|IobWvBi(m1|*ADJ$W&y94b~NgO;=f-M_c5tV7FoAu0iq=i%x5 z{nB$yMbp-5FN9e?+}+YFj!1f>a)(Apjgc8#TwW!I=Nj^K<;AESk;yl46i3O73(qlU zjKNOq-<5ub1%;k#C>D-|F)q?;{y`_T%LJ0Um7(g?m_zD;81p($zprF9_AY$;F{zLcNTAfJVh+|R& zTqjS;dR}+mbd%T*1#{_5K0U%%iXStAT{?H*KP$BwR1B zILv&W8GrL*?_1w%;fGSRJaCOmLVu`1ub? zcA>R)-9qTz{DH!`ANB=Mn>Q)$nGwHD#AUgzVkru9$GS)Z7bz`+#ljuIMGG#lV~d%R zO2=B{oh=9kXHJ#MMv(4-YtnsmKp}Ub6{<4Pt0>nS6Q@dAd+3`G2fm{VenfQQdy9na znkq95H>IlB4X}O7RyU^P8~AC?XFg>Auz8>4#}3h6Vd_*S?)fB1Ae zD0wz}WaCq6@0ZLuB%R&+!f_G|_GyP!JE6@R$_@rozw6j!Jg68AFPp%{3D9W5DmE!~4Qfa&LYaKU|sg`;P$3s6ezS$T(cto95 z`Sj4bM!s-7O%aOunjKEQhhy3IE_nap``Gs$HzIqkp->v^w6B3zIb=dgpxdcT8zbsl z-}|MEh~X#K&&>|X8l>X6$RQQDQ^4cX6VwXKh8rj=SysY5U(p(Bc}~!>G78q3Z?|0E F{spzGPL==w literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup+haml/markup_feature.test b/docs/_style/prism-master/tests/languages/markup+haml/markup_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ab5bbbeb9cde84b5ad23ab5c5851af1a43120da4 GIT binary patch literal 244 zcmcCX$t<(u<>KYiB?Ex;Me}lTMl0ne7G;+fDCsCfM=O;irlTHz>S CKsmYq literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup+http/html_inclusion.test b/docs/_style/prism-master/tests/languages/markup+http/html_inclusion.test new file mode 100644 index 0000000000000000000000000000000000000000..b5f067c77d261730f90a911920e7be2ef2a7d13a GIT binary patch literal 471 zcmbV|KM#U15XI+`@Ew|)L3Tq}SR6EQU?Uw0oN*d}eVGsssm8D6Q$uVBABv*!kDxpDpz#(?FLx?owzeq3p2nPSzy#tsaGil6-Zo}CrEl`)(ngoUhjWmk_8;58AkG6KG?j$ X`h3+#Kj=-d+v<9nscs$XV!wI-q77=p literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup+http/xml-suffix_inclusion.test b/docs/_style/prism-master/tests/languages/markup+http/xml-suffix_inclusion.test new file mode 100644 index 0000000000000000000000000000000000000000..589b9ed21b17673bb6f2f2e0431b59698ce82c53 GIT binary patch literal 546 zcmbVIv5Lbm44oawKM1XDn!SWBSvs`Pp~FGQU~)=hn%JRHxb*KUrFU?2YGaJiLr?EL zD-WK@bHewYw!k!TI&G}KbL0GFHH41lDxr3u)zr0d6h~Pd!Y)hoRhTR|I#^D&L>g=_f8YfP>_=bmI8SMW>}hL^ zLHQ!8fGOuBs`NtMVX1`Q{)a~CA}8@H#Z>O{-RBKe*8%EqgX+0)_;K98*YN K=V5<7pEeJDCx|}) literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup+http/xml_inclusion.test b/docs/_style/prism-master/tests/languages/markup+http/xml_inclusion.test new file mode 100644 index 0000000000000000000000000000000000000000..89372ea680da8aef2e4bf0f1dfe975f78ef5d6e8 GIT binary patch literal 496 zcmbV|u?mAQ5QgUnzC*ZKo4tsOONSOZI20s9NMn_15^RL_?R%#!lx#JGz@NMOzq_lP z4aSB%yu8_S<^9lW6?$jIa~#qnO^VjJvJmu=%r_jWYtn=@&>3|#Q*PC0AmdQ|!a-)3 z191;PzYRp4VKq5oAgJ3{L<*&!tq$`t5AlkX!59Oa2grcQ1xrp*atV?WKJh<6ViO5@ f5}|mvFS_cCzCU>DCVn{`xn5Vyd&>`XecrtRg^zVe literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup+javascript+csharp+aspnet/script_feature.test b/docs/_style/prism-master/tests/languages/markup+javascript+csharp+aspnet/script_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..aa07913e92da3eb54ae5faf68f9060377f3917c0 GIT binary patch literal 1047 zcmcIiv2MaJ5S_7j<;3y{4ENEI7WyL6-(j^qdyi5;DtsGnaaCWTNKirNg3&-Z-y z-n&a|#;SI}jYhYWmbfLBt7*+xRG7pey^2I~I>mcq;*0x8%pdq75s7UiCR^#SkTdAc z)pkS;jHoLi*S7glXJiTAfKb_t+rRPqatB|rFr z0IE<0wBlP-faYYaM{~z{r-i|L4}6DR(ZWKV5+qee}EW*0oa7zn7f7)NFOZPv6I|jkiHPP=RI`##;AjE52rz+7M*tgBn(| vf;TO7?KsdF(t{n%KXGIl*tWyR{*x!1Q^Jm6%w?vW-<3AkA2_UI1poj5 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup+tt2/tt2_in_markup_feature.test b/docs/_style/prism-master/tests/languages/markup+tt2/tt2_in_markup_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d548ac15bc63a9b4f111bf68b039eb9f866b7fcd GIT binary patch literal 1475 zcmeHHJqyAx5Stp(@e;_TKfWJuenp&uz}>fo>ULZw;+Eg75)1n%zL-Qym~ zWtG0}c?57WW?M*$_XZG&EcE~-*@P!w@MV4SrTzt{Bndc_P{JwMaOUKh#o+CwgI+&& zr5mNwro$ALF%kQ;4a1R`x5N~9%iJ@8@Ps0R+dUa7)#z3`Wqn5;Jz8>hl~&85Q9k^l zFHku{t|1-eNo7U(pP1!TBO7o^WQBQ-g@80d^5 q1#plk6sIPaWaj4;>nIdw=B4MP>gHtTr79%mr6}Z<=9FZDxq1NesZYEB literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup/comment_feature.test b/docs/_style/prism-master/tests/languages/markup/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1b26ae54e5a4199073d989d8ab6778d0a0c84ef9 GIT binary patch literal 343 zcmcCf)CB@NUM?FTLm@3cUm+>6NC88Hmn$i;3L?zQ1=2w(;N{}wist3wj8;m{&&^HE zD^b!>Py*Qrv`Q&f2b&DCYX~TbDT>L1I#4N=mkWr)6D2kS4WZHI+1@+qWMHG8J^-mQ(VQ z-~Z+P2G`kRn$Kq=sNAL=QZo1{+~<=q%wF!s4=J!1@wJ~KW_bqT;)eGU#L<);F+SuZ z^A@0l_u$!CUATZ!!Yb#sw}@TW@vhGsyT<$pKYdK%d+oMy8z3&7^!+G_|FAr_pyX=7 zWK+1Wtzr?d{kUO%wv5idI20nz8xd^yYs{ge hEJ$6J$|~bvXRnQ*)n;9*xYkC&%1GFJ)J}&Z{|1Emo(li~ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup/entity_feature.js b/docs/_style/prism-master/tests/languages/markup/entity_feature.js new file mode 100644 index 00000000..e5ac1593 --- /dev/null +++ b/docs/_style/prism-master/tests/languages/markup/entity_feature.js @@ -0,0 +1,4 @@ +module.exports = { + '&': '&amp;', + 'ϑ': '&thetasym;' +}; \ No newline at end of file diff --git a/docs/_style/prism-master/tests/languages/markup/entity_feature.test b/docs/_style/prism-master/tests/languages/markup/entity_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..44f0f83d6a9690345a70f3041e1fca3d158b1b36 GIT binary patch literal 304 zcmY#O%q_51P%FtuElDh{%mp%)D~!z2OhF7oGXra0E?zEOG5|xaC;npsv9t19F~HEH4)jk?%(5jMU`pVuiH)A_b2SUmyJlUmu0! bjKreE#uzfVj?+dBb`{$UJP&Wei{YO*qz!@+@M7QH zcYoiVv)%ifsd<;zQf6rsFv>JNkT%%1&_5uzhW@>=fP7D1vvjP$2&3hUDsHi@T73Yws~iyk literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup/issue888.test b/docs/_style/prism-master/tests/languages/markup/issue888.test new file mode 100644 index 0000000000000000000000000000000000000000..5c327fdcea4b9e7639171a83d148a6a685d6daa6 GIT binary patch literal 348 zcmbV{!3x4K42I7u^c_mP&R*SN?6OA?b{RdCHO`{8qs`pwo9anC2n!)3{9nSK)&`fN zcRH`j5)Pl4IZ~n3Mq~|qU?=QR3ng`p;o2;9(Y>TFwtts$G`}*VCsTZ z@ZT5|(0urxLme2F4HwS+{`)IVx2!HPDSko)`@pQG7|8nI!>nAStfe?3szcK>Z_pvD G_pDz50$0xf literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup/prolog_feature.test b/docs/_style/prism-master/tests/languages/markup/prolog_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d7a2d3de861bdfc5f817ed73df0341eb50e2b75d GIT binary patch literal 482 zcmbu6JqyAx5Qb+1`47jc6+KgNPuax7~Z6&)qC* z8wFRgP8yx!I2mC!=WO;a1L>nFq^?rjZkF-%nHM{MQ{-wQ54EK-MNe{4`$i?LQ^=XW zohgW|9|j=|;4J>ZLS4?;Ajh*c%2XHuzOE_)g6KxzKKdr{NhNx$54CTc;ssQoutGmr zL!gK4+i|x42YFG`@#LU177AIGWJ!D2tyj=r!A0P@zbJ~8)C31zKyy)EKHTIE2#beY literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup/tag_attribute_feature.test b/docs/_style/prism-master/tests/languages/markup/tag_attribute_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..69751b4edddf761c5fc42cd53f06057c953b1205 GIT binary patch literal 1790 zcmds2y>5dr5T1j?J6N}{K!+$(gtPQ9fWiDUK}}5xb}I4oy~99EAZ-+>YE=eo-+i|4 zzWZ^QmuHq8MbmIlMWcYdR254_%~R3tTqh(winxa|ZxHkwQ0_V?r(X+$5~W)@V6(O) z9C!?zFs>6k@X@}=byg85u?L^ge7eBZNy|)Wp~^}k1VTuBf~^3Z0GcI65P?vt4y1T1 zhND){`LuvKi=)24W|#2cl9?ukL1maVwk*QFvkfU-uxx5SQoew>*Lt7`PRzI>a|a2k zI|6b1xiBoddaoNZcD*qM#LtZoAm}f+ewBf&|N3mTC>S&}&O9~=`6Z;!OdA8pdtAp7 zSu#UQWZ8(>MRdvqGM3iwYN)|7I8EP{7ksUr7TUg>mPG9h!OrO`18 dWSMGwxO{8QK1y|{v|?R|X@~2K*^yhor%xtYvLFBe literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/markup/tag_feature.test b/docs/_style/prism-master/tests/languages/markup/tag_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..43089ad64039ef0edd38fe912c18c6a6a9680fd4 GIT binary patch literal 1255 zcmd5+&1!@&5I%1p?=a-lg4KHwq3mP09#YM!RFhz0Vc)(pNtG@3uu2aNXyz~TWo9yy z+ak|w!CBt)pG7l|<1NpKj1tZY2s{!fxf=8OE+>*LFg3`1LEQU&{-GR0jWG&wgjDH+PDYP7wv$9t7I;k_( z2(eopuGz6d{S~^nOcza40Pl-!bG)0+ovJ?^T+IY(wEhOz*e(fw@SXI4nbI)MgYWI2 zVCc1SAaw(479I4O?4u;*>}_xc>gYGPzI90Y_B;Wo0>YAsA)JuzMp*xa9@$kepc%H$?fFk2&) qyA>TZi$&Os5byOikB?ZtKH@m?(!7-zlr(}C^CG>gAd9SR{rwMN|5~^J literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/matlab/function_feature.test b/docs/_style/prism-master/tests/languages/matlab/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4c0100a47953fb43d64f561068bf91f3b01d9802 GIT binary patch literal 296 zcmYex&)3l85m_)QB~c*gLMD9+b!4O9x9&9ixSmbT3ljz1WV0G_Az1=H1O2 WdB3m!JYtwiyN=-J8Q%Ax{5%2krO+w> literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/matlab/number_feature.test b/docs/_style/prism-master/tests/languages/matlab/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4bd7a44840beadbb83f053a13c2bb80278ee6c37 GIT binary patch literal 384 zcmXpp;^i{dGc++YwdCb8(lbm2^Nn1!O?bHsfLvWupnN7!DvOs3NC8P+E?qJJNMAHB z7iY9mUTJPpYLSwTf|7}mQmhV|7}PD85@5Gs3LEQz+=?jiq)^**FHKQAhOr=`2#S@~W$4*W7B1|}$`A-V-p>q~xB{+c zawS{?7nru_v0+-H#>`ZrL4qw>j}Dz@@*Z>YmFfrACteiVAtqx{*UB=UU z7)=G^3UjQmV0~iJEETg+SO{8tE6rSHQF^0A*V3ycnzg9Xv(mEOaVu-IUb0R>SrZTF zmGG>ZR$gf{6IVtl#>|pv!Wf>rG~(acrg1Z+{r?}@-!A9-gzGTk^myR=nI`uEupGGk literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/matlab/string_feature.test b/docs/_style/prism-master/tests/languages/matlab/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..48b91335d489e3c95d601a15779a62f8d0c9970e GIT binary patch literal 232 zcmY#a=jBpQ%g6RU0o?w2VD$q h9~L>F{YtUCTtGy=Bb+l*le3Ez((;QGATBA^0{{zJFu?!- literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/mel/code_feature.test b/docs/_style/prism-master/tests/languages/mel/code_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2eeb2aeddbd10de173b1f06408aa9b81f01efc5c GIT binary patch literal 268 zcmYeuDOS)ePR&V8F3HT#OW@_=<Q4a&bm0CFiH4D(NVII6z)XYEEWuW=U!h zP)I33DOLv}oK~6#whttlQ;ZPKNlXU`AshskLN^F#PHZeM7Z8!}VCRg~KYiB?Ex;Me}lTMk^)f=jNv7l_=>bDCz4f#p+-RLakDY a<>dk*^6hiZNKMWzR!GY)Qh-`otOo#4WGg2C literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/mel/flag_feature.test b/docs/_style/prism-master/tests/languages/mel/flag_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..799721359e47f82255573db8e6182c4c9e5a7b56 GIT binary patch literal 216 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

        AIl`c>26=xdZi;yTt0pnbu~z0kU_JIuE7Lg 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 Ulf6{;7ts349*Y4Fq`Uw4AG_)fz5oCK literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/mel/keyword_feature.test b/docs/_style/prism-master/tests/languages/mel/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..79c1e0b5b79ebca23259b24064c78de3a61f3f1a GIT binary patch literal 720 zcmbV~L5{;93`N&t$#;lYcjgjvjH(Mlp+RAAMM%@$z9wWf`m07ELGKA9`+F?j&P>iO zUcZuS%&YFMKG-!?-3XIUO@<^^L6E|9OETKT6oanZmYP3XOMEiji#Vp@>snMT3iD0> zTdZzkdU#jc726b(-pcg-!PCy2nZC|u_ODIK)tm-1wo=UH^q;rd5I%|p>Zl$W0kHK4 z;JsmpO98aE6o?oQ%n(*Udn`b-oB-~@0nw90VviPxo;47A_~yc-@8=WnJ9#%RgHGgd IjKT8r1~L%D?*IS* literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/mel/number_feature.test b/docs/_style/prism-master/tests/languages/mel/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..66b6453951a770f486bcac7837034ec5c6af9955 GIT binary patch literal 236 zcmXr0a7s*ZOH5AXaYifUmF6a;7Aff{C>g+P nP>R(-lQJ>F6oa}zDVCQDh{$(_b4F@%cCkWQevtyiEya2OCSNhh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/mel/operator_feature.test b/docs/_style/prism-master/tests/languages/mel/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b0c09887b4f900a02949fb916bce0b75f38bfab9 GIT binary patch literal 664 zcmbV~F$%*l3`OS(bO+fG4|ZH%!1mH(gak@SDRf9lI{NTchAxq&81b<`@5=}jC=WXk-iR9QQO34y~W&Yl|(E`wb@^Lqa-tL@1KJN9(2 zG_Nox!cm5!=BZ&X!(IiG1d|FH2^tmL&BM?|1)XD3jNO{%X4y2WO{)Z}3U=BzlN}Mb T&M(33H9y`PJ(rdKo3LGf@F}2x literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/mel/string_feature.test b/docs/_style/prism-master/tests/languages/mel/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..42c1913af66784690e93b4d05f060051e5693201 GIT binary patch literal 210 zcmY#V;^k6G%a2jYPf9ETvU$05$p9dI(Y#!o(MrW7MVWc&N;(QkF+ivktAim5v@8Z< c9Y~&+3y8?K)Hx$HIlEXPEx$+sVso(`0C~nN&j0`b literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/mel/variable_feature.test b/docs/_style/prism-master/tests/languages/mel/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d62e3d5dbe9186375220828a31a5f36ced6dc4c9 GIT binary patch literal 246 zcmY$X;N?KYiB?Ex;Me}lTMk^)f=jNv7l_=>bC|SWwRf^^10wVH_cFssm Q&MsC+%P&%ZnqRC30FQVjwEzGB literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/mizar/keyword_feature.test b/docs/_style/prism-master/tests/languages/mizar/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f2b2d48718a3bf291419a72f74e36e3a26487233 GIT binary patch literal 4149 zcmbVPTW;Gh5d5wH-68OI+A{>`F@k=`6m7GSNQDn6zI|s`w5$~47D&-hPdrRO&j8Hb;SS zj%{-Uc(iBd<)aH6!I{n*J6L!&U4n(QaB7B`U>d5tv9kT200d!LtKq=?0RRi3)moH5aD8V&|Aa>&8c{!9p|wJ z0M5JB{N9Hv45lat>Vy2qY3zIH2Kh<^t)E?#MeK+CbS4kjj{R772G6H}bDv^Bkk=*8 zZnm($tcRBb+L!c+`=)*v|S*`1^rr@_f4oS(x`a7}hSmctQG1J+&d z&522Fo57+PZRar_Ll383HtPdmG>CH@Y7a&}ENvrCN46a@wzoLB$uLXICv7wyh|0;~ z%y?t66&+6Jxso-Quqh)cxUZS(yL|76~4+kAUHyxHr53~_jVI=txJ9ezFkO>9Yoaks3( zxM5(Z?pb5w&Lf2kb5VbNXHnD8Cg5!XjUBRPs4zkl!8= zT4er7vRkQTh|LQWw9Ly|xrjYV8AY|WG3JAUTKy4{;MzWC|1(LGO}_lB)*e z6hzr0qN+4XZ|ak>cOCa1nmyIM(xcN=`Vj_NkfRWX4+*w|Dj(ULswXMMUVK%Y%$}NS zU1Qb|sT5Y#%9zI@r|McVNrWzgp?oRKjV((ERV;HiBBR+wta6&pDb${o$Grk4uI`eY vkee=N^X!AbruiT%6HL`30#(i6!|(N;(QkdU|?Fu{s#S px^~z^)vyWL0tFS&3NXsu$fH}8V4*>HyImiG2 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/mizar/parameter_feature.test b/docs/_style/prism-master/tests/languages/mizar/parameter_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..531dd17269b4cae120474ddd57b2ddfff35495c6 GIT binary patch literal 397 zcmY!}R8TQeP%-A^QZZ3bF;!481G3B%RLm7rEP*UT170p(E?qJJNMAHB7iY9mL1Iy2 zZfZ$tk&=#rl8T{Htd0V@pb<7fW1t`w15B`~HN_@qhTQ;=Fop}vu?bpYH^9(9DVCQD Yh{z8a=Zw_k>|%wq{2~Q-@D%F-0FItqB>(^b literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/mizar/variable_feature.test b/docs/_style/prism-master/tests/languages/mizar/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..87158a6c4787a63add525a15efcec9d1ecc0eb3f GIT binary patch literal 362 zcmWHr;^lGNu_QA;4@6va>qa}x17ATB3fJ=lY|l=E`MQsQ;zjMU`p OVuiH)A_bWLi}e6~8CUWE literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/monkey/comment_feature.test b/docs/_style/prism-master/tests/languages/monkey/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..967d3fe4a344ff68f7a376f635a7709eb625dc92 GIT binary patch literal 405 zcmbV|F%H5o3`J)w`3{yDva}qc2o8YQnhv1^wL)p6go)Ermqef{Q!^#@|MvS)boTyc z0>b`cojed46G%1YJ=adt9YN7`7$fl*nGE&bIXk_+2842J@gdY34gx}puxmMO;)+-$ zOzx_6D|73hr%Wz)VK2y27(J)ae{l**87zaAglqk8141Xr8NUI D#J6Xu literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/monkey/function_feature.test b/docs/_style/prism-master/tests/languages/monkey/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..21debeb3befb009caafe82184b72b5ff97fde7aa GIT binary patch literal 310 zcmYex&reD$($M7Pa?8(;cS> zr6WZz%<9RuNHMNDhNeiVxO&&DkN~ z*XB_)$0Ehz}x#;=(4SiUu6(=xE*}JO1IdLHP>YY$+0EV?A2uF($T6>1@)+^c_*ojYy>0 znS{4iCBg!|OYo_giGo`j+1=E3C-JTSiBJuJ@a7OiI9mphs)rB`-yn3wE?;ej#HtUy zgK3)TRAfT6F2-@k1UGXdLUlXBPxi+ZLf45vbxeZQLJ4l3N`z*zM0j&uroGuP6RR&1 fp&B*e>fG~tYw-QJeJ=*-pT^lP<=M%@$1nc?3@gXwN=$J}OitzH;^opM1Az2J^Kx-UE9I5uCZ!fB z=_n`}D8=fa37HsSib36hDWPYIDF$<=QY|%wq{2~R2i;MLDWC=Rg literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/monkey/operator_feature.test b/docs/_style/prism-master/tests/languages/monkey/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0a468b020b7392a0940e9d8726c094c1ba9ee394 GIT binary patch literal 905 zcmbV~KMTSz5XEN$`3{c`9r`ETB?iP<9UR3$v{F!vq#a8?yRU+S+)aku<9Ph;GUPdD zjfW5LD{BG*m3PT1QBrHv)B**yK|{@vQzuN+5hHaQuVAq|bPupTU1FEmt)Exy;(&d! zhWq|F^W4#z#W9PoHl2rVs)^~L+r;ZtrW}41w`aK%{e1AIlEXPEx$+s*?kHrnMJ9|C7ETZ#d-j#KSI0! literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/monkey/string_feature.test b/docs/_style/prism-master/tests/languages/monkey/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..21b2dc7d80b6cae3db7a616565eb51f8088f7bef GIT binary patch literal 214 zcmY#V;^k6u%gOQb}b&s%~;d zViAz1WUmyf1Cop>ipc}of~i0iML`v&0%arx5T|0QQBjKJ0O1TB2pAviG}H&M*3ZF-YLuerZsa3-ZUjKQb853%$)#QG&$Uod%)OPMAC z8w4w2MWZPWO9pY06@<1Cr=i7{JFXvdh|uLDiyw54(NuY~-Z+QEM%`qL0h7n#`)mV} zoCIs^h|hg?au=U@un4U2`S4n~CC(wMS&994GHV_J1V zB5bxu1o$MQ)i|l3PRazeR>rH>5<$(EVz@EmuxE;yac%}qro+)0g~bzGJ)dzr1PHEA bh3>s=@c#Ux;kTrmPCvi>_;uQ!59##}@x@w| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nasm/comment_feature.test b/docs/_style/prism-master/tests/languages/nasm/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..44659860b3b3df58626bf8e7942efd68331f0294 GIT binary patch literal 195 zcmcEK<+4^t%g^WK;^opM1Az2J^Kx-UD<$XW=BDPADCsCDSu4frV2FWiQHtf|0wVIQ Ta?VIi&MpQTRips5uUHQNUQ{S? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nasm/keyword_feature.test b/docs/_style/prism-master/tests/languages/nasm/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..699387c02ca05cbec3fec9a8d407d4f9605d3067 GIT binary patch literal 672 zcmbVK%L>9U5Ih^mKP)+`Xj_7KtJZ>0P_$kwMSP@M)JD>R`u8Ta)~eBixok2syO5df z4gD#!DfCn|jeDgQMnR6WX$be5X*_P!3NgYcW$P^F3Amg$S4;5(BF^Qzt2FGAF_FOH zB;q8CFxnm@b%4cj87GSGk7v+nbtp!zH?n^Vlxz_n+d50inXG>t!w>I*Qc1!T{z zXD&9R4y5=H3G48Qn}!~zmc-vDmEL^xlwN&dq<5NmZ&vw fW~1RMVG+3&`DXkPSR>zt9b4~Hh`4|vwzPQzk1DRv literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nasm/label_feature.test b/docs/_style/prism-master/tests/languages/nasm/label_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e9be0d195686770c3f70f8fd0fa085509f989fcb GIT binary patch literal 232 zcmYex&o?o$;^opy%g+ZJpF)1}iNk>5mXdKW2rC1$Q jVX%Feq7dtqVtKiMhv3_UMW{sE!hT2RP>x?MMEKT+)v3Mf*w0WFi@?`J!}wA!au5S!;`J58R= z^ycdie{QrglWTKdk<(i=Hurt@f?m<@3$4HlfAp}@gCly_=poXbZG%?MS9ZeOorBkU z*HWSGSVFl0*JIh?G7w&w!ayrCFBZOVOJHV-*ABNf;)?HcUbv!sg^%1e(7-ksWCPml ziBWG9@Q4EzNihH{#O=7zz#|%1q{RTxz|ksu;D>o9t)5Ql_s>_=T+>66n)TGv&jSn5 zv5JA-N^m@ODT3EP_!)44PsN$F@*MD|j9s?f1}}FSn%au1TElTmB1y#yZLX literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nasm/operator_feature.test b/docs/_style/prism-master/tests/languages/nasm/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0202fc4a1408bf43d1222290cfa69790eab48290 GIT binary patch literal 448 zcmbWzF%E+;3*Kn?7a!mcvw~BKE)5J6$ deXBXQGL=k)<)ZVRFZA}BAMXXvn6S6HTz_12Z5{vs literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nasm/register_feature.test b/docs/_style/prism-master/tests/languages/nasm/register_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..77f054ec15e3c0b1ae76958e31f246677f3a0c69 GIT binary patch literal 1509 zcmbW1O-{o=429Q>GBF8aO@A3pV(zS|wBa%bO=L?BOrcmQw-vD(iqT?NR%W2xB>{54Wdrlo$N7|8h z2MVA73ZM?AS;{PRmNp|1=W_ zF+@2%Kk)N?r<|TngZ9f}Ti4+rgKfv*;~@Xx2pF_}j8W|8%G7?+QSC?1)Lx9J_UbS- z>J`N(V1%eBGhk8_ol8r!MPD%3n8CD1X(6l<)|`bxp#P#J8j?U}ik4-rXyRyqt|pMV zqVJjOG{^mguu52S7T$hZi6dc^u;wf{mRoc*#+ImS&VnO8>?p;T&LAv+%4Zsvo_wO(B@PWBgY$Y|DJ) Kkn9Stq})GW)kymQ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nginx/comment_feature.test b/docs/_style/prism-master/tests/languages/nginx/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..09493ab5819ca0cc339c458ff65a11a56142c210 GIT binary patch literal 201 zcmY%9Q4a&bm0CFkenrskC>=_n{EE5+(yh(Rq&PYwpE>=j(FH(S7S*!;DoBAp{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nginx/keyword_feature.test b/docs/_style/prism-master/tests/languages/nginx/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..bd34c52b34b6a507738c998bc95e380c8e5203d3 GIT binary patch literal 18094 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 Z-%!1`kN)&DeuY0p{z}R5<3Epw{{!1l{cQjM literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nginx/variable_feature.test b/docs/_style/prism-master/tests/languages/nginx/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..29959b95bae71f1a79270f8d1881e04088f5862c GIT binary patch literal 216 zcmY#M%g;|rEaK%-0W#vjEM6{MG5{|ZFIO}#7iY9mSz=LUVp2}3l8%BB$W)-AO0hav fr9c)c#qx3i5&5<{XQU=)7b~RY7b(E3F4hA8J##SV literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nim/comment_feature.test b/docs/_style/prism-master/tests/languages/nim/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..09493ab5819ca0cc339c458ff65a11a56142c210 GIT binary patch literal 201 zcmY%9Q4a&bm0CFkenrskC>=_n{EE5+(yh(Rq&PYwpE>=j(FH(S7S*!;DoBAp{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nim/function_feature.test b/docs/_style/prism-master/tests/languages/nim/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..899ad50f30548c937c4f00150d74eee8856629ec GIT binary patch literal 397 zcmYexkEyUs%-7)MO3q0vF4h7vN)oeE!=giCfy@Mz1R%-FrAr0?>5Jy&;*3^GE6qzT z$;{7F(oq0%@?*d@D#gZvxCJ1&(nP4Vl7>>O4yGQk)4;m(3sQ>`OY)0=93?HF5yYDT i^A#!f0=f~t$GeeuQFjB<-F zNODMD(qts~RihRay-i|62l5<+<$0ux)YV5D!ih~n$u%eBtSzF)4~desS*_#uk&gPI zEhyBk2A-5L@x_V=|u>H6EMb)MN8XKYZOr>{p#$0$Q2O z&u_f+-0Nh1yv}zyA1N>M%Wby!UFWx#|KLKwouOR{giviTSjEC{RS&^cP8_Zb9)jac z`Qk*EBtJ4VO1Lgsh7T2Urpua9iGV763e)F-(O}7#6$ba=p@fbHA+GUaOkx7k0c6RT zNCICYN*MYG#t^gYG1Zj0#+-52+!G2$K+x_C4DVLK2=xwv!%PS|+=UU1b))`6l3_>$ z?GD9oVOkp=M$(6=5#pcAF)E)7RUc$HjFG_IDG3hiB&d2Rg<-A?hueMu!+r_V{dj(x W4Bp>2<=>mQd%59{>vlPF`SlmL2qU!s literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nim/number_feature.test b/docs/_style/prism-master/tests/languages/nim/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0587edb0946698543adfa9e6213a1502a1fd52b7 GIT binary patch literal 537 zcmbV|!3u*g5Jb;i*ncRw*1l{EWLdtu2 zq+{O2*g4*1DFQ;gVWxLA!meib;dXXU7VVi>zs{QIpDj@W=o`(4@2I}NMh~FM_~uVF cKKxV_0CRP|KUW#BsaoG%s%8xWt*w2(0NgZntN;K2 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nim/operator_feature.test b/docs/_style/prism-master/tests/languages/nim/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9981f4a40218d2c6f3417cfaa7fcc25dc6409b71 GIT binary patch literal 964 zcmbW0%WA_g5JlG=n18r2Nfvgj?1S@weny-?sADYJT15(_i;!>cD9}YSvx<>H9G^R0 z=xU7$HB*TtQ-clD4pZEi=9uBiG{F`}rWINy=ir!_sY30&5F*oH`C~9MJL+ZYIL-sEA6$dB|4|gjPj8@oJa14{YBcMr$~J?486hP zed@#C{HRTzEG9kFSXydLHQjrWEnBLsCrj5gl=2q`CRxwlfY;&t_MXs(h`(!)+%Eu& B|J?up literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nim/string_feature.test b/docs/_style/prism-master/tests/languages/nim/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cd41819d1d269660de2127e35bf3dcad8cc8aed0 GIT binary patch literal 631 zcmbVJ!3u*g3_Y*Ve<->1;&$F$=m&T;9y+H}CKjqNKYvNfM6lbyR@(ZK_nN!{NCCzn zxSREKroS-4ZX7r%H~=A3Kw)1BV48hDJ_6(!;^Yn1I$W;AHEtD+8U$?RG-@q{#>M2c zOL0Chm{&@1DnA8e3XmpL*$$;PF*cfxGcV2*nmwYvwnbKNop_D(hX(Y?{%@NFR0F@N<9e;?tYwG8uTIW@4eNuM3tGct^)^p?4 K(9>#%>GB5hq@9`o literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nix/antiquotation_feature.test b/docs/_style/prism-master/tests/languages/nix/antiquotation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b0e6e51c7bfcd568b2f60e7af8e1907eab796a08 GIT binary patch literal 267 zcmY$XHZiK@<>KYiB?Ex;Me}lTMk^)em1Gu{=9eUvWaj57=_n|vD8=f4WeQ63l1obA z;?*$mywcpH)FO~l6C;=yn%Y{WSY9q5BHwY&8L7$H#R_TpMG7b`ELO-bEh)}SNma;C OQz$Me%FIhI)&l_U1VGvV literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nix/boolean_feature.test b/docs/_style/prism-master/tests/languages/nix/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4019c444f8b53c40620226d2914ad19fd46effee GIT binary patch literal 201 zcmXRZDoy3(N=wWs22#9Sx?}*5zGz-9&S<5i{QR8M#5^S(1*H<8xk|A*=)z!&lwx_g YfQWqCoHJ6Bvx^nd@{1IpRu=040MAk^8UO$Q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nix/comment_feature.test b/docs/_style/prism-master/tests/languages/nix/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f44b3d423a597149fb60593f9303d5208acb9375 GIT binary patch literal 281 zcmY%9 zP*PTk)xi*hT8~8viju`P?*^@H;CL_TO|8P?9$ zDsFX%@-cc(Htx?MQePGg(XgkVVt9R0kt5jFUM6bvsVvCIFnMk`o0ekTjh?ef)?Fmz*8Px< zKwF+WP@N)q3pzz4@jv_VJL({r+B-D zGdnoRg6Hhjz>kqb_z(l#`IDThe8ukmcRoYU>D_7GgcuLnF!t2D6HRk?8jPwbugG%- zIpC1?64DO0Qx0LQ7>rf+mPJ&W7ml5Gzxd_y)Y0WLjP4ufApUtP(S85AWryd*_;nuA z@83GpnD=E-7PoKslep)yc=x<+r!!sOtky~{VKkQ%q*7!UoRC{eaLK=czs+2%DC)X=Ay0+8Omc}sJ{3J; zlMG;#%6kE^R3I{m#{!z<1X3|zY;qWt8b-Tk)Ck*-U{(CojJ)zbsr_;}+0 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nix/number_feature.test b/docs/_style/prism-master/tests/languages/nix/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..25fc0310d50cd5acc6afff967870cc7fff5c7e5b GIT binary patch literal 219 zcmXruKYiB?Ex;Me}lTMl0o&<|d^UDd{LE87Rf-pb426VTwU4 hR*L220wVHlcg{#n&MsC+%P&&M%qvMvPc16e0{~9iEA9XQ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nix/operator_feature.test b/docs/_style/prism-master/tests/languages/nix/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..461f1a257e07e4724438400587f916e3730ee5dc GIT binary patch literal 541 zcmbW!u?oW=5C-762lo!Y4lc&}0%`(%jF6#}ltKqf($R;H4qbXq5&4Io?@+ji7?~7Q z&45rdA=R|7mdU{-rcz)Gyk{CQG1dCSX>&8vW!Cw#Zuf8A^Z*_8GT^Ujoq$S0)rCRA z(1l6D)P+_;+dA<_C!uSv2v~}g#>me5-t;Kpq!*@o&#&h8S|9Hn&%EKcpZ$6OGe?4o literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nix/string_feature.test b/docs/_style/prism-master/tests/languages/nix/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e8e7f35b76d5daf02d906f6e86c0e7da563c1ec0 GIT binary patch literal 1036 zcmd5)L2kn!5Ih@+Kde@fxTHBm`9RfYgdDI#8mlR|7+)IY@7)Db+ilWAP6f$^+1X_n z7Eua3c(1Y6+Jv-I%F`sI?7f#_T*KlFn>AdZHlHOK^c<5y(crHXR6AwoT|$)i6t0a5 zDLgHh0i`DOa-tMZ4-6@!*h*1tv5%p3uegLQYMQv)Eq~+egHBGc7k633A7=i+qFO<_ zdki|fA{}%hAS)q>t&28v{$yh79V=y+aN}b8G5C1Jae+xZ$GX8aarlm$$A}x=Ya6Hx zZq_6EgMYytACk?eke`%pP0&4iKu@3g>JTN&9Ol=*<*-t03A&FHsm7?E$61-tDGgb{B>{s;prqFJqx+g2a+a%M!U!V}qk*6> zVj$9}JLy^JUbDI2zU=HbM7e7)+BGzJO)Emx-~VY_EtfaI%nnPBFWJg@iMbm6m}!eq ZuI=C_C2#jYdh5ycat?%>jyN7wU~de&dMp3{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nsis/comment_feature.test b/docs/_style/prism-master/tests/languages/nsis/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0ed2723294ddd22cd64bf980efd0e23c8b795845 GIT binary patch literal 293 zcmdPbQb^0sSJ2Yu<X7tPDX8LgC@pPQSS zSE8h&paii9Xopg)4tBYiqL@60Gq5NDy9OUz9Lv8sI>{oLbS{oH*#gFR|N0*)mjQEFmIs$YIeDp)MeHNw$1z{eHH;pNgL z1Az2J^KvNwL9|kGeqM1&VqS@oj)Ia3n){Vvb+9XgcnX&^s!wsMLiIjQWhh~SQx$qZ h;Zz6@J*8M)E+8U52%R%hle3Ez((;QGV1Zby2LN`@h|&N6 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nsis/important_feature.test b/docs/_style/prism-master/tests/languages/nsis/important_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4563c0ff85e61e23d5dff1c7edadd5ec6e708bcc GIT binary patch literal 1483 zcmbW1O>V;=5QW#Z`R$jtD~#30_|B$U!t znni)q*fuB1y;(+WbLu@LaQ+!eF?PMj&0L6 zZ%;hjcW#@PbFXLbFbW&{*RJQYxt~>kc`cXh$5*M?PqfUXD$lRyUSmlLWytEN5E4v< zu!bs#WmQ3|(#miXUztAWv08GMXt^Y*wuUw#A99vbt>B1NdR9}^;O>)h!DgKUT0^VB z$~1ef0+S8P?4L7_3bI)%CCR^KwpqGNlgrB}8@~+mUC>|JhJMdq2p<#3Tj&OdopiIO Q8yP!oL&QZ!x+2ic7({1SE6#6ub)#al9Jt3 z+Ql>)39C-=B3_DBhq-;J8#|rc?)S4MtM)~8OitO+I89po;R^5Rxy;&E=*qJG*w(dO z6irgKHY-c7Oy7$0swhnhxwG}WtXuP3RQvj4I+s8|_%w0e9lR90j*VD;7JKLhJPR+L~bsm^|Dty*Nrz$jd^4J zb5n#muGlx>#EUkZCNxs*~UIGubqSYWr)AHU8R zDa#GE4$ezsTFeDhi}ILQbK>%PjrC~V)+8v3>pIUc%h0*GS(|smB7Oa1apKm4&|9y% zvfO0$^*#$GU6u3JM_Vf|42KhR%L(3R&!R85Gv~{6Jb8Eaim(~+g}stJXfN|31-Yp^e7%yRDzm(Xf z54g!sF4ADFNwarsNfL~^2>rF#E1n92umbYXl?KsGt=n+778lk_XDKKF%6B&k*pFfL z?8CchKKM!j!d_}ul{inX&d{L&$L@)JyK577@EjqEyF!2mkB89UgVw@-0GfhgR~6T) za6-8r)o_sxi@T~XM!5C5(TCvb-omQ)8^H7<~ON^m3j ztJ8%@PYF4Vc$q#WaQXW#x4j07NRbRrA`i#i_`w@E0o~0Ce0vbQZwTV@lY$%PB7*9! zD{XP1xkt3vx6niJJIP7?XOr45a=p{ZFMr`5)%$Ha`RTWtH}my@z~|=YZ#VA3z4`s; zAM{tzx@Y>?audlEutoCvt|PDbD+6~HBc0yfMDML490 zI;c$oC6Q7s#8Hac-IoeRiKYU%YASx2nF>wN9ipgx?y8_JSyZr?-6}Yxy9z`R>Ig*H z>+8Kd7*E3>)+)N1o0|z8l_Vkd3ffkY>utO@alM%J8 z2c;=yp5(?nE2V;Ro1V84YI!0{L68t3h?c+$s!KN@DnLgs$uQlnXUB9KWfNTUXHo-^ zP!mC7*knNIGB9p|gA*zTlL09wT3IO)>uEcw&IOMr7!a{1scUI7M(R(f!CasKFgYjy zo-Gs*Vh|K{Y>21Oj>-t>q0A z>Fc@)6t&V$;H(w6C$VLNA6RYG%+cHmI^exWEr^Vk4MsBrEVLSs0;7nu=g#H!6;21W zJ-aSfi*&mT5BYc5Vl*5^@9>iPq+C(oJqbK!wPsu5o-B+xx!2mp9_dee{*eq`w% zImWE~tH+p$k_^VDf&N`&tQEzr_Ae)5WeN$z8$7(N2(@Gu@#^(OsyBR&5%J6S8Og*w z*a$%Xf+KE`$81poi~`;z= literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nsis/operator_feature.test b/docs/_style/prism-master/tests/languages/nsis/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..341fbb83fa9b533ee8896b05889675c318ad36b8 GIT binary patch literal 619 zcmbV}K?;K~5JlG=m^*v|W?@XdKoS={hA5O`DRf~`m%+2wEV?K&E5j_p> literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nsis/property_feature.test b/docs/_style/prism-master/tests/languages/nsis/property_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1437e86214758a96008e4d4b264a11db0e9b0ba8 GIT binary patch literal 3456 zcmbVPU2mH}5PU8Y|Ka54q*CH2?*z^^GH@;*RjeqoXpCd41R@}9^Y6QRfMvM7#7Z8F zZ+3Qo^WN+x-M$Ltx#(bQSP%H7U1%7T@zS;1bbL(#B$U;Z_X z`jBV1ke9rC2IQrLCtywXPs*7_Q@v#j?o^qEX;`7XaDQ^sn7JO`SaBS>cS#K2G&%eDv)Nue?;YWf?zTViL6-7MSghIqUl!PG<;*BkWnL8hWNyNhra@N7dv0|%R zdcwB6jc>uu;VVn^6%S{)HG$1fsVEYehU-{&B8-{q*vNqWa~*dMd&vO`1TMuAzJ@#w z*Kl2PNb>JCGE0IjTY?Us!A}&6;A*&p-GG#1bUIwZu0YgCXL@gON z3?EVkU>k6A+L~j>8taRSMGHH=H;rh)Jr94xnBRj+TUzX-luYCD3x9Y#9!%rg!{oJs zb5=F)lM6OU@pMlfFW3mqa{`3(ucBxOfGWzJMW_kVGYA+>gc3qqQR$t}sDa*iC@E=0 zL`vsPY6Q)S5^C*>;-jCbI2aryQxaQ`9;gaPQ&eGeNlLgiOoHDVDVZd#RZZ%>mdZi* zRWs0zTeeabofA`9v}d2eY){k~#O}KKp>gawI;GniT8YN7Q_)I}L+PwY6kk>;8KvLpNrMjfDGl9OOX|C%mN4j>TGqIe zYKgM9Qqiv4LTFSRefy=8+7?S?1%l2HONuQ!Ar*jjM(IFL9QSz*?bzF|J|mDd3O70` zOg~c~YZDYk6NE+vStm2a2dsX|_<(|QhbAn40j2)oF~zc-MKpOQ(~6FP^NTKaoM<$J z!HlEfbW@Ke+Rs6nu$+vj*wNWXrT>AEpE&m@NzPZ)T?P{uNs!|`L`I4yj&2%{IAMKZ ZFuTM&d!If1uJJ!9`L9+tq8+mO`+p=e*;fDn literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/nsis/string_feature.test b/docs/_style/prism-master/tests/languages/nsis/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f4098761e6977576b01ea80dda160aa3932a1dce GIT binary patch literal 295 zcmY#V;^k6G%a2jY2Qt*vff&e9&j&Jixpc_@AbruiT%6HL#U(|VdFe_z3Q93Rs1&P% zAquo9252!hNp*Eh4Ir0+oTe1Z%LPQ_yU#fzH95OjAuYd1p&01IoK)Sy()^Ot6otgR Q6or)h(jA$Lt!+xxgj2+;@TR(jew^>AQlLPzeVG+s5d+5cGEuj5(BPf}aql@2Du zVZB9MG4btKal92;+2;tOkFHjp&|?MF6($C4FX*sNgg~3eQ468&ET(5iQ1NMOs&%ovHQC4jtb6j*hx*ML2T7Uls_&hWk literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/objectivec/operator_feature.test b/docs/_style/prism-master/tests/languages/objectivec/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e241410d19beff8c60b557000fe6a85326ae87ae GIT binary patch literal 784 zcmbV~K?;K~5JlGw7yyo@# zURG1XI5XDxMV=!kY1w1_3LY+kB(_{^C6>c~8>CZ{I!10ri3uI)=%tQchzsc;h9|zA toug9vujQT9k3_KgiKP zk?DF#NSM6G2j;Z|BZh=22wK8-(xTtdddD%^hUw5qey3;ON#!Ks%DGxpp(;Z2KhV$= zdl(rzW(3|ZNzJKQT}39sg3tKEx=xfggbwILY)YB%n073$wz<>eetTutYI0?T`S<}l C>T(1C literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ocaml/boolean_feature.test b/docs/_style/prism-master/tests/languages/ocaml/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cffed638815d6865dc20975243546802fe622895 GIT binary patch literal 201 zcmYdG%qdRg!%g^WKN=htJ0P%Ubbjbi9ebKyJoY6|j`MJ5Nc_m6Z3Q8J43zTAY lFoi)j#uUZmLF`nD<>dk*@-24GNKMWz1{zwV0JXhX4*<@=E^+_> literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ocaml/directive_feature.test b/docs/_style/prism-master/tests/languages/ocaml/directive_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..704e25080cb177526ed4b3e7863b9b2ea221107b GIT binary patch literal 250 zcmY!`EX^$8lA&eW_ zdxq-~4=9b}(k85&#~F>(Ibq9Fn%aVSr&hzkI#E{d z(&1f3BquDN&VmijS&n+ORxhC(W9StG+SrNP+9>af5laN!Q zU=#|Q00?1j)4?QSOo6*TGr vOGSYoFp3378_nKo3YpQ148>7(7>+VDyn2WG|F!64mhq$P;I7@hAeHAY@J+t@ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ocaml/number_feature.test b/docs/_style/prism-master/tests/languages/ocaml/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2076a5cbe453e56ab81a7d8781fac0aefd2f425a GIT binary patch literal 434 zcmbVI(F%e<5PWW7|3U6GJ$A2C>$Rw#5LwhNf+#@=`ut8Li_Ry9eOP98VP@#Hug-F+ z8izn_o?6Lrr@;mn#`#({?|TcXQZ$BP#nXA{1k3Z@?k@I3?K48WvCLt&+fwW%!P)=ZVTK-zfnkbblpHKvMr>&_G&VVylw@laVy%^o;fJMk zy=coa=bK z&CA6ZtyEl6l$n>Vq@$n|1B6PkIvAorhs8jghD}~Q2IyE!Z9rj=>#<6Jyn`u`5Cild lR$-8bu}XkKKq;1&3y8=M2Iq{_0Ra8CTrB_q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ocaml/type_feature.test b/docs/_style/prism-master/tests/languages/ocaml/type_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f6fdd68648c75ddc1341e40cade7382005158f42 GIT binary patch literal 254 zcmY#)%g^WKQcp@OiZ?Oh2_1rfg literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/opencl+c/boolean_feature.test b/docs/_style/prism-master/tests/languages/opencl+c/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8f7973b3d6d6c11564af7253901ed534ccdcbbd1 GIT binary patch literal 277 zcmZ?vi4O@1b>(vQiFb4K33lb>;^opM1Az2J^Kx-UD<$RU=cFd)>E;)t<|XIoX5<%_ zDCsCD0WAPoq!g=zUlG_9O0m3LKt#S%oHJ6Bvx^nd@{1ITQj1fI%2HDlpbk?gsVqn> fR>;g#@CUlk*+&87LWSh~lvD)`XI;ktPfa}lxxYl1 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/opencl+c/constant_feature.test b/docs/_style/prism-master/tests/languages/opencl+c/constant_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0d03ec46cf5625af257faa8c5765899641c5af99 GIT binary patch literal 33514 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 Bi>Ckp literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/opencl/constant_feature.test b/docs/_style/prism-master/tests/languages/opencl/constant_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7f41b9216840a33c9bf6b3d46c51ab56ccc6d630 GIT binary patch literal 5031 zcmbtXO>f&U3_Z_4{)3ToJ2dH1^y=7(BTSYv*%`7Gg-~=EHZ)6zwuk=wk&C#iUbtr^b4`;a*2xujcKYSCuU|Wr7x4xiRM)u9E{) z;Uw|U@^WYJ4YJUh{0mdqiCxL4u+t!_FQ#@DK~|;dAXrTKS>}@qXD#z7O9xv??pw)E z^km|gM0!Gm&I)BHH{cc9lhnw;J zOZvS%r_;~fpZ43`_$(f~2~b!W-<|Zwodm5VeKSO4tpm# z_^=4M^up#T9!*$j7fLcj(BL2EZT#D#4*U#lS9D~7{h5URTkCs)Ye9sY898vYuBcbUOSaEQFk zGq9z$@YBfYmgYY){e!gTWS6TM=F%M+y7JBgJLX9Ssrqy+}U-fv#;O7U%Dp1`{|g(^_iP&<8|;#wkR)E zI_Z$J=*qe7Td3FK6HWIFee-GQ6Mc#VIzJ}&KGjdBTOvM1S$KMxUS|JzcE>L8nU`PC z6Xheb!Y6J;P=Mzrn&YecGJc!Z_Zjj%hb)xN}fkTJVscEa>+6&FK7aEattk>=tYJ{-~$uK%0C(@-P zBuSZlOhck9nJ_AD!0T9rv>&aQ(eVly8L^m@F$-xKwb8wB_G)n#_A zTaV{zu4Qg76$Y~LD&J;lJinE9S^63>spn=l)ZHj^2dQ7z3DK`+vvA79oK?f;Zd|K* zn${8F3I#%R#p3AIF)U%r`P#OuZ1snR%I8Xoeo?Z$z^ir^)-*m|LdwMC@&`Sa6mvx$*be|^B2O6U- z8bc^yy=48!27P1wh8C>ggDUXnXZ6h-+&F?{Bpr}X@WWf+^pF^o+ri0x5^ zVQjLe_YA{eZ4ny@W5+1NFjxsL1se&&=xq@jhMOJ^qnF@PuwfX6bBow81O=u*0^D;z z9{R9(exuJwvwAavq&jha1y(Ve)t(i_CS*lXhO8)x;fta!gxm+lxi%!smTj&N9upNJ zqMg3${Mx8KhM=7m2A1@ijgo|u2D7o^ISJl$(C!b9SO7L`k~1mT8x5i zH=^LZdZ{}cGxgZ$p53@ERrWR@XE(nQyv#WJ#H}*RoU1I;1~?#2!W0&v^k0GlRz;#0=p@}X|g*?ZK=`rYO>7G-Zoo8A!lq3A8fl6cx&Ii*?xb6 zR_%}lbZR>;!4rCWZ+k9aueNClA8pqKV0!G5?VI8rZQ~|bEQs0W!}29n|PMY%ZuKPm=fyUiH-7i zD+JEpy%4}~%fch|>V<&gZihh0MGpyME6(nY2+p{%VNiM{Ndf)c6afwQRRr>Ow`F4W z?#o8$WvdO-yAKj}u;(_j{BSFepzH%MwKM@_zj5M5(Ch}iJ7iF>4^lAPJrX$kPziIQ z%_rV%+DPJrin~#p5AIHFkld{@D5g)DnI3LO8FOZUlDmIEGy8vn5_@n0+q-bULgURY zO;BD2YPto+)L9^4xzj)dQ=4}HGbe%wWsVsE%bW^scklL4L~j@qiB4rO_I^i=PV@~h zs|>yaHtyy_U@r{G-@rC5C9J*fChV02-!5y2_66Su1_|E?0`}2&!X~2LfW-I0W+lEE z1WJ522pD`jY!o%Uy>E!gEclGDID3H=w-cM2_e~*i3@`C*VOZJIgu6*fzB6{M%#tZC zG&U#in`7dbg_pYg0f?|id*2{iDtjiYZ;{C;`W~6U=$k|VZ@x=5+WR(fID59Jd(sz< zn|%mWZr?d>>a-+Qas*I5|_ z+38*&@rEgCfe;imK>ck>`iPtcUVio8D&k%$ztm9F|DW)-OK*+DoYs~ajATdW2N9dyBh%r|j(YJ~tSLKAITdthd6O)+sIe$z8`w*7- z5NaL7N^w^QJJi|^b{IVvEhuWUtXxG+CfCN)VsdRv1gt)4gUPiq<6hce^@Fr0^R|Yf z5oRZrHke#YlQ=?9G{WTSyRD(9!9^G zjDRj~wd??8qg}FRB&o{An%y-#|B`JZQIxg1WaCJ6l(m}OIz0c9y(3YSwYp^YNOhF8 zx>#k4H5LSA(-Z`D8$NtHVXn;o@7oHSDEs!J1Z*2g^KUmwI1{%Cci(&D&R_%`InUpxP8$nH2b?$7@Lh)CMY literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/opencl/keyword_feature.test b/docs/_style/prism-master/tests/languages/opencl/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..47613f7b00a202f0512a39d9982b2324bc22bcf4 GIT binary patch literal 7452 zcmbVR+iu%95Pe<(`3ED<-31~Gf!_PNzYgr(uWMJ=yK$J8W?0ZY^y5?0qx0;i!AqwfcM6=R?xk5gkjXb~ zJr4a_>c38%652*)*Td}T)C_I?97tfu|Rvd-5lR z&V94&$LW*?pQrIKHG!L()4BJPYc9*^p2o3P@$jfkp>nITR9U$vxc}^S&FtOo*i0%g zT>6E|t;$km<={qlY7V{@2bx8m;a0u(1DxOY&0z-gT&w>z=uzCcqD4r9l)&O~=>|lh z9r5?_)Jsnqyg7BQ5AV9~;Nk|Cw{DfXH?`}{*flF%v(7cCB(BJ+=%p7HS+&TjMONL$ zw+=xJ^mY;cqMXyx|&QHfeo@TL=c+cx^q4bAlCI&3@q!@MC2 z5nB&M~XL_kZLLgiLvsj_lIJ2eB&gTEsXHj71K1_S1_Tl{$3B(Y;$-Joo_3 z$8m}h@6x9tG~3XWp{d;5{VT7-VZU@cG}A>4y>`p)=$5y$Z~fj~^i)&{YuXl}*@mVJ zP30~Kq6!&@K88VJ6eI>ghA|<~7Y(jT86U!{4K(BlD$+n_=;W}Kb{rt*?l2(EmoU%J zh>1AU(87p5!-}?*dl~U$dRe*Zze|NiA?K7C>-8TKlr!t$h)E?LUN#Ynll)NEFlAEj>}ct+#X_`grSIYyHJ zgUxAy!Rz^NaCWf5SKCl~mtI&SLc(FNaVHX1k`e+-nqt5Yj|Nc~_}0Kn1Fsk^DG|XX zNn$WkB?G4JYieaEF!yCVb6;@g{)ZHez3Hc%%I^)?3a<*`muN`-w8iey2#TIfP8g_V&8s&UM9`tL=7EY(B8V`>&KAB_jNhFI;;#hnV$Kn&X6<_#I71eA{=z5A; zrXQv`zG>B*v1cQ_;5R0aAHSbIxivE!~|zE6P!&=a5lGGa3M~G5)30ylwoivVlyTc zZU`sk8v~{h(Q=QWz#<~!SwsY95s76Z@`knB{jIb_6+^L!Qn&IGr?ntOs9d6AoD{7r zoJKX2dn^?e*H93$G+1OqfsAQr$&3;IxGbBI21IQUsB?v zcqn=@N>{Z>@JX6`Cl*glb9A0+jZIWauEbO-!V*f$vJB6K+WYT!4u5~YTKo0rchB<% g+2f|^`%Ns{&YN!7{B!oh*S`VD|8;J5W9$F=4;c#R_y7O^ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/oz/atom_feature.test b/docs/_style/prism-master/tests/languages/oz/atom_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b249537e00cb950195de93b0267d90a63c87755a GIT binary patch literal 239 zcmY#a=jBpQ%a2jdPf9F;u=9DjAZ%VPT`~YK7cW;dFBfODQesJdu9A*|lDfK5tPZLO p&_<}0Sfuh}iemCWPEd;F(nw(v%kd|Mh0CG&R9sp0BGhhG! literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/oz/attr-name_feature.test b/docs/_style/prism-master/tests/languages/oz/attr-name_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..46dc2221e2e32f2384773a85aff71ec184b0226e GIT binary patch literal 397 zcmbVIF%E+;44fM&e~7XG5>(7t`-N_ZAyA{DHVz7o#Pb^$!BC+NSe|^o^PL@F>>`oJ zoM0i7-C?FoMSMVbj|iqNq>!RIQOs+kxHNi**wg4ymrA?+pl(am=!vmtH#kqzFUJyv z3atYsv9-f>vra8}$9t>$Ly0}nKOKy&gTPAlCi3I2(5)1y&%fmMg#I zP*PQj)xi*hT8~8vp4XmP?KvA$MXsW9rs*%lxI2fxbwMwzPTtGy=SDZ6ale3Ez((;QGV0IQO UB<7_k6cptrr>2w^r55V}0C+i4LjV8( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/oz/keyword_feature.test b/docs/_style/prism-master/tests/languages/oz/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2fdc28accb1a4e4536743381f1320c3dde44677b GIT binary patch literal 1528 zcmbW1L2iRE5JlIuID&9X_+CoI zD@GR+$K7@ed@EeIldx;XzTqM2=%J$Qt WIpggmyl*7qO9{i<>R literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/oz/number_feature.test b/docs/_style/prism-master/tests/languages/oz/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d7b2ff97fad91a19f31409c1cb0fe5d976e476c1 GIT binary patch literal 512 zcmXru5>6J`l5NcIHQ&FN^_G^iSAK@u!;f$S1Fd43y8=M VVdsq0DYt#x{jLM$vx$B=Q{ZgJ|w^E@Q($HHK@{~R>t07hGT4% zm7&p2vY26*jAmr>ttwf!n2jpgs3Iq5ISzx7FVGY_UEVdOcH^pr3yoG9wKGs|ORZaL v)M<3H-1b_xv2?$KY%R%XTUdtO!aw8hcT5tG-+`B7dHtC2Rww*jg!%anSY-Nx literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/oz/string_feature.test b/docs/_style/prism-master/tests/languages/oz/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a7550e8dc39bcb403fedaa3b83736738e54b0452 GIT binary patch literal 254 zcmY#V;^k6u%a2jYPf9F;u=9DjAZ%VPT`~YK7cW;dFBfODQgKO9W?s6Ij)GDQ5Guv$ sV2A=Oj)7Q>OFloQC?*f+9FROO7Z8!}DCdmSQ4a&bm0CFkenrskC> z=_n}a1MO3a)xi`7Sr$_ilLv7E79}x2fI}GSP^DO2E+8V`wayu-$=Ss~(~1;M1& literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/parigp/function_feature.test b/docs/_style/prism-master/tests/languages/parigp/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e2ad9e4d013d2db4ad35e7a4bbb10ac3b3450174 GIT binary patch literal 350 zcmbu4K?=e!6hzksa)%+S6l(7v9wT%SV`74mU-DCWeN&{kux@nz?tNyM2}HV+B7oXm zU{RpafE33cwEBz`2cyEAT}_l#4;6^i*u$u4g|pqb-lbimpAqkVyQZ&EQjGtMIY;mA ij6en3A|7yhFu}cEHQI_Lrs{dJ&NFQBNViPIUxz0oYFYaL literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/parigp/keyword_feature.test b/docs/_style/prism-master/tests/languages/parigp/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e210791d2ceb8573b141a11e56dee5abd133f864 GIT binary patch literal 1789 zcmbVMTW;Gh5d5wH-C>~bBzGu!j36-dSlfhUQJ|>UzJ2x)sWrO%iD8@4jJV>EJJTg< zFLl+)Fvl?Ex*EFEVTiZMt|%qDSZ5pWb#;u4@n0XWb6i3uy&J-(jx>%s&TZmq{Mekr z)gDBNx#l>~k9CB-e0>!Ed%sLl{ zyMy!I`{;fkKFtT@6MSGkAqQAsq(6O14!FR4cd*ZL12{xDx}d+6>H_Ea>%#%XCk|}J zaR_yigR8X^|G!t%Yt9_)E;FCQ4!avYlB0&io<663btyHl!>FS@{9lU~_+m>*2o&a& zo62IMFsV+45QW!R@*SSMg^Xh3h;&(1IR#=7(kY3cq>5AZ`W-8%RM;yl|IPQtw*02l z$~&zr9JcVNBqSM-i6o#%wq(7nUStD;^{^FU(A1GMki}8S#ZFd9D8VQo0lAvjRxT&G zycW8KJfoFX#S<-_+iSJjo9p-Iktef(Da~Q?fV@lD-{(@vQ-&b}sY(;YoD|;7$_RJ! zGGbF_U^F+yi`f}|H$N3`#mET%i(?L2Nq@dVZ#{SCfRAy)Ql>z7y@V0nBFud|$QS6PBp8vTYMeSg5g^Z@!RmC({OW;o$2; zdOt)NuVwa7xL)OF2 z4@&NkWHy+_UDkI=mG6*bHkjtR3+-C$7f9Ent(gs`ac!D0T$$-u((|JESy0LApjG6DfpbP` ca(1yoT7HoN)NjQKnR&&TDX9vGfGO4k0Q5XudjJ3c literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/parser/escape_feature.test b/docs/_style/prism-master/tests/languages/parser/escape_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..69bef5560824b4d3ca7ee43642d054cde90ff98d GIT binary patch literal 968 zcmbV~-D<)>5QVQJ_zue$P(h1$8Gld&Un0rEHYQf8i6k3)A-;RhtW8lfSB9K~{bqLd z=ZyBd9j&1mw1NiE5DK9fxUz727z3q1J*E?g=Ajpd!4E(GpK26Di z`R;I0$R zU^jt9B*4DF0)h1;Hl0Y+WD;F(9hELp(Z9J-8RgWvZFWGhy)c(Enk-k$nmue{*I?Vj z0HbrAC$={BP@t%y`F&rWM`#)}o#(~QS!5b(%W-Z_?0877pXfPwF~{0Pd0xBrqN&|l zwYhdIixarR@%)Dd`)ej7aP#u%g$20G)0STjw{+ncIe6di{>@jKd{-(fN_F31_3;av C^yOCo literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/parser/expression_feature.test b/docs/_style/prism-master/tests/languages/parser/expression_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e9a229fe5e7850b70b19f5f3fbacecbb2d4293d4 GIT binary patch literal 1123 zcmbVLL2iRE5IhGdf3Wrh3G@J5A|<)>8I(#cm?jFr2pih|zH0|;3bav!av(e7@$T&4 zx>4Zng3$9evA1?!Sw~AZ-iG+TcJ}$XBUwp>I6%R9U{N?KJb2(y=aRLvN`QUV4HM$b zEAWXbVXbbfOtw_sir_-(-vO%j`oVg1v-y#GhqNRw5>+fxw-aX(4GbC1qMh59CX@HV9{GG zJx}ezg+p!?WL;Bx#Q~<~V##s_XBR{{62%oeyk(@-NWF0F7;RVTAEl*G1Hsuv` literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/parser/function_feature.test b/docs/_style/prism-master/tests/languages/parser/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9cf470bc7efb4dc460b081eba600d5b55754e613 GIT binary patch literal 1383 zcmcIk!ES>v3_XLyKOmo4Y48E4t&pZ|AF$mRR2hV|Y9Unu?WU^#K05?;1-1iYJ(=hD z*?D!`5Gq%OCE&?f>d%=aXO!57z9BnPWlT^t>2jR3traei(@$p?dfqdJ=j%dXo0<8qiB?89F)!fu6Lnzyxi`K)>`sXHC!q6(L^^ z_3`y}$gsnG&Xn)D>4GR(5dFtL4w5Tn9EcEN9nEI?G$n4#I`X0V{Byunw9xiuq>8=M zRhwD9ee^3AW-<$KH-QQ?3ysREN_r(Ln%B{5OA0llI(cOKT4xFCb1z%&o*u7oP5r0{ zlZs2Pqh!0qgGsZ@1EWyGo6B`*S4Kd`#$)6EknT4;-6=O0(rvG$Tvldo!K;nPl>Y@; C@P+gM literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/parser/keyword_feature.test b/docs/_style/prism-master/tests/languages/parser/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ae1e9def9c3b7112a59d818406d2d4962fe81f31 GIT binary patch literal 1338 zcmbVMO>crg5Isx6e;}J4AZibu)zn(rG%>Xada~NAxKyHo*#&Ji{`bx-AYa?2DTiJ5 z&CJ`GHvypY4{d$5S3AGvFIiPk(k>YA?I-47faw&7^tIIut2lVp8= zupbB05uV1cljrdZS{-{*z^53gYo@%&>@+);h3D?dKN#+o3eh8Qt$E{xp>L-l4UsUjrN zSY-gwe}FT!RpzuUDpR3PDl;@r!ZLIAx#vs>KMX)llo#~f$AKHgG)h2XCL|T%bAf-0 z2;$w6aqLtFSd1A7_l(mBngCEUfyzG06s&6smE6Dp0dpJxSx!Vh@;VBKdXC+cvO!>A z3EnDMuzngvydBUTLnqc1!{+kq WHE{d?pJcdZ?nW5!J228dh}&-x(qDxD literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/parser/number_feature.test b/docs/_style/prism-master/tests/languages/parser/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7bb3cccf71ceecf5323b9005baf95d1fd0576c51 GIT binary patch literal 924 zcmdNeG1BDa(lFLDG%+-_1T#}jL6m`>g{!V1RMIk48_Y7ONJ>meOH57$tB7!Nba8WZ zb_H^Hxpc_@AbruiT%6HLsTBo9sl~;a`FTn@3Lqh%SV3uCa!F}o2}DpyLn&4VB9T{` zo0M7vRH$TP1Q$e8t*I0XR2&P|LbmbHP@%0IsirhF9~zG|wZm8slt5@|1w7@^))rWj pCS(gQ7chB|pXi-4Qj@cb71HvH6d;MYSRpg7I5QXq1^OyqF*_`xwIqoW+r`q7;`skbU-1ig#sWTjI3fOX;uo z=f~Z(_LzKl_fy-N%+%nj!CTbeGE~F39!5oeWKz}}l{Fyeqq2;nR5bXi#ytm?9S2uY zN!M95I=)i%Pt#@|C^%@~K+WBl&^XJeWaDn}dCOvQTP@Tq2|Ey_O?C{P3iXt5)RGz` z5kwSu!goqH1&y@P@Ca9!ZMkRsY|FMDZR_TdviE(?gh(<@=R`skwmAEtpt_}Ue=?v@}bn2RNs=X7q)I+`i6eX__ zakRb!k2;Sq1Q0NtC&A51`o5|LmanF)rHnZQ&;^aIt6Ar0!nE^h;&YzIOLE0_DzYq{Qn1Jkan z&IWwHMR^i!QYPC6Dw`LoZu#H)h=23|e;p6(0DMsN8h<5dz5ATn;WZFNdm&O7iilp4 z2?wVpO7fS|Yq1gyE7~;Gv}tEAw=Xf*-DOd2k5dngqJ5M_YN{;oHM=9i&x(j`Ri6>g c|K#!T%${BZiL;!X3Pg~Ei)70Peh3kFpW;2f6#xJL literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/parser/parser-comment_feature.test b/docs/_style/prism-master/tests/languages/parser/parser-comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..94e772cc7311331380a8bee10d545a7cfa72ebde GIT binary patch literal 343 zcmbVHF%E+;44fM&e>jB|_(UaM&^s|CN?KI{bSX`i zwbH7&5QnbU>Sn}d;31k?ir#FNGjTJgb){HL4O5x%Z|l6lj9LkQWVgK zaDsCiGm_$sv}T27g(fbeNx?{p{fftXwG_J=>|=-)(FG5cVv4w7^j#X;G?P$3Q_TZR z(fKP0!O+k2hrWb{R$6bG*;13uZC-hOy+;b_!upOLZ??Om T>O)j>_fR>H?qb!_TRc1gdsx>7 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/parser/variable_feature.test b/docs/_style/prism-master/tests/languages/parser/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e2544fdb7ffaf1ba24e2305624c2a428300aca96 GIT binary patch literal 1294 zcmbVMO^<>w5Isx6e;^G9O_ao|Q7?P)=DkZc#l@8@f}w?M{PjE2DcPkTn#h5a&b&9T zZ>FT@wvD3{-n!-#GyLQ2GLcbs7tm?IFaW0G8}=VTi={iFI3ew0Aifw z@CNCc!3yRO^pl}K3`+S4Js2N-W@_J&Nn@<~Bo3|e6bgv*rBb2w<1)`Yu(Sor2gHH` za%Rv|? x=W_2xZs&~e>@PHJJhs;;a0wAMk!V@BH#Wo(q`m$JdApRSZ<(CiE*Zti>=#niTI~P; literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pascal/comment_feature.test b/docs/_style/prism-master/tests/languages/pascal/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2994975152747443a0295bebac26160bc21b8f4b GIT binary patch literal 377 zcmdPUQb^0sSJ2Yr<HK1O3u&CP0cG&(os-?H~?t3QmhVkxtOAuJc#qKD1o{cmkdmAEfxj(`d9^_o>YqE YG_6Ph>fK^J0Mfr%wEzGB literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pascal/keyword_feature.test b/docs/_style/prism-master/tests/languages/pascal/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a31f48560665cbf0601666dc919a58ae99d85dd4 GIT binary patch literal 4306 zcmbVPOO7Kq3|*&yx`W{LBtSN~K#nn(g-XS;m6oM~q-wWw`aG&W{*aT!G^VF*ijNXM zBA@I~QdlY(o3p(eTdsXK(Ah`hY$4-PEVb|2pS-x5a^HhU?5G2LQKhC-pfqd1z$ z2Qm|DPD^yvr)bWproQu&@z*)fm14ClhbUes`%0tnG581zK32+;b!37aDD++Q!KC3I za@C}%@6t@!;v8nS?t{j@n{#qBE}0BIowJ1lnOw@F$pm9Ljf;cbOf%VP3I!M`gikg5 zcsBJyI0qc4_nFKRJ=|Sl#imQ4Vm>YWxLw$#o3EF?ga5wF39+FsU(IBj-;r(xLBT!< zRSF?iRU3i0;u|y)zV->zXc(0FLTg?vd3s5Qqn|jYuFM zI3#}m{0kpbzFFk&Oc4mzcNYr4K8gqN^Kqmv6b;~cnc;>{?n3UPn2;RXyHY9kOa=$R zf5d5wX+LXBnd*{}_?SvXAx)?oc$UIA%?@}NNT`f_Yhg{FltZ$k;Sbr5WKedtK+nv< zR-6|_H)sC|@3{&qinW#IG6Y0n=0D}a5>5x|^6U!^&R>rTg|r}ys7*T|j3Jm}vD>B! zk4u{Bgj1k$XL7AbaAKUkVvAD8_0$Dd1Gk9_fRnp$m7ODRjndvPAAd#eY(AsFeXa`! z?8f(yYvlJ|_+i}lzWeR_>4WY!T)xvcbJ~mT^y8a(UEp3LrR56QyOGw6gf2HHDdc9Q zn0V@5%Ic$?X^Tnhvi3V6=KiM`KtmL&+#sbeWd*)>P@&EpRnhm8&^)rH{vCtC#dZBoB2{_L(1>T06RK~CqLi7m5K%0g_m#1S>e$U)CE(L(c zrx3Pr+RVJR63kbj%k#FWzVFxuuuy*)$jTP$gch)EVk>~>5&pB~z-{jRe6K@ZRbVcJ zh1V=^EIeFAXIGwxUKMbv1agzPj?Lu|ZJfEtff02{Fs`b;#X z5X4ilaWGK{*qEsbdQeqm`N3Va#huJ*Ya6@8(pwAJ*sg+E*{?wCY*<6A^jJc6x~yRu zf0mG)Pb&~6*aEP#XjT7U;0lZxxdPfLx3?Vz^&%{E&Y)+12H`MZL?RyvXrlk#@evO0M%PQ9rpfzED}=LT z&6gX3l58~s%gBa2@~b^52llZkON1lG2nTi*xrcxdZm97tLD(gteK(oyMLj%8|SemI?G2ApsM+*ff=bl$IR7W9ly2nN^Iy^5cJN1TO?Q zhkYc|q2m?Nqvyq-frmrOn+PA_B3h;goWU2bM!juVzdW=Y$=lKIFZ zQobV>GIhS9&IOP4gN%RTS$jt^FGrhiQyK2L*d1&L_O!!a=A2~v$V{|58SFH+mj4~n zD@bGNxs5D)iIi)!oD#Qal<~a6oWfdlzJna*EYVL@jKglo>`*0Rdl-uT=9A1XNsDjF uDe?74@praTMp;t{Sumx~Cd(+REg`#ZPh@yKFZ}B~UEV9+a>1|lHGBhkv;Oh` literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pascal/string_feature.test b/docs/_style/prism-master/tests/languages/pascal/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c33a448a946ed05811d87f65207b6142cf7b3611 GIT binary patch literal 328 zcmY#a=jBpQ%U4&=2QuQ^dAXF$fmkKY1T37du578Elvo6mAAfGH8@jwz;WjztXUWK2<@&){BAisj`3BJ%y=oRONGU96Cn VU!(x>OtC^@UW!6;Mq*L19srzZNJ9Vs literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/perl/comment_feature.test b/docs/_style/prism-master/tests/languages/perl/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..503d161564f6f736409841e5cc513cf32d91eb11 GIT binary patch literal 268 zcmcD`NlZ%3QAo?r=jBRDEaK&|O)f3r} E01fLuc>n+a literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/perl/filehandle_feature.test b/docs/_style/prism-master/tests/languages/perl/filehandle_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d244e668333fb2e3be714405a093fb2f774b3e7f GIT binary patch literal 277 zcma#&<+8B@;@}V$Pd^aD&EMb2F$l=w<Q4a&bm0rDf)%W+djNTs{nCsu^s>@FFq~+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/perl/function_feature.test b/docs/_style/prism-master/tests/languages/perl/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..552d2f3309f635775ed61636128cc1001d603e29 GIT binary patch literal 264 zcmXReO;Sk9&*$YT1~T08^W&Woi%g7oxp=vB$p9dI(Y#!o(MoBhdC4W2`FTn@3enL@ z*{PM~`9&!}juOxwrC1;hvQ;TIR)NKMWz2HIbw0CQ!r9sqc3 BKWqR1 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/perl/keyword_feature.test b/docs/_style/prism-master/tests/languages/perl/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..82bab2bc153be1d0e3bd6f62d15a168dd1cf6986 GIT binary patch literal 1095 zcmbW0O>)98429SAjPIbyn)VVs2E)Q63V32{>K{UGU&&1ut+av(p5f)`;gLSMxWPH2 zTVPDF`q}+>Bq%XVQw>pj1bHS=yO?uD()oi*z441D0YCADKF z{EVFVE?}BqaGShT@p4slYyO)Ly}M; zhl?#uVhcwJPC0;-a|bXIYlO8L?>JHt3D5=(=1d6)QYK}DQ{m*?m8YYE^$wu1s?j{d*XiC$;XBY@x|AcOeN#y$d;*RAc|%(f+4Fg7RLix2f=b$b8+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/perl/operator_feature.test b/docs/_style/prism-master/tests/languages/perl/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d9b02044f40bd49cefe47d31d37dec30afa3d5c9 GIT binary patch literal 2505 zcmbW3(M#h%5XPS`kpJOJv3+Qr6n)M{w9g`_pkS|%wrTEYY--w`MN0nmn~lmH&L?+R zhDr98flMJY$QH8Gb^%#J zZXp+tOKqP+Mqv;J0}Rxh5{R0Eq+!rUU(Ko4KTa^jX?tm}M;V6B1Ap^+=it;DI1O#k zsA<>%2Q{Z&8$I;YoO*2}NE{ON{^Da&qz~?!ChB9v4zc<;4udhy ze9y}*iY>|_wTavLVU^VROPt!q&=cl^dd*5;h}j zOW01Ctx^!>lCWFCE(p6+W~-bN<)~E}?Z8S0j5%7!28$5pgFn8FDNES5!aidpq3#9m z8CScS>=jE>q$<8m9K4b>S1rSdQO`z>E{58Cuj6tr`XR&>%Q>aAU=5XBcCldSm=ky J`(Cn%e*@D{nyvr< literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/perl/regex_feature.test b/docs/_style/prism-master/tests/languages/perl/regex_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2fb50e4917b8087d7de4bb978fa468e181abfbab GIT binary patch literal 1982 zcmbVM(Qe`}5PZH!`Gz!$fB27Nr>aFX{YH!`D9ZvT&X}1WZ2?ASd(}W-yE!xcDU~jCmv_-U^f&IO|60*(J zflhLw%#8wv`lRp-RF^F@sYIzuO_vXCLz*s;rmY4Q#ke7QUU`Jmgc?}j ztau;LQd*e;nFT-m?gxKFTBXUaYVDf$=Dyx$>$WJ?_4YL;1NxlM2*CquoVnt2FtU99 zodXjb=gG5%iH?qCz=fDbe1VxJej$_J9tsc%L*AtqUeC4{|HW7c`Z@?Z8eAA7^Xk3hi(q!#(1)au<*EwYA)LY%_DC4yCuS41eb z4ymJfytr{}A4{dkO(GI8m#4dsy+kN>8!0vM#D!7;`T9g`KoLXmBLgoAhQy8(q1d3L zPR%nI>MYHecvj3IQ-(_HVPs+vh&@dTv8#o(56IUGElk|(dJ!+1pt#@~*2?bs11H>( n75@3#9L_`b*13%RFtgXAtUf-wTeG{I&P~?!jkCAT4Zr^ZSoA!B literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/perl/string_feature.test b/docs/_style/prism-master/tests/languages/perl/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fbad18eb4eb679c50852b29d7c4836a8ed64fd81 GIT binary patch literal 1923 zcmbVM%WA_g5Ioo5e{ghh3T=JqF~o;{hBw4+n?5MSv6GTO=)ZTgBa0$Smj*0$JTp5< z(C$!Gc{WsUegE8zQz_LSkY@yt4U2`IRQp;MPF~8&yWlONA^Q>+0*f%ZSxLWn7^X&c~AM0!K?4~it)A+f6H+O{@s>*EcW-s}hQk3wP zC5$r49$%T}uruyq#5OD#nB;^PHDz^?w1<(n$`PNx+9^(W*CVvveHY2rv&g!R`D*^k zBqtn~l+{Jj9!6rIBEF)tkzyw-#!eF#mX5#n7K`KZHX?fG|#q<5BiqnysK_It~(_IOWV#Zx(>My6C}R`ta+v@`X5{J l-mb}~kKN1Hv3Tppg1hoqboQk8TRlvIG$DaGnwii7+C zmcW!k_8AT(abegc91O8qW@3b0xrz!_T=)z!&lwx_g YfQWqCoHJ6Bvx^nd@{1IpRu=040OJlQ{Qv*} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/php!+php-extras/global_feature.test b/docs/_style/prism-master/tests/languages/php!+php-extras/global_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b7222da96040163ddb075308b0b1e90bb5f5efd2 GIT binary patch literal 681 zcmbVJOA5j;6kHp~9ZKj@y+hTf7K_oQ>OxAW8e8zwkf`T3X}b`8D??yjW+s8mgtLT? zqC`*Qa{Zg^RVKg!D*a8<49q>ftC{>M9i1o2FtC7G3SdI+@vcll`*xs+0q^7 zS+M|lPHTESv?+F8fA5Tw@Oy3I4R@k!j#7rUX)NW_+$BddrEqHR$l8vab^90 zh21Y%-v3s*Ut@|(0i%5?7~iCX30-QK)TM|?E>(Ag*+D@zAzGLODU^$SJwv+U0CI%@JvAq;-jo%& zf+tr>&}istD{$m~ETqPiQ1BHQcBf<8@RJ1p-@$=}?QZPmXw`R-Z2ysPhUNC3_I$Hu M$-;#s>V5O+4UNs3o&W#< literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/php!+php-extras/this_feature.test b/docs/_style/prism-master/tests/languages/php!+php-extras/this_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8ac7b61f4e3b2eaeab8a77bde9cbf6d82aff74e2 GIT binary patch literal 166 zcmY!>$;d3`<>KYiB?Ex;Me}lTMk|3#QPNRRQUNn!dAWdyd^4RhQj@cb71HvH6u<`R F0RSi6AkF{) literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/php/comment_feature.test b/docs/_style/prism-master/tests/languages/php/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0db0474557f078c4af22a9ee370df4cf3fccd41c GIT binary patch literal 377 zcmbV{O%B2!5QW!HGIt;>N!z)AF(w|P?E>qlM4%1S#N!K=ovcb`!F==g9uWeOxX<%d zhxAn{1C;?nLZakH$7lX%w^;6`*`0nIq22Ki5PF0|FViB&ewB@oL~?BYVG&lVC8brI uM}{!?O?bUlb@{KIla;^hhm@(lLn<#O})cXAAhH!bC^<$c m#p+;)g6+g60e6K`EH4)jk?$1ejMU`pVuiH)A_bUxiuC}a;WWbl literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/php/delimiter_feature.test b/docs/_style/prism-master/tests/languages/php/delimiter_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..15bd9a81dedf75fbd22d3036aa175888462542b6 GIT binary patch literal 367 zcmcDqSFpF^<+8Ca$S8oaY{4`ymo6EAmy4GxnwN_+S_x>Ll8yq14dkSx=49q(mZTN| zg_LaUm11?Uh}+vK#R7$6!IJn502xlH8MXvW;N=3khWt=)&PYwpE>=j(FH(T}zE}?c DVqa05 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/php/keyword_feature.test b/docs/_style/prism-master/tests/languages/php/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9505114c77bb69a2c9f2a664296bc6bc8529fd74 GIT binary patch literal 2243 zcmbVOTW;ep4E$aLz5|i(?p~muJw{P16p3zxD3Vu_>*n@LN{;go3%CuMxS=>hi6Vzl z-av@(NpBUSI`^GQu#c#YpjE=Y)5GL-w!zcCPNnor&)`!A`pni(pHBNhHHQ7$1!xQ?fx#*k5GG%!+jJYn-8h8g_i9H2gg;_EXIv(1F` z>V#>m)Pwc3`?E!7;5}sWwUl&4M+*bFmSsn`mE)N%s${J1e*fUrcYXKTcfVeDM?B9V zn%xuZlsCJ#C%ChP*qEql8e6F%vNn{daV=%mSh?&3{91?78W(0I8o630y5ZpYAkUIF zmv8mHIr62P1;A3b4P>cz31RsN_xUrSF>z}M=-M%@_u4@crnHoVSsF&h*g=BS-jETc zAEc$)rIl{OEzq`_(ATZrr|#10LfED08>(9|5MWguS`??_v2sa1s^f-JRgn=$s_HZW zzsxkr(l>$@(Q3$V#Z1@|sapfN-0pq;FX|_dta4bXHl(PErbM->=ytBEwF22HzLo2y z(W@8>kfP3wJF9hLWc3ypNcuf1%VPx?Aq+xQBS6LeRTC>Eea4HD}J2F)69(eARZQ zy#}AjN-;|i`zAfmS4y!o_nnu^y=MuW2`vzMVu1-yoZbI}O^f_;oD*7bymll6ofo%Z T-(~)HxY)`iQHLmo&8Gbm`*5s? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/php/property_feature.test b/docs/_style/prism-master/tests/languages/php/property_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f7790197a5016b0876e04d4d2583a9643bbb950e GIT binary patch literal 427 zcmY!>ODxJvOv*{swJRvfFGwvaspRESNz2dIwM$AY0ufcbT)bSmWB`!9XkISPXeF2( zN;(QkDsWD$4pQ4a&bm06=$U8bC@Cw&>fn%p jTB;Pw%LPQ_+w7c?nw(t>G_6PhVtr0#cB%r@4aIr@zdbV# literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/php/string-interpolation_feature.test b/docs/_style/prism-master/tests/languages/php/string-interpolation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b0d57f894c62f0c4bbb842b0bcee575d8fffffd1 GIT binary patch literal 4371 zcmdT|TZ`I26nJekkY&Hhs>D<%5(4V z7f#{OFE_Yj7~$ZnRDz|>_K;9U87`zwpp@5p60bc!8^RVdgoAp%ck35hQYQ+YMF#8B zM6*b0mQEb_=CgQ=UJ9m!PE^ERf>k1zT(C!>zkyhP@E(p$H>1oPN(oFHIsGMO+8u8; z8`0);enyH0yJNK2sBT6n4F7o7zS%MwjXpm-bUR;!5_36Yu~uR92*?Jj7$oCly_O2B zaZ)E=a>o`#{Xv#>J8;B(w*zN!`1SMShwotV70T>G#faf%5bbu{6Fw;C!A%~Y%LG{9 z{!Sz~-_14ULxzi2e8LS`_z*`PxAezN9xrJGBfjAj_kG`p@H)FD9PP_j58i$3wcr~L z6!rKziDo(pG!PK=@$%Uyd7cV|6F1~Gf2%I+Inq?*{+>JKTBtxvbE{idR7x`zOzIyEj}Q8=kz(P2jAl1r_WGf8QWGiy{y^Sdp)Y_?O*&bG{HrQA-v zFw7v%2<3_uOF>AdB$Eo>$B>SQ$mS*?lY+nmL;t10Gq|UT!kETXm|)eiUP9ud* zYnweS&5QSeIpsLrt7+hHM|Fu5O!?aQlqi7rC9Z&9`ARvDLBPg>L*{iy+=)9X^m;pI yUa&!c2q`0?8EBiQE&+z^fNlqnIsJwEX(?t;F=6C=&ah~aZc~GVu;I<; z8{QDd@lBFEU0vS$-mPdwsS9SHmFm^^2E)ep;yC8`#(i&LbR+O6v;v`^cd`z_UGjLH zYy;nWsH91vQ+ zEfv4HyJ$d%kh#_DF~CkT2fR%@<;XrGcfq1ZEoPM2_TDs}fS~B6s%yaZVydlG bisj`3BJ#cNoRONGU96CnU!(xDu~-iPU_4qu literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/plsql/comment_feature.test b/docs/_style/prism-master/tests/languages/plsql/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ec8d4bce63551495c966f9f7bb21e52a44336f83 GIT binary patch literal 279 zcmdPb($eSU($`W*%g^WKN=htJ0P%HoK^P(iVv!Dbxp=vvdAT^Fm6G#wb5rw5lynr7 z^nsQs#p+-RgKUZ^iphi6k41^DE>=O1KBZV*E+8V`na&xh$=Ss~qly%uZY|aW0CGA! Ang9R* literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/plsql/keyword_feature.test b/docs/_style/prism-master/tests/languages/plsql/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e000f7273bbb25de22e1ca71f1360450b8e4c897 GIT binary patch literal 7282 zcmbVQU5ni|5Phz}|6$qZw9t@0Alth4Dl1ElB;WlAVJU4&A%Q^hQ2OtCW+dO6(&K%| zvRsYlXe?sX=~#Zc^nXp_nETD&aIlPN2v zFqv?ylZ0Yh<75vmU;&fGsIv<$7dPT@O{TaQ`p$Ygt3&O)6fE98jCN_zCSsCMW9IIR zS78D+1>^e;uhu3exCf8wi9_`pcF98BcPDEW{JLqf7|!9hxPz1Bx_P#f(=BuXubqTehH^PBI!JY%GlN$c^F5eR#k28F+|ze&&Dr#w zH|dB6Z%rND+i;W(^KM8c!5`k;+1IssQyaL?yBQ;62|h|t_!zOoS=Kq52k}oRm?~tv z4y~OB*>bpl6}8Xa3>Nd9S6>{WrtgB8F^gc(J78nP&A}p=Lo_vhL%aru$P1K|OzJgdD7a8wxK(vYwE-e-n7xQiv?Sk;ptw(f?vX5vn zZR}Z0M-$vr3*eZ%31XQ1S$7Pl*CzNmo-LrINy*g>Ud(uhE2QrhBT;Mpvkf&)L@~=T zshEl|UQEX6M?027vSR3D`tmFD#_E=2jx*-9Bqz&8bJhq;2AkV=3FlH9I4apOCYY$V z@MDt=5}1g1{V@{fcn59)#D=zUO|?f^Q&1Nsivpv?Mo~_4bWh*O|qmV6JuJg#Jm@sU1Pol=}vpk`n442>eF-}#eI{{6NTnM=k5TUxJJNFf`nt_d{_d8a(itktP{VKj+x7TI@w_wx_@iQW6Y`|17dr;q>q z{pIT)x36w)je7d_!>j)R@;RpZ_I+lUEQ0IfJ=4^ zc*pd}B&fQas2ZWc^hiF4x@98_+0v68tmP~FDD}=IqhWS6#o>tLJPfHx&_0qG)Y7CK zNb)8M)m&f?s+ko>CDmex=^Dc{f1?1tR9iyF@b)byP)qq3A~_(_ zZ<*jr7<2z6ZKQ@+0WM7fX=2IrnrU)irfPn!T5?J(BwJ-_OZub$% zS$EL=F9M3Pt=!|b*ZPm+wIJjeD#RVY9(I9RL+-#*_Hd}y795kBfg!aHWr!B09AJ@C zOIOyv)v^rI;+6waV^QQ<{!&=#VGf{tpomt?%%qjjJ5a5u3D}Bkiu|YQ-sz#W_e&VN znrflWtZL=X5ESt{YOU=Vro}!5Q2leg&;bNdet_yh7*IVsNR?7x-RbeVkPg&>B~eI4 zDlI`Rgs0$u5*HL|Oa{f2+F;1ep|9izH`qDxl^!7`;7h2Mef`0xu)dXIp@?U<-A2Mt zi^|F{NN5_S2V=9Ney07E*fy-Fz0}AcZlmlFgBo4LA@D~O5JHIp!Z1-l$VU!< zgQ5UPDW<=&R2;p~Rvf=e+&UcliHtvUB|F&f0{{R3 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/plsql/operator_feature.test b/docs/_style/prism-master/tests/languages/plsql/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1422bca469c3be8c354e1e912c327aebd811a134 GIT binary patch literal 172 zcmcDr<>lh#(j^0c^hNV>aYifU7o-*?mgE;H=_n{!*($~Iasd(fhB{}YCTABbq~#YW NBDJo4>PziyML7}d^TqQ4a&bm0CFSSmq$cJm z=_n|vfb3L?)xi)4xdN*=&|MI53@u={V$%b5Jyr>jf0SZDE&~!|_(>O}H6*pTBr`8v J!3pB6VgOyQOpX8m literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/powershell/comment_feature.test b/docs/_style/prism-master/tests/languages/powershell/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5f6becc78d9f8caef93b9cf4fee43f6736e49362 GIT binary patch literal 439 zcmbV}!3x7542I7QIu?r9V~ z25XfI2%?1a(cwj>Nse0HjY7BxvTqYKLS?jzg=#T12yO@@>9+UVQr?;V&(1wUyvG-CRX)Uj HD!cSw*r#_& literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/powershell/function_feature.test b/docs/_style/prism-master/tests/languages/powershell/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e7b07af93db869517670111c1822386b79422466 GIT binary patch literal 14316 zcmbVT-EteZ4!%B`(K~Q*T|GqWI88Efqp|Gx%yfFOT2a!T?BCg4N%ndA^MM4pyD~s^ z+Hq_W_z3=kSOCp(lV^j;kGrBXd5KzC;9rY>XOlNon{^g{+c%Sg)`HjK@43y)Zrhrj zEzPdj@A0cMcH1r&Ha|ATwpoc^d4I<5zBabYdTaK%*_UQNnEk~Z060LvA;(XFf4w>E zI&(k~jLICqYWwBl&^0F%A?R>22mHQNg(>W-De#ASDO@iF^-^?|DIEXOnV&^j8cd_? zO=YwGgjrO@a#1y>dN5UUMzuB7+0>9xqvyIX_1QG&qHWrpX?xS2`XdULo#`;p4u1ga zY;C&2pr@|FoR^CZ4Z9kA{G9QFh3RMvJ>>Qo#Pk^k-$O#5o8Fc-AMgkNj(KHz-~cPF z1-ry_`=$d6m6lqz)N;s(gaSz&tTjW2mcv_X&7~^_yId?6zwUOcJM7hIu$}Rhda#%% zl|L8#&~$IE{9vmsL)M#3owY^n=uZ&0T-+UP{coZ?5jJsno4<`}K{SoAd0xR#HWHUjG$80*b%oz47;NA!C0 zXsc$xxF;l@Jtn&^4yP{js{=Xty9K(hrA`f#r(G@=kr=y-6sboD!2z3W#{FwC*&E1v zZE=8Czm`ST8?M}y#VZyy)S9|)u=}Bk9pvJtrmM2S?-i3Cn%$|id}f(8o&+?w&+=n9 zK)(Iz?u13I4A;Kl>@OEwd2;8DD=)>)n%`|0ES2t#MY(f3>uOC^W%X{k;EKCkyoGDJ zBd#@e#9cHGs)w#A*I8}LQOv0vNcj)|lf&*)$=x7Fi+3rKH>Yi%cLm*3qWSUCy143R z3#CSMzI9&S=cf1L`P>YjidP4SL!d%DqSW+jvvr7X4OBl}DkA!2_Tv1)J90S81eqQl z&)nQ)Ww{x${3q8xcEy?JxZa@c8O!YFF>ag}B_1$ldBsGPM{Gd@eM04p?aoE+ml9ec zx0~kFjrE{4+(<~F#Wj2Wa_4u!%XzMg|DL> zP{lFkBCTmz{Lk)O?@Z+NH&}bz942I+71|I5s=O zloz{ww3s0s{XnV;#(c%m^*ZodQQ`K+^Y`FiNzzs{7!&G#NtTNTyqR9_#Zo*}f7lCO zdMf$D9ZU33P=yA)T!hlBEw2yp_|9i_vBv~lL*5kPt~Y$Zd?h>zv)W8aek!1BX6)~+ zSDv2eUK`q9Pj=97&Is{TRCd#5wPVE7LL96z12L7?x8>sd2{+vCGaNNTW!E(oe(#Fi zkHTIY)!kI0{&9kVLWMQnD0;W4>>sScstiHM8?{q&G4qveSfsM#cgxfIh5ns zS}q>#0oo7x`o2CCwe`CaiGES9h_Ur-4JV>-MM4v@q2kkqvAFt-=_<7Q%=8CfQi*4P zX{499$R~npGsP2Wd=z3moQ9F$^$6FaO5l3fO`4t?{CNK#ZJkxK*}1yAcFd!47(YpX zO&3?=0nZXve4X|ErGeoHZc}2loasUL6((H-6W0;=G&x~pC(IBh4971|PsMOVHyOmb zCt>4E%b>Hk7LF5FVZWG-t#_-3tSBF#VX}h-A-sW93hx<}>A7-jzi~vG&f2l!Atml? zn>@i;M9YP*h$^30aXM6n&6W??f8X~+(R(pr+g$h9vM)83uf{X5IW`wsGpD_{a`hlP zYB-huoMsfEK7ccQuM zO*pQ^JN(?wz7)($7Tz*nq_uXmu+}d}8$ULdix>KGg0_aaZhZN^>zXc< z)5Ud!!$U%o3q+*DUm?@sD3KX`Ez-%IA~E*jzV5|d_u`q^UnIHk)`(V z@?IqG#1%itGUU-!qF`~$;A;}W^c^5FdB zJ8`whohHIB;`Wf!O@f!=B9`Ksv$swXBag+o^h7u;RFN)@rV@7v?mh{+G;af^aBqlk=2=wOD4^ABwz6nKyH%R$APeWXX9%S5AFhT)M z;}f?a6k)i98KW2pr2BMD@O`Kw4WQ^p8gXN|K1L#o;8;nLi7zS_E0RF7*op{{!!0T3 z)M1gvk&B38GHI0L;80rR*MS=e$I+PJMj%fS9774@tqH~OPHH|8^mnIo6&4c5H;WX> zh|$fS;Cs(|3g9D5DTMs=yo*C6M6gfAMN<>7==YE?2<%MaR|*0lF%D@Z0OTS`uwC3M z!KYA|#HN^t3*~9d7%)=--W!)-zl*BrSQltZv8S;&73Tv%8k=068qd9TNhW;VN&Xnw z(_mw;PeYJvOy&7Vzsg3?K<821P~*}ooZ_YQHk~4PIhb}HvuyrZ33-YhO}lrq^h-MkF&;}xZ@L$5Q_!qn%EG(Ey>vTuBtI?>A*-A;i*yj#M=5V*vgN5v&X2#hCIEkJy1 zNfZ*I=}BfvuTl(JJ%q$m->b+}-Yep3I~91hMy8)jlECH@2l=HXAe6p(#N|`~t#R_) z`}UG~OM$POB7Lra4s&t9F{wZUCR8mAFr*%6%~M*A+FvCoNMb1EfKwJUwzeSDG$b}? zZ7Fc3@hJU4<8elW#`fRC5_g(5A@Zl06cQjNSIEqmZ;@grPhQNwm?UM$!Z>+jlBbcx z#a?gP2yqB_22~xwDG}kzQ|@|9`MAYbG!6HnDVqs9rEeIf7@5q~6%qq(eL6>&YVAct z!kim1s*T2w5b91WZAt^Ml%%P1mF6P%6f<9Lu+ux#!|V!&=_)-&mOEz5D14W35k#gi z2{p?Ol{hj*3@6_txQRYuijLHLmbH@r=qhha?U9?$vwdVt;xnJJbD&Wu$5m^qeKS*2 z?PdpF>d+7-^>s-6TbI^joa;~<{@+)eBrLVj#E!{JT6Z@-ps0`3wI)99bVzy5CU@K5rm#P%_zO60l=tSIeS;+5VywHr?SMhkAeOW2Y-ndES(0CfsurkC0_ zHGwf7Ol&^S5R)Kd(wNNE^2ieCkXoifZd>*-|4fx3-$>06on@&>GN*ZKGJl@RCSzhQ zn`$!M%y$z7U#Gw&K$`1sk|>vGow6scvgsr#V}hN^RW8Cb4Nq)4$;=b^W3HagcIkTw zHfQwd2<=;Cn)j!-#yjRx0d)i?2kHRM7yR(oa)F(^uG>;q`}@$EJsf$tr3&!+4@&}?RI6}NdNnrYpnT9G@MK5A5 ziUUmX17>v?WuoLdWWHDXp6^YsI3{o5d!q&0;o(cjHJbp7jZC(j*mzO$OqYqy1vl8( z#Zw{nnAn&d$i)Zz@It(D@r|k97C(Iqhbt{}{zk2h%n^HK%;+M)Cy5psv7mtn8;EE{ zQ~Lju1^Y~7o}}~wG_G4lqsFuyls@*zi6DByeseuzklVh2srswu>S9LZ5Y{@On^+Vm z6D_0>P4?(`FzYCT?zQ8b&D8Gfk7@h<)_RvpQvtK1rL~aV8C{#(Su>L1d-PxL-}x4^ ioq~;!z)@*j1AZ40l_FOu$T>6?QV~2O!p-g7?EVLOA?2X} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/powershell/keyword_feature.test b/docs/_style/prism-master/tests/languages/powershell/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ce058862a4b129cb5b449f58092c7fa12737c9d3 GIT binary patch literal 1230 zcmbW1L63qk5QWc6!he`>cK?J5i8r(AdN3Xu9JH~tZYg2;_dBhanC$Z+A<%p;(+t!1 znDbd%ntN7PTBuN8Xkk>>(ZboFZO^n+LD7;MZDs9fIa<}~dab-_sWcs@$Eu;yp7N~x z)qyH)0(*H`Wz0yGleP1ulD#YMTB>?m2kk6L)yf*#cvE|Q3lujshD}qZ_@`%EGi?SP8{J;K8))m*O&%ldq+vt5PTMnmD^L52HcWfxuZ?j-p5@u+8&|A5 z41>n5PUjBAje~UfmaO@ z>F27Kq2`BDb8aWJ%to;8N!qAfCNA5*_)u|;no)t>R>W7sJL4k2oKXEDa8N? vDHw=LR3IJ!O>sgz1`KeC9H1$Lh)=OBj(H~c8^QdH$=q@$f2lJ~+3fxRcDG|| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/powershell/namespace_feature.test b/docs/_style/prism-master/tests/languages/powershell/namespace_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5b8f568b4de432e17118842b018d21f08f5fa32d GIT binary patch literal 547 zcmbV~F%N<;5QS$+_z$F$Mqn^bFo{tY69?Fu4z+1a6KETH4EXE4A`%A%Let@L?R&lV zrL^oF$R;hJRrMtR2o=xJowTL3d$JPj}B}HRd3~% zj)rGb*HVBo+NC$CWvfJbR}KaXwnJ4IBrBHJ(JfT@?uJsU4WKFdWD#rcs|fF+0)_X@O$XIn`J_!FXuuKNJ* CBc2cd literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/powershell/operator_feature.test b/docs/_style/prism-master/tests/languages/powershell/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cbcb25bae5e139dcf15bc7e50a3821b364e698a7 GIT binary patch literal 1325 zcmbW1F;BxV5QS$VfeK#Y6${#nv=iwd(pID_hDorK;2^oR-3~o!=G+gMrPM@};S+adLK9V%ypKZsLLTlF9F-d)S5=2mI)jOk$ zqr(Fqlb6NOCi52vdy+vu+He<@0~EzRkm2J7rDlFMs~;Oaz-*vU;G5AX9)_tuoM#R< zePM~Wizqc-2ABr=w;M?OGq&Cu#f3Q$ffNf`DTZcEd59)q+47EQ*_oaVT9c3`6axWn z6HQQf2ZgO`zg-V_LCbD2&?B2WX7dr+rTd0;j9o{Q5yBeQ3(6(Toec6W7X$Bh#*<5- zD8jLNKu~GtF>AuF#ZA!}VZov-S+^kk0kvSQ)<$4vW#(gH$tIi;PhOAMI$;4|<9<5N zNNWhEXT;%e%VQg>%dour|7d7ftDDA$t-AGm&#YhCUtU8T;qE;COZMXbB^;D0j=ll* C>b3O% literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/powershell/variable_feature.test b/docs/_style/prism-master/tests/languages/powershell/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a956ea7265c07d62c057049451d97094df6a70c2 GIT binary patch literal 333 zcmY#M%gR^+B+Nc!E%LPQ_TkD*Wnw(v%kd|Mh0JFPT4*)>cFHQge literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/processing/function_feature.test b/docs/_style/prism-master/tests/languages/processing/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..44b741d439e10f41d439fb7c9c1184d901a48e8f GIT binary patch literal 259 zcmYex&)4APO3TlWPf9F`H!)HG@_4y)$p9dI(Y#!o(MoBhdC4W2`FTn@3Q9nem11=i sqLm6jf~AQtaSfm-HpNh9;L^j(6-$ZxoHJ6Bvx^nd@{1H;jx5##0FcBzyZ`_I literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/processing/keyword_feature.test b/docs/_style/prism-master/tests/languages/processing/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..efc41fa34fd5b0edd10e0e29cb613267d61ef0c9 GIT binary patch literal 1018 zcmbV~!H$F=42I83!aEqwv-<*b+{Z9;K&_F;0D&^DZ@(>?J#2a~V^qTbw?*4;$Y58k zMvLRZO96U&Tgsi*7|?}E$^^5m9<>6`0q}zmCJvchu%4EfwQ@5(&*b3=0okNY%#;*h zqg|+;B2#uRi&P`k!Mjnb3|Mo}s-Q*QmzsczmCdy;!o?M>Fz;HuqMNkZ7UwBltIszs z&g-@M=*2$t)i7eE|A~PQxJ%JzZw2dYw%~C0 zCHWW!IoHl^Llf%I6b04IlK400%cmYR2(<{0%S9L>p~Oj*1e>+34Zzd1(B^F{=-#>gU0#;YKDGB=uk>Zp+idA(U0$Q=#uxQh+O1wE{eR2oRN!G z6_qv}9Gugtp*5`rOj;Qj!UcsgAW%j`N)Jz&kSK{ASiLuEb(-z^UbfqJ-RuaP?RCTs zNvx2^%9WR^#Kf}WW!D+IrE#%!#>9b(ljIrh8S#l7?mnl8V&GyB#mL1dik^#J6cZN{ XiCWPt z@ndeUX3A=9&v8D+MRQS@Hu(p70vZC!OOD49EG7F_jwaeL#s05T4ShH5f_0Op(_UUX C$4p)T literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/prolog/comment_feature.test b/docs/_style/prism-master/tests/languages/prolog/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..10668e7771a025f74feb358c983d29dba3402240 GIT binary patch literal 258 zcmY#YaLdn6N-W~#($~_`2azBFUM`@J0*KGcrAr0?>5Jy&;*3^G&d<$F%_~vTQBYEa vTBQ`LgDwTK8>=u#OH5Hr9>h6HvAkSBM82DxGg6bYixtxHixi*^E7k)5VURe4 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/prolog/function_feature.test b/docs/_style/prism-master/tests/languages/prolog/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a7633b0670f2260bbc66c66c49d7200e652ca93a GIT binary patch literal 330 zcmYex&reD$(%|Jv%g>Jovf@pQfSkmnVtqp(Rg##eZ^X;R%cV;O0O^b7<>HK1N-NDv zF3HT#Q_@jT0@?$#Mk!WDAzG;bBwm^blhOc+Vp9)w7x8+)&c|jL#6wE4yj(y;zOS4! SQj@cb71HvH6kuK})&l^(zftA@ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/prolog/number_feature.test b/docs/_style/prism-master/tests/languages/prolog/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4d275ed5f2b9ebde5283c6d35026d414b1564c6b GIT binary patch literal 220 zcmXpp;^i{dGc++YwdCb8;N{}w(j^0c^hNV>aYifUmF6a;7Aff{D47^3#pNXsu$fViPp4*+#4EA0RP literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/prolog/operator_feature.test b/docs/_style/prism-master/tests/languages/prolog/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8964b34d8370f8bed388b8288c34face5aa374a0 GIT binary patch literal 655 zcmbV~y9$Fq5Jl?@%s*TgE1$jb1^Emg5E4TqBpX(X6n=bGAw?W3m#q%x4ws$n2R!u^ zFFoR;4HHv>8W~fL6d_Xq4<%EKBYdV76C5TN(QIa=^_apPXU%`vXJt1^R-ega7~l literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/prolog/string_feature.test b/docs/_style/prism-master/tests/languages/prolog/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6714b86aeb992a27e54ea38eae1b4671cfd2835f GIT binary patch literal 451 zcmbVIK?(vf3_KgiAIe;ES^b31*mzKJRfH|H{vQ)kaACKXZF?9xlVmag6Q-=lw`&QE z1=xpc_@AbruiT%6HLWr;mwI)~c+KCK=rx$fL z=kN03sNg3_3Q+@k96vBkoM__aw+Il?pz?P?!ug!YZnC&J)mkU*S*t)+PI=;ut&>7z vw8r(d>Ce1Hg7qif&!$UW&g$^U8~#Qf`VObA9Y*N2fuVbhAk`6QigEt}u58M~ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/protobuf/keyword_feature.test b/docs/_style/prism-master/tests/languages/protobuf/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..eabe71e61926b6cdbee4ddb6a1595a6d21676e81 GIT binary patch literal 691 zcmbVKyN-h}5Uk^`SZ$pv0wqdyKad_#n6OE#fX(@F7Zl~+V;ft_-6;}+%9`Do+0ihN zG5kz$P(oU`GXPCrPH5`D17!g>*u$>+k53*i0R2i0rb=Z{sS!D~+c`#>H~uTuElUCZ1c06HHw#iCt!` eH?jZp@W6&OYuo?4(D4c-r`a}@5bZL>6_zZVc46BK*I)cXhK{jhEQM1?rdskoL+w8}p obaQl=kEuIr^Y-xLEAb?elUjZI`m@U79rwYplXdtZ-)E%j2Jq-#%K!iX literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pug/code_feature.test b/docs/_style/prism-master/tests/languages/pug/code_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6bb436bae71c13a007004217512c5e3f7cd8b828 GIT binary patch literal 590 zcmbVKF%H5o44jFSKe%2Bg7N}jVP|4P9ildc2oy(25aRd5p+ZFkA(8QX=R4b}z;x4& zXeNaeZVl!BWCAqQYA~UMIh3%{p;1n^o1$b=aLP(CDH3-_5&B{-RewBgc}V>Z=&rVj zR}~FeTmV*BFEY+y62PRyI_vw5e9H{eJt<@Dv@c+q47tmgGQ&FIHG5>2sE%xc4l_0u ztUu=o(HqNBd|%xw8aeG%B+r!j3mwRY3;q&{cm6F`@jKY?PQ8N^X?!XEI9SEH?MXN1 P03CTS_F}BgUuO9Lm?e%! literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pug/comment_feature.test b/docs/_style/prism-master/tests/languages/pug/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1ca737a566685610964bc013b3a1dedbe7bc00e5 GIT binary patch literal 333 zcmdPbS4hjx=jBpJN-W~#;^pGhhYE0V0!4tLRUlEAAVeOjRF@0@GAtTsO0-gPer|4R zUWt;9f)d2^n4*|GkSmm8b#N<)DTyh8x(lZ|>=Iy;dAVXiE+E6SPuXaEKVN) literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pug/doctype_feature.test b/docs/_style/prism-master/tests/languages/pug/doctype_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7c13b12e2c90ce29c0503db8f0df1cdbb88dab7a GIT binary patch literal 358 zcmYevPcEq}NL9!v$<5*AN`dkW^$Zalkd#6|sFRPUvx1VYzJ9o|v%bDdh>JpmM~JVF zf>UB~X0ifMhrYh6pAs(@FPAPE0HiOPmy0u63F-zV9R(N@>^P-Z9bD2tyYa{(J3oey f`(u=pVtKiMhwB#_%uj(wnmDW!G54z#J!3NXZ0@)Ea}7pd={*_D)2MA_7hSepHTy*VEa98)NWh z33&SmTzD_NlYb=b=%n#!!=@UQkZZ^F3IYC>ZWx!q8=w2cE8L86(t`TchTKkc2k-qg z{Il$)h#Y>OrH9^~xq1zGa%Y*M@Bbfy)b`Y5EXYfsy(lL;>$_n;!^WlGanYDC)-7=F z`<>5u#RcGJHxs^#Dlnc?lp;<4~r XtMbg_$br-v;s}Af?&*y?)xLZKjCL<9 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pug/keyword_feature.test b/docs/_style/prism-master/tests/languages/pug/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..89af3f9ec9e533251bb4f91a30052bc8b9f00e76 GIT binary patch literal 501 zcmbV}O%8(~5QW#BggX${Y7fz47#ASZ)zwB@s+Aw-`Y_l6_pHIQO!!}J@K4i2J4!bBwG4D;0|n?l_)QabaGAa ztcAhv#|144E|#li6QU`O-IJvZb8?trj)pVHo*xqKwTgg7{##DkDK##Oe{#1&p-E`~{mFeuWkMm7wYmK(&Wf?*- zn&1##MpI8sLMip-loHBlci^#fN1`2IxIkkWE1)lcK;Jh)tu>EW1EwX@2(+;G?{&sB zrySinhm;-0C-Q(VKJV5UN=Y7N?YE#Xe|F)~<0mIELY4S1y63|WWmC z%TzcgQ?f!9&$}Tee&NBm6c|!!*e9J4JbScFP2rqnv&LK1<<8X12w4J(Ce+$bbzwvy zN*>!7OOetXBP_frxeb9#J+9C>%KEhB3i+1{XY8S)F~^!_o!)W9jpsq7SR^Q8#wf9^ z4cA>O#^qXgT(T2K$#{EK+c0Qz_h63r%!(SL(v)gQSz_zy;Oc4CwjZSp+klcYSMw0^ zk2^Z@%ePc}OfK@V#&-8ZVf?6V)KJZ1$JLSk9S0a*XYVm}$x?bBhPeaFiYsPhGa^%G zy(3r7)}wtkHIJ3w>^KEJwD|SidOz^pQIlLM(yU61yF%Js(FyrDaQGicFzuxwnyWL{ Mgux5viZ!(+zp!%{$^ZZW literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pug/plain-text_feature.test b/docs/_style/prism-master/tests/languages/pug/plain-text_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5e97fb014039bd2c32b2d4feea8ad4bd0da9a350 GIT binary patch literal 288 zcmbV{F$#b%3`J)Py+g=sy@bb*4pplLOBGwh*++qA0E?xINO z-Jz9M=0{1c<6RwQH)9Q=D;()W7S`6q+JmELvcEDGbEU3wc`HI+Ae-r U6Mua`qBsX{0!0sn5QMO~0h?_?1ONa4 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pug/script_feature.test b/docs/_style/prism-master/tests/languages/pug/script_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..649fbf39e73bb881aff1d31dc9f16bdcf2ded3aa GIT binary patch literal 745 zcmd5)yN<#z5UjD}f3UV8kqAhL4pH$LmJ1UtT#jHOdyU}l@h0JQIT|Wlt#)QTvtx(S zR}Cp!qo-^!&zDk+Lfgye(%@=Lc&6E}J=v~1&R@7v6dxQZq|ix71KAx+6xSo@1R&MM zOj@+>^aKst=t`=NE{#Cz7+PYwr(q=88<^bz7Y`fsJg}JGn}68(J75Xs$<04r*=AC= zM84WY!f;#Wy``RBID0_0#VPmt!=cp!VU6Ns>&R1DLr9X2!-K&Sf$0KdYr|F9vU%R? gTT+%Hx%&J=t$(oG2emzV6;d)a7Io!Nb=!sM74!|h?EnA( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pug/tag_feature.test b/docs/_style/prism-master/tests/languages/pug/tag_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..415f8bd9b1b422bcbd29ba14cdfa5e9dfb03438b GIT binary patch literal 1881 zcmb_d+iv185Pc?6{=uC}O)3E&fSP^T&q#SNv0)>q9XSr#3iaQ2#vyTJ>U4{W5JYq4 zemN2KIZYOA!_^bF*3`Ss$~M1bf?K}YYn^Raw&N!Icutcvsa4b2++ipz02N@#?0X}N ztokFX<4*t0mdrg$;Y@hm+V_(zE|orMgWil3sIueL@nCeP1d0wuN_7n(>T}*H*;c%f z;-P?-N(=c5dS7cy&uWz>>q;vtm8GQk;~THl>Qt*^nmkT{4Wq(HXLZMi>`H7-36>wQ z%n~p+*lw3o89pz7q5z3e*LRUjNQOe)NW-l*D1s+&9!R|JRAp<8wrpxQ;tk;)A5?O0 z86X#rv^YdX>4Kl3M+3W!M<#YOZw~|}A5r8Pwp8wxeqERFf9xG0;MQlhQ9-at#nji8 z;%|~l8#XYSOW_e`c;=^$EXxvnp|7;RuYeg? zJqi93Q*ehJO(NO`S_Rtvpl#z0FThbnpW!Ep`8Iej~SzYd?1*Jps?2$!t}?udE$XCk!Nh156nG x1{(;z2c{GQxYS6}L4$Bx0?O{`nrI5Y_rDr`)BCPvdu5KpX literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/puppet/attr-name_feature.test b/docs/_style/prism-master/tests/languages/puppet/attr-name_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ad0d4c32add24457e2e09f82220c7eb51a7b65de GIT binary patch literal 399 zcmbV|!3x7542I7Ye20)@v3rB|vd54eY*ALmwAgr(zWWl!E}Oel0`mXFKVJ+fLDdRi zb{WP=E+euRQ4g)Sv>Hwvd1tliFz^U8U~wyPq2g#wku_Gl@u<$CBg#W`PcJS5u+QCT z^Vw0#Vvf_h7lp5tWtv(2|D-0(FXQpa{bFZdE3WfjbG`fJu|r51WdC(8&CA6Zt(2Ufo12(BmCn%q zTiHpg%6lMl>l_-eTGfCEA82?L0bOTo^b}Adgh0k2nkM#+LhmSmo~DI_QLB5K2CW{@ z0lhpzIBWG}qv?#->e~W|{s&NVpQ2r7QxLprE~3?h;rApgd|t_vKSipH1@_ Oiq`ppN1@sz2y6EGt?QXjiqMCD2HDeHTnG$(~}_Vwhpq?99%` zILfzBLXh<+;Q02sKOi937&37{IJu>KAh=Wy5w8dw>{?E)0v{1V%xq*j?rY|`!tWAnE|fV2k<4fs>nq!-ZARf+ zpBtr5y;a@x+NObs&!45q|-L>@w3~|(L$#UgdmRX z=NJ2VIf3T0aC#$&! zt6vp!>cer)VNn=o$JHZ7w)ba8&N~KLVK7E47O|QM5}C3nV#txGuC;CsbEJYk3ZLKb zp}ZLJVmK(Hb~=R_i(xsb|H`UJT_s(n3$#H{y97Xj=P4w~te=PW2!umo!iYjRpa_J{ z3a3n|^Al1G)M<}^{$3rd0tsebsW8CIk7Mz7YDAz*vPYtw@jt21_=jnL@6EOLHqyba zTsC&#*`lK`(Ms%>`mOZn@vXr*nb%02h43G0@6u#)o2xp5R7$f%-RM#o>9irWM988q zkb!qJ67I3?U=bMNck5y=y@tB#6|UKi(|j?pH(b9o^q?@n@9n$ua8T)sWqWOyUm#|k s$%+A!QWtnHnGF{}K=(5>PvA0S)wYz})2HC|*X#fBK literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/puppet/interpolation_feature.test b/docs/_style/prism-master/tests/languages/puppet/interpolation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a7f116825d45a2bd68c809842c6962644f821c78 GIT binary patch literal 1789 zcmcgtO^<>w5Isx6e`qEgG(n>1sqwZygXMqi5{cCO_6^aATt~gPwe($?!s82Tfd{$KImR bjbZ4**%rRf|0~{3@!_*#i745_Pr&;I5n%3& literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/puppet/keyword_feature.test b/docs/_style/prism-master/tests/languages/puppet/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fb97edff54e990c8ba4522097eb9f5855cc58e5d GIT binary patch literal 764 zcmbVKORfST5L`>b9VV>ROLz?9f-n#}A`m|B#oOCG!^>M(D<=e+s)7ksZA*#dY^R*G zvb|TWoNb=xXj|hYr#7CRtJMcPV&4i%tng8EJX6prjO6x9WJk}ED@!TeeWlK)Q(jqI zD*f2L6?q*_uI;bF`;qv1S)!M}YIXYJlXF+C4p;N=uiso(b6kx5f1tS?KUjV-fW-m? zizf)5CIM=?h8eaI5aKI_DFFP>c|bw^o()pZumC0L0eHplI>a^Ey literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/puppet/number_feature.test b/docs/_style/prism-master/tests/languages/puppet/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f7df677a4094d53ddcd3b1c1cc5fb9d7e56ae525 GIT binary patch literal 382 zcmXrucqJ;+B}43S>q&Il8zxI=k|6 z@p9>s0YLhqdAT^FmGVk+lTwS6bQF{flwx(zgiMSu#h^~aB9Ur=MG))-OmUExu!zFE hh(!wKWu;hNE+8V`-_9AS$=SsUY57G85YHFu0RSwjQvUz| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/puppet/operator_feature.test b/docs/_style/prism-master/tests/languages/puppet/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..46ada00f8742652e8fa8ed40afc4c36b1fb7b4ab GIT binary patch literal 869 zcmbV~Jqp7x429imb7j!AUQ*iQ96|V&`?N9($VTp1dEqd=R;|;@zY4%REe|*(< z@@{i#ruTime5SeCq2cDd!wOlf7`h}(1qLk)MqsFc%1qi!Cd;PV=tIWfRNbqkDO!nj z!<8^utTtB5)WnrJRv42I8*ly|Va9a^a^Pf%^s9s@W8Fe@s=D9JXqr=Lwx*Tb|!iy|cK-{$}9 zcy0)?cFh}P%&YRr60=ZZKlmN>`_TfV3s-9-0QfWqtc%z#f^=wEcjw&om zdEbk?Y)lxfk#qarUXN6tBD5Sp5Z`;bJ~WMiV(i$*y)`d=WT?-obaYA5*CPQ}*EA;R MeBXJ3Wdw2m15y~YX#fBK literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/puppet/string_feature.test b/docs/_style/prism-master/tests/languages/puppet/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..584e2a7875ae31d1008336916037cb858dc62b69 GIT binary patch literal 805 zcmbVKQEJ054E?UbcM#gZU1`=UZ0s0uKAbjL!%URf?nit2Npmt5+CkPpu>JI8y=Tc7 ztxQYSQ0+qAlU9#>(5iM9MiBXD1_~qZe=`Jumvu|@1Y;C-8(=PMcD!6B@Ijz_)~dMU z(@LvSt5u0Hg|2_cEtF^sR@L?jWxb=NKf+{#?Zu|7V)O>D!~>mb-xQxGO3mTBo<)mH zy{>tiEIRVbEl*=JE3U#XD%w!YvFEN&O&G|#)DeShUDS`NnV)TN6{auOH+62gx~y#8 z;(upPvoI!VRY`O2n2AF2-j2=wBSK37@?^wktzLa3*yl((x-^Dh_KrZkKZ6?v-!%~u K!K~pww|xO2E8Wxp literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/puppet/variable_feature.test b/docs/_style/prism-master/tests/languages/puppet/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a4c9ff25cd6468113ecf64c0873547e539992d6c GIT binary patch literal 355 zcmY#M%g^WKQn9iE(n*O$@g_zHK1DoZTN zOiap2Rnk$2R#E}lr4$>hgGB}`Ur?HtTvD1?l9`_e|%wq{2~RIkBjvHLgZJ2 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pure/comment_feature.test b/docs/_style/prism-master/tests/languages/pure/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1e0519cdceef8309b867b4eb58a1ed4fed3245ea GIT binary patch literal 332 zcmdPb=jGDZS8&VEPf9ETGPSfo0$LyeUM`@J0*J4ysGzHxm!F)Gnw(wC%f-v3O9lYx zi{|Cxj8;m{&&^HED^b!>P}0{|iq*jsgt`Zt9MFMSg+W?kiemC0ZpNYn#S==gyj(y; TzE7ONVWE(gU!(x_PO%;UboEP) literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pure/function_feature.test b/docs/_style/prism-master/tests/languages/pure/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d1c366392d21723a42dd05dac3b3c64e28a8ee28 GIT binary patch literal 11298 zcmbta+m7Qn4t?GN>K_{YJiEY5H~I(mGX{geag@Yej_vWKx@*3E&mkozHG8N6b_*z7 zctlE;C`uyJ9GB;(=5#uox8an|kL5$NdbJzYG@qL`{jIt;xHaw0>*XC<-=?%lV@VC(G>;@B{c-ImJ-s$i52o!6vzmT3?TQxXuE%a? zj#WltTkYI;gx;;S*Y=)KrRto={sgg>{pxw9&aBQ2_QQEj=pU162?cLMyLO}3tpwtw z#i%X`bA{x<&FZE5(va>S?1+sh7qc~E6EhOI@a?PP5386Fw{Z70B)K2C|5+-_%<}%p zR>|9y<>flgdAMcE8adk$mUk6lrKrdS#>uwzwOO!a*VN$4JN`pQx}qbwfSKuFsj)cS zP}Zy)&PMLgdp9hJqp+_=va8R%oOOqU{aa8m5$m_Fj~u8yHc1z%2HLW~_E43E3zG|2 zL6)+HeTO-HetJnTT}WVs`sQ{#H6;gs-*9^}O)~`N!Zflim*2N9)8D*89@NZm-I|xQ zo6B3awHaB>+LfvE9K5#%^L9(OBR}KD(GAT2`q0c5^f?rUTp+UX3>r3P@f_rF#^|P| zeeslLX`iQDIJEY0rDjHbui#YNIUsHtVF0Ju#AJn5#4mhQtsC2J_@#cX2zu=8jNN(tlP(K06^A~iyu-#NAR?VcNArVL}>ctP;|;Kpa> zg#w8+n-cBboS0+capt6XA%`!rWo$TN>oUWPAi=62wbk_878u2n+u4PBvF&@&WM#6Q zT}yLAcT3w0_*lzek(fglEMqkvwaW!VwAtEsgV*-yT>6gRyA+kl1@yX@6O>gnc63N}BEbKwh+!8B(Z{^GG?8L89BY|WOn*v>B`P!U*COVGN^mFGLb zX5@9GRW+eVAQGu-YA%5E{PfTN;g5X3KR^BB_s``l`~1tN&&_f9{Kqfy210O>YxId3VI9tOIcY_te`N|&R+5COfOS$=1 z+WAvVbp*p4ka5CD1P?e#$15(PYe9VWX^#6tP~*CzhsUC1BMt+vF?&!}ApHq``bjp2 zG@DjMK2@bCd$h(#v{3fI4cKsP2oOIws$ld{&WfW(bKBFo0=;`of84I7?(ZJhHBr7w z_9Cb?`?#-QPKNJVET8f*qJ=Gbr^ZI67zSLdWMA37@UB(ED;mL@i)1y|f<)+S2!TN% zbSKo#L*nkDh`6iQ1+vFi0iuco$@`R>WY}PDrj7d>&l}Y+0Ed{KAo}TPr3q-lgO@VO2 zNpg}qluj+a^a7Tu5hJf}j)>b_9wBHBzX*l>t3cnrR>1g~#S!m@wPqvPkZ;|nm)Q7{ zv!b*Ho4+U$ZBOM8G-pSMnsXvTD@OuH6(0%N*{S5x{VC~ih$?!gsq&P_-cu>2a!Q!1 zRWfDgtH#c97j{D@)zDqGT2jDJ+`0i%KBmG`2x?o?E5N}A+}*=L&v%D$(14!f3Z(mW zH?w4ONLs_)6|ETQoK|#rssploo489`aX2EshkkC&Vvg_%1Yes(wV94Cwxs_iSrKMUNJlfAZ2O2V4y%Xx6pwE;^CI?f@DL$ zLDLz6h!HtBxat)L0~ZlpKg%kIP=+krA%%KS{eS>S6^5s{g3HfC*hI1*2qEd=QHg+v zWI&uGy3a6%65m&dhW8bM!HpzC`bI)9xnS>%U?;$nG!XTRl zm6O`bcT2e#Ugz%vIhMgq?qcw#@y4(bUntbu2afk8DH79$J+`Hr(VV#K1Kejaj^ zJQsOG@jzsJx;S1j1{S)M9ae-oBiSn?m9IZo`>Sky*nfAW*Iz0dg&pf;FRS${16R zfJtTqd*u2s`s=pgl=cU078q?J1 e2v_H07*^PQScCWDe)u{`f66=jo$NMK%rC#v6Y6dN literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pure/number_feature.test b/docs/_style/prism-master/tests/languages/pure/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..28bf6f35498162f115b3a3c65e0bc737e771807e GIT binary patch literal 448 zcmd1IOXKCrOU&ct;^i`^a7s*ZOH57$GLsApfsmKW#0ZGZ4Gn#Gxs3G;O$<#ffs9lO zprD?StFAdvrJiM~wjodzFPAPE0HiOPmy0u6DX%m)DYZyRM?onwFHI>{2Tc&@MzA27 zFx<_UI-q{QlrS;EA_np!rZCjcSR_&{Fa;rDf+-FSBc)hgE+8U5pqw*Ole3Ez((;QG JAfZ*P2LLNJVw(T} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pure/operator_feature.test b/docs/_style/prism-master/tests/languages/pure/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3b7d71affc36adfe1149de83712c35a4966d53e9 GIT binary patch literal 905 zcmbW#&8mVx90l<89hi4GO+q_G15w|UW&*GjaJcXw62$EuP@er7A?BRRU(K# z&dhP}pX4dh-5Cd)BDW{lLMyFWFleKLE_zz^F~AT$0*tg8Bg6z#%rMs~!U}6_aCK{{ zJE{lj8|tTf4ZVwd_+MOZ-BPQcrLo7XNKUpe9!!#_Cid`&^689n7DhQ7qwE}euI^t~ zi=&ZYYcqA2x=cMGD(!P_z%*p?nF6Mf5Ot0@7cxzlrc5)Yxe#?m5eHXHYo-m;RjAkB{f&ijPmuO@T1VGfOf+EM6{MG5|M;CjbBd literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/pure/string_feature.test b/docs/_style/prism-master/tests/languages/pure/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..42c1913af66784690e93b4d05f060051e5693201 GIT binary patch literal 210 zcmY#V;^k6G%a2jYPf9ETvU$05$p9dI(Y#!o(MrW7MVWc&N;(QkF+ivktAim5v@8Z< c9Y~&+3y8?K)Hx$HIlEXPEx$+sVso(`0C~nN&j0`b literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/python/boolean_feature.test b/docs/_style/prism-master/tests/languages/python/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..da7f1779df44977098d4f2d2ada07735a1904020 GIT binary patch literal 230 zcmWG3Doy3(a!br922y_cc|ekvOP34)(ihFk#Tl)Xl%JoInwY1gqo5Q5G+ilH2VEF! h9Tstr{YtUCTtGy=Bb+l*le3Ez((;QGpe`xa0|2RRGl>8I literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/python/builtin_feature.test b/docs/_style/prism-master/tests/languages/python/builtin_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..95d2ba142a515abbe9063b76aeefdea7af581690 GIT binary patch literal 2629 zcmbVOTW;ep4E$aJx&x7~7U=FJ_83JG$TkyeSC#}x&ZDPaQcl`#$gd{xYetU+6e3)Cl9cU~!Gw;K>ER3yueF z$tP>*+-MMokX(a9DhppqddFC?S#!k3v~Ub*aG}ENYJaBdY|V@z!%V&V34F{eHSn>~ zEm21B)yLXg9FcD8I`pYf2KN^*Lh!XgNHpJSO-Qshi_3IeV8JDo>&fHUnuXRY;-x_v z{vb^)jnqrZ)IOC7aymmU^jI1#c5(5DP~3UnM*{_?m3l8ovzsW4xzNK2OT`IFTH^$L zmUQZ~s=-rwO{GzshTiR);AIj6S zHSaz@S+n2!B@^#{Zw-Hce&fUKUak4@x*Jw{Yd-E?VCROqdwYTZu@EE{uM*=eN~qxE zJu9+5_pl7nSRMz#dtBk(HoeTg7l9g)Q@j_6(gVE=LGq=FWNgV2>s6+aZ)K-6=w&GI zTUjbhT&FVK%du~DEK)z}TH)qGmkn-(F9IwC3dyDnGMkk`qFp&8d{+{M|0XS>%}r_q zev=*zpA~x6CYg&Df%!>7tYr!(37eA3VkhAb@l!%~G1R&sHqnCAQevc@66|WK(6YRW zY?50AlPmNo#|ks)vmjx;7T~7e67FU2C_yanGPTH8MFt@9?uI~tN8T>WqQQq_$Vhh( z1!hOl_{n0F?9FmyfGtR%6&~AzfE4!pf z-dt0K$wdXuuBuRPHoIl#HI8j1&raPKpH%c&At8rWbD80B|9txR?#&wdec#G|&p7_A O{GY4;XS{iO{q+yNRW(uo literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/python/class-name_feature.test b/docs/_style/prism-master/tests/languages/python/class-name_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..31cb255e81d5c25f527ff5f6de5789f929876b3b GIT binary patch literal 326 zcmYe!Nh~f_aLdo<!syj;9ox?}*5zGz-9&S<6V)XMVwq7)?^ z1tqX0O0hZ$(GaF?USe)4NCM~tpfJ(O;m#yQQ@m0vFBcGz?;q!k)a2}9g|z%41xRp# IoL{U50N@)^Qvd(} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/python/comment_feature.test b/docs/_style/prism-master/tests/languages/python/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..054d6023d168b01d574d26410f92bb4d88dd8417 GIT binary patch literal 201 zcmY%9Q4a&bm0CFkenrskC>=_n{EE5+(yh(Rq&PYwpE(V%bqyV+DSPuZd+A4bh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/python/decorator_feature.test b/docs/_style/prism-master/tests/languages/python/decorator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c04d6428379c8889bf826202fc63f4a11bae2061 GIT binary patch literal 454 zcmbVJK?;K~5IkpJ5%#2DeSjyS&j>lBG14M+B~eO$-(4F-D!sU;&180FGieh&L)`^W z(ajW#p6KRc30>$l_k|o9&|H&C3E*;~01PODn+aB$0fnu2W5un(X&L>zxcNaNUt^6{ z@ZF3BCD4IctW5mwEn){oDGb4f@P1M3M4z9x&Kc~*IJ>e)Mt|1HCLG3phofMfn!H@RT)JcckiKYMF3xDB?9|Hg z{Gt>k9R($zg-WqH3eiewrFqFEnfZAjL7-b8f(0PK(nOfJ22hkJ0}x)I%$#`2w1b?1 j(*&TO(Y&Xr6wAv6MC1prb4F@%b}=vpixgntS*!;DA>)2N literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/python/issue1355.test b/docs/_style/prism-master/tests/languages/python/issue1355.test new file mode 100644 index 0000000000000000000000000000000000000000..c381b255f37545ebc505a144d9217c109a1152cf GIT binary patch literal 523 zcmbu5u?~VT5Qb+-c!#D8KmZd%7@d3s*}wtt#0F@aYa8R+ThKC)xMHY9Jj`d_cID>THAz9*c8N$|7GB2wnpXZBqU&?1v42I8(ly|T=cYA>z_ZZaYyZu^7eB=d%+y0A_U@#^C#H9<1)CM zF%@~O?7=OLiZ$1S?gl={*x4E%xe(6?Jr45OV*m^^$RndQ`0zLtzz2F5h+PP)HA74= zq+XcYXXJtbz4SN zbj$EYrB*!fn6%t!)O=v8<7<@@7bh+^bfHDuL!$MVo^)ZH_)r7K^LkW_eAe1r%&8aUlEZ jk%J*=8YLr5q*$$vHFCe-S>Gf2TZVcN$dLfg7Rz6Mwc}Ef literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/python/number_feature.test b/docs/_style/prism-master/tests/languages/python/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6d55b14cc843d2c64633b983bb757c2054832740 GIT binary patch literal 459 zcmbV|K?;K~5JlG=m^*}Qt09RI+igpG32_lMMQv5k7VPaC8@p*-83F_EG4TKJoO3P^ zc%Q_|j_IV!t1b+Jk_ZtKO2kJ5$;3r)>se&N#7cHBd%LD&gMbijc=KM0uuEz8YI8Ht zfKdKTL$lzY&*@h1FRibX^x4wJ7p|SpU0a{K_A6XAG()g|`$^7~Defb=^#iHQq)SuO Zt$qZgFP`(r>rM}EqPvnTin#NQ>;pM!X*>V` literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/python/operator_feature.test b/docs/_style/prism-master/tests/languages/python/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..67853366271478dbe7323bd99ca8a47938430f7e GIT binary patch literal 800 zcmbV~K?;K~5JlGw`|}e?iIS|T zQFHb1Jc%oB0sI&9W(zY}BkHP&1jH@%0s z|4g&1;7Zq4I7q~r0BZ@>D(EHXHElN^lKIDI(Ls_yaR-h2f#Nc`?3k<3QG!v4j!EHm yuSizFq%=%BC(H^+>ajCbE#x6rDRolXTx$)_^AGR#9PY0Lk7-6fj`+X8<@yCv&d0R? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/python/string-interpolation_feature.test b/docs/_style/prism-master/tests/languages/python/string-interpolation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..789cb832439a0841697ab5d41e5e0e3f213f2acf GIT binary patch literal 2820 zcmdT`O^=%}5IqNp|KN2GhAc$+QV)^#)W6Uhy_xZgkLc$I0blr36Ofjm72moAavj$>!b>08qHY0&2cKxdmF!Zg%%%9E^?h&1k0*mc*2xcq{y=quF{Oc z0C4B%WxwI^vVm|P^bt1?vXgmD4^=JG!FD(>gQD|LoW2h0;GU=5%j`WmUVnjvOL(3G z9$${v8oBHhN5fV`61t*#heHf)Neqi<4Sv%0Lq@+yQL$u!ZLBy8d$W;(^if~kl;!B;gaZGy`9@BjrqR=`4XkS6oi9Iu2$F8&PS zk@*VqY9dd%sAF$5%I`UwPI#zasnoKj_;92o0f5!O79 zjB-S$-}AMxt_F01NJ}*F+(fi7me3L@0-EwnvYQc^JxpTdEtq8c7veh#*04>sY+!LVoVY2RVF};z8NJ Mo7jU=d(|!e0?M(|B>(^b literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/python/string_feature.test b/docs/_style/prism-master/tests/languages/python/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0bb511985a517d0b1c2d909ee8be29c4451c8987 GIT binary patch literal 485 zcmbVINe;sx3_KT!KOpzOCG98rjJSsqC2ds&OHT6t4uMnP6c)+$jF&NyH8cs6gqOnh z9v{9>KI|QHS2xH!k8yQ{W{na@@B_#Ko(3>w4{gZ;WXV{s-S4cM|{r literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/python/triple-quoted-string_feature.test b/docs/_style/prism-master/tests/languages/python/triple-quoted-string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ab1e2ab759ef5a0a41f2418259cd11537d5d3fa4 GIT binary patch literal 443 zcmbVIF%H5o44kp#KSalnrQs7iqv_B>0ti$?S{7c9n=lj>sydcqpKP7(07Q|lO#qm* zM1e4E6=CYySB9;%Wl0;RJlXkDhMC-oU}CD7HZ{g{x!;0&JY@_=H|W@(P#O6A3V-R* wREsV=#3$cRTBcvsEW4k}{m1n&X7tPDX8LgCXF<6v=yr&e)%LPQ_`_VZgH95OjAuYd1 J0pfsSJpd6LNdf=> literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/q/comment_feature.test b/docs/_style/prism-master/tests/languages/q/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c78bb336189c3d2caf43f3ceb7955cdf40406c64 GIT binary patch literal 381 zcmbV{K?=e!5JlGx%pJz*wl#N9@DiOani5f@2`1Hrr#B;|gwj>BNXX;Q@P2hP?-Y%F zc;ozsUI>P+A=o|=+y2W4nIL3@P(V?huRlMR;bzCtWi7&?NPrdxx3++=oTW)CDZ8#-_Krt literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/q/datetime_feature.test b/docs/_style/prism-master/tests/languages/q/datetime_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..92fe28c53fd91c8005b007140e6f41d6875d981e GIT binary patch literal 908 zcmbVKy$*sf5T0$)cW62zIWZ>6>ds`+fjAJ0(HJz5!obseS1S@Y93))Ye)oU(K~^cq zEJ}ycptLAX3NQ#7htf$QMFOi$47;ko#jqXT?eKvf!5*y+uuYRqx=vUy1^`S(CgEtp z*@ly9=_7n@sdtlN`Nv1?5@nfbiKUH^{KQ-Ze7nff))DrnM^8odjRo7eC& p54@W7Le>(~^ic}@|EJsjQl4(LIzOI@I9ErCXjiM^Zav^%@e8x`)-(VB literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/q/keyword_feature.test b/docs/_style/prism-master/tests/languages/q/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4851408e91f37008eb99b0d52e64ab2a53699b33 GIT binary patch literal 5445 zcmbW5(Q?~15JjJ>8U2ID&uJ#@G+)rqh%*_Age2G$K?9^j7DuRr&@{jNI{i9T7r`u9a*93`f~;x18oi#S=PqvX>0ep#~Q z^;Cu0AIy*tdQh`I#4%3N_Gy&1Pr_?IeOjl*_g9IWij~FptI#2gVF~rRbkYpLy$?b9 zAs&xGMuu3HIQ1q+!y433x~m!mjUY^;^txUN!b>}ff&196rp0zlYkkv<=7LPExA9+)STpBz3H^w)0)J8X|;rJ>GW9qa{ zW70g2>E^~`d6#J3jZ2R5;8IuV(rv!oWbpD>gUj$$4|R4gL3S=-=_Kuvgo&+DLoTa; zWLjBebqeZq3Y%P;lEvz{@vNn*9htlAnVCb^pLLPPb8~*qvLPY+bN0&4Il5V{F(>)v z`z1OkbN5p=a_9yHrZ0c^(#JWc-V3buk4vb%x}p%X(-7tJ5N3f`(PDomuy?1X)`nbJn7H`$tn_6x)KsRj)y4Ty`qf$Z&^U>e|K!w0%g0EEdl zFIC;J(8iTeA1j0xWUmWw+eyR<9ZjgfCDs;0_qmJg8Bm?fg!-sPTxU1oKFkT%>5j0Dd%|`81FT$tQJoy5aLPcqPieqg zQh^F*8Kh9O66`#La3v-HJ5wR}k-D&oo6znRDfV#NY55TK=L89Hns>zja6gC)Ct1LD z)`c*$X^2YH$bvFAglW^RxgD{~JE0%MRZRzh@B9$qjZu2BT1rX$;VYuJD=G^mveHt5 zF?O7|5?Prn!ffQS5;>uFN~D0S^cc~NqD%=ik(E&cj60QcZs67=oN#C5gi`?5yq(BO z*8ZQPIkQI?SG?x_KzA{~@EgJ|7f|t&Uf)_!5Zx69;{TQ$sN`c(wTX)oYT+t{@LINz z!leu0t|0*bfbPr;(W*yO(5$GwBrXSwDo`S;Bn5b-4dPL>65UlS;kB$qh3Z_y zUHF2cR>Fvr8CS_fcJWL&fiACsTkCDaRe%#-D{@lM6su+@DxWilo#Ub=AbND+6HwJVG#H0x|gWy@C#KOfl5&fF};e^>a>L203_yR(-7lJqfiv(6jVNnNiq*5#|7Z8!}Qs<1+yse)f)U+0`v(v351{?b-s3 z7$wh6f-@HnFYuAUB`~-b!6F6*3xV+6qZbSqn0Dv{4H~8nPEep=I$;v5SefqF1px=V zVH4D-nYL&J6)L7PX2F7mX`T%)JO_8lv$sq6cfEg>4&_*WI6RfYS{Y8q&XePuIJ`D^ z1Ndn4Xbr&_LNda%upOf5!1HHI^&4iUB!*spL~npW%R|C<+Rz!k(Q=dUP8*!z3oRE3 zKWW2c_*Khm!tdI!8{V97dcd3JH^bLju9Nw#HnfJXv|J_ptPQi_7cDQ8^NjKOJ$nDX Pe*HXf`@Q41Opoy&@|f*5 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/qore/boolean_feature.test b/docs/_style/prism-master/tests/languages/qore/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4019c444f8b53c40620226d2914ad19fd46effee GIT binary patch literal 201 zcmXRZDoy3(N=wWs22#9Sx?}*5zGz-9&S<5i{QR8M#5^S(1*H<8xk|A*=)z!&lwx_g YfQWqCoHJ6Bvx^nd@{1IpRu=040MAk^8UO$Q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/qore/comment_feature.test b/docs/_style/prism-master/tests/languages/qore/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d7f52c611b79546bb49c1fb6c11f321b73318497 GIT binary patch literal 355 zcmdPbQb^0sSJ2Yu<J* zKQ}iuuS7{lK?!0l&_<X7tPDX8LgC7nwMOXnV+Ymqo4$| zL@8EBAzG;bBv_gV6W72hstFXuW(3HcST&Gf48o73nZ(N#OG%J8XQU=)7b~RY7b(EP HrC1LDuux;~ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/qore/keyword_feature.test b/docs/_style/prism-master/tests/languages/qore/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7f69ae0ec90bb2c4e45166e2271ddaedfe72439c GIT binary patch literal 2458 zcmbVO%WmT^3_Py^{{xY8cYmPA{fwdq*`{l46e*D8q~5RJq2xX`RDqy@AQ>$@QYM>4SSG(8n(=RH=4vWnmjHvE+ztSSo(;2m|zG# zWf`;eE7N4M>AQ(%v${-Ez_kvJiCqE}`}KtJHM5_DVaDE$%IG$lT`-yEfGu7^4z!rG zke&O^p3aU>?6a)FL%^}EUpU&F0N?<|j~r&P`dkK%vl$tH3;u;p8+nuM1xN6F1?ody zEDU~ij>7PV5tFcD<8bwKj`m_QQ{K z{0RdN)pzBFr)Ye#2oq-bpqF4Lx&#M$e1PkMvG4ls=Qn<`?y2v7JROd_T|=A>4|Fhl zG98{D=zoLXG**&L!8Q2+-;ztc_ky z!of>O9$Vh163r}C(?UxXDT7p1gL*GB?H(GCl%ay9EE~j9r!BY^Ze_XS)k|TkJ@<0g zxRk#}L+cZWJ}6hw3kBL4&~0{o2uk(8<6WxkX!>1-TARG<(*2uw34l7S&sEOu<`L1W z&Y$Y_q^q)uVq;6FeTVD&o%Hv@<1xt} K9oow?{rU&q#{td& literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/qore/number_feature.test b/docs/_style/prism-master/tests/languages/qore/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0385aaff4a0f5daeefe35ea17b43b6cd805886e4 GIT binary patch literal 342 zcmXp=G6VtxAmHUPsBlV5aZ5~21u+wo3UrNmxlD|Bxs3G;O$<#fK@6i*i!@#?UM^iS z07zdnFBfODQeJ6pQfiTsj)IZ_+*;=-&(CSDx2QvX+F~UsEs-;sXn*aa+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/qore/string_feature.test b/docs/_style/prism-master/tests/languages/qore/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d8cdb4f531e3c3a84be8b36205cfe787acf23b8c GIT binary patch literal 287 zcmY#V;^k6G%a2jY=jBRDECTY>)qxl&q7D%O@_4y)$p9dI(Y#!o(MrW7MVWc&N;(Qk zF+ivktAim5v@QndgqWh3JfI`6sZm$Q)CY1U(3wzOKn1*9Kt#T4oikFCvx^nd@{1H8 IPA=910M{Ep#Q*>R literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/qore/variable_feature.test b/docs/_style/prism-master/tests/languages/qore/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..693dffb7ad9cfb1012247b956a0936c4c5a5e053 GIT binary patch literal 258 zcmY#M%g;|rEaK%-0W#u&tauY6Ajb_V%FCro2H@r5<%;Iz;*3@*ODxJvOv*`B(os+X r*#NXaDOLxo6x4F8(h%n;#qx3i5&3R%&PYwpE>=j(FH(RxtXK~Ka@{a&zQ4a&bm0CFkenrskC>=_n{EE5+(yh(Rq&PYwpE(V%bqyV+DSPuZd+A4bh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/r/ellipsis_feature.test b/docs/_style/prism-master/tests/languages/r/ellipsis_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fdedcd8cc8a82aab3dfe9de104f0451d174dd6fd GIT binary patch literal 251 zcmbV`F$#cC3`1uNy+i4&0mU153~>;xSp2A1?~gjTIT=ER2Z0BG2`HbbD<-DmN1k8H zl(lLp`5qpcivrLt|G?!pt}E@B?*5l(W*e4}X*=XKk$xQ|b{o7;;-jsnPi{xx0_++$ AumAu6 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/r/keyword_feature.test b/docs/_style/prism-master/tests/languages/r/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..67132c4d50b4809f2f7c134fdc31b1b2a680a2d1 GIT binary patch literal 615 zcmbVKu?~YE6r4-KKfEy8{)6di+&UR!sC`x<1%o!)zb~LRZJ|pE1KiysxjRGyCswP_ipnhmT2{3rm2BhLs6?K+Z`3F3v3c{eZU`$T#be0h>i27b<{U yR*`8RULba1hF}_*e@i>g`uOA2*2fR_RS+vFvHSm)jxE;R0PfdtDPgT^I6MJxz^n}b literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/r/number_feature.test b/docs/_style/prism-master/tests/languages/r/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cbe9a5804c74c2f2a2c165ff1f0db0c0bc93f428 GIT binary patch literal 656 zcmbV}L5spL5QWbM@*jp=ZNnxTL9dE}AZ733A=^%{Xlqdx`tzNMWmz^k8A^El-pgU$ zRK9|JAEfvg*S^{L8d(OXon>K-wnJ1Qe9avr^h0T+VBgt;6rb8SvskgPTS_>bFDa)D zmWDF6C8Q1A1o%ga@{Pmqj#A8ys{iS}@vaI`m9NyPfWL@FA@nczJ6g_)qvnj)=s71= zkuzd7so`vn9a1<|nKP)`6m!)novKd_+op_HlhU{RUHlafH`aANmQxEt?|% literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/r/operator_feature.test b/docs/_style/prism-master/tests/languages/r/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..dcdd8b93afa8da43f741075f67c52fdae19d78cf GIT binary patch literal 748 zcmbV~&kDjY42RDK@(#b1(SurdFKrQg3{eo72o5Hj$FgU)J$TUMWC=Zdd`bEz8?4dc z%(S4zp2@+b5{W4xMW%od5gbBrOcAl522I&5tYyl`naRU@rjq=}s(DAI)zOU4e!9HI z$!uXZ=Cs8(T1(VPbS_9#Tcp=YwAWId^jy+dg`%-yrl^TQmJC(=d4r%Fr~HgoQOS;K t>qfR|RMAS&RwizprI;%dqL-pCjH$%`({#A^*T;<8IN>r3_>9%Odjkk2yDtC$ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/r/percent-operator_feature.test b/docs/_style/prism-master/tests/languages/r/percent-operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2c7528e0c1ab4a71908c9845911a2332d57ce27a GIT binary patch literal 435 zcmbVIK?=h#3_CB7KbU|orCA@bXOteY)>*?K9!W;~{5i0}F3q9F0tsP(g$URQ2Gj~e z6vl$RD$jg(Ntjml#MHY{tIKF!lxB*>vJh7|nH~(HnR+Qwf>I0+ zD#hwxhypE(fmn}CUR@ni56FE`2P(z#asd(fu5`{wP0lV>NXsu$CGzlRB@k+5C0CHwYbpQYW literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/reason/character_feature.test b/docs/_style/prism-master/tests/languages/reason/character_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8b9de3ecdcf0384d851015de1c96e0c3e380da52 GIT binary patch literal 311 zcmY#SROjVVk5LDcF<`PHEe%ZP8yT7a8N6J&WB`!9XkISPXr<(g#G=IHlGGw49R(%z zM0KTD9W3H8Kqugm0m|W$0=X5J9N7IzvAkSBM7}4SGg6bYixtxHixl8KDb@o3WynR- literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/reason/class-name_feature.test b/docs/_style/prism-master/tests/languages/reason/class-name_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..04454b673348bb28cc9c96490e1511f4fc5c445b GIT binary patch literal 351 zcmWG8Day=C*GtRK=jC$C&yP<^EYeF#tm5Tz1X4x3T)bSmWB`!9XkISPXr<(w#NuMz zyu{p8B^?E&V6bgUu{sLTN(H5P$t9(UC7JnoASpeNs1nc}F-0*z0W6xK&cmY{=y066 i9r5ZbQsU)`rNp<+8L7$H#R_TpMG9aqD}cOQtOo$7>RC(x literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/reason/comment_feature.test b/docs/_style/prism-master/tests/languages/reason/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5a420bac4ebe8d209cc34cb971cfaf2eefa20668 GIT binary patch literal 377 zcmdPb($eSU($`W5&df{CNmaCe=bQF~Ifo@ZZ)xi|T;aKcy;jWJbNKMWzR!GY)f`wJF9sqRMUWxz! literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/reason/constructor_feature.test b/docs/_style/prism-master/tests/languages/reason/constructor_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6ac80d0163f3db3b0fc61764488f32197d4d0fe1 GIT binary patch literal 242 zcmaz{E#~EN%g>KbN-W~#a^&UW<Q4a&bm0CFkcAmlTyIm*f{I=_n{grWPy3 k>R^+BT8cx~Q7M*}3y8>fj&nw8a(1yoT7HoNlADV40Q~?tKL7v# literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/reason/keyword_feature.test b/docs/_style/prism-master/tests/languages/reason/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5cf5b85b77ad75ac5bec28b8d17374e1c8f8fb4b GIT binary patch literal 1582 zcmbVML2kk@5IonC|A2CC`-wiI>cJ#SvnANbb_nqL&N>m7PA?#0oS9j#%(J&s8z$HcY$mQ_ZwCLev&#SFn787b@S4Ee?GanW37 z+bm78jA~gChA8jep7>bYr*|)(-BE5!%0u_M>p~p5uh&0lp`cZZ5UqR!Z}nvOqrik5 z5(T4B*m{Bx)+7w3mwmJmi`e>#P-rxU&XJ?775}5?QF!T7AYwQsQ}^W^zR!=Rk5T$#*}+=7ZAO*%UnR1{0ssI2 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/reason/label_feature.test b/docs/_style/prism-master/tests/languages/reason/label_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d81883d8b87eeb17b86c79ef67552d4ffb2e4dfa GIT binary patch literal 253 zcmYex&$qHlN-W~#N(9kWyj;9ox?}*5zGz-9&S<5a#H7?5B^?E&wETRfSRI9ErTl`_ zqQsK?B9Ne!6-Z18Xk$!KOrDYss+L4N8mg3dxne1Co^wWOa(1yoT7HoN*p0<{0Q-G8 AA^-pY literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/reason/operator_feature.test b/docs/_style/prism-master/tests/languages/reason/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2794f7866356495e858ca605adf5a05585391cad GIT binary patch literal 972 zcmbW0F>Avx5QXOo^dDZFA>c&kU0BMHpAi~j+Jr#Wsz@C&nEdvhh78Hw6eG;}z|Scv|1ynzwzIe@|ul%ca|(BckqoBe3^O@hJ5{Q#SY{3@TH* zN7+3p-BHS->NiW_L87fhD@I}pOQ~B(bd%_)xviznNz_X;sBUdlHSrJLmLC x%N9q4a(KkwTVR=rDRP7raa9~RKdN=hsOvU$05$p9dI(Y#!o(MrW7MVWc&N;(QkF+ivktAim5vMdH{ c9Y~&+3y8?K)Hx$HIlEXPEx$+sVso(`0D7z}&j0`b literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rest/command-line-option_feature.test b/docs/_style/prism-master/tests/languages/rest/command-line-option_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9394b0d38e8fe6f5b5c50c763536c8edee9f8579 GIT binary patch literal 1090 zcmbu9J8y$96ouy^@gI)7f`h`|q3T1blqv%iOOk=4rm+fk1SB;7zIGty(Nd`D0SSE0 zXZzlRX#@m3JtPeBP;e=1i*9YJ_YqP+u+IVs7fdPWiDhS+Nbyc97t~m&R|9ckV0i)J zm~%DZC|iuD=f$I$D0#8RDN2qEa}AAo!fuBYzEb!uC@o3}ysAgFatQUM|jfpqv$ujs^V>`w?2 g>{SR8>{}(Ezk!H+FFR+XCTAA|y;GzB^Hq)$ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rest/directive_feature.test b/docs/_style/prism-master/tests/languages/rest/directive_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e114a6dbda64d3941dae299025349df2c75724e5 GIT binary patch literal 555 zcmbVJK@Ni;5Ik$*A2xfo`v9)}LT~DUSVYjxJv5sw9HJ=p`^QI7i+lFvHeG22Z1zAzcYx2C0MeBk{yx$6;Mll|_Sov3*=* zG|plTNQ7OTiL(i+kLIot%%cV7ZzHp7oeJh`T;^!L5$<& ailxLm&Kar6*~P%%DN=y?NdfGqVm$zAmP;xC literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rest/field_feature.test b/docs/_style/prism-master/tests/languages/rest/field_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e275c61272463df6b9d094904f09707a2f044ac8 GIT binary patch literal 376 zcmbu4JrBYl5Qb+-_zxEnw`yc?xz(RhI$*g9vDyY`{QL5uOLbDFBYB>?_r=ibkr0jt z*mAZ(Jw}9^o*_y*;WjWMk5*! zSObYJ%_Wuc>aL<_R#*;Nq3>ynmeee+)Y_rSQfBaD`>WcU5uA1ZbUaz=uK|Y1Ln#{e EPq-9YivR!s literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rest/hr_feature.test b/docs/_style/prism-master/tests/languages/rest/hr_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..83449bf8a5d90a3151055ccebb8506b4cc9a0511 GIT binary patch literal 1175 zcmb7@+fKqj6h)sU;UC8Fu88m66BE9`H$W|ANE@NmnX2*n?e0Z2@x&(q~3f;<)EnIO*v zc_GM4K@J5u669ErH-fwsLh&VZzohYipRg zHO$`{nqUo`u!eS6Lr<)sG1kx>YiJQzOQ)=%UDnVuYiOJ`bk7=EXbpX|hGw?L|F%j6 z)62Q+`Kl%5dWw2gg#13aSsh(b$MUVNnr!aoWffA-y_8Mi!gGkP?x9YpoXmsEi!5e& z6JpYPdtC%a&3$rN3@(Ppr!t1AOJ$V@*M!uxKQysiEabCl`fr(T=jXQNs%{p-G`UI8 Mj>7W#Y^KHf-V!Z literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rest/inline_feature.test b/docs/_style/prism-master/tests/languages/rest/inline_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..408037f593ddd7409136f7cb77dfcbf27762171a GIT binary patch literal 1687 zcmb_d&5nXF5I!#n?=a~}5qSVF9yaj>cK0MERH@pCl(Z%Bz{Bs11(Bak#B5`<%uM^u z&&TIRDG0>1ICCRS5cysZd|9pXQxL$OYczbHr2+gTGPgn(T3C^S6*rrpbEQ=#RzsKX z4Q(zKJ?P40E+CV5A*VP8YK{iql}euIP6$r}!VkPXg2t zDpT%_mA14}{54y7=P}T(Z2ZrAE{9_EGZT|l{U!3nh z0M~?abv3g_Qsa6Pe6_MiY4rXt>-XO=r=tkt#2I1EGml&8n9Ars)2bEdE*MEH94-cqO2btd3$=`2 jxxSPr*p2puK*|)NyZe8Eq$DaD@^q#RJWt`dA`|@r#`xA~ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rest/link-target_feature.test b/docs/_style/prism-master/tests/languages/rest/link-target_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7ff98a41a7147f11b7fe56936b083bf56120262b GIT binary patch literal 1493 zcmc&!v2MaJ5S_8)f3S`fEXbIxAXVz#EwO@&phZx-a+0BZJ$E)lq*kjmB9JAg=XZWD zr^}O4WOF5+t>sK&ohY%;F4SYHkLP-8?VEOgB~sdHEmG5m#{oV zP8(ezOz5f&7pZtM)_i~3y5x+rX^)5cGR{UBeAQ-M)wC+99l9g>g9J++fg+6(Ol&>nZxJ`SNBHmQ>XoIEbl z04B~${!bIPGg4eO@XukSKiBZ4!?^a4`~Uctaoov9lN%4U5k<>oOwmDmEKRlnXBZy+ V^KJRDS?^1+wN6l$iI8QbJOQXkg0TPq literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rest/link_feature.test b/docs/_style/prism-master/tests/languages/rest/link_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9f850408102d9d211af537280a47a9fe4d3a02a9 GIT binary patch literal 965 zcmbtTu?~VT5S?w(e`v~z1{htL+})a{tpv1z6a!`P>%CGmQHvo!;CQ)v_ZsdVEad_t zmW?s;v1;3k>PDQO&RLR-Rg8Qd=m3O&9f1f)LdHQkVFDPQhjcU{wP~~|i8i+EjB1Eg z-LQ=x3Z{vQnej%KR|zY0xQE1$N&HU literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rest/list-bullet_feature.test b/docs/_style/prism-master/tests/languages/rest/list-bullet_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..668653f3a464673b2178531889a1e8b68c407798 GIT binary patch literal 880 zcmbVK%?g4*5I(oC@38Di%M}dq1?m#iH3IF>FG^OR72(O~P3p~jl4csWQ`w>iUH!iK zK4<3ZitX{pSx+n%8D|O}1!q4I~qn= zbdb(BPLDV+g5MmaImK@d%+0_JhN`t1{9xjm^>);*-~Jz0VqgsW(vl6vv`kI>>+PF3 z$0o))CuEIb!JeD?_FRLmi<;E9T^+$s+mf?6W~xOL71j;n&1#oJ>@tCY6cotZeF5QW B>aG9) literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rest/literal-block_feature.test b/docs/_style/prism-master/tests/languages/rest/literal-block_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..39ff58c5e42f40ac11df982100e0f7b6f0d37ba5 GIT binary patch literal 424 zcmb`DF%H8Z3`OT6aR0BudpN5mbaMIel!CEFGgV7|VXE_f=*Z^05%jUbrzO12)DH4L# zqHmZ(mtAy))~X3Db|xDV;03D`k@YLcqyG>VKUhy3Ig>+JE6<<2;EmzA=V$1r1>Pyc K;Sh*J%Y6s4K5F;? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rest/quoted-literal-block_feature.test b/docs/_style/prism-master/tests/languages/rest/quoted-literal-block_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7dba1d1757ea64a7cf9072800478b858cc6c1892 GIT binary patch literal 6548 zcmc(j+m50@5I~=ognww;yMn&sHM7b71fU|zMl)uZMV!fumv7&0s+=v~ta-3Z40^hc zoQ{x?4g%Mysb6_+4mI_Z6!z;=^65IRW9T|5RA8oPn4)2Zw#RCU9jn7w9mZV8vIejQ zWldmB%38o$l(m7iDeD01P}T+3rK|_6M_C_OpE3`aN0|@Ir)&UhK-m!3kg@<+K-mb` zh_W%TF=Z2A6UwH*rj*Tq%_y4#n^P773n`0$MU=(BV#*f47L+Z4Eh$?8TTyldcBJeC z>_pia*qO2mu*;RXj{l99y=X(%`4Q^BhrG;w`@3zK70J$D@AC9nd&&-)(Hrc)9$wP& zkd)i}#Z1vbpkwcjc{MXlRrf_yM8>>FLC4%?_d9SJbH8bGhPX;IAGG}e`^KBJI{!n~ z9cli;uMTJ7k^XPpuKgj)tn*iiidp2%U-gjO20s@SnrkkshtxLtwWvtcw)nNENYu9Z zwWvtccKEfZNYr-uwWvtc_V~4^NYwWEwWvtcdi+{cBx-$rEh-YV1AZ+k6178qEh-YV z_TiTK)QXBk?TBBCibU<0UyF)F?Sx;8ibU;{UyF)F?TlZGibU<4UyF)FZOE@hMWQx} z__A2_^Fz9@Z@=sTTauyC(HAS?~CaaUu9>HUP2T#AH*C$Xw|ypjZJV z=g28~&6EpKRq^pVI5H!{x2BMaz-s6Wu(Cln$-e86oey6-RbSU90-z}@{BjA)umpLi z`nvl)B#-N!8u>1gFD?otKU((jdjBCBPkXBT$2Av&JX$DNacat6Z1&G0!Ree5Fv;z1 Xe=@pxi)`xyJNGXGXIp2{1 zk~?0BP~o&1=&fmJAfnv1po3P)3ol273tI`w8J1QH-Y57Elrq$5uN8m@pH^hqmoG>m zSa|{*W4CPX2u>|v!-4Wbpb(5nkZ^2bb7+f_ZK?-)a53<|ri#fgQKvMoCGEcmqt5zB{^OJdt0~$GY=7u~ghpxO5eMDziAgHn3*y`nd5_57 oL?8{*3K#PB2kG^rDn2_jqNVqCTar9Y9of31Zu_<0RY%GFH}tQ7a{vGU literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rest/title_feature.test b/docs/_style/prism-master/tests/languages/rest/title_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..50d2a2b58227c2774135eccd41c6e872ebfeec33 GIT binary patch literal 6890 zcmb7J+inw441C6t|6vpEkd}Au0*Rk!QwYtXMx?t{vISLKz8zoNB9M;9eHl9)k1Bi5 z&Pivp*^KGKI5G(m$TXLTl0&Au5>ax#tM9Cr31Boa(WO^tOC5KFpB%9ItV95OwTh>}C5rxHax<^jsoJ4w+s^M9Cr3 zONl5sWO^kLC5KF}C8Fez>5W8`95TI?h>}C5BZ(+EWIC3Jl0&AYM3fvdok&ENsiKz9HJ#TK1*_NmgLAR$zfTNW3nU%B!4{|I#$`qJ4f?rGj03%qSH*$ zi_773x?D}0aggF%&y)F59!C9abAB=IrqwX%Cvx0efAC+DaF)s}s2tDz=el84>4pfX z>Au2BP6AZ)L4Z}91gPi}2CFy;P|-&hR&f%bqGtlE;v_&t4;xs;Nq~x;Vz7#n02MtR zVHGC*(Kt*3|u!@ra6@6#IDoz4a^kodI zI0;bEw>+%kBtS*&1FYgCKt+8Ctl}gX zB?4+{E@34n0V?WRVHGCa$@LCjlyI;9(Uf0V;YkfK{9XsOXggR&f%b zqIVfs#Ys0Rg8sSB{B@I%Ytyv|d}pb4s@+Md-P-q#YNz(yqS~o_f2ek9-w~>v+V_BJ zr?%Ixc53_iYNxhmuXbwt@@l8H_pWwo8tiJLwu!EGY8&Nhr?wfcc4`~mYNxiTt#)b~ z*J`J>IjweT8_;T}w#lq^Y8%OFr+Fl={h}Mc^}Fq6=-1t9Sa+AhI#cKYiB?Ex;Me}lTMk^(iX6BS+<|*kYC^;y_>Y$53tWk>PNXsu$fLd6r2LOAyDpLRe literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rip/character_feature.test b/docs/_style/prism-master/tests/languages/rip/character_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..919e738f133723874a6bdd6eb22455cef8735a5c GIT binary patch literal 222 zcmYdDQ4a&bm0CFkenrskC>=_n{EE5+(yh(Rq&PYwpE(V%bqyV+DSPuZd+A4bh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rip/date_time_feature.test b/docs/_style/prism-master/tests/languages/rip/date_time_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..dda1ae6cd3c2dcd28f1e0937175ab0f2cf1e41a5 GIT binary patch literal 427 zcmXpqFf`RQu+TL&;N>#3G&j&SFa#oAE+Eg`%EZ{p2*@@tumU5Hs1aO!2toluV+gWZ zT`~a3j%Z#k&S<5S#FA7c9R($XjY_dPC^86ZVKOC|xnMmor=g3(Tn7^e*#Xmoum|ol zY|0Rp!u_fg%gY5syj*1XR~MwuIU_YWyI3JDzeoY(qGBBdkfVwf67y2P0$`pV072VV A;Q#;t literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rip/keyword_feature.test b/docs/_style/prism-master/tests/languages/rip/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c24b4f3d15accc73ce613aecf206e014bf5febba GIT binary patch literal 503 zcmbV|K@Ni;5JlIWWbQCwt-XP6dJN-&P>4jL3D8(?FN1DcSV`FMd6Ue4T~BR~pqvbW ztRd}!MhKgYY9b~1;dT7@h4j}(gy{Dar%wc97wOziURuTw+8c-G2872TX1#B#e~X4h z*Nd^CpQz>NpUYbps5M2ztt#_p&4T9I75em0(Cno`Cs75O#Z}nLWWi^%Vnj&yzTVfQ N)f~vIo-W7Xc>sh8h;RS^ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rip/number_feature.test b/docs/_style/prism-master/tests/languages/rip/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0e45d5dcde10576cea436a0e9b5d1278dd39a9cf GIT binary patch literal 314 zcmXpp;^i{dGc++YwdCc}Hnac|20$(^m#&csP)gUrRL{temkY=u1Az2J^Kx-UE9I5u zCZ!fB=_n|f7%9c-pou{pfGGiV5Eem@12Kg`4#px1_JC3>FBcGz?+fRQ)a2}9g|z%4 J1&CLQ^#G-cKiL2P literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rip/reference_feature.test b/docs/_style/prism-master/tests/languages/rip/reference_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e968f8f38f1ba6c2d761c728b80fc23928e8bf5e GIT binary patch literal 208 zcmYex&*$Yz%g>KbN-W~#;^opM1Az2J^Kx-UD;1@tr52^;C8sLsC@295Jy&;*3@*N=;9#P|{IQ0@@0;Uny1xLjuV;n9?y|=Yd@abRwoas*9CkdAWdy Xd}ljnq$XzQwf>I0+ zD#hwxhypE(fmn}CUR@ni56FE`2P(z#asd(fu5`{wP0lV>NXsu$CGzlRB@k+5C0CHwYbpQYW literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rip/symbol_feature.test b/docs/_style/prism-master/tests/languages/rip/symbol_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5067d43e9996833d7518df8923d0dc5950908d99 GIT binary patch literal 242 zcmcCY%g^WKvI3GxiA5$x5N14(&CA8hrAr0?>5Jy&;*3@*uFOr!&r#A*Py!jR6sv

        +I736(c} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/roboconf/comment_feature.test b/docs/_style/prism-master/tests/languages/roboconf/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..09493ab5819ca0cc339c458ff65a11a56142c210 GIT binary patch literal 201 zcmY%9Q4a&bm0CFkenrskC>=_n{EE5+(yh(Rq&PYwpE>=j(FH(S7S*!;DoBAp{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/roboconf/component_feature.test b/docs/_style/prism-master/tests/languages/roboconf/component_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0e934863e43d5a01014c02445e44b66cf62773d8 GIT binary patch literal 362 zcmbV{F%H5o3`J)wEI)vC@R4>fIq75EAWDkI&!V|F>dY&u30A zPB_g9o);p!K=ScQkAX;v2LC=oMCl^L36|e!Bv^wsX^sd(GP@4|lFAg_Tf$<4%nkws#BY==3 zIq^$ThuZWbIT@|AOi7oU)bf2t{cE} JfN%J4`T(gvb>RR2 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/roboconf/optional_feature.test b/docs/_style/prism-master/tests/languages/roboconf/optional_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..bf3e090666372d5a24ec61834a307a2d3f0fa976 GIT binary patch literal 188 zcmdPMFDS{(&r8hFaYie_j8f83P||>LG?ij`xqyg#!<{oyle3Ez R((;QGV1_EBY-!SK1Rr39F>Z?wy_jw-@Z0YrnJx>O~)M{+zD@jaboDT zqH9h?xT(nELcmh>Ads_!2BZ`}vP>FU};sOh@=m%=19TB@xG+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/roboconf/wildcard_feature.test b/docs/_style/prism-master/tests/languages/roboconf/wildcard_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e08e18d5208c4d21a81970410f81825377405d4d GIT binary patch literal 229 zcmd1FPfXEGO3X>jOHS2IOv*{s)8ggg<Q4a&aoHrl-E0t&Fq$DR6rGNyrlwx_gfQWntIA^3LXBR7^V+45QW#Z&i(^$y&&yw{|TzqJ+)yo0pc7 zPoqoNGF5ZfdYMz_4>R$iesraUBHzL8+#a=rqA{FR??$_hk~D!rv>XcK(se1JnrA;Xh2TaGJZ_0uW@nu5n zTDB3fzdE9Ap{@vqIwLql-v3rI0*(&GKr|Qy!NEA5-)pZnDER6uyb_&;adh5@_{EB7 z$6!swlT}BQf_G7L^fIQ=+XyGGk4Pu;qj=v8h^6L0_@-G#^wTQd|&tXixi+9EY<@65)oYv literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ruby/constant_feature.test b/docs/_style/prism-master/tests/languages/ruby/constant_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..220cf7463ce7f66fe65be1499721a80764f9b617 GIT binary patch literal 330 zcmZ?E&reD$;^lJl_m6jS42m}~05>6J`l5NcIHQ%4^Ye;J z67x!wbQF}_z;-Id>R`&iU4c~=tDwI>Herz4v5QA3D#h}00TKCLa?VIi&MsC+%P&%Z I`KwqD02roBY5)KL literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ruby/issue1336.test b/docs/_style/prism-master/tests/languages/ruby/issue1336.test new file mode 100644 index 0000000000000000000000000000000000000000..431bdf2ee62000f415d26c0e54aeeb526f7fc378 GIT binary patch literal 312 zcmbV{u?oUK42EY9?j6FpRzV65HwyX!j-|udo_NqE(&W&-y}3?;P7NW$m;66}{DsIG z9p0b9WQ{eu6;*VNHJirqJl<$<6*#Y^uB{f@5wZl7!oTn{V<$OCB3u-D4vqUme@ry1 vYpu~1|c?FpoNf0swY+(JNSptx1U$;){Hds7C@_ICtp=u zl~mPp!MkFOi?cPiclQsE*1X6sAF*X|2Wuu*1Z!}m+*mWq{|M9-Q?^DuG~R2PTYxRfh7eIcDpnt`BwVTInp2gj zYNR#$cUR%PwwK^1YqIkiF^lGq<*j**lch|p?=>IwwziB=MFN7BwhB(IivZOnrwvKV!re>{>&sf<~*d# z(x;Xf`WQ2gxu&=eI<@HJQv;-cb7%uGs8}$p>Or{53B}MC#vwQacLkzcC5alKQG}~# iQ4AF$yvy47WDWk`*R~&vOouW+-Uk=La2C08ZOv~o!O~a& literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ruby/method_definition_feature.test b/docs/_style/prism-master/tests/languages/ruby/method_definition_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ee8b5ec530e09e711866a6bf4bb589b4415e0694 GIT binary patch literal 1643 zcmcIlO>4t2488kT2=CH`b%P!YgTYQa3!dV)&F%mjSeIF~GslHJ&TOy~~LvoTsw?Pjr5|l-^WjcbMDP69^ zp+nD+A++lW5q_8!Y}2|r)7WK+Yo6(20BLOL4+#(h|3{vqOEpTBE7=<+jic)>TH-pX z@$wX&$9a26)_KOoIOCM=5tEW01<&pYuDT9GN|V`;cx4)2(KT_jWIEC~MvnK!UcAeC zqoilr@0AU+?vh^eH;JqWxnkzc33+aifAwG*W+03!_t%Kyst2YK8u8h*_BB`mS6U-C H?T-8b?djC& literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ruby/regex_feature.test b/docs/_style/prism-master/tests/languages/ruby/regex_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0dee02d34d0d116e8614f6e2d9557e23b91bcf10 GIT binary patch literal 1209 zcmd6m!EVAZ42I7{$~&}1NJDhw&=Uf&1CNpAP*`BmXj5gaG^y&lV>b#TTTh%?MQZf* zxAWVLg*;oU-o>$S;$lk9gv6~98Sd7?Y&l!F6eVv+=Uu*8<$X%*C1y)vUCer7l>Q-B z5!=OV&lzX0PdpSSIh#pv`l5dzOF;N??)8AeLSn&C9`Zy&-BzcjEgEAh3eNtku?3^j z?O&;c-#%e338reatL-&pC!=WOLtjm4@Dm+4?|d5MRa+iC%s2i-TWeP|b`Y*SdJx?M zql7(RgJ%khgB0);)lL?}Z<~b0<*3DQizZa(aH%I@QH@#*Gd2l}d$hJ4H z=d*wEfq$?sinOv;t7unM{uF+?$Z54+)m<9~kijly3Mq(ucQZYk#j9xzHfi-Z8MICy zej3Cxh|hz#g*Y3;ImB;+cnNVr1rw^6P|1X9CR8-0qA?YXsc1|^V=9_b(Ugj&R5Ycc zDHUy~XhTICD%w!dhKOqQe8=G*f2P$#W{;=3C_nAoWHyRyp3iBkv(ApShj})ZaDFb` z9^;&=UFj#}?ZJJQag}g^FmXroTAA*Ef9@xs1*X0!vqgE@)<4yLbt4WkZ~UH1#bEmzS0Pd{*apY7 zlT-}0!*RtY6@zVYT&GIKU|Sql*HSUq7RNn-R1CJoaVH}cgKcr#e@Vq)TO4tCNX1}V9IGKxG1wNz8je&9w#BjXBo%{gajcg~#b8?;t9(*1 q*cQjyq*RQH#kGQ(-2H{q_pj~8_tEUC+FJ2zML#g{+Zk0x~h literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ruby/symbol_feature.test b/docs/_style/prism-master/tests/languages/ruby/symbol_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6a517580569faf0c4bc8230b979dade212099959 GIT binary patch literal 258 zcmcDD=jF0W%g+arPL4tLAS$sc-o!|emy4H6mka>X7tPDX8Ld=YnVXcKqokvtWEHOz qtAj2Ev=oad$Pw6tA&ydt<>dk*@?GYfk(!)ctdN#pqyTYVu^s?9zc=&% literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/ruby/variable_feature.test b/docs/_style/prism-master/tests/languages/ruby/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3b7b7c748668ca272ad11ac0f3b36c93eb073348 GIT binary patch literal 398 zcmY$1=jBpK%g+arPL4tLAS$sc-o!|emy4In0VwGJmUMtfIv`2vk^w-5M)PuUMk|#i z7G)+T<)kXS1iao ZWQ2k)NS|{?YI1h5LRx;20xT?w^#Gc5>6J`l5NcIHQ#kOG=6|lS)fc om2?!8lp!`L#p+;@!?0WlXgx(PaL!0g&MsC+%P&%ZJEK?+0ILN#TmS$7 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rust/char_feature.test b/docs/_style/prism-master/tests/languages/rust/char_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9a1948411ad5d988016930422e263ed4e54d9ecd GIT binary patch literal 190 zcmY#SROjVVf3Rc+kmBXiB?Ex;Me}lTMk^&}Bo-;@C@85Xsw>6npbCL(P>SW{0wVIQ Uan49h&MsC+%P&#@*;T9u01gu;FaQ7m literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rust/closure-params_feature.test b/docs/_style/prism-master/tests/languages/rust/closure-params_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..83bf90004c2dc9b76fbf6dd28a554c05816514b5 GIT binary patch literal 580 zcmb=auu{m(E74J?1k*JNx^^JGLUk=KS4|C=;^opM1MqV3az*oUaYid8=j0cc7NzPI zBo-y+7Axr}fP{hK1*Lh(C8dcanfZA@L8Tg{SRIgrQiT$j#!z4dQvh-x4mCP(HI+D2 z5Mv6^DL|LRg587R3|%{j9ZKME0(l4BC)Gd&n4+~{ZRCUqh6Q-thtqamE}*Z-k4)!` U)a2}9g|z%41!#;aKw?x609XZ-S^xk5 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rust/comment_feature.test b/docs/_style/prism-master/tests/languages/rust/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..936702840ee4d102924d9565135d4298bf309be2 GIT binary patch literal 285 zcmdPb=jGDZS4hjxPf9ETGPSfo0$LyeUM`@J0*KGcrAr0?>5Jy&;*3^G&d<$F%_~vT zQBcy?SBlla6ofhen;g(ZScO4aVv1t&AdXau<>dk*@?Gkjk(!)c3^cSz0qWdhJpi^D BKNJ7} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rust/function_feature.test b/docs/_style/prism-master/tests/languages/rust/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..63fcc8b94dc4a2c25041b33195ab49aec2f8ddf3 GIT binary patch literal 511 zcmYex&sWgkr2}0YD}LjpB?}N-NDv zF3HT#Q_@jT0=hvdR!1RPsQ@Hcng|ou0E%K$40I+*>Y>iYqX(NUig?sxdI0Dq>>8qR wcmfudxNPC&iUoxh8G)<|(&wC!nw(v%kd|Mh01N73g~YrRh1|sCqWoe#0JL6*umAu6 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rust/issue1339.test b/docs/_style/prism-master/tests/languages/rust/issue1339.test new file mode 100644 index 0000000000000000000000000000000000000000..1dd3208f5971cf9ec34bdc1fe9f4acd364b95f49 GIT binary patch literal 1145 zcmcIj!D_-l5Ir}Le;B5q1`?rqsu)4+(NjIHp)7GzgK;S8W+oL}X;`k;Z>#0&%Vq|Hq0&_6DUkXr-BX!B32LhdjGG)a`kBs4hQsz>`zusrcp zpG*^iTkh=2BPdEHsTR_L0|yp)#&mvU5#?Oi&aXk03y#&2Bo6N_iC|srE;#8@kGsIS zi+lB%ndJQ4HoV2j7M(_mUMFlgobf9e?X0Uho88Wx);$BMBQ&EH4s2C0s*?SzQ@1Pq z##mK>c00Ru!zy*Py4|GzN**{rnkL16xb$noYn7I(XQ$r6FZPPf+y5X}dzK!QSq%wp i{%|`W1vv-FXc3uvEq1^@>9H)B8pDP$czl{ppU2x5OGxX?+ZaJ9kIOlT-!QnPN>i( zI?1Gv;y@=e6G--Cz0`nCrf?7ixhL&PfZTnrXBUrRH z_V+tecPZxHuYA=n^6+6Iyv>u?3V;=5QW!8;tnIP(_W%S=(5TJ+e3qb!Q#h>d-~4cbkPi}MzNiI89%_xdog1! z$xH=|cV8h|Fj=b+VT^Ye6PhbbG325ZU5X18VM?YT%n{~2XoWr_V5ke=yh+_HLb0X!D)F|JxIrc4)D;!MYeuv8i)TAQ)ZG-8+#2&d#`)M`y`gSC!y zB!q-ktAwSd0NH&b)#qZ0o3zU4Eqw5a)>Ua;xvoevpf3otQdgktD}AI>B$XOm3{XQh z7WqPIGt^8&ZZ4HdYq(vIhP+*zC%8NGvsPNY{^P~>eQNdcIb3nS#WW8m7|de>hVu#j z{%~xFOh1|6gNl>lLK9ca^tBw#G zP1KX|IxI!^oGWp2az}=(Evnh-0v^_vn4_R0%-JA{TUJO)vC)OGx9}D& zqWlP(9_H|oyqV?M@Q-v7)h(?$l+ugnvr3Dz;j9(C|DS2^7o4t{lb-%XJUqfJzx@EA CqVV|u literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rust/lifetime-annotation_feature.test b/docs/_style/prism-master/tests/languages/rust/lifetime-annotation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..02c813debc62055df6c2efc56cd846ee0250ffaa GIT binary patch literal 308 zcmY#S%g^WKQcvXNvQba8aYifUWTvH-Wag&oCg$bkmn4>C=I1Ht zC@84|tx<~A!K)+@rXar{wJ5P9zX+t!1}Lb2+gOkupfs`$JEd4&E+8V`C(aqE$=SsU QY57G8Fz+ZJyi=?P04=Xg6aWAK literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rust/macro-rules_feature.test b/docs/_style/prism-master/tests/languages/rust/macro-rules_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9d30051c3a7bbfdbd7916ec066c71ebf3d9d24af GIT binary patch literal 265 zcmYex&sXH-O3TlWPf9F8u;NXOfE->fT`~YjUofnsY{Ka(1yoT7HoN*nJ9M_vrxuTdY4b literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/rust/number_feature.test b/docs/_style/prism-master/tests/languages/rust/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..61d6e8a5e7bdb21a154bbde6b6bb0d676d22c1b8 GIT binary patch literal 816 zcmbV~(F%hg6o#)S_zuzSD$=ZNw;S6_#E@#nVr)Sn?D2QBrIB7GLFb$=e>>+l{hq4_ zzg3OEDD4l7a6&T(>l79zurOkjLxNG35XMQ)PY?>G^86YffhUF7Gx!kp8952S2zDy5 zl9Cj&YNtXYEHkRLJN?%3vVfERCv;OxTZLIdTa{xJZ&+$yiP5eMKk{9RA&i31{(N|k z)@+`Q2ieA4IL*$jo0dIDFi%kr!>#`(qrv)@7hbp<7v6ZFZ3(<``P3D7=OWV>c9<%4BhCi(8e6QMhqxmTkb@LnM`nj$B*Su?xL-)c@Oje%!9l1@~#j_HK1O3u&CP0cG& z(os-?+oBY!1C&#WDT>JhS`Ukbw|)E5-71 X0TKC*cg{#n&MpQ9OOXQ92gP~-bn;2` literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sas/datalines_feature.test b/docs/_style/prism-master/tests/languages/sas/datalines_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..48c32cf505faa2e59d7950640ee34003af6507d6 GIT binary patch literal 701 zcmb`E!3x4K42I7Z`VOJzDQ!2cWk(-Fcc|M$nXFPbM4#TII`JSXVxcYMYx1Z0E7!UG zuC0$bXUf_XbTU^KRHC$mOlwH3f>{c79(jg5Gluv~!cE!>s`0=Ezw*Q z38jctShepbaDVY;2J}M2a<6nyrifynI*v2MzCLvOG~z!AM~l7^CPDP@c3r-Z=d2*Z Ue(-rrd5djbHb>a_01vk(SBl=O-2eap literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sas/datetime_feature.test b/docs/_style/prism-master/tests/languages/sas/datetime_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..86f8d4801ada576125c8d7c0ef96dd605ed2906e GIT binary patch literal 316 zcmY#4%u38NGB7k&PvPZKx3n@cwKB9U$W<=^@(eA&at6j$Kyh;`1JlG@^%S54FPAPE z0HiOPmy0u6DJ8KawInk)RY^xdNgZLoQmhW9G?I(3%42t|%wq X{2~RAYjqSr?k!eG%u50D!8|D dSY9q5BHwGy8L7$H#h|cLNX*Gmfcmjm4*;IUT7v)p literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sas/number_feature.test b/docs/_style/prism-master/tests/languages/sas/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cf55129e9cfe89f89080e0448cf07e8f4515bf60 GIT binary patch literal 354 zcmXpp;^i{dGc++YwFEJYQVk7wxeWA7QgtnOxeWD8T(yA;oDx&q5|dLac)57Fbjbi9 zebKyJoY6{orMXF|MM^pfN+w21u{vmCP={cX067d(9O6(+afrh)#bF*%isj`3BJzFX loRONGU96CnU!;(dnw*)Nn4^%Gm!go7T9F9jL%dq72LNz3PkaCX literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sas/operator_feature.test b/docs/_style/prism-master/tests/languages/sas/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7554862e8da60a4765383f5588df7400408c7bef GIT binary patch literal 928 zcmbV~F>b>!3`OS>;2pj+WN?z^0;bm1mjfP9WkO6+OqB`INYPX##Jozg z{x8jSQgvQotro0^UPB<=m{Dj*<-7v4k6V!d literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sass/atrule-line_feature.test b/docs/_style/prism-master/tests/languages/sass/atrule-line_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3f2a9669d3d4293586ff5d64ce31751840e1a40f GIT binary patch literal 543 zcmZ?B&8*1GQ%K9tPf9G}<#NbPP037D(8$fq(=E?TDao)>Ff%YHsLw@$- VXQU=)7X!nzNFlLA7ZeS}dH@u%h5i5l literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sass/comment_feature.test b/docs/_style/prism-master/tests/languages/sass/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c8e693e94bb643fe51d7337fb92013de7763d54a GIT binary patch literal 348 zcmdPb=jGDZS4hjxPf9ETGPOV$#O3AU1d9M^xPSs!gcC?r@pAEU>5>6J`l5kmMk^)f z=jNv7l_=>bDCz4f#p+-RLS2PTP7A9bNJC6fOkPY0(4hoWfcyec3-XRqEH4)jk?$wx SjMU`pVxR+x6rdg})&l@(#!)!{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sass/property-line_feature.test b/docs/_style/prism-master/tests/languages/sass/property-line_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..499f223a974983efdc1c168604c0ff7a8c8eeebf GIT binary patch literal 968 zcmbVK!A`?43_Vk+|6mNaEz=O)*UQtH&3>P6+GHnn$;Dbyvrg^h7D6= zIeeG1+Z7mO`=-?(UOzv8*U8NM5Krq~NN9MqWJ zOtQ<}(FDvdBl6d>386W)u2_2EzNh^^4>!xl64d`$A6*f>e#<{sc}m?PA(voH*&R2< pF~gBZhLS%Mh=tTDHULVphc(kAdU<`spI>eH)G#MG;Iah42neOqi1)iEM6$y8l`h|ESx$~|xYJ{$Fn LV10n&52DxsosVxB literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sass/variable-line_feature.test b/docs/_style/prism-master/tests/languages/sass/variable-line_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a7f62ffcfbd6fce4120660f833e00294ce77d10f GIT binary patch literal 545 zcmbVJ%MOAt5IozY|FEgO0p7gy>Sq`Z1xjc{N=nfLWle=CzZ5q#tKrpYEVM#g`{x%uyeVh9lG-^TjbBAe_mCjgCL^C=$3grV!{}i=c l@xko7sBnz1h!R}5{w#+|<);oxV_|Xvh01G*R`JWb-2>L5hu;7I literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scala/builtin_feature.test b/docs/_style/prism-master/tests/languages/scala/builtin_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..50e42b02bb405c24c033f2f088c4ecb38239f9c4 GIT binary patch literal 545 zcmbV|u?oU45Qb+1d50r&^&M2>Jao3vf@IyEFDd|ZzEzmh`d z-*E8+SB#I+VjwBI-XLpB`Eau=wu}U%rr+6951J literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scala/keyword_feature.test b/docs/_style/prism-master/tests/languages/scala/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c17e96050ed060ea3ece72830ff495c5242ab5d9 GIT binary patch literal 1291 zcmbW1L2kk@5JlIuDZ^&Z0M3vJRWOi1Kfgwfcu`Q$6P$t1qpNFlKVTOdqV z8X%(a*lHEgcMz{55~SWmUMS33@n7J3CR!jZBf@07R+Ax^d*=~mmwH$ndN$B%`@}2n zJ8JcEY|gmMf!byR&2HO#Y~TUy4~(+-QF$M-(C497AWy6KJi3%q5o$gq$$~)n6f2&$ zV-@mp%ysIQiVtT%s@Gfy?(z@*KcahZq`Cx2;2f-qO-Y&%bMhqPBnr4Dv*LS?s@QRh zuH&CA6Zt&~@qo0M9lq@$o@0CR~_tPX}0*kza!CPtWIP?uwo vNHxI}1p5qA80b?>L9ov;g~1`A6wAv6MC1pDb4F@%cCkWQevtwsOp5gY%{E(8 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scala/string_feature.test b/docs/_style/prism-master/tests/languages/scala/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..978b1c20638066df2b68b4aa4fe210a98a9c1c8a GIT binary patch literal 606 zcmbVJK?=hl5Ik4#56fPJkTfau2Yp612Wyk2lqjhEf7LWJv_eZnm)#j>)lo>nnV?70 z91kheDf$pOLkw#$gyt-5$RiSJG@L~s(F;)5pv*M&+ONpL7^sVdfTD)Ekw`?U(m~aR z5wFv7wrkOOd(&4e0fiLUm7gHJo|mO`Ug0w^A>nrqiVo52QJ#;w5mWVlkS4i-_M hl{h4TPEd;F(nw(v%kd|Mh0C7yQ9speQHD3S# literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scheme/boolean_feature.test b/docs/_style/prism-master/tests/languages/scheme/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6c10017e3f42c8ea9b9a4f3e761e3b4f893bc388 GIT binary patch literal 191 zcmY!`;pI|JaYid8<>%+5Cgv&WC@3kHD8=ev2&O5;@^S$Y`4%~6 Sq$Xzr%VyXg;4IXCy+!^~W=GS*kK-jz5&Q>u)=wg(N-q^6sN#u&PpqQc72hHH?nJpoUREXF!*B*av`ZsA_T2{w C=QDHw literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scheme/character_feature.test b/docs/_style/prism-master/tests/languages/scheme/character_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..14e40cdbdeae91423d0d95e7204d8e2a14480ef2 GIT binary patch literal 302 zcmY$6N#s(FDK1D%P6g7X1_maEK>FNnAfd^{rAr3j;)>?tj8;m{NGwWBE=es?(os-S zj)_TBiq*j;4z?PH9N0NHQ4a&bm0CFkenrskC>=_n{!E5+(yh(Rq&PYwpE(V%bqyV+DSPuaBk}BH( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scheme/function_feature.test b/docs/_style/prism-master/tests/languages/scheme/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f7c6547b586378c660abad4ec6e3aad59f4b46cb GIT binary patch literal 758 zcmbtS%L;=q5Ii@Kf7s@vpau0@d+29`9;_x*s!8zy{rv74OKFNwGz7xVCNrCz4Rmva z1k#YRKsRk|Acc$q^(@Na+pc&h%>gZPD1E~W%vJla~MX(hMtRLNMtBh;%g3kKtzy0#* pH&;DbzxC_$*bt4N*+CzF+(*MW!@Yi}&No%wd*tunJwyG0vlq9a&BFiy literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scheme/issue1331.test b/docs/_style/prism-master/tests/languages/scheme/issue1331.test new file mode 100644 index 0000000000000000000000000000000000000000..b8026d9328d1e6f0a202de35c9b9efdf5179804d GIT binary patch literal 386 zcmbu5O%8%E5QWz^=^b9`0!YxLZ~zaXJHn!9kx8&6bb5aaEZpEmCz;JRZ~k6B8JaK1 za*e7eq>$qDLo9ub6o*Dl(cL*3Cht@Um8-Tyqq;~V(@NHTiSDVhO}#(E#aCzNWvJd{ zA5iV~72l{7?LUv+Y~TPM45OzxFt$VBdl-zA00lVD80a~SDcL??LMrx)ImwwbuGZqH I>sm|k2B02eIsgCw literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scheme/keyword_feature.test b/docs/_style/prism-master/tests/languages/scheme/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1abc8282a7809ffbe62ac7833b409d8606a4a677 GIT binary patch literal 2131 zcmb`IOK!s;5Qf)9;tsA?NfdgC9>dCFjK?Vou@fF`-P4y>8(OK0X6y~azK{FrRB6#Y#=@%ytHjmM zE{%T&dGo?}o%Y9>xZ~rDvyQWeuD$q4IuB0GQ@d~4O?%ikU34vSy2LBhB3`LJ@k&*RS879oQd{EH+L54? h1Y=223UmT57Z8!3G@LV1le3Ez((;QGU@4(k4*;0hs0jc7 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scheme/string_feature.test b/docs/_style/prism-master/tests/languages/scheme/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..736942437f086946e8d4bc30b21da92a047fa8ab GIT binary patch literal 369 zcmbV{K@Ng25JlHEnLA8o10?7rJO;2R&?-SYrY#}d-f5~aMpv|5OkVRR?-PL{%Pn!Q zz05^i{A@N*MOByR@?ujtz|-*!Ly%}K#@4Hu;L}wZ-4S1 z%XR2NkYY9;P+K^0Hv84v*w^rp-xVuoDWte?QeT?^?(M+wj{wL_^+Kds4bN)SPMb)+ zN;B00l6Ds@4#c9$j#RrS#XyF-=zMBd#iD9&#c^-DxW}lSP2_2!M(;-Q@tCRnm8VcW zK?n32zfCq#HZ_$V2CbeI&Z=eG#b2Wys7s;VXA4sBHl%prVyeWgd+L4y?3{=7W&`DR ifKU1p2eX8)o*-(oB?#mX6u?!TBF{L+3aTw9MN21u4@7O@m{-W1U$|ClwtD0)g^nHgo6=P$;YT?R+ tTkN%XlNOy^@FhB+%5{}b-u=**JDHimh6n`;Dn1-sIKMZ;^opM1Az2J^Kx-UD z=_r7>Kt7bGqTvD1?l9`_eRI8+ckSNM8NG&R<1eu@&ccM}(4vkh& zjY<$dC}B5VQz;f`EyRpyB{aLM!A2+m0ftm9NFNZ9A1KZlsma;J3TgR83W+7Upui~B F0|0$)U4#Gt literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scss/boolean_feature.test b/docs/_style/prism-master/tests/languages/scss/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4019c444f8b53c40620226d2914ad19fd46effee GIT binary patch literal 201 zcmXRZDoy3(N=wWs22#9Sx?}*5zGz-9&S<5i{QR8M#5^S(1*H<8xk|A*=)z!&lwx_g YfQWqCoHJ6Bvx^nd@{1IpRu=040MAk^8UO$Q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scss/comment_feature.test b/docs/_style/prism-master/tests/languages/scss/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..90eb0bfb7c76ff933d3ca85bb1e5323931b026f2 GIT binary patch literal 287 zcmdPb=jGDZS4hjxPf9ETGPSfo0$LyeUM`@J0*DWSx?}*5zGz-9&S<6N{M_8syb>iH z1toobrC1$IL8ue3$pPJjRT!itrYI&4;!LGjUM?Ua-=)qOsma;JKtqcZpw2DU0|4An BKPvzL literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scss/keyword_feature.test b/docs/_style/prism-master/tests/languages/scss/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..90ca11d5192034b48a72492e61ecd32f18e896e1 GIT binary patch literal 736 zcmbV~K@P$o5JlHE=^ZA-r7nyY;2y?BZ3jEC1%qJq_Ri3DVZe>7$eZ~C{EsFB8ixnM zx~VH|oM+gyJ?N>Y0U6PFcRnzE1+*Q54lnV_^~PJ!BfZE$N^Sqg65Xk;HYat%_vC!1cAzvFb>6`@TV7f&FwKVW zO$*IzO-_?lr5Uq#xnTCPq)6uG0x>(M$^6okC5>FMrc)BlapjsNz9jkKQo_&1Q*#+m cBG^*l1POh{inCXl<;!naTaK!(&i{Xm53PC2;Q#;t literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scss/null_feature.test b/docs/_style/prism-master/tests/languages/scss/null_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1283944abea7feb34e5df0392baf255296e3c3e2 GIT binary patch literal 163 zcmc~R&B@{A;^opM1Az2J^Kx-UE9C)AQPNR>(6PK+Kt#Tg&Kar6*~JQJ`9%sKbM*k) Cf*@`H literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scss/operator_feature.test b/docs/_style/prism-master/tests/languages/scss/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..54f97131c4a8ba5e6c7a6c53086960217a5325da GIT binary patch literal 1101 zcmbtTK?=e!5Ih^mAGQH6)+$JEw!Qd_>LF@GQ4&eh|GSA>sG`{CDGJ7sLW)+3 zi7G+Op;hi~ybjLeLltU=H>}d&-rGayb+|YiXKS2A+SYIF2Wrlz&iK?NpE~7J>zdEa z{@_-8+v*S7hHu;aw#A)l)!w1lbD>Ek)M;2TBM|-pail4 pXs%MM4lY@c1MoY;sfyLGYE%LS0s{_lwx8Ce|K95f-y*JNJ_UmJKdd$@*)wr zRQJM~R$oq>MaophCL(NfzLXEqakh(mrZyTWwtFMueK#O_s#CS$mO^>a#};dp&V$BZ zLiU_-7XPt4E+ys^YHMn=?g4*!%w!Fq`EVzl*Sq%~*i5*T qZ?H{JYBbFExr|~?wpyoK8li`bGy48F;rWK@-iWKQVsv7O&G7}d67Wm_ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scss/selector_feature.test b/docs/_style/prism-master/tests/languages/scss/selector_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cb305dfbd6726de35313dbe3138947e0067fcaf0 GIT binary patch literal 860 zcmcIi%MOAt5IozY|IjSzN&En>eg@&Nlr<2Ml2V8X;ot4@@DaTzv4?guo1JEM236Nf zQSDTkw?i46j7iX{y?+N_d&o>ncC5oXPl?++6=+jBx;lj$e_OiH2zTq63ewKl{*chg z*b$c^{NYF;MI^;4f|(R{Dgsmx$6QoRsa=CEH>Gbt2cOX1qwgG(>g7Z)J6lZWHKC=_ zv79Z-fyseCFyH-L%ngq;3EjK_c!0TyM%gb9m^rS{fk|Sq2wn8&$M8{UDr@ zfRr-wdxI`%P|nwZ2`uxTY@-iul)KP5yZ}XbMokV|o2+2>sg}<3+2@4g)!53Bmd>67 gzB>3cJ-v&s=lHJ9nf&Ke`y-a8Uev~lr*j`a0D(Gf$p8QV literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/scss/url_feature.test b/docs/_style/prism-master/tests/languages/scss/url_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..42e38707353f973b91bbd06209f7610c772510f6 GIT binary patch literal 365 zcmXRd%F$3y%g@&<$V*q(|%wq{33Nr^=eRy>%cTn!Sf<>i7fK+HK1DoZTN zOiap2Rnk#V0$HXMtAkY>WH&B3kW;Y9L7k6V3hW`=(qJzt#qx3i5&8af&PYwpE>=j( LFH(Scwpb4U#JyeQ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/smalltalk/block-arguments_feature.test b/docs/_style/prism-master/tests/languages/smalltalk/block-arguments_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9de3b3eaa231814c50afd826c3d3970278104feb GIT binary patch literal 446 zcmbVIK@P$o5ImQJKWsR+K7gywARHEgN?O5C@YKhbVkHp|#_nxrXJ;lOfLmB7k(3DF z2wd$OCBuQCB{M=} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/smalltalk/character_feature.test b/docs/_style/prism-master/tests/languages/smalltalk/character_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..096cf713b49faa1ea91e0a08d0c7c6cc0cd8b364 GIT binary patch literal 251 zcmY#MQ4a&bm0C1)fSB_@}o7Aff{D5)eW#p+-YHo-2e fhg~>MDVCQDh{$)Eb4F@%cCkWQevty)eZ_hJS9djq literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/smalltalk/comment_feature.test b/docs/_style/prism-master/tests/languages/smalltalk/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..844e7ba3d16713ae02d9a76331e63d40eb19c335 GIT binary patch literal 237 zcmY#N%g;|rEK=g-QUbD+lz?nruB5~&pa3tIE*Su%FPfK&Gg>J*KQ}iuuS7{lK`91g wIMC=AC8by$tdcQ6H6R5=F?m4SLF#z9fQWoIIA^3LXBR7^e|)%}G-zE-gqcQpig!=jGz%(j^0c^hNV>aYid;r&gBd z7o{laC@AG+<|xJLD4>Xeti})oI|V3;ZUD$_7>dDe#SjI$T`88A3y8?~fOAG_a(1yo MT7HoN)EC8i08U^{NdN!< literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/smalltalk/number_feature.test b/docs/_style/prism-master/tests/languages/smalltalk/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7fbdcb5638e4d16995f281db9be49071f62d9c53 GIT binary patch literal 378 zcmXpp;^i{dGc++YwFEL!EqJ*M^o&wzt9AoL#JtmS3a*@p7>q0OIpdi2wiq literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/smalltalk/operator_feature.test b/docs/_style/prism-master/tests/languages/smalltalk/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..363789379647b87df37e2a35f8ff34ee6f3e6497 GIT binary patch literal 658 zcmbV~%?g7s5QNWN*moFn@Sw4|ixHuZ;SWf$6e?J>N6E7{9(pLdCzmDce#{Jnr1VT4 zKAyoN1f~jATx!&@ISeT41$1-2=q2LJ#7 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/smalltalk/string_feature.test b/docs/_style/prism-master/tests/languages/smalltalk/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cd832ddda175898d5da2c0ab9be5d429bee5c817 GIT binary patch literal 228 zcmY#S%g;|rEK=v?QU|is)q!kYuB5~&pa3tIE*Su%FPfK&Gg_&*q$o2lT}ekl31l?L q5~WxjEHYqAV~S$(K-Mb7@^S$Y`F1;Jq$XzSW{0wVIg5>6J`l5NcIHQ$HQgaLPixP_} zb;}ZqG82<>Qj3*z6hLx7$%4|n4ZTD1}MTA zu6tEEsTHBKzwL@UXClQrv5I(r)?p%|pneL&ou2g4g@iCZk-Th)1UM2D)Tdb69cp3> z-&A*G>x@(l3Fnkr4x828aO2c-Zh0z)$@Y@ZfnoZjzx=AcE9bnE__x)-$C%Fl`1LNT Phh?=kjQq;7cfwvig`k!( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/smarty/comment_feature.test b/docs/_style/prism-master/tests/languages/smarty/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..616ed1fc9d88a20a56696f537ea664de0cfef7f5 GIT binary patch literal 249 zcmb={(yHa*rrP$b59sG(wZiy+1$%D8Cq=A0kDgHC4n&H*Dt{PKO2_y7NnGMy8)>3!uefPQPh&<9f=*i3`Xh%pUshSUl#rDCV z&D6k&M;+hjhD`StoEu*@t5oEocCSAs(m&PBvsL3PR*lQesv1cB{hh}d)#iG?pD*2y LUI02#YU&>wW}V-e literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/smarty/number_feature.test b/docs/_style/prism-master/tests/languages/smarty/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3f2101c8a4d9e40ed01ebe8b4f53b62b53321171 GIT binary patch literal 742 zcmb<6sBlV5aZ5~2t>xvaHZcN`#(IV(hNhNafmCx4WvXZ5s%s2l8R;3MY8x5=nY>)O zWB`!9XkISPXrg2b5Iq-(|1gbQ4sF>=rAOehKcniwAx;S7145vsrT=}$hK$E6TiUJKaI)V# zk7vfje)Ey1ASB#@h+zz30kav19aMD->Yyr!k1&C{0byVb zb-Y*2OY(!JJQ|8Y^vVl5>8Nj=%Q{I6(*SycYo9vS5h?}Z-4G;>F^9ObEg);LBF3hm zz;W7{GBn}3rLpCZ;do`nYvkdiFq0Ar9CyL%AZ=;NIypy?)-}YknZ@#5dlxuA?Kd0M z;A}V;f8nRsJr4(0&(W@wO?!;)K~Hg>s3I@(Ry7DkAJNPG8BX`rqRs0{qj^g3K{mOJ z3#DNp39d0V+1AF#9ia|6CYY1QggWE}!JIss5$v!Nf}LbOqZiEO#borYc`MqFM|Vr8 z6P&FbCqMYf8Nr-#Wha8A`=VgyZ1UtT4 zg1PV0iC~AlC-}$e;p}&y{djclt3;G)U&iN4bV3+khL>Y^xBlBE`i-L{{UrQK`|-%> zc_pjO^^q{XB9v>;zkRI9pWVaOv!5!wQ4Bn%%dw+a@R~y@2c4Z&2l=w;J`vVWx<}fN zr(4-a&iT8(d)cAv{R#mk6?t)-TaD09>VBD#*;~np?*9(n){mF92>7-tp`XnCLIVY? z|6u%5BXsIkY4FsufN#G}2>JF41r*r+!2LoYm8)n56c4k%1igP`}GGv+YojD literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/smarty/smarty_in_markup_feature.test b/docs/_style/prism-master/tests/languages/smarty/smarty_in_markup_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a7c6043ba9d0ddd80de052ae2fcd8a3df0c7bf21 GIT binary patch literal 951 zcmcIjO>4t23_UmC|6s(9{b2XBFm~=`?PWM2Xi2)6=A$@HV3hv%S@xP@OkoYo7t4CG zBtJdJg&a2Lr$gIb;uYB}ip|FJ3cGF%4gurMvTV0~dE37~8_T&_#G=K7MfU`YW&$*R z!km-sAI$00H@WUn%eFBg5JNhruo;-{fUMLxg2)Y|26m``u12N5Z$*l-lC{*OqNL~F zqyh$15@~ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/smarty/string_feature.test b/docs/_style/prism-master/tests/languages/smarty/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..31f6e79576b7fc9aad1fd4ad4043e7589185178b GIT binary patch literal 551 zcmbOe7dkQj)^%cV;O0O^b7<>HK1D$Y$TDydY` zQ2=p){FKz3%-qb9)FPmeQnga74n(-Pq$o2l9V8Y5gm7UL)wN2oK*h0OEo2!C^j8eT qw=}XsU7aQ_2So@pM(~@@%LNP}@?*?7BQ-g@SRpOHNC6Tb#d-kg$c4)Q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/smarty/variable_feature.test b/docs/_style/prism-master/tests/languages/smarty/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c2db9b4683245f6ac172d0cfeeccefa56084ad5e GIT binary patch literal 1057 zcmc&z(F%ev6n$>6e~{Iq`Vc+$(l7KjMoe2ZvL?M?Z_BNc&o0CmH_wDzZANKi6_i&34AFNj(@iJpd;H;0o ReXD~?k43OEHt5nU;ycjv60QIM literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/soy/boolean_feature.test b/docs/_style/prism-master/tests/languages/soy/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9cc18f13d80a71b7e7e29de3115b9b7480fac853 GIT binary patch literal 525 zcmc(cy$*vQ6h`Ng@D7C8*4?#_VHi-aDG{aN$Hoxfy+8?#QxlgmanA?2hl_u5&1bR- zBRUBUvDyKtcZ~co7`ZeMIY!qLE8c4{y0p}&jaDS?Lot99v#_88qMowqgD2QtN)Hhx zixQ*?^7-ui4c*dP$E{FHyxEkXQ%V9)Fg~yFL-%^8EOckd;oq8R+CMxo3clxm0$EPg3(+4rBRqfEy5#RA*dN|%-_hoDq4tp`9p)^W? zu4Z7@W0DCEO7lLFGB#e9&V#Fs4&j1A8IQcuZlOkLkFkJhuUOr*TVHw}7#Ej_w*zY) zTjP-KOtn2PD8(VepVbX*lomI3VVcXaMNbKx6nK6Y)}iauaH*@)Kxtmm4&yLAlE*Ng zX(~U5Hv#5eO~)BegZUR-@1k;?@o|_gE(_g0O3SN+{AEE6>-7p~c}C-Y`wo8oz;Y8V P8_NcH80}IYE(q}r1US&+ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/soy/comment_feature.test b/docs/_style/prism-master/tests/languages/soy/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8abf7b85cb5c2b01c5ee040dbbf0cb6e259b5763 GIT binary patch literal 551 zcmbV|O$x#=5QWzc%pHbVhU#3PxDmWWl0{o9inM`L1U{MdR~!Tcjj+)?xhGeo zHFs_p`tcqLmascpYpWkbTGm8kCOZ2IPp*wOWADb4)Kt2AwyWr0ATxRXXj}Sd)mDLgU5xM literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/soy/function_feature.test b/docs/_style/prism-master/tests/languages/soy/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3ba6df056f178e140ab9d1ab090d5686490c791f GIT binary patch literal 1895 zcmb_dO>f&U3_UME{sUq7-~j0^Z7&5-u04>x zwNm|PtU|L9HTn=%23@{ZjV!XXrUk54aOsg!X-El3f)?@#vs5;_dy;5EkF->(-E2Mb zfUiFOTm95+P6hp{h5VyM9XjShLkm_naw9Cl4P3zzO5wUXcs{%M#Lw3~&S&2q6Qkaf zCHQCer@)GKj<0s1WS^{;UHBQ_UzIL=kV=lK8nv)0Cl%@(TSZ$>=^q z?j)``b|%rG%x{yUwcIckA>MmVICG+CwYtxUUmSN1pB5u0s$bJ2zr*Il(yvzB;-LK{ z$G(oKvju+Z@JOPOBV|Z(`al)$9E_Z(O7B1?XmcjvAv5Q7lP!<0+ds}YMfG@jY@=NH zrIeg6|0kv1!+D<3q1`ZWSimcejgprP!EWOq5It|C{DWoXm~QV?)vnafXmY>~PG~S#fVUe(`S+a}2qjLm(xygo4mKW` z=f{9&n8|UaPV?DuW$5bg%A{bnXtXZiRx#?SnUvU9Gt232E#5Y~VZ9`+4VULZ(Ck>f zXImNyPmZ^pWR4!W^aywt4T3a)UBUR)Zs}3e8yjsnt9Qjh6hajXpo5)WLo@*B4k(Zn zT{&@(!g0go>G*hV!H58>Sj#QYA`(i_Y&vFGi~7F?tydHpg0>yD?Wb_{4qNG5{)o+& zHd^edV2WsYz#wwYh^lv-OqTXkS`&{{R(s2)qDE>)^Gk(7U5P%fUa)iR)eEGs?isXS zhSXcup?qn9uG(I8tKM&cl!WTriqmqXQV%eM?~MS_eD-k15B1*XvmfuJ)rWFfU>hD_ zYl#-u97N@@Tra(N&kvv4Y*4sbsVKe}eJa;5cugvIpqebGE(0ok%@McOZOhc=ftf9u zv4lNadLw{26T2}RR7&&!Wiae`7DQJONsS3>c@9{6HpgJkeQOs5=b3>o7&McC0Xew# zJhac=H3K>ZoJ_Ey$pD;$#T@85hYJfqJM#U_j9``IM?qM`T&7 za3YBlACIoAa)9z2p(Y%L>AN9Ozrfa6F9S@m4LKHgjN$9HEm=z!}*3gJCw{ z*9^!e$0ujI3`~7mk^wkl9EPMR1L46oqutCyW2nO8_40J zcs!RdD#MskPMj!axD%%c3HQVqQvN@2j!-z5IKz*rFEbWvCT>Hl9RWos9Ow=zZ4QzM zaH7v%lz33T8wSH(CO$c+fBo0o2BBnmWd&acyT+WlA+XXn@wM`W$BC1S>wlwK`K`*) gm`4dH%l_Mp^BGi1?=RcF?RdS%zY|Om9EAP(7lHelBLDyZ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/soy/literal_feature.test b/docs/_style/prism-master/tests/languages/soy/literal_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..926ca05cc224f7dc7ad89310f730adf0dcbdcbab GIT binary patch literal 1368 zcmcIk&5nXF5I#%7J2VqcMwb^rFMIJF&_jiyjiud`%EmOj`?l3W6+<>8l0fMEeDlpu zM>DF3#H`Z^7dv`7GxMrWr(PaMIynz=FV0HZqJrV3*?>+eAv)L^Q(B?qh^0Yu-;`Ee zmKsy53n4vBx9#%GbxAF0t+=6E$uPqgqwu!ky|V&J~Co6hM{M0r~F!g zFrEM5&ttCeX=p)kFnoTlyiixHsNlBx*&~w$n1KP?oSr#WO0GGs@430L8`5&h7PG6< zTE8*&#$%77?!l}49J{#~Ls-KnQZMwk;e71np1->ck4XvYkV9}7N6q}?ys63rfys_~ o$QUgDN4B_WR5&GR(`bKQhv4Z~y=R literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/soy/number_feature.test b/docs/_style/prism-master/tests/languages/soy/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3f852480fd0008cfce09661a32470cd1ac057c61 GIT binary patch literal 1264 zcmd6ny$*sf5XWapc!#E|Kmco0Hbi_0!cd_G!bc4s5kh!(TR=nx2Nvnn`(3a1zqEJF z17|n^cS;R_^i~v_3D_wb()OnrRTXtc4rF_rAzj(qvW8|=Uh8AOF&;7C1E6sx?m9{kKk0V2!hU99RMI aqMQw}4EV$g6C4Aa`XC?`e%pQX=E@6N8%2`< literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/soy/operator_feature.test b/docs/_style/prism-master/tests/languages/soy/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..b37cd5066ba4481d9269500f4203c46d53e5fe5d GIT binary patch literal 2544 zcmds3O>e?53_Y(B|G`8<;&Y{Z9Z(C0{S4qxpllV;pf+qni2ptZhTT>{Ok7s2hpN0h z+s}@JbKC?9o>x*1;n{~Vv|$Ji*r$?p%&r(<2VCfYA1(3ideF_AIWWQ%8RKhYT=qPS zrR^Okd&tU#tyUdqK&J*a`mRH-1{LT-3kG>&Br%7%A7^n`htbj#D)>?Y^C?-a2Oe!V zDOpbwk;sE+g8s%I%U~03LlwjbiKCb`FYr1ze9CyKL98CZAATJA^G%@bg)X+3T`hL| zXrcDL3T33NhBs_{wvf9Z_LV$G9uqylB#RjCJVE^u?0b8nCfW^(E|w>2WCo7N_jUGV8kGwTLskFZ|_ zs}P-o^$AM{YZ1!K0bvE&)U;?E?<6rhN^$1%VEhC1v6iXyy+G*82B}P|=W~>(IE>yj ld3wH;Oa&Qaw4Z*4Z^^QK_GilbOl BUZDU0 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/soy/property_feature.test b/docs/_style/prism-master/tests/languages/soy/property_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2c43149e0d3b49f258072a7c7f3fe51c58df1fb7 GIT binary patch literal 1332 zcmcIk!EVAZ3_Y(>|G}~*ae@9p57T~OI~5LD>y?NmsgjfpA^v@FD4~;(5FmPL{9^0* z`8j*#T2Lgk)NP5{3>u*!SC{y)CipS7f!Uj_*K$iU7#uYq90=fxbC3lUAT&t*ZLAVr z8V$}HO9dYCY~Kqj6x2q0(jGQaHzlsU>LS>YhgU_;iIzsp)31-1C)Ibt6BMm6ZAYJ0 zf*8CByhKkWI&Wp|aZDSm-^X^&D5wNXmwW+5zluL`UOUHc(!E}O9kHv!YqUGDC@iK*`O5gk`{(&Ynsg@vCK ex@gus3#PsQMR;FRy>Sp;weWmJ$zbFw$rXQLX>ghV literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/soy/soy_in_markup_feature.test b/docs/_style/prism-master/tests/languages/soy/soy_in_markup_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..bade0e21e3fa0ae0b05f70a66dea2cd28b2b6f75 GIT binary patch literal 1164 zcmbVLJ#T|B5S@d>f3QxBNu%y0OV?H%GF5<(3r?^Cc4Ql*2=U)*;}SwFqy#Vic=z${ z`7X?9vu}e+p1N>r&b}Aw4P_;kat9Ux^IEh)L2ypl>60|1?DSijribsJcfGa2k@L>? zd~dU08NbN)RuL$Cf;BSd=|$fzHOo|u73EBuKnTg&n5{t51#?R5gJZdeM8g)1K=SLD zAtxoRs3O8dZ2u!h&|pFFZ%K?H7;WGdd*abeBEP_WyO8_~Ddsa^rNoBe%9huE^jKdH zHn^;Nv=`VBbT`CykQhejPH6L)6X6D_4KORV<7MT(eYD#XCjIlButdxPY|~Bp$RRpk z-u(m(qC4(mozE5nv546?jXlW;#Toq{)z?EjuzK(qTHW`w!po=pqafK?q9YgRz^{lh NNppg}usGM3w?BDt8?XQX literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/soy/string_feature.test b/docs/_style/prism-master/tests/languages/soy/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..da1371a77e6dc230fcd2503d8a1802168ca5d7ba GIT binary patch literal 1040 zcmc&zT}#6-6n$Qy|KV~G@=^;^L=g5Q`U`w(`;fNj7S=W;N!3~U-@Qp^rvqV3#e~q_ zliZJ-b2Bt%4W%%}3ULgB;b1;01u5oSrwAeOK=(qt@io}XMFUU}2i z;trlR0*tVrD(JLq1hjpV3vECe7_K6?j^HMO+X$9RT4cp>JjOUuyfC;tV>rJg3>FC* zwZjP9KN+Q{Wh1T71mS>LG{IZ3dr`V{Al-Y0JFPmQt@9^OQ_LF<=2rPAs~I&`%XaM! zJ340gOU@B9N}2h@|5ck8G@T@+&m`*a75vP#QRwXhO&`Ow%;XvTO+eE6kZeK}HN) zOLbVBkFQ)CP(ia=iR%|Z(wtGy;`)&gLn-+1-%Q$;fvF#JKw*M~XxGQEzqLo_m4>BoB zp^f5VZTnfwQBk0;_4wt!!Qi?_-EzGAp%F0Z-#$+a!#d3F^)KX}71^-Ehg8(I0qCks zI>ya;uQ=>H^Q~$vI)UXhS7=LneKosB^0VRGb5-^=IS))97gT;m$sJR~NJp)}?{&>C z<-qy1yx9b|2!1x!1ldfnRIs+QJpl*oo!BV(=O+CM{Y@^Xi JDpX~s!%s;s3uyoV literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sql/boolean_feature.test b/docs/_style/prism-master/tests/languages/sql/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cc6bb4fdd68f209dad3a359376c83208996e9ddc GIT binary patch literal 230 zcmWFu3U%e>a&zdk*@*Uxvk(!)ctdN#pqyTkEu^s>yS1}&| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sql/comment_feature.test b/docs/_style/prism-master/tests/languages/sql/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e058dc2b6be702a8e95ee76ff73a14ed589922ae GIT binary patch literal 391 zcmb7AI|_g>44n<+4yD~nYYyQt)ImiNq!z08M`PT~Vjz&bm){F{PYC4Ak~6|M6vKIp z?1B;VB(Xzq5;6bZ5D;2~s9m&}ButEenM~t|-rARi&7w2DDITRGpAg#bRvi3ABW}FsteUwEmvtEZVR* z1^#`V>x#Khe51a<&&f`2iXdIpgo*H); zKG6f#i4W}4hV{4^4CdYj`OqB)ySl^V>VG(A9r|{I-6K2~->&^*7Q^%stLf+c2W+DC A_W%F@ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sql/keyword_feature.test b/docs/_style/prism-master/tests/languages/sql/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..67ea82ca65fcbde9b2113c3c670200cfeb5ca69c GIT binary patch literal 12265 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 BImQ40 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sql/operator_feature.test b/docs/_style/prism-master/tests/languages/sql/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ec5be04a3c0314635c586ace1c2602f49f9093b2 GIT binary patch literal 1020 zcmbW0!D_=W42I7W=pB?meQ2BY1sub=m=QLTk#t+3v`|XNV1v6GEU65DXcEkWi8%Sh6`;o*i!-f+Lrc;|;=HRUpj$;?4UC zq2%|eeDnxay+EiNMlC{7z9KaK!7rbA9RzLtQWY%?AIqpj$gX%|+zR1lm3CkIe*4|^ z>6Fq*x}MU1lu0y}XvRon%cX84(MF<^mMutKh)k32DD literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sql/string_feature.test b/docs/_style/prism-master/tests/languages/sql/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3dfeb990a9395811f48579239ec27bd81e56a1f4 GIT binary patch literal 463 zcmbtQF%H5o5Suya{t$V&rSJ)!(dz(+0z&FZ3I7)tE}a?{NERoSE!zMSW>eVtlmi=6 zU=b#9PAV5TxQ0ba3dSAGA3zntZJ72yoT?j{b|cCwKb9MY1oew)*!+4fjnvhU65&sw#0?UJisUux?bTdlTvYL!o(=)^SrGt}{Zy*x{rEvHzk9GKp1C~ztO literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/sql/variable_feature.test b/docs/_style/prism-master/tests/languages/sql/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8024a25e9605aaa5772dfd26675d78ba3d04517f GIT binary patch literal 448 zcmbV|Jqp7x429cT3RY_py#jr(@j&1vH7GYp{FS^8<^x> zW610EB7lhrd5i`^MqwxHIy+%6>^u9G=Ms0)L4E_{fm7;c1E(3kAwNTWZ#Y;igW)o$ z@jkGcrs9FB3(E8fnNZagYt>s*IaO5rR>Mu?RgrXJy}Ygk7XxyS@8#?7 zGl0?AD1&|@G*DLa${AP literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/stylus/atrule-declaration_feature.test b/docs/_style/prism-master/tests/languages/stylus/atrule-declaration_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d0e6505d5fc0dc43ba4ee78cd46a7b3ab987af90 GIT binary patch literal 763 zcmbVK!EVDK3_Uke{sH;aN~IsrQ>1-H%7GE5Lrp>iMA{Vf-)Do8YB_a591Qk*wx3<~ z*jOz_Z--bGmF-98qX3TqTlN;^^#b^uQhl34@o0{YQ)O9MO- zCT*~@y(J&>Qd24X05tcE+=e_sF*55&&Q0#?lACvC$-Rj=B??76boVdS#}}GM5Uuk< JN6D)dF2CDc(`x_# literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/stylus/boolean_feature.test b/docs/_style/prism-master/tests/languages/stylus/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..37eff87d7a5d48555a3dd00c09954aeda0ab8527 GIT binary patch literal 367 zcmbVIK@P$|2t2#V{(*3A{XtJYquB%7(%85W!&cuf)TZ%fEGII|FfariEc)aavUL-c zYHbYdfpT3R!>Pv?=}ftBJMvISX_@7Y4fybDY6udh=7Y+EjVS79x1(94Fu550N=!yh gtK=V-yzl$zvL>+E#9(&Ev$$M&xK)@$VSA&V-zi~OfB*mh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/stylus/comment_feature.test b/docs/_style/prism-master/tests/languages/stylus/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..90f974cf3d4be8b4026f9d9bd9d5d6f1196b273a GIT binary patch literal 285 zcmdPb($eSU($`W*%g^WKN=htJ0P{g&`XDi&2rm~emo6Cqq%WG6i!)j&IX^cyHLpZT zM?py+XrEH74yG{3vY4WnJctvpDZ#1_=18SjUM?Ua-=)qOsma;JKvxtgK%HBx2LP(F BKNJ7} literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/stylus/func_feature.test b/docs/_style/prism-master/tests/languages/stylus/func_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7f2c346774843c0fba5b340f6c1286067f51118b GIT binary patch literal 989 zcmb_byN-h}5UjDpKUiB4DWpqz)qMt{z+iMJ;I)jcB=_~VHdqReG+b!VdS)Nq84EOx zG`Xpo&W)KmrHu3ZF2$|0xp>963ebSRd*>T!%33r7@0517uum<>Hb^>8mW**;PM6 z+ZuZ`yhY3?Oj&;5^La(ek^)+%YB+Nr%#rO-(FrV?LwTMUn)udLk(A8bJ$6f#ZBkS8p OuZLccw=$W1y!-*!_79B! literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/stylus/hexcode_feature.test b/docs/_style/prism-master/tests/languages/stylus/hexcode_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d85fcb9189bdc3b5eb2f3de980fa1227bd3611bd GIT binary patch literal 647 zcmchUK?;K~5JlGwP`z@Lb3>Bg3{DT)Y9I*lWMVRp=Omolh2>bLuZ{& z#oidh8P1}}j*Bp7Op;{Lm*SM=IcJ>3D^Bp0ob5{Jyz8_dUU8+-DzApdwGfHW{ON`Y zeC7fv!@V0@9LDc!NI^!Eqt;J!l_mp(-+-htS^l0y%i1h!VzF7=gnEwSj5fL+`nA@0 V>xFS%5Gh5_o4c~&q3o#p!yB|jtp)%9 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/stylus/important_feature.test b/docs/_style/prism-master/tests/languages/stylus/important_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..225c1e05395922be98876004c70d19c85b1569b6 GIT binary patch literal 435 zcmbVJF%E+;44fM&e+ZtT4`8a)XCQ_sxGHKIN3N0D-#00NGBA-b=ex7-9C_l_Fb<{~ zpOIK>5Unow77T;A5t)jjj1;WbN~`9;%e+pjQwNbLBFm>4(0R)?>q2cZxIyy|xV#wj zeO<6AIGGj#v@iqk+Z@W!dO%Wu|2fbnjajJ!D?EAJUtq>Ex!k|H0mT-!RR>|ym UOxHWQ$1BCon>vh5O{^`PzdRRl)c^nh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/stylus/keyword_feature.test b/docs/_style/prism-master/tests/languages/stylus/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..51827751913dde1033fb478907d712c5dbf0f75d GIT binary patch literal 1004 zcmbVLL2AP=5Ik3)KP-EWO-#ro!BFTkj1Ouo6OlwVl1!VvzAM>Q6qB|zKAF*IW~5oQ zodE?(Ly_lO&QuEm$`Ur5ePv2F@^c3T4Eijsh1Ut%b7rI)jD}t)Qx!GPw(z^I{pORr zLQA?H^3q3PkDPIqJ@NT{6=yFMS|^;mNbPV19wCT~K04D7faHhu%EL(K!SGjM*GnTD zEfGWMiBO>)F7GmcMZ{8So=5mb-C|AhbujrWjcQ{U@i0tTK5*FFIrPRya@VYphqIt# zs7~LGKCgNNr(SRjM;Fr%`rw9n3+^76-A^HF=r*ZO+gj66*BN6=Dz%W;w b(R@AsNZyX}aI)du#oMCZ(nZ=vEoxHI)Zgiy^rIGpqFIG`%=^v5D^($H z5QUuWw1y2V{U8cfYtF7^VGl8c%Q}IBa5hV@GP;t+-n~NRCt-vw zwZa8B@B?)de01(GO&1-insX)%VHky&(yT)gya-c@>?FUF4yaqClsM2iBf{#IaPykJ zMfxsAN}5Ek7XQEK_8{|P4Lfb1 SYpn*M3ZPnZsjS$`+J6FMMVhPt literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/stylus/operator_feature.test b/docs/_style/prism-master/tests/languages/stylus/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..79f656710004a7b14423e92c0c6a8d2c59c18863 GIT binary patch literal 4690 zcmb`L&2Hi_5XaAJ$?q_D1(m`A>Y*3Zl*2v->cL5z5C{q614@PZ>^lx5&Z?ti*DaTf zCu9HSKXE<=2`-F0&OAJNFmge1=A-?Az5tItOrbWX^(lp}0A}EGreKCsI1AAw!O><^ zPjDOvwC%VMa<)NV1dE%wa6xevqiX|Wh_pGbqqgXJoX?*)+ubZ}CTQ;98Md75(M;eO z$DE~T@8Ja!&N4Jpc)>Ae2edO-;drTsM_9RV;4DY?5!~7?VCh26S&6;^CKGK}XqRxk zLc!Sy?FwWXK*`w|2PepKs5pB=`w`+4&YWHJguGG^7xj^|_l_scN(g0ApiC*z|Bhj4 z2^Spd68{XtP*0TbkVl?;K)0?oo1V2jpx>IpbDN z^qttTkz-k=ZLgfQNUOc4>c{*e89AS~ZWH<>Uag+_yLPSaQ?}9gFUfpoHc4+b0>3<{ zr}OiDmVm9@mEI3v6B^r83G=e!rUTqP$$e?%CU)3t0GrZSBX@7dJq&O&lDlfX%jX*(8>2h-GF+GP9LYe6UlTlk1vgkECMP1XywllDjnP=5~5Ya$U1*LF$=I?$ZQV za;pJuNpi2(mRs2AJq>Uxl8ens3oh-z=K=7E1Y>h>>lOr5cHFmK?(pj%ZXRg@&UP7G z1~TxnEKyQ-OG0;iWOQuy|EF-Px8ysCY4-hEe4-G25;l|AKDG;WrqsQu<@;OqH;4k8 zUFwyo8{m5?0xot}O7{1QYq3#peikTwsdSIsO7DJY=)Su>QIvU{Mmql1iQCqszo8Vm zwWo{HwEMQ;=Dz>CXEpnztK4h`Oz7T+afV-U_J1z?-Y9=pK!|^k$RvS=R?PnZm2s4q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/stylus/property-declaration_feature.test b/docs/_style/prism-master/tests/languages/stylus/property-declaration_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..275eb43d926140ec7e5d23bc6d982b93185d278f GIT binary patch literal 1053 zcmcIj!ES>v3_XLyKSVy4s)wHFai4)WK$5OeQxb)w>xB6C*`bJ*PMd}_6d}dWezu<- zp{`k)d??{hY`?QNyl|t9E0~i4FHOzQ@6Lo)6s*xf9Q9E=P z?mieE?PMlXzT%^}5{XLaq?X(p2OCxbRsdDCiGX#+O6NawA-S$y?UiZC2|)~-&=?l` zq(G!-!=;hL2KybL1?&wlWCd#!?9OUK%YB$?fFd%JmMghujekr)qlq0Z@*kjj=xHe- z`!1x%M1NM6v`%0yHV2vw>91NZoi%!rB#wmuA+@?F1Zf1A6#uwHv7#qvh%F>I7-Aet zqq)8cO*qi9jmckpp2b)YV488AmLiev$UJY-?|b&It&bgI3K9g*`giqqlKkAUqj79{ KCG6o1b=xl^Qy;eg literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/stylus/selector_feature.test b/docs/_style/prism-master/tests/languages/stylus/selector_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1908c4bed70dd711fcf279c773509297e1c8f2ea GIT binary patch literal 1119 zcmcgr!D@ss5Ir}Le+cQN1>HlBLQnk+*Mpm6F*Hp=j6xCry)zN5s|%&ur5+SB^WMC9 zGm*Ndr1iBe&(6J`>QGU_m~h4g7L=rf5~+Kpt?yz+N%|HxHo0iDkxwu7d6)kPOn7(z zwxT$xvkMCUH?-?CHc+yvIbzuXXht>w$yhY5S7BEuzu`gVl9Gp#x5_9HUEmojIrMl8 zM|)ueuPW#mGJSAfh4`6EB}^UasGUXBcO-G71`xzJTDQQrg(fo-#CKN2ZYJazM=%Px z;`73HPdPY*h4@0~dU{L7|CMIf{24&VeP*&TegxxpO92Nkd~Kr&-kEtwxIB0+mC+v> zVjz@*FnFVvX_?j`phm=``*(b>`akjU>1uE&@n>f!0i~4OaH(>{y){a_w+wDOn-{4) Fd;vSmL2dv5 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/stylus/string_feature.test b/docs/_style/prism-master/tests/languages/stylus/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..934f94f077e51565f52f2930df0c706f9321a43e GIT binary patch literal 648 zcmchVF%H8Z3`OT6aR=muCFudO<`^kML`fSp!Vx$_ZeP=oia7%?eI8%m*jV)BJaq~{ z3i}rmVyU$*pk~NgiuS@vzCnuH0BgY21=`!Ev&$Gpn$bg}5-eysfm|0D(`34NOWSFI y4o(m$%>KnDc<=_p*AG*LJZ?+fNUdu=@Hh4xCcbRLd7!N(VT(L zC?G_&7DTH<+$?Bd18I*W!S^~KlJ$1~(z)ATtAldwPf42N_~EWMqo;)p4)eDb{sOsI Bb^!nY literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/stylus/variable-declaration_feature.test b/docs/_style/prism-master/tests/languages/stylus/variable-declaration_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1d68f9dfe016543c8e450c8e6f93008368163bc3 GIT binary patch literal 600 zcmbV}u@ZtX42EZW*LTQuVE~-qj)lp`;22UY%87(4=-|_vA_4=0wo~&b>DTT()5lfG#pTrU4+od`_9@-tuFXVFJPEUrKXXz~&i*9fYS=nT aHY229)BJaOx|-@XKus3Di-pZ%hvOSyVU>sg literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/swift/atrule_feature.test b/docs/_style/prism-master/tests/languages/swift/atrule_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ae307f5561644f9217d3176de6f5a9be24a55c26 GIT binary patch literal 649 zcmbV}!HxnU42I7;$-Kjav-%99?qv?@!FV#pRJJ>d5=x*X`u4)8yKd}B!lCf}4fOxp zZnjEnk?X4MW}g^M@8Do@I8HSiazoj<=uz_>X$vv#eIO=HHVg3VDKLKJ(osN8p|ma6 zbMhDC`k`KcgMN_E;i&V~rki?ijfV2d0!(Rv#I)CzVhZ^Wbv1rtmA-9VeQXtQNEX$o zQF*xAoN70EMSpXP_~wI%o_rDbf1d=w!#4pvd=${HuOhqqEU@CcaQ%{lpn1+k?dmG; U_rsb0pgzUsn?eITE)m7a74xRI5C8xG literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/swift/builtin_feature.test b/docs/_style/prism-master/tests/languages/swift/builtin_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9bc07e5e73e71589f6f590830f6a2deb7ac3ced5 GIT binary patch literal 2410 zcmbVN!E)Om5It8j`~%~2+K-5voYI-hbebMAIbdn!kRnh4C2qgI4}`4Piw}**0`zwG zfq;E`>zrt=l^2a@)GkQXy(-(1R7UTu>zDpPnTg;L0{JLgXQR?KU@+PAiuT6PKsE-^ zbhMlH_g=%Y4vm$a4l!}V!@KcT`v3=w?o=8~!zjs419=tULcb?vWUoymkIr^zQox?# zgSrEgXaMS#g4E$=7~>!L;5hH9qTBnXMZ}hT4c85dq5&`Y&Pk<}PoZ3=TV& z8tPyljmBF9Z}_R>GlpJwR65tgBLl84!BgMsgA8x@g6O`c9sUjnyBAG#^GHUoY-k-= zCfkvx5cPn)+@{kJ&18e>=~~D1Y4Qzo-W(#qvAfef!4<1c=#T98ZHj7V=pI{&1GsF# zaj!weJCn~e1u0(3!HMSc2Y%^>K8ohk<7PMET4=kulABxSHcwaQDDHDc&v9IE;PQl_ zTzHPp32+I|$C4*GUC^8%ENaP^iUFrnN0*GM%(CVc3tdgda$`xs8s(CcJgDR-Hy~#j zc+BC-96703#GK?6*me~VBEZn2D8O=l=0zn~Oi>MnClz5}Qk4pKU1nG`WT%21Duk;p z@qo&*R^4Lm?{us(&mwFr>?m~Hl7z29Rg{qV&&pVVvr<;@telkzW({Ql@1&L6pt4nv z(v3R5Az6#L`%#-Krli#uVAt2CcrWHWFpE2fA@&SB5&z0eOEutuOLbrtUM(uTC*^}t z)XGVPWGxk^_2oZYlYpNe;7VKSO?7>z73l)aT%tBlqQU>;b!z)e?XMtv=Vd8Y;mbcT CG7bv> literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/swift/constant_feature.test b/docs/_style/prism-master/tests/languages/swift/constant_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cd72339744ffebf531df60cb656239b8ad269d31 GIT binary patch literal 298 zcmd1H%;Dv7bmHZ5^Y@Q;atz|-%63cw5^nkV@kxnAyj;9ox?}*5zGz-9&S<6N{Ji3l z#JmzE9R;Pl%p9dy9SmVdCv2in2Vs)}IuWZd)X_?@yj(y;zRR66Qj@cb71HvH6kyIT G)&l_gzD7#` literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/swift/keyword_feature.test b/docs/_style/prism-master/tests/languages/swift/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..75fb886640ad854d129ba74b557809ed11550b1f GIT binary patch literal 2763 zcmbVO+fExX6nw5F|3j2#$`9~}S_z551Mq}UWH#Q!!m+o$WJ$libG(~?)QMDq$l5z& zdyg+?#wKfJa*mxd#qC`=X!V+`dDE&h*~+tYTNECRu29BMT&P0Cu(!e4(BWlmdsBUB z6`Q1R!O5#zKUgUveurRot~*s84+DByFJG~t?(lpsHe?rrR=x4QY*VZoe7twTcoY#M z_cdUMjSRY}Catw{J$}0(CO{5dUFhAr6cT_7v9_Yv)CO^wuQz`%O>cWJUPjv0g4u_S zR>6*#WrzVm;rT(t!6s8Af;bd}C;`R2P06j%bcngMuMWv}c0DZ$>NDo{rbw$4OY9Y-_2;F)aR=6=R+Z|)kd)%P#_X{FV(R^OhNZ}u?8 zv|e5;mL@M>F8&2Son^we!%c8G?G(n^F+U5G)Vx?-*8tl`u#jR-sE z6=!UsxEy>&v{Yn7WZ;yn=NUOUgq3t=F!Gzh$Al-`Ck0@vNCLwnTNDuu(ikejP>~ga zyPknfco-2V2tlAY-LfWLwE3iFjAA(s9CNVbJA~4^8Fi9Q+V2Cl6*!r4M*Na|%Af2r(9di|{iT zrbA%yA_Bvl7~0&55@KJBIQkjoU~mj?jz@^LM(1#rIWS4m{EYUUY?O4FeU&n2)*H@C znu`@PSiG6yFl&ZS?oF5vJE!F2@0>arKBcD{!16^a{D1u#aJ{wNTVCKYxWFB8G2aLB HrB;6d(u^+Z literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/swift/number_feature.test b/docs/_style/prism-master/tests/languages/swift/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ca8b7371d43fe6845b146dc9f466ce2865430167 GIT binary patch literal 471 zcmbVIK?;K~5Ii@KKZKlZNYbeESPOnaB*Yj|s}U}gk|KyXPZ zh2TP%V4=J^gmA+I1awMNB~zu%e5a|1$t{r)dpZ>@oQO*1#yvd~v5Z2ef#7^#W?crs zDZ}>N6=uKz!h+*G@UYpdkFVZ+X365?Tedy!KkE*^W#1v!E^rQk+vA1YYoi|{s`>$y dMmL>m15}$y{hnUGREv}?QPEg6e9%(fNWNo3ZQ1|; literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/swift/string_feature.test b/docs/_style/prism-master/tests/languages/swift/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a55d2e659346c7277ba57488b3f2828f826fbf95 GIT binary patch literal 882 zcmbtS%Z`IE3_Led{=xF4P_>Ix^$+?Pgaf5yH`38(WMg=>o(>0>+xBYyali>)IaLNz9WMV6)%=I#_iy+*GMSs+okY n8L3_hdy_kl{Ev?Gl76}WG=7U`e`hPmfm^y{AJ|95Pk_P`gNR-{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tap/pass_fail_feature.test b/docs/_style/prism-master/tests/languages/tap/pass_fail_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d0782990a3b947bcfec8a007666c9d6294217e86 GIT binary patch literal 410 zcmbVIF$%*l44kW193C>IOX&~#jF2I?N^KmhU~9?mYbS&bT}*^Pa7d@Si=vP~aUXa- zpw4HMR>ydAw#l#RB|_#MQqD@{Ktk&>-7gf;K)1onlV3~^bI3Co`+u}ihdFN7Dd);4 m;bi+E%}g}XMOQD!Hk5Enil~p#p?ZYMhfCrKR#IZC%SK;3N_12J literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tap/plan_feature.test b/docs/_style/prism-master/tests/languages/tap/plan_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8bdcd4e7a61ec357b1ab706e355eef308d811fe8 GIT binary patch literal 207 zcmXri(=#;SG6azd$_go&MXAXpnPsV5T)JccF0N=U&S<5AoWwjO9R($@sY(j5Iv9e; aRsj`o#gc2Eb4F@%cCkW;V}Jt4RxSWq1S^aH literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tap/pragma_feature.test b/docs/_style/prism-master/tests/languages/tap/pragma_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7775f2e535dae65ac10dbfe0debb88b25dcc6014 GIT binary patch literal 219 zcmXRYN=(m9RM0LiDauSP;VOV|b)j4?T`~X{S2P!Av=YQ9B^?DQ3ucE>tPWObsGUl& UT(Mka+UuN=nw(v%0I``1032U7CIA2c literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tap/version_feature.test b/docs/_style/prism-master/tests/languages/tap/version_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..600bcccc3bc059bab5ddafe352d0e041ec197f24 GIT binary patch literal 181 zcmWG>3{WUbEh^5;&r>io=Hk*N18{Lgb8$v1L5)$;QBVp&F;z(+mMfNAqn$HSle3Ez JkWA#|0s!$;C(!@^ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tap/yamlish_feature.test b/docs/_style/prism-master/tests/languages/tap/yamlish_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..be4a19e3d82362298f22b08bcfc05b9002cb7ffe GIT binary patch literal 1140 zcmc&z%WlIU5Il#kSaI1<#c$0sG$ckd($cEn9>RaoeC3c#v(^peRfW+Bn#m zL92w1N*156uiP<(omUzmC7n#i6Tsd$Is%Yz3dw|Y5<>u_QoVm*3a1F+p~J$Vxh zuf+2HPTbxs#d`IcO9;W3Z^^G0V;P%eypz`QIdD_+d>(+KY@5oK9`pBsFzCV!(p5$W zp3gH9{Y{O>fW$cv`iY+sZe3sLeF)fGF|Z9My_lV5NAPrdK2CO{gMYX$^ZfcS=&xhn z3iUqtA(Kq<9sS&sNi$J+EHzq+(CJDuu7{=xZ9Wk(hLZsaz7!wn|60Sl#(ebrg~$6} cz;iasbC&=0H$0SB)E0vM0oyGqFwx0l#slpb1%G*sH6cHQGI+U~HCQ$-AX(cu68Yg`;cq`bu$ z!G%601d4HqQeJ(K^UWE-7a#}qZbV>jC?q-yLfSbOzKvv- fN~2n@@S26fzv0*pLH6~8o+G&_8F9j#F{Q@`#KfY# literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tcl/comment_feature.test b/docs/_style/prism-master/tests/languages/tcl/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..054d6023d168b01d574d26410f92bb4d88dd8417 GIT binary patch literal 201 zcmY%9Q4a&bm0CFkenrskC>=_n{EE5+(yh(Rq&PYwpE(V%bqyV+DSPuZd+A4bh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tcl/function_feature.test b/docs/_style/prism-master/tests/languages/tcl/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a05e18c20f55e1ffa5e44772ea2c0d6be34a54da GIT binary patch literal 324 zcmXRY%1>5E%g^WKDgd$E^7E4ti=Z5!a6FI~Z(_vD#ml8j1_0@c=H=pyR!S<(%qhvt zQ_@jT0$HRKtD_LDlvbLTT#}g&76n=c6eLb9#Fa!VNBBc2mX`~N$oGtMMrv|)F)+Z2 K6kv`o)&l?tvr^;$ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tcl/keyword_feature.test b/docs/_style/prism-master/tests/languages/tcl/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..090ef7d7543619d584dac72cd9b3b2228d46a1fa GIT binary patch literal 3655 zcmbVO%Z}SP5IjeK{$b#Avj4ENrv-vdfDMpC5E!)Flo?Z`LQ?k3-)}WVdj{E30>m&R zs;ZlhZmGMBEt2}q%(H}Jz58d}QZjm5O5Dqn4Ds9^+%(5j+JlcqUDRkgyKt1J_Vj%* z-r3s(NwPGTX10$Wj)zfFidg*Mf=RF*Oc_qNfg4UH;OgUmm2u00TMV%1yWk+7 zVTeZ;MvS7x1zXkYj7jZ5odt7QI9fL@32qqASjjrC54g%j0w&U7Fq49Q$=JjwCFAPj zq3=#Em#7;&l`{983j^kN!A89ze89d%hyD6n7`@5ajf%9e;GRVT=P?(qSZyp=W(}cF zCX86yCz(Z$r~_|?6}m{$V~$@O@VX zzsGy}!G4Yj8_-9K2)}oSRNo)~xtLTw*ni}y+>ILcG0DZnCExKYW_iR}&VR070o?D< zqaXm-4X`4*0SqoCAs9uxZpG=_QV^n&YH*iu4)KbkEn&^-f|SE=nUAKxbeTO~Hh5mH zM$gxG?|$Q_eqZ|T&6nL-o^`Xkw+}m`+uwbC`#-#X)tvCp4A<|T;V*??i(MK@*Rn?l)Io-#FcSDy zDH#xKbjOsbYK;SVL zijTn)1630eyop50Y-pq^Bbh_hm6WJLlQ30z?!NXN{=Y9j|2oNV&JU2s4^4ySKmG$^ CNl=*p literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tcl/operator_feature.test b/docs/_style/prism-master/tests/languages/tcl/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..84426a0a84c2454f25d0ac653cee3f89f5ae5772 GIT binary patch literal 772 zcmbV~!D<5`6h+s)aR1?r5EmwCen8ElpAixW#nPc+CYf|8`S$9fi}t-$L=X<=-lyQ2 z*b)z7kRcI4LLhd;iii@E#7JbxNpdDqGrV|DRH>EN6DOkFh^Y|c)XtG;jZdteI}k4i zH($$g{+<`N5w~{7je=VXJ}fviD1RG=WQjqGp))mmXTg;Pqppm7_P_hY?x`_Zi`fY0 z?x}DxpXha^?@Yz37Help+*|Nu!E&?cR4h797M(_SB-(!dcfEa<_piHr%!`~a7y12W G_tziYpS}wK literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tcl/scope_feature.test b/docs/_style/prism-master/tests/languages/tcl/scope_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..87076a7d165a36bb1351a59143840b04b05fcad3 GIT binary patch literal 234 zcmYe#$xlkm;pHkVC`&Bj9U5Ih^`KZK>n)`NJ;Rp?K&MOuw06$7a#R{VEo6JixhrRGpFli8hpG~O8# zi8wQ+uIzfbz+EZN;j0u_CPCkUfgTK6eU^X{*n=#@gX%ox()5Zxo0mi){o}BC9*G&n zl*pVel|5ATQ3DVRs7&~+u*K>7{Z-5t{69Jku*P1EAVrY@@0qHFOUSOac~mepYT2tB3+N=`c>^Eyfn9k+u6kGy0V zCJfpwW}S0`3n`z~Mx#T7FfJxxUT~GCdYNZ5A$NXW|JwTC9=TGg{Fcgp{-?ER#dCX~;@I0Fe|`Wg$#((( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/textile/block-tag_feature.test b/docs/_style/prism-master/tests/languages/textile/block-tag_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4598b14ea0d6189cb596cac7647531d18f2a3a80 GIT binary patch literal 2408 zcmcguT~C8B6n&P2|8P@Zw#1PPeex?&6XSnC9txC|i0xLo#Ay8Q-nLsa8Mr|*d1`Oz zJ?C8R2YepE3!?>7Fb{(;;PJgT#Kw@VB6xtTmiZg3)>2blNns9_w-G!`X_t2qJW}PX zc>j@p+V#Y~k(rZhW13E<{u-Z8N-1~tal%CEUGdAWT-H)ugJQ+E_sXx5Ql(#-edt-i za;Yq%>$N})btTx%_v9QQom-0?2D1^5QILeeSwfav(T0%=Fk9T)V9YdK7*j&rg77&> zaZi?Ok?XZ3h36z9X_{V`i^K<-;MN%rI5*c2aElNl!p8J2i>j=cauiya_a4)*-{WIk zv^m8`bMkbu)j`2~iE}i{Z{^D)h2IVkj=6hcHg^NqVELSw4aTM;J%^+Umi37_P6k8_ zzaLijt9ljKTTaYt+8MiE>!!F47vK0CwB4qo7g*CiFb39q{Jf@3Gph>In6UNssj^P~ zLqtzQ>k*MSzBLu5^AaXH`KKfu#(#Y2@k?Z2!4k6DkhlEvrZN4Q?9MUF@S*g^W;eh3 zn_g=&w8C4ezVJH9m}FkxAHx{+`uAIa9Z6{>cPA{?+OV*>_Tc(L7~tjce*sUNhipEQ&TU0y22Hbjbi9ebKyJoY6`J8AXZ3sY*HuATFnpTYf%>t(2CZ zUy_$!0+s+OD$PqSDNQWN%+CYLDn%>B0!c%#LNuvZrP$b59k5X`MKO6mXA*0ii4jio cfX2lFy-Ja9oikFCvx^nd@{52N;Cn7MJ?oQwn9Nu%>VW z?AGjAjf?NCwYQu!EpC|L#t8-xZLFiQXwfQSUE#=PGA%(Cg9hlj9P>HcHQ5yfxh~8~ zO(tHgs%&$X8iDAc-S{ulnM@s9!?_=zS#MEIEi#rfs+{7il4d>J4=J5q9wfCZh#meQ zHtKU4|Ewr;aaK<P_xPzGh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/textile/inline_feature.test b/docs/_style/prism-master/tests/languages/textile/inline_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e56e17bbd93efb02a6995486e5a48012035c8433 GIT binary patch literal 8150 zcmeHMQI4B15dB^x?qE?x+J({s><^K8j3_|_oP;ff6o}MnwK;od#t>NBI8J`5s6;ER z!Q=iHpO;^FK%Fx`7v6;=IO^X#MZAda7RRrO_? z)Gw=Dy(TYyop=nBFWy`JyM;;8s!rOxDql}!#_J+4`3FwN{1q?Pgab1JdYr^8j<<2l z!0#wx%WTO49Jcn?z z}Q}LhIf20_$$|WT6xDqoiyD0%J31M z^AdLppP}zmrtOI~5?*+|w}#gqZXfoG#+u%#mhk>M;0=giY6BSy9|bkY%dV;Q6RfR3 zZ$!0(jUwSJ5*Fi2|8?O+LmNMr9UkzW@bJG55A1BwC0eOKE1B>v>69Z8GvUR28@nMf@cI?Nv?t6aCU~BQ0-L2?F6DNq@ps~ zJsL^Or?aAXC}~WlMH>Xh45m{UVwoDjL0Zg^8g1F>BRHsv84;-p{`Bnf_Ifxlv)W=I zDhEo$(kU6F#O#sKl3WMTYX~N0HHem%C?7KcjP5B)^qYzBS!-t^JTeh1nV_WO>r{}q z<4q{S;DDLyG8erGJwQ9F{4?vptOxkj3|@wZJA^sA&orPbtKs4{tHA@S0akBa?lkg1 zb6tIWJy5vqrTPo*5G1o=QKb*J$5B-TRf6t1I*Pj)Qr0Y}5j3~kdutfb0}YyO4WlVI zCa7?4!Ew+>@3w+NTP@sHaJ=1Ka12$OkyvUBXI?3l_kYGKO|qRTy@yj~P9t(9|G>l= za*2^x(u!wR&8#A=>wglaj6NY(wyaWLqo;n13S3bF*n$-hx7QdQsyev1r$@DuJG i9~}4nz|$WM+f_9abpvbKKLu}CQf92=O`DhdZ+`)z+Yem; literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/textile/link-ref_feature.test b/docs/_style/prism-master/tests/languages/textile/link-ref_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..12fa1da21c76be7997d31902338a7fe89e6f28a7 GIT binary patch literal 495 zcmbVI%L>CF5Ik4#AH;JW_g?!M;=#(Mu}M@`gZ=!jgb+wCCE{gg#@TVy5P}|aj`zNg z=+g2|oec|T>S=H%N+}(D%o1nVNY2^|hcmL}?51QK(Ik+Ks3Xm@^HYm3>`0ZY-saV0 z7d)X-N!?T}F)5?-uL@H313o>_2eaZ_)xW=#x?1YZ`Em*>>e%&fic_U~63U|~6y56; VKSr=q5<@^ydrg9h1q5#)bzc}BeY*ev literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/textile/link_feature.test b/docs/_style/prism-master/tests/languages/textile/link_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..99a70fb2fbb99ba26a8462ce83214a13b8b9bc38 GIT binary patch literal 1020 zcmbtT%Wi`(5Ih%&e?WUmq>$X*TPyV^s1J@~iW_4i+elHW{(E zcyq2g3JRd>E89j{{w1Apo*m7o zp1-jX7`B#0S=0+2TGy1tQv*ZiMNqJ-D8!hyo+B!cR>o08?JQ>D9f0qs5lc~BBIS@v zI^C`C-ulWw*0H;r?V zH%Jrpl17A3>k~qLGlLK4qomnxDNND(&Ndy#de>QvEvW>b}oX;LZo0JQnZLa2rrA~jfdje zve>nJI(rp*UNcgmUrd-ugJ-dNUes)yg@IRG;!7;Jl=U_+xNiaH)ELJaO@)Z&noRaw zU1tW<`$r2e&@E9%Ys#LelL4ei|C3X~8gs78?Nflhs1O>{#c{+zyhw9+N~1#{T70!w z^chR#N$z;wG$(8HCC@+hBZ%YH{fLa-wjdl^N}e_Zjzkgf`^Wcn?)4aOO`g%kF*Enq G@bL>syv$4h literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/textile/mark_feature.test b/docs/_style/prism-master/tests/languages/textile/mark_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a1f39f466378ddf179e8cef9b53704445f0f08f5 GIT binary patch literal 423 zcmWG2$}G;+aMtAIa?8)x2=Rq5k`jwFf`Ck3E?qJJNMAHB7iY9mK}JzxajKGz0*K40 z6acae#8b*mEXoEkfJ#d9l1oYxOEUBGfC5SyO0huF8LS9RN>eE|HdY60P)t!w9?-qS z7!~46oLN9G6JuNuPSb!6i;d;w0wVH5%{e1AIlEXPEx$+s6hg%c#g(~9`8maU090&h ATmS$7 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/textile/table_feature.test b/docs/_style/prism-master/tests/languages/textile/table_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3f8a9c79f1d76a1d922382231fb138a4829fd537 GIT binary patch literal 5885 zcmd5=UvJtl5Pu#L-@(mPDbSKiJhHBItF*U0b#IU&lNiVvY?K6Tqi#R@?rewA#6Tdl zS|1u?pYMM6$9MM0kw+#%5P1!QF-?fPQG*qc&4#?bF{`fYn&nmt2YUI%tUj2v&;ORL zx@K+&0}#+`0CW7OcMiKRnl;Rtxn{!!x|Szhm}_}o=?W0IAI;pyjmg0z@jW?U+&5HD zfrv%YBjb3vTe(@{0mglC=A>)G7xW;+3E=bpksyKlD{x{ z`9Azt#|pmttIcLjQMs>NflT%YVw$F%D8!-!hO{aICt5Mtd91gk-cpULjt9(A1CImO zqb(MNN~uu1F22=);f<>XvQm-VQlbw4^naLYpp6n!K2`B#cc1?r;Z%UaxYb|Ppd1}Z zL7J)ve0BMT45}P^+S9ZaRl3+$lXtX^g*%l!t-$lZ9t(Jd$iw`#3a?%spu?K1Ah6)* ziCs=LM<04H*NBTxq8)fG1_I-NfmYTC-89f{&EG1-(LD#2p90X0^cL|r;_6*gvUOYQ zkFQ2`Xw(4wUM?&^na4wkOGQ}+2&*p*9&xCJe*Y@n%+RXct|wnL?M4R*+%Hib(Iai$ z?`!q(nU7ULeQj<t~b`)%Q1xx|zKoH8!dxhb1PRX(Sy z2n$l6-0hLF-SZ%J^Z8KrhIyBj^YXeOHE?K<2>xfTut5vXhA}UMVm@bF`PJH|vs!Ui zj{$S!33PD2!5v>QqKQ2$l>*L>?>6Q30Nkjl%?4ZtkMBO-%~JyM18{Lgb8$v1CFSSmq$cJm=_n|b08Lbi)j<;lTcH%o6-%x) U&Kar6*~JQJ`9%s)%Zl~50N6MyhyVZp literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/toml/comment_feature.test b/docs/_style/prism-master/tests/languages/toml/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..190fa48b4f1078741649d025282641777262c125 GIT binary patch literal 209 zcmY#Z@Kn!LNK{D9&&^HEE74J?%r8|hN>#|qFVW-T(j^0MaYb`+Mk_%LRMJsUQpRJ4 aQY=?2x%N0`q$XzL#{~c<{xMeo literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/toml/date_feature.test b/docs/_style/prism-master/tests/languages/toml/date_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2956efd873faae26e7c4b1f5c84c7e448ce59247 GIT binary patch literal 631 zcmbV|!3u*g5Jbd)70CPkt$wsTQ6VtgrTj!3KB??g(S)FZP}#}}NSS3I=9j>ZW%-^Ttvsq5pZ=HjOu EZ!>CvF#rGn literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/toml/key_feature.test b/docs/_style/prism-master/tests/languages/toml/key_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a03e11d288fdd00e4e7cc8c20f3770b9f16e9c79 GIT binary patch literal 742 zcmbtSyAFde44m;-L|#~E{(z~UK^S6-wg?F-9z%urcN~Z)w1@#BB~tFrC+8eXtYU?h z7-2fMHyv6etoxvKM{gR8kv+*2NDYX{O;N%#;kKmAj^8B(ZbI2 z4i>qE;o3AXR09;PwFt5FO>~X``@3mhHm_~_&h0VnkB5}H|27Ui?AeklqYqWheH{Y3 z4n&sU;tJ$cSd;~M3OuW@gphLQK&j&YIMKM)I8;UDs$@zJneJmnb>V%8O+)9W_FIu$ufME^l z>MaOun1WHRDX2R~LvRaEPC;s;1iN6Fg4Tx;yn1K^LCFIcN*zE^Duc72EpKoDOWnSK xrcUmHCpYJjF@DM}U@B2SRU+f6Gyz$O0(Q2;?oqhkPU++8y6VoC)rk1Dz#l3k_4NP% literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/toml/string_feature.test b/docs/_style/prism-master/tests/languages/toml/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fa87009b611b9932802b5ca62f190361f37e4d3e GIT binary patch literal 399 zcmbVIK@P$&3_I7asLUaku}|=fr3aXRA*3O#`@eAMWuiN+Rnyc-ZN(&by^V@a!VGrO z`9TH>3aTQM%v7zflHq({0RzIoye_Z#$u3G%vZ?zArMZi{?|v|AI5b9!d6~=ERtl^3 h>}zSzRe_elY||tgn2?TIahdMpJIBXoiPezY;|nohTjc-% literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/toml/table_feature.test b/docs/_style/prism-master/tests/languages/toml/table_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c0be8b7e0b0bd96e73fb7e7f05ecee5191d42d95 GIT binary patch literal 331 zcmazpNleN~jpd4tPAn=)tc;E2;?gApaB)R*aYic@l;$OulqQyB=I1HtC@4iM#p-~B z!FGTIAPk5gn%Y>9T0CZ;DaSAx?0l$wXllVmW4aC~%tf|$oikFCvx^nd@{1I}o+{Sk F0swCwRWJYm literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tsx/tag_feature.test b/docs/_style/prism-master/tests/languages/tsx/tag_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..3d5c0e9f96e0b90941047709e5abf200a2ee6d38 GIT binary patch literal 2083 zcmb_dO^=%}5Iuv$f3W7XD{aUR$j2pJX)moRbq|$j4lX!d6u`(B+9=9@?~Dxu%(B}? z8*zxoGvk>z&(954EI)lpo5xJ#qR?!^)=Ap1IOA3Ih38@e2PuIqx2wQ!jPth7M= z0#~|L1zVR)7P~BskC^@?t-_f8Kk*{Tgt}~>M3zbRTdFJx*UOUX^)7*rU*Iop_)%Ph zIU+cU6Q)hzfdL`_`v^MOer&eeCU%*G`2Lv1~rfhkGja8`xrwd_NJq_*qn{dd0;KY{~Y@b-3FQR`AV z5qC58`x$$GLN88WWwP_XWzOYWn$v3U>^*q*8cet_U`gKv1Cn;z#48HalLx1I75_QC zdWSWRT4g*f78)l{QapT3Zh&;zbpQ^g&e)w2#?Qg3JJ<=rw(N5=vV-Xs_4oGYZucVM SW5o_qvFC5!8B(YU1OG1xbtx7A literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tt2/comment_feature.test b/docs/_style/prism-master/tests/languages/tt2/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..48530564511b24287fbe26cb305a0fe588073c10 GIT binary patch literal 831 zcmbVKL2kk@5Io0{|FCtH8?*?n&`X~Yaxi2|tj1pCETI0r>m((h78T)xwYwV6jK?nW zXW-hkfPq~^sASu+J0i%;?E*!tAdprd%UfoQP}51u@CA(vC@6+gwEGq)umJN?t0ISi zR#+@-$$R1NNVrC}u!8w4F@oS)N?OT82Z%Mvcm<0yU}>p&^9W4zw0uoXucFoTfu)uB z(<&4tcaMT73g> C>ef2| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tt2/delimiter_feature.test b/docs/_style/prism-master/tests/languages/tt2/delimiter_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d246ecb3ea54720b021cc9def6235ec728803a4a GIT binary patch literal 414 zcma!6)m2c9<>iW2RnUddx)6o}6hy1?aw&k7@N(&r0eHE9hVyc9Mk|$+7%Ax}L`N&7 zq~>JiW|pKD0l7-is=7+CKw(r-)mWw2*jOFB`as&y^#T1rSR*zIiPDJ8Mu>&HT);3S YKY*MwQj@cb71HvH6ySkVtjEg*098?7#{d8T literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tt2/keyword_feature.test b/docs/_style/prism-master/tests/languages/tt2/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..eadf7c10baecb57dba6619024eb53127a08bd9f2 GIT binary patch literal 4967 zcmc&&-*4J55PmKa|AQ9|^`+&3ZjY6kf@!0r0VP4K%6JH1AZtiieyroa-(8%LA-zSnh~BY{&XbKMZTBNp-s#jOgv`j>OT6@n$0gV|`}2#E;Tv;BZYo4XP<>g0_+r{5Hm9 z>DMf&HLB*uhUrq9?6Q5$VQg5sNtOxofnB|BVpAOmACmYx8f91{3-QEc@2O*36J?qP4Oxr=3VoTJ-67tZHS z>UJ*Q@z?FZMd)_UJT1!x+6D1EZOy`9A7m_nq2~3p1xU3gc6^SLHHwOhgi_dc22(%% zB=DCZ!#N&NzU2g`x6l@g#l^pA!t42lqSH&OPN733g;Bm=ayJaF)Tw}TBNbU@x}pIL+Im3$lJ62lcLQ=t)}8tMh`Vu#h(S7^tAZE5FxY8mS`8liX{@_~NOgTx3pE(-8MEpGvds12N`FS(qS) zqs-K(@Z_~MEH0AQVk*}bq$b{;8WaSQsj@C83^;-IN{sPqQ#gDX00k=0TME&N`bUC{ zb4YZTKk^t#o69syf@q6LQ~RbB|76D%H4{V==XmDBWU0bLEWZRNS?5VjCYH2Uiglg9 zlZt_+nAXLg*wLOrQ9uG9_)xaEE;!1d%hY(4`S(2v$U*5UjFtHn^(?2*kUmm4KMm(e ztEyjt*`6a-&;n2PQ^U37Wwuz}UOiUd+z$${c&RVZd;4C>-GJhoSoRdEtl~Y1Dm3V6 z5UL@y{il)!yD4SH72Oy|lW!ZgXCPIU0I~%cUuR;G;JpC^wq1{nP z1N%zU))3A7AWgKtTCV+wcq$SVZ+SVI93fB&_};k!W(OqYKrDu0Lm6MckE(q r`>>Q7ue literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tt2/operator_feature.test b/docs/_style/prism-master/tests/languages/tt2/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a8a6058d4698a393ebaf87591f8fa0d3ea7071c0 GIT binary patch literal 2324 zcmc(h!ES>v42I8*ly@+Z;MDD~GvTtwh&ZHerlJ8xkg*F7KNsl6a5ZUFML5A9%fC&c zd^Rz>Sr0mcBUY7#IG4hZh6q~2!L~~!VoD0@n3Tn2EGAef8 z<45Pf)+cCe?7672kJ~VWG!N(y!7 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tt2/string-interpolation_feature.test b/docs/_style/prism-master/tests/languages/tt2/string-interpolation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9a977dbd8b7050339488a6cd48eec7d0d02e9182 GIT binary patch literal 359 zcmbtPF%H5o44hM`e{e0bwG4cLg+HVn0yPkkCM8LEKTZQuXRs72*7@#yN&=q9THnIX z>4_QyIn-5Mbw5<*sk#yhQ#xSFKaof7IFdD!NffXJR1$|3g^c*+Y^i%LKGE346pXv^ zQXvY!{(D~$6ao~!bTFD(S!_M~qsJgNJt8My*Nw;4T@D4$OZ@&yd%V--5#j0s7{}>m QZ*?->@f6KSP~yb>8<(0-Hvj+t literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tt2/string_feature.test b/docs/_style/prism-master/tests/languages/tt2/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..51a5f792facc7b1d9e185c95739e0c5bf9a97127 GIT binary patch literal 893 zcmbtS!D@ss5IrmS4`GUU(G_~^wV&a5usZF^#>6!v+t2T$y2@G$(h7#;B`+`Y-V|{Z z!kM{uFL_R%Ro81e)wat)aP_2&WmPEwIx_6BZq(dnx-}Gqj)&HKc$8dS_0%YY>u8xA z0-Bp0F3301T23T;8j0Xr4UhfQ@aUqE%o>UE60#MSQ5c2UA3o13qA)0c`596r)4;D~ zgobq6wM>KHP{dHC_YFI~Y0AD|(PXm;sVV?>okW202zTqmQQqnn4rr$59OW*a;*y-q za1L)u@8K>df$!7~`}wY({mR=`ogCooReXfER(o$DoO@^$eMmhnL0T&a{2>3o+U)gA O^~I@oJE$omclrWT5dn$- literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/tt2/variable_feature.test b/docs/_style/prism-master/tests/languages/tt2/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..7504dd996683fe3668df098530cf3e442444ff58 GIT binary patch literal 613 zcmbVK-3o&s6uwsI9Yoe$6V@JKkC9#2G?H8nm2K?lcg$i0d6VdOem)h?cWg>hVANZi zkafZ>UcJ~$%&{8q%dSiAq$jC9DF8$)0!nA!))@)$ASUU-j*|^w%eKJh1EatNZs3}R zhEUTgz81w8kV<9rLkHy`Pn(jq)k3_4)1osf=ApJM5lhRHb)MRYlHZne%JSUti3c9o z>hO?#&@AizO|#Pb)GYp=+6Y#*6ncVC1XwVScjz{#`{+q;9r60{G>WV(@bEW&p7@og literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/twig+pug/twig_inclusion.test b/docs/_style/prism-master/tests/languages/twig+pug/twig_inclusion.test new file mode 100644 index 0000000000000000000000000000000000000000..90f32d1452f998e554515a987898b3fcd06064be GIT binary patch literal 362 zcmcCYEGfw0<>IWaHZiKL<>lh#(j^0c^hE%qdAN(gm5Sq@w^5Qvd?EcwS;| zDo|X>3alVj2QFWdm=0AB)sT|{;zuhLl;$OulqQyB=I4PlR#z*<#)9=h)#a7uCZ!gE zq)d#IkR^(+8&F#dG5~5Xm;oYyhebM+Q$-{4;$8xv~?N5qoR6mm>#NgpA9h(O9^=O5*ASL@T`ZXJGt_9)HP HzQXwpyO@W> literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/twig/comment_feature.test b/docs/_style/prism-master/tests/languages/twig/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..41c2cf774ab8ce450220059f00214f97cc9044b0 GIT binary patch literal 260 zcmb5{tlmUM^iS052CWS2QmdXS7mser|4RUWt;9f>Jfm rE~QuHQCI!3?3K{~#2`fh zTj?QllR9#rg5+BpfisKs*w=c-+!o;`I+VVR~J zIVD7Pc}3UePB19%vGFoj+^pVzw1o1r1KC{kxjv@tJ%P}5Q3@?Hp1SzHLa_lC3QYqM z#0#6qP0y+#kvc`nw8$DN%@coUD-E|5@vU$*f}Mwh?&FKa;~||#d}YAHp$+M3)jRGf e@8w4E<6l>%3FbHcN_%;4s(ptW)6%8D?)e9iGmHQL literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/twig/number_feature.test b/docs/_style/prism-master/tests/languages/twig/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4ac52710497501f7a33ce0eb1bb3e806e483813b GIT binary patch literal 928 zcmchV%L>9U5JlGp@()9{wxz8p=vL96C|$%h+F~El2NXj7-Ncx#+*l!5-8;$5AMi`|SZBjC_JMlnk zW$Hrflsu<4A15|eU8@R22$E%)XWq0^bLG7*FFzsnuK(UIrS4blX2@Sq8oQ)@HsTbi tw(gQ=lI4^l?V;KpWYSvK8X z%8WneH)CV|_BMoqD_}5$dkA;!)^}o{~AW{1Ov#8qkz!>RB2(-A&40BW?2MNkU3;hVa{beLWt3^29e7tra)V>#LWxZ7Qi22+;bjPxY!R_~0zcB|bQw_D%FfnxLE4(Kx)X+)pL!FrR; z)P^Y`Gjs&oFqoh}Sn`)=nNyztcT_N$Oz!l!buQODS1;7UbYF5XC3A8OwJY1Kro43A zqeG7@XLBQlJDMH4=nx;o+atW64j0;9ya(;Fp`vD? zC|n)NQ!3sp6@{x&J!+R-s<>Gw3Rj2nlxp5A6@{x&-D;Ozs-#&c3Ri>bxlp26C<<4D zdUK%`%|cPQ8dTSXS~d$s;p$KxsPe&i)B}tsrc)y$U_Fy%$Z_RYRe2k(DaTQC1!71ObXplu5qEgTi`0`As$X5dn2s zS+FL|_p)GA5!f|((j9C1ap3KnSKdZ)C^VYAt|J1Yx?A!UW$mA(>3NlP6|}(L>cjF{ z1Rep6cMzA96r>i>c220cowdTNjywFMvOG_NyNTl6>PV)ZZ6)@{g1sd4^)RU(*(#S} zJ-R3!4O(6eD=-__BMtQmy0;~dU@I?~-g!Mbs$6b&T93G)>#BFwlM?5j7x$oN?44{~ zrYr7~M`?2EApNQhbf~hOWA!NT@eCLLYla?0Cg{+0)t2e#qiJC!o!tbAuEUq7l5 sU$s&m4Yz-UsnAYtL+7#P?-#Az!uOE#UweKge73{~CVaCp8?gBP8|H?M@c;k- literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/twig/string_feature.test b/docs/_style/prism-master/tests/languages/twig/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ab108d02e018c2ce4660703142a60f876bc96150 GIT binary patch literal 815 zcmd5)yAA>&5UeHHe<0h?oc@HL0Tk!?x@b59TyunfcY%aLX}p*y)$C*jCd`Jwh2Sv) z3xOk6bm$e@Itm)aQgpz!D-JMV64*wf?=RT#glV`R6PEax&EV(WkCPz+LqM%{S2WJs z(PYn?PM{|HtDD$rw(SREOd7hs2)~<3VKY{u{~#AqmnxOp__?1)%!THJVrd2ZtXg1H U@%nw;Ur)o$@$+PP*+I8^0!G!?y8r+H literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/typescript/builtin_feature.test b/docs/_style/prism-master/tests/languages/typescript/builtin_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6430d93c52d8e16f1966ca17dc1b3c3c8aebab67 GIT binary patch literal 506 zcmbV|!3x4K42I7J@(!ct={tzv+57OYj;du_0?n%I?aj7&k(^d~DF4?${!gY9>4|X7 z)J>5Ip`{st^5{cC@XSMKH9e=)YA*BWc|hoxLuA;#7R~lw2e4jT6~#t|6D=@FP~ZbpnHtg8|OAmboDU?SdGQ^*#_S>SAnq| zam|a9S$tL>Jk(VzEG$AazLzj6;j_fi^rCaT>P@x)XT;Jra~O(4Al}T97T91aD-3;c zu5Hu~=*?U~EYaSL#=pdnrOz^8S}x8aZ^+jWyha=)mxvIed=#s%pL8FDlhrPjMRSu@ zTXUKx4Jc1BtQaEP^R~c8@4ENh!1x|4c3LN^fx;2rVzc6awawpO{M7Hm@ zbT6mQ?A6e{zkH(-1yL^y*8(DVttf(PiBTB&VYn6{@YA_lv>po58oa*18?)9@{Rw~6 zE@x{o6Y5#rl&a-UnOgsp(S~3|AfUDkgV93_u1!UW+GSvlC2{XXvJ#q;q3Biy@9j${ z^fN*2$iT0T2YD?1hc2+SJO!W1aeRZPz8v>p9aUwCM1&F{=tH;&@ug&plNIQ(w5b4+ zB?9{@yF?Q6T{9`Oizwr&suJQUvy@WZr9>5C!a$iBTBVv1s@)8)VonHEcM3!986G!= w;wbn5rr!cb1~Jz&guwMsVK`110@q`wdv6>3e}DG;o20*`6V&6hA3*8#Kl(3#kpKVy literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vala/class-name_feature.test b/docs/_style/prism-master/tests/languages/vala/class-name_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6ee97d9cefb209686010d28bba1c14340ac6bdb1 GIT binary patch literal 769 zcmbV~O%8%E5QWz^=^dI`L4qE@r6yjYVNq*|L}^U{jhx<@V$~3u7zhhGeIN7YM_*Oj zii2~U8QV8vr#xr1?ToLKHgw#nfioRtVmnGCB1h#*&hD;0(GN1z3Jet}81Q4rIpb`- z;2}aJH^?JQNbO(*(fnIJNOi~~tgWu$)kLz9c)ihR9Ig?5gOp5)G=d@_Je0s^PnQqxNT`FRiGY7s0)t^=UUR%m~hs literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vala/keyword_feature.test b/docs/_style/prism-master/tests/languages/vala/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f69ca59df532d4890abf427f482e6c5b89576036 GIT binary patch literal 3009 zcmbVO%Wm5+5Ik3a{=x7$EszI{-uoFrP|y->5ur(!54rBwcXmmqKry}~2uNv$OL1v( zX7@4rahMj9#$k?i@9j7od^BYoLiM1s`(uCNEq^?ej>tJ;1JGDAE#r`EsR&>u>=N&=eC!C@+o_p+pTk^HbvnwuulHcs|jcKm3OneH=2`8Z)SgGErR zz|SU`6YykZyKs1-^b%1P2V6fO{q?L=&3c+vdJ+Xy4qkH9!r9R1GW z#~sI?pE$mIA-G&s0_)W!xXJ*-`QlY5?hL2PZ&Gq6f+nD1!vgN5pmIb4Zu&$h5iAD( zQ!v7+Oo*fr?nC1U*F=vHs)7W+$s(cVNI+;NM@2~q)1;LUsqTytwe zz`hCU0t4Av#PP{klmG-pO+e6ABoG2s13_CE!3dg)6dGi3t2`K?r3fLkHX*ncD->s1 fsO8M|Z5;6b`I_d(VyE}Kf!uCTscm|3lfV510;X_T literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vala/number_feature.test b/docs/_style/prism-master/tests/languages/vala/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..dc88051097677647c1d9b2324a31024c92b20548 GIT binary patch literal 444 zcmbV|!3u*g42I7Og-F*20SH3wWeOj}dAJC8f}Si_@jZ**lHMruwTGVbIgpA89lb z5HVuLfEW>ila#P5PHylhSe*n#RE&yQF(^_}TUU5RQLO5ugEwh$qEJO=%PO-`as?f=C0x9{lW<=AiE=l%4v?fn6L=-&?tjju9Y@f>!>kLTg_WzLE|Z<9i{a_ z|J5Xad%B+|O{+t5+{|vAD{aKqZcHA{+lh_myYTh%{Qh;t$F}2ix!}=`S8MNIJ-Y~t literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vala/punctuation_feature.test b/docs/_style/prism-master/tests/languages/vala/punctuation_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4772f37dd1446eabf2cffcec08af21774c460d1d GIT binary patch literal 388 zcmbWzJqmy@6a(PdcZ%?)3bhBYqsJ(35K$Dtia(QhcX4ybWX6w>Apsr{wImoW+;AvG zsvi+aQY2l^r8~~{nDU|?8q_>t&pC3gUnVPw*NyYV`R436mug~v4{FA~n|BO(!{??T E4^-}B-v9sr literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vala/string_feature.test b/docs/_style/prism-master/tests/languages/vala/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cda10f8fd92e1107aa8187e21299675c524d7938 GIT binary patch literal 899 zcmcIj!ES>v3_TNxe~7F~bW+=I=(O{`pxGgXbc+^}F3|1w_Z%`{g2Pm4fSkn7Ht!ij zR0_HTMFAUZiJot+x6)Z}O40Sv`d2s^J0dQ~%~?kr^I?nALqaQEm7-ErvI@2o`#Ubq zJC&k1QGWMMlEO_dyM-6D6^Lgr!BKzhenL>IT65!*l;|KE0Xx yy_1&^r4O;yPHNxCPZQ7h{H+|gb%#&&9O> literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vbnet/comment_feature.test b/docs/_style/prism-master/tests/languages/vbnet/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c50d9289107d27b326ca1ac2e0090765c69a16f5 GIT binary patch literal 297 zcmY#P%g;|rEaK$~a`jb!v3a@Ffe69VB?Its@p47;a&bm0CFkenrskC>=_o`iDMAcY zijCDlmy1@)POU7@FG>L_R06t2DHcdWorFcbk~&ZUni)z^H!H>Rasd%97a8u>1?h9n QNKMWz23lUE0Cjya0C!zRa{vGU literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vbnet/keyword_feature.test b/docs/_style/prism-master/tests/languages/vbnet/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4097b476af8ea97c6112b015ad5d19df0da59640 GIT binary patch literal 7170 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 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/velocity/unparsed_feature.test b/docs/_style/prism-master/tests/languages/velocity/unparsed_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..32dc1f58cea7ac3aa5f1778ded682bf184ab71ee GIT binary patch literal 566 zcmb`EK?=e!5JlGpa))6eR7>k6yn?$Vi_)f8tVvCp`#Y%?iV9*eWHI@lnS9;|DYX`y z2`NwKE&yHYMi?p|Ofx&8Yj+sj)xa&f(FBBS@yhnpEb1e``u_J5^ zY-ou1)?IV007X*=_JY_lv4_=Rwbgf-62o-2g<-$LqSp~t8ww9}r#Ql(ERR#v>#D|L zkX@6fQQD(sM}?i4@2Q%xY0MZJ?Er7tDAq-haVA+Ho48RpcXSWZ{q8;}ap9e-DK?Fb zr4%c2Jg*OHUQ(c+)Q5qmc%+>w=U^d7ZAV^&6+t&ec)`i^pywZRR53|9tJpHwW@sd@ zQF~jptZ0*Uweas6pDLCMb7kyTnslrviKj(Bm48iDrr)MAY(hYF}ljQ(KIN7ZRM05|mq6E#(-8^lsp+Sqe)aOqt?_6phw z{=dt_nZ{B{qN)tSZ#wF4QwMPw=Xz2#OF5HjK~1iW(26**;*&%Qnq51~W_OG~*)GG< hp9$FUB+GE89x~$c>G<;t-@I1-t|)P`S0i#2{st_}sU!dZ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/velocity/velocity-comment_feature.test b/docs/_style/prism-master/tests/languages/velocity/velocity-comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0b66639e35bb74dfbb8c0ccecfd2e468f7cef14e GIT binary patch literal 387 zcmY$^(o*K-Qr7Y<%_+&u$;?Ytut~`*v*YDT&d<$F%_{-Rf>bCg1ZU=@=cFot6+vZT zig~$o$pE}uyj;<|T%6HLWvMy&$(bdUx=?eKbQF}7fi6>u)xjf==H{59m^`?v@#@5H fE*_sM#qx3i5&7PA&PYwpE>=j(FH(RywO9`T!AxbE literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/verilog/comment_feature.test b/docs/_style/prism-master/tests/languages/verilog/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d8aacbb2aa40bca27854e2fdea00afc285f8feae GIT binary patch literal 285 zcmdPb=jGDZS8&VEPf9ETGPSfo0$K`b`T4wDKp_PXpO;IQ3;@y>&CA6Zt(2Ufo12KYiB?Ex;Me}lTMk^)f=M|SE=9MVvC@3XBj8}@) p!IXkps1(b~1w`cA>YS09oL#JtmS3b$TAW&>0I@Pf0p^ZkJpj7bHKqUn literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/verilog/function_feature.test b/docs/_style/prism-master/tests/languages/verilog/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f33fe3f7d6f845110c87ae4eedd461358c345c79 GIT binary patch literal 386 zcmYex&)3l8HK1%FHduFDgmQD^b!>P=Y!V>|~`_9h?e4Zo(&@mWD?bEQQl(u-ys{c=X3Z sLIj@*P$1!v2TAgB0TKCu=bVw6oL#JtmS3chlb@cMtdNwG4;0V?0QZoMJpcdz literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/verilog/keyword_feature.test b/docs/_style/prism-master/tests/languages/verilog/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0f751f1b1599d86d61f2684ce3f43f7f7099037c GIT binary patch literal 7508 zcmbVQ?QY{X5d2*Oeup5xuSM?}`WS~pKueU&S|(LevXguI&Mc)kX@~dYfTHGDIgo2DCT@>fwtn_)P;#baBew zT~MqPtV0<7+{&*g-xl=HO&AV^EBt})Yb}1D@Y96v8Izi=ju2fFRZ<)Rf2CM3 zloi>9SnG>_-6|oj)J`{_w_?m`owxd&szy$nM(;5jTXgRSw@&B+mDy!?Wo?5(aVO5G z4;;8p$Aj-j{Pq(U;b{we>XKNgOSIa)1pe6OkLs|-ZV3sN#E;QOpB-((A9bpzVVXV< zuB-BE>Q_zy!0ftkzMG-FraOr^}e3&U3T|ExZ4-7a-uXur6E zjq`EE!u`$Ds{R#fwM_I6SQrgqHC8evKZNM8V?)Sgd4Z>NXZ%R8IzAkLKI1ka`m6v( zf&B6}_5rnbLp-d2+RdTuIgIBY@E4AbOCH|@W!vrRd~ zt`F!7<+S$Hi7*!@9b#IsrV!^^lu+TaI5UoU3HM;+ygzJ)Rf`#>u7Ted7hzqi)wxYB zbBm^Mn#^fX$u6VKlsXP?#pY*I8hOU16mhsPr>pC7+Be+H>S6S&?*lgnKwaD3BHAI2 zn5a2r^!MW-+KGXAP)+5W?j2VJ6Twwu!Wj72;j|LQjVsR{+runol6N;_g?ctykDW)= zx}Q_2Lw@i=R8tOgJ2+r<#)l`Ow!m=K8OFoj&L}WCi$2}q5Ula6qAb2FZ4)(!_s8)gP4t~+UP?)iow;4<17dP(l zfKGWIqQLdUayQA!4O#C{Iv(s^xMAOM?lJRQ$ji#jyrqDjcgK10`;v0cwcl;vJKiMB zh6Sc`KL=i<_b}nc&Q!Cm?_t61#V_xrJ7@Z8=jWBxBmp>N48x@mzHnJJK=nvn0Yn}jTw(}-Q965^GkfExd4M46{gqAj0FCB{3a z#PWC{{9=@;+qc}8N^MUf+VUD;dw`~g+=I3T%2-xI@9~s|YiOgfEiP$*dpz8NEhcG# z7BOpddy5<37Gr4C-rE*b)J4ZITq!UPQgRE_HGtSd0v5_QkgQID1^YtbL-eoEq%H%? z4|HoL3=KqIEKDY}g5?+r+L8_d{luYbS|W66p3(x;`xDeNhSWy%5eDWH3V0+x3jL4` zDcI5@1z5hM0VYrqv5ZP0h$E#O35Jw23DbaOWfIaoS>C4G*Q~mQF|!jGQ@e(kxnB!v zY@TI@LT5`CHNyN+AxtP+^442tDW_Dj98@45l2VBx`SD2J&Dwr(B0PpK>w~jjm)I^NEizjzVich>S{F$W~c7 zJoyXJn&Pe{*YP1$c1l8Nk{VHRup|vJnE(l?XABv?Y-@arL`c9$fQ*a+NYN-cIU6M> zVbPN7d~&CGgx1dcD5xD9?#z(VB56dbNMjE^PvJ%;DS+&fl9O&y@=6;wkk;E$87id& z>PKd?8;7M;z;3AnTUjopLfT8q$%8c!HApLRuhg07id>o!gIts1oo!Q~K3|{sxP}@D zIt6Ku-zdC>f_|&8ld^qK_C;f9+#K}vhW7H&gIwPuBoWngDz_*QBOA3G?4txK9jPFh zj~ihrT7$t<(v8woP~|uk0@726$$vJ)l@^ttd}oX}Rn5tyDmkfDCEvJK3CV|#JgjU@ mdR76_VMySL#$a@xzaJ0y|8-jTue0wi)5h(VKmG;kbmDIS literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/verilog/number_feature.test b/docs/_style/prism-master/tests/languages/verilog/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..09af48ada5e12f96e7dd7056e66c3d6ec65bd44b GIT binary patch literal 556 zcmbV|%?g7s41muIlSX%q9+q3wx@fRT%LdCXXDuv6Gyb6( z@((sWwK9`tMwTKn^#REU?hM8Sth00*G(2ZZD^O{JQ76@?6Eip&$K<*l&0ssI2 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/verilog/property_feature.test b/docs/_style/prism-master/tests/languages/verilog/property_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fd3f5890184068b25d6253075442d3b55c6773bd GIT binary patch literal 233 zcmY#M$t*6&Nvzb+aYic@6y+DB7L`;g=_n|vK+RQ()lmS-l;$Ou ylqQyB=I4PVHL!|mD#h}00TKDmaL!0g&MsC+%P&&MPA$qy%~41LSq!wbSPuX!tT%fA literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/verilog/string_feature.test b/docs/_style/prism-master/tests/languages/verilog/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9f6374776b668c000cc67104d4132b89132de1dc GIT binary patch literal 257 zcmY#V;^k6G%a2jYPf9F;u=8VhxgZ=~E?qJJFBdOYG%putv{G?NQD$Dcl8%B>3=k^C u>R^ZhZH|H1jY}S+peQB}=pc{^UM?Ua-&xKXsma;J3TgR83J|vy>j3~rt2#;m literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vhdl/boolean_feature.test b/docs/_style/prism-master/tests/languages/vhdl/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4019c444f8b53c40620226d2914ad19fd46effee GIT binary patch literal 201 zcmXRZDoy3(N=wWs22#9Sx?}*5zGz-9&S<5i{QR8M#5^S(1*H<8xk|A*=)z!&lwx_g YfQWqCoHJ6Bvx^nd@{1IpRu=040MAk^8UO$Q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vhdl/comment_feature.test b/docs/_style/prism-master/tests/languages/vhdl/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c9028e7d3483039221e2c36def6e1aba1dd6579b GIT binary patch literal 211 zcmdPZRdCDC=jGDXP0P-CTABbq~#YWKbD3uncD#hwx2t(~s bisj`3BJwSC&PYwpE>=j(FH(TnTC4{EI7%+2 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vhdl/function_feature.test b/docs/_style/prism-master/tests/languages/vhdl/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d4af875eeddf1d027dd02be5981eaa6d2733b80a GIT binary patch literal 877 zcmbu8!ES>v42I7`;vFoXXw^==A+B~CUz!Ea%qa@W= z;1mP0M_N`zWk?CRg3Rs(l_ZKLVCB9yzhk+)#P=Q&Y=LkF7&!ZLv5WJea&ZX^3Qn5*Um(|xwZ#WXHz_REK-R0>qwD-OPP(0Q z-`&XAe{lnNvo}j;5ZjBijkpWwvt}dnd7o>G(=Co7(Kyo20No~EUCGC*^v3QFbH2Cx i&pbZ8OL3@R&l+0$6_Cn-OR34eD&UjUN2a_`Z;#)A%k+5w literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vhdl/keyword_feature.test b/docs/_style/prism-master/tests/languages/vhdl/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e67f11ef5147e0fea0f667ac677483d6c02898b0 GIT binary patch literal 4133 zcmbVPTW;ex5d2;PzC+-j`I+521bd8`K|s-z%#BQH`LL7QZ*^0C0Tp^NL10Q<#a6RP zb(dbh8C(3xZ8xvqOtvoUeVF8CFj7QqCF$~<1*jkMfk(4k>_fy_%E2AWd$+FEy7&~$%V1j zWrShI;u4108@ZdoG07f$akkVX#FWe@hMZkO2&Rj@l7utI2xmuwpWv{y!F^y#sFFC@7s+*8ocxvpHW8!vT#RjwmMB@o2`G{j zgtMe*-Cm>7OWBkb+`9Y8*_c2~NO#uFO70)cRC3K*a@Z<7F}qpqS&olpDj$pG2_G^hrHJ+wuFtHBqk_oqcNzND_Zj!yq0f|V@tpA_yLXMI>#KF3J_W6*OStP^`$Iix zZLdvz1f&l#yEH~>Ujumba@RW9BLOUkgo}dt z3i9g<^sofgIBZ4}Jp`edXtId012s0`L?NgiW@krAwH6_-;)^1x#ux&5M$FJ_#0mjN ztsg9Ok$8lCshtno5m~xK6*31Z6B$4=xC%+a7Y#?vtJGxJMSFgQWwu|UPRWG3#`Tbl zreE2FRnSsM6fOn6SZ33}WJVLk6lf}$K`NUWpgNiXO;{5|lr}R*W|S|sFBT}`oJ_f? zbqYehQ#G+h~z2lHNLNIp&+ zflDWylimt~R_>HUgs>7)%WQ|Bgg$OvO(wPZMr7J7m3H@4EJ;%7Bu0?ycwb#kRc&m6 zkp8h;UyiWI+4KE4n}#J3EJ4a|)fnfLld=EEM-`nW=Y9bH06(1(1Z!rJ> literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vhdl/operator_feature.test b/docs/_style/prism-master/tests/languages/vhdl/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1277e5dfbdf20e87f131dd624d09b3aa8cff5a0e GIT binary patch literal 811 zcmbu7u?oU45Qb+D?j4Q}4%O;j+AcnZI7F=orj1-2e0={1F5XRANYj3NNg)3}$j~!& z(&61=tfXP8Wy`b_{DxzeIXz@bXVGzD$}vh-j2JKnCQVT^sf76~Ntx#I@ti@P7?_!u znjfCBZqKyXSLr@#cqFaXQVrE%EnlbyGh%1O&J|miuI%#0JEpeY*7KIubI-+vTN4Rb zh)66%Mu6rrkeYQ7qXT1bpcZI$MfBE17c4|4EPRV*)6yU7mO?qygKv}R@K5h{*YR}A LazTSX<;$BFC=lFu literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vhdl/string_feature.test b/docs/_style/prism-master/tests/languages/vhdl/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..982ec897841bf3ff6e5d48640c7e173d9c78f02a GIT binary patch literal 257 zcmY#V;^k6G%a2jYhcjY$xsno#fLvZKT`~YjUoaCZ;GR59lJ0Dqb!iBHvxk8L7$H#R_TpMG6qd73%>2uW>n) literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vhdl/vhdl-vectors_feature.test b/docs/_style/prism-master/tests/languages/vhdl/vhdl-vectors_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..1159abe3b16b3edd4a8ecc4fde3ec272a7e04bf4 GIT binary patch literal 385 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 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vim/keyword_feature.test b/docs/_style/prism-master/tests/languages/vim/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..f015204d3592fe882dbdf547729a987e5761ce82 GIT binary patch literal 25627 zcmbW9+m7SPt%k2Nz`Vo4Tqk*n-0nTd3@{ax)EayYQ(<$5rMHgI_ z^T{!nvsntB2FG5`=Y->Q3|7lId5u$--x0h9yd}K!S4TB&?S|p&m*YWc2?Vsy`8oRQ z)KWhx(PM9HKTh{$IKPU+@x{MkS?zb&cnI%B-ph0vUWVR0uKx886MgqDy(-Ib+ICK} zzGm0hbW^recd81*x904hnMVhhbGVT!`<#PthscHMTA%mf8kA0MneMC0aeHx1s+Ht> z=}i}|6TUgKx9d1XjokHdALf3#Df6B3&}F-ZM~$k_E?c!z#>6n3##H`9^p9C-I7sys z&M+z)(L4gmc6SK=TlXrz+3XqXoJePiZk(L=&OGg^37zwE^Lt5xD7+NL}A zo4MNAGbg{<*vafkjQrK&>*MuswWy`5y6Ik>_UkD)zeY&kz0HTsnSPbmWe9h;ICOM< zr9?yt#%LCm!{{u`&<1H z<^}^Dh!4TpIhbuuT%@EGgzEwDXUsk1TkBV%P(3w^k{pj9gDD@YP z%Gx`Yl%ulWUr#R*)NssFp9!BeXq2@@A3v2p!c`Rt*cO#cu3F3RHTqlvyL;ds1x)yL~$IjJkDNXq@ zUD|LbQx)kmy0nt~V{!xjA*9n*2{hQf^{Spx<+4XK;k3|RCG&UdvSSW8;WVu-|JN@@ zq)xX_#S14ya6BkMf%7dS%^Ert^r(KSCK@$LjQbE_g)(})8Qt{+Li3N- zoJME$Q%IcG7Kdv1W9{eSjGyU>2-#JGee2bz>97(Fwf|msY3E=W5-(?x>@4xsO3n zV_9Jr5jxWemB_`D839X;m8rk%EQjlAIn$?!-}=X*GG9FU2=wb31CzWegkkSCyS%A> znxhQpGe0g7cT&DI(KLZQmb%NIs&Rp+kISF-?_>S-_|{7uL?f!^vgOop*>3KZ%1=1i z+}BAZ5YQlz!%yq_KhG~bR$OnFqXpvX;XojocS?5QBs-5m)76SwEuW1yS%V3v0(_*gP%eMO6kXG{oV6JmYsV6*lr-HGlciUi2}leBcanx# z)N1(=ezlP>iC7Lw-Cu{ha@RcDVe|TD=~XWRQeFKL-wB34)o6>AuE0ThQ;rH_xTtbe z-T=`Ci<8fFS~#ZmXDs04zZr2ms<4L6za8gLuBs!PXyV05+^$

        lX>kBE2wNJ(*a& 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 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vim/number_feature.test b/docs/_style/prism-master/tests/languages/vim/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..66b6453951a770f486bcac7837034ec5c6af9955 GIT binary patch literal 236 zcmXr0a7s*ZOH5AXaYifUmF6a;7Aff{C>g+P nP>R(-lQJ>F6oa}zDVCQDh{$(_b4F@%cCkWQevtyiEya2OCSNhh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/vim/operator_feature.test b/docs/_style/prism-master/tests/languages/vim/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9f2ebf937cb1f1b21a40467b839bab1fbd4f1659 GIT binary patch literal 1116 zcmbVLyKciU44f-K|3KP^hd5S#K#!rH5o8F86g3*uftAtlxA$D2L(7|DNTPAPBWamj z7U??gitObmJMVhwlXrs*ID-V7NfOqIm(;>yrvh8NQ_&;}kHVwyC_K7(qC_ZT3xi!? z0A|Sma|?rAU;vI)#`-lqyhGL}o=tc1?&Z`>_v?IlOmlOPW?7o^LH=T02h1>wCGIVB zw9t-4>n*QOj5t{0K#9Q;10`ll-k6fHB->x?8jnwiK+a*Vfj9<4xaH@ot0yHE0olAIiHK)YUOHsmH`%6NNilDVCQDh{$)lb4F@%cCkWQevtyi H1I2m(1N1_r literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/visual-basic/boolean_feature.test b/docs/_style/prism-master/tests/languages/visual-basic/boolean_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..cae281b7761cbff6a0ec92f953c3271767f21901 GIT binary patch literal 236 zcmWG3Doy3(a!br922y_cB^jA{>AYOLT)JcckiKYMF3xDBr2PDx)Wkd`9R;Njpan{? lI_Sb+8?lH(ouCxU%LPQ_yTdsnH95OjAuYd10qU4yJpiO^HWvT@ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/visual-basic/comment_feature.test b/docs/_style/prism-master/tests/languages/visual-basic/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..41e14eaa1b5c0988999f5447e882baa695fb5dcf GIT binary patch literal 459 zcmY%AdkrZ~OlDblCtPZ9q*o845C&nmYRRMH1E^(+kaY)a^C5}g1v{H6z zWqE#43ed?)z>okMf$3;WML@*}LwUJkK_Ng!!0CeYIcKCMXBR7^wsiDWQ0C=QMu>xWXp%54SjrHp5v)zY5UO7RCL91Z zkC#iA48Y69%N5Pb#Tl)Xl30?eq@$pujNQRXu{x;AkerVp2Xj5hr8p(A$iRGrO&8eP tn1;c$fC51&mX`~N$PWqUjMU`pVuiH)A_Y)z6e}d=r6`nS=B5_w0RWklSmXcz literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/visual-basic/directive_feature.test b/docs/_style/prism-master/tests/languages/visual-basic/directive_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..643a5c594ec8fddb2fe3d2fa5e2d4d35bb8a8d95 GIT binary patch literal 863 zcmbV}O=|)%5QfiP*#8jXrGkpPi61HSWP9*jZ$>1WozYZ7Xt&xbwGJT+ zlX+(*^Ry;fS%)4Vt5*}91G+~uQ$rlJro};Ywg%;6k19vgA~;(IMv0dvT^k9vSl;o? zW@EH=yj0+-I^zzk>j_(JaR-rpd#^qg9#opFK|b61_0L+%I6~g=dy*157>>r>;QY8k zoQX_+_~u`NM5Gy!6b8jG8Kr~?$}%RH>=TxZDa#3EgMPtMQizPvF~xr7IO<+uK{t=1 zn>o%)1Jadm;OD@t)4Rrt&WYS#>pz{gBXZ{L7!nVZ8cYqRZ%}+k>P#_@{uthwynWM# x=S6Lo+;A1J@(a0!Sr0`2Wy^6JFXG6b>k03Ehze~`WuP)zg0-bup$59`eF7h#^eX@W literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/visual-basic/keyword_feature.test b/docs/_style/prism-master/tests/languages/visual-basic/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..73309df28cdc0c3354ac4bf82934d312850b3064 GIT binary patch literal 5008 zcmbVQ(QYC+5PUu){vqOd@BSeHl0$+_#E@mB)jk-;1Yd?R^2{XR@2|=>OLkSf>}usP zUG28rZnvv*TUGy>rmAfi4sNR|*tRWp=+@4(_%u~)ZtK>g1IeBDwKWYor=^AB-Kn!| zznXeD7@In_Ekt9}ZTI+a06$T0Jl-2jG@cla8c#NaCU%Q90kft-w8iE> zw7zMH_@;AB&#`5;SnhowQby&nqxse8NR{Vg?K#1&vp z*xJ6t1y0-nKV7ifZfrRJ1YVfWq?Y#J-|WwOx3q14fR~oG>jSotL%T#Aa(5*Uq1>Cwzhh141WweZxG&*2I=}2p z$9c=n;%v%}Cxpuo-HLC&g=wlWRLWDco%`+UaIo52%(vR(0PsQltO8bvCWSjAkG|za zN@4PxBH(}T1V9tD)~>^aVH^E|y{r+0HhJb7Pi;8( z`w#wc-1p(&ukWK*dwTbw8hyDLA(v(Uj(&U*U`lifW9C!xrqWX8MujLNIeQBAm`$NE9A_;Qrs#lF-I$Pu2ag9#g&}dTgjPgrF}E5;F&N}G>|lH(OnV&o7d z=6j>%@c~j$ytWeHRh58V67H+g=517R-cBjMvg34l#fU4Xm7hvAAibRuiI1s7((9@q zcaYNa`>Q~8_0kJ1wE1K!F<$R0;@M6CG8M#UUuySiTag$jbutAdCv{MAa0wyKN6J?!0x}H}1LT2Th>{wSn3F;pDNNi-Lh%*7 zf<*SEFqO?BKNHFzY)a~s??~yCGB}Y zf&3(&63c8_<$ zD?`2V3-=t!xEhfNIVt~j)T&!@;qPK#CiDtP3|}IN@@pv701AsmfdDR5f&z2dAR*Kd zQvRv1kT@$139$4Kz%^2niW4Ci7D-Z@Rg(r% z8Kp4!I-LtGF@Tkq6r&VVa`nogPE)F>dQ(U&=LB%B?-ay>Ps!t7Qxw3GP{?zQC=eEn zN~}E;%Sxr5>r4rCiuPS9Q8ngVnhFfH>gdOCfd7A9u#We3``X^@e7Hf$c9SdD_MiU& Da%-g@ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/visual-basic/number_feature.test b/docs/_style/prism-master/tests/languages/visual-basic/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..167a73a4af1cbb98ece9afef8b2497d340db2406 GIT binary patch literal 584 zcmbV}!3%;g6vodD_CLrDUDDC!Gwo-A*)@Mvd-?1|0z-mg&o*zbXZO*sOxjb8^Po(2-8;pL_ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/visual-basic/operator_feature.test b/docs/_style/prism-master/tests/languages/visual-basic/operator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..c5450c2556f3dc3e6404462668c34ba433e30733 GIT binary patch literal 845 zcmb`GO>4qH5QfhknE&v)e&9z^sb>|Xr{07fU6nL$t4KFtv!VF!n~*HTZa|O@dwS=2 zcb1vi2|}hZrc4rhra2Z^G7Zqhim8V_I!y2R2R7!c?GOhh6tRg+^!x19;LaCZ64WkqDyM%oXs8|YNIq#H^yDx z(5SJ_oV_8|E8#MK3I;v5{)AB6;*4v;~d6i8G1!&rYb-7D&X+*%q1XkSnH0=qywE!@@B!oe!Lt*D#$Lj9>rm zpQtMsxoGQ+S4r*0VwzAY#g+NCrcT0m)9WmD5n5Vk7ZFmX9-}Af2Y=7~Aj^t@T6aT~HoL@;H$YPXdX1AG~Dt zm%9m)8j}231IGvOP1p8A5Q-$3N+h63fVj<{U}rN#;@BNGEy2-RZ7Iee`f(kI!`K93 zTmMR-BQo~VyF=m<8M##()pS09UlY+kM|J(PPe3A*x^9T=z8eTj&a=lvu*V=y9)k`Z zg9sjj2p)q-9!HW)fJ`1oGIE2*;IX5)2aiDnkC_M_M>44k9)lS?rpQ-oq#qHj+XrIf zYV?a(yQU)(L=JvzH%YMaj>eGq{fmzjcaB*!97J&Eh(PBer*0!ry#`{_9p8G)D?Gui z;0%c142b9qsN@XDCPM{o8F{|G}unhrRE9Q(M)(?RXtnH{Isva&j&DP? zri|EB4b~63KGp5E_HKi;*;Ye^tM87>g=^e_u04b?y12X^J6=Xu_udUp`=(o0&_Xm! zF&SB8tUd%lY{D`HwZT{1yX{DR97fn}sU`ekFBiwkSFnuLYot_0%tnuur-wu2BYxFS zhKY{a`=KJ|V($j$Qp51eJ1` zs-m|Jrn;l^6@IAku==rje0=&+}0f2NQ+YGr4Q?z_AQSuYJWx#pYaW)Lza53oYusoHI!; z!g74(ko3}Aj8tq|X}~Yl`37~EIWr8H6&M|6&JBj$%blBz$(K7BIP0fka28i=5M7a$ zRWmfa?~!4aqdLqSb^}&s&F)+CNA8(5=Ga2zgTi(zABPP?J_wtOd=NGw`5@jNmca^E zAl`Q7TjNc2J`CI0d=OrPvS%2!$@w5`sY^iEewV>Yh6~&Jd}H(pKt`DhfHsp&kT#Po zkTsJnoH~;&kUEnskUEnskTH|zU`lFOFk>dq!3wOYGug7GO-c)+&SVRu&SV>;&g3~* zK>#r)m6>cAQ)jaI27qsE;`BE`_%4?ZqHlQlDE{7;595zN`LNdUcf@=keRIr5X^WH@ zd~K03LE0i^g0M*C_X*!q3qaLtJ}7;sm66s|QIp;RsY!2v^rW{?M$%g_Bk3)ene-M= zPkIZbCcOnxlimWUNpFGFq_;q7(wiVH=`E0%^ycmh=L_OYnE~ZvT9=QZGmavZ^7Cr# zDCz7Z-xi&-3YZPB@qjIz>DO(q+ZZ%9if%Z{E*GpK?<=*eW+(v!(T z>B%&MD(RP+OqMM*nauYL_af$niBa;x#54u3X!`<8BQJoaZ+it}MO%xTh0)?>VYIke z7%grVMvI$;QQ~I)sHFpHG3!j^n?U_QJq1@l3-47MUXJ$x@l^AUGGdN$sc z;{j~Mdme1WdmgOE+gu6G3I)WFT?N-8eifVx5dO+K0wjH#HLbrFO~_a)=vTz;8n_X+ zYv4xQu7PurM}FTY1tB8XT-2u3A2d4BsG+PyKk7bH06|HCIqXvfEig-kJk4Rqh0%blDm+O9n1}ZWV*zc7=N+Vb7NNrp@Bs7Sj4b?@0w5Fcw zj|B0UJeSc36-p9f#7pNz@KD1faAU2{r8rkP34l=cBsNeTl+X|gqr`?(DWx=Ok>Xk^ x0i&hzsoF}yp!`Z=qaI6OPYSeFkIM!A%d52hdv=?j{mriPH<)TSv0SUa{U6a0FPH!T literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/wasm/number_feature.test b/docs/_style/prism-master/tests/languages/wasm/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d0224e84d619c8848e6a205b7c71fc4839ffd29b GIT binary patch literal 1080 zcmbVK(Q1P*6n&oHKZvh3l5{D`-nLSo_g=~+(@4u!S6T*s{!S8WM{o90k>uQSt})3u zGEMZ7l&;dG&`UQEM)6!KtyTe$Rs^Um1WlEjM71gEFew5k>QYK=g>owZ)3uP}o9PgOamO)| zBJAV=Z+C+CgiG)!LORbl?LCas@RSQTkK@|pITz;)M5S9MxIAYhE=`%?qR$YgL#Cp9 z$QYOA%*CaUL9YGDyY|O`3pOJ1%Chl literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/wasm/string_feature.test b/docs/_style/prism-master/tests/languages/wasm/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a55a21a28f3dbf977a3b05a71da3fac37778cba8 GIT binary patch literal 448 zcmbV|%?iRW5QNVL@(y7yDpbj#w;YAOL|2MR{6R<{sVC{XJKHKK=F|{Kc6Ju#TOzHf ziIIu|yW#2t=b(pm081Utr~NuwgU+s@$LO%e|k4h(#;h S`D@u-{pp^u?qsIjTUSrt%Es2t-XSI~KB1X z7tPDX8Ld>7Sd^KVl#{BYqoAY$v{@-u2U8sC7OZkASVb}23vsYgEH4)jk?(5fjMU`p OVuiH)A_bV!i}e6bi$k~o literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/wiki/block-comment_feature.test b/docs/_style/prism-master/tests/languages/wiki/block-comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4d4b87a170500cceb70908d31a7c8105ddc32f1d GIT binary patch literal 278 zcmdPb($eSU($`W*%g5{tlmUM^iS052CWS2QmdXS7mMPJVK>ZgPHZZfahM yl8%CsKF~&`SRGuFP=^pu5mOYC2XUcNEH4)jk?&0BjMU`pVxYA}3Q$)T>j407K0cfP literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/wiki/emphasis_feature.test b/docs/_style/prism-master/tests/languages/wiki/emphasis_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..952dacbac432b13ca92b089478e031f0c750c8cc GIT binary patch literal 482 zcmbVIK@Ni;5ImQJKM*clte@yJ42OkkB(-1!FMYkc)~*M8Xx#&lnam73#^7`*(PgB- z!@;yY9lQvW;(B68*GO?`bo(58$RX=W5rD`zM_*i=MH_9aH|f%FSE0ZVJdyY} zroQV?W>@iVQS3%Rlzf^ld(tYjoA;YRlLuIUl&}UPH;LVFNy|R1cPboiU7y>dn#_ zsTD@XS&K(ZzDGToP8r+WTcxla{;uGy+BW$QhzVIhz@1%0%*aE=ZX~7@L1jM^bIP!D e0E$UfL~;}*_??dbqV*v9=L~l}fsy7V=F11|GT^=d literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/wiki/hr_feature.test b/docs/_style/prism-master/tests/languages/wiki/hr_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..8b09825ab16312f2850ad7c9f844f85dfa8b4518 GIT binary patch literal 198 zcmdPZ)z#(Y0umq!$^i3-CqVk5dAT^Fl`@KybQF|8I+bE|&_sYjyj(y;z8%gPsma;J Z3TgR83K{uDnN|6DC5br-Mfv5$dI0~YCWHV0 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/wiki/nowiki_feature.test b/docs/_style/prism-master/tests/languages/wiki/nowiki_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..0d15443b70e0d9cde6a8cd9d6e9a75cacf3be5ac GIT binary patch literal 1101 zcmd5+OA3Q95M3L{9foY&*m{BBrpG8Q;-?xciI_;C;@vyZxM}M`5!yf&FY{)2yvz(& z`XL*c48u+9afC3;L>Gp@Gx1D#?4y)$qx&u|*LXgPytZ2SjtQ&^{*fNgr$z)kAK&rL1QNG(c@jpgO4tE&SOP!dS-a_N!*K>DJ2xj3VhiYs%I z@^h4Q6qJ-SC`2oj7J)@k8~~I-(*$%7RzV!1Kw(}kAR^z@&Kar6*~JQJ`9%sv csVSL7smUe93W<3s3dNb}d5I;ZMXAMl0BG7#rvLx| literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/wiki/url_feature.test b/docs/_style/prism-master/tests/languages/wiki/url_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..35ce30fbd86406bc5fdd090af7fee7549b34fb56 GIT binary patch literal 670 zcmbV}&rgFe6vxjt>HqN3GcB$g4mfT~vV)7!i%COFMK%^%SPBa}82@(HjTu1>hIi`w z^?k3OCqxsbMHrPvOZB!jQfp~GFD|rh9AhN1y55Jb+cXVJ6icLLGGT|@{nFcHUSP(I-?%gT6k@9!Q7|8 zk6F>@XbC>&7(G3%?k_Kl=m@i70;3y24n`3Ni1-&05<8uyk$lcFzlD0RdSklT<4|@G y<4|Fj>7PYfz`f2ZZF0Ko`M4v9Q;U3=rAc1FrZk{-MP4~z|K@-lD~k`XgV;B@Or-(< literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/wiki/variable_feature.test b/docs/_style/prism-master/tests/languages/wiki/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e78a8103263eed56c584c8ee1690053482253dfb GIT binary patch literal 368 zcma!#_wx_&caD$e<*Kf(Hmt3!1u+yMRIq1=tDmE*PYp`VOGzzqDJ@DY$;{6Kit=*lk^w;aqItPE zqm`2L^NLFn^GcL-6hHz%k%H2^6{T1piRv1VVl3)nV|7R|6VpF9&E@5a XrNpbw8L7$H#R_TpMG7$g7V7~3^nG03 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xeora/directive-block-close_feature.test b/docs/_style/prism-master/tests/languages/xeora/directive-block-close_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..911b8919a2a0a219a58bcee58ad660f8679b64d1 GIT binary patch literal 283 zcmb=ma?Z~yDay|=R^jF1<Q4a&bm0rDPVRCYNNErRpZ- literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xeora/directive-block-open_feature.test b/docs/_style/prism-master/tests/languages/xeora/directive-block-open_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..d1f1bca3ce3a6b9078786585f76b1e080a771bca GIT binary patch literal 1553 zcmdT^&rgFe6h2GB{{UsjVS-0)q&9MJY*IWC4h*Z3O^WdF!ar}z&};=4!{Rb~Y4U!4 z{rcWF!!G6pRD65mwz@XMmZKQrRa&tE`lv+lTFy~Fbt$C4-b4YnHG?JguunuA-}M2? zki9pomY$FVwR_JkwzVqLq6(NkWr4Dt_V zueUtg*t}!~nj6w7yk%2l(4>&_&WHpUlq7QleNiPt2T{A2p}iHkB70Kbt`Vd!;zpJu z3;o>r{OIBxD+dEIN=?!Q4yn0pTL0_wXiw|+>W%)%v2m3{mI74yx&bD$)vrS)lKapv v^z;Gud#HPA@MmBZjhPPmWHtCLy^8F0h;=PFMgH(B%Qm&~%qwF|1MBNgW{l5Q literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xeora/directive-block-separator_feature.test b/docs/_style/prism-master/tests/languages/xeora/directive-block-separator_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..e8d9999f6e2dc13c0001c0c8c82469006d931933 GIT binary patch literal 310 zcmb=ma?Z~yDay|=wyNgk;^opM1Az2J^Kx-UE2U%>r6!kTmZj<@<>V)4>lUXLBo-x> z~0*J`> Ym~%#Ia(1yoT7Hp28p!EDcNgmc0PAf_y#N3J literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xeora/directive-inline_feature.test b/docs/_style/prism-master/tests/languages/xeora/directive-inline_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..fb1878b9dbd66868a3ab72734351976ee8674172 GIT binary patch literal 814 zcmcgqu@1r@6r3gD9|&bECOCHG2iyq*K~!P`hSGk&fI3i((I%FK@b0+x4vz4Sdl!T6 zcLV~$8&;piUIpXggClFOVIN=!=z;|S1OkGMzy}+Qj&?HCy52g2TaTt}zlsG{{Q z7ct=-ma;|o>7-O&Sc#KZKWi7Us7`6e4a*|A=Un}t6NtOJ>L=b>l!dtNaNj-8iWVS{ XIYbMxNAo>?Hu^H4qYr4Fz+rm>KJe(x literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xeora/function-block_feature.test b/docs/_style/prism-master/tests/languages/xeora/function-block_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2bf2f330b5855312c4dba45991ffb60e5242aec0 GIT binary patch literal 963 zcmds0Jqv>{5S<&ye~`n`3hgMA4h5%DIttR^lt@F>l&FQ$kKf+JnhKRTNT+5=c=ztO zd+*{#VQ|~>M54T|H#t_-4h!aoO_}P)BZxwm5_g>Ct@bFfSlplOz3j3mnNK*BP!dxz ziy>1@)LfMFBp2xkJV(O{KWn@}9a12;aPV{hq7d50fDv?zLEvUmI|VHHYeV}8WFh*7 zX!Nu29=3)|r}kOYv})KxJMv#ibV126$(ib7Bx@Cb1S$+rH8eycZANdZ^tP qt#Th$dG=M7eU+~b`+;4QDBGrgh|Q6ur^?BMbUwd=mpLz4<-Y(t^8Y>n literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xeora/function-inline_feature.test b/docs/_style/prism-master/tests/languages/xeora/function-inline_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..2449eecc5262dff950e5d8a07aabdb69825cbb42 GIT binary patch literal 721 zcmd5)Jqv>{5S<(FKgi*zLLCd@P;e@xyEvSpG}JGm77F5T?QcB(MvaooO z@gf0JmvI6r3A89N3If#yp(!C4>j!mP5xt4_Yj1;SPsFMF4W0oZr43c`zpVF-f@72^ z?^br0)TJIkStSCSQb;RZ8G>PwF!V)!@2Yfbm3~%nW|igCM(;F69v=TH*Jl#HYCSE5 JzW6V-{RON3z)AoB literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xeora/variable_feature.test b/docs/_style/prism-master/tests/languages/xeora/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..6fed61c994ec36c1f532135813ed7c778eb7d240 GIT binary patch literal 1191 zcmcJOy$XXc6h`L;@(vO+`S%8b(6K`c9VJ2xDcXvW7zz3D@ zBuU@~b}~%8FcUYe>g|wF!tDRIlFRKx7)$$wjzYAOI@DC9 z*jOD5Nx1#kWTTa`Q!C5!i&B8*C;^?P6bqygrtxycf@~zip}HV_&Kar6*~JQJ`9%s) U=N2m@=A|eUrRF9UWf$uK0G8QDGynhq literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xojo/keyword_feature.test b/docs/_style/prism-master/tests/languages/xojo/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..52a419b245aa393a6cfd1681ceaf600f924cc749 GIT binary patch literal 1957 zcmbVM%Wm5+5Ik3a{=v{W?LRn<+#0Bzz>nq-)|T(56$UmOOvr={%F{V^?E5VOy-iD~g?VtP>f-NJZ}6V0*SLXKEsVG(iPMe8v&&mK%Lhs$}F z#_GPwm9NMdV@WA41$n~wSNXW9rNkj%mzA_qArv0_uKZ5N(L`IR7i_*7I=$L;BM8@1 zu7h68Iw0}Q)(?8Vjf`;wan;g;A3X*COS3s#-?J z2ZnkIYAX;zdxOE~ge&lD#|T$56#Yfv)Nq7J9mw!=OESg>f}Wd}5H$IjBa!HHhNAHa zJZG1s(m-ON6$E`34?=ya2_ciNT*H&zFj57G;#bg5iK4Sqvj}k(F;1`|Qki4XN%trr z>|-QlB;hKR3}$ViV#;CzQ?0YylJKOz3|B!WxGFS*RkDlcJj3&K-JUd3?fcQrhtWm6 H`yYP+q!J`8 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xojo/number_feature.test b/docs/_style/prism-master/tests/languages/xojo/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..209a7bce07f996cf6ea761744393a9092841ee03 GIT binary patch literal 439 zcmXpp;^i{dGc++YwdCb8&@)Z7;N>#aGf&kuH{s<{OENGtGyu}cPKhaQiOH!Tb_SFU zWagWj0JW=?0=4pT>5>6J`l5NcIHQ&FN^_G^i_03yYO6oc21-voXpaiEg4l>qFeNF7fA3aMu)8NiPLG)(WG165 zr_3T)vN^(vQd%NxsG$=AgQDw#i?O~^aqkey@i{oEBHsdG>pR-H2krcbPzO5rKzn!Y zza|8P^p7+7jtGmR@q-KJ(Fc=|$xNHj4CM;5%!GM@Gqat{Lb#H`RHCJ3-AG;2NOsb^ z>RY}aDMPppE#_U2R98`Bg_gjjN-ejnKtE~$b&yhChJ-&;F)ae$|Mybf+@+6n%WW*r= literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xojo/string_feature.test b/docs/_style/prism-master/tests/languages/xojo/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4da4f5521661e847aeabf4e1adc6684b53f30b02 GIT binary patch literal 250 zcmY#V;^k5T0wC#@pRb^#l$2Nm=JImsk^y+Rc)6l^xj3Vhic5+z^U{@c6qI6sP$^ai oizqG`kV`;vK(~M>kak`!AR^yQ&Kar6*~JQJ`9%s4hZXAq03Hl9p#T5? literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xojo/symbol_feature.test b/docs/_style/prism-master/tests/languages/xojo/symbol_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..980c0f13ed72eb019a99febf21a61cec3026c16f GIT binary patch literal 323 zcmY%POylKJcFieHg;EfHUP>lNJfJ8sJvWh;i&CA6ZtyEl@o0OlUq@$pu z?3tz%tAj2GvLA;qcJ(0lVbK6_uTm^87Z8!}Xy=U7FB8aDun3tkZ01h2J0A=V-Bme*a literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xquery/axis_feature.test b/docs/_style/prism-master/tests/languages/xquery/axis_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..08aade5d9d7c056c6cb3bbacae0e093566565ce4 GIT binary patch literal 1161 zcmb`G!488U42I7m;T;TT*#mgpV;Bzzb&?Sp%@ngApI4 z62TDQIB3DNPd#cZbz3s?-pYRV5K;!ClzB`2OdRTDueRXCEUY-DIXG`@NR9RpJXzo% zVp(*KER5)dgAqn8Mz@x*MLJSfBz%Q*b=8t-*4)p`OQXX@a~e(Rzj~df{>LVOpU!0{ zQN|qF-q#$+J`Y78vG+N!b^dY)aaKz(N;GQUlbi?bkZT%a)P=RWu#Gg-Jx1U!R}IEi IYyo%w05U37djJ3c literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xquery/builtin_feature.test b/docs/_style/prism-master/tests/languages/xquery/builtin_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..11bee0221051e08874d02aef86b332617aa77291 GIT binary patch literal 2640 zcmbW3O>f&U42I7$;QtWh-0U>$uv^=tfU(ut8t)JkJt(&72z8{)mWO!1ew1iAZbJId zpgqjZ+Qv~~@)jdmNf#hL)+U!tqjb4Yy0LYeTV-?{ zS$Tq@Q}a#e?$(-v%Cqh$LuMTReoB0LCmQ+n%bn7q?l56YB?XKHqwG41#f2CJnL31Q z=i+5s3!ENG3Yn{esC;>0+FjL4$C_1|C0VlCc#;3H_2Fw}1TMc^3S3S3XtdpXis1mZ zQq-7t(OI^ar_pYbrPn0Or`5wb!kLwOz_4WamZikODxu3(l(^{1=+Y}v(eF6DA3`ll z*!5qTjH=VeZ2f(eVhzSPl{Pvh^pO5(8g)60HZ?p#^-mTXI2B+Cj5);Rc)sQNW5 zt=XFzw+2Te)Z6gZta+38dRyJ7Qp@5lyylRAJ^4L^-#@~G2#L)wL#r*Eu%egy7!RJ$ zbm7&U&qy3CKJba7IC_qwPtWsRt17GX{AM;6;nK`sZah2vX=U9l&Up~QeF}I~+Fvk& zgd0bo{t5=t&la-mT=ZoPql^~iZZDC(yw0q|-ES7cg{Rrr0T=~Z0t4aj(8QSrPn>gb z^qs9RBJ>#sdgEbO??f~W)-*x4H1p;~Bj;ue@xC?1_)=$kOy%H+G#@OI#>tY)gNaU{ z4b8w_S>Sw^hQWv#3Wh`zXMzmz-c7R$Gp9wpyH7&q8C?56J<4@M;B@ah1g%Q@mO;~t z9zu(JQ=yUXG7R!KYiB?Ex;Me}lTMk}ROl%(brXXfWA i=_n{^;Ic<4mX`~N$hXWnBQ-g@SRpOHNC9qRu^s?KaxmWj literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xquery/function_feature.test b/docs/_style/prism-master/tests/languages/xquery/function_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..4a06f577f8ed6c1a923d1c363c064ffd528a0c2a GIT binary patch literal 1026 zcmbVL!ES^g5Ixt#e;}j>-0bcL?6vo%J-a=yFj}$*2C&`!eE}CjjHb;R6ZOr!c{9V4 zYeq1mj!NAhZ-c~5UG<>APzMLW$@6G5_t?#z-e2he1Y2i>>g~xthLFvHNooLflVVP2 zg#zQm^rYOIf3s+=VG*?mBn+S&2`LkE&8`WkuRRy7tBy(w#8<7W!vj~~wRQE>;?xb^ zBg{3!ANvT8p~;DcK0|~geAW-px!lGXr-TKuNqDJK>@9^Cw5<0)lJyvTuT7YHw^1=CuXc8sgmfZ$E4w-sD!Yz8Pl5HGTfD%%a$WiR@n7TR O6WGGUH3?1ML3c!-TQ^~tXhubq|+y^lncd~YG_hr((_p~DeFZt!i9Tb1cc2W zV~%SOR*fI%ag*F`WTYIbWWRPkaO?N$pZKdROQvO6m?o1hpJXYHWYTKU`O8iIX@)I( vwaF9}izc&*WLBYeuu`*`T03pDcrlmXBk26!VY?H>p}0=6d)dsrZC18V5;*EK literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xquery/keyword_feature.test b/docs/_style/prism-master/tests/languages/xquery/keyword_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..db622bdcbee3770f56d7b1d41735df955d88d26e GIT binary patch literal 2056 zcmbW1O^)Lr5QW!+#2qZJJAH{cMynSDS30O|@BmKY+s_04MA1CYqN4;ueFap?RnH`? zOtRuT=f5z`TAfXj(-a+MVe*}c^C^wSidGh+j=3?|XG7nc?1C>-pK_e+wi@S?H-prD z@a)9)CSq?V7c=#^q?6~R(wAdp81vkGMKM_tJeGAYrY^h%D|ne$hP4vXGAFbHOY88L)z>T&HJCZ^%Edt*LENfK}H3FGp=LhJ;W z)kkwi6m=%uI;k0a?uwG9hzJsLlrBz?hh(oZ7(By(V^cQg5&|;kEaECpM3%3DT{+-a zl2KEg=TXw#WqZ|X^82+n)4LA&(&}cSTTVlMQhg_P{Be-SpQ&a{tJ4oYT50v6)vu5C zTjo11Zr_^Lr1taeU*lRujAdfn>Wrb6!Xpl)61lnLi;=BXDSH+##V^%NJl682q}Dqn zTLTbSI)a&BTIA57_6(zI6ERe}irLpTBM5!RtZO3@J;2-p>Zv0XAa+|+>3MN}9lDsyCq>>MHKjtGQ_p#Q|SNEg|&YZ+rz+!%n`F>{qa z3W^>c0QTyNViNZpm~quqhIWx9a93TzHW{X9(Pf4fp(dm%H?c2L-hOI@@6Yx8_f_n7 MYS6&VD(dO|FOe5!LjV8( literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xquery/number_feature.test b/docs/_style/prism-master/tests/languages/xquery/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..85b4261f8214d97ba398943e15675c9421908c68 GIT binary patch literal 258 zcmXruX!6Q!rJwF?1VP1F$axqLcCJ9L(vWMGBfhCI#~1nlhVFom2GR+7S1SYq~Y&+Pa}l z<7|Yk3dv1|#2B3p25yB&8YSFatsWr?g3%I{h*lvyv~K--mk!_QEQie2;x5%RVNhwy zIAElv{Cap?tN~-;@B&mOu%onBpED0=fy2L<%GfUFNUS^IEMtsbqE5#~c*_yIdWLsK z;@Nyeb*z^LWbzCiS1-(9e{hEHZlnbdrvSMl{_PC(#6)RE2u;5zZUb7s#(~<;Rl^O{ rzKBQr!{wf&<3F41d*;DU-%uY%o}LPFkc!-dB0COO&IK_SFW&zE1@n&N literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xquery/string_feature.test b/docs/_style/prism-master/tests/languages/xquery/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..bc645744756f3f61024c3324f3be1a53aabc9bd0 GIT binary patch literal 399 zcmY#V;^k6u%gGiS><8WK{|J@dHgWI5zn z#aD3@M}o;-)FkJU?TL~^3;3O_6)`{@p$0s}f25y!TEAUFN^*G^Ak*sd5ogzLJ1Kbm zkkXxG!eZ0769OqLok)7d50Mvfv?xH*2S^Bh&k04feSI%`DtS|@E0Dt`!D|bsxbkDM z*ciG1Dy2x#Khy*&vM^^o)2i1zEgmSox&x=W0QS-f)^*0FhK0a9C`Wf+v7V{mbX%c* z(D|G2Jh5!TYFZ|!Yy^s}$8!WP!MGWk9blt9u-=6i(2-eWJOC@rHsZ>uit;*@>_u55 z;40BzIpuNzJIsnr2^Q^%`xox~M0^4RHaHfCjzMr|>6ChYslZ^&e3xANjNExa*(`p7 zOS&`-z&V89I`oeA7^^Gj4=-AiD$tl7+2Lm+N-P31O#=mb3V58{Q9c7WsLtV*Ko=Fze#s1@&hyPHDu;@B|Xjg{X@SnO>lL;d8;=xIH2kG0hAjE11x5nya^N+XmSPpTdws{<#@xDq? c?)nG2f9%Mv5#;u!XW~G3-SLtURbJiqS2^vv0{{R3 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xquery/variable_feature.test b/docs/_style/prism-master/tests/languages/xquery/variable_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..bf9d87747771f346834d2fe15adde1ccf1f57298 GIT binary patch literal 264 zcmY#M%g^WKQUQ{>Nr^>3R&hyDW?p)+l}~C(NotWJFBdPDE*Su%FPfK&Gg_%Eu_!Y! wDJNA)M?nc>k5a4-R&kL1Smn@Mq!i1`1w`aK%Q+)8IlEXPEx$+s=C)!z0Kq*!fdBvi literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xquery/xquery-attribute_feature.test b/docs/_style/prism-master/tests/languages/xquery/xquery-attribute_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..db2d131c7530299ea8da4fe7390202e039255687 GIT binary patch literal 399 zcmYc+DJjZKDlJJ>NXyUXLw)?p$S=mg?PDi$pE}uyj;<|T%6HLNu`-NC7F3j zItof~3zcGZz;YFZrKv@gx(IQgBB0Y?(qw1_d4mG&ATKM$@^S$Y`Tlm!NKMWz28MBw aLPQ|Qg9>mDDkSIU6_*s1CYR(F=>Y(3BX6_- literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xquery/xquery-comment_feature.test b/docs/_style/prism-master/tests/languages/xquery/xquery-comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..5baff67eb21be4a0734f7f90cbb21d4544c37b23 GIT binary patch literal 394 zcmdO}veM+`(y&qp&df{CNmaXc#o=UpTEJe3DT>Jh rc?Lwoy@OAe0^FNQvAkSBM8030Gg6bYixtxHixeUPK^}&Mb+H}*$6jY8 literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/xquery/xquery-element_feature.test b/docs/_style/prism-master/tests/languages/xquery/xquery-element_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..a50319706af3dbc62ef1f75dc212dedffee0a1ef GIT binary patch literal 382 zcmYezNzF~oD^bWO$<5*AN`>;$^7D0*5{pm-tiS@iT)JccUM^m)XkISPXr-jm%$$g9BEV5EaOUx+-vU$05$p9dI(Y#!o(MkoSdC4WEi6xo& zc}hA8N}01gaIQ2+n{ literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/yaml/comment_feature.test b/docs/_style/prism-master/tests/languages/yaml/comment_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..054d6023d168b01d574d26410f92bb4d88dd8417 GIT binary patch literal 201 zcmY%9Q4a&bm0CFkenrskC>=_n{EE5+(yh(Rq&PYwpE(V%bqyV+DSPuZd+A4bh literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/yaml/datetime_feature.test b/docs/_style/prism-master/tests/languages/yaml/datetime_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..645680d9f61d64c42d636d04f7adb8988b05f10f GIT binary patch literal 836 zcmbV~!A`^=5Qfi^@D3Bsr5V^_l&i1c$;}=J#n`OUjj#vbUSNwhxG~y>LmB@082%Z~ zIVINk*-zHIYLJM63(19gM5)!i9(KKWqGSs5-7SihV2Dyw0diCtk&}i zC8LS12+}2K4V1*`%>_-#4F`c*?Y{rC#6IsS;Tyi3w@Q4a&bm0rDPVRCYNNEr7GztD5=6sSBlla fA`7%oDVCQDh{(6qIU_YWyI3JDzeoXYb+H}*vJovc literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/yaml/important_feature.test b/docs/_style/prism-master/tests/languages/yaml/important_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..bf4aea8410c802e63bf5be941e12d166f07b1a07 GIT binary patch literal 283 zcmY#$GUVk_bL8dH0%En`U?2lT@N(&r0YLhqdAT^Fl`?Y+@{39m^GcL-6qMAQ43%Pa ou!uWi71qKo40IfJQ4a&bm06_n;Bmy{-!Waj57 z=_n`x%~Fch0n22kR)R!;mI6f-FjQJWMDt2>lTwR73Qf>7LR?9lUQ?x5UM?Ua-#5+~ Ssma;J3TgR83P6V!>j3}|+D32y literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/yaml/null_feature.test b/docs/_style/prism-master/tests/languages/yaml/null_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..ca12f2307878fb65bbaae4bc45451efeceee215c GIT binary patch literal 310 zcmdPZ)#c?%%g?t`$Scjs;pIw7EV5FlaYic@l;$OulqQyB=I1Ht zC@2BVQi|09%Veikf<%CJ0!0)sR9eB*f!qU92&Pf>0v$=5-a4gNUM?Ua-#5+~sma;J S3TgR8-~duc%u7+I(*pn;_((he literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/yaml/number_feature.test b/docs/_style/prism-master/tests/languages/yaml/number_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..409163f108f83465c8e5cf149ca0400fd74fc94a GIT binary patch literal 854 zcmbVK%MODe5ImQJe;`~H;{#*su}%F6<3TN^jj1#~66@D@QS3o4D&YXj%w(1w#u!G0 zlp(SEYx;=NTws)?HQZ(3b9EjmESQxnE(~CdGR*FyNTUo} zI0y z0?cogP(QVz4_oQnU2u1}*Yj8i?C=gFT#+|BpQgUx?{IIAL0Ry3m>;vXqHnf8#gQf$ U!9JeJ+f(FaLkd}wDOQd312o6g(*OVf literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/yaml/scalar_feature.test b/docs/_style/prism-master/tests/languages/yaml/scalar_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..02a3c99d485b2f4a21a0f236d1241574ede26107 GIT binary patch literal 427 zcmbVJF%H8Z44iApf3TQCAHa~MQa=$g5R|A@DyV=Asq*-mCM?ZRHB9Dw-1&@@5@GOO zQH^lAdQY7RTy^G!z@?&Pk0Zzf2LYjBu|_;6XVYZT-8)f{U@g&BpU&9N8R3B#p&e5d z-j_mM@Mz7$ge;+hb~IL{^hfj_rHA*+8p@6p7=u$F1Ox}kp>@V^@`^= Dp!aMI literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/languages/yaml/string_feature.test b/docs/_style/prism-master/tests/languages/yaml/string_feature.test new file mode 100644 index 0000000000000000000000000000000000000000..9ba3ae3161ab42404cf3cdfdcc9d48311d48cedd GIT binary patch literal 694 zcmbtSK@Ni;5ImQJKalN#i}V3r`wa15jkd-JjpCud?=0w{dZ{fWgv{&?yR#T$q-ed* z6_FITYQ&}WmOQQiBBS-fXfT=?04WD2sj~vKhA;~RgcMSk9~S2oQk)8U&aMt~6*})I zQv@w4v&i(#ixGal%+xM2U*o1QcJ9uh7JEgPY;N)EY_x8ZEjyh9RcQTt4eb76|3>6M x0hT?B9l*8P4@2Vu+Y@KFkv-s#=CLO;KSX0?Qk4Jvh3liK`w2g4RB4>k@0{{{WE8zeD literal 0 HcmV?d00001 diff --git a/docs/_style/prism-master/tests/run.js b/docs/_style/prism-master/tests/run.js new file mode 100644 index 00000000..46366cca --- /dev/null +++ b/docs/_style/prism-master/tests/run.js @@ -0,0 +1,45 @@ +"use strict"; + +var TestDiscovery = require("./helper/test-discovery"); +var TestCase = require("./helper/test-case"); +var path = require("path"); +var argv = require("yargs").argv; + +var testSuite; +if (argv.language) { + testSuite = TestDiscovery.loadSomeTests(__dirname + "/languages", argv.language); +} else { + // load complete test suite + testSuite = TestDiscovery.loadAllTests(__dirname + "/languages"); +} + +// define tests for all tests in all languages in the test suite +for (var language in testSuite) { + if (!testSuite.hasOwnProperty(language)) { + continue; + } + + (function (language, testFiles) { + describe("Testing language '" + language + "'", function () { + this.timeout(10000); + + testFiles.forEach( + function (filePath) { + var fileName = path.basename(filePath, path.extname(filePath)); + + it("– should pass test case '" + fileName + "'", + function () { + + if (path.extname(filePath) === '.test') { + TestCase.runTestCase(language, filePath); + } else { + TestCase.runTestsWithHooks(language, require(filePath)); + } + + } + ); + } + ); + }); + })(language, testSuite[language]); +} \ No newline at end of file diff --git a/docs/_style/prism-master/tests/testrunner-tests.js b/docs/_style/prism-master/tests/testrunner-tests.js new file mode 100644 index 00000000..24ad32cd --- /dev/null +++ b/docs/_style/prism-master/tests/testrunner-tests.js @@ -0,0 +1,166 @@ +"use strict"; + +var assert = require("chai").assert; +var TokenStreamTransformer = require("./helper/token-stream-transformer"); +var TestCase = require("./helper/test-case"); + + +//region Token Stream Transformer +describe("The token stream transformer", + function () { + it("should handle all kinds of simple transformations", + function () { + var tokens = [ + {type: "type", content: "content"}, + "string" + ]; + + var expected = [ + ["type", "content"], + "string" + ]; + + assert.deepEqual(TokenStreamTransformer.simplify(tokens), expected); + } + ); + + + it("should handle nested structures", + function () { + var tokens = [ + { + type: "type", + content: [ + { + type: "insideType", content: + [ + {type: "insideInsideType", content: "content"} + ] + } + ] + } + ]; + + var expected = [ + ["type", [ + ["insideType", [ + ["insideInsideType", "content"] + ]] + ]] + ]; + + assert.deepEqual(TokenStreamTransformer.simplify(tokens), expected); + } + ); + + + it("should strip empty tokens", + function () { + var tokenStream = [ + "", + "\r\n", + "\t", + " " + ]; + + var expectedSimplified = []; + + assert.deepEqual(TokenStreamTransformer.simplify(tokenStream), expectedSimplified); + } + ); + + + it("should strip empty token tree branches", + function () { + var tokenStream = [ + { + type: "type", + content: [ + ["", ""], + "", + {type: "nested", content: [""]} + ] + }, + [[[[[[[""]]]]]]] + ]; + + var expectedSimplified = [ + ["type", [ + ["nested", []] + ]] + ]; + + assert.deepEqual(TokenStreamTransformer.simplify(tokenStream), expectedSimplified); + } + ); + + + it("should ignore all properties in tokens except value and content", + function () { + + var tokenStream = [ + {type: "type", content: "content", alias: "alias"} + ]; + + var expectedSimplified = [ + ["type", "content"] + ]; + + assert.deepEqual(TokenStreamTransformer.simplify(tokenStream), expectedSimplified); + } + ); + } +); +//endregion + + +//region Language name parsing +describe("The language name parsing", + function () { + it("should use the last language as the main language if no language is specified", + function () { + assert.deepEqual( + TestCase.parseLanguageNames("a"), + { + languages: ["a"], + mainLanguage: "a" + } + ); + + assert.deepEqual( + TestCase.parseLanguageNames("a+b+c"), + { + languages: ["a", "b", "c"], + mainLanguage: "c" + } + ); + } + ); + + + it("should use the specified language as main language", + function () { + assert.deepEqual( + TestCase.parseLanguageNames("a+b!+c"), + { + languages: ["a", "b", "c"], + mainLanguage: "b" + } + ); + } + ); + + + it("should throw an error if there are multiple main languages", + function () { + assert.throw( + function () { + TestCase.parseLanguageNames("a+b!+c!"); + }, + "There are multiple main languages defined." + ); + } + ); + } +); +//endregion diff --git a/docs/_style/prism-master/themes/prism-coy.css b/docs/_style/prism-master/themes/prism-coy.css new file mode 100644 index 00000000..d05855cb --- /dev/null +++ b/docs/_style/prism-master/themes/prism-coy.css @@ -0,0 +1,225 @@ +/** + * prism.js Coy theme for JavaScript, CoffeeScript, CSS and HTML + * Based on https://github.com/tshedor/workshop-wp-theme (Example: http://workshop.kansan.com/category/sessions/basics or http://workshop.timshedor.com/category/sessions/basics); + * @author Tim Shedor + */ + +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +/* Code blocks */ +pre[class*="language-"] { + position: relative; + margin: .5em 0; + overflow: visible; + padding: 0; +} +pre[class*="language-"]>code { + position: relative; + border-left: 10px solid #358ccb; + box-shadow: -1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf; + background-color: #fdfdfd; + background-image: linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%); + background-size: 3em 3em; + background-origin: content-box; + background-attachment: local; +} + +code[class*="language"] { + max-height: inherit; + height: inherit; + padding: 0 1em; + display: block; + overflow: auto; +} + +/* Margin bottom to accommodate shadow */ +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background-color: #fdfdfd; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + margin-bottom: 1em; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + position: relative; + padding: .2em; + border-radius: 0.3em; + color: #c92c2c; + border: 1px solid rgba(0, 0, 0, 0.1); + display: inline; + white-space: normal; +} + +pre[class*="language-"]:before, +pre[class*="language-"]:after { + content: ''; + z-index: -2; + display: block; + position: absolute; + bottom: 0.75em; + left: 0.18em; + width: 40%; + height: 20%; + max-height: 13em; + box-shadow: 0px 13px 8px #979797; + -webkit-transform: rotate(-2deg); + -moz-transform: rotate(-2deg); + -ms-transform: rotate(-2deg); + -o-transform: rotate(-2deg); + transform: rotate(-2deg); +} + +:not(pre) > code[class*="language-"]:after, +pre[class*="language-"]:after { + right: 0.75em; + left: auto; + -webkit-transform: rotate(2deg); + -moz-transform: rotate(2deg); + -ms-transform: rotate(2deg); + -o-transform: rotate(2deg); + transform: rotate(2deg); +} + +.token.comment, +.token.block-comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #7D8B99; +} + +.token.punctuation { + color: #5F6364; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.function-name, +.token.constant, +.token.symbol, +.token.deleted { + color: #c92c2c; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.function, +.token.builtin, +.token.inserted { + color: #2f9c0a; +} + +.token.operator, +.token.entity, +.token.url, +.token.variable { + color: #a67f59; + background: rgba(255, 255, 255, 0.5); +} + +.token.atrule, +.token.attr-value, +.token.keyword, +.token.class-name { + color: #1990b8; +} + +.token.regex, +.token.important { + color: #e90; +} + +.language-css .token.string, +.style .token.string { + color: #a67f59; + background: rgba(255, 255, 255, 0.5); +} + +.token.important { + font-weight: normal; +} + +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +.namespace { + opacity: .7; +} + +@media screen and (max-width: 767px) { + pre[class*="language-"]:before, + pre[class*="language-"]:after { + bottom: 14px; + box-shadow: none; + } + +} + +/* Plugin styles */ +.token.tab:not(:empty):before, +.token.cr:before, +.token.lf:before { + color: #e0d7d1; +} + +/* Plugin styles: Line Numbers */ +pre[class*="language-"].line-numbers.line-numbers { + padding-left: 0; +} + +pre[class*="language-"].line-numbers.line-numbers code { + padding-left: 3.8em; +} + +pre[class*="language-"].line-numbers.line-numbers .line-numbers-rows { + left: 0; +} + +/* Plugin styles: Line Highlight */ +pre[class*="language-"][data-line] { + padding-top: 0; + padding-bottom: 0; + padding-left: 0; +} +pre[data-line] code { + position: relative; + padding-left: 4em; +} +pre .line-highlight { + margin-top: 0; +} diff --git a/docs/_style/prism-master/themes/prism-dark.css b/docs/_style/prism-master/themes/prism-dark.css new file mode 100644 index 00000000..7f457287 --- /dev/null +++ b/docs/_style/prism-master/themes/prism-dark.css @@ -0,0 +1,128 @@ +/** + * prism.js Dark theme for JavaScript, CSS and HTML + * Based on the slides of the talk “/Reg(exp){2}lained/” + * @author Lea Verou + */ + +code[class*="language-"], +pre[class*="language-"] { + color: white; + background: none; + text-shadow: 0 -.1em .2em black; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +pre[class*="language-"], +:not(pre) > code[class*="language-"] { + background: hsl(30, 20%, 25%); +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; + border: .3em solid hsl(30, 20%, 40%); + border-radius: .5em; + box-shadow: 1px 1px .5em black inset; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .15em .2em .05em; + border-radius: .3em; + border: .13em solid hsl(30, 20%, 40%); + box-shadow: 1px 1px .3em -.1em black inset; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: hsl(30, 20%, 50%); +} + +.token.punctuation { + opacity: .7; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol { + color: hsl(350, 40%, 70%); +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: hsl(75, 70%, 60%); +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable { + color: hsl(40, 90%, 60%); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: hsl(350, 40%, 70%); +} + +.token.regex, +.token.important { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +.token.deleted { + color: red; +} diff --git a/docs/_style/prism-master/themes/prism-funky.css b/docs/_style/prism-master/themes/prism-funky.css new file mode 100644 index 00000000..dd3be061 --- /dev/null +++ b/docs/_style/prism-master/themes/prism-funky.css @@ -0,0 +1,116 @@ +/** + * prism.js Funky theme + * Based on “Polyfilling the gaps” talk slides http://lea.verou.me/polyfilling-the-gaps/ + * @author Lea Verou + */ + +code[class*="language-"], +pre[class*="language-"] { + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +/* Code blocks */ +pre[class*="language-"] { + padding: .4em .8em; + margin: .5em 0; + overflow: auto; + background: url('data:image/svg+xml;charset=utf-8,%0D%0A%0D%0A%0D%0A<%2Fsvg>'); + background-size: 1em 1em; +} + +code[class*="language-"] { + background: black; + color: white; + box-shadow: -.3em 0 0 .3em black, .3em 0 0 .3em black; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .2em; + border-radius: .3em; + box-shadow: none; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #aaa; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol { + color: #0cf; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin { + color: yellow; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.toke.variable, +.token.inserted { + color: yellowgreen; +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: deeppink; +} + +.token.regex, +.token.important { + color: orange; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +.token.deleted { + color: red; +} diff --git a/docs/_style/prism-master/themes/prism-okaidia.css b/docs/_style/prism-master/themes/prism-okaidia.css new file mode 100644 index 00000000..8efbc074 --- /dev/null +++ b/docs/_style/prism-master/themes/prism-okaidia.css @@ -0,0 +1,122 @@ +/** + * okaidia theme for JavaScript, CSS and HTML + * Loosely based on Monokai textmate theme by http://www.monokai.nl/ + * @author ocodia + */ + +code[class*="language-"], +pre[class*="language-"] { + color: #f8f8f2; + background: none; + text-shadow: 0 1px rgba(0, 0, 0, 0.3); + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; + border-radius: 0.3em; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #272822; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #f8f8f2; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.constant, +.token.symbol, +.token.deleted { + color: #f92672; +} + +.token.boolean, +.token.number { + color: #ae81ff; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #a6e22e; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable { + color: #f8f8f2; +} + +.token.atrule, +.token.attr-value, +.token.function, +.token.class-name { + color: #e6db74; +} + +.token.keyword { + color: #66d9ef; +} + +.token.regex, +.token.important { + color: #fd971f; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/docs/_style/prism-master/themes/prism-solarizedlight.css b/docs/_style/prism-master/themes/prism-solarizedlight.css new file mode 100644 index 00000000..07657dac --- /dev/null +++ b/docs/_style/prism-master/themes/prism-solarizedlight.css @@ -0,0 +1,149 @@ +/* + Solarized Color Schemes originally by Ethan Schoonover + http://ethanschoonover.com/solarized + + Ported for PrismJS by Hector Matos + Website: https://krakendev.io + Twitter Handle: https://twitter.com/allonsykraken) +*/ + +/* +SOLARIZED HEX +--------- ------- +base03 #002b36 +base02 #073642 +base01 #586e75 +base00 #657b83 +base0 #839496 +base1 #93a1a1 +base2 #eee8d5 +base3 #fdf6e3 +yellow #b58900 +orange #cb4b16 +red #dc322f +magenta #d33682 +violet #6c71c4 +blue #268bd2 +cyan #2aa198 +green #859900 +*/ + +code[class*="language-"], +pre[class*="language-"] { + color: #657b83; /* base00 */ + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + background: #073642; /* base02 */ +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + background: #073642; /* base02 */ +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; + border-radius: 0.3em; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background-color: #fdf6e3; /* base3 */ +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #93a1a1; /* base1 */ +} + +.token.punctuation { + color: #586e75; /* base01 */ +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #268bd2; /* blue */ +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.url, +.token.inserted { + color: #2aa198; /* cyan */ +} + +.token.entity { + color: #657b83; /* base00 */ + background: #eee8d5; /* base2 */ +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #859900; /* green */ +} + +.token.function, +.token.class-name { + color: #b58900; /* yellow */ +} + +.token.regex, +.token.important, +.token.variable { + color: #cb4b16; /* orange */ +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/docs/_style/prism-master/themes/prism-tomorrow.css b/docs/_style/prism-master/themes/prism-tomorrow.css new file mode 100644 index 00000000..6add2d26 --- /dev/null +++ b/docs/_style/prism-master/themes/prism-tomorrow.css @@ -0,0 +1,121 @@ +/** + * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML + * Based on https://github.com/chriskempson/tomorrow-theme + * @author Rose Pritchard + */ + +code[class*="language-"], +pre[class*="language-"] { + color: #ccc; + background: none; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #2d2d2d; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.block-comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #999; +} + +.token.punctuation { + color: #ccc; +} + +.token.tag, +.token.attr-name, +.token.namespace, +.token.deleted { + color: #e2777a; +} + +.token.function-name { + color: #6196cc; +} + +.token.boolean, +.token.number, +.token.function { + color: #f08d49; +} + +.token.property, +.token.class-name, +.token.constant, +.token.symbol { + color: #f8c555; +} + +.token.selector, +.token.important, +.token.atrule, +.token.keyword, +.token.builtin { + color: #cc99cd; +} + +.token.string, +.token.char, +.token.attr-value, +.token.regex, +.token.variable { + color: #7ec699; +} + +.token.operator, +.token.entity, +.token.url { + color: #67cdcc; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +.token.inserted { + color: green; +} diff --git a/docs/_style/prism-master/themes/prism-twilight.css b/docs/_style/prism-master/themes/prism-twilight.css new file mode 100644 index 00000000..504ca704 --- /dev/null +++ b/docs/_style/prism-master/themes/prism-twilight.css @@ -0,0 +1,198 @@ +/** + * prism.js Twilight theme + * Based (more or less) on the Twilight theme originally of Textmate fame. + * @author Remy Bach + */ +code[class*="language-"], +pre[class*="language-"] { + color: white; + background: none; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + text-shadow: 0 -.1em .2em black; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"], +:not(pre) > code[class*="language-"] { + background: hsl(0, 0%, 8%); /* #141414 */ +} + +/* Code blocks */ +pre[class*="language-"] { + border-radius: .5em; + border: .3em solid hsl(0, 0%, 33%); /* #282A2B */ + box-shadow: 1px 1px .5em black inset; + margin: .5em 0; + overflow: auto; + padding: 1em; +} + +pre[class*="language-"]::-moz-selection { + /* Firefox */ + background: hsl(200, 4%, 16%); /* #282A2B */ +} + +pre[class*="language-"]::selection { + /* Safari */ + background: hsl(200, 4%, 16%); /* #282A2B */ +} + +/* Text Selection colour */ +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */ +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + text-shadow: none; + background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */ +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + border-radius: .3em; + border: .13em solid hsl(0, 0%, 33%); /* #545454 */ + box-shadow: 1px 1px .3em -.1em black inset; + padding: .15em .2em .05em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: hsl(0, 0%, 47%); /* #777777 */ +} + +.token.punctuation { + opacity: .7; +} + +.namespace { + opacity: .7; +} + +.token.tag, +.token.boolean, +.token.number, +.token.deleted { + color: hsl(14, 58%, 55%); /* #CF6A4C */ +} + +.token.keyword, +.token.property, +.token.selector, +.token.constant, +.token.symbol, +.token.builtin { + color: hsl(53, 89%, 79%); /* #F9EE98 */ +} + +.token.attr-name, +.token.attr-value, +.token.string, +.token.char, +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable, +.token.inserted { + color: hsl(76, 21%, 52%); /* #8F9D6A */ +} + +.token.atrule { + color: hsl(218, 22%, 55%); /* #7587A6 */ +} + +.token.regex, +.token.important { + color: hsl(42, 75%, 65%); /* #E9C062 */ +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +pre[data-line] { + padding: 1em 0 1em 3em; + position: relative; +} + +/* Markup */ +.language-markup .token.tag, +.language-markup .token.attr-name, +.language-markup .token.punctuation { + color: hsl(33, 33%, 52%); /* #AC885B */ +} + +/* Make the tokens sit above the line highlight so the colours don't look faded. */ +.token { + position: relative; + z-index: 1; +} + +.line-highlight { + background: hsla(0, 0%, 33%, 0.25); /* #545454 */ + background: linear-gradient(to right, hsla(0, 0%, 33%, .1) 70%, hsla(0, 0%, 33%, 0)); /* #545454 */ + border-bottom: 1px dashed hsl(0, 0%, 33%); /* #545454 */ + border-top: 1px dashed hsl(0, 0%, 33%); /* #545454 */ + left: 0; + line-height: inherit; + margin-top: 0.75em; /* Same as .prism’s padding-top */ + padding: inherit 0; + pointer-events: none; + position: absolute; + right: 0; + white-space: pre; + z-index: 0; +} + +.line-highlight:before, +.line-highlight[data-end]:after { + background-color: hsl(215, 15%, 59%); /* #8794A6 */ + border-radius: 999px; + box-shadow: 0 1px white; + color: hsl(24, 20%, 95%); /* #F5F2F0 */ + content: attr(data-start); + font: bold 65%/1.5 sans-serif; + left: .6em; + min-width: 1em; + padding: 0 .5em; + position: absolute; + text-align: center; + text-shadow: none; + top: .4em; + vertical-align: .3em; +} + +.line-highlight[data-end]:after { + bottom: .4em; + content: attr(data-end); + top: auto; +} diff --git a/docs/_style/prism-master/themes/prism.css b/docs/_style/prism-master/themes/prism.css new file mode 100644 index 00000000..9010cb63 --- /dev/null +++ b/docs/_style/prism-master/themes/prism.css @@ -0,0 +1,138 @@ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ + +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/docs/_style/prism-master/utopia.js b/docs/_style/prism-master/utopia.js new file mode 100644 index 00000000..f168d5b8 --- /dev/null +++ b/docs/_style/prism-master/utopia.js @@ -0,0 +1,463 @@ +/** + * Utopia: A JavaScript util library that assumes modern standards support and doesn't fix any browser bugs + * @author Lea Verou (http://lea.verou.me) + * MIT license (http://www.opensource.org/licenses/mit-license.php) + * Last update: 2012-4-29 + */ + +function $(expr, con) { + return typeof expr === 'string'? (con || document).querySelector(expr) : expr; +} + +function $$(expr, con) { + var elements = (con || document).querySelectorAll(expr); + + try { + return Array.prototype.slice.call(elements); + } + catch(e) { + var arr = Array(elements.length); + + for (var i = elements.length; i-- > 0;) { + arr[i] = elements[i]; + } + + return arr; + } +} + +if (!Array.prototype.forEach) { + Array.prototype.forEach = function(fn, scope) { + for (var i = 0, len = this.length; i < len; ++i) { + fn.call(scope || this, this[i], i, this); + } + } +} + +// Make each ID a global variable +// Many browsers do this anyway (it’s in the HTML5 spec), so it ensures consistency +$$('[id]').forEach(function(element) { window[element.id] = element; }); + +// Array#splice but for strings +String.prototype.splice = function(i, remove, add) { + remove = +remove || 0; + add = add || ''; + + return this.slice(0,i) + add + this.slice(i + remove); +}; + +(function(){ + +var _ = window.Utopia = { + /** + * Returns the [[Class]] of an object in lowercase (eg. array, date, regexp, string etc) + * Caution: Results for DOM elements and collections aren't reliable. + * @param {Object} obj + * + * @return {String} + */ + type: function(obj) { + if(obj === null) { return 'null'; } + + if(obj === undefined) { return 'undefined'; } + + var ret = Object.prototype.toString.call(obj).match(/^\[object\s+(.*?)\]$/)[1]; + + ret = ret? ret.toLowerCase() : ''; + + if(ret == 'number' && isNaN(obj)) { + return 'NaN'; + } + + return ret; + }, + + /** + * Iterate over the properties of an object. Checks whether the properties actually belong to it. + * Can be stopped if the function explicitly returns a value that isn't null, undefined or NaN. + * + * @param obj {Object} The object to iterate over + * @param func {Function} The function used in the iteration. Can accept 2 parameters: one of the + * value of the object and one for its name. + * @param context {Object} Context for the above function. Default is the object being iterated. + * + * @return {Object} Null or the return value of func, if it broke the loop at some point. + */ + each: function(obj, func, context) { + if(!_.type(func) == 'function') { + throw Error('The second argument in Utopia.each() must be a function'); + }; + + context = context || obj; + + for (var i in obj) { + if(obj.hasOwnProperty && obj.hasOwnProperty(i)) { + var ret = func.call(context, obj[i], i); + + if(!!ret || ret === 0 || ret === '') { + return ret; + } + } + } + + return null; + }, + + /** + * Copies the properties of one object onto another. + * When there is a collision, the later one wins + * + * @return {Object} destination object + */ + merge: function(objects) { + var ret = {}; + + for(var i=0; i + + (c) 2009-2014 Stuart Knightley + Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown. + + JSZip uses the library pako released under the MIT license : + https://github.com/nodeca/pako/blob/master/LICENSE + */ +!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.JSZip=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gl?a[l++]:0,e=m>l?a[l++]:0):(b=a.charCodeAt(l++),c=m>l?a.charCodeAt(l++):0,e=m>l?a.charCodeAt(l++):0),g=b>>2,h=(3&b)<<4|c>>4,i=n>1?(15&c)<<2|e>>6:64,j=n>2?63&e:64,k.push(f.charAt(g)+f.charAt(h)+f.charAt(i)+f.charAt(j));return k.join("")},c.decode=function(a){var b,c,d,g,h,i,j,k=0,l=0;a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");var m=3*a.length/4;a.charAt(a.length-1)===f.charAt(64)&&m--,a.charAt(a.length-2)===f.charAt(64)&&m--;var n;for(n=e.uint8array?new Uint8Array(m):new Array(m);k>4,c=(15&h)<<4|i>>2,d=(3&i)<<6|j,n[l++]=b,64!==i&&(n[l++]=c),64!==j&&(n[l++]=d);return n}},{"./support":27,"./utils":29}],2:[function(a,b,c){"use strict";function d(a,b,c,d,e){this.compressedSize=a,this.uncompressedSize=b,this.crc32=c,this.compression=d,this.compressedContent=e}var e=a("./external"),f=a("./stream/DataWorker"),g=a("./stream/DataLengthProbe"),h=a("./stream/Crc32Probe"),g=a("./stream/DataLengthProbe");d.prototype={getContentWorker:function(){var a=new f(e.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new g("data_length")),b=this;return a.on("end",function(){if(this.streamInfo.data_length!==b.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),a},getCompressedWorker:function(){return new f(e.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},d.createWorkerFrom=function(a,b,c){return a.pipe(new h).pipe(new g("uncompressedSize")).pipe(b.compressWorker(c)).pipe(new g("compressedSize")).withStreamInfo("compression",b)},b.exports=d},{"./external":6,"./stream/Crc32Probe":22,"./stream/DataLengthProbe":23,"./stream/DataWorker":24}],3:[function(a,b,c){"use strict";var d=a("./stream/GenericWorker");c.STORE={magic:"\x00\x00",compressWorker:function(a){return new d("STORE compression")},uncompressWorker:function(){return new d("STORE decompression")}},c.DEFLATE=a("./flate")},{"./flate":7,"./stream/GenericWorker":25}],4:[function(a,b,c){"use strict";function d(){for(var a,b=[],c=0;256>c;c++){a=c;for(var d=0;8>d;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=h,f=d+c;a=-1^a;for(var g=d;f>g;g++)a=a>>>8^e[255&(a^b[g])];return-1^a}function f(a,b,c,d){var e=h,f=d+c;a=-1^a;for(var g=d;f>g;g++)a=a>>>8^e[255&(a^b.charCodeAt(g))];return-1^a}var g=a("./utils"),h=d();b.exports=function(a,b){if("undefined"==typeof a||!a.length)return 0;var c="string"!==g.getTypeOf(a);return c?e(0|b,a,a.length,0):f(0|b,a,a.length,0)}},{"./utils":29}],5:[function(a,b,c){"use strict";c.base64=!1,c.binary=!1,c.dir=!1,c.createFolders=!0,c.date=null,c.compression=null,c.compressionOptions=null,c.comment=null,c.unixPermissions=null,c.dosPermissions=null},{}],6:[function(a,b,c){"use strict";var d=a("es6-promise").Promise;b.exports={Promise:d}},{"es6-promise":37}],7:[function(a,b,c){"use strict";function d(a,b){h.call(this,"FlateWorker/"+a),this._pako=new f[a]({raw:!0,level:b.level||-1}),this.meta={};var c=this;this._pako.onData=function(a){c.push({data:a,meta:c.meta})}}var e="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,f=a("pako"),g=a("./utils"),h=a("./stream/GenericWorker"),i=e?"uint8array":"array";c.magic="\b\x00",g.inherits(d,h),d.prototype.processChunk=function(a){this.meta=a.meta,this._pako.push(g.transformTo(i,a.data),!1)},d.prototype.flush=function(){h.prototype.flush.call(this),this._pako.push([],!0)},d.prototype.cleanUp=function(){h.prototype.cleanUp.call(this),this._pako=null},c.compressWorker=function(a){return new d("Deflate",a)},c.uncompressWorker=function(){return new d("Inflate",{})}},{"./stream/GenericWorker":25,"./utils":29,pako:38}],8:[function(a,b,c){"use strict";function d(a,b,c,d){f.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=b,this.zipPlatform=c,this.encodeFileName=d,this.streamFiles=a,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}var e=a("../utils"),f=a("../stream/GenericWorker"),g=a("../utf8"),h=a("../crc32"),i=a("../signature"),j=function(a,b){var c,d="";for(c=0;b>c;c++)d+=String.fromCharCode(255&a),a>>>=8;return d},k=function(a,b){var c=a;return a||(c=b?16893:33204),(65535&c)<<16},l=function(a,b){return 63&(a||0)},m=function(a,b,c,d,f,m){var n,o,p=a.file,q=a.compression,r=m!==g.utf8encode,s=e.transformTo("string",m(p.name)),t=e.transformTo("string",g.utf8encode(p.name)),u=p.comment,v=e.transformTo("string",m(u)),w=e.transformTo("string",g.utf8encode(u)),x=t.length!==p.name.length,y=w.length!==u.length,z="",A="",B="",C=p.dir,D=p.date,E={crc32:0,compressedSize:0,uncompressedSize:0};b&&!c||(E.crc32=a.crc32,E.compressedSize=a.compressedSize,E.uncompressedSize=a.uncompressedSize);var F=0;b&&(F|=8),r||!x&&!y||(F|=2048);var G=0,H=0;C&&(G|=16),"UNIX"===f?(H=798,G|=k(p.unixPermissions,C)):(H=20,G|=l(p.dosPermissions,C)),n=D.getUTCHours(),n<<=6,n|=D.getUTCMinutes(),n<<=5,n|=D.getUTCSeconds()/2,o=D.getUTCFullYear()-1980,o<<=4,o|=D.getUTCMonth()+1,o<<=5,o|=D.getUTCDate(),x&&(A=j(1,1)+j(h(s),4)+t,z+="up"+j(A.length,2)+A),y&&(B=j(1,1)+j(h(v),4)+w,z+="uc"+j(B.length,2)+B);var I="";I+="\n\x00",I+=j(F,2),I+=q.magic,I+=j(n,2),I+=j(o,2),I+=j(E.crc32,4),I+=j(E.compressedSize,4),I+=j(E.uncompressedSize,4),I+=j(s.length,2),I+=j(z.length,2);var J=i.LOCAL_FILE_HEADER+I+s+z,K=i.CENTRAL_FILE_HEADER+j(H,2)+I+j(v.length,2)+"\x00\x00\x00\x00"+j(G,4)+j(d,4)+s+z+v;return{fileRecord:J,dirRecord:K}},n=function(a,b,c,d,f){var g="",h=e.transformTo("string",f(d));return g=i.CENTRAL_DIRECTORY_END+"\x00\x00\x00\x00"+j(a,2)+j(a,2)+j(b,4)+j(c,4)+j(h.length,2)+h},o=function(a){var b="";return b=i.DATA_DESCRIPTOR+j(a.crc32,4)+j(a.compressedSize,4)+j(a.uncompressedSize,4)};e.inherits(d,f),d.prototype.push=function(a){var b=a.meta.percent||0,c=this.entriesCount,d=this._sources.length;this.accumulate?this.contentBuffer.push(a):(this.bytesWritten+=a.data.length,f.prototype.push.call(this,{data:a.data,meta:{currentFile:this.currentFile,percent:c?(b+100*(c-d-1))/c:100}}))},d.prototype.openedSource=function(a){if(this.currentSourceOffset=this.bytesWritten,this.currentFile=a.file.name,this.streamFiles&&!a.file.dir){var b=m(a,this.streamFiles,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:b.fileRecord,meta:{percent:0}})}else this.accumulate=!0},d.prototype.closedSource=function(a){this.accumulate=!1;var b=m(a,this.streamFiles,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(b.dirRecord),this.streamFiles&&!a.file.dir)this.push({data:o(a),meta:{percent:100}});else for(this.push({data:b.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},d.prototype.flush=function(){for(var a=this.bytesWritten,b=0;b0?a.substring(0,b):""},q=function(a){return"/"!==a.slice(-1)&&(a+="/"),a},r=function(a,b){return b="undefined"!=typeof b?b:i.createFolders,a=q(a),this.files[a]||o.call(this,a,null,{dir:!0,createFolders:b}),this.files[a]},s={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(a){var b,c,d;for(b in this.files)this.files.hasOwnProperty(b)&&(d=this.files[b],c=b.slice(this.root.length,b.length),c&&b.slice(0,this.root.length)===this.root&&a(c,d))},filter:function(a){var b=[];return this.forEach(function(c,d){a(c,d)&&b.push(d)}),b},file:function(a,b,c){if(1===arguments.length){if(d(a)){var e=a;return this.filter(function(a,b){return!b.dir&&e.test(a)})}var f=this.files[this.root+a];return f&&!f.dir?f:null}return a=this.root+a,o.call(this,a,b,c),this},folder:function(a){if(!a)return this;if(d(a))return this.filter(function(b,c){return c.dir&&a.test(b)});var b=this.root+a,c=r.call(this,b),e=this.clone();return e.root=c.name,e},remove:function(a){a=this.root+a;var b=this.files[a];if(b||("/"!==a.slice(-1)&&(a+="/"),b=this.files[a]),b&&!b.dir)delete this.files[a];else for(var c=this.filter(function(b,c){return c.name.slice(0,a.length)===a}),d=0;d=0;--f)if(this.data[f]===b&&this.data[f+1]===c&&this.data[f+2]===d&&this.data[f+3]===e)return f-this.zero;return-1},d.prototype.readAndCheckSignature=function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.readData(4);return b===f[0]&&c===f[1]&&d===f[2]&&e===f[3]},d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return[];var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":29,"./DataReader":15}],15:[function(a,b,c){"use strict";function d(a){this.data=a,this.length=a.length,this.index=0,this.zero=0}var e=a("../utils");d.prototype={checkOffset:function(a){this.checkIndex(this.index+a)},checkIndex:function(a){if(this.lengtha)throw new Error("End of data reached (data length = "+this.length+", asked index = "+a+"). Corrupted zip ?")},setIndex:function(a){this.checkIndex(a),this.index=a},skip:function(a){this.setIndex(this.index+a)},byteAt:function(a){},readInt:function(a){var b,c=0;for(this.checkOffset(a),b=this.index+a-1;b>=this.index;b--)c=(c<<8)+this.byteAt(b);return this.index+=a,c},readString:function(a){return e.transformTo("string",this.readData(a))},readData:function(a){},lastIndexOfSignature:function(a){},readAndCheckSignature:function(a){},readDate:function(){var a=this.readInt(4);return new Date(Date.UTC((a>>25&127)+1980,(a>>21&15)-1,a>>16&31,a>>11&31,a>>5&63,(31&a)<<1))}},b.exports=d},{"../utils":29}],16:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./Uint8ArrayReader"),f=a("../utils");f.inherits(d,e),d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":29,"./Uint8ArrayReader":18}],17:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./DataReader"),f=a("../utils");f.inherits(d,e),d.prototype.byteAt=function(a){return this.data.charCodeAt(this.zero+a)},d.prototype.lastIndexOfSignature=function(a){return this.data.lastIndexOf(a)-this.zero},d.prototype.readAndCheckSignature=function(a){var b=this.readData(4);return a===b},d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":29,"./DataReader":15}],18:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./ArrayReader"),f=a("../utils");f.inherits(d,e),d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return new Uint8Array(0);var b=this.data.subarray(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":29,"./ArrayReader":14}],19:[function(a,b,c){"use strict";var d=a("../utils"),e=a("../support"),f=a("./ArrayReader"),g=a("./StringReader"),h=a("./NodeBufferReader"),i=a("./Uint8ArrayReader");b.exports=function(a){var b=d.getTypeOf(a);return d.checkSupport(b),"string"!==b||e.uint8array?"nodebuffer"===b?new h(a):e.uint8array?new i(d.transformTo("uint8array",a)):new f(d.transformTo("array",a)):new g(a)}},{"../support":27,"../utils":29,"./ArrayReader":14,"./NodeBufferReader":16,"./StringReader":17,"./Uint8ArrayReader":18}],20:[function(a,b,c){"use strict";c.LOCAL_FILE_HEADER="PK",c.CENTRAL_FILE_HEADER="PK",c.CENTRAL_DIRECTORY_END="PK",c.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",c.ZIP64_CENTRAL_DIRECTORY_END="PK",c.DATA_DESCRIPTOR="PK\b"},{}],21:[function(a,b,c){"use strict";function d(a){e.call(this,"ConvertWorker to "+a),this.destType=a}var e=a("./GenericWorker"),f=a("../utils");f.inherits(d,e),d.prototype.processChunk=function(a){this.push({data:f.transformTo(this.destType,a.data),meta:a.meta})},b.exports=d},{"../utils":29,"./GenericWorker":25}],22:[function(a,b,c){"use strict";function d(){e.call(this,"Crc32Probe")}var e=a("./GenericWorker"),f=a("../crc32"),g=a("../utils");g.inherits(d,e),d.prototype.processChunk=function(a){this.streamInfo.crc32=f(a.data,this.streamInfo.crc32||0),this.push(a)},b.exports=d},{"../crc32":4,"../utils":29,"./GenericWorker":25}],23:[function(a,b,c){"use strict";function d(a){f.call(this,"DataLengthProbe for "+a),this.propName=a,this.withStreamInfo(a,0)}var e=a("../utils"),f=a("./GenericWorker");e.inherits(d,f),d.prototype.processChunk=function(a){if(a){var b=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=b+a.data.length}f.prototype.processChunk.call(this,a)},b.exports=d},{"../utils":29,"./GenericWorker":25}],24:[function(a,b,c){"use strict";function d(a){f.call(this,"DataWorker");var b=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,a.then(function(a){b.dataIsReady=!0,b.data=a,b.max=a&&a.length||0,b.type=e.getTypeOf(a),b.isPaused||b._tickAndRepeat()},function(a){b.error(a)})}var e=a("../utils"),f=a("./GenericWorker"),g=16384;e.inherits(d,f),d.prototype.cleanUp=function(){f.prototype.cleanUp.call(this),this.data=null},d.prototype.resume=function(){return f.prototype.resume.call(this)?(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,e.delay(this._tickAndRepeat,[],this)),!0):!1},d.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(e.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},d.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var a=g,b=null,c=Math.min(this.max,this.index+a);if(this.index>=this.max)return this.end();switch(this.type){case"string":b=this.data.substring(this.index,c);break;case"uint8array":b=this.data.subarray(this.index,c);break;case"array":case"nodebuffer":b=this.data.slice(this.index,c)}return this.index=c,this.push({data:b,meta:{percent:this.max?this.index/this.max*100:0}})},b.exports=d},{"../utils":29,"./GenericWorker":25}],25:[function(a,b,c){"use strict";function d(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}d.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return this.isFinished?!1:(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,b){return this._listeners[a].push(b),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,b){if(this._listeners[a])for(var c=0;c "+a:a}},b.exports=d},{}],26:[function(a,b,c){(function(c){"use strict";function d(a,b,c){switch(a){case"blob":return h.newBlob(h.transformTo("arraybuffer",b),c);case"base64":return k.encode(b);default:return h.transformTo(a,b)}}function e(a,b){var d,e=0,f=null,g=0;for(d=0;dk;k++)j[k]=k>=252?6:k>=248?5:k>=240?4:k>=224?3:k>=192?2:1;j[254]=j[254]=1;var l=function(a){var b,c,d,e,f,h=a.length,i=0;for(e=0;h>e;e++)c=a.charCodeAt(e),55296===(64512&c)&&h>e+1&&(d=a.charCodeAt(e+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),e++)),i+=128>c?1:2048>c?2:65536>c?3:4;for(b=g.uint8array?new Uint8Array(i):new Array(i),f=0,e=0;i>f;e++)c=a.charCodeAt(e),55296===(64512&c)&&h>e+1&&(d=a.charCodeAt(e+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),e++)),128>c?b[f++]=c:2048>c?(b[f++]=192|c>>>6,b[f++]=128|63&c):65536>c?(b[f++]=224|c>>>12,b[f++]=128|c>>>6&63,b[f++]=128|63&c):(b[f++]=240|c>>>18,b[f++]=128|c>>>12&63,b[f++]=128|c>>>6&63,b[f++]=128|63&c);return b},m=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return 0>c?b:0===c?b:c+j[a[c]]>b?c:b},n=function(a){var b,c,d,e,g=a.length,h=new Array(2*g);for(c=0,b=0;g>b;)if(d=a[b++],128>d)h[c++]=d;else if(e=j[d],e>4)h[c++]=65533,b+=e-1;else{for(d&=2===e?31:3===e?15:7;e>1&&g>b;)d=d<<6|63&a[b++],e--;e>1?h[c++]=65533:65536>d?h[c++]=d:(d-=65536,h[c++]=55296|d>>10&1023,h[c++]=56320|1023&d)}return h.length!==c&&(h.subarray?h=h.subarray(0,c):h.length=c),f.applyFromCharCode(h)};c.utf8encode=function(a){return g.nodebuffer?h.newBuffer(a,"utf-8"):l(a)},c.utf8decode=function(a){return g.nodebuffer?f.transformTo("nodebuffer",a).toString("utf-8"):(a=f.transformTo(g.uint8array?"uint8array":"array",a),n(a))},f.inherits(d,i),d.prototype.processChunk=function(a){var b=f.transformTo(g.uint8array?"uint8array":"array",a.data);if(this.leftOver&&this.leftOver.length){if(g.uint8array){var d=b;b=new Uint8Array(d.length+this.leftOver.length),b.set(this.leftOver,0),b.set(d,this.leftOver.length)}else b=this.leftOver.concat(b);this.leftOver=null}var e=m(b),h=b;e!==b.length&&(g.uint8array?(h=b.subarray(0,e),this.leftOver=b.subarray(e,b.length)):(h=b.slice(0,e),this.leftOver=b.slice(e,b.length))),this.push({data:c.utf8decode(h),meta:a.meta})},d.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:c.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},c.Utf8DecodeWorker=d,f.inherits(e,i),e.prototype.processChunk=function(a){this.push({data:c.utf8encode(a.data),meta:a.meta})},c.Utf8EncodeWorker=e},{"./nodejsUtils":12,"./stream/GenericWorker":25,"./support":27,"./utils":29}],29:[function(a,b,c){"use strict";function d(a){var b=null;return b=i.uint8array?new Uint8Array(a.length):new Array(a.length),f(a,b)}function e(a){return a}function f(a,b){for(var c=0;c1;)try{return n.stringifyByChunk(a,d,b)}catch(f){b=Math.floor(b/2)}return n.stringifyByChar(a)}function h(a,b){for(var c=0;c=f)return String.fromCharCode.apply(null,a);for(;f>e;)"array"===b||"nodebuffer"===b?d.push(String.fromCharCode.apply(null,a.slice(e,Math.min(e+c,f)))):d.push(String.fromCharCode.apply(null,a.subarray(e,Math.min(e+c,f)))),e+=c;return d.join("")},stringifyByChar:function(a){for(var b="",c=0;cb?"0":"")+b.toString(16).toUpperCase();return d},c.delay=function(a,b,c){l(function(){a.apply(c||null,b||[])})},c.inherits=function(a,b){var c=function(){};c.prototype=b.prototype,a.prototype=new c},c.extend=function(){var a,b,c={};for(a=0;ae;)a=this.reader.readInt(2),b=this.reader.readInt(4),c=this.reader.readData(b),this.zip64ExtensibleData[a]={id:a,length:b,value:c}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var a,b;for(a=0;aa){var b=!this.isSignature(0,g.LOCAL_FILE_HEADER);throw b?new Error("Can't find end of central directory : is this a zip file ? If it is, see http://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip : can't find end of central directory")}this.reader.setIndex(a);var c=a;if(this.checkSignature(g.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===f.MAX_VALUE_16BITS||this.diskWithCentralDirStart===f.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===f.MAX_VALUE_16BITS||this.centralDirRecords===f.MAX_VALUE_16BITS||this.centralDirSize===f.MAX_VALUE_32BITS||this.centralDirOffset===f.MAX_VALUE_32BITS){if(this.zip64=!0,a=this.reader.lastIndexOfSignature(g.ZIP64_CENTRAL_DIRECTORY_LOCATOR),0>a)throw new Error("Corrupted zip : can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(a),this.checkSignature(g.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,g.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(g.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip : can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(g.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var d=this.centralDirOffset+this.centralDirSize;this.zip64&&(d+=20,d+=12+this.zip64EndOfCentralSize);var e=c-d;if(e>0)this.isSignature(c,g.CENTRAL_FILE_HEADER)||(this.reader.zero=e);else if(0>e)throw new Error("Corrupted zip: missing "+Math.abs(e)+" bytes.")},prepareReader:function(a){this.reader=e(a)},load:function(a){this.prepareReader(a),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},b.exports=d},{"./reader/readerFor":19,"./signature":20,"./support":27,"./utf8":28,"./utils":29,"./zipEntry":31}],31:[function(a,b,c){"use strict";function d(a,b){this.options=a,this.loadOptions=b}var e=a("./reader/readerFor"),f=a("./utils"),g=a("./compressedObject"),h=a("./crc32"),i=a("./utf8"),j=a("./compressions"),k=a("./support"),l=0,m=3,n=function(a){for(var b in j)if(j.hasOwnProperty(b)&&j[b].magic===a)return j[b];return null};d.prototype={isEncrypted:function(){return 1===(1&this.bitFlag)},useUTF8:function(){return 2048===(2048&this.bitFlag)},readLocalPart:function(a){var b,c;if(a.skip(22),this.fileNameLength=a.readInt(2),c=a.readInt(2),this.fileName=a.readData(this.fileNameLength),a.skip(c),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(b=n(this.compressionMethod),null===b)throw new Error("Corrupted zip : compression "+f.pretty(this.compressionMethod)+" unknown (inner file : "+f.transformTo("string",this.fileName)+")");this.decompressed=new g(this.compressedSize,this.uncompressedSize,this.crc32,b,a.readData(this.compressedSize))},readCentralPart:function(a){this.versionMadeBy=a.readInt(2),a.skip(2),this.bitFlag=a.readInt(2),this.compressionMethod=a.readString(2),this.date=a.readDate(),this.crc32=a.readInt(4),this.compressedSize=a.readInt(4),this.uncompressedSize=a.readInt(4);var b=a.readInt(2);if(this.extraFieldsLength=a.readInt(2),this.fileCommentLength=a.readInt(2),this.diskNumberStart=a.readInt(2),this.internalFileAttributes=a.readInt(2),this.externalFileAttributes=a.readInt(4),this.localHeaderOffset=a.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");a.skip(b),this.readExtraFields(a),this.parseZIP64ExtraField(a),this.fileComment=a.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var a=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),a===l&&(this.dosPermissions=63&this.externalFileAttributes),a===m&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(a){if(this.extraFields[1]){var b=e(this.extraFields[1].value);this.uncompressedSize===f.MAX_VALUE_32BITS&&(this.uncompressedSize=b.readInt(8)),this.compressedSize===f.MAX_VALUE_32BITS&&(this.compressedSize=b.readInt(8)),this.localHeaderOffset===f.MAX_VALUE_32BITS&&(this.localHeaderOffset=b.readInt(8)),this.diskNumberStart===f.MAX_VALUE_32BITS&&(this.diskNumberStart=b.readInt(4))}},readExtraFields:function(a){var b,c,d,e=a.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});a.indexk){for(var b=0,c=h.length-j;c>b;b++)h[b]=h[b+j];h.length-=j,j=0}}h.length=0,j=0,i=!1}function e(a){var b=1,c=new l(a),d=document.createTextNode("");return c.observe(d,{characterData:!0}),function(){b=-b,d.data=b}}function f(a){return function(){function b(){clearTimeout(c),clearInterval(d),a()}var c=setTimeout(b,0),d=setInterval(b,50)}}b.exports=c;var g,h=[],i=!1,j=0,k=1024,l=a.MutationObserver||a.WebKitMutationObserver;g="function"==typeof l?e(d):f(d),c.requestFlush=g,c.makeRequestCallFromTimer=f}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],35:[function(a,b,c){},{}],36:[function(a,b,c){function d(){k=!1,h.length?j=h.concat(j):l=-1,j.length&&e()}function e(){if(!k){var a=setTimeout(d);k=!0;for(var b=j.length;b;){for(h=j,j=[];++l1)for(var c=1;ca;a+=2){var b=ca[a],c=ca[a+1];b(c),ca[a]=void 0,ca[a+1]=void 0}X=0}function q(){try{var a=b,c=a("vertx");return T=c.runOnLoop||c.runOnContext,l()}catch(d){return o()}}function r(){}function s(){return new TypeError("You cannot resolve a promise with itself")}function t(){return new TypeError("A promises callback cannot return that same promise.")}function u(a){try{return a.then}catch(b){return ga.error=b,ga}}function v(a,b,c,d){try{a.call(b,c,d)}catch(e){return e}}function w(a,b,c){Y(function(a){var d=!1,e=v(c,b,function(c){d||(d=!0,b!==c?z(a,c):B(a,c))},function(b){d||(d=!0,C(a,b))},"Settle: "+(a._label||" unknown promise"));!d&&e&&(d=!0,C(a,e))},a)}function x(a,b){b._state===ea?B(a,b._result):b._state===fa?C(a,b._result):D(b,void 0,function(b){z(a,b)},function(b){C(a,b)})}function y(a,b){if(b.constructor===a.constructor)x(a,b);else{var c=u(b);c===ga?C(a,ga.error):void 0===c?B(a,b):g(c)?w(a,b,c):B(a,b)}}function z(a,b){a===b?C(a,s()):f(b)?y(a,b):B(a,b)}function A(a){a._onerror&&a._onerror(a._result),E(a)}function B(a,b){a._state===da&&(a._result=b,a._state=ea,0!==a._subscribers.length&&Y(E,a))}function C(a,b){a._state===da&&(a._state=fa,a._result=b,Y(A,a))}function D(a,b,c,d){var e=a._subscribers,f=e.length;a._onerror=null,e[f]=b,e[f+ea]=c,e[f+fa]=d,0===f&&a._state&&Y(E,a)}function E(a){var b=a._subscribers,c=a._state;if(0!==b.length){for(var d,e,f=a._result,g=0;gg;g++)D(d.resolve(a[g]),void 0,b,c);return e}function M(a){var b=this;if(a&&"object"==typeof a&&a.constructor===b)return a;var c=new b(r);return z(c,a),c}function N(a){var b=this,c=new b(r);return C(c,a),c}function O(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function P(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function Q(a){this._id=na++,this._state=void 0,this._result=void 0,this._subscribers=[],r!==a&&(g(a)||O(),this instanceof Q||P(),I(this,a))}function R(){var a;if("undefined"!=typeof e)a=e;else if("undefined"!=typeof self)a=self;else try{a=Function("return this")()}catch(b){throw new Error("polyfill failed because global object is unavailable in this environment")}var c=a.Promise;c&&"[object Promise]"===Object.prototype.toString.call(c.resolve())&&!c.cast||(a.Promise=oa)}var S;S=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)};var T,U,V,W=S,X=0,Y=({}.toString,function(a,b){ca[X]=a,ca[X+1]=b,X+=2,2===X&&(U?U(p):V())}),Z="undefined"!=typeof window?window:void 0,$=Z||{},_=$.MutationObserver||$.WebKitMutationObserver,aa="undefined"!=typeof d&&"[object process]"==={}.toString.call(d),ba="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,ca=new Array(1e3);V=aa?k():_?m():ba?n():void 0===Z&&"function"==typeof b?q():o();var da=void 0,ea=1,fa=2,ga=new F,ha=new F;J.prototype._validateInput=function(a){return W(a)},J.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},J.prototype._init=function(){this._result=new Array(this.length)};var ia=J;J.prototype._enumerate=function(){for(var a=this,b=a.length,c=a.promise,d=a._input,e=0;c._state===da&&b>e;e++)a._eachEntry(d[e],e)},J.prototype._eachEntry=function(a,b){var c=this,d=c._instanceConstructor;h(a)?a.constructor===d&&a._state!==da?(a._onerror=null,c._settledAt(a._state,b,a._result)):c._willSettleAt(d.resolve(a),b):(c._remaining--,c._result[b]=a)},J.prototype._settledAt=function(a,b,c){var d=this,e=d.promise;e._state===da&&(d._remaining--,a===fa?C(e,c):d._result[b]=c),0===d._remaining&&B(e,d._result)},J.prototype._willSettleAt=function(a,b){var c=this;D(a,void 0,function(a){c._settledAt(ea,b,a)},function(a){c._settledAt(fa,b,a)})};var ja=K,ka=L,la=M,ma=N,na=0,oa=Q;Q.all=ja,Q.race=ka,Q.resolve=la,Q.reject=ma,Q._setScheduler=i,Q._setAsap=j,Q._asap=Y,Q.prototype={constructor:Q,then:function(a,b){var c=this,d=c._state;if(d===ea&&!a||d===fa&&!b)return this;var e=new this.constructor(r),f=c._result;if(d){var g=arguments[d-1];Y(function(){H(d,e,g,f)})}else D(c,e,a,b);return e},"catch":function(a){return this.then(null,a)}};var pa=R,qa={Promise:oa,polyfill:pa};"function"==typeof a&&a.amd?a(function(){return qa}):"undefined"!=typeof c&&c.exports?c.exports=qa:"undefined"!=typeof this&&(this.ES6Promise=qa),pa()}).call(this)}).call(this,b("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:36}],38:[function(a,b,c){"use strict";var d=a("./lib/utils/common").assign,e=a("./lib/deflate"),f=a("./lib/inflate"),g=a("./lib/zlib/constants"),h={};d(h,e,f,g),b.exports=h},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(a,b,c){"use strict";function d(a){if(!(this instanceof d))return new d(a);this.options=i.assign({level:s,method:u,chunkSize:16384,windowBits:15,memLevel:8,strategy:t,to:""},a||{});var b=this.options;b.raw&&b.windowBits>0?b.windowBits=-b.windowBits:b.gzip&&b.windowBits>0&&b.windowBits<16&&(b.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=h.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==p)throw new Error(k[c]);if(b.header&&h.deflateSetHeader(this.strm,b.header),b.dictionary){var e;if(e="string"==typeof b.dictionary?j.string2buf(b.dictionary):"[object ArrayBuffer]"===m.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=h.deflateSetDictionary(this.strm,e),c!==p)throw new Error(k[c]);this._dict_set=!0}}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg;return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}function g(a,b){return b=b||{},b.gzip=!0,e(a,b)}var h=a("./zlib/deflate"),i=a("./utils/common"),j=a("./utils/strings"),k=a("./zlib/messages"),l=a("./zlib/zstream"),m=Object.prototype.toString,n=0,o=4,p=0,q=1,r=2,s=-1,t=0,u=8;d.prototype.push=function(a,b){var c,d,e=this.strm,f=this.options.chunkSize;if(this.ended)return!1;d=b===~~b?b:b===!0?o:n,"string"==typeof a?e.input=j.string2buf(a):"[object ArrayBuffer]"===m.call(a)?e.input=new Uint8Array(a):e.input=a,e.next_in=0,e.avail_in=e.input.length;do{if(0===e.avail_out&&(e.output=new i.Buf8(f),e.next_out=0,e.avail_out=f),c=h.deflate(e,d),c!==q&&c!==p)return this.onEnd(c),this.ended=!0,!1;0!==e.avail_out&&(0!==e.avail_in||d!==o&&d!==r)||("string"===this.options.to?this.onData(j.buf2binstring(i.shrinkBuf(e.output,e.next_out))):this.onData(i.shrinkBuf(e.output,e.next_out)))}while((e.avail_in>0||0===e.avail_out)&&c!==q);return d===o?(c=h.deflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===p):d===r?(this.onEnd(p),e.avail_out=0,!0):!0},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===p&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Deflate=d,c.deflate=e,c.deflateRaw=f,c.gzip=g},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(a,b,c){"use strict";function d(a){if(!(this instanceof d))return new d(a);this.options=h.assign({chunkSize:16384,windowBits:0,to:""},a||{});var b=this.options;b.raw&&b.windowBits>=0&&b.windowBits<16&&(b.windowBits=-b.windowBits,0===b.windowBits&&(b.windowBits=-15)),!(b.windowBits>=0&&b.windowBits<16)||a&&a.windowBits||(b.windowBits+=32),b.windowBits>15&&b.windowBits<48&&0===(15&b.windowBits)&&(b.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=g.inflateInit2(this.strm,b.windowBits);if(c!==j.Z_OK)throw new Error(k[c]);this.header=new m,g.inflateGetHeader(this.strm,this.header)}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg;return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}var g=a("./zlib/inflate"),h=a("./utils/common"),i=a("./utils/strings"),j=a("./zlib/constants"),k=a("./zlib/messages"),l=a("./zlib/zstream"),m=a("./zlib/gzheader"),n=Object.prototype.toString;d.prototype.push=function(a,b){var c,d,e,f,k,l,m=this.strm,o=this.options.chunkSize,p=this.options.dictionary,q=!1;if(this.ended)return!1;d=b===~~b?b:b===!0?j.Z_FINISH:j.Z_NO_FLUSH,"string"==typeof a?m.input=i.binstring2buf(a):"[object ArrayBuffer]"===n.call(a)?m.input=new Uint8Array(a):m.input=a,m.next_in=0,m.avail_in=m.input.length;do{if(0===m.avail_out&&(m.output=new h.Buf8(o),m.next_out=0,m.avail_out=o),c=g.inflate(m,j.Z_NO_FLUSH),c===j.Z_NEED_DICT&&p&&(l="string"==typeof p?i.string2buf(p):"[object ArrayBuffer]"===n.call(p)?new Uint8Array(p):p,c=g.inflateSetDictionary(this.strm,l)),c===j.Z_BUF_ERROR&&q===!0&&(c=j.Z_OK,q=!1),c!==j.Z_STREAM_END&&c!==j.Z_OK)return this.onEnd(c),this.ended=!0,!1;m.next_out&&(0!==m.avail_out&&c!==j.Z_STREAM_END&&(0!==m.avail_in||d!==j.Z_FINISH&&d!==j.Z_SYNC_FLUSH)||("string"===this.options.to?(e=i.utf8border(m.output,m.next_out),f=m.next_out-e,k=i.buf2string(m.output,e),m.next_out=f,m.avail_out=o-f,f&&h.arraySet(m.output,m.output,e,f,0),this.onData(k)):this.onData(h.shrinkBuf(m.output,m.next_out)))),0===m.avail_in&&0===m.avail_out&&(q=!0)}while((m.avail_in>0||0===m.avail_out)&&c!==j.Z_STREAM_END);return c===j.Z_STREAM_END&&(d=j.Z_FINISH),d===j.Z_FINISH?(c=g.inflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===j.Z_OK):d===j.Z_SYNC_FLUSH?(this.onEnd(j.Z_OK),m.avail_out=0,!0):!0},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===j.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=h.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Inflate=d,c.inflate=e,c.inflateRaw=f,c.ungzip=e},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(a,b,c){"use strict";var d="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;c.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},c.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var e={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(d=0,b=0,c=a.length;c>b;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;c>b;b++)f=a[b],g.set(f,e),e+=f.length;return g}},f={arraySet:function(a,b,c,d,e){for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};c.setTyped=function(a){a?(c.Buf8=Uint8Array,c.Buf16=Uint16Array,c.Buf32=Int32Array,c.assign(c,e)):(c.Buf8=Array,c.Buf16=Array,c.Buf32=Array,c.assign(c,f))},c.setTyped(d)},{}],42:[function(a,b,c){"use strict";function d(a,b){if(65537>b&&(a.subarray&&g||!a.subarray&&f))return String.fromCharCode.apply(null,e.shrinkBuf(a,b));for(var c="",d=0;b>d;d++)c+=String.fromCharCode(a[d]);return c}var e=a("./common"),f=!0,g=!0;try{String.fromCharCode.apply(null,[0])}catch(h){f=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(h){g=!1}for(var i=new e.Buf8(256),j=0;256>j;j++)i[j]=j>=252?6:j>=248?5:j>=240?4:j>=224?3:j>=192?2:1;i[254]=i[254]=1,c.string2buf=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;h>f;f++)c=a.charCodeAt(f),55296===(64512&c)&&h>f+1&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),i+=128>c?1:2048>c?2:65536>c?3:4;for(b=new e.Buf8(i),g=0,f=0;i>g;f++)c=a.charCodeAt(f),55296===(64512&c)&&h>f+1&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),128>c?b[g++]=c:2048>c?(b[g++]=192|c>>>6,b[g++]=128|63&c):65536>c?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},c.buf2binstring=function(a){return d(a,a.length)},c.binstring2buf=function(a){for(var b=new e.Buf8(a.length),c=0,d=b.length;d>c;c++)b[c]=a.charCodeAt(c);return b},c.buf2string=function(a,b){var c,e,f,g,h=b||a.length,j=new Array(2*h);for(e=0,c=0;h>c;)if(f=a[c++],128>f)j[e++]=f;else if(g=i[f],g>4)j[e++]=65533,c+=g-1;else{for(f&=2===g?31:3===g?15:7;g>1&&h>c;)f=f<<6|63&a[c++],g--;g>1?j[e++]=65533:65536>f?j[e++]=f:(f-=65536,j[e++]=55296|f>>10&1023,j[e++]=56320|1023&f)}return d(j,e)},c.utf8border=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return 0>c?b:0===c?b:c+i[a[c]]>b?c:b}},{"./common":41}],43:[function(a,b,c){"use strict";function d(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0}b.exports=d},{}],44:[function(a,b,c){"use strict";b.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(a,b,c){"use strict";function d(){for(var a,b=[],c=0;256>c;c++){a=c;for(var d=0;8>d;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=f,g=d+c;a^=-1;for(var h=d;g>h;h++)a=a>>>8^e[255&(a^b[h])];return-1^a}var f=d();b.exports=e},{}],46:[function(a,b,c){"use strict";function d(a,b){return a.msg=I[b],b}function e(a){return(a<<1)-(a>4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(E.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){F._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,E.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=G(a.adler,b,e,c):2===a.state.wrap&&(a.adler=H(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-la?a.strstart-(a.w_size-la):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ka,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&m>f);if(d=ka-(m-f),f=m-ka,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-la)){E.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=ja)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===J)return ua;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return ua;if(a.strstart-a.block_start>=a.w_size-la&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?ua:ua}function o(a,b){for(var c,d;;){if(a.lookahead=ja&&(a.ins_h=(a.ins_h<=ja)if(d=F._tr_tally(a,a.strstart-a.match_start,a.match_length-ja),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=ja){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<=ja&&(a.ins_h=(a.ins_h<4096)&&(a.match_length=ja-1)),a.prev_length>=ja&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-ja,d=F._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-ja),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<=ja&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ka;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&f>e);a.match_length=ka-(f-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=ja?(c=F._tr_tally(a,1,a.match_length-ja),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===J)return ua;break}if(a.match_length=0,c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function s(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e}function t(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=D[a.level].max_lazy,a.good_match=D[a.level].good_length,a.nice_match=D[a.level].nice_length,a.max_chain_length=D[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=ja-1,a.match_available=0,a.ins_h=0}function u(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=$,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new E.Buf16(2*ha),this.dyn_dtree=new E.Buf16(2*(2*fa+1)),this.bl_tree=new E.Buf16(2*(2*ga+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new E.Buf16(ia+1),this.heap=new E.Buf16(2*ea+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new E.Buf16(2*ea+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function v(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=Z,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?na:sa,a.adler=2===b.wrap?0:1,b.last_flush=J,F._tr_init(b),O):d(a,Q)}function w(a){var b=v(a);return b===O&&t(a.state),b}function x(a,b){return a&&a.state?2!==a.state.wrap?Q:(a.state.gzhead=b,O):Q}function y(a,b,c,e,f,g){if(!a)return Q;var h=1;if(b===T&&(b=6),0>e?(h=0,e=-e):e>15&&(h=2,e-=16),1>f||f>_||c!==$||8>e||e>15||0>b||b>9||0>g||g>X)return d(a,Q);8===e&&(e=9);var i=new u;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<>1,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,w(a)}function z(a,b){return y(a,b,$,aa,ba,Y)}function A(a,b){var c,h,k,l;if(!a||!a.state||b>N||0>b)return a?d(a,Q):Q;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===ta&&b!==M)return d(a,0===a.avail_out?S:Q);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===na)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=H(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=oa):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,ya),h.status=sa);else{var m=$+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=V||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=ma),m+=31-m%31,h.status=sa,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===oa)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=pa)}else h.status=pa;if(h.status===pa)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindexk&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=qa)}else h.status=qa;if(h.status===qa)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindexk&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=ra)}else h.status=ra;if(h.status===ra&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=sa)):h.status=sa),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,O}else if(0===a.avail_in&&e(b)<=e(c)&&b!==M)return d(a,S);if(h.status===ta&&0!==a.avail_in)return d(a,S);if(0!==a.avail_in||0!==h.lookahead||b!==J&&h.status!==ta){var o=h.strategy===V?r(h,b):h.strategy===W?q(h,b):D[h.level].func(h,b);if(o!==wa&&o!==xa||(h.status=ta),o===ua||o===wa)return 0===a.avail_out&&(h.last_flush=-1),O;if(o===va&&(b===K?F._tr_align(h):b!==N&&(F._tr_stored_block(h,0,0,!1),b===L&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,O}return b!==M?O:h.wrap<=0?P:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?O:P)}function B(a){var b;return a&&a.state?(b=a.state.status,b!==na&&b!==oa&&b!==pa&&b!==qa&&b!==ra&&b!==sa&&b!==ta?d(a,Q):(a.state=null,b===sa?d(a,R):O)):Q}function C(a,b){var c,d,e,g,h,i,j,k,l=b.length;if(!a||!a.state)return Q;if(c=a.state,g=c.wrap,2===g||1===g&&c.status!==na||c.lookahead)return Q;for(1===g&&(a.adler=G(a.adler,b,l,0)),c.wrap=0,l>=c.w_size&&(0===g&&(f(c.head),c.strstart=0,c.block_start=0,c.insert=0),k=new E.Buf8(c.w_size),E.arraySet(k,b,l-c.w_size,c.w_size,0),b=k,l=c.w_size),h=a.avail_in,i=a.next_in,j=a.input,a.avail_in=l,a.next_in=0,a.input=b,m(c);c.lookahead>=ja;){d=c.strstart,e=c.lookahead-(ja-1);do c.ins_h=(c.ins_h<q&&(p+=B[f++]<>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<q&&(p+=B[f++]<>>=w,q-=w),15>q&&(p+=B[f++]<>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<q&&(p+=B[f++]<q&&(p+=B[f++]<k){a.msg="invalid distance too far back",c.mode=d;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&c.sane){a.msg="invalid distance too far back",c.mode=d;break a}if(z=0,A=o,0===n){if(z+=l-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}else if(w>n){if(z+=l+n-w,w-=n,x>w){x-=w;do C[h++]=o[z++];while(--w);if(z=0,x>n){w=n,x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}}else if(z+=n-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}for(;x>2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(g>f&&j>h);x=q>>3,f-=x,q-=x<<3,p&=(1<f?5+(g-f):5-(f-g),a.avail_out=j>h?257+(j-h):257-(h-j),c.hold=p,c.bits=q}},{}],49:[function(a,b,c){"use strict";function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=L,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new s.Buf32(pa),b.distcode=b.distdyn=new s.Buf32(qa),b.sane=1,b.back=-1,D):G}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):G}function h(a,b){var c,d;return a&&a.state?(d=a.state,0>b?(c=0,b=-b):(c=(b>>4)+1,48>b&&(b&=15)),b&&(8>b||b>15)?G:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):G}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==D&&(a.state=null),c):G}function j(a){return i(a,sa)}function k(a){if(ta){var b;for(q=new s.Buf32(512),r=new s.Buf32(32),b=0;144>b;)a.lens[b++]=8;for(;256>b;)a.lens[b++]=9;for(;280>b;)a.lens[b++]=7;for(;288>b;)a.lens[b++]=8;for(w(y,a.lens,0,288,q,0,a.work,{bits:9}),b=0;32>b;)a.lens[b++]=5;w(z,a.lens,0,32,r,0,a.work,{bits:5}),ta=!1}a.lencode=q,a.lenbits=9,a.distcode=r,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<=f.wsize?(s.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),s.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(s.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whaven;){if(0===i)break a;i--,m+=e[g++]<>>8&255,c.check=u(c.check,Ba,2,0),m=0,n=0,c.mode=M;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg="incorrect header check",c.mode=ma;break}if((15&m)!==K){a.msg="unknown compression method",c.mode=ma;break}if(m>>>=4,n-=4,wa=(15&m)+8,0===c.wbits)c.wbits=wa;else if(wa>c.wbits){a.msg="invalid window size",c.mode=ma;break}c.dmax=1<n;){if(0===i)break a;i--,m+=e[g++]<>8&1),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=N;case N:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<>>8&255,Ba[2]=m>>>16&255,Ba[3]=m>>>24&255,c.check=u(c.check,Ba,4,0)),m=0,n=0,c.mode=O;case O:for(;16>n;){if(0===i)break a;i--,m+=e[g++]<>8),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=P;case P:if(1024&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=Q;case Q:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wa=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),s.arraySet(c.head.extra,e,g,q,wa)),512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=R;case R:if(2048&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.name+=String.fromCharCode(wa));while(wa&&i>q);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.name=null);c.length=0,c.mode=S;case S:if(4096&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.comment+=String.fromCharCode(wa));while(wa&&i>q);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.comment=null);c.mode=T;case T:if(512&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=W;break;case U:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<>>=7&n,n-=7&n,c.mode=ja;break}for(;3>n;){if(0===i)break a;i--,m+=e[g++]<>>=1,n-=1,3&m){case 0:c.mode=Y;break;case 1:if(k(c),c.mode=ca,b===C){m>>>=2,n-=2;break a}break;case 2:c.mode=_;break;case 3:a.msg="invalid block type",c.mode=ma}m>>>=2,n-=2;break;case Y:for(m>>>=7&n,n-=7&n;32>n;){if(0===i)break a;i--,m+=e[g++]<>>16^65535)){a.msg="invalid stored block lengths",c.mode=ma;break}if(c.length=65535&m,m=0,n=0,c.mode=Z,b===C)break a;case Z:c.mode=$;case $:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;s.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=W;break;case _:for(;14>n;){if(0===i)break a;i--,m+=e[g++]<>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=ma;break}c.have=0,c.mode=aa;case aa:for(;c.haven;){if(0===i)break a;i--,m+=e[g++]<>>=3,n-=3}for(;c.have<19;)c.lens[Ca[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ya={bits:c.lenbits},xa=w(x,c.lens,0,19,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid code lengths set",c.mode=ma;break}c.have=0,c.mode=ba;case ba:for(;c.have>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<sa)m>>>=qa,n-=qa,c.lens[c.have++]=sa;else{if(16===sa){for(za=qa+2;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=qa,n-=qa,0===c.have){a.msg="invalid bit length repeat",c.mode=ma;break}wa=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sa){for(za=qa+3;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=qa,n-=qa,wa=0,q=3+(7&m),m>>>=3,n-=3}else{for(za=qa+7;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=qa,n-=qa,wa=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=ma;break}for(;q--;)c.lens[c.have++]=wa}}if(c.mode===ma)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=ma;break}if(c.lenbits=9,ya={bits:c.lenbits},xa=w(y,c.lens,0,c.nlen,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid literal/lengths set",c.mode=ma;break}if(c.distbits=6,c.distcode=c.distdyn,ya={bits:c.distbits},xa=w(z,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ya),c.distbits=ya.bits,xa){a.msg="invalid distances set",c.mode=ma;break}if(c.mode=ca,b===C)break a;case ca:c.mode=da;case da:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,v(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===W&&(c.back=-1);break}for(c.back=0;Aa=c.lencode[m&(1<>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=ta+qa);){if(0===i)break a;i--,m+=e[g++]<>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,c.length=sa,0===ra){c.mode=ia;break}if(32&ra){c.back=-1,c.mode=W;break}if(64&ra){a.msg="invalid literal/length code",c.mode=ma;break}c.extra=15&ra,c.mode=ea;case ea:if(c.extra){for(za=c.extra;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=fa;case fa:for(;Aa=c.distcode[m&(1<>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=ta+qa);){if(0===i)break a;i--,m+=e[g++]<>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,64&ra){a.msg="invalid distance code",c.mode=ma;break}c.offset=sa,c.extra=15&ra,c.mode=ga;case ga:if(c.extra){for(za=c.extra;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=ma;break}c.mode=ha;case ha:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=ma;break}q>c.wnext?(q-=c.wnext,r=c.wsize-q):r=c.wnext-q,q>c.length&&(q=c.length),pa=c.window}else pa=f,r=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pa[r++];while(--q);0===c.length&&(c.mode=da);break;case ia:if(0===j)break a;f[h++]=c.length,j--,c.mode=da;break;case ja:if(c.wrap){for(;32>n;){if(0===i)break a;i--,m|=e[g++]<n;){if(0===i)break a;i--,m+=e[g++]<=D;D++)P[D]=0;for(E=0;o>E;E++)P[b[c+E]]++;for(H=C,G=e;G>=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;G>F&&0===P[F];F++);for(F>H&&(H=F),K=1,D=1;e>=D;D++)if(K<<=1,K-=P[D],0>K)return-1;if(K>0&&(a===h||1!==G))return-1;for(Q[1]=0,D=1;e>D;D++)Q[D+1]=Q[D]+P[D];for(E=0;o>E;E++)0!==b[c+E]&&(r[Q[b[c+E]]++]=E);if(a===h?(N=R=r,y=19):a===i?(N=k,O-=257,R=l,S-=257,y=256):(N=m,R=n,y=-1),M=0,E=0,D=F,x=q,I=H,J=0,v=-1,L=1<f||a===j&&L>g)return 1;for(var T=0;;){T++,z=D-J,r[E]y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[c+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<I+J&&(K-=P[I+J],!(0>=K));)I++,K<<=1;if(L+=1<f||a===j&&L>g)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},{"../utils/common":41}],51:[function(a,b,c){"use strict";b.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(a,b,c){"use strict";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length}function f(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b}function g(a){return 256>a?ia[a]:ia[256+(a>>>7)]}function h(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function i(a,b,c){a.bi_valid>X-c?(a.bi_buf|=b<>X-a.bi_valid,a.bi_valid+=c-X):(a.bi_buf|=b<>>=1,c<<=1;while(--b>0);return c>>>1}function l(a){16===a.bi_valid?(h(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function m(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;W>=f;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,c=a.heap_max+1;V>c;c++)d=a.heap[c],f=i[2*i[2*d+1]+1]+1,f>o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function n(a,b,c){var d,e,f=new Array(W+1),g=0;for(d=1;W>=d;d++)f[d]=g=g+c[d-1]<<1;for(e=0;b>=e;e++){var h=a[2*e+1];0!==h&&(a[2*e]=k(f[h]++,h))}}function o(){var a,b,c,d,f,g=new Array(W+1);for(c=0,d=0;Q-1>d;d++)for(ka[d]=c,a=0;a<1<d;d++)for(la[d]=f,a=0;a<1<>=7;T>d;d++)for(la[d]=f<<7,a=0;a<1<=b;b++)g[b]=0;for(a=0;143>=a;)ga[2*a+1]=8,a++,g[8]++;for(;255>=a;)ga[2*a+1]=9,a++,g[9]++;for(;279>=a;)ga[2*a+1]=7,a++,g[7]++;for(;287>=a;)ga[2*a+1]=8,a++,g[8]++;for(n(ga,S+1,g),a=0;T>a;a++)ha[2*a+1]=5,ha[2*a]=k(a,5);ma=new e(ga,ba,R+1,S,W),na=new e(ha,ca,0,T,W),oa=new e(new Array(0),da,0,U,Y)}function p(a){var b;for(b=0;S>b;b++)a.dyn_ltree[2*b]=0;for(b=0;T>b;b++)a.dyn_dtree[2*b]=0;for(b=0;U>b;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*Z]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function q(a){a.bi_valid>8?h(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function r(a,b,c,d){q(a),d&&(h(a,c),h(a,~c)),G.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function s(a,b,c,d){var e=2*b,f=2*c;return a[e]c;c++)0!==f[2*c]?(a.heap[++a.heap_len]=j=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)e=a.heap[++a.heap_len]=2>j?++j:0,f[2*e]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=j,c=a.heap_len>>1;c>=1;c--)t(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],t(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,t(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],m(a,b),n(f,j,a.bl_count)}function w(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;c>=d;d++)e=g,g=b[2*(d+1)+1], +++hh?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[2*$]++):10>=h?a.bl_tree[2*_]++:a.bl_tree[2*aa]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function x(a,b,c){var d,e,f=-1,g=b[1],h=0,k=7,l=4;for(0===g&&(k=138,l=3),d=0;c>=d;d++)if(e=g,g=b[2*(d+1)+1],!(++hh){do j(a,e,a.bl_tree);while(0!==--h)}else 0!==e?(e!==f&&(j(a,e,a.bl_tree),h--),j(a,$,a.bl_tree),i(a,h-3,2)):10>=h?(j(a,_,a.bl_tree),i(a,h-3,3)):(j(a,aa,a.bl_tree),i(a,h-11,7));h=0,f=e,0===g?(k=138,l=3):e===g?(k=6,l=3):(k=7,l=4)}}function y(a){var b;for(w(a,a.dyn_ltree,a.l_desc.max_code),w(a,a.dyn_dtree,a.d_desc.max_code),v(a,a.bl_desc),b=U-1;b>=3&&0===a.bl_tree[2*ea[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function z(a,b,c,d){var e;for(i(a,b-257,5),i(a,c-1,5),i(a,d-4,4),e=0;d>e;e++)i(a,a.bl_tree[2*ea[e]+1],3);x(a,a.dyn_ltree,b-1),x(a,a.dyn_dtree,c-1)}function A(a){var b,c=4093624447;for(b=0;31>=b;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return I;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return J;for(b=32;R>b;b++)if(0!==a.dyn_ltree[2*b])return J;return I}function B(a){pa||(o(),pa=!0),a.l_desc=new f(a.dyn_ltree,ma),a.d_desc=new f(a.dyn_dtree,na),a.bl_desc=new f(a.bl_tree,oa),a.bi_buf=0,a.bi_valid=0,p(a)}function C(a,b,c,d){i(a,(L<<1)+(d?1:0),3),r(a,b,c,!0)}function D(a){i(a,M<<1,3),j(a,Z,ga),l(a)}function E(a,b,c,d){var e,f,g=0;a.level>0?(a.strm.data_type===K&&(a.strm.data_type=A(a)),v(a,a.l_desc),v(a,a.d_desc),g=y(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,e>=f&&(e=f)):e=f=c+5,e>=c+4&&-1!==b?C(a,b,c,d):a.strategy===H||f===e?(i(a,(M<<1)+(d?1:0),3),u(a,ga,ha)):(i(a,(N<<1)+(d?1:0),3),z(a,a.l_desc.max_code+1,a.d_desc.max_code+1,g+1),u(a,a.dyn_ltree,a.dyn_dtree)),p(a),d&&q(a)}function F(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(ja[c]+R+1)]++,a.dyn_dtree[2*g(b)]++),a.last_lit===a.lit_bufsize-1}var G=a("../utils/common"),H=4,I=0,J=1,K=2,L=0,M=1,N=2,O=3,P=258,Q=29,R=256,S=R+1+Q,T=30,U=19,V=2*S+1,W=15,X=16,Y=7,Z=256,$=16,_=17,aa=18,ba=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ca=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],da=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ea=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],fa=512,ga=new Array(2*(S+2));d(ga);var ha=new Array(2*T);d(ha);var ia=new Array(fa);d(ia);var ja=new Array(P-O+1);d(ja);var ka=new Array(Q);d(ka);var la=new Array(T);d(la);var ma,na,oa,pa=!1;c._tr_init=B,c._tr_stored_block=C,c._tr_flush_block=E,c._tr_tally=F,c._tr_align=D},{"../utils/common":41}],53:[function(a,b,c){"use strict";function d(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}b.exports=d},{}]},{},[10])(10)}); \ No newline at end of file diff --git a/docs/_style/prism-master/vendor/promise.js b/docs/_style/prism-master/vendor/promise.js new file mode 100644 index 00000000..9bcc7991 --- /dev/null +++ b/docs/_style/prism-master/vendor/promise.js @@ -0,0 +1,5 @@ +/** + * ES6-Promises + * https://github.com/jakearchibald/es6-promise + */ +!function(){var a,b,c,d;!function(){var e={},f={};a=function(a,b,c){e[a]={deps:b,callback:c}},d=c=b=function(a){function c(b){if("."!==b.charAt(0))return b;for(var c=b.split("/"),d=a.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d._eak_seen=e,f[a])return f[a];if(f[a]={},!e[a])throw new Error("Could not find module "+a);for(var g,h=e[a],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)"exports"===i[l]?k.push(g={}):k.push(b(c(i[l])));var n=j.apply(this,k);return f[a]=g||n}}(),a("promise/all",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;j + + diff --git a/docs/index.html.dump b/docs/index.html.dump new file mode 100644 index 00000000..a535abca --- /dev/null +++ b/docs/index.html.dump @@ -0,0 +1,62 @@ + + + + + + Document + + + + + + + + + +

        +
        + + + + + + + + + + + + + + + + \ No newline at end of file