From b9a406e553bc0db0549ceb3a0f33083e4f40ea31 Mon Sep 17 00:00:00 2001 From: garrettmills Date: Mon, 16 Jan 2023 03:24:51 -0600 Subject: [PATCH] Implement blog as part of main site --- package.json | 5 + pnpm-lock.yaml | 98 +- src/app/configs/app.config.ts | 8 + src/app/http/controllers/Blog.controller.ts | 137 + src/app/http/controllers/Home.controller.ts | 1 + src/app/http/routes/app.routes.ts | 40 +- .../assets/favicon/android-chrome-192x192.png | Bin 5026 -> 29926 bytes .../assets/favicon/android-chrome-512x512.png | Bin 21304 -> 144295 bytes .../assets/favicon/apple-touch-icon.png | Bin 4563 -> 27459 bytes .../assets/favicon/favicon-16x16.png | Bin 327 -> 562 bytes .../assets/favicon/favicon-32x32.png | Bin 628 -> 1231 bytes src/app/resources/assets/favicon/favicon.ico | Bin 15406 -> 15406 bytes .../resources/assets/favicon/site.webmanifest | 2 +- src/app/resources/assets/highlight/DIGESTS.md | 412 +++ src/app/resources/assets/highlight/LICENSE | 29 + src/app/resources/assets/highlight/README.md | 45 + src/app/resources/assets/highlight/es/core.js | 2569 ++++++++++++++++ .../resources/assets/highlight/es/core.min.js | 306 ++ .../assets/highlight/es/highlight.js | 2569 ++++++++++++++++ .../assets/highlight/es/languages/1c.min.js | 24 + .../assets/highlight/es/languages/abnf.min.js | 12 + .../highlight/es/languages/accesslog.min.js | 13 + .../es/languages/actionscript.min.js | 17 + .../assets/highlight/es/languages/ada.min.js | 26 + .../highlight/es/languages/angelscript.min.js | 21 + .../highlight/es/languages/apache.min.js | 14 + .../highlight/es/languages/applescript.min.js | 18 + .../highlight/es/languages/arcade.min.js | 28 + .../highlight/es/languages/arduino.min.js | 54 + .../highlight/es/languages/armasm.min.js | 17 + .../highlight/es/languages/asciidoc.min.js | 35 + .../highlight/es/languages/aspectj.min.js | 30 + .../highlight/es/languages/autohotkey.min.js | 13 + .../highlight/es/languages/autoit.min.js | 21 + .../highlight/es/languages/avrasm.min.js | 12 + .../assets/highlight/es/languages/awk.min.js | 11 + .../highlight/es/languages/axapta.min.js | 10 + .../assets/highlight/es/languages/bash.min.js | 20 + .../highlight/es/languages/basic.min.js | 9 + .../assets/highlight/es/languages/bnf.min.js | 6 + .../highlight/es/languages/brainfuck.min.js | 8 + .../assets/highlight/es/languages/c.min.js | 41 + .../assets/highlight/es/languages/cal.min.js | 15 + .../highlight/es/languages/capnproto.min.js | 11 + .../highlight/es/languages/ceylon.min.js | 15 + .../highlight/es/languages/clean.min.js | 8 + .../es/languages/clojure-repl.min.js | 4 + .../highlight/es/languages/clojure.min.js | 25 + .../highlight/es/languages/cmake.min.js | 7 + .../es/languages/coffeescript.min.js | 28 + .../assets/highlight/es/languages/coq.min.js | 7 + .../assets/highlight/es/languages/cos.min.js | 15 + .../assets/highlight/es/languages/cpp.min.js | 46 + .../highlight/es/languages/crmsh.min.js | 19 + .../highlight/es/languages/crystal.min.js | 48 + .../highlight/es/languages/csharp.min.js | 47 + .../assets/highlight/es/languages/csp.min.js | 6 + .../assets/highlight/es/languages/css.min.js | 31 + .../assets/highlight/es/languages/d.min.js | 20 + .../assets/highlight/es/languages/dart.min.js | 22 + .../highlight/es/languages/delphi.min.js | 17 + .../assets/highlight/es/languages/diff.min.js | 9 + .../highlight/es/languages/django.min.js | 13 + .../assets/highlight/es/languages/dns.min.js | 11 + .../highlight/es/languages/dockerfile.min.js | 8 + .../assets/highlight/es/languages/dos.min.js | 13 + .../highlight/es/languages/dsconfig.min.js | 9 + .../assets/highlight/es/languages/dts.min.js | 22 + .../assets/highlight/es/languages/dust.min.js | 8 + .../assets/highlight/es/languages/ebnf.min.js | 7 + .../highlight/es/languages/elixir.min.js | 34 + .../assets/highlight/es/languages/elm.min.js | 18 + .../assets/highlight/es/languages/erb.min.js | 5 + .../highlight/es/languages/erlang-repl.min.js | 13 + .../highlight/es/languages/erlang.min.js | 27 + .../highlight/es/languages/excel.min.js | 10 + .../assets/highlight/es/languages/fix.min.js | 7 + .../assets/highlight/es/languages/flix.min.js | 10 + .../highlight/es/languages/fortran.min.js | 16 + .../highlight/es/languages/fsharp.min.js | 47 + .../assets/highlight/es/languages/gams.min.js | 28 + .../highlight/es/languages/gauss.min.js | 36 + .../highlight/es/languages/gcode.min.js | 17 + .../highlight/es/languages/gherkin.min.js | 9 + .../assets/highlight/es/languages/glsl.min.js | 8 + .../assets/highlight/es/languages/gml.min.js | 11 + .../assets/highlight/es/languages/go.min.js | 14 + .../assets/highlight/es/languages/golo.min.js | 6 + .../highlight/es/languages/gradle.min.js | 6 + .../highlight/es/languages/graphql.min.js | 12 + .../highlight/es/languages/groovy.min.js | 21 + .../assets/highlight/es/languages/haml.min.js | 18 + .../highlight/es/languages/handlebars.min.js | 29 + .../highlight/es/languages/haskell.min.js | 29 + .../assets/highlight/es/languages/haxe.min.js | 27 + .../assets/highlight/es/languages/hsp.min.js | 14 + .../assets/highlight/es/languages/http.min.js | 14 + .../assets/highlight/es/languages/hy.min.js | 15 + .../highlight/es/languages/inform7.min.js | 10 + .../assets/highlight/es/languages/ini.min.js | 16 + .../highlight/es/languages/irpf90.min.js | 15 + .../assets/highlight/es/languages/isbl.min.js | 25 + .../assets/highlight/es/languages/java.min.js | 38 + .../highlight/es/languages/javascript.min.js | 78 + .../highlight/es/languages/jboss-cli.min.js | 10 + .../assets/highlight/es/languages/json.min.js | 8 + .../highlight/es/languages/julia-repl.min.js | 4 + .../highlight/es/languages/julia.min.js | 18 + .../highlight/es/languages/kotlin.min.js | 46 + .../highlight/es/languages/lasso.min.js | 29 + .../highlight/es/languages/latex.min.js | 34 + .../assets/highlight/es/languages/ldif.min.js | 5 + .../assets/highlight/es/languages/leaf.min.js | 8 + .../assets/highlight/es/languages/less.min.js | 44 + .../assets/highlight/es/languages/lisp.min.js | 16 + .../es/languages/livecodeserver.min.js | 21 + .../highlight/es/languages/livescript.min.js | 35 + .../assets/highlight/es/languages/llvm.min.js | 15 + .../assets/highlight/es/languages/lsl.min.js | 19 + .../assets/highlight/es/languages/lua.min.js | 14 + .../highlight/es/languages/makefile.min.js | 14 + .../highlight/es/languages/markdown.min.js | 31 + .../highlight/es/languages/mathematica.min.js | 21 + .../highlight/es/languages/matlab.min.js | 15 + .../highlight/es/languages/maxima.min.js | 12 + .../assets/highlight/es/languages/mel.min.js | 8 + .../highlight/es/languages/mercury.min.js | 16 + .../highlight/es/languages/mipsasm.min.js | 15 + .../highlight/es/languages/mizar.min.js | 4 + .../highlight/es/languages/mojolicious.min.js | 6 + .../highlight/es/languages/monkey.min.js | 17 + .../highlight/es/languages/moonscript.min.js | 23 + .../assets/highlight/es/languages/n1ql.min.js | 13 + .../highlight/es/languages/nestedtext.min.js | 9 + .../highlight/es/languages/nginx.min.js | 21 + .../assets/highlight/es/languages/nim.min.js | 15 + .../assets/highlight/es/languages/nix.min.js | 12 + .../highlight/es/languages/node-repl.min.js | 5 + .../assets/highlight/es/languages/nsis.min.js | 23 + .../highlight/es/languages/objectivec.min.js | 23 + .../highlight/es/languages/ocaml.min.js | 14 + .../highlight/es/languages/openscad.min.js | 15 + .../highlight/es/languages/oxygene.min.js | 13 + .../highlight/es/languages/parser3.min.js | 10 + .../assets/highlight/es/languages/perl.min.js | 36 + .../assets/highlight/es/languages/pf.min.js | 9 + .../highlight/es/languages/pgsql.min.js | 69 + .../es/languages/php-template.min.js | 8 + .../assets/highlight/es/languages/php.min.js | 56 + .../highlight/es/languages/plaintext.min.js | 3 + .../assets/highlight/es/languages/pony.min.js | 12 + .../highlight/es/languages/powershell.min.js | 40 + .../highlight/es/languages/processing.min.js | 18 + .../highlight/es/languages/profile.min.js | 9 + .../highlight/es/languages/prolog.min.js | 11 + .../highlight/es/languages/properties.min.js | 11 + .../highlight/es/languages/protobuf.min.js | 11 + .../highlight/es/languages/puppet.min.js | 18 + .../highlight/es/languages/purebasic.min.js | 11 + .../highlight/es/languages/python-repl.min.js | 5 + .../highlight/es/languages/python.min.js | 41 + .../assets/highlight/es/languages/q.min.js | 8 + .../assets/highlight/es/languages/qml.min.js | 29 + .../assets/highlight/es/languages/r.min.js | 26 + .../highlight/es/languages/reasonml.min.js | 43 + .../assets/highlight/es/languages/rib.min.js | 6 + .../highlight/es/languages/roboconf.min.js | 13 + .../highlight/es/languages/routeros.min.js | 22 + .../assets/highlight/es/languages/rsl.min.js | 11 + .../assets/highlight/es/languages/ruby.min.js | 54 + .../es/languages/ruleslanguage.min.js | 9 + .../assets/highlight/es/languages/rust.min.js | 28 + .../assets/highlight/es/languages/sas.min.js | 17 + .../highlight/es/languages/scala.min.js | 25 + .../highlight/es/languages/scheme.min.js | 19 + .../highlight/es/languages/scilab.min.js | 13 + .../assets/highlight/es/languages/scss.min.js | 33 + .../highlight/es/languages/shell.min.js | 5 + .../highlight/es/languages/smali.min.js | 13 + .../highlight/es/languages/smalltalk.min.js | 11 + .../assets/highlight/es/languages/sml.min.js | 14 + .../assets/highlight/es/languages/sqf.min.js | 17 + .../assets/highlight/es/languages/sql.min.js | 17 + .../assets/highlight/es/languages/stan.min.js | 28 + .../highlight/es/languages/stata.min.js | 11 + .../highlight/es/languages/step21.min.js | 10 + .../highlight/es/languages/stylus.min.js | 36 + .../highlight/es/languages/subunit.min.js | 10 + .../highlight/es/languages/swift.min.js | 60 + .../es/languages/taggerscript.min.js | 7 + .../assets/highlight/es/languages/tap.min.js | 7 + .../assets/highlight/es/languages/tcl.min.js | 15 + .../highlight/es/languages/thrift.min.js | 12 + .../assets/highlight/es/languages/tp.min.js | 19 + .../assets/highlight/es/languages/twig.min.js | 18 + .../highlight/es/languages/typescript.min.js | 93 + .../assets/highlight/es/languages/vala.min.js | 9 + .../highlight/es/languages/vbnet.min.js | 25 + .../es/languages/vbscript-html.min.js | 4 + .../highlight/es/languages/vbscript.min.js | 10 + .../highlight/es/languages/verilog.min.js | 17 + .../assets/highlight/es/languages/vhdl.min.js | 14 + .../assets/highlight/es/languages/vim.min.js | 12 + .../assets/highlight/es/languages/wasm.min.js | 15 + .../assets/highlight/es/languages/wren.min.js | 30 + .../highlight/es/languages/x86asm.min.js | 18 + .../assets/highlight/es/languages/xl.min.js | 15 + .../assets/highlight/es/languages/xml.min.js | 29 + .../highlight/es/languages/xquery.min.js | 33 + .../assets/highlight/es/languages/yaml.min.js | 25 + .../highlight/es/languages/zephir.min.js | 18 + .../assets/highlight/es/package.json | 1 + .../resources/assets/highlight/highlight.js | 2575 +++++++++++++++++ .../assets/highlight/highlight.min.js | 1718 +++++++++++ .../assets/highlight/languages/1c.min.js | 24 + .../assets/highlight/languages/abnf.min.js | 11 + .../highlight/languages/accesslog.min.js | 13 + .../highlight/languages/actionscript.min.js | 17 + .../assets/highlight/languages/ada.min.js | 26 + .../highlight/languages/angelscript.min.js | 21 + .../assets/highlight/languages/apache.min.js | 14 + .../highlight/languages/applescript.min.js | 19 + .../assets/highlight/languages/arcade.min.js | 27 + .../assets/highlight/languages/arduino.min.js | 54 + .../assets/highlight/languages/armasm.min.js | 17 + .../highlight/languages/asciidoc.min.js | 35 + .../assets/highlight/languages/aspectj.min.js | 31 + .../highlight/languages/autohotkey.min.js | 14 + .../assets/highlight/languages/autoit.min.js | 21 + .../assets/highlight/languages/avrasm.min.js | 12 + .../assets/highlight/languages/awk.min.js | 11 + .../assets/highlight/languages/axapta.min.js | 11 + .../assets/highlight/languages/bash.min.js | 20 + .../assets/highlight/languages/basic.min.js | 10 + .../assets/highlight/languages/bnf.min.js | 6 + .../highlight/languages/brainfuck.min.js | 8 + .../assets/highlight/languages/c.min.js | 41 + .../assets/highlight/languages/cal.min.js | 15 + .../highlight/languages/capnproto.min.js | 11 + .../assets/highlight/languages/ceylon.min.js | 15 + .../assets/highlight/languages/clean.min.js | 8 + .../highlight/languages/clojure-repl.min.js | 4 + .../assets/highlight/languages/clojure.min.js | 25 + .../assets/highlight/languages/cmake.min.js | 7 + .../highlight/languages/coffeescript.min.js | 29 + .../assets/highlight/languages/coq.min.js | 7 + .../assets/highlight/languages/cos.min.js | 15 + .../assets/highlight/languages/cpp.min.js | 47 + .../assets/highlight/languages/crmsh.min.js | 19 + .../assets/highlight/languages/crystal.min.js | 48 + .../assets/highlight/languages/csharp.min.js | 47 + .../assets/highlight/languages/csp.min.js | 7 + .../assets/highlight/languages/css.min.js | 31 + .../assets/highlight/languages/d.min.js | 20 + .../assets/highlight/languages/dart.min.js | 22 + .../assets/highlight/languages/delphi.min.js | 17 + .../assets/highlight/languages/diff.min.js | 9 + .../assets/highlight/languages/django.min.js | 13 + .../assets/highlight/languages/dns.min.js | 11 + .../highlight/languages/dockerfile.min.js | 8 + .../assets/highlight/languages/dos.min.js | 12 + .../highlight/languages/dsconfig.min.js | 9 + .../assets/highlight/languages/dts.min.js | 22 + .../assets/highlight/languages/dust.min.js | 8 + .../assets/highlight/languages/ebnf.min.js | 7 + .../assets/highlight/languages/elixir.min.js | 34 + .../assets/highlight/languages/elm.min.js | 18 + .../assets/highlight/languages/erb.min.js | 5 + .../highlight/languages/erlang-repl.min.js | 13 + .../assets/highlight/languages/erlang.min.js | 27 + .../assets/highlight/languages/excel.min.js | 10 + .../assets/highlight/languages/fix.min.js | 7 + .../assets/highlight/languages/flix.min.js | 10 + .../assets/highlight/languages/fortran.min.js | 16 + .../assets/highlight/languages/fsharp.min.js | 47 + .../assets/highlight/languages/gams.min.js | 28 + .../assets/highlight/languages/gauss.min.js | 36 + .../assets/highlight/languages/gcode.min.js | 16 + .../assets/highlight/languages/gherkin.min.js | 8 + .../assets/highlight/languages/glsl.min.js | 8 + .../assets/highlight/languages/gml.min.js | 11 + .../assets/highlight/languages/go.min.js | 14 + .../assets/highlight/languages/golo.min.js | 6 + .../assets/highlight/languages/gradle.min.js | 5 + .../assets/highlight/languages/graphql.min.js | 12 + .../assets/highlight/languages/groovy.min.js | 21 + .../assets/highlight/languages/haml.min.js | 18 + .../highlight/languages/handlebars.min.js | 29 + .../assets/highlight/languages/haskell.min.js | 29 + .../assets/highlight/languages/haxe.min.js | 26 + .../assets/highlight/languages/hsp.min.js | 14 + .../assets/highlight/languages/http.min.js | 14 + .../assets/highlight/languages/hy.min.js | 16 + .../assets/highlight/languages/inform7.min.js | 11 + .../assets/highlight/languages/ini.min.js | 15 + .../assets/highlight/languages/irpf90.min.js | 15 + .../assets/highlight/languages/isbl.min.js | 25 + .../assets/highlight/languages/java.min.js | 38 + .../highlight/languages/javascript.min.js | 78 + .../highlight/languages/jboss-cli.min.js | 10 + .../assets/highlight/languages/json.min.js | 7 + .../highlight/languages/julia-repl.min.js | 5 + .../assets/highlight/languages/julia.min.js | 18 + .../assets/highlight/languages/kotlin.min.js | 46 + .../assets/highlight/languages/lasso.min.js | 29 + .../assets/highlight/languages/latex.min.js | 33 + .../assets/highlight/languages/ldif.min.js | 5 + .../assets/highlight/languages/leaf.min.js | 8 + .../assets/highlight/languages/less.min.js | 44 + .../assets/highlight/languages/lisp.min.js | 17 + .../highlight/languages/livecodeserver.min.js | 21 + .../highlight/languages/livescript.min.js | 35 + .../assets/highlight/languages/llvm.min.js | 15 + .../assets/highlight/languages/lsl.min.js | 19 + .../assets/highlight/languages/lua.min.js | 15 + .../highlight/languages/makefile.min.js | 14 + .../highlight/languages/markdown.min.js | 31 + .../highlight/languages/mathematica.min.js | 21 + .../assets/highlight/languages/matlab.min.js | 15 + .../assets/highlight/languages/maxima.min.js | 12 + .../assets/highlight/languages/mel.min.js | 8 + .../assets/highlight/languages/mercury.min.js | 16 + .../assets/highlight/languages/mipsasm.min.js | 15 + .../assets/highlight/languages/mizar.min.js | 4 + .../highlight/languages/mojolicious.min.js | 6 + .../assets/highlight/languages/monkey.min.js | 17 + .../highlight/languages/moonscript.min.js | 23 + .../assets/highlight/languages/n1ql.min.js | 13 + .../highlight/languages/nestedtext.min.js | 9 + .../assets/highlight/languages/nginx.min.js | 21 + .../assets/highlight/languages/nim.min.js | 15 + .../assets/highlight/languages/nix.min.js | 13 + .../highlight/languages/node-repl.min.js | 5 + .../assets/highlight/languages/nsis.min.js | 23 + .../highlight/languages/objectivec.min.js | 23 + .../assets/highlight/languages/ocaml.min.js | 14 + .../highlight/languages/openscad.min.js | 15 + .../assets/highlight/languages/oxygene.min.js | 13 + .../assets/highlight/languages/parser3.min.js | 10 + .../assets/highlight/languages/perl.min.js | 36 + .../assets/highlight/languages/pf.min.js | 10 + .../assets/highlight/languages/pgsql.min.js | 69 + .../highlight/languages/php-template.min.js | 8 + .../assets/highlight/languages/php.min.js | 56 + .../highlight/languages/plaintext.min.js | 4 + .../assets/highlight/languages/pony.min.js | 12 + .../highlight/languages/powershell.min.js | 39 + .../highlight/languages/processing.min.js | 18 + .../assets/highlight/languages/profile.min.js | 9 + .../assets/highlight/languages/prolog.min.js | 11 + .../highlight/languages/properties.min.js | 11 + .../highlight/languages/protobuf.min.js | 11 + .../assets/highlight/languages/puppet.min.js | 18 + .../highlight/languages/purebasic.min.js | 11 + .../highlight/languages/python-repl.min.js | 5 + .../assets/highlight/languages/python.min.js | 41 + .../assets/highlight/languages/q.min.js | 8 + .../assets/highlight/languages/qml.min.js | 29 + .../assets/highlight/languages/r.min.js | 26 + .../highlight/languages/reasonml.min.js | 43 + .../assets/highlight/languages/rib.min.js | 6 + .../highlight/languages/roboconf.min.js | 12 + .../highlight/languages/routeros.min.js | 22 + .../assets/highlight/languages/rsl.min.js | 11 + .../assets/highlight/languages/ruby.min.js | 54 + .../highlight/languages/ruleslanguage.min.js | 9 + .../assets/highlight/languages/rust.min.js | 28 + .../assets/highlight/languages/sas.min.js | 18 + .../assets/highlight/languages/scala.min.js | 25 + .../assets/highlight/languages/scheme.min.js | 20 + .../assets/highlight/languages/scilab.min.js | 13 + .../assets/highlight/languages/scss.min.js | 33 + .../assets/highlight/languages/shell.min.js | 5 + .../assets/highlight/languages/smali.min.js | 13 + .../highlight/languages/smalltalk.min.js | 11 + .../assets/highlight/languages/sml.min.js | 14 + .../assets/highlight/languages/sqf.min.js | 17 + .../assets/highlight/languages/sql.min.js | 17 + .../assets/highlight/languages/stan.min.js | 28 + .../assets/highlight/languages/stata.min.js | 11 + .../assets/highlight/languages/step21.min.js | 10 + .../assets/highlight/languages/stylus.min.js | 36 + .../assets/highlight/languages/subunit.min.js | 9 + .../assets/highlight/languages/swift.min.js | 60 + .../highlight/languages/taggerscript.min.js | 8 + .../assets/highlight/languages/tap.min.js | 7 + .../assets/highlight/languages/tcl.min.js | 15 + .../assets/highlight/languages/thrift.min.js | 12 + .../assets/highlight/languages/tp.min.js | 19 + .../assets/highlight/languages/twig.min.js | 18 + .../highlight/languages/typescript.min.js | 94 + .../assets/highlight/languages/vala.min.js | 9 + .../assets/highlight/languages/vbnet.min.js | 25 + .../highlight/languages/vbscript-html.min.js | 4 + .../highlight/languages/vbscript.min.js | 10 + .../assets/highlight/languages/verilog.min.js | 17 + .../assets/highlight/languages/vhdl.min.js | 14 + .../assets/highlight/languages/vim.min.js | 12 + .../assets/highlight/languages/wasm.min.js | 14 + .../assets/highlight/languages/wren.min.js | 30 + .../assets/highlight/languages/x86asm.min.js | 19 + .../assets/highlight/languages/xl.min.js | 15 + .../assets/highlight/languages/xml.min.js | 29 + .../assets/highlight/languages/xquery.min.js | 32 + .../assets/highlight/languages/yaml.min.js | 25 + .../assets/highlight/languages/zephir.min.js | 18 + .../resources/assets/highlight/package.json | 89 + .../assets/highlight/styles/a11y-dark.min.css | 7 + .../highlight/styles/a11y-light.min.css | 7 + .../assets/highlight/styles/agate.min.css | 20 + .../highlight/styles/an-old-hope.min.css | 9 + .../highlight/styles/androidstudio.min.css | 1 + .../highlight/styles/arduino-light.min.css | 1 + .../assets/highlight/styles/arta.min.css | 1 + .../assets/highlight/styles/ascetic.min.css | 1 + .../styles/atom-one-dark-reasonable.min.css | 1 + .../highlight/styles/atom-one-dark.min.css | 1 + .../highlight/styles/atom-one-light.min.css | 1 + .../highlight/styles/base16/3024.min.css | 7 + .../highlight/styles/base16/apathy.min.css | 7 + .../styles/base16/apprentice.min.css | 7 + .../highlight/styles/base16/ashes.min.css | 7 + .../styles/base16/atelier-cave-light.min.css | 7 + .../styles/base16/atelier-cave.min.css | 7 + .../styles/base16/atelier-dune-light.min.css | 7 + .../styles/base16/atelier-dune.min.css | 7 + .../base16/atelier-estuary-light.min.css | 7 + .../styles/base16/atelier-estuary.min.css | 7 + .../base16/atelier-forest-light.min.css | 7 + .../styles/base16/atelier-forest.min.css | 7 + .../styles/base16/atelier-heath-light.min.css | 7 + .../styles/base16/atelier-heath.min.css | 7 + .../base16/atelier-lakeside-light.min.css | 7 + .../styles/base16/atelier-lakeside.min.css | 7 + .../base16/atelier-plateau-light.min.css | 7 + .../styles/base16/atelier-plateau.min.css | 7 + .../base16/atelier-savanna-light.min.css | 7 + .../styles/base16/atelier-savanna.min.css | 7 + .../base16/atelier-seaside-light.min.css | 7 + .../styles/base16/atelier-seaside.min.css | 7 + .../base16/atelier-sulphurpool-light.min.css | 7 + .../styles/base16/atelier-sulphurpool.min.css | 7 + .../highlight/styles/base16/atlas.min.css | 7 + .../highlight/styles/base16/bespin.min.css | 7 + .../styles/base16/black-metal-bathory.min.css | 7 + .../styles/base16/black-metal-burzum.min.css | 7 + .../base16/black-metal-dark-funeral.min.css | 7 + .../base16/black-metal-gorgoroth.min.css | 7 + .../base16/black-metal-immortal.min.css | 7 + .../styles/base16/black-metal-khold.min.css | 7 + .../styles/base16/black-metal-marduk.min.css | 7 + .../styles/base16/black-metal-mayhem.min.css | 7 + .../styles/base16/black-metal-nile.min.css | 7 + .../styles/base16/black-metal-venom.min.css | 7 + .../styles/base16/black-metal.min.css | 7 + .../highlight/styles/base16/brewer.min.css | 7 + .../highlight/styles/base16/bright.min.css | 7 + .../styles/base16/brogrammer.min.css | 7 + .../styles/base16/brush-trees-dark.min.css | 7 + .../styles/base16/brush-trees.min.css | 7 + .../highlight/styles/base16/chalk.min.css | 7 + .../highlight/styles/base16/circus.min.css | 7 + .../styles/base16/classic-dark.min.css | 7 + .../styles/base16/classic-light.min.css | 7 + .../styles/base16/codeschool.min.css | 7 + .../highlight/styles/base16/colors.min.css | 7 + .../highlight/styles/base16/cupcake.min.css | 7 + .../highlight/styles/base16/cupertino.min.css | 7 + .../highlight/styles/base16/danqing.min.css | 7 + .../highlight/styles/base16/darcula.min.css | 7 + .../styles/base16/dark-violet.min.css | 7 + .../highlight/styles/base16/darkmoss.min.css | 7 + .../highlight/styles/base16/darktooth.min.css | 7 + .../highlight/styles/base16/decaf.min.css | 7 + .../styles/base16/default-dark.min.css | 7 + .../styles/base16/default-light.min.css | 7 + .../highlight/styles/base16/dirtysea.min.css | 7 + .../highlight/styles/base16/dracula.min.css | 7 + .../highlight/styles/base16/edge-dark.min.css | 7 + .../styles/base16/edge-light.min.css | 7 + .../highlight/styles/base16/eighties.min.css | 7 + .../highlight/styles/base16/embers.min.css | 7 + .../styles/base16/equilibrium-dark.min.css | 7 + .../base16/equilibrium-gray-dark.min.css | 7 + .../base16/equilibrium-gray-light.min.css | 7 + .../styles/base16/equilibrium-light.min.css | 7 + .../highlight/styles/base16/espresso.min.css | 7 + .../highlight/styles/base16/eva-dim.min.css | 7 + .../highlight/styles/base16/eva.min.css | 7 + .../highlight/styles/base16/flat.min.css | 7 + .../highlight/styles/base16/framer.min.css | 7 + .../styles/base16/fruit-soda.min.css | 7 + .../highlight/styles/base16/gigavolt.min.css | 7 + .../highlight/styles/base16/github.min.css | 7 + .../styles/base16/google-dark.min.css | 7 + .../styles/base16/google-light.min.css | 7 + .../styles/base16/grayscale-dark.min.css | 7 + .../styles/base16/grayscale-light.min.css | 7 + .../styles/base16/green-screen.min.css | 7 + .../styles/base16/gruvbox-dark-hard.min.css | 7 + .../styles/base16/gruvbox-dark-medium.min.css | 7 + .../styles/base16/gruvbox-dark-pale.min.css | 7 + .../styles/base16/gruvbox-dark-soft.min.css | 7 + .../styles/base16/gruvbox-light-hard.min.css | 7 + .../base16/gruvbox-light-medium.min.css | 7 + .../styles/base16/gruvbox-light-soft.min.css | 7 + .../highlight/styles/base16/hardcore.min.css | 7 + .../styles/base16/harmonic16-dark.min.css | 7 + .../styles/base16/harmonic16-light.min.css | 7 + .../styles/base16/heetch-dark.min.css | 7 + .../styles/base16/heetch-light.min.css | 7 + .../highlight/styles/base16/helios.min.css | 7 + .../highlight/styles/base16/hopscotch.min.css | 7 + .../styles/base16/horizon-dark.min.css | 7 + .../styles/base16/horizon-light.min.css | 7 + .../styles/base16/humanoid-dark.min.css | 7 + .../styles/base16/humanoid-light.min.css | 7 + .../highlight/styles/base16/ia-dark.min.css | 7 + .../highlight/styles/base16/ia-light.min.css | 7 + .../highlight/styles/base16/icy-dark.min.css | 7 + .../highlight/styles/base16/ir-black.min.css | 7 + .../highlight/styles/base16/isotope.min.css | 7 + .../highlight/styles/base16/kimber.min.css | 7 + .../styles/base16/london-tube.min.css | 7 + .../highlight/styles/base16/macintosh.min.css | 7 + .../highlight/styles/base16/marrakesh.min.css | 7 + .../highlight/styles/base16/materia.min.css | 7 + .../styles/base16/material-darker.min.css | 7 + .../styles/base16/material-lighter.min.css | 7 + .../styles/base16/material-palenight.min.css | 7 + .../styles/base16/material-vivid.min.css | 7 + .../highlight/styles/base16/material.min.css | 7 + .../styles/base16/mellow-purple.min.css | 7 + .../styles/base16/mexico-light.min.css | 7 + .../highlight/styles/base16/mocha.min.css | 7 + .../highlight/styles/base16/monokai.min.css | 7 + .../highlight/styles/base16/nebula.min.css | 7 + .../highlight/styles/base16/nord.min.css | 7 + .../highlight/styles/base16/nova.min.css | 7 + .../highlight/styles/base16/ocean.min.css | 7 + .../styles/base16/oceanicnext.min.css | 7 + .../highlight/styles/base16/one-light.min.css | 7 + .../highlight/styles/base16/onedark.min.css | 7 + .../styles/base16/outrun-dark.min.css | 7 + .../styles/base16/papercolor-dark.min.css | 7 + .../styles/base16/papercolor-light.min.css | 7 + .../highlight/styles/base16/paraiso.min.css | 7 + .../highlight/styles/base16/pasque.min.css | 7 + .../highlight/styles/base16/phd.min.css | 7 + .../highlight/styles/base16/pico.min.css | 7 + .../highlight/styles/base16/pop.min.css | 7 + .../highlight/styles/base16/porple.min.css | 7 + .../highlight/styles/base16/qualia.min.css | 7 + .../styles/base16/railscasts.min.css | 7 + .../highlight/styles/base16/rebecca.min.css | 7 + .../styles/base16/ros-pine-dawn.min.css | 7 + .../styles/base16/ros-pine-moon.min.css | 7 + .../highlight/styles/base16/ros-pine.min.css | 7 + .../highlight/styles/base16/sagelight.min.css | 7 + .../styles/base16/sandcastle.min.css | 7 + .../highlight/styles/base16/seti-ui.min.css | 7 + .../styles/base16/shapeshifter.min.css | 7 + .../highlight/styles/base16/silk-dark.min.css | 7 + .../styles/base16/silk-light.min.css | 7 + .../highlight/styles/base16/snazzy.min.css | 7 + .../styles/base16/solar-flare-light.min.css | 7 + .../styles/base16/solar-flare.min.css | 7 + .../styles/base16/solarized-dark.min.css | 7 + .../styles/base16/solarized-light.min.css | 7 + .../highlight/styles/base16/spacemacs.min.css | 7 + .../styles/base16/summercamp.min.css | 7 + .../styles/base16/summerfruit-dark.min.css | 7 + .../styles/base16/summerfruit-light.min.css | 7 + .../synth-midnight-terminal-dark.min.css | 7 + .../synth-midnight-terminal-light.min.css | 7 + .../highlight/styles/base16/tango.min.css | 7 + .../highlight/styles/base16/tender.min.css | 7 + .../styles/base16/tomorrow-night.min.css | 7 + .../highlight/styles/base16/tomorrow.min.css | 7 + .../highlight/styles/base16/twilight.min.css | 7 + .../styles/base16/unikitty-dark.min.css | 7 + .../styles/base16/unikitty-light.min.css | 7 + .../highlight/styles/base16/vulcan.min.css | 7 + .../styles/base16/windows-10-light.min.css | 7 + .../styles/base16/windows-10.min.css | 7 + .../styles/base16/windows-95-light.min.css | 7 + .../styles/base16/windows-95.min.css | 7 + .../windows-high-contrast-light.min.css | 7 + .../base16/windows-high-contrast.min.css | 7 + .../styles/base16/windows-nt-light.min.css | 7 + .../styles/base16/windows-nt.min.css | 7 + .../highlight/styles/base16/woodland.min.css | 7 + .../styles/base16/xcode-dusk.min.css | 7 + .../highlight/styles/base16/zenburn.min.css | 7 + .../highlight/styles/brown-paper.min.css | 1 + .../assets/highlight/styles/brown-papersq.png | Bin 0 -> 18198 bytes .../highlight/styles/codepen-embed.min.css | 1 + .../highlight/styles/color-brewer.min.css | 1 + .../assets/highlight/styles/dark.min.css | 1 + .../assets/highlight/styles/default.min.css | 9 + .../assets/highlight/styles/devibeans.min.css | 7 + .../assets/highlight/styles/docco.min.css | 1 + .../assets/highlight/styles/far.min.css | 1 + .../assets/highlight/styles/felipec.min.css | 7 + .../highlight/styles/foundation.min.css | 1 + .../styles/github-dark-dimmed.min.css | 9 + .../highlight/styles/github-dark.min.css | 10 + .../assets/highlight/styles/github.min.css | 10 + .../assets/highlight/styles/gml.min.css | 1 + .../highlight/styles/googlecode.min.css | 1 + .../highlight/styles/gradient-dark.min.css | 1 + .../highlight/styles/gradient-light.min.css | 1 + .../assets/highlight/styles/grayscale.min.css | 1 + .../assets/highlight/styles/hybrid.min.css | 1 + .../assets/highlight/styles/idea.min.css | 1 + .../highlight/styles/intellij-light.min.css | 1 + .../assets/highlight/styles/ir-black.min.css | 1 + .../highlight/styles/isbl-editor-dark.min.css | 1 + .../styles/isbl-editor-light.min.css | 1 + .../highlight/styles/kimbie-dark.min.css | 1 + .../highlight/styles/kimbie-light.min.css | 1 + .../assets/highlight/styles/lightfair.min.css | 1 + .../assets/highlight/styles/lioshi.min.css | 1 + .../assets/highlight/styles/magula.min.css | 1 + .../assets/highlight/styles/mono-blue.min.css | 1 + .../highlight/styles/monokai-sublime.min.css | 1 + .../assets/highlight/styles/monokai.min.css | 1 + .../assets/highlight/styles/night-owl.min.css | 1 + .../assets/highlight/styles/nnfx-dark.min.css | 10 + .../highlight/styles/nnfx-light.min.css | 10 + .../assets/highlight/styles/nord.min.css | 1 + .../assets/highlight/styles/obsidian.min.css | 1 + .../styles/panda-syntax-dark.min.css | 1 + .../styles/panda-syntax-light.min.css | 1 + .../highlight/styles/paraiso-dark.min.css | 1 + .../highlight/styles/paraiso-light.min.css | 1 + .../assets/highlight/styles/pojoaque.jpg | Bin 0 -> 1186 bytes .../assets/highlight/styles/pojoaque.min.css | 1 + .../assets/highlight/styles/purebasic.min.css | 1 + .../highlight/styles/qtcreator-dark.min.css | 1 + .../highlight/styles/qtcreator-light.min.css | 1 + .../assets/highlight/styles/rainbow.min.css | 1 + .../assets/highlight/styles/routeros.min.css | 1 + .../highlight/styles/school-book.min.css | 1 + .../highlight/styles/shades-of-purple.min.css | 1 + .../assets/highlight/styles/srcery.min.css | 1 + .../styles/stackoverflow-dark.min.css | 13 + .../styles/stackoverflow-light.min.css | 13 + .../assets/highlight/styles/sunburst.min.css | 1 + .../highlight/styles/tokyo-night-dark.min.css | 8 + .../styles/tokyo-night-light.min.css | 8 + .../styles/tomorrow-night-blue.min.css | 1 + .../styles/tomorrow-night-bright.min.css | 1 + .../assets/highlight/styles/vs.min.css | 1 + .../assets/highlight/styles/vs2015.min.css | 1 + .../assets/highlight/styles/xcode.min.css | 1 + .../assets/highlight/styles/xt256.min.css | 1 + src/app/resources/assets/img/180x180.png | Bin 0 -> 31245 bytes src/app/resources/assets/img/180x180.png~ | Bin 0 -> 28999 bytes src/app/resources/assets/img/192x192.png | Bin 0 -> 34212 bytes src/app/resources/assets/img/192x192.png~ | Bin 0 -> 32125 bytes src/app/resources/assets/main-70s.css | 134 + src/app/resources/assets/rss_opml.xml | 84 + .../resources/blog-posts/A-New-Platform.md | 67 + .../blog-posts/A-New-Platform/medium_1.png | Bin 0 -> 22643 bytes .../A-Noob-s-Guide-to-Gluster-on-ZFS.md | 193 ++ .../Building-a-Raspberry-Pi-Cluster-Part-I.md | 441 +++ ...Building-a-Raspberry-Pi-Cluster-Part-II.md | 240 ++ ...uilding-a-Raspberry-Pi-Cluster-Part-III.md | 307 ++ ...ode-Freedom-with-Gitea-and-Drone-Part-I.md | 302 ++ .../Converting-Ionic-Angular-Site-into-PWA.md | 299 ++ ...ting-the-Ultimate-Free-Personal-Website.md | 119 + ...-Less-Than-100-Lines-of-Pure-JavaScript.md | 272 ++ ...ing-an-App-With-Flitter-Getting-Started.md | 261 ++ .../Flitter-Framework-Cohesive-Express-js.md | 44 + .../Generalized-Commutative-Data-Types.md | 287 ++ ...-Virtualized-pfSense-on-VMware-ESXi-6-x.md | 140 + .../How-to-Code-From-Home-Like-a-Boss.md | 164 ++ .../Importing-OpenVPN-Profile-on-Fedora-36.md | 68 + .../Installing-Kali-Linux-from-USB.md | 171 ++ .../kali_1.jpeg | Bin 0 -> 2120561 bytes .../Installing-Kali-Linux-from-USB/kali_2.png | Bin 0 -> 11245 bytes .../Installing-Kali-Linux-from-USB/kali_3.png | Bin 0 -> 27083 bytes .../Installing-Kali-Linux-from-USB/kali_4.png | Bin 0 -> 44312 bytes .../Installing-Kali-Linux-from-USB/kali_5.png | Bin 0 -> 25385 bytes .../Installing-Kali-Linux-from-USB/kali_7.png | Bin 0 -> 39988 bytes .../Installing-Kali-Linux-from-USB/kali_8.png | Bin 0 -> 132833 bytes .../Installing-Kali-Linux-from-USB/kali_9.png | Bin 0 -> 32037 bytes .../OneDrive-Sync-for-Linux-Ubuntu.md | 88 + .../Photo-Challenge-01-Self-Portrait.md | 24 + ...her-K3s-Kubernetes-on-Proxmox-Container.md | 216 ++ ...king-Dependency-Injection-in-TypeScript.md | 395 +++ ...a-Validation-from-TypeScript-Interfaces.md | 226 ++ .../Spacewalk-for-Linux-Management-Part-I.md | 94 + .../Spacewalk-for-Linux-Management-Part-II.md | 98 + ...Spacewalk-for-Linux-Management-Part-III.md | 107 + ...-Guide-to-Cleaning-Dell-XPS-15-Keyboard.md | 79 + src/app/resources/views/blog/404.pug | 7 + src/app/resources/views/blog/archive.pug | 12 + src/app/resources/views/blog/feeds.pug | 38 + src/app/resources/views/blog/index.pug | 12 + src/app/resources/views/blog/post.pug | 42 + src/app/resources/views/blog/tag.pug | 10 + src/app/resources/views/blog/tags.pug | 9 + src/app/resources/views/blog/template.pug | 34 + src/app/services/Blog.service.ts | 199 ++ 706 files changed, 24765 insertions(+), 5 deletions(-) create mode 100644 src/app/http/controllers/Blog.controller.ts create mode 100644 src/app/resources/assets/highlight/DIGESTS.md create mode 100644 src/app/resources/assets/highlight/LICENSE create mode 100644 src/app/resources/assets/highlight/README.md create mode 100644 src/app/resources/assets/highlight/es/core.js create mode 100644 src/app/resources/assets/highlight/es/core.min.js create mode 100644 src/app/resources/assets/highlight/es/highlight.js create mode 100644 src/app/resources/assets/highlight/es/languages/1c.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/abnf.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/accesslog.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/actionscript.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/ada.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/angelscript.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/apache.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/applescript.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/arcade.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/arduino.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/armasm.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/asciidoc.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/aspectj.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/autohotkey.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/autoit.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/avrasm.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/awk.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/axapta.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/bash.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/basic.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/bnf.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/brainfuck.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/c.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/cal.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/capnproto.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/ceylon.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/clean.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/clojure-repl.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/clojure.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/cmake.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/coffeescript.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/coq.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/cos.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/cpp.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/crmsh.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/crystal.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/csharp.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/csp.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/css.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/d.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/dart.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/delphi.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/diff.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/django.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/dns.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/dockerfile.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/dos.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/dsconfig.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/dts.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/dust.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/ebnf.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/elixir.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/elm.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/erb.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/erlang-repl.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/erlang.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/excel.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/fix.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/flix.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/fortran.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/fsharp.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/gams.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/gauss.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/gcode.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/gherkin.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/glsl.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/gml.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/go.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/golo.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/gradle.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/graphql.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/groovy.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/haml.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/handlebars.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/haskell.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/haxe.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/hsp.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/http.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/hy.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/inform7.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/ini.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/irpf90.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/isbl.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/java.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/javascript.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/jboss-cli.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/json.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/julia-repl.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/julia.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/kotlin.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/lasso.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/latex.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/ldif.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/leaf.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/less.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/lisp.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/livecodeserver.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/livescript.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/llvm.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/lsl.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/lua.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/makefile.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/markdown.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/mathematica.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/matlab.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/maxima.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/mel.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/mercury.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/mipsasm.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/mizar.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/mojolicious.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/monkey.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/moonscript.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/n1ql.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/nestedtext.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/nginx.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/nim.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/nix.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/node-repl.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/nsis.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/objectivec.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/ocaml.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/openscad.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/oxygene.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/parser3.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/perl.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/pf.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/pgsql.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/php-template.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/php.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/plaintext.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/pony.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/powershell.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/processing.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/profile.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/prolog.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/properties.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/protobuf.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/puppet.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/purebasic.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/python-repl.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/python.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/q.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/qml.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/r.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/reasonml.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/rib.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/roboconf.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/routeros.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/rsl.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/ruby.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/ruleslanguage.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/rust.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/sas.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/scala.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/scheme.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/scilab.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/scss.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/shell.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/smali.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/smalltalk.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/sml.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/sqf.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/sql.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/stan.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/stata.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/step21.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/stylus.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/subunit.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/swift.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/taggerscript.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/tap.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/tcl.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/thrift.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/tp.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/twig.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/typescript.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/vala.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/vbnet.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/vbscript-html.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/vbscript.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/verilog.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/vhdl.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/vim.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/wasm.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/wren.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/x86asm.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/xl.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/xml.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/xquery.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/yaml.min.js create mode 100644 src/app/resources/assets/highlight/es/languages/zephir.min.js create mode 100644 src/app/resources/assets/highlight/es/package.json create mode 100644 src/app/resources/assets/highlight/highlight.js create mode 100644 src/app/resources/assets/highlight/highlight.min.js create mode 100644 src/app/resources/assets/highlight/languages/1c.min.js create mode 100644 src/app/resources/assets/highlight/languages/abnf.min.js create mode 100644 src/app/resources/assets/highlight/languages/accesslog.min.js create mode 100644 src/app/resources/assets/highlight/languages/actionscript.min.js create mode 100644 src/app/resources/assets/highlight/languages/ada.min.js create mode 100644 src/app/resources/assets/highlight/languages/angelscript.min.js create mode 100644 src/app/resources/assets/highlight/languages/apache.min.js create mode 100644 src/app/resources/assets/highlight/languages/applescript.min.js create mode 100644 src/app/resources/assets/highlight/languages/arcade.min.js create mode 100644 src/app/resources/assets/highlight/languages/arduino.min.js create mode 100644 src/app/resources/assets/highlight/languages/armasm.min.js create mode 100644 src/app/resources/assets/highlight/languages/asciidoc.min.js create mode 100644 src/app/resources/assets/highlight/languages/aspectj.min.js create mode 100644 src/app/resources/assets/highlight/languages/autohotkey.min.js create mode 100644 src/app/resources/assets/highlight/languages/autoit.min.js create mode 100644 src/app/resources/assets/highlight/languages/avrasm.min.js create mode 100644 src/app/resources/assets/highlight/languages/awk.min.js create mode 100644 src/app/resources/assets/highlight/languages/axapta.min.js create mode 100644 src/app/resources/assets/highlight/languages/bash.min.js create mode 100644 src/app/resources/assets/highlight/languages/basic.min.js create mode 100644 src/app/resources/assets/highlight/languages/bnf.min.js create mode 100644 src/app/resources/assets/highlight/languages/brainfuck.min.js create mode 100644 src/app/resources/assets/highlight/languages/c.min.js create mode 100644 src/app/resources/assets/highlight/languages/cal.min.js create mode 100644 src/app/resources/assets/highlight/languages/capnproto.min.js create mode 100644 src/app/resources/assets/highlight/languages/ceylon.min.js create mode 100644 src/app/resources/assets/highlight/languages/clean.min.js create mode 100644 src/app/resources/assets/highlight/languages/clojure-repl.min.js create mode 100644 src/app/resources/assets/highlight/languages/clojure.min.js create mode 100644 src/app/resources/assets/highlight/languages/cmake.min.js create mode 100644 src/app/resources/assets/highlight/languages/coffeescript.min.js create mode 100644 src/app/resources/assets/highlight/languages/coq.min.js create mode 100644 src/app/resources/assets/highlight/languages/cos.min.js create mode 100644 src/app/resources/assets/highlight/languages/cpp.min.js create mode 100644 src/app/resources/assets/highlight/languages/crmsh.min.js create mode 100644 src/app/resources/assets/highlight/languages/crystal.min.js create mode 100644 src/app/resources/assets/highlight/languages/csharp.min.js create mode 100644 src/app/resources/assets/highlight/languages/csp.min.js create mode 100644 src/app/resources/assets/highlight/languages/css.min.js create mode 100644 src/app/resources/assets/highlight/languages/d.min.js create mode 100644 src/app/resources/assets/highlight/languages/dart.min.js create mode 100644 src/app/resources/assets/highlight/languages/delphi.min.js create mode 100644 src/app/resources/assets/highlight/languages/diff.min.js create mode 100644 src/app/resources/assets/highlight/languages/django.min.js create mode 100644 src/app/resources/assets/highlight/languages/dns.min.js create mode 100644 src/app/resources/assets/highlight/languages/dockerfile.min.js create mode 100644 src/app/resources/assets/highlight/languages/dos.min.js create mode 100644 src/app/resources/assets/highlight/languages/dsconfig.min.js create mode 100644 src/app/resources/assets/highlight/languages/dts.min.js create mode 100644 src/app/resources/assets/highlight/languages/dust.min.js create mode 100644 src/app/resources/assets/highlight/languages/ebnf.min.js create mode 100644 src/app/resources/assets/highlight/languages/elixir.min.js create mode 100644 src/app/resources/assets/highlight/languages/elm.min.js create mode 100644 src/app/resources/assets/highlight/languages/erb.min.js create mode 100644 src/app/resources/assets/highlight/languages/erlang-repl.min.js create mode 100644 src/app/resources/assets/highlight/languages/erlang.min.js create mode 100644 src/app/resources/assets/highlight/languages/excel.min.js create mode 100644 src/app/resources/assets/highlight/languages/fix.min.js create mode 100644 src/app/resources/assets/highlight/languages/flix.min.js create mode 100644 src/app/resources/assets/highlight/languages/fortran.min.js create mode 100644 src/app/resources/assets/highlight/languages/fsharp.min.js create mode 100644 src/app/resources/assets/highlight/languages/gams.min.js create mode 100644 src/app/resources/assets/highlight/languages/gauss.min.js create mode 100644 src/app/resources/assets/highlight/languages/gcode.min.js create mode 100644 src/app/resources/assets/highlight/languages/gherkin.min.js create mode 100644 src/app/resources/assets/highlight/languages/glsl.min.js create mode 100644 src/app/resources/assets/highlight/languages/gml.min.js create mode 100644 src/app/resources/assets/highlight/languages/go.min.js create mode 100644 src/app/resources/assets/highlight/languages/golo.min.js create mode 100644 src/app/resources/assets/highlight/languages/gradle.min.js create mode 100644 src/app/resources/assets/highlight/languages/graphql.min.js create mode 100644 src/app/resources/assets/highlight/languages/groovy.min.js create mode 100644 src/app/resources/assets/highlight/languages/haml.min.js create mode 100644 src/app/resources/assets/highlight/languages/handlebars.min.js create mode 100644 src/app/resources/assets/highlight/languages/haskell.min.js create mode 100644 src/app/resources/assets/highlight/languages/haxe.min.js create mode 100644 src/app/resources/assets/highlight/languages/hsp.min.js create mode 100644 src/app/resources/assets/highlight/languages/http.min.js create mode 100644 src/app/resources/assets/highlight/languages/hy.min.js create mode 100644 src/app/resources/assets/highlight/languages/inform7.min.js create mode 100644 src/app/resources/assets/highlight/languages/ini.min.js create mode 100644 src/app/resources/assets/highlight/languages/irpf90.min.js create mode 100644 src/app/resources/assets/highlight/languages/isbl.min.js create mode 100644 src/app/resources/assets/highlight/languages/java.min.js create mode 100644 src/app/resources/assets/highlight/languages/javascript.min.js create mode 100644 src/app/resources/assets/highlight/languages/jboss-cli.min.js create mode 100644 src/app/resources/assets/highlight/languages/json.min.js create mode 100644 src/app/resources/assets/highlight/languages/julia-repl.min.js create mode 100644 src/app/resources/assets/highlight/languages/julia.min.js create mode 100644 src/app/resources/assets/highlight/languages/kotlin.min.js create mode 100644 src/app/resources/assets/highlight/languages/lasso.min.js create mode 100644 src/app/resources/assets/highlight/languages/latex.min.js create mode 100644 src/app/resources/assets/highlight/languages/ldif.min.js create mode 100644 src/app/resources/assets/highlight/languages/leaf.min.js create mode 100644 src/app/resources/assets/highlight/languages/less.min.js create mode 100644 src/app/resources/assets/highlight/languages/lisp.min.js create mode 100644 src/app/resources/assets/highlight/languages/livecodeserver.min.js create mode 100644 src/app/resources/assets/highlight/languages/livescript.min.js create mode 100644 src/app/resources/assets/highlight/languages/llvm.min.js create mode 100644 src/app/resources/assets/highlight/languages/lsl.min.js create mode 100644 src/app/resources/assets/highlight/languages/lua.min.js create mode 100644 src/app/resources/assets/highlight/languages/makefile.min.js create mode 100644 src/app/resources/assets/highlight/languages/markdown.min.js create mode 100644 src/app/resources/assets/highlight/languages/mathematica.min.js create mode 100644 src/app/resources/assets/highlight/languages/matlab.min.js create mode 100644 src/app/resources/assets/highlight/languages/maxima.min.js create mode 100644 src/app/resources/assets/highlight/languages/mel.min.js create mode 100644 src/app/resources/assets/highlight/languages/mercury.min.js create mode 100644 src/app/resources/assets/highlight/languages/mipsasm.min.js create mode 100644 src/app/resources/assets/highlight/languages/mizar.min.js create mode 100644 src/app/resources/assets/highlight/languages/mojolicious.min.js create mode 100644 src/app/resources/assets/highlight/languages/monkey.min.js create mode 100644 src/app/resources/assets/highlight/languages/moonscript.min.js create mode 100644 src/app/resources/assets/highlight/languages/n1ql.min.js create mode 100644 src/app/resources/assets/highlight/languages/nestedtext.min.js create mode 100644 src/app/resources/assets/highlight/languages/nginx.min.js create mode 100644 src/app/resources/assets/highlight/languages/nim.min.js create mode 100644 src/app/resources/assets/highlight/languages/nix.min.js create mode 100644 src/app/resources/assets/highlight/languages/node-repl.min.js create mode 100644 src/app/resources/assets/highlight/languages/nsis.min.js create mode 100644 src/app/resources/assets/highlight/languages/objectivec.min.js create mode 100644 src/app/resources/assets/highlight/languages/ocaml.min.js create mode 100644 src/app/resources/assets/highlight/languages/openscad.min.js create mode 100644 src/app/resources/assets/highlight/languages/oxygene.min.js create mode 100644 src/app/resources/assets/highlight/languages/parser3.min.js create mode 100644 src/app/resources/assets/highlight/languages/perl.min.js create mode 100644 src/app/resources/assets/highlight/languages/pf.min.js create mode 100644 src/app/resources/assets/highlight/languages/pgsql.min.js create mode 100644 src/app/resources/assets/highlight/languages/php-template.min.js create mode 100644 src/app/resources/assets/highlight/languages/php.min.js create mode 100644 src/app/resources/assets/highlight/languages/plaintext.min.js create mode 100644 src/app/resources/assets/highlight/languages/pony.min.js create mode 100644 src/app/resources/assets/highlight/languages/powershell.min.js create mode 100644 src/app/resources/assets/highlight/languages/processing.min.js create mode 100644 src/app/resources/assets/highlight/languages/profile.min.js create mode 100644 src/app/resources/assets/highlight/languages/prolog.min.js create mode 100644 src/app/resources/assets/highlight/languages/properties.min.js create mode 100644 src/app/resources/assets/highlight/languages/protobuf.min.js create mode 100644 src/app/resources/assets/highlight/languages/puppet.min.js create mode 100644 src/app/resources/assets/highlight/languages/purebasic.min.js create mode 100644 src/app/resources/assets/highlight/languages/python-repl.min.js create mode 100644 src/app/resources/assets/highlight/languages/python.min.js create mode 100644 src/app/resources/assets/highlight/languages/q.min.js create mode 100644 src/app/resources/assets/highlight/languages/qml.min.js create mode 100644 src/app/resources/assets/highlight/languages/r.min.js create mode 100644 src/app/resources/assets/highlight/languages/reasonml.min.js create mode 100644 src/app/resources/assets/highlight/languages/rib.min.js create mode 100644 src/app/resources/assets/highlight/languages/roboconf.min.js create mode 100644 src/app/resources/assets/highlight/languages/routeros.min.js create mode 100644 src/app/resources/assets/highlight/languages/rsl.min.js create mode 100644 src/app/resources/assets/highlight/languages/ruby.min.js create mode 100644 src/app/resources/assets/highlight/languages/ruleslanguage.min.js create mode 100644 src/app/resources/assets/highlight/languages/rust.min.js create mode 100644 src/app/resources/assets/highlight/languages/sas.min.js create mode 100644 src/app/resources/assets/highlight/languages/scala.min.js create mode 100644 src/app/resources/assets/highlight/languages/scheme.min.js create mode 100644 src/app/resources/assets/highlight/languages/scilab.min.js create mode 100644 src/app/resources/assets/highlight/languages/scss.min.js create mode 100644 src/app/resources/assets/highlight/languages/shell.min.js create mode 100644 src/app/resources/assets/highlight/languages/smali.min.js create mode 100644 src/app/resources/assets/highlight/languages/smalltalk.min.js create mode 100644 src/app/resources/assets/highlight/languages/sml.min.js create mode 100644 src/app/resources/assets/highlight/languages/sqf.min.js create mode 100644 src/app/resources/assets/highlight/languages/sql.min.js create mode 100644 src/app/resources/assets/highlight/languages/stan.min.js create mode 100644 src/app/resources/assets/highlight/languages/stata.min.js create mode 100644 src/app/resources/assets/highlight/languages/step21.min.js create mode 100644 src/app/resources/assets/highlight/languages/stylus.min.js create mode 100644 src/app/resources/assets/highlight/languages/subunit.min.js create mode 100644 src/app/resources/assets/highlight/languages/swift.min.js create mode 100644 src/app/resources/assets/highlight/languages/taggerscript.min.js create mode 100644 src/app/resources/assets/highlight/languages/tap.min.js create mode 100644 src/app/resources/assets/highlight/languages/tcl.min.js create mode 100644 src/app/resources/assets/highlight/languages/thrift.min.js create mode 100644 src/app/resources/assets/highlight/languages/tp.min.js create mode 100644 src/app/resources/assets/highlight/languages/twig.min.js create mode 100644 src/app/resources/assets/highlight/languages/typescript.min.js create mode 100644 src/app/resources/assets/highlight/languages/vala.min.js create mode 100644 src/app/resources/assets/highlight/languages/vbnet.min.js create mode 100644 src/app/resources/assets/highlight/languages/vbscript-html.min.js create mode 100644 src/app/resources/assets/highlight/languages/vbscript.min.js create mode 100644 src/app/resources/assets/highlight/languages/verilog.min.js create mode 100644 src/app/resources/assets/highlight/languages/vhdl.min.js create mode 100644 src/app/resources/assets/highlight/languages/vim.min.js create mode 100644 src/app/resources/assets/highlight/languages/wasm.min.js create mode 100644 src/app/resources/assets/highlight/languages/wren.min.js create mode 100644 src/app/resources/assets/highlight/languages/x86asm.min.js create mode 100644 src/app/resources/assets/highlight/languages/xl.min.js create mode 100644 src/app/resources/assets/highlight/languages/xml.min.js create mode 100644 src/app/resources/assets/highlight/languages/xquery.min.js create mode 100644 src/app/resources/assets/highlight/languages/yaml.min.js create mode 100644 src/app/resources/assets/highlight/languages/zephir.min.js create mode 100644 src/app/resources/assets/highlight/package.json create mode 100644 src/app/resources/assets/highlight/styles/a11y-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/a11y-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/agate.min.css create mode 100644 src/app/resources/assets/highlight/styles/an-old-hope.min.css create mode 100644 src/app/resources/assets/highlight/styles/androidstudio.min.css create mode 100644 src/app/resources/assets/highlight/styles/arduino-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/arta.min.css create mode 100644 src/app/resources/assets/highlight/styles/ascetic.min.css create mode 100644 src/app/resources/assets/highlight/styles/atom-one-dark-reasonable.min.css create mode 100644 src/app/resources/assets/highlight/styles/atom-one-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/atom-one-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/3024.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/apathy.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/apprentice.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/ashes.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-cave-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-cave.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-dune-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-dune.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-estuary-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-estuary.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-forest-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-forest.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-heath-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-heath.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-lakeside-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-lakeside.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-plateau-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-plateau.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-savanna-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-savanna.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-seaside-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-seaside.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-sulphurpool-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atelier-sulphurpool.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/atlas.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/bespin.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/black-metal-bathory.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/black-metal-burzum.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/black-metal-dark-funeral.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/black-metal-gorgoroth.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/black-metal-immortal.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/black-metal-khold.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/black-metal-marduk.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/black-metal-mayhem.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/black-metal-nile.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/black-metal-venom.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/black-metal.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/brewer.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/bright.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/brogrammer.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/brush-trees-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/brush-trees.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/chalk.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/circus.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/classic-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/classic-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/codeschool.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/colors.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/cupcake.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/cupertino.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/danqing.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/darcula.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/dark-violet.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/darkmoss.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/darktooth.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/decaf.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/default-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/default-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/dirtysea.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/dracula.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/edge-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/edge-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/eighties.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/embers.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/equilibrium-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/equilibrium-gray-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/equilibrium-gray-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/equilibrium-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/espresso.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/eva-dim.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/eva.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/flat.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/framer.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/fruit-soda.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/gigavolt.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/github.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/google-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/google-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/grayscale-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/grayscale-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/green-screen.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/gruvbox-dark-hard.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/gruvbox-dark-medium.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/gruvbox-dark-pale.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/gruvbox-dark-soft.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/gruvbox-light-hard.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/gruvbox-light-medium.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/gruvbox-light-soft.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/hardcore.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/harmonic16-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/harmonic16-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/heetch-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/heetch-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/helios.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/hopscotch.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/horizon-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/horizon-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/humanoid-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/humanoid-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/ia-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/ia-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/icy-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/ir-black.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/isotope.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/kimber.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/london-tube.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/macintosh.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/marrakesh.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/materia.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/material-darker.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/material-lighter.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/material-palenight.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/material-vivid.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/material.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/mellow-purple.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/mexico-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/mocha.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/monokai.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/nebula.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/nord.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/nova.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/ocean.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/oceanicnext.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/one-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/onedark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/outrun-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/papercolor-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/papercolor-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/paraiso.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/pasque.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/phd.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/pico.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/pop.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/porple.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/qualia.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/railscasts.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/rebecca.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/ros-pine-dawn.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/ros-pine-moon.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/ros-pine.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/sagelight.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/sandcastle.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/seti-ui.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/shapeshifter.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/silk-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/silk-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/snazzy.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/solar-flare-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/solar-flare.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/solarized-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/solarized-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/spacemacs.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/summercamp.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/summerfruit-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/summerfruit-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/synth-midnight-terminal-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/synth-midnight-terminal-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/tango.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/tender.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/tomorrow-night.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/tomorrow.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/twilight.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/unikitty-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/unikitty-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/vulcan.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/windows-10-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/windows-10.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/windows-95-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/windows-95.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/windows-high-contrast-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/windows-high-contrast.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/windows-nt-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/windows-nt.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/woodland.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/xcode-dusk.min.css create mode 100644 src/app/resources/assets/highlight/styles/base16/zenburn.min.css create mode 100644 src/app/resources/assets/highlight/styles/brown-paper.min.css create mode 100644 src/app/resources/assets/highlight/styles/brown-papersq.png create mode 100644 src/app/resources/assets/highlight/styles/codepen-embed.min.css create mode 100644 src/app/resources/assets/highlight/styles/color-brewer.min.css create mode 100644 src/app/resources/assets/highlight/styles/dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/default.min.css create mode 100644 src/app/resources/assets/highlight/styles/devibeans.min.css create mode 100644 src/app/resources/assets/highlight/styles/docco.min.css create mode 100644 src/app/resources/assets/highlight/styles/far.min.css create mode 100644 src/app/resources/assets/highlight/styles/felipec.min.css create mode 100644 src/app/resources/assets/highlight/styles/foundation.min.css create mode 100644 src/app/resources/assets/highlight/styles/github-dark-dimmed.min.css create mode 100644 src/app/resources/assets/highlight/styles/github-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/github.min.css create mode 100644 src/app/resources/assets/highlight/styles/gml.min.css create mode 100644 src/app/resources/assets/highlight/styles/googlecode.min.css create mode 100644 src/app/resources/assets/highlight/styles/gradient-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/gradient-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/grayscale.min.css create mode 100644 src/app/resources/assets/highlight/styles/hybrid.min.css create mode 100644 src/app/resources/assets/highlight/styles/idea.min.css create mode 100644 src/app/resources/assets/highlight/styles/intellij-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/ir-black.min.css create mode 100644 src/app/resources/assets/highlight/styles/isbl-editor-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/isbl-editor-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/kimbie-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/kimbie-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/lightfair.min.css create mode 100644 src/app/resources/assets/highlight/styles/lioshi.min.css create mode 100644 src/app/resources/assets/highlight/styles/magula.min.css create mode 100644 src/app/resources/assets/highlight/styles/mono-blue.min.css create mode 100644 src/app/resources/assets/highlight/styles/monokai-sublime.min.css create mode 100644 src/app/resources/assets/highlight/styles/monokai.min.css create mode 100644 src/app/resources/assets/highlight/styles/night-owl.min.css create mode 100644 src/app/resources/assets/highlight/styles/nnfx-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/nnfx-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/nord.min.css create mode 100644 src/app/resources/assets/highlight/styles/obsidian.min.css create mode 100644 src/app/resources/assets/highlight/styles/panda-syntax-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/panda-syntax-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/paraiso-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/paraiso-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/pojoaque.jpg create mode 100644 src/app/resources/assets/highlight/styles/pojoaque.min.css create mode 100644 src/app/resources/assets/highlight/styles/purebasic.min.css create mode 100644 src/app/resources/assets/highlight/styles/qtcreator-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/qtcreator-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/rainbow.min.css create mode 100644 src/app/resources/assets/highlight/styles/routeros.min.css create mode 100644 src/app/resources/assets/highlight/styles/school-book.min.css create mode 100644 src/app/resources/assets/highlight/styles/shades-of-purple.min.css create mode 100644 src/app/resources/assets/highlight/styles/srcery.min.css create mode 100644 src/app/resources/assets/highlight/styles/stackoverflow-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/stackoverflow-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/sunburst.min.css create mode 100644 src/app/resources/assets/highlight/styles/tokyo-night-dark.min.css create mode 100644 src/app/resources/assets/highlight/styles/tokyo-night-light.min.css create mode 100644 src/app/resources/assets/highlight/styles/tomorrow-night-blue.min.css create mode 100644 src/app/resources/assets/highlight/styles/tomorrow-night-bright.min.css create mode 100644 src/app/resources/assets/highlight/styles/vs.min.css create mode 100644 src/app/resources/assets/highlight/styles/vs2015.min.css create mode 100644 src/app/resources/assets/highlight/styles/xcode.min.css create mode 100644 src/app/resources/assets/highlight/styles/xt256.min.css create mode 100644 src/app/resources/assets/img/180x180.png create mode 100644 src/app/resources/assets/img/180x180.png~ create mode 100644 src/app/resources/assets/img/192x192.png create mode 100644 src/app/resources/assets/img/192x192.png~ create mode 100644 src/app/resources/assets/rss_opml.xml create mode 100644 src/app/resources/blog-posts/A-New-Platform.md create mode 100644 src/app/resources/blog-posts/A-New-Platform/medium_1.png create mode 100644 src/app/resources/blog-posts/A-Noob-s-Guide-to-Gluster-on-ZFS.md create mode 100644 src/app/resources/blog-posts/Building-a-Raspberry-Pi-Cluster-Part-I.md create mode 100644 src/app/resources/blog-posts/Building-a-Raspberry-Pi-Cluster-Part-II.md create mode 100644 src/app/resources/blog-posts/Building-a-Raspberry-Pi-Cluster-Part-III.md create mode 100644 src/app/resources/blog-posts/Code-Freedom-with-Gitea-and-Drone-Part-I.md create mode 100644 src/app/resources/blog-posts/Converting-Ionic-Angular-Site-into-PWA.md create mode 100644 src/app/resources/blog-posts/Creating-the-Ultimate-Free-Personal-Website.md create mode 100644 src/app/resources/blog-posts/Dependency-Injection-in-Less-Than-100-Lines-of-Pure-JavaScript.md create mode 100644 src/app/resources/blog-posts/Developing-an-App-With-Flitter-Getting-Started.md create mode 100644 src/app/resources/blog-posts/Flitter-Framework-Cohesive-Express-js.md create mode 100644 src/app/resources/blog-posts/Generalized-Commutative-Data-Types.md create mode 100644 src/app/resources/blog-posts/Host-to-Set-Up-Virtualized-pfSense-on-VMware-ESXi-6-x.md create mode 100644 src/app/resources/blog-posts/How-to-Code-From-Home-Like-a-Boss.md create mode 100644 src/app/resources/blog-posts/Importing-OpenVPN-Profile-on-Fedora-36.md create mode 100644 src/app/resources/blog-posts/Installing-Kali-Linux-from-USB.md create mode 100644 src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_1.jpeg create mode 100644 src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_2.png create mode 100644 src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_3.png create mode 100644 src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_4.png create mode 100644 src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_5.png create mode 100644 src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_7.png create mode 100644 src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_8.png create mode 100644 src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_9.png create mode 100644 src/app/resources/blog-posts/OneDrive-Sync-for-Linux-Ubuntu.md create mode 100644 src/app/resources/blog-posts/Photo-Challenge-01-Self-Portrait.md create mode 100644 src/app/resources/blog-posts/Rancher-K3s-Kubernetes-on-Proxmox-Container.md create mode 100644 src/app/resources/blog-posts/Rethinking-Dependency-Injection-in-TypeScript.md create mode 100644 src/app/resources/blog-posts/Runtime-Data-Validation-from-TypeScript-Interfaces.md create mode 100644 src/app/resources/blog-posts/Spacewalk-for-Linux-Management-Part-I.md create mode 100644 src/app/resources/blog-posts/Spacewalk-for-Linux-Management-Part-II.md create mode 100644 src/app/resources/blog-posts/Spacewalk-for-Linux-Management-Part-III.md create mode 100644 src/app/resources/blog-posts/Ultimate-Guide-to-Cleaning-Dell-XPS-15-Keyboard.md create mode 100644 src/app/resources/views/blog/404.pug create mode 100644 src/app/resources/views/blog/archive.pug create mode 100644 src/app/resources/views/blog/feeds.pug create mode 100644 src/app/resources/views/blog/index.pug create mode 100644 src/app/resources/views/blog/post.pug create mode 100644 src/app/resources/views/blog/tag.pug create mode 100644 src/app/resources/views/blog/tags.pug create mode 100644 src/app/resources/views/blog/template.pug create mode 100644 src/app/services/Blog.service.ts diff --git a/package.json b/package.json index e252ada..2a9a92e 100644 --- a/package.json +++ b/package.json @@ -10,16 +10,21 @@ "dependencies": { "@atao60/fse-cli": "^0.1.7", "@extollo/lib": "^0.14.10", + "@types/marked": "^4.0.8", "@types/node": "^18.11.9", + "@types/xml2js": "^0.4.11", "any-date-parser": "^1.5.3", "copyfiles": "^2.4.1", "feed": "^4.2.2", "gotify": "^1.1.0", + "gray-matter": "^4.0.3", + "marked": "^4.2.12", "ts-expose-internals": "^4.5.4", "ts-node": "^10.9.1", "ts-patch": "^2.0.1", "ts-to-zod": "^1.8.0", "typescript": "^4.3.2", + "xml2js": "^0.4.23", "zod": "^3.11.6" }, "scripts": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec5850f..04ec203 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,32 +4,42 @@ specifiers: '@atao60/fse-cli': ^0.1.7 '@extollo/cc': ^0.6.0 '@extollo/lib': ^0.14.10 + '@types/marked': ^4.0.8 '@types/node': ^18.11.9 + '@types/xml2js': ^0.4.11 any-date-parser: ^1.5.3 copyfiles: ^2.4.1 feed: ^4.2.2 gotify: ^1.1.0 + gray-matter: ^4.0.3 + marked: ^4.2.12 rimraf: ^3.0.2 ts-expose-internals: ^4.5.4 ts-node: ^10.9.1 ts-patch: ^2.0.1 ts-to-zod: ^1.8.0 typescript: ^4.3.2 + xml2js: ^0.4.23 zod: ^3.11.6 dependencies: '@atao60/fse-cli': 0.1.7 '@extollo/lib': 0.14.10 + '@types/marked': 4.0.8 '@types/node': 18.11.9 + '@types/xml2js': 0.4.11 any-date-parser: 1.5.3 copyfiles: 2.4.1 feed: 4.2.2 gotify: 1.1.0 + gray-matter: 4.0.3 + marked: 4.2.12 ts-expose-internals: 4.8.4 ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 ts-patch: 2.0.2_typescript@4.8.4 ts-to-zod: 1.13.1 typescript: 4.8.4 + xml2js: 0.4.23 zod: 3.19.1 devDependencies: @@ -482,6 +492,10 @@ packages: '@types/node': 18.11.9 dev: false + /@types/marked/4.0.8: + resolution: {integrity: sha512-HVNzMT5QlWCOdeuBsgXP8EZzKUf0+AXzN+sLmjvaB3ZlLqO+e4u0uXrdw9ub69wBKFs+c6/pA4r9sy6cCDvImw==} + dev: false + /@types/mime-types/2.1.1: resolution: {integrity: sha512-vXOTGVSLR2jMw440moWTC7H19iUyLtP3Z1YTj7cSsubOICinjMxFeb/V57v9QdyyPGbbWolUFSSmSiRSn94tFw==} dev: false @@ -555,6 +569,12 @@ packages: '@types/node': 18.11.9 dev: false + /@types/xml2js/0.4.11: + resolution: {integrity: sha512-JdigeAKmCyoJUiQljjr7tQG3if9NkqGUgwEUqBvV0N7LM4HyQk7UXCnusRa1lnvXAEYJ8mw8GtZWioagNztOwA==} + dependencies: + '@types/node': 18.11.9 + dev: false + /@typescript/vfs/1.4.0: resolution: {integrity: sha512-Pood7yv5YWMIX+yCHo176OnF8WUlKGImFG7XlsuH14Zb1YN5+dYD3uUtS7lqZtsH7tAveNUi2NzdpQCN0yRbaw==} dependencies: @@ -673,6 +693,12 @@ packages: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} dev: false + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: false + /argparse/2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true @@ -1223,6 +1249,12 @@ packages: engines: {node: '>=6'} optional: true + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: false + /event-emitter/0.3.5: resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} dependencies: @@ -1236,6 +1268,13 @@ packages: type: 2.7.2 dev: true + /extend-shallow/2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: false + /external-editor/3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -1465,6 +1504,16 @@ packages: /graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + /gray-matter/4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: false + /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -1643,6 +1692,11 @@ packages: object-assign: 4.1.1 dev: false + /is-extendable/0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: false + /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -1710,6 +1764,14 @@ packages: resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} dev: false + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: false + /json-buffer/3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: false @@ -1889,8 +1951,8 @@ packages: dev: false optional: true - /marked/4.2.2: - resolution: {integrity: sha512-JjBTFTAvuTgANXx82a5vzK9JLSMoV6V3LBVn4Uhdso6t7vXrGx7g1Cd2r6NYSsxrYbQGFCMqBDhFHyK5q2UvcQ==} + /marked/4.2.12: + resolution: {integrity: sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==} engines: {node: '>= 12'} hasBin: true dev: false @@ -2593,6 +2655,14 @@ packages: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} dev: false + /section-matter/1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + dev: false + /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -2682,6 +2752,10 @@ packages: engines: {node: '>= 10.x'} dev: false + /sprintf-js/1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: false + /sqlite/4.1.2: resolution: {integrity: sha512-FlBG51gHbux5vPjwnoqFEghNGvnTMTbHyiI09U3qFTQs9AtWuwd4i++6+WCusCXKrVdIDLzfdGekrolr3m4U4A==} dev: false @@ -2762,6 +2836,11 @@ packages: dependencies: ansi-regex: 5.0.1 + /strip-bom-string/1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: false + /supports-color/7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -3043,7 +3122,7 @@ packages: typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x dependencies: lunr: 2.3.9 - marked: 4.2.2 + marked: 4.2.12 minimatch: 5.1.0 shiki: 0.11.1 typescript: 4.8.4 @@ -3201,6 +3280,19 @@ packages: sax: 1.2.4 dev: false + /xml2js/0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.2.4 + xmlbuilder: 11.0.1 + dev: false + + /xmlbuilder/11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + dev: false + /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} diff --git a/src/app/configs/app.config.ts b/src/app/configs/app.config.ts index 9c8ef17..d9e860c 100644 --- a/src/app/configs/app.config.ts +++ b/src/app/configs/app.config.ts @@ -14,6 +14,7 @@ export interface ColorPalette { line1: string line2: string line3: string + highlightTheme: string } export default { @@ -38,6 +39,7 @@ export default { line1: 'rgba(178, 127, 170, 0.2)', line2: 'rgba(110, 187, 213, 0.9)', line3: 'rgba(218, 167, 210, 0.9)', + highlightTheme: 'base16/atelier-cave', }, tanOrangeAndRed: { displayName: "Tan, Orange, & Red", @@ -53,6 +55,7 @@ export default { line1: '#edb34f', line2: '#f88937', line3: '#e86c36', + highlightTheme: 'base16/atelier-dune-light', }, blueAndTan: { displayName: "Blue & Tan", @@ -68,6 +71,7 @@ export default { line1: '#fbad6f', line2: '#f47139', line3: '#de381e', + highlightTheme: 'base16/equilibrium-dark', }, teals: { displayName: "Teals", @@ -83,6 +87,7 @@ export default { line1: '#dcbb8e', line2: '#95aaa3', line3: '#3f4962', + highlightTheme: 'base16/edge-light', }, redAndGold: { displayName: "Red & Gold", @@ -98,6 +103,7 @@ export default { line1: '#e9c8a0', line2: '#f6bb4a', line3: '#ef4c3f', + highlightTheme: 'base16/chalk', }, mashGreen: { displayName: "M*A*S*H Green", @@ -113,6 +119,7 @@ export default { line1: '#b5a148', line2: '#ecb653', line3: '#71490b', + highlightTheme: 'base16/atelier-estuary', }, purpleAndWhite: { displayName: "Purple & White", @@ -128,6 +135,7 @@ export default { line1: '#979adb', line2: '#b3b5f1', line3: '#efe2df', + highlightTheme: 'base16/atelier-cave-light', }, } as Record, } diff --git a/src/app/http/controllers/Blog.controller.ts b/src/app/http/controllers/Blog.controller.ts new file mode 100644 index 0000000..1de0908 --- /dev/null +++ b/src/app/http/controllers/Blog.controller.ts @@ -0,0 +1,137 @@ +import {Controller, view, Inject, Injectable, collect, plaintext} from '@extollo/lib' +import {Home} from './Home.controller' +import {Blog as BlogService, BlogPost} from '../../services/Blog.service' +import {FeedPost} from '../../models/FeedPost.model' + +/** + * Blog Controller + * ------------------------------------ + * Put some description here. + */ +@Injectable() +export class Blog extends Controller { + @Inject() + protected readonly blog!: BlogService + + public async index() { + const home = this.make(Home) + const posts = await this.blog.getAllPosts() + return view('blog:index', { + ...home.getThemeCSS(), + ...this.getBlogData(), + posts: posts.take(10).toArray(), + }) + } + + public async post() { + const home = this.make(Home) + const slug = this.request.safe('slug').string() + const post = await this.blog.getPost(slug) + if ( !post ) { + return view('blog:404', { + ...home.getThemeCSS(), + ...this.getBlogData(), + slug, + }) + } + + return view('blog:post', { + ...home.getThemeCSS(), + ...this.getBlogData(), + post, + renderedPost: await this.blog.renderPost(post.slug), + }) + } + + public async archive() { + const home = this.make(Home) + const postsByYear = await this.blog.getAllPosts() + .then(ps => ps.groupBy(p => p.date.getFullYear())) + + return view('blog:archive', { + ...home.getThemeCSS(), + ...this.getBlogData(), + postsByYear, + postYears: collect(Object.keys(postsByYear)).sortDesc().toArray(), + }) + } + + public async tags() { + const home = this.make(Home) + const counts = {} as Record + await this.blog.getAllPosts() + .then(ps => ps.each(post => { + post.tags.some(tag => { + if ( !counts[tag] ) counts[tag] = 1 + else counts[tag] += 1 + }) + })) + + return view('blog:tags', { + ...home.getThemeCSS(), + ...this.getBlogData(), + counts, + tags: collect(Object.keys(counts)).sort().toArray(), + }) + } + + public async tag() { + const home = this.make(Home) + const tag = this.request.safe('tag').string() + const posts = await this.blog.getAllPosts() + .then(ps => ps.filter(p => p.tags.includes(tag)).sortByDesc('date')) + + console.log('tag posts', posts) + + return view('blog:tag', { + ...home.getThemeCSS(), + ...this.getBlogData(), + posts: posts.toArray(), + tag, + }) + } + + public async feeds() { + const home = this.make(Home) + const subsByCategory = await this.blog.getSubs() + .then(ss => ss.groupBy('category')) + const categories = collect(Object.keys(subsByCategory)).sort().toArray() + + return view('blog:feeds', { + ...home.getThemeCSS(), + ...this.getBlogData(), + subsByCategory, + categories, + }) + } + + public async rss() { + const feed = await this.blog.getFeed() + return plaintext(feed.rss2()).contentType('application/rss+xml; charset=UTF-8') + } + + public async atom() { + const feed = await this.blog.getFeed() + return plaintext(feed.atom1()).contentType('application/atom+xml; charset=UTF-8') + } + + public async json() { + const feed = await this.blog.getFeed() + return plaintext(feed.json1()).contentType('application/feed+json; charset=UTF-8') + } + + public getBlogData(): any { + return { + blogUrl: (post: BlogPost): string => this.blog.getUrl(post), + blogDate: (date: Date): string => { + const year = date.getFullYear() + let month = String(date.getMonth() + 1) + if ( month.length < 2 ) month = `0${month}` + let day = String(date.getDate()) + if ( day.length < 2 ) day = `0${day}` + return `${year}-${month}-${day}` + }, + } + } + +} diff --git a/src/app/http/controllers/Home.controller.ts b/src/app/http/controllers/Home.controller.ts index 035dfdd..9024d66 100644 --- a/src/app/http/controllers/Home.controller.ts +++ b/src/app/http/controllers/Home.controller.ts @@ -182,6 +182,7 @@ export class Home extends Controller { themeCSS, themeDisplayName: theme.displayName, themeKeys, + themeRecord: theme, } } } diff --git a/src/app/http/routes/app.routes.ts b/src/app/http/routes/app.routes.ts index 25080a2..0907159 100644 --- a/src/app/http/routes/app.routes.ts +++ b/src/app/http/routes/app.routes.ts @@ -9,6 +9,7 @@ import {LoadFeedPosts} from '../middlewares/parameters/LoadFeedPosts.middleware' import {ValidContactForm} from '../middlewares/parameters/ValidContactForm.middleware' import {RateLimit} from '../middlewares/RateLimit.middleware' import {SiteTheme} from '../middlewares/SiteTheme.middleware' +import {Blog} from '../controllers/Blog.controller' Route.endpoint('options', '**') .handledBy(() => api.one({})) @@ -22,7 +23,44 @@ Route .alias('home') Route.get('/blog') - .handledBy(() => redirect('/blog/')) + .pre(SiteTheme) + .calls(Blog, blog => blog.index) + .alias('blog') + + Route.get('/blog/archive') + .pre(SiteTheme) + .calls(Blog, blog => blog.archive) + .alias('blog:archive') + + Route.get('/blog/tags') + .pre(SiteTheme) + .calls(Blog, blog => blog.tags) + .alias('blog:tags') + + Route.get('/blog/feeds') + .pre(SiteTheme) + .calls(Blog, blog => blog.feeds) + .alias('blog:feeds') + + Route.get('/blog/rss2.xml') + .calls(Blog, blog => blog.rss) + .alias('blog:rss') + + Route.get('/blog/atom.xml') + .calls(Blog, blog => blog.atom) + .alias('blog:atom') + + Route.get('/blog/json.json') + .calls(Blog, blog => blog.json) + .alias('blog:json') + + Route.get('/blog/tag/:tag') + .pre(SiteTheme) + .calls(Blog, blog => blog.tag) + + Route.get('/blog/*/*/*/:slug') + .pre(SiteTheme) + .calls(Blog, blog => blog.post) Route.post('/contact') .pre(RateLimit) diff --git a/src/app/resources/assets/favicon/android-chrome-192x192.png b/src/app/resources/assets/favicon/android-chrome-192x192.png index 5c9a669fe5422692845718a654e8dae569667777..43ebf23dd633edc8172ab1d0fe71e786acc26933 100644 GIT binary patch literal 29926 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 literal 5026 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 Ls#|~4IsX3u2#HIp diff --git a/src/app/resources/assets/favicon/android-chrome-512x512.png b/src/app/resources/assets/favicon/android-chrome-512x512.png index 5aada7669b648bd5f6a0ca1d5be6e79f47fabe1f..0791a4753fcca7baa565b87c957674afc464e699 100644 GIT binary patch literal 144295 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 literal 21304 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 V86WQTPeS0Iv4Q!?e0`^g{{z`_AAtY> diff --git a/src/app/resources/assets/favicon/apple-touch-icon.png b/src/app/resources/assets/favicon/apple-touch-icon.png index 70dd66b6634d348b59bd16a000a42263b7a3a0e7..73a6c44605dfe688c9271bcdc3895271286283c4 100644 GIT binary patch literal 27459 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 Ss0OeA00000APS?su^9Jgnt(e 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 PtO4NadTQk=k6-*3dMl93 diff --git a/src/app/resources/assets/favicon/favicon-16x16.png b/src/app/resources/assets/favicon/favicon-16x16.png index ded168931658437a9092d91eed932131e31f7c3c..b511ccd620255fd005d034186c3b36e0370a4bdb 100644 GIT binary patch delta 537 zcmV+!0_Oe40whXx3V$J24v5keiQRIYF%WCN zsKTss1#CcNAs4G61VYa%0TASUdN1kZ2th{@;AuUpD;VC&=;@%8{oZs3a|MZ z>EUBYN5|*|%^~*vY(1gzvj02RXPypnod4KqGkMr#H`H3PzmRe|1!4sfw z2cl9yXA;>)FgwLKml2OSBZqQ;xA-9k^j6S4$~uDIcm&B-(%})9{=M+1Ofp_neCV?m zVD}6#1&*>R8)bJTlW;2Jj}?Hb@>-urTiu0>25))`?ls1pgLzm*?+(=YvDo^%@AD

MiMnSdzY?p00000NkvXXu0mjfiXrz_ delta 300 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 mKg>0B?a>ZjkXH1Ho-gKF3S literal 15406 zcmeHOTUQfT6rQg32iS+c^VH>|Pkrt$@zTmgxha7_LM(|yK;#n80CEWk1|lW_xtWAq zfP`=p6m-#A?e&lBp6{d+MM5%}PBKZIthLuHX6DTP_CEXUv(I-9g7Ag#rEuo&XMA1 z&#?a&{KMT=@;!Yd+kXAEA80SMNPhMW*Kl7_c7x9(`490~Uw)bTtR@1MkHxI3JcUbc zJS){MWm3rECh|-Plkb@zKb`ec3h)2@JE8e$db$2Qr5voS(5BBrvttkF){Tms#1it| z>&-w)L0`_I3?`iF<`m3H$2(!3 zAAn6s`)5b*bDIM0skA;d)t1vyETFjkFTzXQ_S+3LY4v0Ljj>uxY5U*qt<(F1SVrB@ z-)6X}xc+zh8!WGGNYbB+_}BDn{{Nig54OMCkE%BQ4x@hh^Jt5jYckg~xfuUgBO|9y z5A|mBK`!)L^|idd{NpgrF*MhdldkMiN@;7lp?Lm9UI$O{{vgV~jk*4}m$8&0*1<~7 zzt9gsZI3<(dYu$qewtR?4tvJF62GfmmFK!NpGx!TS-imKavwYiqiBW8Of;TETFhu; zE5Ckv%(#q9^Nsi%JP~--Nwz-6TD__As_OGlY{kvz?N8V2>HfwX4=yXf`1QM{dR1)z zuLW*FitI9u`j_2ElBa+js2|Z6#WHTdliNGYv>RMV+JU_yaD2sL18`dEKX69q2PyS) zq1o5btYdXV5ep}TtuwJti*;5*#TAb86n@69r?WR#&%gmc zWc$>ZTlXVNESAHJlK?OAK@cC<58q<@?4F51&P5gienZt&3e7qBdKq~z-Mouucn5sP z@phQ{@0d=;PoDh`{{=jg920QC-*Mj@dBz86;(jNM_uWm(M1Lpa;rl7f_UgdbCu|52 z&ON{`9{+j9k8=Z}&yQk$9z&VtQC-zjTKs77 zBgTT9Yq7@|1Bs z2WsL+?GD}*wJ-Lyhwil&6@K^{YZ#1yMExG+HlQECF-z%-M%4cw^H+JSpMeiN)S`1V zX#@HJvE+R;MB + + +``` + +The full list of digests for every file can be found below. + +### Digests + +``` +sha384-d8KTBLFjg2IVNtohjj32TAh8+MOFPukj5WKbkfk83mLz1ctxujsIN0jnKaRw3rW7 highlight.min.js +sha384-gHVRIRc+fz2U8u4/ZIMnHEkJvV45pOGqIoYRGid7r0ARA8p4pK1YnY5SVjP1lKZI highlight.js +sha384-nlhHnb2S52VMfEjeE6nTPbOfxJ9+H0Lpluvhz9sND4iwjYR+MYEAcmt+GknfYccD es/highlight.min.js +sha384-lz9sXdfT/Z/y8pS/YxMUReSYZfjcnWk1Yr0XIjse3VnKEvshTGQWjyroXdOPnc6B es/highlight.js +sha384-nlhHnb2S52VMfEjeE6nTPbOfxJ9+H0Lpluvhz9sND4iwjYR+MYEAcmt+GknfYccD es/core.min.js +sha384-lz9sXdfT/Z/y8pS/YxMUReSYZfjcnWk1Yr0XIjse3VnKEvshTGQWjyroXdOPnc6B es/core.js +sha384-1JBlycV1IO/WvwJZBg9Kx8af7QgXNgR6zM0Xp9mtnQ9f/kabBmfnsD02q75i2a17 languages/abnf.min.js +sha384-e4F/W5qSJkBE2i0gOc5+TlBW8vXBnQeCrwkPSqrN3mq/fW+QEbMMVwqKGq9c25NZ languages/accesslog.min.js +sha384-FlMPfMhv73PUOnh81YhQSFa2w3KP5c0u4bl13uGH0yEglt6tVcQHHfX9ivKFtZ0y languages/actionscript.min.js +sha384-bcBkGhZM/BEcxV7fuzrZnAWtyrMyMbzjTnjW1GdT2lOm5LXcPmajRWCZJLXRxGaF languages/ada.min.js +sha384-r6gwrzrP4QdjUQHU3T3ltUDaTl1DwmciLorASLN/sWa6quKQNTNaGbU2mqNoyzDr languages/angelscript.min.js +sha384-S826Dp6i4sU+5oogQwG89At+hEmQNktbSmCRTK4fEvnOjzEkrtVkiKCuqiSqResl languages/apache.min.js +sha384-mNq6e5qolIxK8R0tezKKbZKzn7yAtw0bbJPdpC/gQIskupzJn6Rrcejyv5EUwrza languages/applescript.min.js +sha384-muPeOCw8a4IiaRuNSFqqAMMXv1P6p9zVqefBN5K+3GHRR34KdeFYahdeQzbUifkr languages/arcade.min.js +sha384-CARCDeNM9/T1uVHtW7Nn/Hp1UkltToefBqWv9Ehoa2rnuLZrPS2au+F1kp7Cd0gB languages/armasm.min.js +sha384-AUbgDNA8vddTq5Fl43obRQku77bRZfimC8ezbK5AD47LpP5X4+7tViioefyT24ql languages/asciidoc.min.js +sha384-HcdOZgrXkYbACoFFgKYY1irXWh8Sz4jTdkMzCsNzA2HNxnei2EhBylWkEi1XOvnz languages/aspectj.min.js +sha384-efmS1tEJbYPB42jibSEFWail2vwk1ZR5Z1pZafcPlM+7U8a/qBV/4zXCpUea1SiJ languages/autohotkey.min.js +sha384-b0t3WcHgkhSb1IFtiuFSWffbndLy+PW6WYfYLwYFdFuWoCv+Xtjmy5SJ3uyBLxPL languages/autoit.min.js +sha384-+YmVvylYzUMZ3N8OfTVM/p7/bgChy7CBlgPubEb5Jh5bmQ/JK0O8eSBqMXm2EeZ7 languages/avrasm.min.js +sha384-lt3iTcx1tkTEXVYOBzqN58wkw9WT8trZJY/mPogrd9RXFsQdccbH6YhLMGEzxzC3 languages/awk.min.js +sha384-VApuO9c6wcqI8XYZu/PEbt8dyL6qmg4dbW9GwPiA3db+XwRipieyIhSlsfCymVxn languages/axapta.min.js +sha384-SWx9RTNu5IBJIlUAP+LjGQNeBAdjq3AanHcmCyPOYtsuLDQYo4ECK/yPU/nOyDX0 languages/bash.min.js +sha384-cq7JqfxNWrsxtnpxdLv0yGfprsaR/HHNpwPULgP8sls9gH+t8CEfrGXJNzeS8DkL languages/basic.min.js +sha384-osoT7UjAgNF2NJwFII4shufToUWFrJqBJiZ77XwG0vIcNXpD7Eu7tmI6Em+Nv9mw languages/bnf.min.js +sha384-Im11AKpAGG0UtOhdd7ymP/5vivcEFRstC/W+i2qNPwXxsP1QJf/xQAmT26i2jvi8 languages/brainfuck.min.js +sha384-4dlI9xQH8B23nMuB1RJQQ2UK5JTlPO4vk7/46P2mUFfzhu+hG2+T8110otzcLPhA languages/c.min.js +sha384-4Yyvpc+xouHUJKQRUqF9uVlXv0QazjeHoeaLR77Xm7dvjnPihMDw5/U1VpsCZSmK languages/cal.min.js +sha384-VLr66fX9qq0suZMiofgmacYrl+j0JBcpajg7X4yR3PX21tnPIggZspSfMzC4vloN languages/capnproto.min.js +sha384-cK+5SizVzM2WqRBd67zaqDIxNrKFoO7dQN8TAI3QdVAlNBXPZ45Nk2nqL7/uU42b languages/ceylon.min.js +sha384-3RC74l+MwFr4M4ig2XfbJ1WmfKj//7FyDWDte5HtV+3EZd5+DjE34CgR8Q7IRkta languages/clean.min.js +sha384-tnxwUBTXPh19YiF1IfzUx+Kw4sKAeDWpVoQNN1RQ5dKTnD+EgGWpR00OqCP9NYpJ languages/clojure-repl.min.js +sha384-8JWkp32oWTEVxxtNrzFvXIT0dEfL3iIzNnscjiUdgvFNq4G2o/kfRsL6fgojtVZ2 languages/clojure.min.js +sha384-1VjLXMtJqNs53XCu/2vEaKLIhqVaHTUiJjwUmsrH/9vV9N8++jRXIC/n5XmCTGYu languages/cmake.min.js +sha384-GzsGY69vk2UQjzojbiZGp1H6epXSdyxRIR2m0W0rZaKM0Pr0C6jyb0RoT4w7bcdG languages/coq.min.js +sha384-vzwcB/AGUR8E8NYGUap1vHiXdnu9MvrG9OcGpPgxiMsTl/UTisxolNgriL88V+bC languages/cos.min.js +sha384-jeDC7ez9MZKKNLI0oJVaj9Zt6QWOTbD69feJDuYGCsIkFXS4d0U9/Rx41687+6am languages/cpp.min.js +sha384-09x0O3i7ldnO2erjJZ7Csq5Ly34ynSgg302rNapOCM+B2NTXUbnMZK7CAw3StHKG languages/crmsh.min.js +sha384-ez3Hk3Hg9Qqm79yJmFV9Nr7Y6daks/jkErtPeYL2bFJ/iRZvBy1NE1PjV3p3S8DK languages/crystal.min.js +sha384-Gpy4bdPSCx57yFTM+1RjbJKj4ltJhuZL9fO/bLCRXjhb5mCJ1SMmKDIbzubGzjqV languages/csharp.min.js +sha384-rVq0TDgdBV79IpW+nzS4jCEavwE9D+DdsKHxmvseSaJjMwZaNokyoD6/flk21n/j languages/csp.min.js +sha384-4clploDvMqipq6fOWOVSpq2Vdv1PNDXNUCDc6aO7/IgDPALgRkocjxNfbyZtjjkp languages/d.min.js +sha384-kCBQ3kQJRNsdWCWsOKi08Bjgd0ESBgbf8O25xuuKMWMFUf0qRr+PTzSzgiYrDpzE languages/dart.min.js +sha384-FBte953TICDaFp8w3aTtxag82WosBt4JQKCtqf+io0KVggimNKMob5PghzzwxbMH languages/delphi.min.js +sha384-BGrtbSWkIGEbzlKDx7oWRNsdgEf+oKZqGoTV5WjVXOBGeBf46Z+YdW5FfE28LCCc languages/diff.min.js +sha384-LtuxfUZDqHnNbdHSXkOuKLYeLmJzmdx6ANxrVw6cris2O2XX8Nmx0YSNTvq95AUz languages/django.min.js +sha384-+nrxzzUI2p35wH1nm/6DEpE1DCCYkKjfM6t2/2xh3qw0po6txqhd8s5stBmZBTJ9 languages/dns.min.js +sha384-5TrkTRj8EM07q4oPGiK8VM6JA9PBrW9wqhx6LOFdeNikSVzS1EPWbUlWLWL+R/9h languages/dockerfile.min.js +sha384-THY6zaVkBNlc1uCwTCsjn7p4NdGmgvXUYdMoH+lZstS7PL/U/PXBO/lqRbGy6S6w languages/dos.min.js +sha384-geX6kyiGrL1scbYmPV4+wgEqVPu+f1MXJA1lAPxJF1E8xVbbL/uf3BqOT2sPeM3l languages/ebnf.min.js +sha384-ha0qxgqEGMMIQKLzHuMBwubVuvZ8/yd7RdMy7h10LT3Vf7dm11/GPN6KYZ4SkScJ languages/elixir.min.js +sha384-WFIUIocLL6tNQ4j+decNLFJda+Y6tbF8RZwI2YKFGuh69TPKGJJwhX/nZ9hQp09r languages/elm.min.js +sha384-LFYsnzCd/In7kZhGVCrYyWvCmzKOdi0I0LZ9ig0rX13MdVwNfnM69o9qRRFVLUFW languages/erb.min.js +sha384-EHFwUBCXxtqKEwWUS2uw+ja3kiENhoKymFh0PvqN23LR/XTy2HKDVT/3/wqYCR57 languages/erlang-repl.min.js +sha384-A5TYKVUUTDfxE+s+njJjCZrL90jRNNjVS7MeGBpsbonDwZN8VcrxQ8DvWaJJzR2J languages/erlang.min.js +sha384-Vci3+kHoG63J7CztWtNDzvgF2XLosA1CvsoV8JGMQkJRUysLPzonPHOoc+GJBPsj languages/excel.min.js +sha384-uNhk0Fxu8cfwlI5md/AsYntmRCTlzyYsoOFA5GL36C6XQ2vKvjrrMuyUMi5IYWkF languages/fix.min.js +sha384-HqBA9hI6yZf3xhn8123oKbE0dy6yTQCAM/O5lgjz6FEilUGhHMp3oqcXp5/52K4W languages/flix.min.js +sha384-Buy8e5V6AcZMYOqnDi81pyvCqCZBVknDlu04H6pwr7xkSWwtFWoY3BNjgT74/wR0 languages/fortran.min.js +sha384-dtnrVGjPni14Lwquxdh0ezqYkwaovAdgPuL3AV3kAtQQAHMaSQyrHLuxjKDWt+Yc languages/gams.min.js +sha384-/xVjWh31UaLPGoRmOOgAbOMFDlQH6vNwnjnyArjltcv22HeaNFPc3qOqdQPg8iqj languages/gcode.min.js +sha384-J6PyUnGXRtUq4C7C/QP24oL4gY3Ff5cW9LIqZgxzfDhwbbHB6p1Oydk88hE6rMiU languages/gherkin.min.js +sha384-P7x99V4NjNi1qHP6nlDB9jFkCt1fuPsEPoGWzVb7U9YDnq7i590gVKV/gvtWEk6E languages/glsl.min.js +sha384-Psy4WYRdpX6eaL0Yrtp3XkDq0WsaYTXresPU7qP7BhNpFnprhtDs0er4Q+fpiT8m languages/go.min.js +sha384-ixnbBfBvgUDRZYmzE3fWKbaY+Ro15lXxst+rNqLJeFLuk0D7DnYr4mIOhbwstF7F languages/golo.min.js +sha384-6zc7dfiwk0NBhLYrSrFrCP8UssyJO+I2zgJHORQeDvfWrzhMFrfN8/yK/h2Sr/hj languages/gradle.min.js +sha384-DkNotVJcK5GVqF4TCIDQr5Rbgk0loR/yuPNdW7NBZGydoYkPDRC5blmv6h2oHpau languages/graphql.min.js +sha384-bQYV0wHKp+Nm2pm4RQgWcc4+GLW7ATg8VwUM0QUrJ9oDb2QXP8YbJ4PDV+tcBbxC languages/haml.min.js +sha384-9dupACs+p9kaSey6BO0V2FzxQ2ildDxzimarMJOGZEUl+Wi7mZSwxD8eHeD9ZgZq languages/groovy.min.js +sha384-eGSs100WCR2HEAR8MoSDdcALoQxoVL4SYKj78ANn0AmlWUw+U7K6ADVAgeVfw2Wq languages/handlebars.min.js +sha384-79CckMIS/53CIAfoXYNgd9QOEiM92p6MqdXPU4sb+tHagf7VF5pJJVducFmOL2hK languages/haskell.min.js +sha384-sqFRSdgZAmGKBkRTqnPySlV6OS/C5xJTAyh61Q6obtyTL52miEtgabkmZlOUhfJN languages/haxe.min.js +sha384-8KzZftUjNltvrArmvJhI+6MrAvCycQLmsVO/MHzvAkxG08qjPD8y+uP72xmMSNfd languages/hsp.min.js +sha384-ssyIa3zIw8JomlumtlkegK2I2cGZ85i5Tn7vSwn5LViCRsolBCQ51uLcrsb8rSvs languages/http.min.js +sha384-jS1tuhAb+1LoMwWyFwT5xLxwlCT7RNZGQ/4o3o5XsddrP8ygIoI3kXPcGSvl5HZP languages/hy.min.js +sha384-ipU2SaunZcJ6KU24PpXAX85h8sWfvEXZ7mIVX+DuGGjRcDMEJ/Vk2sgjfo2VBaXN languages/inform7.min.js +sha384-nWYjiLUNS+Vo3lFs1brpQNVh3EaC+kHlkDgcoxIHrx2rTkb1uayuxoxKKju9ejDx languages/ini.min.js +sha384-tk8QreylLSzfZy6S+zyVNFurmj2/kRrshqUP6cw7MfwbezDnYenRRXRmItqZrAYN languages/irpf90.min.js +sha384-0uAV4Ud+faOeZPfS/5D8RBwJU1gZCI8463kUSvWscvrt0SCPfC8PZ8Vf1b7A9wsi languages/jboss-cli.min.js +sha384-iobZTYVzyrsWqW32ac+XJyMw7EWFbPi3u7zdOpEOVt/L0uR4Rfnt7UBD7cRYq19G languages/json.min.js +sha384-fT9i0rg0/hRaQ4jFh0zMACUO3AaSryLkqm2J2M6RfQbq4OmfSXHfXKW1t7JspYZf languages/julia-repl.min.js +sha384-c6KqDGT0LCeM3DWCwlolFxLOn/ofHhAL5IRXRh3llC+nGRTXp49lbth3MMPbzYnq languages/julia.min.js +sha384-JJMEQWBqOoO6mVGAQCpn4zfXqsdnZaqemaIq8iPQzdz/Qw5dqqcsz+u0vp0O2so7 languages/lasso.min.js +sha384-LoBb47ALy/C0u+Dp9Y5Xw7NXFVA9wTY48ZA7my3KgPLS7cbfdJvMED5OtxOmAyXP languages/latex.min.js +sha384-kuoxvHEK7fD5RMzs40b5GH00FQ3Ya5bDhycIprK9ARihZ4yyalpVgHGaEtRmfWgn languages/ldif.min.js +sha384-whORxn7h4Utsz+G71cUkEt1onjCHBeOaqwJnm7wUStp5YV0AsjYrCamdLN0uQjVk languages/leaf.min.js +sha384-xWUwdYgFmJGcGDq+EtCdrYLilZtWBPkXXOVP97sIo/0fdOVhPn49N7lGIPyVL1Ec languages/lisp.min.js +sha384-/aRfsgTDLoM/p+RIzQjaeUMNLfZfYUWeLrh0sLT5nrOK5wQbJIyltPdPNPvteOFy languages/livecodeserver.min.js +sha384-zu0OnOkeecVgprQ72Bo/7UbRwqUmFUmq7wpPqDW9B0QLXCEZepMmHkxmRV+PI0D0 languages/lsl.min.js +sha384-3gwLzUwfIeRcymbHpxfaA2Hq4BusPPLiD094C+2Rr2ZT/50Sr2CwH7Jw3e9uD7rZ languages/llvm.min.js +sha384-fHXVfUUIWqzYK850yZqZb2gGcFgRbTr/LA3xiuRmC+xEjxQ2i65vLi2kR6zI1Eky languages/lua.min.js +sha384-MonxLgrrv1RP51AgieZPeAbGdZ8BG1PObLsq2xxlOI7B3wGjER0TLc+MeoQ5Tqi2 languages/makefile.min.js +sha384-ygFwl5Lw/eHzXz4hhvyobzWIkQzLobd1sTOfRQL/l5AX4xY1RlqgjdmodNH8ksxm languages/markdown.min.js +sha384-6OhKR0cONBFZZAe1U2NVTsavk0jJ+ppjGqsY9q5qVuHhqlQQHdF72gLTKgFBkpU3 languages/matlab.min.js +sha384-6bIDjqKeriXdPdqvZxIUWuOmrPPTHVU9Pu+n/S5bZ96fUOpGLBL+KmFEINL76Ela languages/mercury.min.js +sha384-aaCjpkl1UQy1o8zyEa0/oYQ6reKDZbt2Hs7vg8aUg8FHtrYbyC3X7la4RQ6zC/GF languages/mipsasm.min.js +sha384-yBd2d8omMuXxBj6X1aTsDemD7faVcdFdhBQekXCbrkUwdYgRvOsxXQoVVTNcZm7i languages/mizar.min.js +sha384-7Gs1wsO5uzpO9LBASmTMV12pp7uaZ3Tb81ovfR6I/diFt0691+qbgVQuY93eCmj4 languages/mojolicious.min.js +sha384-zY94au57F0VBqwVKCeU9m5p6QN7Cg8CprbcmmB5XdYgOWY49BxjX0f6FM7XKwtrO languages/moonscript.min.js +sha384-L1exwpbsIwbzdcG5s/8FZiXhaAOoAFidowXnQr1qSuxYJD+vJmTv78XbBPGjQO5T languages/monkey.min.js +sha384-c54kBbzgux6OfWydo/gFB7aqMBJDAhIkXv2KHgyEdlULxTeOcTJNS+lVmuyrNpYh languages/n1ql.min.js +sha384-Rhfecp2PVwMeBwzCzSfwaBuFLGhv+ozHo3b8DNNoJBZciE4rHDX2WudFmZXSrqRB languages/nestedtext.min.js +sha384-dOT7KM4RtO3aID6IVcP9VlmVOPYv7uDOOYEmoK9G3RSUpuk1WTtlw/s7xMEaUrIx languages/nim.min.js +sha384-ICsb/7D8sJ24rGIr8Ibk5m4S1HcJIVtcormR514tuOt2FEEkRBnmwTGT6XrcWGet languages/nix.min.js +sha384-V5sgbljhgXFNHGd5Tgoc4bDpggomCkDdjomNVJtV7/fRV/p1SJj7FZb3vZHKQsGo languages/node-repl.min.js +sha384-PwpPry8IVDzDPQbDCHEU++BvKczCDFO3TvXUw3ZEmYqFyuf4bNHBoFoXJYiYZuRf languages/nginx.min.js +sha384-Bb60gbAQA679RUeGv3Qk7fSiOj/o5TYzKL6C2jfdduydFsnBahq4prZMXQrtpVIx languages/objectivec.min.js +sha384-YzGPu0sbba8Gv5J9i3BnDAzaU0dWoR2Todtw5y6tYPAJexDKraZJUtkYJvmJwwtI languages/ocaml.min.js +sha384-V3oj4PewyouNQFMZP/yl9tRDWgNVRO0A/Pfmt+EB/1JG/Kege6hZrNqh8efGYQ2w languages/openscad.min.js +sha384-sU5fc6tjhBKdeoWu7/EU+7my7lMDSMJmJ2oiI1yKrjsUWaXR9PI/UJa6JMg2pNFF languages/oxygene.min.js +sha384-vLxJxipDJKnu34gz2jGqLhAx7u28SWyd9dEKNHwZO1LfaT7W2cPUNP9M+8A+MH0M languages/pf.min.js +sha384-smp8JMdMwVqu3up93nrY93YMu88g1p71e9ZN3PMgIQUthixR0+iSLfaVoXVu/ix6 languages/perl.min.js +sha384-lUJDoitCa8OzSK8It8SKMKtOi48d+V8OX1VBoyF9k6WmOnJT3f8NWPc36X+K9FHe languages/php-template.min.js +sha384-5+OfP9Gp77ORvKpTnffrPU4eHNAcSUiA8ToumAzxfQMxfVZo6inB+kJBC6LOvq7M languages/php.min.js +sha384-cg1lgvzaGM6MnRZxsr9AttpHVfaASmpMf8yczesVpE2diEbWnmGZ2ehvGGrJ0i1M languages/plaintext.min.js +sha384-RBdLS+KFAFOrmFheVZzhklo/FaUIcYAQXtehuY6X2SAq2W/frmBXHef6ASw+jSwV languages/pony.min.js +sha384-wXaM4/99k72wTmGhrWCMYEDPLn74MgE81S9iO/xEgS5Zi3B4CUNjz5lvQFe1PzJ0 languages/powershell.min.js +sha384-hbOZo02xX1qWy7pPLBolPlrKJrgFrCI2f4n5rWgWEP6ofPwGoWB2tuVSqaKAZheB languages/processing.min.js +sha384-DkPRblOqo14WsP8rP+gMV8vLcRZCjtmJXoq0mX5F2EKbwxSC6Ebjbv+wO755h+8r languages/profile.min.js +sha384-uEwAXEqAs0hHsgH86h91M48nhFazq3/Ivq16va/5gGENSDH0GW6/o9dUxWL2f1Tr languages/prolog.min.js +sha384-WN6c0/GTTB4C1HKcveMmOUIYzlWEsMNwc0Qp1Fe/esBTkR6fI7m8/jbGSW+ofBJP languages/properties.min.js +sha384-kPca+wDOE2z4IKzzsFcesF8R5x5s33yOvRN6TPsRZfPNkdQ5Pr8U/H9Zas9LHOSW languages/protobuf.min.js +sha384-YhePGuixGK4QV7QPTjjlITh9vmtpNrjcVKAoObo5fMqxdCGui5/ms32jx8TModTo languages/puppet.min.js +sha384-V4xn4vj4301n5VRNn7Htld4684zeqE3r/kvmYxZRPQXoS/YH4m60s0/WighTOIZn languages/purebasic.min.js +sha384-ivl7MRk0kYpohcRlZTQgSOqtYx5JdfyGlPnZ4KiqzPKCh4iRv+2FeiV5rb3Es3N0 languages/python-repl.min.js +sha384-0lBZSfrCeXe5kt4mQz2ucFXCTAft4HXhXWVnVLRG9p0i1eJVDtglXaBQWk5p7+45 languages/python.min.js +sha384-+N6raccP6AGzdIsZ/nL2d1plNMnYfALZHGDH6+8YFTr0sDGnkv2dza1bFotuczql languages/q.min.js +sha384-/mJYiBKeFL1VUJzxdiJbLMJc746D3QDRrNjocEFWHvgW+yOBpB+gKzKZANvdp0MO languages/qml.min.js +sha384-/XcxP7bhUHQ6R99Fgmy11Fgf89oallJ538V2im3yqqDOdpba8KLlO6l31j0RT6OU languages/r.min.js +sha384-DcpBmrRrQAwoPdYXVDEVon2JdyLZFtizl611RfTZZMdLVDMbtGWSqtHq5ST9Nx49 languages/reasonml.min.js +sha384-ZgHgAFZdphjpK4JppmqRUPikmsr8ogq+VCJPUvrK1WnfV+UPxh/0ed+O5gW83nco languages/rib.min.js +sha384-d3JjonjIySkAiaEKnMtMKuso4VPciq2QbY7K922bqLpD/+cXoJYJ6ZMuFFcRmF5e languages/roboconf.min.js +sha384-vUIelJWN36LUWwHb6mNd+wmYc9IwuBXMFeDMTzDWsd96IQbdLo5/C3yTaUyui8se languages/routeros.min.js +sha384-UOwRiGrKGMVPUd0a9lm/kUBZPCAEos+ruIYICMwEaZlDHIbbGrTNoz06BpMI9i4L languages/ruby.min.js +sha384-62CeLsRAF3y1w6bfn71FXQuHwAi5t+NfBaticApund7NnbNsqJYtJUnacTQIWNC5 languages/rsl.min.js +sha384-nsHpV92PIAILuFaoKZLe+jDmJE/ER1/TO7vIfWGKotDkmxvAKLhFkIhareRpd3x0 languages/ruleslanguage.min.js +sha384-KFQxGnYz36i1Q8c3QUrdXK+gPP8r7vyjhntYx/YOWZzzc+/xVw0XHfZRjqVV5qNz languages/rust.min.js +sha384-EDMA9MsgBcYtGaM/uMs3IFZhQRE3WWG4iAsDEJlwzP5rI6/OjNt3IWlOr+mWrFJ5 languages/sas.min.js +sha384-aL4V34PqQVriBR8ATtOb1lJAmcaN30ZXYHb89tbVLMZ+NN7g49RW/p+GrIO22RIQ languages/scala.min.js +sha384-3zCxexEM7CC0BXh8dj2L+/mUitRmVUc7EIYJKGs5FzgcYZDpoKp9Ny6Gxy0R7WBJ languages/scheme.min.js +sha384-0ZoR67H1fjEbu0Gj1w1SPOEJrLLPnoFZCaaLXO4jvfy/rJMOXBqNEUdFMqGQsX3M languages/scilab.min.js +sha384-G/kZCApLiLnZwvoIbWQab/p0JPEI+X6Pxwbyi4FAQD+DV9Hd4qfd31z4Ayk53Ouq languages/shell.min.js +sha384-9jx0nhoGWnoc4XzWXIi4LhZ2C51BfhohbCqUEK8y8NVZj/xYuB+s+UYJhXYdaa5w languages/smali.min.js +sha384-6mdoMq+n/o7FGYHsC3H29GsO1huGQgpTo2D5859imKGStST2l+JhYOvukyr/2AP2 languages/smalltalk.min.js +sha384-9djaUQxDnf2rg0D6P+4Eanx9o1LTk72j2+96SHtAKS7ymqC8wsU8JddoFRywPTrW languages/sml.min.js +sha384-iCUAa6F3jkbdQ3FDOnbKUT4/0+OtueTIMjCP2UvDlQrloIwFwE1ZCVQ37VT7yZMJ languages/sql.min.js +sha384-6sxDuTblx924pvWMIEaxkhCncjORAJJztNC7EtOwR65qfTea/oRr7UCxkbMnIsB4 languages/stan.min.js +sha384-jhB2nw3/p7a+yPkejrhe79OFlCBTkGJvKcWSSgW5KPw73YeSxXOPtYesB2G76Qq7 languages/step21.min.js +sha384-zZaz5R/a3FPNMd29OCiuSYqYB/A7uIgnWrRP3WEgyA0boYQEltR9B2JwTgXTojUW languages/subunit.min.js +sha384-U1tz3lNBW4gSLjCU3ClFkIaz29SN4+GyfeoGbnycxnoKmgDjV08KptPCzmMEBzy1 languages/taggerscript.min.js +sha384-hZ1WW5w7x4BJGXvkvAtbI1rgFGx6eG9D3UCRxCVVhmF3C++01VJwCE7Dq2NfAtNS languages/tap.min.js +sha384-H5kVc216Z2fPQwu/x52gunIw3rE57MEGJNzqsl2ctLjPvF7zcwe58DBvo1U1zPWq languages/tcl.min.js +sha384-uDMUIDt/u3f5nT2qbufqhEnuFdWzsppKJiWbOGGDSLeKuzwBSTNubgf0WQpG2FUH languages/thrift.min.js +sha384-Ceixm0Uup39ZQoWKlJ3qCgCiHBSzAgCwV4VpEwjeCJwrhgoEFPUcyVgeDY7r0/tg languages/twig.min.js +sha384-/L0IcTMkVf+7Emkq1uJGUW+D/zIc6z38En71sexkrsaeR2pIrSoXW6+p06pSDJEE languages/tp.min.js +sha384-ABDAqbte/z3dkuvIZlzZGgH6IVImUH+BkJLyUXtqqLyRKvgVEznTDl/rkyFPaXuP languages/vala.min.js +sha384-n6wUTgXDFotIhmUNyVuRx/OwcPpTt58hzQl6pUvPY/K+YpZGtV615FEkLqcx/4gH languages/vbnet.min.js +sha384-JD7NRQE4aItNlS0ZsZxwGuGJ8fLMgZdGy/zLgsJCShPniouUE1ikIydZUERtkosh languages/vbscript-html.min.js +sha384-oj/bTFwyS+cCp57uOUVZ3XbAuIe/NXUKlgJa2BFpZ6NlC+U2IKJgvUIDfDurzf0K languages/vbscript.min.js +sha384-lnLie4IaUN5+UmOmYOGKnjVl11qbj6YDd+v/AN0Yht8uOPXvco6fAhiGRJTu7Dwb languages/verilog.min.js +sha384-uFtHnKgkUMPurMGPu/hf8OXkO0/Z3tEpUTGO2CDpkZ+9Duv1jFuPWbwFEdTEdwLe languages/vhdl.min.js +sha384-sTcBTpPfPQ+zTJGCHuwYZfs5+r04YxFZwJ2sRb5bkPQbLCIj+PgtqV1eM5DXfYWP languages/vim.min.js +sha384-BNpKC3AFKcFCohfjnfbsu1wWizSAy8y4SmZ0+Zhznt/uw2MNqRu30NL8tDdODnbQ languages/wasm.min.js +sha384-I6mhowbnu0ZMyJnp+uw4h2p4lOrsxUiw8A8wMiJCj5vW7lwoTHFbtOqfsXp0DeQW languages/wren.min.js +sha384-OTt5uy5kf+2CDfIxZZSVOZgEr7C7PQOzIMYb7CNfXOe82n4B+zN4JUwAEcCzOgNG languages/xl.min.js +sha384-QVZ+m2Q4pBQj3XpgpyE7kiKYY7Z/b55Xgf1hIpg/26PjfQtvn/YGYOt2B9F5eExw languages/xml.min.js +sha384-6xFNBPtFszho+m5kclphryIts6IP5dnCml7C1ocugYkPrjFJXTjv/8xv3UtCRMjW languages/xquery.min.js +sha384-E9VpZq+poGRLEoyGHF52nKOUzQSPGQ6oRmNk96OLOhfQK7iQqFodh2oAlntRjKqN languages/yaml.min.js +sha384-0jW+Q5nwV/G/DNMX7FvDjNmNErVP0pwENrw+DitI0MsE+/TtX3z5fIabYvbDnYBg languages/zephir.min.js +sha384-zrCx2ZQcmZM+pIaUhnKZODDHPjJ20Yj8G9FEEJ4ZH3xscMBFoItXq02OrseH0bRo languages/parser3.min.js +sha384-ogL4AWEzvsyO2uwKIoyFRzZWKdxbDiCqsPVayy3gJXWkR1y4feL9MwOCygJidZmQ languages/gauss.min.js +sha384-z15ybbiAm6IlMTUcjYe8kzDqE41p2bPR7yyTqk4yNiZ2hnNY8QR0r+Ta6r6m0Cvy languages/mel.min.js +sha384-XiZUBZZ2khpwjrjCVQ63moPm7UFYqBS8i9FqoSisCOGcl4U58pxnqH+jSmXg4dp/ languages/dsconfig.min.js +sha384-Amn+HXvYwCZrGRf8bsJgb1gkcPxzNfcozmUt4Co7tHYEDwdV/ZSxbDKuNqeYS2OJ languages/dust.min.js +sha384-nzevQRuclIHdkHDUFOAWtmBkNdBEDmNz3UCWzA7P1y2FCzGhWwC0UkUBTmCSNH8y languages/dts.min.js +sha384-SBM+tKWcGjYV1hcfPEFLLTxLvnJenfFBuTXfGfxfucFXQMRrlE8KEwTa09Q4EG0R languages/pgsql.min.js +sha384-2U2Xa1wsjWvrwf8mFmsvAv3acSabP3eIG31/a4hrr16/yO9WiBDbpA9FghOiGhej languages/stata.min.js +sha384-KLO24NsmNyBP3gnsH9JExc1UQBMiIVV+7OwnkN2JklKlpv3g04Etjgca2ZBZz7eL languages/x86asm.min.js +sha384-0SW1OiZJ0WbwmtHBZuYzMHgbxbRYt3iCP0ocfM9uXIZTgQOqCknSFi6LthVbnZRj languages/maxima.min.js +sha384-d9DHAkp1Z3hDfmHa+zLuFWhWwWoF+hdxFYFApXUWKPLMEvmkr+c7NPuioj8d5+1D languages/1c.min.js +sha384-vZwGFxKqG7QOFGnLAn6xZ/U4bfQwZ1HIK31Y8h09Bi3NMfeYikp2T0UeQ32lRLjA es/languages/abnf.min.js +sha384-aH63dwOZCYcS4UNHF/W2asQBjVZLzRCo1iVqz25sQITBw8Es+CyuFK7GepiCBj7Z es/languages/accesslog.min.js +sha384-9BbvtIHrlK0SavjYk0LKm2cnc2gAqNFiwTKnauDFjdYQqVYtPleWxwcVufi9jJ/Y es/languages/actionscript.min.js +sha384-r46gCx3kjd7Ebpo+8tSS97XnWZVvaKzIkx/7pvH11SyVPqESMUD8h7HH6R+I14LX es/languages/ada.min.js +sha384-0nAbmVrX7qr5cCvdX7QU4gQX7RF0loKLyNuQm+ZbsTqMwTAJ/OuMxGmW4rlNi1yN es/languages/angelscript.min.js +sha384-0gs6itOMKpmlv93riwHpx2EVR9ZG9jSxCqI6HcTHJOt8fZV4Oihpp5mo0/yjR57E es/languages/apache.min.js +sha384-tLHzQFerZTkmgoftYwDxTp221K5//HJlLS6gRXXQsSy8L8vSZJnQ0872sZ5lHv1a es/languages/applescript.min.js +sha384-BMj6TMBSxTn4+yl9Uh2C6HbpUEmq6TkqZnUGmBvgX8H9rFiwWHa+nqJWVNoQoj6R es/languages/arcade.min.js +sha384-jMFtMb6kf5WMBEWMHXmFRNErGM6Qc2rCMwpQqPbTCh7vi+8scZwTduTcjYDMZJQS es/languages/armasm.min.js +sha384-FtVVNb3k6VUYdcviq8zbYUSckhQmWgJyiyF3xhbPrGxN5eXwzM2zE7rkTA1bhyol es/languages/asciidoc.min.js +sha384-1sczkTpp0wlvaGA+RhXo9SO6ACv3j8fWjjg7mUfg3qWf7T3QkLWrX5jHyftx1lLo es/languages/aspectj.min.js +sha384-4k8JrTANx72uGfaZ/u26deknlPIW99eTw394+QyyW3gFO/kCH9ZUDtMfQ+xIDMFh es/languages/autohotkey.min.js +sha384-2cFBQVnPEFeovnSd/ZvZ2i+igk0t/JreZdMNovOzIMg75JL0L/yhWHALGMuiW85E es/languages/autoit.min.js +sha384-Ch8xyZ/9AFka0OkcydOUJ35jAoeHWTCEsPxTTy4CG3HdQtTtNd4cA7XUB+c/DCkF es/languages/avrasm.min.js +sha384-5vNTohuBxYx9jAkDyKlZZ5io008pOEZ4OjfYeO8Abnrrl4mqc/efcA9jvYtptL3U es/languages/awk.min.js +sha384-4ZNYpNMyWYQLmnOfs9jXwJZJPrOX5owVtD/dOMOXUfTuz9B9DcKUjwgmRz1ozIfY es/languages/axapta.min.js +sha384-vvGIMuuSefsyBMK7YEodOX+X3OBt4RK6dHNFYuFoTVQGTUGGGKa1sTx02Zqkcr+k es/languages/bash.min.js +sha384-DV7hyq5cMULEjFtnUO4xe/CCV5kYTb+SmRD+1ivQG/XmkLuKTuqlVOEMRZSGT3El es/languages/basic.min.js +sha384-kFPgzK0izWAarNbArxXDrBs/ynCKDaBmv28gWIOnw5EPToR/RSWBykwhZFdN2pO/ es/languages/bnf.min.js +sha384-5jcVU/7j+iEDizV7zWklEp6vuYC7T8nggXA5FZFfpW3KOtZYoYtB9rV4SPsteAbn es/languages/brainfuck.min.js +sha384-0ed9rCa2OuXQJKobbM5Use5VlTJqaUAi2qcmqN8r2ni6vxj/gmvOYUVxzUm1pTZZ es/languages/c.min.js +sha384-/9EemhgkvB5HBdH7XJOH0aw2KPmQcKxYi3g+MgbqYUJzG66tzoLebfui7kMuYcGu es/languages/cal.min.js +sha384-wBp8cTlpaEtM/2gzBoWUyS1+ojTx1c1bCJq/nSPzQy7z3xq8tMATdvP9wkJ2QAeP es/languages/capnproto.min.js +sha384-3KJ0snJxyZE888v2tFUObWPioMyVsYPqe3UNW4mECKyaWODDgKx8mbEPvVB6RrsV es/languages/ceylon.min.js +sha384-uwlghw2UXC63EWEqlxk5ZaCosWjuUb5yeudjHsys/D00P7wwdYG2XhwXUPEu1cpj es/languages/clean.min.js +sha384-pDnEpz4dJIsOuP3m0+puGGngdMZ/JSEb6b5UjTHFjjbK0bQrpvIYSo1fdAaRxpWD es/languages/clojure-repl.min.js +sha384-+fj91kiYzobMduVmOrbfom11bvMFMbtqzbTGXyOHRdrN4ygLTPTQMNrngdg+PVI0 es/languages/clojure.min.js +sha384-rkJ9Dhxf7UW16WPbPo+abcq7JhF+98ptVWsG8rlVi2+GENp3q9PD1foJnjLMG7sU es/languages/cmake.min.js +sha384-hzc/r9NGgay/fu/kX3DhOE6SvPGIl2Cha0WWnoly5hyPMUNNJ1VEesZgsFiTU1kb es/languages/coq.min.js +sha384-tBUVPy7+AGU7v4CEqm9GABarII03WIh6oB6xtWVttu5Fc2nA1RbnfBhxWiMlBZUE es/languages/cos.min.js +sha384-jo8T79clU4QxtKZxKjlJgYbjaNtfzzCxB2My8oMIrSfYCyotz8CI8k0gqQCEOcSM es/languages/cpp.min.js +sha384-Z4o/4rylryQekiD2SHRoS6ADGU/J/7Wvw7otPq3PFKmvK463NeDXCbwVnD/GxsWG es/languages/crmsh.min.js +sha384-r0O2E9zK+JWj1BcE8Xop0co1Thj6bWIadBMvN0FE67jBtomG1oHCa8bxq+1VytN0 es/languages/crystal.min.js +sha384-H783T3/V53bK3Cc7aH/FsDJrXlIhBMWdTVpusatsYcqLE4kZj0nPG0aLY284iC5Q es/languages/csharp.min.js +sha384-4UTPol6pUoBQFdmJuyiFgVA25Su8mEJu3iCvJrVvyU5XiHpslEt6nZ3IHfsnsvcQ es/languages/csp.min.js +sha384-SXCX0V+M0FVPrJEO9ZEpS3m9XNvb+6ri/SJ0PeYMbNCFYen+OSteL/zvqVwk3RCe es/languages/d.min.js +sha384-fzj3Z5pr5piPmIvzd2y0W0iL1hMnO4uDoFX4E0BiuFc6IX7/9GExg9z+rdtsa+HV es/languages/dart.min.js +sha384-w+JopPgc9Z2OK8qqUEep4trNAG6/xffK7ie6uRuh/Oobzf282Wv/Xmk+Ow1js03a es/languages/delphi.min.js +sha384-lYJsbJOBe66LVPGFLdfY5eH3UxyqlcHpLNaCqCD4qzpXcO6Uu7rVykUoKImpbHho es/languages/diff.min.js +sha384-rtkcZgHMYvJvBqj5I9tfAoP3HqFOrCQJTIBpqarlx6JuYNGml18bxqf+MHAPF3Xa es/languages/django.min.js +sha384-1EGAiVaUMgfNAzoLIDY7IMfvtuo6pwReZIEE+V6Xr9SutD+EO9kPDQDSKGxlUQgH es/languages/dns.min.js +sha384-y2/QSNZqtA/BScsNKoOFqPKYngPLmBdRNyrDD9qgwFoa8F6JTZipjArpeR7RwMqD es/languages/dockerfile.min.js +sha384-Jt+L9v2tvh5nUl5U83F/Z1V1yUIE6YKw1EWcUCk0qL0oG+ddcNJrI4lwQLJct+AE es/languages/dos.min.js +sha384-bZmBkKye1EhLscyGIurMoyEhNWUwjc43FfPPGfAOac7XmHp+KrwGDsMO1/HP9ial es/languages/ebnf.min.js +sha384-bV1W8gLIMo4pFF6nI59UKdZJ1FDtON9+wv8MRXJZr44EcjE8zj32nlB91EwngsCI es/languages/elixir.min.js +sha384-Nkd8VivENDot3hCzvDIAw3QFqAOD7iURphnS/kqe5khp6a4MZAGJ1mJG5JTVYNe/ es/languages/elm.min.js +sha384-TheZM55bmZYetXUKSd/CRQwu9+3XiSO7MgSVnDmwORQwSDIJ6B9+QdnhklCIEmva es/languages/erb.min.js +sha384-JXVG8/Oq7OEmKGcRuDij2/W87ucVLKUY4SdWMA+StcFA0/P/vS9k4Os6zLmzRcXv es/languages/erlang-repl.min.js +sha384-CRejkq1hqDWs3HoKEJejYyHZEVvAVs3h5CRZNU8BsaWlh4IAwvBN6QwvRuUPRyz3 es/languages/erlang.min.js +sha384-sSzz0Ej0VM9V2jE34Lw4Yv/eZhgtfZATAFJ+elLe9oFzf+FVimV31sCkyAtPapFA es/languages/excel.min.js +sha384-yx+/R9gXbmca4ORPO0PcEOXmhGVME/PfWd7Px3OL68qI2enbI5nHuz8IW1I54otf es/languages/fix.min.js +sha384-DNqKyQ2BKdgh5Q1FQQkBikiTwSwZytNoOcfIb4OdO+rt6GLdou70xaANXIMrglqm es/languages/flix.min.js +sha384-HwxQ16rZD0iMTrO4Y3ZeKgdpXBlun2o45gxAihf0PUAJX3NI1Hh1LyJ632onMGOR es/languages/fortran.min.js +sha384-V79Agif3kcKn9uJPHPN9pxEeRg4QN0vkDXcyixKMDzcOByrrJ9YtugJY+cF/ckJB es/languages/gams.min.js +sha384-7v5jXr+MUN2IxVYvvNOusmUpL2p8wtZaIRRbDoeojX4bv9QuTkFLCNYX19ieBv+a es/languages/gcode.min.js +sha384-ReUzUUctezGgHVHLXOBJDVhm8ncAr7CdQvmiN7meP2F0Xy4iec7mW2WSpDDLtHOM es/languages/gherkin.min.js +sha384-i/w8jIwL1y7lul32cOeW55d+LFRZokgXqjYOF6YTxdjBpZG+TxIdsAb4N/Mqz3AN es/languages/glsl.min.js +sha384-0Lge8Q3gkPiBmuhQWo/NODLTQHdLAVyld1ZWuffsTUiljg4RIliSu2ngdo8+PiAI es/languages/go.min.js +sha384-vB9hdQF82d7MA6UgU+A0fquNLIziuxNEn/GvbIIsFcNvQxADTbgai68aM31a2wWS es/languages/golo.min.js +sha384-vexIRfvWosLqv8JLeCY4tJbRjlWChuM9p5Ycf1wgAbzI4XQWBynryd9HHctcKULh es/languages/gradle.min.js +sha384-sPllOhz+hk+PxPPGdR0UeCDDWAhzwHtoXpwa4OchHD88pzBU90PRmYzWyLt9BrTS es/languages/graphql.min.js +sha384-PezHpZfoyYY8BmgOV3ogy1rwuAjOcGMiA4AtUs3i6iZ7m2iukOrqcAOwTIyCdi7i es/languages/haml.min.js +sha384-8C9A1UdPB1UZxa4JoUyMgGPQ+yT56Z6LY5dZfP4KqGYZ0yB+3e/PEivqB6wbzSgW es/languages/groovy.min.js +sha384-4hXDtv63cFCXp8rvXCl2I7ATX+hDt/y7D3FmD4lJamG/+8G8P9sGnWq4BL+EwXjp es/languages/handlebars.min.js +sha384-y84R3YozQxGbaQ0zilF8loQjKQrfwMG68fV47vn7E7qzJXpKCr1XoOTVy+C4at6n es/languages/haskell.min.js +sha384-7ktciqOF8h74zHArYMA5EbW0NhNqQ75TiUpUYkVok6VxlzvNDNc9bReB0cNKe3aM es/languages/haxe.min.js +sha384-ike1K58I73YYGNIywLgawq2IFWOv0tDVU1bU2LutxnNTJCADtBXv/BiiuUxJMyN6 es/languages/hsp.min.js +sha384-4Lqea1o3zRErOVpcJYIEx/xtde5rkKlK0RBdybdbuxSKQUq9ZJESoO98Nfo/a5ow es/languages/http.min.js +sha384-eIkJQpwld1OU3UbV7Ky1Cc2lG8NaQWnyXtJnVZI8e5gtafTQsqv0RPi+30ziUsqw es/languages/hy.min.js +sha384-9WZiSHGIeOEMyEXAPa+BHqfTpPFnSkpVW8fWAVehb7vGsws8hyhRBq6AXG8/7U1h es/languages/inform7.min.js +sha384-oMkqNgiD7maKde9spvMbhKMmVAfECvvK3LEM6lsApNnbuoAPjMfhgz9HD6dfusa+ es/languages/ini.min.js +sha384-ycTBw69hkkwdRlrN+3IRBjXsLnxOgSeT0P2A28GpunKEuhAQ3VTUEe89xm6FtCOP es/languages/irpf90.min.js +sha384-cJKdo+f0Qee/nQc4XreI9oTGjNsK6yenKaTWR06zv8T+nfwCr23HLMmUGLUGp4h6 es/languages/jboss-cli.min.js +sha384-9ZfhbXgA8vPWk9u4pmZiytLc1Ix11GBq6usHwUVebEYYQJRiqxx38kfAIAFFkEIn es/languages/json.min.js +sha384-8/7Zltp3QwdcNfuvEcsBUrffH/slowY7YTcFMmCoLuXkyiX/QwYY3QH50Q0A/SuE es/languages/julia-repl.min.js +sha384-2+3fEJ5fgBM4h6sfP9/JeOY842MFETt8SeoYOnX2hcqzeGvenx/Kr5JaZuu/D+bM es/languages/julia.min.js +sha384-Nj85v4unxXYbIL6LlsuKn9zmAlvTIhwhfTXjqvZ8mTh2pOCcSTISDN+y3asQeVGz es/languages/lasso.min.js +sha384-9/vyrBop3xK0RHhGjueybwI2CDCOaW78M/BuRDA7fxYqUAoKKT84fF6z9feE1eTU es/languages/latex.min.js +sha384-nJKRfyEu3Nzfdk7vaqfPKjRVMZ9cZl2iaxjCBUfIMk9GKaS1u7SQnpMKmeYdpRGO es/languages/ldif.min.js +sha384-vZJc4BJdtqiPTIeKWnFlMnzLlh48ECNolrjS1b6Kkn1vToLOt3LIpxJOMlp9pB46 es/languages/leaf.min.js +sha384-cG4BE6FOyg9J2arT2vlHN5WukF5ZjtE3w8hxxLrRgJ6cgFmnnWruSDateGPS++A5 es/languages/lisp.min.js +sha384-WZhqUAgF6Wo7e9jczjwJ1xsADXYBW0ZxpiYXn/HrR7t3EATuGQdy9qakjyC6FjO7 es/languages/livecodeserver.min.js +sha384-NDSxxSCM6xDtk2ny5V99eH4JAFJy1jJsETYZ34eKya37YzqePP7xrCeF631Nqgiv es/languages/lsl.min.js +sha384-Ejz9/vq5IVBe1c0yMGdC1J/xtqtyk7NMErrSttqMLsqA1A8Q5M8S2/wAZx9QY06J es/languages/llvm.min.js +sha384-aI4PwQ6eiaDle9o03RnayGxEh+1FvH8bGo6whcYufMNELqbc9vfIaHAkskI3hYOp es/languages/lua.min.js +sha384-uHVggrBycnxX7cJApYOHiDPUkW0cmAKFyGyDJpTQCJzLRs8IScvKMz4vKz1Yqviq es/languages/makefile.min.js +sha384-X/q41I88n7UzV97QlEeVU0gwfXOYCRA3lxbHRe+RwQagcu5JiKNn4tJUnJuC8aRN es/languages/markdown.min.js +sha384-34SS73BprmFLi50ALFwhnv9AT1hN9A5Uhz4DLJtW6wLL4r123k8sDecVQ5QY1nAa es/languages/matlab.min.js +sha384-UpID2eH8ewtRWfZXfTCD1yyFA0uQ57sgT+cgXI02G4rSCYEdCjteRMhf+FVjPjyd es/languages/mercury.min.js +sha384-smmBbm6rK5FCSE7vuOEnekOiQhmVz8/65q0Lpitex8B5m/wQIeh5EpQai1T4p7ID es/languages/mipsasm.min.js +sha384-MMJTTzUm4+COl8xDdh8LPv4ouf+a94Yj2+YARNlSQuiPYowdHE1KiU+ZCDBgRROB es/languages/mizar.min.js +sha384-hhckrsGplr4Vu+QLd+prj1U1WP6LZMo4cF6fTfrqGCoppdISqesohPEwY5ccjZt6 es/languages/mojolicious.min.js +sha384-lQCnwzigg85/npBmRflR9enDcYGso+Lvl8QTkF53DQpmdtN5D+gKXEGG7w0GwCyn es/languages/moonscript.min.js +sha384-Ap+gn8a9hJD0HZNYt5LfSLwsdBMs+qelf+Wk9SEOlkqnK3T3X0sCkAV0ICuUgSym es/languages/monkey.min.js +sha384-qs09e6bDAWFlmgP2gGBdCfypP24R1cuYoYHxAoWH796PsIApzNjQWap60ad/Wle9 es/languages/n1ql.min.js +sha384-KqzatixlwHuiVivw+OSe7j9Uorqy69jrfvnxVod+DiyMtlr+tcW10y3w1OxJPg93 es/languages/nestedtext.min.js +sha384-NnrmiTCJpdlvqWmOEAJmOnjJt3raR1bbHVRKrTf86uX+5+B6lLg1n1bNb9EFOkOL es/languages/nim.min.js +sha384-cqqhYpViplWKcCJOW6HrBEBDsEuud7lb8FSecmVxyjeXn6dLKqz2/rJZClBUBp0Q es/languages/nix.min.js +sha384-KKtDny6dj4GbvhT3fQIIrRYf12NDnI66xBJk332eoNIfdPbrkrkegOHaXOeR+nt8 es/languages/node-repl.min.js +sha384-hs2LkYUhDao6UzxI7t3F9JG7F9AdWDTSrMO/A+5tcvQQgN9AicfYeY8abXhRJSv5 es/languages/nginx.min.js +sha384-y1ZBkK7AAraPOYCIXBrdsd3V4MO2QI5keBAv4op1jTIZ8QyYRo2XMB9ybJF7rKEi es/languages/objectivec.min.js +sha384-zXRx/aN9MVz0q5SwlnvV4PXPsF/PfWQ1JCuxiBGq3nP0Mi24fcJxmsGAUxRCHKAZ es/languages/ocaml.min.js +sha384-HkwOWx30qOEIxMGrv1DjJICzNLlx4WxWC97ZQ9G8YNfuuhK74JpARWlZjhwIHnj7 es/languages/openscad.min.js +sha384-EPCdVMdNbPmsSxy4+4wgGOGCE9s2pRyZgBCM5RslUM+KJhQu1gZek05ligvvdJM8 es/languages/oxygene.min.js +sha384-JX9X3rNfFRgrBGJpUutvmR4kFE+pYNghKRmkHfY9UXQZ4Lazb2v4DRvCjUpLE3BY es/languages/pf.min.js +sha384-SN5YOzZddPoL7DDVdCvvVvHHpDsfZp6Xj0zyiRWmSN87IJCAoc8Np0SJpsujn0j0 es/languages/perl.min.js +sha384-gQafFuXFGSlfvsjDQAH4TW/pE9Q3shOSfukVGZdQYqWb7RMUrux/LXUtZq21kOT3 es/languages/php-template.min.js +sha384-Lbbz+EIU4FttO2f9X/EmVOP/xCeTLUgf0Fs5ONsR6U3/TbfYiNyFoQ2khqmcaJpk es/languages/php.min.js +sha384-2aCy6JEFB3d1Op03J8xDb0GTVSXhKaEO6ghqrzVSx8hNBC67FuzIZgp8N8xNuquQ es/languages/plaintext.min.js +sha384-DqKDH8RpybmViHnhVr4pfdEqJgfSBvqlY3qQiu/GcfFZCjK5BFj976q2otlEvRhR es/languages/pony.min.js +sha384-DJeYPUiASi7C/5CaMsM7SC83xjI0mp/QfWmWJrBJUFldEU9/F90i4Q2fOTsmiCz6 es/languages/powershell.min.js +sha384-wSJFkmjffdbicOMbCVvu+nWUYBCAv47uTgvaDLBlCiFdi4GWZAkdbNEGhQW6KUo9 es/languages/processing.min.js +sha384-bTSHV25LMEcQDFsT+WWPWGILh9yhhNwLRRY+5GisNEdb+TKdP+8eHWdL3+YiYXga es/languages/profile.min.js +sha384-4rrh2cnHt82evT0SEm3wX1cxGzKSaUwAj+CdaYj6gkn63TB3WKV8mL8AHsn9O80Q es/languages/prolog.min.js +sha384-f0d+TaVA00gm8NSV9IzFmRByfM9RY+K3tjyJUWkX2tkfDKBOOUNnQKBS4fl9pgRd es/languages/properties.min.js +sha384-Sggw92mmlLnaFLurzLirGOFxa4++VRMLLfBVj2gL+ojOwt1JRk93JBaPDHu7zKHm es/languages/protobuf.min.js +sha384-j40J5Vjx7Cni9YYZuTgGxSeWTAn60X8xzEmaNr21j/OMkC5AkqIyMOuO0Obi0a8v es/languages/puppet.min.js +sha384-mPmEpu5ThWEpzYnZdNba/WFR1w4wzFRF60GogHcscCW7+ohQN6K4LY2LMM9NyP87 es/languages/purebasic.min.js +sha384-2DRJBl02JqUsTErLRZ818FPi7HB0KjwPIbnhx8APwrNn3BP1HoJYkBizf/tA0sEb es/languages/python-repl.min.js +sha384-H58YuejjFvByN7GBO5TzbhtxoqyTZ3dTARHeyo5Ymmddx803bZcAp4w9/LigrO85 es/languages/python.min.js +sha384-8on3n+YbkiCq50MQa137oQWRnSUGkXJJOMCPNGwKS3XT/JK8zxIfqBoDohuh5/sN es/languages/q.min.js +sha384-c7enNWes8jS4Nk/hHdGhONhgBG0EGgj/r07rVXz+gIja2Z3SofzJLxsJ1Le9GWsp es/languages/qml.min.js +sha384-CQRTJUVtgT8MNoYGtq9Q7P0eBVtI+MKQTU+yu5w0HqibyQnEnBJG2Gzm1iWPO9rT es/languages/r.min.js +sha384-oulxy4SGPkrRRv3hH82ysn8cyrTNJqoLUrTy1e8Rp7gXH5FBP2GY7nbnNLkplZjj es/languages/reasonml.min.js +sha384-JxRN1f8gKhLZi4Ap+f06XZauVUeKYjPrgM1NrbPU8PO+jdFI6ZWVi2H7yeTfeASO es/languages/rib.min.js +sha384-amC1eGC6/nsz2naWi52p72S3yNdsJPGlPi5SFg4nEnjFu8Z1/oLgHJzZpEewseWD es/languages/roboconf.min.js +sha384-Vj+Z1ppnal9F/7tvbrRBBvbmq97Uv7910HO9MXUENunE6kxa4kf98Q3ilmJpUWoR es/languages/routeros.min.js +sha384-YWG+hxV+Iy8kTFiUnh4vzsNnW1I2V3YSK0TL1y0n9Md/uFejdP88qMbxC6BgbmNK es/languages/ruby.min.js +sha384-I5kO/USYfDQ/YpcBjOhkcvaLqGNcw+82tOPCKQg+pJ8vEaI2OblcXweIhm69cd6y es/languages/rsl.min.js +sha384-SEeJ+PE3UjD5JAP7Sw0ey+qYisQz1DMfKj8ycPAOuhDrTR4QUhnxIwPP1qyVlrsO es/languages/ruleslanguage.min.js +sha384-Xi59t57tUbNbtQmmE7RyQkZdPYsS7XA5LHJ++qw7blbxV33jEK9YWI/7bLsEDHQO es/languages/rust.min.js +sha384-QNiSqXQF/ZJSJzKjFZ2bt8sxiv+pm8VowT+dBFpaHJ6uFXJzL3nsggleGrCQKJVc es/languages/sas.min.js +sha384-COD94SZIFgvlee7p0jZxyqLGnYtdTPldPXqLknLf3W5vthJC6wj3LoEhYaz0eDC9 es/languages/scala.min.js +sha384-q5vX7uxR62gUcw2HiNbNMC2tg6zg69XZfpi3ZPErgqEuzm8IyizcPZAagRt1fZse es/languages/scheme.min.js +sha384-45a7EF00UZMeL4awSGt5p7oQB63Jwm90VwmCkPPOQWyhOdYI3FRQSUbATPu+UHd4 es/languages/scilab.min.js +sha384-KkHVBSmSSGZH701XFNTSEmi9W8ujN62BraqfdoqGxPBnNHEDFXhMas/d0cfvy0iR es/languages/shell.min.js +sha384-5BJ/l2aC3AtiacQFB/X2J4Py5H7+pangA1lRtdC1o0/IDk41qUCPNnvU0sDIBX5z es/languages/smali.min.js +sha384-dWZLvZGnAnLgfpfAgTayFBlbQ2MoQkoY86M5TNj2K07rvvP7x/V1f34vMh7/a7fL es/languages/smalltalk.min.js +sha384-5z02e2BLhrSgUcDKV2IS2a9zi3jI/fwpJrJUqET//f8H9LPNawUGD8sAOhGSoTum es/languages/sml.min.js +sha384-3JaZB8Lp0SXb7yHwg4O1QRvP3VYYr2OkjkuJVXPugEgVbQiuCtNQhi/fJ13tM25T languages/sqf.min.js +sha384-ccdC6+PVDumPW/ZCD3n48SkrjqPX626DFPWkOldfb0RzHb1ONezH/vstAnpDQbXK es/languages/sql.min.js +sha384-YTN2E/G8UaiUOg58dxX2k+psYz6pI69/tBarOxOKEstbO+DihkxT3Kn3MC7YgH7f es/languages/stan.min.js +sha384-i/1X57RE4uhzet0WPa/VSHFJZQCU7IXv2okh/+irdT3DrTKtQv7dJRp+Fcw9HuCt es/languages/step21.min.js +sha384-d7WYFjcZ5llVMNyqSEMeife4j8vp5r2HGT59chcdMTT3nXK6RKBA5rqdkjJoDvJ7 es/languages/subunit.min.js +sha384-kHt1/Uni78mSvQIfuxj5UAwYhcEAXnqRSis3NWs4yWzaumfocziBUXY1QT6Hb5bg es/languages/taggerscript.min.js +sha384-H4+K0a/IaEzJwDjpEtcNM4wbbZFCosAc824mg9MLlnu8gKRLE11w7EPS4ksYZ6sd es/languages/tap.min.js +sha384-jvMObKy0OrikQOJAQaI74rvT0Plz5Z4Plm46CxsF7ZX6n7XkEOQQ3I3pe2OKWPft es/languages/tcl.min.js +sha384-AX3CUFbxsP34rQoveSVvdrBzTFDi+0TYL1ElyqLhmcVd6Rf83OJBLZYIMpKhD7my es/languages/thrift.min.js +sha384-N/iKLW6WLSqpfqhClJtZwk8yEhXwEoTjeaJEn5X3E4+0vqdOA7s6S32+va4wZWbQ es/languages/twig.min.js +sha384-E1L2lprodexj8AfaNwZ4/9DJy2T518/Z0bm/OSxl1ja6tCRnfnlzRU4yCBy7ZgHD es/languages/tp.min.js +sha384-z/T3scOdptv4bY4P2nkmaLzLSqwc4G/LkizqUKyUkZUsThqgQPl52PsjTyi2IlEj es/languages/vala.min.js +sha384-261r+vQRe3NeUKaE1UWEWBTJoqrlyMp/ScTfQ0B7x6OmDWIf1niJBX6UFdBppj5b es/languages/vbnet.min.js +sha384-QpxCNuC27DSI513sK8dP8jAtN3ELbKUP1hHc4XNKFzxHSeiZ+x6XozLw085Wmskr es/languages/vbscript-html.min.js +sha384-fIfeVffAca1NwFefUmM1E1zlLDB1l7vQJ3dF4UG868k+GVE0tH9A+otPV25jkN9p es/languages/vbscript.min.js +sha384-xadZ9Mwk5iciGQeTyxIhA33ONsP/GYQvJOU7rbkBcvYDSaCd3cpG6O/YkBOyZYgE es/languages/verilog.min.js +sha384-0QgExm+Ma+7MziryGCiLLyzbQicUphMmdpNY1P+akukzyfcR8sbJ6Jqs1q63ft5V es/languages/vhdl.min.js +sha384-Tfu4joDYeyCsJG6qQJPLdt3vuYBClbZUpA8EAARQyFBqYpRQcOOqKnwEBDPgDJfy es/languages/vim.min.js +sha384-PJakpvQdF38W0l9QveQGFLnTuwL9PX+0lYzfHcKR53gWpYGaFLTcy5w73BZ4l0We es/languages/wasm.min.js +sha384-XsRSyIJyYdKZaY5XQCdW3VclDwDQAcQPv3H+lhRuJcR2HLf2sTdpNikiU2yWCnoh es/languages/wren.min.js +sha384-cxEm9CBaIkJMTP06i5/fPfZBG17++93Q/CPDic+dTl1i89WcfVds33zbPqC9emPS es/languages/xl.min.js +sha384-9oHHKuuGMcCMQzZJQ7DQrVFYtDK2psO++Cw1/yZpVmyKDPo7eC9AIP93qKMGHsMn es/languages/xml.min.js +sha384-QQFS11Zpe62si5zjtoA/fqQPRJsx2btCZCBS2BW2wkBztONZtxAjSnG4MEecEFY7 es/languages/xquery.min.js +sha384-HF0nYRdx/g1FMPCrLNc1F4VNrkyvsnpMhK43cxH6whjIudKpH1ItKUSjyiIOmsoT es/languages/yaml.min.js +sha384-2Ph73nc0HvX45JpBshrqyMfzuUxi0GbccDJzcNkolim16vi04fNGiLqiFMHqZNbx es/languages/zephir.min.js +sha384-JuxSzs6faTTonuuhril+9BnzR4YE71Fyaqd92YXkvxW0YZJCLNMjdKoqm65aORqu es/languages/parser3.min.js +sha384-u4ACJ6zRN8SRgBH+BNthfTMbX2c8VM6IC5MwQPRE4RysX/UAb0Y0sYP4pt2+LUpc es/languages/gauss.min.js +sha384-b44FXRWvvz69yR6UjtsJBJOcP5djhcFNbu00TOxJ8WtKD9BzqJYxR9YIgKMpB4+f languages/gml.min.js +sha384-qwWvi/gEMfSOYVEut4c75Fsk0WggqxWEzk/NGkQruRB2+2U2avMW4B9p9tKSXYwg es/languages/dsconfig.min.js +sha384-gS4VVORSHk+hbPy8woW/xJgN0yFZSyE85SufDOoGA+yzyLa7IolNvLmhH6Nxo4DA es/languages/dust.min.js +sha384-9LOwW7vb8GRsFc5SdTcK+jmF/VcUwxl7OFnT+UKYo7o5ZeQVwW4rKLbazhz1HDs4 es/languages/dts.min.js +sha384-U5kCdehnrAfJUqNpc6dCUTFb0im3cbKbuUscG4gBAs4oy6nHvxfJ4GYZFc8o1j3J es/languages/mel.min.js +sha384-FY8b6KC6C18+845vKwtaLK1J/TJ/b0Pk1YrsO9HGvQTUMKF8EUc1RdMKQ0+wIYGU es/languages/pgsql.min.js +sha384-YdUURwcSdcrMdraxWwYLFi5uxVo56AAdfT3oCKdzOeAvricXoUqaGiWjJwtILV3p es/languages/stata.min.js +sha384-VyT4rDIU6LcfvnTFX+TGqSTEyNV91e75L1vq6uOiMoDnX5SAtH64f+NunSm1geNv es/languages/x86asm.min.js +sha384-gZBE9LjpYxATv7ItxU2WYQ0YLJ3dMenrmwqvKX74DRr+hP2fFwELPTlYSd566GYp languages/isbl.min.js +sha384-ucy+EEMr3dudT3OqvK1wtpEpsDlSO6YjJQPIKg4M5MHZbfQPTe/XG5aXh34ykGAG es/languages/maxima.min.js +sha384-lU0G3BUDMVkQ/j4bFuzpzeoSTGRco1KOcA7XhL9ixztdKRPCU2eId6BRymwzJ4y6 es/languages/sqf.min.js +sha384-m6+jwMXWldke74+g00kdA05S0T2BTK5HLU84vimZYbFh62Y+hJc3AfMCkw9xg814 es/languages/gml.min.js +sha384-OmsG99ZoimTYVAkGXKurzPJV9nOupPq6XZovMrQmO54/Zfc33lhZWaFmdU5lIO7d es/languages/isbl.min.js +sha384-ZeRlL93a14C9TpOteJYeBNumAy4CGJrYLEuXavIbTN6Jl6f98SiCD2+5kbhpscOf es/languages/1c.min.js +sha384-7ArLU+f1/qhVVHcOZ0ldkM00kgred5WTPVUY/yvEsL5MzXZ+yDPhLW5DF2zZjEjs languages/arduino.min.js +sha384-uvUMwnqJnWLAIxByubckbmzV9CuBr1YjlChk9VH9fftWJUed5d1BYHJOuWMioSfL languages/fsharp.min.js +sha384-Tk/yCllhl9WTsUacwGrZjVCf8rE6s2Uf0yTp1jCTxJB1pXkizIAT2G+emrx9lM/o languages/nsis.min.js +sha384-iz1efG+VF5JrS8dB3+DM5S8ZtEp0pzDOifjmmnEomsxzzTS4MMwNoIKVfWhyS/+V languages/coffeescript.min.js +sha384-SHhXPCX2gNLAr3g7J1jizp2ogvCmt9G7x10X+J3ELuJ3XUGPh8a+cmO+yVeyczEl languages/javascript.min.js +sha384-Zvx+esgh/ZQ1RvphnxDMo0DnGF5DekimKZf/s51FUNvpTbqSh9XWN9VzOsmMZoW/ languages/livescript.min.js +sha384-2NV0rAxtYJUgIdvI8AGKajds0aR9CzQr2Lx/3TewUnieTuja7qiech01s99OKAEe languages/css.min.js +sha384-Y6s90N8qvj1iBkanV26o+AMS/2LhYAYu3KX+hIaSsCRcNxs+dSrrHLvDZhkCoPui languages/less.min.js +sha384-kBUxybeDUzNBI9qPb2siVEodTB87o2DTBT0F0CQDly5vl7ixQcTGaleGKv2z2NME languages/scss.min.js +sha384-iC3jo8aXHggvBGIjZn1cvumecXwko8ogQpL2xPGa0b5mxDVuGFcNy2aNoW69C4MU languages/stylus.min.js +sha384-ppS3kmYuIwUHk7ZpUIgfhshP0bdLTCuGZfTXAsF8MNaTCsTGSj7IKqFGm9ERyTMd languages/java.min.js +sha384-m7s7hvqy10rUilBF+4c5S7SNeBcBU9Nk8biWVpO2K3qIoBL10MH+kTCpUja8eNUa languages/kotlin.min.js +sha384-G0QnP9AoA9z0DiHjDtwLS3SPr9OsLAdX9NLvg8FFvq4zmchjcNq1G5Z8p8fV7GMJ es/languages/arduino.min.js +sha384-bCKSkbIWIp32toyiikgpZwSMDt3f1HkJ+1D5aPSBgeouJjAedFdJ2bFKKW5rqj8G es/languages/fsharp.min.js +sha384-G/93J76v5ZhJsLSaAyhRGmVkqopgDDNYZx/5Afw28/wPH8vVcWCnPbmvgDkoun0u es/languages/nsis.min.js +sha384-5z5Wqg0v+aDRGtE8ql0qTiDCaFsfdUT2fyjVKjfefLswwbvL8jEYmZBnnR0z0VN3 es/languages/coffeescript.min.js +sha384-DyMEwt9N7i4S+GRUmuxEyx9kyJOqY/NUQWbhhjIF499xyeWlBJnZeaywNHJSMWvn es/languages/javascript.min.js +sha384-uV0va95RrySFmXJR6pAYDwvCbJvk50RXH6hjlm0DHlnF5penjRRzUC3A5jKWLh4n es/languages/livescript.min.js +sha384-XgyICbHI8NcqKGQUkgZHzCk0rYs85wUm6g5MjYo1KUod07OB6C1cwyMq/ss/NcVc es/languages/css.min.js +sha384-jeldGWVyxlorjExh0wwW0rh1I552Y8TMp276NF/u1J62ym/bdsCaAYEJ3Nz2gSg/ es/languages/less.min.js +sha384-4aYZOVxsIWfwuSPvYSRPnVUd+88iLI9ZVqwJjgy0Xkh/9fMvivrj4i3fDRUiBs6k es/languages/scss.min.js +sha384-977g5DQ0UC5VYnnaaLubqsMux9ogyZh2Nv1JjXwqoqVqva8G33tstStuNq5GmqQw es/languages/stylus.min.js +sha384-wTaTo349vOZe72ENFmj9KmmorH0TZkS4pmHL2YYDVcFAxr7f9f9iv3qFLMYw9X4i es/languages/java.min.js +sha384-EsCFk4eb0UjEZ26uSbSrgwkLD2oT2iGwGWpYr3AFiw3eWcF1inTwVzTdYYvtnyum es/languages/kotlin.min.js +sha384-f4paDAxciCRNi20wvqsw+cRLJGMzqL6ACSmflRupuGR+iO14uu2Jq1l/jQcuwrvP languages/mathematica.min.js +sha384-2P2JCH4MG/wqE0WvIxKmjAPI7CoJ4oNEZTAF2vWBsRI9KpwXqCoeAquUC293Ax8F es/languages/mathematica.min.js +sha384-HEEMkUmM4Qq79lFD+lW07y+65uimb0naW+pg+F3yyZWxRa4Ph+I7KB6sFlpu+uGj languages/swift.min.js +sha384-DYoPlCDcXrP3/Twe76kF0hp72pGP0/2BLvB965FR08PxB8fhoLu3lp4OM+IwmitH languages/typescript.min.js +sha384-bPmt8yGeGWKl7WZeNwdw3ah1Sa7PrikWpK36KBv5P0Lj7F0yKvAcFLwWnziKwPJb es/languages/swift.min.js +sha384-EOKjwxtJpPTT2PGJ2whEV3/798as+mCdVqZrIpFpI1SBcVY705sSizRzyjq06wNl es/languages/typescript.min.js +``` diff --git a/src/app/resources/assets/highlight/LICENSE b/src/app/resources/assets/highlight/LICENSE new file mode 100644 index 0000000..2250cc7 --- /dev/null +++ b/src/app/resources/assets/highlight/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2006, Ivan Sagalaev. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/app/resources/assets/highlight/README.md b/src/app/resources/assets/highlight/README.md new file mode 100644 index 0000000..30d84b9 --- /dev/null +++ b/src/app/resources/assets/highlight/README.md @@ -0,0 +1,45 @@ +# Highlight.js CDN Assets + +[![install size](https://packagephobia.now.sh/badge?p=highlight.js)](https://packagephobia.now.sh/result?p=highlight.js) + +**This package contains only the CDN build assets of highlight.js.** + +This may be what you want if you'd like to install the pre-built distributable highlight.js client-side assets via NPM. If you're wanting to use highlight.js mainly on the server-side you likely want the [highlight.js][1] package instead. + +To access these files via CDN:
+https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@latest/build/ + +**If you just want a single .js file with the common languages built-in: +** + +--- + +## Highlight.js + +Highlight.js is a syntax highlighter written in JavaScript. It works in +the browser as well as on the server. It works with pretty much any +markup, doesn’t depend on any framework, and has automatic language +detection. + +If you'd like to read the full README:
+ + +## License + +Highlight.js is released under the BSD License. See [LICENSE][7] file +for details. + +## Links + +The official site for the library is at . + +The Github project may be found at: + +Further in-depth documentation for the API and other topics is at +. + +A list of the Core Team and contributors can be found in the [CONTRIBUTORS.md][8] file. + +[1]: https://www.npmjs.com/package/highlight.js +[7]: https://github.com/highlightjs/highlight.js/blob/main/LICENSE +[8]: https://github.com/highlightjs/highlight.js/blob/main/CONTRIBUTORS.md diff --git a/src/app/resources/assets/highlight/es/core.js b/src/app/resources/assets/highlight/es/core.js new file mode 100644 index 0000000..40b153e --- /dev/null +++ b/src/app/resources/assets/highlight/es/core.js @@ -0,0 +1,2569 @@ +/*! + Highlight.js v11.7.0 (git: 82688fad18) + (c) 2006-2022 undefined and other contributors + License: BSD-3-Clause + */ +var deepFreezeEs6 = {exports: {}}; + +function deepFreeze(obj) { + if (obj instanceof Map) { + obj.clear = obj.delete = obj.set = function () { + throw new Error('map is read-only'); + }; + } else if (obj instanceof Set) { + obj.add = obj.clear = obj.delete = function () { + throw new Error('set is read-only'); + }; + } + + // Freeze self + Object.freeze(obj); + + Object.getOwnPropertyNames(obj).forEach(function (name) { + var prop = obj[name]; + + // Freeze prop if it is an object + if (typeof prop == 'object' && !Object.isFrozen(prop)) { + deepFreeze(prop); + } + }); + + return obj; +} + +deepFreezeEs6.exports = deepFreeze; +deepFreezeEs6.exports.default = deepFreeze; + +/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */ +/** @typedef {import('highlight.js').CompiledMode} CompiledMode */ +/** @implements CallbackResponse */ + +class Response { + /** + * @param {CompiledMode} mode + */ + constructor(mode) { + // eslint-disable-next-line no-undefined + if (mode.data === undefined) mode.data = {}; + + this.data = mode.data; + this.isMatchIgnored = false; + } + + ignoreMatch() { + this.isMatchIgnored = true; + } +} + +/** + * @param {string} value + * @returns {string} + */ +function escapeHTML(value) { + return value + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +/** + * performs a shallow merge of multiple objects into one + * + * @template T + * @param {T} original + * @param {Record[]} objects + * @returns {T} a single new object + */ +function inherit$1(original, ...objects) { + /** @type Record */ + const result = Object.create(null); + + for (const key in original) { + result[key] = original[key]; + } + objects.forEach(function(obj) { + for (const key in obj) { + result[key] = obj[key]; + } + }); + return /** @type {T} */ (result); +} + +/** + * @typedef {object} Renderer + * @property {(text: string) => void} addText + * @property {(node: Node) => void} openNode + * @property {(node: Node) => void} closeNode + * @property {() => string} value + */ + +/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */ +/** @typedef {{walk: (r: Renderer) => void}} Tree */ +/** */ + +const SPAN_CLOSE = ''; + +/** + * Determines if a node needs to be wrapped in + * + * @param {Node} node */ +const emitsWrappingTags = (node) => { + // rarely we can have a sublanguage where language is undefined + // TODO: track down why + return !!node.scope || (node.sublanguage && node.language); +}; + +/** + * + * @param {string} name + * @param {{prefix:string}} options + */ +const scopeToCSSClass = (name, { prefix }) => { + if (name.includes(".")) { + const pieces = name.split("."); + return [ + `${prefix}${pieces.shift()}`, + ...(pieces.map((x, i) => `${x}${"_".repeat(i + 1)}`)) + ].join(" "); + } + return `${prefix}${name}`; +}; + +/** @type {Renderer} */ +class HTMLRenderer { + /** + * Creates a new HTMLRenderer + * + * @param {Tree} parseTree - the parse tree (must support `walk` API) + * @param {{classPrefix: string}} options + */ + constructor(parseTree, options) { + this.buffer = ""; + this.classPrefix = options.classPrefix; + parseTree.walk(this); + } + + /** + * Adds texts to the output stream + * + * @param {string} text */ + addText(text) { + this.buffer += escapeHTML(text); + } + + /** + * Adds a node open to the output stream (if needed) + * + * @param {Node} node */ + openNode(node) { + if (!emitsWrappingTags(node)) return; + + let className = ""; + if (node.sublanguage) { + className = `language-${node.language}`; + } else { + className = scopeToCSSClass(node.scope, { prefix: this.classPrefix }); + } + this.span(className); + } + + /** + * Adds a node close to the output stream (if needed) + * + * @param {Node} node */ + closeNode(node) { + if (!emitsWrappingTags(node)) return; + + this.buffer += SPAN_CLOSE; + } + + /** + * returns the accumulated buffer + */ + value() { + return this.buffer; + } + + // helpers + + /** + * Builds a span element + * + * @param {string} className */ + span(className) { + this.buffer += ``; + } +} + +/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} | string} Node */ +/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} } DataNode */ +/** @typedef {import('highlight.js').Emitter} Emitter */ +/** */ + +/** @returns {DataNode} */ +const newNode = (opts = {}) => { + /** @type DataNode */ + const result = { children: [] }; + Object.assign(result, opts); + return result; +}; + +class TokenTree { + constructor() { + /** @type DataNode */ + this.rootNode = newNode(); + this.stack = [this.rootNode]; + } + + get top() { + return this.stack[this.stack.length - 1]; + } + + get root() { return this.rootNode; } + + /** @param {Node} node */ + add(node) { + this.top.children.push(node); + } + + /** @param {string} scope */ + openNode(scope) { + /** @type Node */ + const node = newNode({ scope }); + this.add(node); + this.stack.push(node); + } + + closeNode() { + if (this.stack.length > 1) { + return this.stack.pop(); + } + // eslint-disable-next-line no-undefined + return undefined; + } + + closeAllNodes() { + while (this.closeNode()); + } + + toJSON() { + return JSON.stringify(this.rootNode, null, 4); + } + + /** + * @typedef { import("./html_renderer").Renderer } Renderer + * @param {Renderer} builder + */ + walk(builder) { + // this does not + return this.constructor._walk(builder, this.rootNode); + // this works + // return TokenTree._walk(builder, this.rootNode); + } + + /** + * @param {Renderer} builder + * @param {Node} node + */ + static _walk(builder, node) { + if (typeof node === "string") { + builder.addText(node); + } else if (node.children) { + builder.openNode(node); + node.children.forEach((child) => this._walk(builder, child)); + builder.closeNode(node); + } + return builder; + } + + /** + * @param {Node} node + */ + static _collapse(node) { + if (typeof node === "string") return; + if (!node.children) return; + + if (node.children.every(el => typeof el === "string")) { + // node.text = node.children.join(""); + // delete node.children; + node.children = [node.children.join("")]; + } else { + node.children.forEach((child) => { + TokenTree._collapse(child); + }); + } + } +} + +/** + Currently this is all private API, but this is the minimal API necessary + that an Emitter must implement to fully support the parser. + + Minimal interface: + + - addKeyword(text, scope) + - addText(text) + - addSublanguage(emitter, subLanguageName) + - finalize() + - openNode(scope) + - closeNode() + - closeAllNodes() + - toHTML() + +*/ + +/** + * @implements {Emitter} + */ +class TokenTreeEmitter extends TokenTree { + /** + * @param {*} options + */ + constructor(options) { + super(); + this.options = options; + } + + /** + * @param {string} text + * @param {string} scope + */ + addKeyword(text, scope) { + if (text === "") { return; } + + this.openNode(scope); + this.addText(text); + this.closeNode(); + } + + /** + * @param {string} text + */ + addText(text) { + if (text === "") { return; } + + this.add(text); + } + + /** + * @param {Emitter & {root: DataNode}} emitter + * @param {string} name + */ + addSublanguage(emitter, name) { + /** @type DataNode */ + const node = emitter.root; + node.sublanguage = true; + node.language = name; + this.add(node); + } + + toHTML() { + const renderer = new HTMLRenderer(this, this.options); + return renderer.value(); + } + + finalize() { + return true; + } +} + +/** + * @param {string} value + * @returns {RegExp} + * */ + +/** + * @param {RegExp | string } re + * @returns {string} + */ +function source(re) { + if (!re) return null; + if (typeof re === "string") return re; + + return re.source; +} + +/** + * @param {RegExp | string } re + * @returns {string} + */ +function lookahead(re) { + return concat('(?=', re, ')'); +} + +/** + * @param {RegExp | string } re + * @returns {string} + */ +function anyNumberOfTimes(re) { + return concat('(?:', re, ')*'); +} + +/** + * @param {RegExp | string } re + * @returns {string} + */ +function optional(re) { + return concat('(?:', re, ')?'); +} + +/** + * @param {...(RegExp | string) } args + * @returns {string} + */ +function concat(...args) { + const joined = args.map((x) => source(x)).join(""); + return joined; +} + +/** + * @param { Array } args + * @returns {object} + */ +function stripOptionsFromArgs(args) { + const opts = args[args.length - 1]; + + if (typeof opts === 'object' && opts.constructor === Object) { + args.splice(args.length - 1, 1); + return opts; + } else { + return {}; + } +} + +/** @typedef { {capture?: boolean} } RegexEitherOptions */ + +/** + * Any of the passed expresssions may match + * + * Creates a huge this | this | that | that match + * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args + * @returns {string} + */ +function either(...args) { + /** @type { object & {capture?: boolean} } */ + const opts = stripOptionsFromArgs(args); + const joined = '(' + + (opts.capture ? "" : "?:") + + args.map((x) => source(x)).join("|") + ")"; + return joined; +} + +/** + * @param {RegExp | string} re + * @returns {number} + */ +function countMatchGroups(re) { + return (new RegExp(re.toString() + '|')).exec('').length - 1; +} + +/** + * Does lexeme start with a regular expression match at the beginning + * @param {RegExp} re + * @param {string} lexeme + */ +function startsWith(re, lexeme) { + const match = re && re.exec(lexeme); + return match && match.index === 0; +} + +// BACKREF_RE matches an open parenthesis or backreference. To avoid +// an incorrect parse, it additionally matches the following: +// - [...] elements, where the meaning of parentheses and escapes change +// - other escape sequences, so we do not misparse escape sequences as +// interesting elements +// - non-matching or lookahead parentheses, which do not capture. These +// follow the '(' with a '?'. +const BACKREF_RE = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./; + +// **INTERNAL** Not intended for outside usage +// join logically computes regexps.join(separator), but fixes the +// backreferences so they continue to match. +// it also places each individual regular expression into it's own +// match group, keeping track of the sequencing of those match groups +// is currently an exercise for the caller. :-) +/** + * @param {(string | RegExp)[]} regexps + * @param {{joinWith: string}} opts + * @returns {string} + */ +function _rewriteBackreferences(regexps, { joinWith }) { + let numCaptures = 0; + + return regexps.map((regex) => { + numCaptures += 1; + const offset = numCaptures; + let re = source(regex); + let out = ''; + + while (re.length > 0) { + const match = BACKREF_RE.exec(re); + if (!match) { + out += re; + break; + } + out += re.substring(0, match.index); + re = re.substring(match.index + match[0].length); + if (match[0][0] === '\\' && match[1]) { + // Adjust the backreference. + out += '\\' + String(Number(match[1]) + offset); + } else { + out += match[0]; + if (match[0] === '(') { + numCaptures++; + } + } + } + return out; + }).map(re => `(${re})`).join(joinWith); +} + +/** @typedef {import('highlight.js').Mode} Mode */ +/** @typedef {import('highlight.js').ModeCallback} ModeCallback */ + +// Common regexps +const MATCH_NOTHING_RE = /\b\B/; +const IDENT_RE = '[a-zA-Z]\\w*'; +const UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*'; +const NUMBER_RE = '\\b\\d+(\\.\\d+)?'; +const C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float +const BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b... +const RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~'; + +/** +* @param { Partial & {binary?: string | RegExp} } opts +*/ +const SHEBANG = (opts = {}) => { + const beginShebang = /^#![ ]*\//; + if (opts.binary) { + opts.begin = concat( + beginShebang, + /.*\b/, + opts.binary, + /\b.*/); + } + return inherit$1({ + scope: 'meta', + begin: beginShebang, + end: /$/, + relevance: 0, + /** @type {ModeCallback} */ + "on:begin": (m, resp) => { + if (m.index !== 0) resp.ignoreMatch(); + } + }, opts); +}; + +// Common modes +const BACKSLASH_ESCAPE = { + begin: '\\\\[\\s\\S]', relevance: 0 +}; +const APOS_STRING_MODE = { + scope: 'string', + begin: '\'', + end: '\'', + illegal: '\\n', + contains: [BACKSLASH_ESCAPE] +}; +const QUOTE_STRING_MODE = { + scope: 'string', + begin: '"', + end: '"', + illegal: '\\n', + contains: [BACKSLASH_ESCAPE] +}; +const PHRASAL_WORDS_MODE = { + begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ +}; +/** + * Creates a comment mode + * + * @param {string | RegExp} begin + * @param {string | RegExp} end + * @param {Mode | {}} [modeOptions] + * @returns {Partial} + */ +const COMMENT = function(begin, end, modeOptions = {}) { + const mode = inherit$1( + { + scope: 'comment', + begin, + end, + contains: [] + }, + modeOptions + ); + mode.contains.push({ + scope: 'doctag', + // hack to avoid the space from being included. the space is necessary to + // match here to prevent the plain text rule below from gobbling up doctags + begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)', + end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/, + excludeBegin: true, + relevance: 0 + }); + const ENGLISH_WORD = either( + // list of common 1 and 2 letter words in English + "I", + "a", + "is", + "so", + "us", + "to", + "at", + "if", + "in", + "it", + "on", + // note: this is not an exhaustive list of contractions, just popular ones + /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc + /[A-Za-z]+[-][a-z]+/, // `no-way`, etc. + /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences + ); + // looking like plain text, more likely to be a comment + mode.contains.push( + { + // TODO: how to include ", (, ) without breaking grammars that use these for + // comment delimiters? + // begin: /[ ]+([()"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()":]?([.][ ]|[ ]|\))){3}/ + // --- + + // this tries to find sequences of 3 english words in a row (without any + // "programming" type syntax) this gives us a strong signal that we've + // TRULY found a comment - vs perhaps scanning with the wrong language. + // It's possible to find something that LOOKS like the start of the + // comment - but then if there is no readable text - good chance it is a + // false match and not a comment. + // + // for a visual example please see: + // https://github.com/highlightjs/highlight.js/issues/2827 + + begin: concat( + /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */ + '(', + ENGLISH_WORD, + /[.]?[:]?([.][ ]|[ ])/, + '){3}') // look for 3 words in a row + } + ); + return mode; +}; +const C_LINE_COMMENT_MODE = COMMENT('//', '$'); +const C_BLOCK_COMMENT_MODE = COMMENT('/\\*', '\\*/'); +const HASH_COMMENT_MODE = COMMENT('#', '$'); +const NUMBER_MODE = { + scope: 'number', + begin: NUMBER_RE, + relevance: 0 +}; +const C_NUMBER_MODE = { + scope: 'number', + begin: C_NUMBER_RE, + relevance: 0 +}; +const BINARY_NUMBER_MODE = { + scope: 'number', + begin: BINARY_NUMBER_RE, + relevance: 0 +}; +const REGEXP_MODE = { + // this outer rule makes sure we actually have a WHOLE regex and not simply + // an expression such as: + // + // 3 / something + // + // (which will then blow up when regex's `illegal` sees the newline) + begin: /(?=\/[^/\n]*\/)/, + contains: [{ + scope: 'regexp', + begin: /\//, + end: /\/[gimuy]*/, + illegal: /\n/, + contains: [ + BACKSLASH_ESCAPE, + { + begin: /\[/, + end: /\]/, + relevance: 0, + contains: [BACKSLASH_ESCAPE] + } + ] + }] +}; +const TITLE_MODE = { + scope: 'title', + begin: IDENT_RE, + relevance: 0 +}; +const UNDERSCORE_TITLE_MODE = { + scope: 'title', + begin: UNDERSCORE_IDENT_RE, + relevance: 0 +}; +const METHOD_GUARD = { + // excludes method names from keyword processing + begin: '\\.\\s*' + UNDERSCORE_IDENT_RE, + relevance: 0 +}; + +/** + * Adds end same as begin mechanics to a mode + * + * Your mode must include at least a single () match group as that first match + * group is what is used for comparison + * @param {Partial} mode + */ +const END_SAME_AS_BEGIN = function(mode) { + return Object.assign(mode, + { + /** @type {ModeCallback} */ + 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; }, + /** @type {ModeCallback} */ + 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); } + }); +}; + +var MODES = /*#__PURE__*/Object.freeze({ + __proto__: null, + MATCH_NOTHING_RE: MATCH_NOTHING_RE, + IDENT_RE: IDENT_RE, + UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE, + NUMBER_RE: NUMBER_RE, + C_NUMBER_RE: C_NUMBER_RE, + BINARY_NUMBER_RE: BINARY_NUMBER_RE, + RE_STARTERS_RE: RE_STARTERS_RE, + SHEBANG: SHEBANG, + BACKSLASH_ESCAPE: BACKSLASH_ESCAPE, + APOS_STRING_MODE: APOS_STRING_MODE, + QUOTE_STRING_MODE: QUOTE_STRING_MODE, + PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE, + COMMENT: COMMENT, + C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE, + C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE, + HASH_COMMENT_MODE: HASH_COMMENT_MODE, + NUMBER_MODE: NUMBER_MODE, + C_NUMBER_MODE: C_NUMBER_MODE, + BINARY_NUMBER_MODE: BINARY_NUMBER_MODE, + REGEXP_MODE: REGEXP_MODE, + TITLE_MODE: TITLE_MODE, + UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE, + METHOD_GUARD: METHOD_GUARD, + END_SAME_AS_BEGIN: END_SAME_AS_BEGIN +}); + +/** +@typedef {import('highlight.js').CallbackResponse} CallbackResponse +@typedef {import('highlight.js').CompilerExt} CompilerExt +*/ + +// Grammar extensions / plugins +// See: https://github.com/highlightjs/highlight.js/issues/2833 + +// Grammar extensions allow "syntactic sugar" to be added to the grammar modes +// without requiring any underlying changes to the compiler internals. + +// `compileMatch` being the perfect small example of now allowing a grammar +// author to write `match` when they desire to match a single expression rather +// than being forced to use `begin`. The extension then just moves `match` into +// `begin` when it runs. Ie, no features have been added, but we've just made +// the experience of writing (and reading grammars) a little bit nicer. + +// ------ + +// TODO: We need negative look-behind support to do this properly +/** + * Skip a match if it has a preceding dot + * + * This is used for `beginKeywords` to prevent matching expressions such as + * `bob.keyword.do()`. The mode compiler automatically wires this up as a + * special _internal_ 'on:begin' callback for modes with `beginKeywords` + * @param {RegExpMatchArray} match + * @param {CallbackResponse} response + */ +function skipIfHasPrecedingDot(match, response) { + const before = match.input[match.index - 1]; + if (before === ".") { + response.ignoreMatch(); + } +} + +/** + * + * @type {CompilerExt} + */ +function scopeClassName(mode, _parent) { + // eslint-disable-next-line no-undefined + if (mode.className !== undefined) { + mode.scope = mode.className; + delete mode.className; + } +} + +/** + * `beginKeywords` syntactic sugar + * @type {CompilerExt} + */ +function beginKeywords(mode, parent) { + if (!parent) return; + if (!mode.beginKeywords) return; + + // for languages with keywords that include non-word characters checking for + // a word boundary is not sufficient, so instead we check for a word boundary + // or whitespace - this does no harm in any case since our keyword engine + // doesn't allow spaces in keywords anyways and we still check for the boundary + // first + mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\.)(?=\\b|\\s)'; + mode.__beforeBegin = skipIfHasPrecedingDot; + mode.keywords = mode.keywords || mode.beginKeywords; + delete mode.beginKeywords; + + // prevents double relevance, the keywords themselves provide + // relevance, the mode doesn't need to double it + // eslint-disable-next-line no-undefined + if (mode.relevance === undefined) mode.relevance = 0; +} + +/** + * Allow `illegal` to contain an array of illegal values + * @type {CompilerExt} + */ +function compileIllegal(mode, _parent) { + if (!Array.isArray(mode.illegal)) return; + + mode.illegal = either(...mode.illegal); +} + +/** + * `match` to match a single expression for readability + * @type {CompilerExt} + */ +function compileMatch(mode, _parent) { + if (!mode.match) return; + if (mode.begin || mode.end) throw new Error("begin & end are not supported with match"); + + mode.begin = mode.match; + delete mode.match; +} + +/** + * provides the default 1 relevance to all modes + * @type {CompilerExt} + */ +function compileRelevance(mode, _parent) { + // eslint-disable-next-line no-undefined + if (mode.relevance === undefined) mode.relevance = 1; +} + +// allow beforeMatch to act as a "qualifier" for the match +// the full match begin must be [beforeMatch][begin] +const beforeMatchExt = (mode, parent) => { + if (!mode.beforeMatch) return; + // starts conflicts with endsParent which we need to make sure the child + // rule is not matched multiple times + if (mode.starts) throw new Error("beforeMatch cannot be used with starts"); + + const originalMode = Object.assign({}, mode); + Object.keys(mode).forEach((key) => { delete mode[key]; }); + + mode.keywords = originalMode.keywords; + mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin)); + mode.starts = { + relevance: 0, + contains: [ + Object.assign(originalMode, { endsParent: true }) + ] + }; + mode.relevance = 0; + + delete originalMode.beforeMatch; +}; + +// keywords that should have no default relevance value +const COMMON_KEYWORDS = [ + 'of', + 'and', + 'for', + 'in', + 'not', + 'or', + 'if', + 'then', + 'parent', // common variable name + 'list', // common variable name + 'value' // common variable name +]; + +const DEFAULT_KEYWORD_SCOPE = "keyword"; + +/** + * Given raw keywords from a language definition, compile them. + * + * @param {string | Record | Array} rawKeywords + * @param {boolean} caseInsensitive + */ +function compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) { + /** @type {import("highlight.js/private").KeywordDict} */ + const compiledKeywords = Object.create(null); + + // input can be a string of keywords, an array of keywords, or a object with + // named keys representing scopeName (which can then point to a string or array) + if (typeof rawKeywords === 'string') { + compileList(scopeName, rawKeywords.split(" ")); + } else if (Array.isArray(rawKeywords)) { + compileList(scopeName, rawKeywords); + } else { + Object.keys(rawKeywords).forEach(function(scopeName) { + // collapse all our objects back into the parent object + Object.assign( + compiledKeywords, + compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName) + ); + }); + } + return compiledKeywords; + + // --- + + /** + * Compiles an individual list of keywords + * + * Ex: "for if when while|5" + * + * @param {string} scopeName + * @param {Array} keywordList + */ + function compileList(scopeName, keywordList) { + if (caseInsensitive) { + keywordList = keywordList.map(x => x.toLowerCase()); + } + keywordList.forEach(function(keyword) { + const pair = keyword.split('|'); + compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])]; + }); + } +} + +/** + * Returns the proper score for a given keyword + * + * Also takes into account comment keywords, which will be scored 0 UNLESS + * another score has been manually assigned. + * @param {string} keyword + * @param {string} [providedScore] + */ +function scoreForKeyword(keyword, providedScore) { + // manual scores always win over common keywords + // so you can force a score of 1 if you really insist + if (providedScore) { + return Number(providedScore); + } + + return commonKeyword(keyword) ? 0 : 1; +} + +/** + * Determines if a given keyword is common or not + * + * @param {string} keyword */ +function commonKeyword(keyword) { + return COMMON_KEYWORDS.includes(keyword.toLowerCase()); +} + +/* + +For the reasoning behind this please see: +https://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419 + +*/ + +/** + * @type {Record} + */ +const seenDeprecations = {}; + +/** + * @param {string} message + */ +const error = (message) => { + console.error(message); +}; + +/** + * @param {string} message + * @param {any} args + */ +const warn = (message, ...args) => { + console.log(`WARN: ${message}`, ...args); +}; + +/** + * @param {string} version + * @param {string} message + */ +const deprecated = (version, message) => { + if (seenDeprecations[`${version}/${message}`]) return; + + console.log(`Deprecated as of ${version}. ${message}`); + seenDeprecations[`${version}/${message}`] = true; +}; + +/* eslint-disable no-throw-literal */ + +/** +@typedef {import('highlight.js').CompiledMode} CompiledMode +*/ + +const MultiClassError = new Error(); + +/** + * Renumbers labeled scope names to account for additional inner match + * groups that otherwise would break everything. + * + * Lets say we 3 match scopes: + * + * { 1 => ..., 2 => ..., 3 => ... } + * + * So what we need is a clean match like this: + * + * (a)(b)(c) => [ "a", "b", "c" ] + * + * But this falls apart with inner match groups: + * + * (a)(((b)))(c) => ["a", "b", "b", "b", "c" ] + * + * Our scopes are now "out of alignment" and we're repeating `b` 3 times. + * What needs to happen is the numbers are remapped: + * + * { 1 => ..., 2 => ..., 5 => ... } + * + * We also need to know that the ONLY groups that should be output + * are 1, 2, and 5. This function handles this behavior. + * + * @param {CompiledMode} mode + * @param {Array} regexes + * @param {{key: "beginScope"|"endScope"}} opts + */ +function remapScopeNames(mode, regexes, { key }) { + let offset = 0; + const scopeNames = mode[key]; + /** @type Record */ + const emit = {}; + /** @type Record */ + const positions = {}; + + for (let i = 1; i <= regexes.length; i++) { + positions[i + offset] = scopeNames[i]; + emit[i + offset] = true; + offset += countMatchGroups(regexes[i - 1]); + } + // we use _emit to keep track of which match groups are "top-level" to avoid double + // output from inside match groups + mode[key] = positions; + mode[key]._emit = emit; + mode[key]._multi = true; +} + +/** + * @param {CompiledMode} mode + */ +function beginMultiClass(mode) { + if (!Array.isArray(mode.begin)) return; + + if (mode.skip || mode.excludeBegin || mode.returnBegin) { + error("skip, excludeBegin, returnBegin not compatible with beginScope: {}"); + throw MultiClassError; + } + + if (typeof mode.beginScope !== "object" || mode.beginScope === null) { + error("beginScope must be object"); + throw MultiClassError; + } + + remapScopeNames(mode, mode.begin, { key: "beginScope" }); + mode.begin = _rewriteBackreferences(mode.begin, { joinWith: "" }); +} + +/** + * @param {CompiledMode} mode + */ +function endMultiClass(mode) { + if (!Array.isArray(mode.end)) return; + + if (mode.skip || mode.excludeEnd || mode.returnEnd) { + error("skip, excludeEnd, returnEnd not compatible with endScope: {}"); + throw MultiClassError; + } + + if (typeof mode.endScope !== "object" || mode.endScope === null) { + error("endScope must be object"); + throw MultiClassError; + } + + remapScopeNames(mode, mode.end, { key: "endScope" }); + mode.end = _rewriteBackreferences(mode.end, { joinWith: "" }); +} + +/** + * this exists only to allow `scope: {}` to be used beside `match:` + * Otherwise `beginScope` would necessary and that would look weird + + { + match: [ /def/, /\w+/ ] + scope: { 1: "keyword" , 2: "title" } + } + + * @param {CompiledMode} mode + */ +function scopeSugar(mode) { + if (mode.scope && typeof mode.scope === "object" && mode.scope !== null) { + mode.beginScope = mode.scope; + delete mode.scope; + } +} + +/** + * @param {CompiledMode} mode + */ +function MultiClass(mode) { + scopeSugar(mode); + + if (typeof mode.beginScope === "string") { + mode.beginScope = { _wrap: mode.beginScope }; + } + if (typeof mode.endScope === "string") { + mode.endScope = { _wrap: mode.endScope }; + } + + beginMultiClass(mode); + endMultiClass(mode); +} + +/** +@typedef {import('highlight.js').Mode} Mode +@typedef {import('highlight.js').CompiledMode} CompiledMode +@typedef {import('highlight.js').Language} Language +@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin +@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage +*/ + +// compilation + +/** + * Compiles a language definition result + * + * Given the raw result of a language definition (Language), compiles this so + * that it is ready for highlighting code. + * @param {Language} language + * @returns {CompiledLanguage} + */ +function compileLanguage(language) { + /** + * Builds a regex with the case sensitivity of the current language + * + * @param {RegExp | string} value + * @param {boolean} [global] + */ + function langRe(value, global) { + return new RegExp( + source(value), + 'm' + + (language.case_insensitive ? 'i' : '') + + (language.unicodeRegex ? 'u' : '') + + (global ? 'g' : '') + ); + } + + /** + Stores multiple regular expressions and allows you to quickly search for + them all in a string simultaneously - returning the first match. It does + this by creating a huge (a|b|c) regex - each individual item wrapped with () + and joined by `|` - using match groups to track position. When a match is + found checking which position in the array has content allows us to figure + out which of the original regexes / match groups triggered the match. + + The match object itself (the result of `Regex.exec`) is returned but also + enhanced by merging in any meta-data that was registered with the regex. + This is how we keep track of which mode matched, and what type of rule + (`illegal`, `begin`, end, etc). + */ + class MultiRegex { + constructor() { + this.matchIndexes = {}; + // @ts-ignore + this.regexes = []; + this.matchAt = 1; + this.position = 0; + } + + // @ts-ignore + addRule(re, opts) { + opts.position = this.position++; + // @ts-ignore + this.matchIndexes[this.matchAt] = opts; + this.regexes.push([opts, re]); + this.matchAt += countMatchGroups(re) + 1; + } + + compile() { + if (this.regexes.length === 0) { + // avoids the need to check length every time exec is called + // @ts-ignore + this.exec = () => null; + } + const terminators = this.regexes.map(el => el[1]); + this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true); + this.lastIndex = 0; + } + + /** @param {string} s */ + exec(s) { + this.matcherRe.lastIndex = this.lastIndex; + const match = this.matcherRe.exec(s); + if (!match) { return null; } + + // eslint-disable-next-line no-undefined + const i = match.findIndex((el, i) => i > 0 && el !== undefined); + // @ts-ignore + const matchData = this.matchIndexes[i]; + // trim off any earlier non-relevant match groups (ie, the other regex + // match groups that make up the multi-matcher) + match.splice(0, i); + + return Object.assign(match, matchData); + } + } + + /* + Created to solve the key deficiently with MultiRegex - there is no way to + test for multiple matches at a single location. Why would we need to do + that? In the future a more dynamic engine will allow certain matches to be + ignored. An example: if we matched say the 3rd regex in a large group but + decided to ignore it - we'd need to started testing again at the 4th + regex... but MultiRegex itself gives us no real way to do that. + + So what this class creates MultiRegexs on the fly for whatever search + position they are needed. + + NOTE: These additional MultiRegex objects are created dynamically. For most + grammars most of the time we will never actually need anything more than the + first MultiRegex - so this shouldn't have too much overhead. + + Say this is our search group, and we match regex3, but wish to ignore it. + + regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0 + + What we need is a new MultiRegex that only includes the remaining + possibilities: + + regex4 | regex5 ' ie, startAt = 3 + + This class wraps all that complexity up in a simple API... `startAt` decides + where in the array of expressions to start doing the matching. It + auto-increments, so if a match is found at position 2, then startAt will be + set to 3. If the end is reached startAt will return to 0. + + MOST of the time the parser will be setting startAt manually to 0. + */ + class ResumableMultiRegex { + constructor() { + // @ts-ignore + this.rules = []; + // @ts-ignore + this.multiRegexes = []; + this.count = 0; + + this.lastIndex = 0; + this.regexIndex = 0; + } + + // @ts-ignore + getMatcher(index) { + if (this.multiRegexes[index]) return this.multiRegexes[index]; + + const matcher = new MultiRegex(); + this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts)); + matcher.compile(); + this.multiRegexes[index] = matcher; + return matcher; + } + + resumingScanAtSamePosition() { + return this.regexIndex !== 0; + } + + considerAll() { + this.regexIndex = 0; + } + + // @ts-ignore + addRule(re, opts) { + this.rules.push([re, opts]); + if (opts.type === "begin") this.count++; + } + + /** @param {string} s */ + exec(s) { + const m = this.getMatcher(this.regexIndex); + m.lastIndex = this.lastIndex; + let result = m.exec(s); + + // The following is because we have no easy way to say "resume scanning at the + // existing position but also skip the current rule ONLY". What happens is + // all prior rules are also skipped which can result in matching the wrong + // thing. Example of matching "booger": + + // our matcher is [string, "booger", number] + // + // ....booger.... + + // if "booger" is ignored then we'd really need a regex to scan from the + // SAME position for only: [string, number] but ignoring "booger" (if it + // was the first match), a simple resume would scan ahead who knows how + // far looking only for "number", ignoring potential string matches (or + // future "booger" matches that might be valid.) + + // So what we do: We execute two matchers, one resuming at the same + // position, but the second full matcher starting at the position after: + + // /--- resume first regex match here (for [number]) + // |/---- full match here for [string, "booger", number] + // vv + // ....booger.... + + // Which ever results in a match first is then used. So this 3-4 step + // process essentially allows us to say "match at this position, excluding + // a prior rule that was ignored". + // + // 1. Match "booger" first, ignore. Also proves that [string] does non match. + // 2. Resume matching for [number] + // 3. Match at index + 1 for [string, "booger", number] + // 4. If #2 and #3 result in matches, which came first? + if (this.resumingScanAtSamePosition()) { + if (result && result.index === this.lastIndex) ; else { // use the second matcher result + const m2 = this.getMatcher(0); + m2.lastIndex = this.lastIndex + 1; + result = m2.exec(s); + } + } + + if (result) { + this.regexIndex += result.position + 1; + if (this.regexIndex === this.count) { + // wrap-around to considering all matches again + this.considerAll(); + } + } + + return result; + } + } + + /** + * Given a mode, builds a huge ResumableMultiRegex that can be used to walk + * the content and find matches. + * + * @param {CompiledMode} mode + * @returns {ResumableMultiRegex} + */ + function buildModeRegex(mode) { + const mm = new ResumableMultiRegex(); + + mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: "begin" })); + + if (mode.terminatorEnd) { + mm.addRule(mode.terminatorEnd, { type: "end" }); + } + if (mode.illegal) { + mm.addRule(mode.illegal, { type: "illegal" }); + } + + return mm; + } + + /** skip vs abort vs ignore + * + * @skip - The mode is still entered and exited normally (and contains rules apply), + * but all content is held and added to the parent buffer rather than being + * output when the mode ends. Mostly used with `sublanguage` to build up + * a single large buffer than can be parsed by sublanguage. + * + * - The mode begin ands ends normally. + * - Content matched is added to the parent mode buffer. + * - The parser cursor is moved forward normally. + * + * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it + * never matched) but DOES NOT continue to match subsequent `contains` + * modes. Abort is bad/suboptimal because it can result in modes + * farther down not getting applied because an earlier rule eats the + * content but then aborts. + * + * - The mode does not begin. + * - Content matched by `begin` is added to the mode buffer. + * - The parser cursor is moved forward accordingly. + * + * @ignore - Ignores the mode (as if it never matched) and continues to match any + * subsequent `contains` modes. Ignore isn't technically possible with + * the current parser implementation. + * + * - The mode does not begin. + * - Content matched by `begin` is ignored. + * - The parser cursor is not moved forward. + */ + + /** + * Compiles an individual mode + * + * This can raise an error if the mode contains certain detectable known logic + * issues. + * @param {Mode} mode + * @param {CompiledMode | null} [parent] + * @returns {CompiledMode | never} + */ + function compileMode(mode, parent) { + const cmode = /** @type CompiledMode */ (mode); + if (mode.isCompiled) return cmode; + + [ + scopeClassName, + // do this early so compiler extensions generally don't have to worry about + // the distinction between match/begin + compileMatch, + MultiClass, + beforeMatchExt + ].forEach(ext => ext(mode, parent)); + + language.compilerExtensions.forEach(ext => ext(mode, parent)); + + // __beforeBegin is considered private API, internal use only + mode.__beforeBegin = null; + + [ + beginKeywords, + // do this later so compiler extensions that come earlier have access to the + // raw array if they wanted to perhaps manipulate it, etc. + compileIllegal, + // default to 1 relevance if not specified + compileRelevance + ].forEach(ext => ext(mode, parent)); + + mode.isCompiled = true; + + let keywordPattern = null; + if (typeof mode.keywords === "object" && mode.keywords.$pattern) { + // we need a copy because keywords might be compiled multiple times + // so we can't go deleting $pattern from the original on the first + // pass + mode.keywords = Object.assign({}, mode.keywords); + keywordPattern = mode.keywords.$pattern; + delete mode.keywords.$pattern; + } + keywordPattern = keywordPattern || /\w+/; + + if (mode.keywords) { + mode.keywords = compileKeywords(mode.keywords, language.case_insensitive); + } + + cmode.keywordPatternRe = langRe(keywordPattern, true); + + if (parent) { + if (!mode.begin) mode.begin = /\B|\b/; + cmode.beginRe = langRe(cmode.begin); + if (!mode.end && !mode.endsWithParent) mode.end = /\B|\b/; + if (mode.end) cmode.endRe = langRe(cmode.end); + cmode.terminatorEnd = source(cmode.end) || ''; + if (mode.endsWithParent && parent.terminatorEnd) { + cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd; + } + } + if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal)); + if (!mode.contains) mode.contains = []; + + mode.contains = [].concat(...mode.contains.map(function(c) { + return expandOrCloneMode(c === 'self' ? mode : c); + })); + mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); }); + + if (mode.starts) { + compileMode(mode.starts, parent); + } + + cmode.matcher = buildModeRegex(cmode); + return cmode; + } + + if (!language.compilerExtensions) language.compilerExtensions = []; + + // self is not valid at the top-level + if (language.contains && language.contains.includes('self')) { + throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation."); + } + + // we need a null object, which inherit will guarantee + language.classNameAliases = inherit$1(language.classNameAliases || {}); + + return compileMode(/** @type Mode */ (language)); +} + +/** + * Determines if a mode has a dependency on it's parent or not + * + * If a mode does have a parent dependency then often we need to clone it if + * it's used in multiple places so that each copy points to the correct parent, + * where-as modes without a parent can often safely be re-used at the bottom of + * a mode chain. + * + * @param {Mode | null} mode + * @returns {boolean} - is there a dependency on the parent? + * */ +function dependencyOnParent(mode) { + if (!mode) return false; + + return mode.endsWithParent || dependencyOnParent(mode.starts); +} + +/** + * Expands a mode or clones it if necessary + * + * This is necessary for modes with parental dependenceis (see notes on + * `dependencyOnParent`) and for nodes that have `variants` - which must then be + * exploded into their own individual modes at compile time. + * + * @param {Mode} mode + * @returns {Mode | Mode[]} + * */ +function expandOrCloneMode(mode) { + if (mode.variants && !mode.cachedVariants) { + mode.cachedVariants = mode.variants.map(function(variant) { + return inherit$1(mode, { variants: null }, variant); + }); + } + + // EXPAND + // if we have variants then essentially "replace" the mode with the variants + // this happens in compileMode, where this function is called from + if (mode.cachedVariants) { + return mode.cachedVariants; + } + + // CLONE + // if we have dependencies on parents then we need a unique + // instance of ourselves, so we can be reused with many + // different parents without issue + if (dependencyOnParent(mode)) { + return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null }); + } + + if (Object.isFrozen(mode)) { + return inherit$1(mode); + } + + // no special dependency issues, just return ourselves + return mode; +} + +var version = "11.7.0"; + +class HTMLInjectionError extends Error { + constructor(reason, html) { + super(reason); + this.name = "HTMLInjectionError"; + this.html = html; + } +} + +/* +Syntax highlighting with language autodetection. +https://highlightjs.org/ +*/ + +/** +@typedef {import('highlight.js').Mode} Mode +@typedef {import('highlight.js').CompiledMode} CompiledMode +@typedef {import('highlight.js').CompiledScope} CompiledScope +@typedef {import('highlight.js').Language} Language +@typedef {import('highlight.js').HLJSApi} HLJSApi +@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin +@typedef {import('highlight.js').PluginEvent} PluginEvent +@typedef {import('highlight.js').HLJSOptions} HLJSOptions +@typedef {import('highlight.js').LanguageFn} LanguageFn +@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement +@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext +@typedef {import('highlight.js/private').MatchType} MatchType +@typedef {import('highlight.js/private').KeywordData} KeywordData +@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch +@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError +@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult +@typedef {import('highlight.js').HighlightOptions} HighlightOptions +@typedef {import('highlight.js').HighlightResult} HighlightResult +*/ + + +const escape = escapeHTML; +const inherit = inherit$1; +const NO_MATCH = Symbol("nomatch"); +const MAX_KEYWORD_HITS = 7; + +/** + * @param {any} hljs - object that is extended (legacy) + * @returns {HLJSApi} + */ +const HLJS = function(hljs) { + // Global internal variables used within the highlight.js library. + /** @type {Record} */ + const languages = Object.create(null); + /** @type {Record} */ + const aliases = Object.create(null); + /** @type {HLJSPlugin[]} */ + const plugins = []; + + // safe/production mode - swallows more errors, tries to keep running + // even if a single syntax or parse hits a fatal error + let SAFE_MODE = true; + const LANGUAGE_NOT_FOUND = "Could not find the language '{}', did you forget to load/include a language module?"; + /** @type {Language} */ + const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] }; + + // Global options used when within external APIs. This is modified when + // calling the `hljs.configure` function. + /** @type HLJSOptions */ + let options = { + ignoreUnescapedHTML: false, + throwUnescapedHTML: false, + noHighlightRe: /^(no-?highlight)$/i, + languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i, + classPrefix: 'hljs-', + cssSelector: 'pre code', + languages: null, + // beta configuration options, subject to change, welcome to discuss + // https://github.com/highlightjs/highlight.js/issues/1086 + __emitter: TokenTreeEmitter + }; + + /* Utility functions */ + + /** + * Tests a language name to see if highlighting should be skipped + * @param {string} languageName + */ + function shouldNotHighlight(languageName) { + return options.noHighlightRe.test(languageName); + } + + /** + * @param {HighlightedHTMLElement} block - the HTML element to determine language for + */ + function blockLanguage(block) { + let classes = block.className + ' '; + + classes += block.parentNode ? block.parentNode.className : ''; + + // language-* takes precedence over non-prefixed class names. + const match = options.languageDetectRe.exec(classes); + if (match) { + const language = getLanguage(match[1]); + if (!language) { + warn(LANGUAGE_NOT_FOUND.replace("{}", match[1])); + warn("Falling back to no-highlight mode for this block.", block); + } + return language ? match[1] : 'no-highlight'; + } + + return classes + .split(/\s+/) + .find((_class) => shouldNotHighlight(_class) || getLanguage(_class)); + } + + /** + * Core highlighting function. + * + * OLD API + * highlight(lang, code, ignoreIllegals, continuation) + * + * NEW API + * highlight(code, {lang, ignoreIllegals}) + * + * @param {string} codeOrLanguageName - the language to use for highlighting + * @param {string | HighlightOptions} optionsOrCode - the code to highlight + * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail + * + * @returns {HighlightResult} Result - an object that represents the result + * @property {string} language - the language name + * @property {number} relevance - the relevance score + * @property {string} value - the highlighted HTML code + * @property {string} code - the original raw code + * @property {CompiledMode} top - top of the current mode stack + * @property {boolean} illegal - indicates whether any illegal matches were found + */ + function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) { + let code = ""; + let languageName = ""; + if (typeof optionsOrCode === "object") { + code = codeOrLanguageName; + ignoreIllegals = optionsOrCode.ignoreIllegals; + languageName = optionsOrCode.language; + } else { + // old API + deprecated("10.7.0", "highlight(lang, code, ...args) has been deprecated."); + deprecated("10.7.0", "Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"); + languageName = codeOrLanguageName; + code = optionsOrCode; + } + + // https://github.com/highlightjs/highlight.js/issues/3149 + // eslint-disable-next-line no-undefined + if (ignoreIllegals === undefined) { ignoreIllegals = true; } + + /** @type {BeforeHighlightContext} */ + const context = { + code, + language: languageName + }; + // the plugin can change the desired language or the code to be highlighted + // just be changing the object it was passed + fire("before:highlight", context); + + // a before plugin can usurp the result completely by providing it's own + // in which case we don't even need to call highlight + const result = context.result + ? context.result + : _highlight(context.language, context.code, ignoreIllegals); + + result.code = context.code; + // the plugin can change anything in result to suite it + fire("after:highlight", result); + + return result; + } + + /** + * private highlight that's used internally and does not fire callbacks + * + * @param {string} languageName - the language to use for highlighting + * @param {string} codeToHighlight - the code to highlight + * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail + * @param {CompiledMode?} [continuation] - current continuation mode, if any + * @returns {HighlightResult} - result of the highlight operation + */ + function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) { + const keywordHits = Object.create(null); + + /** + * Return keyword data if a match is a keyword + * @param {CompiledMode} mode - current mode + * @param {string} matchText - the textual match + * @returns {KeywordData | false} + */ + function keywordData(mode, matchText) { + return mode.keywords[matchText]; + } + + function processKeywords() { + if (!top.keywords) { + emitter.addText(modeBuffer); + return; + } + + let lastIndex = 0; + top.keywordPatternRe.lastIndex = 0; + let match = top.keywordPatternRe.exec(modeBuffer); + let buf = ""; + + while (match) { + buf += modeBuffer.substring(lastIndex, match.index); + const word = language.case_insensitive ? match[0].toLowerCase() : match[0]; + const data = keywordData(top, word); + if (data) { + const [kind, keywordRelevance] = data; + emitter.addText(buf); + buf = ""; + + keywordHits[word] = (keywordHits[word] || 0) + 1; + if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance; + if (kind.startsWith("_")) { + // _ implied for relevance only, do not highlight + // by applying a class name + buf += match[0]; + } else { + const cssClass = language.classNameAliases[kind] || kind; + emitter.addKeyword(match[0], cssClass); + } + } else { + buf += match[0]; + } + lastIndex = top.keywordPatternRe.lastIndex; + match = top.keywordPatternRe.exec(modeBuffer); + } + buf += modeBuffer.substring(lastIndex); + emitter.addText(buf); + } + + function processSubLanguage() { + if (modeBuffer === "") return; + /** @type HighlightResult */ + let result = null; + + if (typeof top.subLanguage === 'string') { + if (!languages[top.subLanguage]) { + emitter.addText(modeBuffer); + return; + } + result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]); + continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top); + } else { + result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null); + } + + // Counting embedded language score towards the host language may be disabled + // with zeroing the containing mode relevance. Use case in point is Markdown that + // allows XML everywhere and makes every XML snippet to have a much larger Markdown + // score. + if (top.relevance > 0) { + relevance += result.relevance; + } + emitter.addSublanguage(result._emitter, result.language); + } + + function processBuffer() { + if (top.subLanguage != null) { + processSubLanguage(); + } else { + processKeywords(); + } + modeBuffer = ''; + } + + /** + * @param {CompiledScope} scope + * @param {RegExpMatchArray} match + */ + function emitMultiClass(scope, match) { + let i = 1; + const max = match.length - 1; + while (i <= max) { + if (!scope._emit[i]) { i++; continue; } + const klass = language.classNameAliases[scope[i]] || scope[i]; + const text = match[i]; + if (klass) { + emitter.addKeyword(text, klass); + } else { + modeBuffer = text; + processKeywords(); + modeBuffer = ""; + } + i++; + } + } + + /** + * @param {CompiledMode} mode - new mode to start + * @param {RegExpMatchArray} match + */ + function startNewMode(mode, match) { + if (mode.scope && typeof mode.scope === "string") { + emitter.openNode(language.classNameAliases[mode.scope] || mode.scope); + } + if (mode.beginScope) { + // beginScope just wraps the begin match itself in a scope + if (mode.beginScope._wrap) { + emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap); + modeBuffer = ""; + } else if (mode.beginScope._multi) { + // at this point modeBuffer should just be the match + emitMultiClass(mode.beginScope, match); + modeBuffer = ""; + } + } + + top = Object.create(mode, { parent: { value: top } }); + return top; + } + + /** + * @param {CompiledMode } mode - the mode to potentially end + * @param {RegExpMatchArray} match - the latest match + * @param {string} matchPlusRemainder - match plus remainder of content + * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode + */ + function endOfMode(mode, match, matchPlusRemainder) { + let matched = startsWith(mode.endRe, matchPlusRemainder); + + if (matched) { + if (mode["on:end"]) { + const resp = new Response(mode); + mode["on:end"](match, resp); + if (resp.isMatchIgnored) matched = false; + } + + if (matched) { + while (mode.endsParent && mode.parent) { + mode = mode.parent; + } + return mode; + } + } + // even if on:end fires an `ignore` it's still possible + // that we might trigger the end node because of a parent mode + if (mode.endsWithParent) { + return endOfMode(mode.parent, match, matchPlusRemainder); + } + } + + /** + * Handle matching but then ignoring a sequence of text + * + * @param {string} lexeme - string containing full match text + */ + function doIgnore(lexeme) { + if (top.matcher.regexIndex === 0) { + // no more regexes to potentially match here, so we move the cursor forward one + // space + modeBuffer += lexeme[0]; + return 1; + } else { + // no need to move the cursor, we still have additional regexes to try and + // match at this very spot + resumeScanAtSamePosition = true; + return 0; + } + } + + /** + * Handle the start of a new potential mode match + * + * @param {EnhancedMatch} match - the current match + * @returns {number} how far to advance the parse cursor + */ + function doBeginMatch(match) { + const lexeme = match[0]; + const newMode = match.rule; + + const resp = new Response(newMode); + // first internal before callbacks, then the public ones + const beforeCallbacks = [newMode.__beforeBegin, newMode["on:begin"]]; + for (const cb of beforeCallbacks) { + if (!cb) continue; + cb(match, resp); + if (resp.isMatchIgnored) return doIgnore(lexeme); + } + + if (newMode.skip) { + modeBuffer += lexeme; + } else { + if (newMode.excludeBegin) { + modeBuffer += lexeme; + } + processBuffer(); + if (!newMode.returnBegin && !newMode.excludeBegin) { + modeBuffer = lexeme; + } + } + startNewMode(newMode, match); + return newMode.returnBegin ? 0 : lexeme.length; + } + + /** + * Handle the potential end of mode + * + * @param {RegExpMatchArray} match - the current match + */ + function doEndMatch(match) { + const lexeme = match[0]; + const matchPlusRemainder = codeToHighlight.substring(match.index); + + const endMode = endOfMode(top, match, matchPlusRemainder); + if (!endMode) { return NO_MATCH; } + + const origin = top; + if (top.endScope && top.endScope._wrap) { + processBuffer(); + emitter.addKeyword(lexeme, top.endScope._wrap); + } else if (top.endScope && top.endScope._multi) { + processBuffer(); + emitMultiClass(top.endScope, match); + } else if (origin.skip) { + modeBuffer += lexeme; + } else { + if (!(origin.returnEnd || origin.excludeEnd)) { + modeBuffer += lexeme; + } + processBuffer(); + if (origin.excludeEnd) { + modeBuffer = lexeme; + } + } + do { + if (top.scope) { + emitter.closeNode(); + } + if (!top.skip && !top.subLanguage) { + relevance += top.relevance; + } + top = top.parent; + } while (top !== endMode.parent); + if (endMode.starts) { + startNewMode(endMode.starts, match); + } + return origin.returnEnd ? 0 : lexeme.length; + } + + function processContinuations() { + const list = []; + for (let current = top; current !== language; current = current.parent) { + if (current.scope) { + list.unshift(current.scope); + } + } + list.forEach(item => emitter.openNode(item)); + } + + /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */ + let lastMatch = {}; + + /** + * Process an individual match + * + * @param {string} textBeforeMatch - text preceding the match (since the last match) + * @param {EnhancedMatch} [match] - the match itself + */ + function processLexeme(textBeforeMatch, match) { + const lexeme = match && match[0]; + + // add non-matched text to the current mode buffer + modeBuffer += textBeforeMatch; + + if (lexeme == null) { + processBuffer(); + return 0; + } + + // we've found a 0 width match and we're stuck, so we need to advance + // this happens when we have badly behaved rules that have optional matchers to the degree that + // sometimes they can end up matching nothing at all + // Ref: https://github.com/highlightjs/highlight.js/issues/2140 + if (lastMatch.type === "begin" && match.type === "end" && lastMatch.index === match.index && lexeme === "") { + // spit the "skipped" character that our regex choked on back into the output sequence + modeBuffer += codeToHighlight.slice(match.index, match.index + 1); + if (!SAFE_MODE) { + /** @type {AnnotatedError} */ + const err = new Error(`0 width match regex (${languageName})`); + err.languageName = languageName; + err.badRule = lastMatch.rule; + throw err; + } + return 1; + } + lastMatch = match; + + if (match.type === "begin") { + return doBeginMatch(match); + } else if (match.type === "illegal" && !ignoreIllegals) { + // illegal match, we do not continue processing + /** @type {AnnotatedError} */ + const err = new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.scope || '') + '"'); + err.mode = top; + throw err; + } else if (match.type === "end") { + const processed = doEndMatch(match); + if (processed !== NO_MATCH) { + return processed; + } + } + + // edge case for when illegal matches $ (end of line) which is technically + // a 0 width match but not a begin/end match so it's not caught by the + // first handler (when ignoreIllegals is true) + if (match.type === "illegal" && lexeme === "") { + // advance so we aren't stuck in an infinite loop + return 1; + } + + // infinite loops are BAD, this is a last ditch catch all. if we have a + // decent number of iterations yet our index (cursor position in our + // parsing) still 3x behind our index then something is very wrong + // so we bail + if (iterations > 100000 && iterations > match.index * 3) { + const err = new Error('potential infinite loop, way more iterations than matches'); + throw err; + } + + /* + Why might be find ourselves here? An potential end match that was + triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH. + (this could be because a callback requests the match be ignored, etc) + + This causes no real harm other than stopping a few times too many. + */ + + modeBuffer += lexeme; + return lexeme.length; + } + + const language = getLanguage(languageName); + if (!language) { + error(LANGUAGE_NOT_FOUND.replace("{}", languageName)); + throw new Error('Unknown language: "' + languageName + '"'); + } + + const md = compileLanguage(language); + let result = ''; + /** @type {CompiledMode} */ + let top = continuation || md; + /** @type Record */ + const continuations = {}; // keep continuations for sub-languages + const emitter = new options.__emitter(options); + processContinuations(); + let modeBuffer = ''; + let relevance = 0; + let index = 0; + let iterations = 0; + let resumeScanAtSamePosition = false; + + try { + top.matcher.considerAll(); + + for (;;) { + iterations++; + if (resumeScanAtSamePosition) { + // only regexes not matched previously will now be + // considered for a potential match + resumeScanAtSamePosition = false; + } else { + top.matcher.considerAll(); + } + top.matcher.lastIndex = index; + + const match = top.matcher.exec(codeToHighlight); + // console.log("match", match[0], match.rule && match.rule.begin) + + if (!match) break; + + const beforeMatch = codeToHighlight.substring(index, match.index); + const processedCount = processLexeme(beforeMatch, match); + index = match.index + processedCount; + } + processLexeme(codeToHighlight.substring(index)); + emitter.closeAllNodes(); + emitter.finalize(); + result = emitter.toHTML(); + + return { + language: languageName, + value: result, + relevance: relevance, + illegal: false, + _emitter: emitter, + _top: top + }; + } catch (err) { + if (err.message && err.message.includes('Illegal')) { + return { + language: languageName, + value: escape(codeToHighlight), + illegal: true, + relevance: 0, + _illegalBy: { + message: err.message, + index: index, + context: codeToHighlight.slice(index - 100, index + 100), + mode: err.mode, + resultSoFar: result + }, + _emitter: emitter + }; + } else if (SAFE_MODE) { + return { + language: languageName, + value: escape(codeToHighlight), + illegal: false, + relevance: 0, + errorRaised: err, + _emitter: emitter, + _top: top + }; + } else { + throw err; + } + } + } + + /** + * returns a valid highlight result, without actually doing any actual work, + * auto highlight starts with this and it's possible for small snippets that + * auto-detection may not find a better match + * @param {string} code + * @returns {HighlightResult} + */ + function justTextHighlightResult(code) { + const result = { + value: escape(code), + illegal: false, + relevance: 0, + _top: PLAINTEXT_LANGUAGE, + _emitter: new options.__emitter(options) + }; + result._emitter.addText(code); + return result; + } + + /** + Highlighting with language detection. Accepts a string with the code to + highlight. Returns an object with the following properties: + + - language (detected language) + - relevance (int) + - value (an HTML string with highlighting markup) + - secondBest (object with the same structure for second-best heuristically + detected language, may be absent) + + @param {string} code + @param {Array} [languageSubset] + @returns {AutoHighlightResult} + */ + function highlightAuto(code, languageSubset) { + languageSubset = languageSubset || options.languages || Object.keys(languages); + const plaintext = justTextHighlightResult(code); + + const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name => + _highlight(name, code, false) + ); + results.unshift(plaintext); // plaintext is always an option + + const sorted = results.sort((a, b) => { + // sort base on relevance + if (a.relevance !== b.relevance) return b.relevance - a.relevance; + + // always award the tie to the base language + // ie if C++ and Arduino are tied, it's more likely to be C++ + if (a.language && b.language) { + if (getLanguage(a.language).supersetOf === b.language) { + return 1; + } else if (getLanguage(b.language).supersetOf === a.language) { + return -1; + } + } + + // otherwise say they are equal, which has the effect of sorting on + // relevance while preserving the original ordering - which is how ties + // have historically been settled, ie the language that comes first always + // wins in the case of a tie + return 0; + }); + + const [best, secondBest] = sorted; + + /** @type {AutoHighlightResult} */ + const result = best; + result.secondBest = secondBest; + + return result; + } + + /** + * Builds new class name for block given the language name + * + * @param {HTMLElement} element + * @param {string} [currentLang] + * @param {string} [resultLang] + */ + function updateClassName(element, currentLang, resultLang) { + const language = (currentLang && aliases[currentLang]) || resultLang; + + element.classList.add("hljs"); + element.classList.add(`language-${language}`); + } + + /** + * Applies highlighting to a DOM node containing code. + * + * @param {HighlightedHTMLElement} element - the HTML element to highlight + */ + function highlightElement(element) { + /** @type HTMLElement */ + let node = null; + const language = blockLanguage(element); + + if (shouldNotHighlight(language)) return; + + fire("before:highlightElement", + { el: element, language: language }); + + // we should be all text, no child nodes (unescaped HTML) - this is possibly + // an HTML injection attack - it's likely too late if this is already in + // production (the code has likely already done its damage by the time + // we're seeing it)... but we yell loudly about this so that hopefully it's + // more likely to be caught in development before making it to production + if (element.children.length > 0) { + if (!options.ignoreUnescapedHTML) { + console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."); + console.warn("https://github.com/highlightjs/highlight.js/wiki/security"); + console.warn("The element with unescaped HTML:"); + console.warn(element); + } + if (options.throwUnescapedHTML) { + const err = new HTMLInjectionError( + "One of your code blocks includes unescaped HTML.", + element.innerHTML + ); + throw err; + } + } + + node = element; + const text = node.textContent; + const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text); + + element.innerHTML = result.value; + updateClassName(element, language, result.language); + element.result = { + language: result.language, + // TODO: remove with version 11.0 + re: result.relevance, + relevance: result.relevance + }; + if (result.secondBest) { + element.secondBest = { + language: result.secondBest.language, + relevance: result.secondBest.relevance + }; + } + + fire("after:highlightElement", { el: element, result, text }); + } + + /** + * Updates highlight.js global options with the passed options + * + * @param {Partial} userOptions + */ + function configure(userOptions) { + options = inherit(options, userOptions); + } + + // TODO: remove v12, deprecated + const initHighlighting = () => { + highlightAll(); + deprecated("10.6.0", "initHighlighting() deprecated. Use highlightAll() now."); + }; + + // TODO: remove v12, deprecated + function initHighlightingOnLoad() { + highlightAll(); + deprecated("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now."); + } + + let wantsHighlight = false; + + /** + * auto-highlights all pre>code elements on the page + */ + function highlightAll() { + // if we are called too early in the loading process + if (document.readyState === "loading") { + wantsHighlight = true; + return; + } + + const blocks = document.querySelectorAll(options.cssSelector); + blocks.forEach(highlightElement); + } + + function boot() { + // if a highlight was requested before DOM was loaded, do now + if (wantsHighlight) highlightAll(); + } + + // make sure we are in the browser environment + if (typeof window !== 'undefined' && window.addEventListener) { + window.addEventListener('DOMContentLoaded', boot, false); + } + + /** + * Register a language grammar module + * + * @param {string} languageName + * @param {LanguageFn} languageDefinition + */ + function registerLanguage(languageName, languageDefinition) { + let lang = null; + try { + lang = languageDefinition(hljs); + } catch (error$1) { + error("Language definition for '{}' could not be registered.".replace("{}", languageName)); + // hard or soft error + if (!SAFE_MODE) { throw error$1; } else { error(error$1); } + // languages that have serious errors are replaced with essentially a + // "plaintext" stand-in so that the code blocks will still get normal + // css classes applied to them - and one bad language won't break the + // entire highlighter + lang = PLAINTEXT_LANGUAGE; + } + // give it a temporary name if it doesn't have one in the meta-data + if (!lang.name) lang.name = languageName; + languages[languageName] = lang; + lang.rawDefinition = languageDefinition.bind(null, hljs); + + if (lang.aliases) { + registerAliases(lang.aliases, { languageName }); + } + } + + /** + * Remove a language grammar module + * + * @param {string} languageName + */ + function unregisterLanguage(languageName) { + delete languages[languageName]; + for (const alias of Object.keys(aliases)) { + if (aliases[alias] === languageName) { + delete aliases[alias]; + } + } + } + + /** + * @returns {string[]} List of language internal names + */ + function listLanguages() { + return Object.keys(languages); + } + + /** + * @param {string} name - name of the language to retrieve + * @returns {Language | undefined} + */ + function getLanguage(name) { + name = (name || '').toLowerCase(); + return languages[name] || languages[aliases[name]]; + } + + /** + * + * @param {string|string[]} aliasList - single alias or list of aliases + * @param {{languageName: string}} opts + */ + function registerAliases(aliasList, { languageName }) { + if (typeof aliasList === 'string') { + aliasList = [aliasList]; + } + aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; }); + } + + /** + * Determines if a given language has auto-detection enabled + * @param {string} name - name of the language + */ + function autoDetection(name) { + const lang = getLanguage(name); + return lang && !lang.disableAutodetect; + } + + /** + * Upgrades the old highlightBlock plugins to the new + * highlightElement API + * @param {HLJSPlugin} plugin + */ + function upgradePluginAPI(plugin) { + // TODO: remove with v12 + if (plugin["before:highlightBlock"] && !plugin["before:highlightElement"]) { + plugin["before:highlightElement"] = (data) => { + plugin["before:highlightBlock"]( + Object.assign({ block: data.el }, data) + ); + }; + } + if (plugin["after:highlightBlock"] && !plugin["after:highlightElement"]) { + plugin["after:highlightElement"] = (data) => { + plugin["after:highlightBlock"]( + Object.assign({ block: data.el }, data) + ); + }; + } + } + + /** + * @param {HLJSPlugin} plugin + */ + function addPlugin(plugin) { + upgradePluginAPI(plugin); + plugins.push(plugin); + } + + /** + * + * @param {PluginEvent} event + * @param {any} args + */ + function fire(event, args) { + const cb = event; + plugins.forEach(function(plugin) { + if (plugin[cb]) { + plugin[cb](args); + } + }); + } + + /** + * DEPRECATED + * @param {HighlightedHTMLElement} el + */ + function deprecateHighlightBlock(el) { + deprecated("10.7.0", "highlightBlock will be removed entirely in v12.0"); + deprecated("10.7.0", "Please use highlightElement now."); + + return highlightElement(el); + } + + /* Interface definition */ + Object.assign(hljs, { + highlight, + highlightAuto, + highlightAll, + highlightElement, + // TODO: Remove with v12 API + highlightBlock: deprecateHighlightBlock, + configure, + initHighlighting, + initHighlightingOnLoad, + registerLanguage, + unregisterLanguage, + listLanguages, + getLanguage, + registerAliases, + autoDetection, + inherit, + addPlugin + }); + + hljs.debugMode = function() { SAFE_MODE = false; }; + hljs.safeMode = function() { SAFE_MODE = true; }; + hljs.versionString = version; + + hljs.regex = { + concat: concat, + lookahead: lookahead, + either: either, + optional: optional, + anyNumberOfTimes: anyNumberOfTimes + }; + + for (const key in MODES) { + // @ts-ignore + if (typeof MODES[key] === "object") { + // @ts-ignore + deepFreezeEs6.exports(MODES[key]); + } + } + + // merge all the modes/regexes into our main object + Object.assign(hljs, MODES); + + return hljs; +}; + +// export an "instance" of the highlighter +var highlight = HLJS({}); + +export { highlight as default }; diff --git a/src/app/resources/assets/highlight/es/core.min.js b/src/app/resources/assets/highlight/es/core.min.js new file mode 100644 index 0000000..5e5da43 --- /dev/null +++ b/src/app/resources/assets/highlight/es/core.min.js @@ -0,0 +1,306 @@ +/*! + Highlight.js v11.7.0 (git: 82688fad18) + (c) 2006-2022 undefined and other contributors + License: BSD-3-Clause + */ +var e={exports:{}};function t(e){ +return e instanceof Map?e.clear=e.delete=e.set=()=>{ +throw Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=()=>{ +throw Error("set is read-only") +}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((n=>{var i=e[n] +;"object"!=typeof i||Object.isFrozen(i)||t(i)})),e} +e.exports=t,e.exports.default=t;class n{constructor(e){ +void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} +ignoreMatch(){this.isMatchIgnored=!0}}function i(e){ +return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") +}function r(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t] +;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n} +const s=e=>!!e.scope||e.sublanguage&&e.language;class o{constructor(e,t){ +this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){ +this.buffer+=i(e)}openNode(e){if(!s(e))return;let t="" +;t=e.sublanguage?"language-"+e.language:((e,{prefix:t})=>{if(e.includes(".")){ +const n=e.split(".") +;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ") +}return`${t}${e}`})(e.scope,{prefix:this.classPrefix}),this.span(t)} +closeNode(e){s(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ +this.buffer+=``}}const a=(e={})=>{const t={children:[]} +;return Object.assign(t,e),t};class c{constructor(){ +this.rootNode=a(),this.stack=[this.rootNode]}get top(){ +return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ +this.top.children.push(e)}openNode(e){const t=a({scope:e}) +;this.add(t),this.stack.push(t)}closeNode(){ +if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ +for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} +walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){ +return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t), +t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){ +"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ +c._collapse(e)})))}}class l extends c{constructor(e){super(),this.options=e} +addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())} +addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root +;n.sublanguage=!0,n.language=t,this.add(n)}toHTML(){ +return new o(this,this.options).value()}finalize(){return!0}}function g(e){ +return e?"string"==typeof e?e:e.source:null}function d(e){return p("(?=",e,")")} +function u(e){return p("(?:",e,")*")}function h(e){return p("(?:",e,")?")} +function p(...e){return e.map((e=>g(e))).join("")}function f(...e){const t=(e=>{ +const t=e[e.length-1] +;return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{} +})(e);return"("+(t.capture?"":"?:")+e.map((e=>g(e))).join("|")+")"} +function b(e){return RegExp(e.toString()+"|").exec("").length-1} +const m=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ +;function E(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n +;let i=g(e),r="";for(;i.length>0;){const e=m.exec(i);if(!e){r+=i;break} +r+=i.substring(0,e.index), +i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?r+="\\"+(Number(e[1])+t):(r+=e[0], +"("===e[0]&&n++)}return r})).map((e=>`(${e})`)).join(t)} +const x="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",w={ +begin:"\\\\[\\s\\S]",relevance:0},y={scope:"string",begin:"'",end:"'", +illegal:"\\n",contains:[w]},_={scope:"string",begin:'"',end:'"',illegal:"\\n", +contains:[w]},O=(e,t,n={})=>{const i=r({scope:"comment",begin:e,end:t, +contains:[]},n);i.contains.push({scope:"doctag", +begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", +end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) +;const s=f("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) +;return i.contains.push({begin:p(/[ ]+/,"(",s,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i +},v=O("//","$"),N=O("/\\*","\\*/"),k=O("#","$");var M=Object.freeze({ +__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:"[a-zA-Z]\\w*", +UNDERSCORE_IDENT_RE:"[a-zA-Z_]\\w*",NUMBER_RE:"\\b\\d+(\\.\\d+)?",C_NUMBER_RE:x, +BINARY_NUMBER_RE:"\\b(0b[01]+)", +RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", +SHEBANG:(e={})=>{const t=/^#![ ]*\// +;return e.binary&&(e.begin=p(t,/.*\b/,e.binary,/\b.*/)),r({scope:"meta",begin:t, +end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)}, +BACKSLASH_ESCAPE:w,APOS_STRING_MODE:y,QUOTE_STRING_MODE:_,PHRASAL_WORDS_MODE:{ +begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ +},COMMENT:O,C_LINE_COMMENT_MODE:v,C_BLOCK_COMMENT_MODE:N,HASH_COMMENT_MODE:k, +NUMBER_MODE:{scope:"number",begin:"\\b\\d+(\\.\\d+)?",relevance:0}, +C_NUMBER_MODE:{scope:"number",begin:x,relevance:0},BINARY_NUMBER_MODE:{ +scope:"number",begin:"\\b(0b[01]+)",relevance:0},REGEXP_MODE:{ +begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/, +illegal:/\n/,contains:[w,{begin:/\[/,end:/\]/,relevance:0,contains:[w]}]}]}, +TITLE_MODE:{scope:"title",begin:"[a-zA-Z]\\w*",relevance:0}, +UNDERSCORE_TITLE_MODE:{scope:"title",begin:"[a-zA-Z_]\\w*",relevance:0}, +METHOD_GUARD:{begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0}, +END_SAME_AS_BEGIN:e=>Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1] +},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})}) +;function S(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function R(e,t){ +void 0!==e.className&&(e.scope=e.className,delete e.className)}function A(e,t){ +t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", +e.__beforeBegin=S,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, +void 0===e.relevance&&(e.relevance=0))}function j(e,t){ +Array.isArray(e.illegal)&&(e.illegal=f(...e.illegal))}function I(e,t){ +if(e.match){ +if(e.begin||e.end)throw Error("begin & end are not supported with match") +;e.begin=e.match,delete e.match}}function T(e,t){ +void 0===e.relevance&&(e.relevance=1)}const L=(e,t)=>{if(!e.beforeMatch)return +;if(e.starts)throw Error("beforeMatch cannot be used with starts") +;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t] +})),e.keywords=n.keywords,e.begin=p(n.beforeMatch,d(n.begin)),e.starts={ +relevance:0,contains:[Object.assign(n,{endsParent:!0})] +},e.relevance=0,delete n.beforeMatch +},B=["of","and","for","in","not","or","if","then","parent","list","value"] +;function D(e,t,n="keyword"){const i=Object.create(null) +;return"string"==typeof e?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach((n=>{ +Object.assign(i,D(e[n],t,n))})),i;function r(e,n){ +t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|") +;i[n[0]]=[e,H(n[0],n[1])]}))}}function H(e,t){ +return t?Number(t):(e=>B.includes(e.toLowerCase()))(e)?0:1}const P={},C=e=>{ +console.error(e)},$=(e,...t)=>{console.log("WARN: "+e,...t)},U=(e,t)=>{ +P[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),P[`${e}/${t}`]=!0) +},z=Error();function K(e,t,{key:n}){let i=0;const r=e[n],s={},o={} +;for(let e=1;e<=t.length;e++)o[e+i]=r[e],s[e+i]=!0,i+=b(t[e-1]) +;e[n]=o,e[n]._emit=s,e[n]._multi=!0}function W(e){(e=>{ +e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope, +delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={ +_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope +}),(e=>{if(Array.isArray(e.begin)){ +if(e.skip||e.excludeBegin||e.returnBegin)throw C("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), +z +;if("object"!=typeof e.beginScope||null===e.beginScope)throw C("beginScope must be object"), +z;K(e,e.begin,{key:"beginScope"}),e.begin=E(e.begin,{joinWith:""})}})(e),(e=>{ +if(Array.isArray(e.end)){ +if(e.skip||e.excludeEnd||e.returnEnd)throw C("skip, excludeEnd, returnEnd not compatible with endScope: {}"), +z +;if("object"!=typeof e.endScope||null===e.endScope)throw C("endScope must be object"), +z;K(e,e.end,{key:"endScope"}),e.end=E(e.end,{joinWith:""})}})(e)}function X(e){ +function t(t,n){ +return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":"")) +}class n{constructor(){ +this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} +addRule(e,t){ +t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]), +this.matchAt+=b(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) +;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(E(e,{joinWith:"|" +}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex +;const t=this.matcherRe.exec(e);if(!t)return null +;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n] +;return t.splice(0,n),Object.assign(t,i)}}class i{constructor(){ +this.rules=[],this.multiRegexes=[], +this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ +if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n +;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))), +t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){ +return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){ +this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){ +const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex +;let n=t.exec(e) +;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{ +const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)} +return n&&(this.regexIndex+=n.position+1, +this.regexIndex===this.count&&this.considerAll()),n}} +if(e.compilerExtensions||(e.compilerExtensions=[]), +e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") +;return e.classNameAliases=r(e.classNameAliases||{}),function n(s,o){const a=s +;if(s.isCompiled)return a +;[R,I,W,L].forEach((e=>e(s,o))),e.compilerExtensions.forEach((e=>e(s,o))), +s.__beforeBegin=null,[A,j,T].forEach((e=>e(s,o))),s.isCompiled=!0;let c=null +;return"object"==typeof s.keywords&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords), +c=s.keywords.$pattern, +delete s.keywords.$pattern),c=c||/\w+/,s.keywords&&(s.keywords=D(s.keywords,e.case_insensitive)), +a.keywordPatternRe=t(c,!0), +o&&(s.begin||(s.begin=/\B|\b/),a.beginRe=t(a.begin),s.end||s.endsWithParent||(s.end=/\B|\b/), +s.end&&(a.endRe=t(a.end)), +a.terminatorEnd=g(a.end)||"",s.endsWithParent&&o.terminatorEnd&&(a.terminatorEnd+=(s.end?"|":"")+o.terminatorEnd)), +s.illegal&&(a.illegalRe=t(s.illegal)), +s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>r(e,{ +variants:null},t)))),e.cachedVariants?e.cachedVariants:Z(e)?r(e,{ +starts:e.starts?r(e.starts):null +}):Object.isFrozen(e)?r(e):e))("self"===e?s:e)))),s.contains.forEach((e=>{n(e,a) +})),s.starts&&n(s.starts,o),a.matcher=(e=>{const t=new i +;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin" +}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end" +}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(a),a}(e)}function Z(e){ +return!!e&&(e.endsWithParent||Z(e.starts))}class G extends Error{ +constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}} +const F=i,V=r,q=Symbol("nomatch");var J=(t=>{ +const i=Object.create(null),r=Object.create(null),s=[];let o=!0 +;const a="Could not find the language '{}', did you forget to load/include a language module?",c={ +disableAutodetect:!0,name:"Plain text",contains:[]};let g={ +ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, +languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", +cssSelector:"pre code",languages:null,__emitter:l};function b(e){ +return g.noHighlightRe.test(e)}function m(e,t,n){let i="",r="" +;"object"==typeof t?(i=e, +n=t.ignoreIllegals,r=t.language):(U("10.7.0","highlight(lang, code, ...args) has been deprecated."), +U("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), +r=e,i=t),void 0===n&&(n=!0);const s={code:i,language:r};k("before:highlight",s) +;const o=s.result?s.result:E(s.language,s.code,n) +;return o.code=s.code,k("after:highlight",o),o}function E(e,t,r,s){ +const c=Object.create(null);function l(){if(!N.keywords)return void M.addText(S) +;let e=0;N.keywordPatternRe.lastIndex=0;let t=N.keywordPatternRe.exec(S),n="" +;for(;t;){n+=S.substring(e,t.index) +;const r=y.case_insensitive?t[0].toLowerCase():t[0],s=(i=r,N.keywords[i]);if(s){ +const[e,i]=s +;if(M.addText(n),n="",c[r]=(c[r]||0)+1,c[r]<=7&&(R+=i),e.startsWith("_"))n+=t[0];else{ +const n=y.classNameAliases[e]||e;M.addKeyword(t[0],n)}}else n+=t[0] +;e=N.keywordPatternRe.lastIndex,t=N.keywordPatternRe.exec(S)}var i +;n+=S.substring(e),M.addText(n)}function d(){null!=N.subLanguage?(()=>{ +if(""===S)return;let e=null;if("string"==typeof N.subLanguage){ +if(!i[N.subLanguage])return void M.addText(S) +;e=E(N.subLanguage,S,!0,k[N.subLanguage]),k[N.subLanguage]=e._top +}else e=x(S,N.subLanguage.length?N.subLanguage:null) +;N.relevance>0&&(R+=e.relevance),M.addSublanguage(e._emitter,e.language) +})():l(),S=""}function u(e,t){let n=1;const i=t.length-1;for(;n<=i;){ +if(!e._emit[n]){n++;continue}const i=y.classNameAliases[e[n]]||e[n],r=t[n] +;i?M.addKeyword(r,i):(S=r,l(),S=""),n++}}function h(e,t){ +return e.scope&&"string"==typeof e.scope&&M.openNode(y.classNameAliases[e.scope]||e.scope), +e.beginScope&&(e.beginScope._wrap?(M.addKeyword(S,y.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), +S=""):e.beginScope._multi&&(u(e.beginScope,t),S="")),N=Object.create(e,{parent:{ +value:N}}),N}function p(e,t,i){let r=((e,t)=>{const n=e&&e.exec(t) +;return n&&0===n.index})(e.endRe,i);if(r){if(e["on:end"]){const i=new n(e) +;e["on:end"](t,i),i.isMatchIgnored&&(r=!1)}if(r){ +for(;e.endsParent&&e.parent;)e=e.parent;return e}} +if(e.endsWithParent)return p(e.parent,t,i)}function f(e){ +return 0===N.matcher.regexIndex?(S+=e[0],1):(I=!0,0)}function b(e){ +const n=e[0],i=t.substring(e.index),r=p(N,e,i);if(!r)return q;const s=N +;N.endScope&&N.endScope._wrap?(d(), +M.addKeyword(n,N.endScope._wrap)):N.endScope&&N.endScope._multi?(d(), +u(N.endScope,e)):s.skip?S+=n:(s.returnEnd||s.excludeEnd||(S+=n), +d(),s.excludeEnd&&(S=n));do{ +N.scope&&M.closeNode(),N.skip||N.subLanguage||(R+=N.relevance),N=N.parent +}while(N!==r.parent);return r.starts&&h(r.starts,e),s.returnEnd?0:n.length} +let m={};function w(i,s){const a=s&&s[0];if(S+=i,null==a)return d(),0 +;if("begin"===m.type&&"end"===s.type&&m.index===s.index&&""===a){ +if(S+=t.slice(s.index,s.index+1),!o){const t=Error(`0 width match regex (${e})`) +;throw t.languageName=e,t.badRule=m.rule,t}return 1} +if(m=s,"begin"===s.type)return(e=>{ +const t=e[0],i=e.rule,r=new n(i),s=[i.__beforeBegin,i["on:begin"]] +;for(const n of s)if(n&&(n(e,r),r.isMatchIgnored))return f(t) +;return i.skip?S+=t:(i.excludeBegin&&(S+=t), +d(),i.returnBegin||i.excludeBegin||(S=t)),h(i,e),i.returnBegin?0:t.length})(s) +;if("illegal"===s.type&&!r){ +const e=Error('Illegal lexeme "'+a+'" for mode "'+(N.scope||"")+'"') +;throw e.mode=N,e}if("end"===s.type){const e=b(s);if(e!==q)return e} +if("illegal"===s.type&&""===a)return 1 +;if(j>1e5&&j>3*s.index)throw Error("potential infinite loop, way more iterations than matches") +;return S+=a,a.length}const y=O(e) +;if(!y)throw C(a.replace("{}",e)),Error('Unknown language: "'+e+'"') +;const _=X(y);let v="",N=s||_;const k={},M=new g.__emitter(g);(()=>{const e=[] +;for(let t=N;t!==y;t=t.parent)t.scope&&e.unshift(t.scope) +;e.forEach((e=>M.openNode(e)))})();let S="",R=0,A=0,j=0,I=!1;try{ +for(N.matcher.considerAll();;){ +j++,I?I=!1:N.matcher.considerAll(),N.matcher.lastIndex=A +;const e=N.matcher.exec(t);if(!e)break;const n=w(t.substring(A,e.index),e) +;A=e.index+n} +return w(t.substring(A)),M.closeAllNodes(),M.finalize(),v=M.toHTML(),{ +language:e,value:v,relevance:R,illegal:!1,_emitter:M,_top:N}}catch(n){ +if(n.message&&n.message.includes("Illegal"))return{language:e,value:F(t), +illegal:!0,relevance:0,_illegalBy:{message:n.message,index:A, +context:t.slice(A-100,A+100),mode:n.mode,resultSoFar:v},_emitter:M};if(o)return{ +language:e,value:F(t),illegal:!1,relevance:0,errorRaised:n,_emitter:M,_top:N} +;throw n}}function x(e,t){t=t||g.languages||Object.keys(i);const n=(e=>{ +const t={value:F(e),illegal:!1,relevance:0,_top:c,_emitter:new g.__emitter(g)} +;return t._emitter.addText(e),t})(e),r=t.filter(O).filter(N).map((t=>E(t,e,!1))) +;r.unshift(n);const s=r.sort(((e,t)=>{ +if(e.relevance!==t.relevance)return t.relevance-e.relevance +;if(e.language&&t.language){if(O(e.language).supersetOf===t.language)return 1 +;if(O(t.language).supersetOf===e.language)return-1}return 0})),[o,a]=s,l=o +;return l.secondBest=a,l}function w(e){let t=null;const n=(e=>{ +let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"" +;const n=g.languageDetectRe.exec(t);if(n){const t=O(n[1]) +;return t||($(a.replace("{}",n[1])), +$("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"} +return t.split(/\s+/).find((e=>b(e)||O(e)))})(e);if(b(n))return +;if(k("before:highlightElement",{el:e,language:n +}),e.children.length>0&&(g.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), +console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), +console.warn("The element with unescaped HTML:"), +console.warn(e)),g.throwUnescapedHTML))throw new G("One of your code blocks includes unescaped HTML.",e.innerHTML) +;t=e;const i=t.textContent,s=n?m(i,{language:n,ignoreIllegals:!0}):x(i) +;e.innerHTML=s.value,((e,t,n)=>{const i=t&&r[t]||n +;e.classList.add("hljs"),e.classList.add("language-"+i) +})(e,n,s.language),e.result={language:s.language,re:s.relevance, +relevance:s.relevance},s.secondBest&&(e.secondBest={ +language:s.secondBest.language,relevance:s.secondBest.relevance +}),k("after:highlightElement",{el:e,result:s,text:i})}let y=!1;function _(){ +"loading"!==document.readyState?document.querySelectorAll(g.cssSelector).forEach(w):y=!0 +}function O(e){return e=(e||"").toLowerCase(),i[e]||i[r[e]]} +function v(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ +r[e.toLowerCase()]=t}))}function N(e){const t=O(e) +;return t&&!t.disableAutodetect}function k(e,t){const n=e;s.forEach((e=>{ +e[n]&&e[n](t)}))} +"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ +y&&_()}),!1),Object.assign(t,{highlight:m,highlightAuto:x,highlightAll:_, +highlightElement:w, +highlightBlock:e=>(U("10.7.0","highlightBlock will be removed entirely in v12.0"), +U("10.7.0","Please use highlightElement now."),w(e)),configure:e=>{g=V(g,e)}, +initHighlighting:()=>{ +_(),U("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")}, +initHighlightingOnLoad:()=>{ +_(),U("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.") +},registerLanguage:(e,n)=>{let r=null;try{r=n(t)}catch(t){ +if(C("Language definition for '{}' could not be registered.".replace("{}",e)), +!o)throw t;C(t),r=c} +r.name||(r.name=e),i[e]=r,r.rawDefinition=n.bind(null,t),r.aliases&&v(r.aliases,{ +languageName:e})},unregisterLanguage:e=>{delete i[e] +;for(const t of Object.keys(r))r[t]===e&&delete r[t]}, +listLanguages:()=>Object.keys(i),getLanguage:O,registerAliases:v, +autoDetection:N,inherit:V,addPlugin:e=>{(e=>{ +e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{ +e["before:highlightBlock"](Object.assign({block:t.el},t)) +}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{ +e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),s.push(e)} +}),t.debugMode=()=>{o=!1},t.safeMode=()=>{o=!0 +},t.versionString="11.7.0",t.regex={concat:p,lookahead:d,either:f,optional:h, +anyNumberOfTimes:u};for(const t in M)"object"==typeof M[t]&&e.exports(M[t]) +;return Object.assign(t,M),t})({});export{J as default}; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/highlight.js b/src/app/resources/assets/highlight/es/highlight.js new file mode 100644 index 0000000..40b153e --- /dev/null +++ b/src/app/resources/assets/highlight/es/highlight.js @@ -0,0 +1,2569 @@ +/*! + Highlight.js v11.7.0 (git: 82688fad18) + (c) 2006-2022 undefined and other contributors + License: BSD-3-Clause + */ +var deepFreezeEs6 = {exports: {}}; + +function deepFreeze(obj) { + if (obj instanceof Map) { + obj.clear = obj.delete = obj.set = function () { + throw new Error('map is read-only'); + }; + } else if (obj instanceof Set) { + obj.add = obj.clear = obj.delete = function () { + throw new Error('set is read-only'); + }; + } + + // Freeze self + Object.freeze(obj); + + Object.getOwnPropertyNames(obj).forEach(function (name) { + var prop = obj[name]; + + // Freeze prop if it is an object + if (typeof prop == 'object' && !Object.isFrozen(prop)) { + deepFreeze(prop); + } + }); + + return obj; +} + +deepFreezeEs6.exports = deepFreeze; +deepFreezeEs6.exports.default = deepFreeze; + +/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */ +/** @typedef {import('highlight.js').CompiledMode} CompiledMode */ +/** @implements CallbackResponse */ + +class Response { + /** + * @param {CompiledMode} mode + */ + constructor(mode) { + // eslint-disable-next-line no-undefined + if (mode.data === undefined) mode.data = {}; + + this.data = mode.data; + this.isMatchIgnored = false; + } + + ignoreMatch() { + this.isMatchIgnored = true; + } +} + +/** + * @param {string} value + * @returns {string} + */ +function escapeHTML(value) { + return value + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +/** + * performs a shallow merge of multiple objects into one + * + * @template T + * @param {T} original + * @param {Record[]} objects + * @returns {T} a single new object + */ +function inherit$1(original, ...objects) { + /** @type Record */ + const result = Object.create(null); + + for (const key in original) { + result[key] = original[key]; + } + objects.forEach(function(obj) { + for (const key in obj) { + result[key] = obj[key]; + } + }); + return /** @type {T} */ (result); +} + +/** + * @typedef {object} Renderer + * @property {(text: string) => void} addText + * @property {(node: Node) => void} openNode + * @property {(node: Node) => void} closeNode + * @property {() => string} value + */ + +/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */ +/** @typedef {{walk: (r: Renderer) => void}} Tree */ +/** */ + +const SPAN_CLOSE = ''; + +/** + * Determines if a node needs to be wrapped in + * + * @param {Node} node */ +const emitsWrappingTags = (node) => { + // rarely we can have a sublanguage where language is undefined + // TODO: track down why + return !!node.scope || (node.sublanguage && node.language); +}; + +/** + * + * @param {string} name + * @param {{prefix:string}} options + */ +const scopeToCSSClass = (name, { prefix }) => { + if (name.includes(".")) { + const pieces = name.split("."); + return [ + `${prefix}${pieces.shift()}`, + ...(pieces.map((x, i) => `${x}${"_".repeat(i + 1)}`)) + ].join(" "); + } + return `${prefix}${name}`; +}; + +/** @type {Renderer} */ +class HTMLRenderer { + /** + * Creates a new HTMLRenderer + * + * @param {Tree} parseTree - the parse tree (must support `walk` API) + * @param {{classPrefix: string}} options + */ + constructor(parseTree, options) { + this.buffer = ""; + this.classPrefix = options.classPrefix; + parseTree.walk(this); + } + + /** + * Adds texts to the output stream + * + * @param {string} text */ + addText(text) { + this.buffer += escapeHTML(text); + } + + /** + * Adds a node open to the output stream (if needed) + * + * @param {Node} node */ + openNode(node) { + if (!emitsWrappingTags(node)) return; + + let className = ""; + if (node.sublanguage) { + className = `language-${node.language}`; + } else { + className = scopeToCSSClass(node.scope, { prefix: this.classPrefix }); + } + this.span(className); + } + + /** + * Adds a node close to the output stream (if needed) + * + * @param {Node} node */ + closeNode(node) { + if (!emitsWrappingTags(node)) return; + + this.buffer += SPAN_CLOSE; + } + + /** + * returns the accumulated buffer + */ + value() { + return this.buffer; + } + + // helpers + + /** + * Builds a span element + * + * @param {string} className */ + span(className) { + this.buffer += ``; + } +} + +/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} | string} Node */ +/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} } DataNode */ +/** @typedef {import('highlight.js').Emitter} Emitter */ +/** */ + +/** @returns {DataNode} */ +const newNode = (opts = {}) => { + /** @type DataNode */ + const result = { children: [] }; + Object.assign(result, opts); + return result; +}; + +class TokenTree { + constructor() { + /** @type DataNode */ + this.rootNode = newNode(); + this.stack = [this.rootNode]; + } + + get top() { + return this.stack[this.stack.length - 1]; + } + + get root() { return this.rootNode; } + + /** @param {Node} node */ + add(node) { + this.top.children.push(node); + } + + /** @param {string} scope */ + openNode(scope) { + /** @type Node */ + const node = newNode({ scope }); + this.add(node); + this.stack.push(node); + } + + closeNode() { + if (this.stack.length > 1) { + return this.stack.pop(); + } + // eslint-disable-next-line no-undefined + return undefined; + } + + closeAllNodes() { + while (this.closeNode()); + } + + toJSON() { + return JSON.stringify(this.rootNode, null, 4); + } + + /** + * @typedef { import("./html_renderer").Renderer } Renderer + * @param {Renderer} builder + */ + walk(builder) { + // this does not + return this.constructor._walk(builder, this.rootNode); + // this works + // return TokenTree._walk(builder, this.rootNode); + } + + /** + * @param {Renderer} builder + * @param {Node} node + */ + static _walk(builder, node) { + if (typeof node === "string") { + builder.addText(node); + } else if (node.children) { + builder.openNode(node); + node.children.forEach((child) => this._walk(builder, child)); + builder.closeNode(node); + } + return builder; + } + + /** + * @param {Node} node + */ + static _collapse(node) { + if (typeof node === "string") return; + if (!node.children) return; + + if (node.children.every(el => typeof el === "string")) { + // node.text = node.children.join(""); + // delete node.children; + node.children = [node.children.join("")]; + } else { + node.children.forEach((child) => { + TokenTree._collapse(child); + }); + } + } +} + +/** + Currently this is all private API, but this is the minimal API necessary + that an Emitter must implement to fully support the parser. + + Minimal interface: + + - addKeyword(text, scope) + - addText(text) + - addSublanguage(emitter, subLanguageName) + - finalize() + - openNode(scope) + - closeNode() + - closeAllNodes() + - toHTML() + +*/ + +/** + * @implements {Emitter} + */ +class TokenTreeEmitter extends TokenTree { + /** + * @param {*} options + */ + constructor(options) { + super(); + this.options = options; + } + + /** + * @param {string} text + * @param {string} scope + */ + addKeyword(text, scope) { + if (text === "") { return; } + + this.openNode(scope); + this.addText(text); + this.closeNode(); + } + + /** + * @param {string} text + */ + addText(text) { + if (text === "") { return; } + + this.add(text); + } + + /** + * @param {Emitter & {root: DataNode}} emitter + * @param {string} name + */ + addSublanguage(emitter, name) { + /** @type DataNode */ + const node = emitter.root; + node.sublanguage = true; + node.language = name; + this.add(node); + } + + toHTML() { + const renderer = new HTMLRenderer(this, this.options); + return renderer.value(); + } + + finalize() { + return true; + } +} + +/** + * @param {string} value + * @returns {RegExp} + * */ + +/** + * @param {RegExp | string } re + * @returns {string} + */ +function source(re) { + if (!re) return null; + if (typeof re === "string") return re; + + return re.source; +} + +/** + * @param {RegExp | string } re + * @returns {string} + */ +function lookahead(re) { + return concat('(?=', re, ')'); +} + +/** + * @param {RegExp | string } re + * @returns {string} + */ +function anyNumberOfTimes(re) { + return concat('(?:', re, ')*'); +} + +/** + * @param {RegExp | string } re + * @returns {string} + */ +function optional(re) { + return concat('(?:', re, ')?'); +} + +/** + * @param {...(RegExp | string) } args + * @returns {string} + */ +function concat(...args) { + const joined = args.map((x) => source(x)).join(""); + return joined; +} + +/** + * @param { Array } args + * @returns {object} + */ +function stripOptionsFromArgs(args) { + const opts = args[args.length - 1]; + + if (typeof opts === 'object' && opts.constructor === Object) { + args.splice(args.length - 1, 1); + return opts; + } else { + return {}; + } +} + +/** @typedef { {capture?: boolean} } RegexEitherOptions */ + +/** + * Any of the passed expresssions may match + * + * Creates a huge this | this | that | that match + * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args + * @returns {string} + */ +function either(...args) { + /** @type { object & {capture?: boolean} } */ + const opts = stripOptionsFromArgs(args); + const joined = '(' + + (opts.capture ? "" : "?:") + + args.map((x) => source(x)).join("|") + ")"; + return joined; +} + +/** + * @param {RegExp | string} re + * @returns {number} + */ +function countMatchGroups(re) { + return (new RegExp(re.toString() + '|')).exec('').length - 1; +} + +/** + * Does lexeme start with a regular expression match at the beginning + * @param {RegExp} re + * @param {string} lexeme + */ +function startsWith(re, lexeme) { + const match = re && re.exec(lexeme); + return match && match.index === 0; +} + +// BACKREF_RE matches an open parenthesis or backreference. To avoid +// an incorrect parse, it additionally matches the following: +// - [...] elements, where the meaning of parentheses and escapes change +// - other escape sequences, so we do not misparse escape sequences as +// interesting elements +// - non-matching or lookahead parentheses, which do not capture. These +// follow the '(' with a '?'. +const BACKREF_RE = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./; + +// **INTERNAL** Not intended for outside usage +// join logically computes regexps.join(separator), but fixes the +// backreferences so they continue to match. +// it also places each individual regular expression into it's own +// match group, keeping track of the sequencing of those match groups +// is currently an exercise for the caller. :-) +/** + * @param {(string | RegExp)[]} regexps + * @param {{joinWith: string}} opts + * @returns {string} + */ +function _rewriteBackreferences(regexps, { joinWith }) { + let numCaptures = 0; + + return regexps.map((regex) => { + numCaptures += 1; + const offset = numCaptures; + let re = source(regex); + let out = ''; + + while (re.length > 0) { + const match = BACKREF_RE.exec(re); + if (!match) { + out += re; + break; + } + out += re.substring(0, match.index); + re = re.substring(match.index + match[0].length); + if (match[0][0] === '\\' && match[1]) { + // Adjust the backreference. + out += '\\' + String(Number(match[1]) + offset); + } else { + out += match[0]; + if (match[0] === '(') { + numCaptures++; + } + } + } + return out; + }).map(re => `(${re})`).join(joinWith); +} + +/** @typedef {import('highlight.js').Mode} Mode */ +/** @typedef {import('highlight.js').ModeCallback} ModeCallback */ + +// Common regexps +const MATCH_NOTHING_RE = /\b\B/; +const IDENT_RE = '[a-zA-Z]\\w*'; +const UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*'; +const NUMBER_RE = '\\b\\d+(\\.\\d+)?'; +const C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float +const BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b... +const RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~'; + +/** +* @param { Partial & {binary?: string | RegExp} } opts +*/ +const SHEBANG = (opts = {}) => { + const beginShebang = /^#![ ]*\//; + if (opts.binary) { + opts.begin = concat( + beginShebang, + /.*\b/, + opts.binary, + /\b.*/); + } + return inherit$1({ + scope: 'meta', + begin: beginShebang, + end: /$/, + relevance: 0, + /** @type {ModeCallback} */ + "on:begin": (m, resp) => { + if (m.index !== 0) resp.ignoreMatch(); + } + }, opts); +}; + +// Common modes +const BACKSLASH_ESCAPE = { + begin: '\\\\[\\s\\S]', relevance: 0 +}; +const APOS_STRING_MODE = { + scope: 'string', + begin: '\'', + end: '\'', + illegal: '\\n', + contains: [BACKSLASH_ESCAPE] +}; +const QUOTE_STRING_MODE = { + scope: 'string', + begin: '"', + end: '"', + illegal: '\\n', + contains: [BACKSLASH_ESCAPE] +}; +const PHRASAL_WORDS_MODE = { + begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ +}; +/** + * Creates a comment mode + * + * @param {string | RegExp} begin + * @param {string | RegExp} end + * @param {Mode | {}} [modeOptions] + * @returns {Partial} + */ +const COMMENT = function(begin, end, modeOptions = {}) { + const mode = inherit$1( + { + scope: 'comment', + begin, + end, + contains: [] + }, + modeOptions + ); + mode.contains.push({ + scope: 'doctag', + // hack to avoid the space from being included. the space is necessary to + // match here to prevent the plain text rule below from gobbling up doctags + begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)', + end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/, + excludeBegin: true, + relevance: 0 + }); + const ENGLISH_WORD = either( + // list of common 1 and 2 letter words in English + "I", + "a", + "is", + "so", + "us", + "to", + "at", + "if", + "in", + "it", + "on", + // note: this is not an exhaustive list of contractions, just popular ones + /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc + /[A-Za-z]+[-][a-z]+/, // `no-way`, etc. + /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences + ); + // looking like plain text, more likely to be a comment + mode.contains.push( + { + // TODO: how to include ", (, ) without breaking grammars that use these for + // comment delimiters? + // begin: /[ ]+([()"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()":]?([.][ ]|[ ]|\))){3}/ + // --- + + // this tries to find sequences of 3 english words in a row (without any + // "programming" type syntax) this gives us a strong signal that we've + // TRULY found a comment - vs perhaps scanning with the wrong language. + // It's possible to find something that LOOKS like the start of the + // comment - but then if there is no readable text - good chance it is a + // false match and not a comment. + // + // for a visual example please see: + // https://github.com/highlightjs/highlight.js/issues/2827 + + begin: concat( + /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */ + '(', + ENGLISH_WORD, + /[.]?[:]?([.][ ]|[ ])/, + '){3}') // look for 3 words in a row + } + ); + return mode; +}; +const C_LINE_COMMENT_MODE = COMMENT('//', '$'); +const C_BLOCK_COMMENT_MODE = COMMENT('/\\*', '\\*/'); +const HASH_COMMENT_MODE = COMMENT('#', '$'); +const NUMBER_MODE = { + scope: 'number', + begin: NUMBER_RE, + relevance: 0 +}; +const C_NUMBER_MODE = { + scope: 'number', + begin: C_NUMBER_RE, + relevance: 0 +}; +const BINARY_NUMBER_MODE = { + scope: 'number', + begin: BINARY_NUMBER_RE, + relevance: 0 +}; +const REGEXP_MODE = { + // this outer rule makes sure we actually have a WHOLE regex and not simply + // an expression such as: + // + // 3 / something + // + // (which will then blow up when regex's `illegal` sees the newline) + begin: /(?=\/[^/\n]*\/)/, + contains: [{ + scope: 'regexp', + begin: /\//, + end: /\/[gimuy]*/, + illegal: /\n/, + contains: [ + BACKSLASH_ESCAPE, + { + begin: /\[/, + end: /\]/, + relevance: 0, + contains: [BACKSLASH_ESCAPE] + } + ] + }] +}; +const TITLE_MODE = { + scope: 'title', + begin: IDENT_RE, + relevance: 0 +}; +const UNDERSCORE_TITLE_MODE = { + scope: 'title', + begin: UNDERSCORE_IDENT_RE, + relevance: 0 +}; +const METHOD_GUARD = { + // excludes method names from keyword processing + begin: '\\.\\s*' + UNDERSCORE_IDENT_RE, + relevance: 0 +}; + +/** + * Adds end same as begin mechanics to a mode + * + * Your mode must include at least a single () match group as that first match + * group is what is used for comparison + * @param {Partial} mode + */ +const END_SAME_AS_BEGIN = function(mode) { + return Object.assign(mode, + { + /** @type {ModeCallback} */ + 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; }, + /** @type {ModeCallback} */ + 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); } + }); +}; + +var MODES = /*#__PURE__*/Object.freeze({ + __proto__: null, + MATCH_NOTHING_RE: MATCH_NOTHING_RE, + IDENT_RE: IDENT_RE, + UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE, + NUMBER_RE: NUMBER_RE, + C_NUMBER_RE: C_NUMBER_RE, + BINARY_NUMBER_RE: BINARY_NUMBER_RE, + RE_STARTERS_RE: RE_STARTERS_RE, + SHEBANG: SHEBANG, + BACKSLASH_ESCAPE: BACKSLASH_ESCAPE, + APOS_STRING_MODE: APOS_STRING_MODE, + QUOTE_STRING_MODE: QUOTE_STRING_MODE, + PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE, + COMMENT: COMMENT, + C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE, + C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE, + HASH_COMMENT_MODE: HASH_COMMENT_MODE, + NUMBER_MODE: NUMBER_MODE, + C_NUMBER_MODE: C_NUMBER_MODE, + BINARY_NUMBER_MODE: BINARY_NUMBER_MODE, + REGEXP_MODE: REGEXP_MODE, + TITLE_MODE: TITLE_MODE, + UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE, + METHOD_GUARD: METHOD_GUARD, + END_SAME_AS_BEGIN: END_SAME_AS_BEGIN +}); + +/** +@typedef {import('highlight.js').CallbackResponse} CallbackResponse +@typedef {import('highlight.js').CompilerExt} CompilerExt +*/ + +// Grammar extensions / plugins +// See: https://github.com/highlightjs/highlight.js/issues/2833 + +// Grammar extensions allow "syntactic sugar" to be added to the grammar modes +// without requiring any underlying changes to the compiler internals. + +// `compileMatch` being the perfect small example of now allowing a grammar +// author to write `match` when they desire to match a single expression rather +// than being forced to use `begin`. The extension then just moves `match` into +// `begin` when it runs. Ie, no features have been added, but we've just made +// the experience of writing (and reading grammars) a little bit nicer. + +// ------ + +// TODO: We need negative look-behind support to do this properly +/** + * Skip a match if it has a preceding dot + * + * This is used for `beginKeywords` to prevent matching expressions such as + * `bob.keyword.do()`. The mode compiler automatically wires this up as a + * special _internal_ 'on:begin' callback for modes with `beginKeywords` + * @param {RegExpMatchArray} match + * @param {CallbackResponse} response + */ +function skipIfHasPrecedingDot(match, response) { + const before = match.input[match.index - 1]; + if (before === ".") { + response.ignoreMatch(); + } +} + +/** + * + * @type {CompilerExt} + */ +function scopeClassName(mode, _parent) { + // eslint-disable-next-line no-undefined + if (mode.className !== undefined) { + mode.scope = mode.className; + delete mode.className; + } +} + +/** + * `beginKeywords` syntactic sugar + * @type {CompilerExt} + */ +function beginKeywords(mode, parent) { + if (!parent) return; + if (!mode.beginKeywords) return; + + // for languages with keywords that include non-word characters checking for + // a word boundary is not sufficient, so instead we check for a word boundary + // or whitespace - this does no harm in any case since our keyword engine + // doesn't allow spaces in keywords anyways and we still check for the boundary + // first + mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\.)(?=\\b|\\s)'; + mode.__beforeBegin = skipIfHasPrecedingDot; + mode.keywords = mode.keywords || mode.beginKeywords; + delete mode.beginKeywords; + + // prevents double relevance, the keywords themselves provide + // relevance, the mode doesn't need to double it + // eslint-disable-next-line no-undefined + if (mode.relevance === undefined) mode.relevance = 0; +} + +/** + * Allow `illegal` to contain an array of illegal values + * @type {CompilerExt} + */ +function compileIllegal(mode, _parent) { + if (!Array.isArray(mode.illegal)) return; + + mode.illegal = either(...mode.illegal); +} + +/** + * `match` to match a single expression for readability + * @type {CompilerExt} + */ +function compileMatch(mode, _parent) { + if (!mode.match) return; + if (mode.begin || mode.end) throw new Error("begin & end are not supported with match"); + + mode.begin = mode.match; + delete mode.match; +} + +/** + * provides the default 1 relevance to all modes + * @type {CompilerExt} + */ +function compileRelevance(mode, _parent) { + // eslint-disable-next-line no-undefined + if (mode.relevance === undefined) mode.relevance = 1; +} + +// allow beforeMatch to act as a "qualifier" for the match +// the full match begin must be [beforeMatch][begin] +const beforeMatchExt = (mode, parent) => { + if (!mode.beforeMatch) return; + // starts conflicts with endsParent which we need to make sure the child + // rule is not matched multiple times + if (mode.starts) throw new Error("beforeMatch cannot be used with starts"); + + const originalMode = Object.assign({}, mode); + Object.keys(mode).forEach((key) => { delete mode[key]; }); + + mode.keywords = originalMode.keywords; + mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin)); + mode.starts = { + relevance: 0, + contains: [ + Object.assign(originalMode, { endsParent: true }) + ] + }; + mode.relevance = 0; + + delete originalMode.beforeMatch; +}; + +// keywords that should have no default relevance value +const COMMON_KEYWORDS = [ + 'of', + 'and', + 'for', + 'in', + 'not', + 'or', + 'if', + 'then', + 'parent', // common variable name + 'list', // common variable name + 'value' // common variable name +]; + +const DEFAULT_KEYWORD_SCOPE = "keyword"; + +/** + * Given raw keywords from a language definition, compile them. + * + * @param {string | Record | Array} rawKeywords + * @param {boolean} caseInsensitive + */ +function compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) { + /** @type {import("highlight.js/private").KeywordDict} */ + const compiledKeywords = Object.create(null); + + // input can be a string of keywords, an array of keywords, or a object with + // named keys representing scopeName (which can then point to a string or array) + if (typeof rawKeywords === 'string') { + compileList(scopeName, rawKeywords.split(" ")); + } else if (Array.isArray(rawKeywords)) { + compileList(scopeName, rawKeywords); + } else { + Object.keys(rawKeywords).forEach(function(scopeName) { + // collapse all our objects back into the parent object + Object.assign( + compiledKeywords, + compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName) + ); + }); + } + return compiledKeywords; + + // --- + + /** + * Compiles an individual list of keywords + * + * Ex: "for if when while|5" + * + * @param {string} scopeName + * @param {Array} keywordList + */ + function compileList(scopeName, keywordList) { + if (caseInsensitive) { + keywordList = keywordList.map(x => x.toLowerCase()); + } + keywordList.forEach(function(keyword) { + const pair = keyword.split('|'); + compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])]; + }); + } +} + +/** + * Returns the proper score for a given keyword + * + * Also takes into account comment keywords, which will be scored 0 UNLESS + * another score has been manually assigned. + * @param {string} keyword + * @param {string} [providedScore] + */ +function scoreForKeyword(keyword, providedScore) { + // manual scores always win over common keywords + // so you can force a score of 1 if you really insist + if (providedScore) { + return Number(providedScore); + } + + return commonKeyword(keyword) ? 0 : 1; +} + +/** + * Determines if a given keyword is common or not + * + * @param {string} keyword */ +function commonKeyword(keyword) { + return COMMON_KEYWORDS.includes(keyword.toLowerCase()); +} + +/* + +For the reasoning behind this please see: +https://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419 + +*/ + +/** + * @type {Record} + */ +const seenDeprecations = {}; + +/** + * @param {string} message + */ +const error = (message) => { + console.error(message); +}; + +/** + * @param {string} message + * @param {any} args + */ +const warn = (message, ...args) => { + console.log(`WARN: ${message}`, ...args); +}; + +/** + * @param {string} version + * @param {string} message + */ +const deprecated = (version, message) => { + if (seenDeprecations[`${version}/${message}`]) return; + + console.log(`Deprecated as of ${version}. ${message}`); + seenDeprecations[`${version}/${message}`] = true; +}; + +/* eslint-disable no-throw-literal */ + +/** +@typedef {import('highlight.js').CompiledMode} CompiledMode +*/ + +const MultiClassError = new Error(); + +/** + * Renumbers labeled scope names to account for additional inner match + * groups that otherwise would break everything. + * + * Lets say we 3 match scopes: + * + * { 1 => ..., 2 => ..., 3 => ... } + * + * So what we need is a clean match like this: + * + * (a)(b)(c) => [ "a", "b", "c" ] + * + * But this falls apart with inner match groups: + * + * (a)(((b)))(c) => ["a", "b", "b", "b", "c" ] + * + * Our scopes are now "out of alignment" and we're repeating `b` 3 times. + * What needs to happen is the numbers are remapped: + * + * { 1 => ..., 2 => ..., 5 => ... } + * + * We also need to know that the ONLY groups that should be output + * are 1, 2, and 5. This function handles this behavior. + * + * @param {CompiledMode} mode + * @param {Array} regexes + * @param {{key: "beginScope"|"endScope"}} opts + */ +function remapScopeNames(mode, regexes, { key }) { + let offset = 0; + const scopeNames = mode[key]; + /** @type Record */ + const emit = {}; + /** @type Record */ + const positions = {}; + + for (let i = 1; i <= regexes.length; i++) { + positions[i + offset] = scopeNames[i]; + emit[i + offset] = true; + offset += countMatchGroups(regexes[i - 1]); + } + // we use _emit to keep track of which match groups are "top-level" to avoid double + // output from inside match groups + mode[key] = positions; + mode[key]._emit = emit; + mode[key]._multi = true; +} + +/** + * @param {CompiledMode} mode + */ +function beginMultiClass(mode) { + if (!Array.isArray(mode.begin)) return; + + if (mode.skip || mode.excludeBegin || mode.returnBegin) { + error("skip, excludeBegin, returnBegin not compatible with beginScope: {}"); + throw MultiClassError; + } + + if (typeof mode.beginScope !== "object" || mode.beginScope === null) { + error("beginScope must be object"); + throw MultiClassError; + } + + remapScopeNames(mode, mode.begin, { key: "beginScope" }); + mode.begin = _rewriteBackreferences(mode.begin, { joinWith: "" }); +} + +/** + * @param {CompiledMode} mode + */ +function endMultiClass(mode) { + if (!Array.isArray(mode.end)) return; + + if (mode.skip || mode.excludeEnd || mode.returnEnd) { + error("skip, excludeEnd, returnEnd not compatible with endScope: {}"); + throw MultiClassError; + } + + if (typeof mode.endScope !== "object" || mode.endScope === null) { + error("endScope must be object"); + throw MultiClassError; + } + + remapScopeNames(mode, mode.end, { key: "endScope" }); + mode.end = _rewriteBackreferences(mode.end, { joinWith: "" }); +} + +/** + * this exists only to allow `scope: {}` to be used beside `match:` + * Otherwise `beginScope` would necessary and that would look weird + + { + match: [ /def/, /\w+/ ] + scope: { 1: "keyword" , 2: "title" } + } + + * @param {CompiledMode} mode + */ +function scopeSugar(mode) { + if (mode.scope && typeof mode.scope === "object" && mode.scope !== null) { + mode.beginScope = mode.scope; + delete mode.scope; + } +} + +/** + * @param {CompiledMode} mode + */ +function MultiClass(mode) { + scopeSugar(mode); + + if (typeof mode.beginScope === "string") { + mode.beginScope = { _wrap: mode.beginScope }; + } + if (typeof mode.endScope === "string") { + mode.endScope = { _wrap: mode.endScope }; + } + + beginMultiClass(mode); + endMultiClass(mode); +} + +/** +@typedef {import('highlight.js').Mode} Mode +@typedef {import('highlight.js').CompiledMode} CompiledMode +@typedef {import('highlight.js').Language} Language +@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin +@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage +*/ + +// compilation + +/** + * Compiles a language definition result + * + * Given the raw result of a language definition (Language), compiles this so + * that it is ready for highlighting code. + * @param {Language} language + * @returns {CompiledLanguage} + */ +function compileLanguage(language) { + /** + * Builds a regex with the case sensitivity of the current language + * + * @param {RegExp | string} value + * @param {boolean} [global] + */ + function langRe(value, global) { + return new RegExp( + source(value), + 'm' + + (language.case_insensitive ? 'i' : '') + + (language.unicodeRegex ? 'u' : '') + + (global ? 'g' : '') + ); + } + + /** + Stores multiple regular expressions and allows you to quickly search for + them all in a string simultaneously - returning the first match. It does + this by creating a huge (a|b|c) regex - each individual item wrapped with () + and joined by `|` - using match groups to track position. When a match is + found checking which position in the array has content allows us to figure + out which of the original regexes / match groups triggered the match. + + The match object itself (the result of `Regex.exec`) is returned but also + enhanced by merging in any meta-data that was registered with the regex. + This is how we keep track of which mode matched, and what type of rule + (`illegal`, `begin`, end, etc). + */ + class MultiRegex { + constructor() { + this.matchIndexes = {}; + // @ts-ignore + this.regexes = []; + this.matchAt = 1; + this.position = 0; + } + + // @ts-ignore + addRule(re, opts) { + opts.position = this.position++; + // @ts-ignore + this.matchIndexes[this.matchAt] = opts; + this.regexes.push([opts, re]); + this.matchAt += countMatchGroups(re) + 1; + } + + compile() { + if (this.regexes.length === 0) { + // avoids the need to check length every time exec is called + // @ts-ignore + this.exec = () => null; + } + const terminators = this.regexes.map(el => el[1]); + this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true); + this.lastIndex = 0; + } + + /** @param {string} s */ + exec(s) { + this.matcherRe.lastIndex = this.lastIndex; + const match = this.matcherRe.exec(s); + if (!match) { return null; } + + // eslint-disable-next-line no-undefined + const i = match.findIndex((el, i) => i > 0 && el !== undefined); + // @ts-ignore + const matchData = this.matchIndexes[i]; + // trim off any earlier non-relevant match groups (ie, the other regex + // match groups that make up the multi-matcher) + match.splice(0, i); + + return Object.assign(match, matchData); + } + } + + /* + Created to solve the key deficiently with MultiRegex - there is no way to + test for multiple matches at a single location. Why would we need to do + that? In the future a more dynamic engine will allow certain matches to be + ignored. An example: if we matched say the 3rd regex in a large group but + decided to ignore it - we'd need to started testing again at the 4th + regex... but MultiRegex itself gives us no real way to do that. + + So what this class creates MultiRegexs on the fly for whatever search + position they are needed. + + NOTE: These additional MultiRegex objects are created dynamically. For most + grammars most of the time we will never actually need anything more than the + first MultiRegex - so this shouldn't have too much overhead. + + Say this is our search group, and we match regex3, but wish to ignore it. + + regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0 + + What we need is a new MultiRegex that only includes the remaining + possibilities: + + regex4 | regex5 ' ie, startAt = 3 + + This class wraps all that complexity up in a simple API... `startAt` decides + where in the array of expressions to start doing the matching. It + auto-increments, so if a match is found at position 2, then startAt will be + set to 3. If the end is reached startAt will return to 0. + + MOST of the time the parser will be setting startAt manually to 0. + */ + class ResumableMultiRegex { + constructor() { + // @ts-ignore + this.rules = []; + // @ts-ignore + this.multiRegexes = []; + this.count = 0; + + this.lastIndex = 0; + this.regexIndex = 0; + } + + // @ts-ignore + getMatcher(index) { + if (this.multiRegexes[index]) return this.multiRegexes[index]; + + const matcher = new MultiRegex(); + this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts)); + matcher.compile(); + this.multiRegexes[index] = matcher; + return matcher; + } + + resumingScanAtSamePosition() { + return this.regexIndex !== 0; + } + + considerAll() { + this.regexIndex = 0; + } + + // @ts-ignore + addRule(re, opts) { + this.rules.push([re, opts]); + if (opts.type === "begin") this.count++; + } + + /** @param {string} s */ + exec(s) { + const m = this.getMatcher(this.regexIndex); + m.lastIndex = this.lastIndex; + let result = m.exec(s); + + // The following is because we have no easy way to say "resume scanning at the + // existing position but also skip the current rule ONLY". What happens is + // all prior rules are also skipped which can result in matching the wrong + // thing. Example of matching "booger": + + // our matcher is [string, "booger", number] + // + // ....booger.... + + // if "booger" is ignored then we'd really need a regex to scan from the + // SAME position for only: [string, number] but ignoring "booger" (if it + // was the first match), a simple resume would scan ahead who knows how + // far looking only for "number", ignoring potential string matches (or + // future "booger" matches that might be valid.) + + // So what we do: We execute two matchers, one resuming at the same + // position, but the second full matcher starting at the position after: + + // /--- resume first regex match here (for [number]) + // |/---- full match here for [string, "booger", number] + // vv + // ....booger.... + + // Which ever results in a match first is then used. So this 3-4 step + // process essentially allows us to say "match at this position, excluding + // a prior rule that was ignored". + // + // 1. Match "booger" first, ignore. Also proves that [string] does non match. + // 2. Resume matching for [number] + // 3. Match at index + 1 for [string, "booger", number] + // 4. If #2 and #3 result in matches, which came first? + if (this.resumingScanAtSamePosition()) { + if (result && result.index === this.lastIndex) ; else { // use the second matcher result + const m2 = this.getMatcher(0); + m2.lastIndex = this.lastIndex + 1; + result = m2.exec(s); + } + } + + if (result) { + this.regexIndex += result.position + 1; + if (this.regexIndex === this.count) { + // wrap-around to considering all matches again + this.considerAll(); + } + } + + return result; + } + } + + /** + * Given a mode, builds a huge ResumableMultiRegex that can be used to walk + * the content and find matches. + * + * @param {CompiledMode} mode + * @returns {ResumableMultiRegex} + */ + function buildModeRegex(mode) { + const mm = new ResumableMultiRegex(); + + mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: "begin" })); + + if (mode.terminatorEnd) { + mm.addRule(mode.terminatorEnd, { type: "end" }); + } + if (mode.illegal) { + mm.addRule(mode.illegal, { type: "illegal" }); + } + + return mm; + } + + /** skip vs abort vs ignore + * + * @skip - The mode is still entered and exited normally (and contains rules apply), + * but all content is held and added to the parent buffer rather than being + * output when the mode ends. Mostly used with `sublanguage` to build up + * a single large buffer than can be parsed by sublanguage. + * + * - The mode begin ands ends normally. + * - Content matched is added to the parent mode buffer. + * - The parser cursor is moved forward normally. + * + * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it + * never matched) but DOES NOT continue to match subsequent `contains` + * modes. Abort is bad/suboptimal because it can result in modes + * farther down not getting applied because an earlier rule eats the + * content but then aborts. + * + * - The mode does not begin. + * - Content matched by `begin` is added to the mode buffer. + * - The parser cursor is moved forward accordingly. + * + * @ignore - Ignores the mode (as if it never matched) and continues to match any + * subsequent `contains` modes. Ignore isn't technically possible with + * the current parser implementation. + * + * - The mode does not begin. + * - Content matched by `begin` is ignored. + * - The parser cursor is not moved forward. + */ + + /** + * Compiles an individual mode + * + * This can raise an error if the mode contains certain detectable known logic + * issues. + * @param {Mode} mode + * @param {CompiledMode | null} [parent] + * @returns {CompiledMode | never} + */ + function compileMode(mode, parent) { + const cmode = /** @type CompiledMode */ (mode); + if (mode.isCompiled) return cmode; + + [ + scopeClassName, + // do this early so compiler extensions generally don't have to worry about + // the distinction between match/begin + compileMatch, + MultiClass, + beforeMatchExt + ].forEach(ext => ext(mode, parent)); + + language.compilerExtensions.forEach(ext => ext(mode, parent)); + + // __beforeBegin is considered private API, internal use only + mode.__beforeBegin = null; + + [ + beginKeywords, + // do this later so compiler extensions that come earlier have access to the + // raw array if they wanted to perhaps manipulate it, etc. + compileIllegal, + // default to 1 relevance if not specified + compileRelevance + ].forEach(ext => ext(mode, parent)); + + mode.isCompiled = true; + + let keywordPattern = null; + if (typeof mode.keywords === "object" && mode.keywords.$pattern) { + // we need a copy because keywords might be compiled multiple times + // so we can't go deleting $pattern from the original on the first + // pass + mode.keywords = Object.assign({}, mode.keywords); + keywordPattern = mode.keywords.$pattern; + delete mode.keywords.$pattern; + } + keywordPattern = keywordPattern || /\w+/; + + if (mode.keywords) { + mode.keywords = compileKeywords(mode.keywords, language.case_insensitive); + } + + cmode.keywordPatternRe = langRe(keywordPattern, true); + + if (parent) { + if (!mode.begin) mode.begin = /\B|\b/; + cmode.beginRe = langRe(cmode.begin); + if (!mode.end && !mode.endsWithParent) mode.end = /\B|\b/; + if (mode.end) cmode.endRe = langRe(cmode.end); + cmode.terminatorEnd = source(cmode.end) || ''; + if (mode.endsWithParent && parent.terminatorEnd) { + cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd; + } + } + if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal)); + if (!mode.contains) mode.contains = []; + + mode.contains = [].concat(...mode.contains.map(function(c) { + return expandOrCloneMode(c === 'self' ? mode : c); + })); + mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); }); + + if (mode.starts) { + compileMode(mode.starts, parent); + } + + cmode.matcher = buildModeRegex(cmode); + return cmode; + } + + if (!language.compilerExtensions) language.compilerExtensions = []; + + // self is not valid at the top-level + if (language.contains && language.contains.includes('self')) { + throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation."); + } + + // we need a null object, which inherit will guarantee + language.classNameAliases = inherit$1(language.classNameAliases || {}); + + return compileMode(/** @type Mode */ (language)); +} + +/** + * Determines if a mode has a dependency on it's parent or not + * + * If a mode does have a parent dependency then often we need to clone it if + * it's used in multiple places so that each copy points to the correct parent, + * where-as modes without a parent can often safely be re-used at the bottom of + * a mode chain. + * + * @param {Mode | null} mode + * @returns {boolean} - is there a dependency on the parent? + * */ +function dependencyOnParent(mode) { + if (!mode) return false; + + return mode.endsWithParent || dependencyOnParent(mode.starts); +} + +/** + * Expands a mode or clones it if necessary + * + * This is necessary for modes with parental dependenceis (see notes on + * `dependencyOnParent`) and for nodes that have `variants` - which must then be + * exploded into their own individual modes at compile time. + * + * @param {Mode} mode + * @returns {Mode | Mode[]} + * */ +function expandOrCloneMode(mode) { + if (mode.variants && !mode.cachedVariants) { + mode.cachedVariants = mode.variants.map(function(variant) { + return inherit$1(mode, { variants: null }, variant); + }); + } + + // EXPAND + // if we have variants then essentially "replace" the mode with the variants + // this happens in compileMode, where this function is called from + if (mode.cachedVariants) { + return mode.cachedVariants; + } + + // CLONE + // if we have dependencies on parents then we need a unique + // instance of ourselves, so we can be reused with many + // different parents without issue + if (dependencyOnParent(mode)) { + return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null }); + } + + if (Object.isFrozen(mode)) { + return inherit$1(mode); + } + + // no special dependency issues, just return ourselves + return mode; +} + +var version = "11.7.0"; + +class HTMLInjectionError extends Error { + constructor(reason, html) { + super(reason); + this.name = "HTMLInjectionError"; + this.html = html; + } +} + +/* +Syntax highlighting with language autodetection. +https://highlightjs.org/ +*/ + +/** +@typedef {import('highlight.js').Mode} Mode +@typedef {import('highlight.js').CompiledMode} CompiledMode +@typedef {import('highlight.js').CompiledScope} CompiledScope +@typedef {import('highlight.js').Language} Language +@typedef {import('highlight.js').HLJSApi} HLJSApi +@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin +@typedef {import('highlight.js').PluginEvent} PluginEvent +@typedef {import('highlight.js').HLJSOptions} HLJSOptions +@typedef {import('highlight.js').LanguageFn} LanguageFn +@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement +@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext +@typedef {import('highlight.js/private').MatchType} MatchType +@typedef {import('highlight.js/private').KeywordData} KeywordData +@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch +@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError +@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult +@typedef {import('highlight.js').HighlightOptions} HighlightOptions +@typedef {import('highlight.js').HighlightResult} HighlightResult +*/ + + +const escape = escapeHTML; +const inherit = inherit$1; +const NO_MATCH = Symbol("nomatch"); +const MAX_KEYWORD_HITS = 7; + +/** + * @param {any} hljs - object that is extended (legacy) + * @returns {HLJSApi} + */ +const HLJS = function(hljs) { + // Global internal variables used within the highlight.js library. + /** @type {Record} */ + const languages = Object.create(null); + /** @type {Record} */ + const aliases = Object.create(null); + /** @type {HLJSPlugin[]} */ + const plugins = []; + + // safe/production mode - swallows more errors, tries to keep running + // even if a single syntax or parse hits a fatal error + let SAFE_MODE = true; + const LANGUAGE_NOT_FOUND = "Could not find the language '{}', did you forget to load/include a language module?"; + /** @type {Language} */ + const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] }; + + // Global options used when within external APIs. This is modified when + // calling the `hljs.configure` function. + /** @type HLJSOptions */ + let options = { + ignoreUnescapedHTML: false, + throwUnescapedHTML: false, + noHighlightRe: /^(no-?highlight)$/i, + languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i, + classPrefix: 'hljs-', + cssSelector: 'pre code', + languages: null, + // beta configuration options, subject to change, welcome to discuss + // https://github.com/highlightjs/highlight.js/issues/1086 + __emitter: TokenTreeEmitter + }; + + /* Utility functions */ + + /** + * Tests a language name to see if highlighting should be skipped + * @param {string} languageName + */ + function shouldNotHighlight(languageName) { + return options.noHighlightRe.test(languageName); + } + + /** + * @param {HighlightedHTMLElement} block - the HTML element to determine language for + */ + function blockLanguage(block) { + let classes = block.className + ' '; + + classes += block.parentNode ? block.parentNode.className : ''; + + // language-* takes precedence over non-prefixed class names. + const match = options.languageDetectRe.exec(classes); + if (match) { + const language = getLanguage(match[1]); + if (!language) { + warn(LANGUAGE_NOT_FOUND.replace("{}", match[1])); + warn("Falling back to no-highlight mode for this block.", block); + } + return language ? match[1] : 'no-highlight'; + } + + return classes + .split(/\s+/) + .find((_class) => shouldNotHighlight(_class) || getLanguage(_class)); + } + + /** + * Core highlighting function. + * + * OLD API + * highlight(lang, code, ignoreIllegals, continuation) + * + * NEW API + * highlight(code, {lang, ignoreIllegals}) + * + * @param {string} codeOrLanguageName - the language to use for highlighting + * @param {string | HighlightOptions} optionsOrCode - the code to highlight + * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail + * + * @returns {HighlightResult} Result - an object that represents the result + * @property {string} language - the language name + * @property {number} relevance - the relevance score + * @property {string} value - the highlighted HTML code + * @property {string} code - the original raw code + * @property {CompiledMode} top - top of the current mode stack + * @property {boolean} illegal - indicates whether any illegal matches were found + */ + function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) { + let code = ""; + let languageName = ""; + if (typeof optionsOrCode === "object") { + code = codeOrLanguageName; + ignoreIllegals = optionsOrCode.ignoreIllegals; + languageName = optionsOrCode.language; + } else { + // old API + deprecated("10.7.0", "highlight(lang, code, ...args) has been deprecated."); + deprecated("10.7.0", "Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"); + languageName = codeOrLanguageName; + code = optionsOrCode; + } + + // https://github.com/highlightjs/highlight.js/issues/3149 + // eslint-disable-next-line no-undefined + if (ignoreIllegals === undefined) { ignoreIllegals = true; } + + /** @type {BeforeHighlightContext} */ + const context = { + code, + language: languageName + }; + // the plugin can change the desired language or the code to be highlighted + // just be changing the object it was passed + fire("before:highlight", context); + + // a before plugin can usurp the result completely by providing it's own + // in which case we don't even need to call highlight + const result = context.result + ? context.result + : _highlight(context.language, context.code, ignoreIllegals); + + result.code = context.code; + // the plugin can change anything in result to suite it + fire("after:highlight", result); + + return result; + } + + /** + * private highlight that's used internally and does not fire callbacks + * + * @param {string} languageName - the language to use for highlighting + * @param {string} codeToHighlight - the code to highlight + * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail + * @param {CompiledMode?} [continuation] - current continuation mode, if any + * @returns {HighlightResult} - result of the highlight operation + */ + function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) { + const keywordHits = Object.create(null); + + /** + * Return keyword data if a match is a keyword + * @param {CompiledMode} mode - current mode + * @param {string} matchText - the textual match + * @returns {KeywordData | false} + */ + function keywordData(mode, matchText) { + return mode.keywords[matchText]; + } + + function processKeywords() { + if (!top.keywords) { + emitter.addText(modeBuffer); + return; + } + + let lastIndex = 0; + top.keywordPatternRe.lastIndex = 0; + let match = top.keywordPatternRe.exec(modeBuffer); + let buf = ""; + + while (match) { + buf += modeBuffer.substring(lastIndex, match.index); + const word = language.case_insensitive ? match[0].toLowerCase() : match[0]; + const data = keywordData(top, word); + if (data) { + const [kind, keywordRelevance] = data; + emitter.addText(buf); + buf = ""; + + keywordHits[word] = (keywordHits[word] || 0) + 1; + if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance; + if (kind.startsWith("_")) { + // _ implied for relevance only, do not highlight + // by applying a class name + buf += match[0]; + } else { + const cssClass = language.classNameAliases[kind] || kind; + emitter.addKeyword(match[0], cssClass); + } + } else { + buf += match[0]; + } + lastIndex = top.keywordPatternRe.lastIndex; + match = top.keywordPatternRe.exec(modeBuffer); + } + buf += modeBuffer.substring(lastIndex); + emitter.addText(buf); + } + + function processSubLanguage() { + if (modeBuffer === "") return; + /** @type HighlightResult */ + let result = null; + + if (typeof top.subLanguage === 'string') { + if (!languages[top.subLanguage]) { + emitter.addText(modeBuffer); + return; + } + result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]); + continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top); + } else { + result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null); + } + + // Counting embedded language score towards the host language may be disabled + // with zeroing the containing mode relevance. Use case in point is Markdown that + // allows XML everywhere and makes every XML snippet to have a much larger Markdown + // score. + if (top.relevance > 0) { + relevance += result.relevance; + } + emitter.addSublanguage(result._emitter, result.language); + } + + function processBuffer() { + if (top.subLanguage != null) { + processSubLanguage(); + } else { + processKeywords(); + } + modeBuffer = ''; + } + + /** + * @param {CompiledScope} scope + * @param {RegExpMatchArray} match + */ + function emitMultiClass(scope, match) { + let i = 1; + const max = match.length - 1; + while (i <= max) { + if (!scope._emit[i]) { i++; continue; } + const klass = language.classNameAliases[scope[i]] || scope[i]; + const text = match[i]; + if (klass) { + emitter.addKeyword(text, klass); + } else { + modeBuffer = text; + processKeywords(); + modeBuffer = ""; + } + i++; + } + } + + /** + * @param {CompiledMode} mode - new mode to start + * @param {RegExpMatchArray} match + */ + function startNewMode(mode, match) { + if (mode.scope && typeof mode.scope === "string") { + emitter.openNode(language.classNameAliases[mode.scope] || mode.scope); + } + if (mode.beginScope) { + // beginScope just wraps the begin match itself in a scope + if (mode.beginScope._wrap) { + emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap); + modeBuffer = ""; + } else if (mode.beginScope._multi) { + // at this point modeBuffer should just be the match + emitMultiClass(mode.beginScope, match); + modeBuffer = ""; + } + } + + top = Object.create(mode, { parent: { value: top } }); + return top; + } + + /** + * @param {CompiledMode } mode - the mode to potentially end + * @param {RegExpMatchArray} match - the latest match + * @param {string} matchPlusRemainder - match plus remainder of content + * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode + */ + function endOfMode(mode, match, matchPlusRemainder) { + let matched = startsWith(mode.endRe, matchPlusRemainder); + + if (matched) { + if (mode["on:end"]) { + const resp = new Response(mode); + mode["on:end"](match, resp); + if (resp.isMatchIgnored) matched = false; + } + + if (matched) { + while (mode.endsParent && mode.parent) { + mode = mode.parent; + } + return mode; + } + } + // even if on:end fires an `ignore` it's still possible + // that we might trigger the end node because of a parent mode + if (mode.endsWithParent) { + return endOfMode(mode.parent, match, matchPlusRemainder); + } + } + + /** + * Handle matching but then ignoring a sequence of text + * + * @param {string} lexeme - string containing full match text + */ + function doIgnore(lexeme) { + if (top.matcher.regexIndex === 0) { + // no more regexes to potentially match here, so we move the cursor forward one + // space + modeBuffer += lexeme[0]; + return 1; + } else { + // no need to move the cursor, we still have additional regexes to try and + // match at this very spot + resumeScanAtSamePosition = true; + return 0; + } + } + + /** + * Handle the start of a new potential mode match + * + * @param {EnhancedMatch} match - the current match + * @returns {number} how far to advance the parse cursor + */ + function doBeginMatch(match) { + const lexeme = match[0]; + const newMode = match.rule; + + const resp = new Response(newMode); + // first internal before callbacks, then the public ones + const beforeCallbacks = [newMode.__beforeBegin, newMode["on:begin"]]; + for (const cb of beforeCallbacks) { + if (!cb) continue; + cb(match, resp); + if (resp.isMatchIgnored) return doIgnore(lexeme); + } + + if (newMode.skip) { + modeBuffer += lexeme; + } else { + if (newMode.excludeBegin) { + modeBuffer += lexeme; + } + processBuffer(); + if (!newMode.returnBegin && !newMode.excludeBegin) { + modeBuffer = lexeme; + } + } + startNewMode(newMode, match); + return newMode.returnBegin ? 0 : lexeme.length; + } + + /** + * Handle the potential end of mode + * + * @param {RegExpMatchArray} match - the current match + */ + function doEndMatch(match) { + const lexeme = match[0]; + const matchPlusRemainder = codeToHighlight.substring(match.index); + + const endMode = endOfMode(top, match, matchPlusRemainder); + if (!endMode) { return NO_MATCH; } + + const origin = top; + if (top.endScope && top.endScope._wrap) { + processBuffer(); + emitter.addKeyword(lexeme, top.endScope._wrap); + } else if (top.endScope && top.endScope._multi) { + processBuffer(); + emitMultiClass(top.endScope, match); + } else if (origin.skip) { + modeBuffer += lexeme; + } else { + if (!(origin.returnEnd || origin.excludeEnd)) { + modeBuffer += lexeme; + } + processBuffer(); + if (origin.excludeEnd) { + modeBuffer = lexeme; + } + } + do { + if (top.scope) { + emitter.closeNode(); + } + if (!top.skip && !top.subLanguage) { + relevance += top.relevance; + } + top = top.parent; + } while (top !== endMode.parent); + if (endMode.starts) { + startNewMode(endMode.starts, match); + } + return origin.returnEnd ? 0 : lexeme.length; + } + + function processContinuations() { + const list = []; + for (let current = top; current !== language; current = current.parent) { + if (current.scope) { + list.unshift(current.scope); + } + } + list.forEach(item => emitter.openNode(item)); + } + + /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */ + let lastMatch = {}; + + /** + * Process an individual match + * + * @param {string} textBeforeMatch - text preceding the match (since the last match) + * @param {EnhancedMatch} [match] - the match itself + */ + function processLexeme(textBeforeMatch, match) { + const lexeme = match && match[0]; + + // add non-matched text to the current mode buffer + modeBuffer += textBeforeMatch; + + if (lexeme == null) { + processBuffer(); + return 0; + } + + // we've found a 0 width match and we're stuck, so we need to advance + // this happens when we have badly behaved rules that have optional matchers to the degree that + // sometimes they can end up matching nothing at all + // Ref: https://github.com/highlightjs/highlight.js/issues/2140 + if (lastMatch.type === "begin" && match.type === "end" && lastMatch.index === match.index && lexeme === "") { + // spit the "skipped" character that our regex choked on back into the output sequence + modeBuffer += codeToHighlight.slice(match.index, match.index + 1); + if (!SAFE_MODE) { + /** @type {AnnotatedError} */ + const err = new Error(`0 width match regex (${languageName})`); + err.languageName = languageName; + err.badRule = lastMatch.rule; + throw err; + } + return 1; + } + lastMatch = match; + + if (match.type === "begin") { + return doBeginMatch(match); + } else if (match.type === "illegal" && !ignoreIllegals) { + // illegal match, we do not continue processing + /** @type {AnnotatedError} */ + const err = new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.scope || '') + '"'); + err.mode = top; + throw err; + } else if (match.type === "end") { + const processed = doEndMatch(match); + if (processed !== NO_MATCH) { + return processed; + } + } + + // edge case for when illegal matches $ (end of line) which is technically + // a 0 width match but not a begin/end match so it's not caught by the + // first handler (when ignoreIllegals is true) + if (match.type === "illegal" && lexeme === "") { + // advance so we aren't stuck in an infinite loop + return 1; + } + + // infinite loops are BAD, this is a last ditch catch all. if we have a + // decent number of iterations yet our index (cursor position in our + // parsing) still 3x behind our index then something is very wrong + // so we bail + if (iterations > 100000 && iterations > match.index * 3) { + const err = new Error('potential infinite loop, way more iterations than matches'); + throw err; + } + + /* + Why might be find ourselves here? An potential end match that was + triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH. + (this could be because a callback requests the match be ignored, etc) + + This causes no real harm other than stopping a few times too many. + */ + + modeBuffer += lexeme; + return lexeme.length; + } + + const language = getLanguage(languageName); + if (!language) { + error(LANGUAGE_NOT_FOUND.replace("{}", languageName)); + throw new Error('Unknown language: "' + languageName + '"'); + } + + const md = compileLanguage(language); + let result = ''; + /** @type {CompiledMode} */ + let top = continuation || md; + /** @type Record */ + const continuations = {}; // keep continuations for sub-languages + const emitter = new options.__emitter(options); + processContinuations(); + let modeBuffer = ''; + let relevance = 0; + let index = 0; + let iterations = 0; + let resumeScanAtSamePosition = false; + + try { + top.matcher.considerAll(); + + for (;;) { + iterations++; + if (resumeScanAtSamePosition) { + // only regexes not matched previously will now be + // considered for a potential match + resumeScanAtSamePosition = false; + } else { + top.matcher.considerAll(); + } + top.matcher.lastIndex = index; + + const match = top.matcher.exec(codeToHighlight); + // console.log("match", match[0], match.rule && match.rule.begin) + + if (!match) break; + + const beforeMatch = codeToHighlight.substring(index, match.index); + const processedCount = processLexeme(beforeMatch, match); + index = match.index + processedCount; + } + processLexeme(codeToHighlight.substring(index)); + emitter.closeAllNodes(); + emitter.finalize(); + result = emitter.toHTML(); + + return { + language: languageName, + value: result, + relevance: relevance, + illegal: false, + _emitter: emitter, + _top: top + }; + } catch (err) { + if (err.message && err.message.includes('Illegal')) { + return { + language: languageName, + value: escape(codeToHighlight), + illegal: true, + relevance: 0, + _illegalBy: { + message: err.message, + index: index, + context: codeToHighlight.slice(index - 100, index + 100), + mode: err.mode, + resultSoFar: result + }, + _emitter: emitter + }; + } else if (SAFE_MODE) { + return { + language: languageName, + value: escape(codeToHighlight), + illegal: false, + relevance: 0, + errorRaised: err, + _emitter: emitter, + _top: top + }; + } else { + throw err; + } + } + } + + /** + * returns a valid highlight result, without actually doing any actual work, + * auto highlight starts with this and it's possible for small snippets that + * auto-detection may not find a better match + * @param {string} code + * @returns {HighlightResult} + */ + function justTextHighlightResult(code) { + const result = { + value: escape(code), + illegal: false, + relevance: 0, + _top: PLAINTEXT_LANGUAGE, + _emitter: new options.__emitter(options) + }; + result._emitter.addText(code); + return result; + } + + /** + Highlighting with language detection. Accepts a string with the code to + highlight. Returns an object with the following properties: + + - language (detected language) + - relevance (int) + - value (an HTML string with highlighting markup) + - secondBest (object with the same structure for second-best heuristically + detected language, may be absent) + + @param {string} code + @param {Array} [languageSubset] + @returns {AutoHighlightResult} + */ + function highlightAuto(code, languageSubset) { + languageSubset = languageSubset || options.languages || Object.keys(languages); + const plaintext = justTextHighlightResult(code); + + const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name => + _highlight(name, code, false) + ); + results.unshift(plaintext); // plaintext is always an option + + const sorted = results.sort((a, b) => { + // sort base on relevance + if (a.relevance !== b.relevance) return b.relevance - a.relevance; + + // always award the tie to the base language + // ie if C++ and Arduino are tied, it's more likely to be C++ + if (a.language && b.language) { + if (getLanguage(a.language).supersetOf === b.language) { + return 1; + } else if (getLanguage(b.language).supersetOf === a.language) { + return -1; + } + } + + // otherwise say they are equal, which has the effect of sorting on + // relevance while preserving the original ordering - which is how ties + // have historically been settled, ie the language that comes first always + // wins in the case of a tie + return 0; + }); + + const [best, secondBest] = sorted; + + /** @type {AutoHighlightResult} */ + const result = best; + result.secondBest = secondBest; + + return result; + } + + /** + * Builds new class name for block given the language name + * + * @param {HTMLElement} element + * @param {string} [currentLang] + * @param {string} [resultLang] + */ + function updateClassName(element, currentLang, resultLang) { + const language = (currentLang && aliases[currentLang]) || resultLang; + + element.classList.add("hljs"); + element.classList.add(`language-${language}`); + } + + /** + * Applies highlighting to a DOM node containing code. + * + * @param {HighlightedHTMLElement} element - the HTML element to highlight + */ + function highlightElement(element) { + /** @type HTMLElement */ + let node = null; + const language = blockLanguage(element); + + if (shouldNotHighlight(language)) return; + + fire("before:highlightElement", + { el: element, language: language }); + + // we should be all text, no child nodes (unescaped HTML) - this is possibly + // an HTML injection attack - it's likely too late if this is already in + // production (the code has likely already done its damage by the time + // we're seeing it)... but we yell loudly about this so that hopefully it's + // more likely to be caught in development before making it to production + if (element.children.length > 0) { + if (!options.ignoreUnescapedHTML) { + console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."); + console.warn("https://github.com/highlightjs/highlight.js/wiki/security"); + console.warn("The element with unescaped HTML:"); + console.warn(element); + } + if (options.throwUnescapedHTML) { + const err = new HTMLInjectionError( + "One of your code blocks includes unescaped HTML.", + element.innerHTML + ); + throw err; + } + } + + node = element; + const text = node.textContent; + const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text); + + element.innerHTML = result.value; + updateClassName(element, language, result.language); + element.result = { + language: result.language, + // TODO: remove with version 11.0 + re: result.relevance, + relevance: result.relevance + }; + if (result.secondBest) { + element.secondBest = { + language: result.secondBest.language, + relevance: result.secondBest.relevance + }; + } + + fire("after:highlightElement", { el: element, result, text }); + } + + /** + * Updates highlight.js global options with the passed options + * + * @param {Partial} userOptions + */ + function configure(userOptions) { + options = inherit(options, userOptions); + } + + // TODO: remove v12, deprecated + const initHighlighting = () => { + highlightAll(); + deprecated("10.6.0", "initHighlighting() deprecated. Use highlightAll() now."); + }; + + // TODO: remove v12, deprecated + function initHighlightingOnLoad() { + highlightAll(); + deprecated("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now."); + } + + let wantsHighlight = false; + + /** + * auto-highlights all pre>code elements on the page + */ + function highlightAll() { + // if we are called too early in the loading process + if (document.readyState === "loading") { + wantsHighlight = true; + return; + } + + const blocks = document.querySelectorAll(options.cssSelector); + blocks.forEach(highlightElement); + } + + function boot() { + // if a highlight was requested before DOM was loaded, do now + if (wantsHighlight) highlightAll(); + } + + // make sure we are in the browser environment + if (typeof window !== 'undefined' && window.addEventListener) { + window.addEventListener('DOMContentLoaded', boot, false); + } + + /** + * Register a language grammar module + * + * @param {string} languageName + * @param {LanguageFn} languageDefinition + */ + function registerLanguage(languageName, languageDefinition) { + let lang = null; + try { + lang = languageDefinition(hljs); + } catch (error$1) { + error("Language definition for '{}' could not be registered.".replace("{}", languageName)); + // hard or soft error + if (!SAFE_MODE) { throw error$1; } else { error(error$1); } + // languages that have serious errors are replaced with essentially a + // "plaintext" stand-in so that the code blocks will still get normal + // css classes applied to them - and one bad language won't break the + // entire highlighter + lang = PLAINTEXT_LANGUAGE; + } + // give it a temporary name if it doesn't have one in the meta-data + if (!lang.name) lang.name = languageName; + languages[languageName] = lang; + lang.rawDefinition = languageDefinition.bind(null, hljs); + + if (lang.aliases) { + registerAliases(lang.aliases, { languageName }); + } + } + + /** + * Remove a language grammar module + * + * @param {string} languageName + */ + function unregisterLanguage(languageName) { + delete languages[languageName]; + for (const alias of Object.keys(aliases)) { + if (aliases[alias] === languageName) { + delete aliases[alias]; + } + } + } + + /** + * @returns {string[]} List of language internal names + */ + function listLanguages() { + return Object.keys(languages); + } + + /** + * @param {string} name - name of the language to retrieve + * @returns {Language | undefined} + */ + function getLanguage(name) { + name = (name || '').toLowerCase(); + return languages[name] || languages[aliases[name]]; + } + + /** + * + * @param {string|string[]} aliasList - single alias or list of aliases + * @param {{languageName: string}} opts + */ + function registerAliases(aliasList, { languageName }) { + if (typeof aliasList === 'string') { + aliasList = [aliasList]; + } + aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; }); + } + + /** + * Determines if a given language has auto-detection enabled + * @param {string} name - name of the language + */ + function autoDetection(name) { + const lang = getLanguage(name); + return lang && !lang.disableAutodetect; + } + + /** + * Upgrades the old highlightBlock plugins to the new + * highlightElement API + * @param {HLJSPlugin} plugin + */ + function upgradePluginAPI(plugin) { + // TODO: remove with v12 + if (plugin["before:highlightBlock"] && !plugin["before:highlightElement"]) { + plugin["before:highlightElement"] = (data) => { + plugin["before:highlightBlock"]( + Object.assign({ block: data.el }, data) + ); + }; + } + if (plugin["after:highlightBlock"] && !plugin["after:highlightElement"]) { + plugin["after:highlightElement"] = (data) => { + plugin["after:highlightBlock"]( + Object.assign({ block: data.el }, data) + ); + }; + } + } + + /** + * @param {HLJSPlugin} plugin + */ + function addPlugin(plugin) { + upgradePluginAPI(plugin); + plugins.push(plugin); + } + + /** + * + * @param {PluginEvent} event + * @param {any} args + */ + function fire(event, args) { + const cb = event; + plugins.forEach(function(plugin) { + if (plugin[cb]) { + plugin[cb](args); + } + }); + } + + /** + * DEPRECATED + * @param {HighlightedHTMLElement} el + */ + function deprecateHighlightBlock(el) { + deprecated("10.7.0", "highlightBlock will be removed entirely in v12.0"); + deprecated("10.7.0", "Please use highlightElement now."); + + return highlightElement(el); + } + + /* Interface definition */ + Object.assign(hljs, { + highlight, + highlightAuto, + highlightAll, + highlightElement, + // TODO: Remove with v12 API + highlightBlock: deprecateHighlightBlock, + configure, + initHighlighting, + initHighlightingOnLoad, + registerLanguage, + unregisterLanguage, + listLanguages, + getLanguage, + registerAliases, + autoDetection, + inherit, + addPlugin + }); + + hljs.debugMode = function() { SAFE_MODE = false; }; + hljs.safeMode = function() { SAFE_MODE = true; }; + hljs.versionString = version; + + hljs.regex = { + concat: concat, + lookahead: lookahead, + either: either, + optional: optional, + anyNumberOfTimes: anyNumberOfTimes + }; + + for (const key in MODES) { + // @ts-ignore + if (typeof MODES[key] === "object") { + // @ts-ignore + deepFreezeEs6.exports(MODES[key]); + } + } + + // merge all the modes/regexes into our main object + Object.assign(hljs, MODES); + + return hljs; +}; + +// export an "instance" of the highlighter +var highlight = HLJS({}); + +export { highlight as default }; diff --git a/src/app/resources/assets/highlight/es/languages/1c.min.js b/src/app/resources/assets/highlight/es/languages/1c.min.js new file mode 100644 index 0000000..30687ee --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/1c.min.js @@ -0,0 +1,24 @@ +/*! `1c` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return s=>{ +const x="[A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_][A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_0-9]+",n="\u0434\u0430\u043b\u0435\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u0435\u0441\u043b\u0438 \u0438 \u0438\u0437 \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0438\u043d\u0430\u0447\u0435\u0435\u0441\u043b\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u0435\u0446\u0435\u0441\u043b\u0438 \u043a\u043e\u043d\u0435\u0446\u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043a\u043e\u043d\u0435\u0446\u0446\u0438\u043a\u043b\u0430 \u043d\u0435 \u043d\u043e\u0432\u044b\u0439 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043f\u0435\u0440\u0435\u043c \u043f\u043e \u043f\u043e\u043a\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0442\u043e\u0433\u0434\u0430 \u0446\u0438\u043a\u043b \u044d\u043a\u0441\u043f\u043e\u0440\u0442 ",e="null \u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u043e\u0436\u044c \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e",o=s.inherit(s.NUMBER_MODE),t={ +className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},a={ +begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number", +begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},m=s.inherit(s.C_LINE_COMMENT_MODE) +;return{name:"1C:Enterprise",case_insensitive:!0,keywords:{$pattern:x,keyword:n, +built_in:"\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0440\u043e\u043a \u0441\u0438\u043c\u0432\u043e\u043b\u0442\u0430\u0431\u0443\u043b\u044f\u0446\u0438\u0438 ansitooem oemtoansi \u0432\u0432\u0435\u0441\u0442\u0438\u0432\u0438\u0434\u0441\u0443\u0431\u043a\u043e\u043d\u0442\u043e \u0432\u0432\u0435\u0441\u0442\u0438\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0432\u0435\u0441\u0442\u0438\u043f\u043b\u0430\u043d\u0441\u0447\u0435\u0442\u043e\u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439\u043f\u043b\u0430\u043d\u0441\u0447\u0435\u0442\u043e\u0432 \u0434\u0430\u0442\u0430\u0433\u043e\u0434 \u0434\u0430\u0442\u0430\u043c\u0435\u0441\u044f\u0446 \u0434\u0430\u0442\u0430\u0447\u0438\u0441\u043b\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0432\u0441\u0442\u0440\u043e\u043a\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438\u0431 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043a\u043e\u0434\u0441\u0438\u043c\u0432 \u043a\u043e\u043d\u0433\u043e\u0434\u0430 \u043a\u043e\u043d\u0435\u0446\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u0431\u0438 \u043a\u043e\u043d\u0435\u0446\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0433\u043e\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u0431\u0438 \u043a\u043e\u043d\u0435\u0446\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u043a\u043e\u043d\u043a\u0432\u0430\u0440\u0442\u0430\u043b\u0430 \u043a\u043e\u043d\u043c\u0435\u0441\u044f\u0446\u0430 \u043a\u043e\u043d\u043d\u0435\u0434\u0435\u043b\u0438 \u043b\u043e\u0433 \u043b\u043e\u043310 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u0441\u0443\u0431\u043a\u043e\u043d\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043d\u0430\u0431\u043e\u0440\u0430\u043f\u0440\u0430\u0432 \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c\u0432\u0438\u0434 \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c\u0441\u0447\u0435\u0442 \u043d\u0430\u0439\u0442\u0438\u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430\u0447\u0430\u043b\u043e\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u0431\u0438 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u043d\u0430\u0447\u0433\u043e\u0434\u0430 \u043d\u0430\u0447\u043a\u0432\u0430\u0440\u0442\u0430\u043b\u0430 \u043d\u0430\u0447\u043c\u0435\u0441\u044f\u0446\u0430 \u043d\u0430\u0447\u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u043e\u043c\u0435\u0440\u0434\u043d\u044f\u0433\u043e\u0434\u0430 \u043d\u043e\u043c\u0435\u0440\u0434\u043d\u044f\u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u043e\u043c\u0435\u0440\u043d\u0435\u0434\u0435\u043b\u0438\u0433\u043e\u0434\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439\u0436\u0443\u0440\u043d\u0430\u043b\u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439\u043f\u043b\u0430\u043d\u0441\u0447\u0435\u0442\u043e\u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439\u044f\u0437\u044b\u043a \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c\u043e\u043a\u043d\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043f\u0435\u0440\u0438\u043e\u0434\u0441\u0442\u0440 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0434\u0430\u0442\u0443\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043e\u0442\u0431\u043e\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043f\u043e\u0437\u0438\u0446\u0438\u044e\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043f\u0443\u0441\u0442\u043e\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0442\u0430 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430\u0432\u0442\u043e\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u043f\u0438\u0441\u044c \u043f\u0443\u0441\u0442\u043e\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u043f\u043e\u0437\u0438\u0446\u0438\u044e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b\u043d\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b\u043f\u043e \u0441\u0438\u043c\u0432 \u0441\u043e\u0437\u0434\u0430\u0442\u044c\u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u0442\u0430\u0442\u0443\u0441\u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0441\u0442\u0440\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u0441\u0442\u0440\u043e\u043a \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u043f\u043e\u0437\u0438\u0446\u0438\u044e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u0447\u0435\u0442\u043f\u043e\u043a\u043e\u0434\u0443 \u0442\u0435\u043a\u0443\u0449\u0435\u0435\u0432\u0440\u0435\u043c\u044f \u0442\u0438\u043f\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0441\u0442\u0440 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0442\u0430\u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0442\u0430\u043f\u043e \u0444\u0438\u043a\u0441\u0448\u0430\u0431\u043b\u043e\u043d \u0448\u0430\u0431\u043b\u043e\u043d acos asin atan base64\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 base64\u0441\u0442\u0440\u043e\u043a\u0430 cos exp log log10 pow sin sqrt tan xml\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 xml\u0441\u0442\u0440\u043e\u043a\u0430 xml\u0442\u0438\u043f xml\u0442\u0438\u043f\u0437\u043d\u0447 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435\u043e\u043a\u043d\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u043b\u0435\u0432\u043e \u0432\u0432\u0435\u0441\u0442\u0438\u0434\u0430\u0442\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0447\u0438\u0441\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u0447\u0442\u0435\u043d\u0438\u044fxml \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u0433 \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0436\u0443\u0440\u043d\u0430\u043b\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443\u043f\u0440\u0430\u0432\u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0433\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0435\u0444\u043e\u0440\u043c\u044b\u0432\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u0442\u0430 \u0434\u0435\u043d\u044c \u0434\u0435\u043d\u044c\u0433\u043e\u0434\u0430 \u0434\u0435\u043d\u044c\u043d\u0435\u0434\u0435\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c\u043c\u0435\u0441\u044f\u0446 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0434\u0430\u043d\u043d\u044b\u0435\u0434\u043b\u044f\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0440\u0430\u0431\u043e\u0442\u0443\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c\u0440\u0430\u0431\u043e\u0442\u0443\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0432\u043d\u0435\u0448\u043d\u044e\u044e\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u0437\u0430\u043a\u0440\u044b\u0442\u044c\u0441\u043f\u0440\u0430\u0432\u043a\u0443 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044cjson \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044cxml \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c\u0434\u0430\u0442\u0443json \u0437\u0430\u043f\u0438\u0441\u044c\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0432\u0434\u0430\u043d\u043d\u044b\u0435\u0444\u043e\u0440\u043c\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0432\u0441\u0442\u0440\u043e\u043a\u0443\u0432\u043d\u0443\u0442\u0440 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0432\u0444\u0430\u0439\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043e\u043a\u0438\u0432\u043d\u0443\u0442\u0440 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0438\u0437\u0444\u0430\u0439\u043b\u0430 \u0438\u0437xml\u0442\u0438\u043f\u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u043c\u043e\u0434\u0435\u043b\u0438xdto \u0438\u043c\u044f\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 \u0438\u043c\u044f\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\u043e\u0431\u043e\u0448\u0438\u0431\u043a\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445\u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u043e\u0434\u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043a\u043e\u0434\u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043d\u0435\u0446\u0433\u043e\u0434\u0430 \u043a\u043e\u043d\u0435\u0446\u0434\u043d\u044f \u043a\u043e\u043d\u0435\u0446\u043a\u0432\u0430\u0440\u0442\u0430\u043b\u0430 \u043a\u043e\u043d\u0435\u0446\u043c\u0435\u0441\u044f\u0446\u0430 \u043a\u043e\u043d\u0435\u0446\u043c\u0438\u043d\u0443\u0442\u044b \u043a\u043e\u043d\u0435\u0446\u043d\u0435\u0434\u0435\u043b\u0438 \u043a\u043e\u043d\u0435\u0446\u0447\u0430\u0441\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0431\u0430\u0437\u044b\u0434\u0430\u043d\u043d\u044b\u0445\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0430\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0430 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0434\u0430\u043d\u043d\u044b\u0435\u0444\u043e\u0440\u043c\u044b \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0444\u0430\u0439\u043b \u043a\u0440\u0430\u0442\u043a\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043e\u0448\u0438\u0431\u043a\u0438 \u043b\u0435\u0432 \u043c\u0430\u043a\u0441 \u043c\u0435\u0441\u0442\u043d\u043e\u0435\u0432\u0440\u0435\u043c\u044f \u043c\u0435\u0441\u044f\u0446 \u043c\u0438\u043d \u043c\u0438\u043d\u0443\u0442\u0430 \u043c\u043e\u043d\u043e\u043f\u043e\u043b\u044c\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c \u043d\u0430\u0439\u0442\u0438 \u043d\u0430\u0439\u0442\u0438\u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435\u0441\u0438\u043c\u0432\u043e\u043b\u044bxml \u043d\u0430\u0439\u0442\u0438\u043e\u043a\u043d\u043e\u043f\u043e\u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0430\u0439\u0442\u0438\u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0435\u043d\u0430\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0439\u0442\u0438\u043f\u043e\u0441\u0441\u044b\u043b\u043a\u0430\u043c \u043d\u0430\u0439\u0442\u0438\u0444\u0430\u0439\u043b\u044b \u043d\u0430\u0447\u0430\u043b\u043e\u0433\u043e\u0434\u0430 \u043d\u0430\u0447\u0430\u043b\u043e\u0434\u043d\u044f \u043d\u0430\u0447\u0430\u043b\u043e\u043a\u0432\u0430\u0440\u0442\u0430\u043b\u0430 \u043d\u0430\u0447\u0430\u043b\u043e\u043c\u0435\u0441\u044f\u0446\u0430 \u043d\u0430\u0447\u0430\u043b\u043e\u043c\u0438\u043d\u0443\u0442\u044b \u043d\u0430\u0447\u0430\u043b\u043e\u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0447\u0430\u043b\u043e\u0447\u0430\u0441\u0430 \u043d\u0430\u0447\u0430\u0442\u044c\u0437\u0430\u043f\u0440\u043e\u0441\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430\u0447\u0430\u0442\u044c\u0437\u0430\u043f\u0443\u0441\u043a\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0447\u0430\u0442\u044c\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u0432\u043d\u0435\u0448\u043d\u0435\u0439\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u0438\u0441\u043a\u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445\u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430\u0447\u0430\u0442\u044c\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445\u0438\u0437\u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u0447\u0430\u0442\u044c\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043d\u0430\u0447\u0430\u0442\u044c\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u043d\u0430\u0447\u0430\u0442\u044c\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430\u0447\u0430\u0442\u044c\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443\u0432\u043d\u0435\u0448\u043d\u0435\u0439\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043d\u0430\u0447\u0430\u0442\u044c\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043d\u0430\u0447\u0430\u0442\u044c\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0435\u0434\u0435\u043b\u044f\u0433\u043e\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u043e\u043c\u0435\u0440\u0441\u0435\u0430\u043d\u0441\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043d\u043e\u043c\u0435\u0440\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043d\u0440\u0435\u0433 \u043d\u0441\u0442\u0440 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044e\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0444\u0430\u0439\u043b\u044b \u043e\u043a\u0440 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043e\u0448\u0438\u0431\u043a\u0438 \u043e\u043f\u043e\u0432\u0435\u0441\u0442\u0438\u0442\u044c \u043e\u043f\u043e\u0432\u0435\u0441\u0442\u0438\u0442\u044c\u043e\u0431\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044c\u0438\u043d\u0434\u0435\u043a\u0441\u0441\u043f\u0440\u0430\u0432\u043a\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\u0441\u043f\u0440\u0430\u0432\u043a\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c\u0441\u043f\u0440\u0430\u0432\u043a\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u044c\u0444\u043e\u0440\u043c\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u044c\u0444\u043e\u0440\u043c\u0443\u043c\u043e\u0434\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c\u0436\u0443\u0440\u043d\u0430\u043b\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u0435\u0440\u0435\u0439\u0442\u0438\u043f\u043e\u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0441\u0441\u044b\u043b\u043a\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c\u0444\u0430\u0439\u043b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0432\u043d\u0435\u0448\u043d\u044e\u044e\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0432\u0432\u043e\u0434\u0434\u0430\u0442\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0432\u0432\u043e\u0434\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0432\u0432\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0432\u0432\u043e\u0434\u0447\u0438\u0441\u043b\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e\u043e\u0431\u043e\u0448\u0438\u0431\u043a\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u043d\u0430\u043a\u0430\u0440\u0442\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0435\u0438\u043c\u044f\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044ccom\u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044cxml\u0442\u0438\u043f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0430\u0434\u0440\u0435\u0441\u043f\u043e\u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443\u0441\u0435\u0430\u043d\u0441\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f\u0441\u043f\u044f\u0449\u0435\u0433\u043e\u0441\u0435\u0430\u043d\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u0437\u0430\u0441\u044b\u043f\u0430\u043d\u0438\u044f\u043f\u0430\u0441\u0441\u0438\u0432\u043d\u043e\u0433\u043e\u0441\u0435\u0430\u043d\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0434\u0430\u043d\u043d\u044b\u0435\u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435\u043a\u043e\u0434\u044b\u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435\u0447\u0430\u0441\u043e\u0432\u044b\u0435\u043f\u043e\u044f\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043e\u0442\u0431\u043e\u0440\u0430\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u0437\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u043c\u044f\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e\u0444\u0430\u0439\u043b\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u043c\u044f\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e\u044d\u043a\u0440\u0430\u043d\u043e\u0432\u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043a\u0440\u0430\u0442\u043a\u0438\u0439\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043c\u0430\u043a\u0435\u0442\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043c\u0430\u0441\u043a\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043b\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043c\u0430\u0441\u043a\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043b\u044b\u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043c\u0430\u0441\u043a\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043b\u044b\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043f\u043e\u0430\u0434\u0440\u0435\u0441\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e\u0434\u043b\u0438\u043d\u0443\u043f\u0430\u0440\u043e\u043b\u0435\u0439\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e\u0441\u0441\u044b\u043b\u043a\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e\u0441\u0441\u044b\u043b\u043a\u0443\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044b\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u0431\u0449\u0438\u0439\u043c\u0430\u043a\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u0431\u0449\u0443\u044e\u0444\u043e\u0440\u043c\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u043a\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e\u043e\u0442\u043c\u0435\u0442\u043a\u0443\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e\u0440\u0435\u0436\u0438\u043c\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445\u043e\u043f\u0446\u0438\u0439\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043f\u043e\u043b\u043d\u043e\u0435\u0438\u043c\u044f\u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445\u0441\u0441\u044b\u043b\u043e\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443\u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438\u043f\u0430\u0440\u043e\u043b\u0435\u0439\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u043f\u0443\u0442\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u043f\u0443\u0442\u0438\u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u043f\u0443\u0442\u0438\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u0435\u0430\u043d\u0441\u044b\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0438\u0444\u043e\u0440\u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u043e\u0441\u0442\u0430\u0432\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430odata \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f\u0431\u0430\u0437\u044b\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0441\u0435\u0430\u043d\u0441\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0444\u0430\u0439\u043b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0444\u0430\u0439\u043b\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0444\u043e\u0440\u043c\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0443\u044e\u043e\u043f\u0446\u0438\u044e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0443\u044e\u043e\u043f\u0446\u0438\u044e\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0447\u0430\u0441\u043e\u0432\u043e\u0439\u043f\u043e\u044f\u0441\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438\u043e\u0441 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c\u0432\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c\u0444\u0430\u0439\u043b \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c\u0444\u0430\u0439\u043b\u044b \u043f\u0440\u0430\u0432 \u043f\u0440\u0430\u0432\u043e\u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043a\u043e\u0434\u0430\u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0430\u0432\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0447\u0430\u0441\u043e\u0432\u043e\u0433\u043e\u043f\u043e\u044f\u0441\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u0442\u044c\u0440\u0430\u0431\u043e\u0442\u0443\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c\u0432\u044b\u0437\u043e\u0432 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044cjson \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044cxml \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c\u0434\u0430\u0442\u0443json \u043f\u0443\u0441\u0442\u0430\u044f\u0441\u0442\u0440\u043e\u043a\u0430 \u0440\u0430\u0431\u043e\u0447\u0438\u0439\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0434\u0430\u043d\u043d\u044b\u0435\u0434\u043b\u044f\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c\u0444\u0430\u0439\u043b \u0440\u0430\u0437\u043e\u0440\u0432\u0430\u0442\u044c\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u0441\u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u0442\u0440\u043e\u043a\u0443 \u0440\u043e\u043b\u044c\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u0430 \u0441\u0438\u0433\u043d\u0430\u043b \u0441\u0438\u043c\u0432\u043e\u043b \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0436\u0443\u0440\u043d\u0430\u043b\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043b\u0435\u0442\u043d\u0435\u0433\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0431\u0443\u0444\u0435\u0440\u044b\u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0437\u0434\u0430\u0442\u044c\u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441\u043e\u0437\u0434\u0430\u0442\u044c\u0444\u0430\u0431\u0440\u0438\u043a\u0443xdto \u0441\u043e\u043a\u0440\u043b \u0441\u043e\u043a\u0440\u043b\u043f \u0441\u043e\u043a\u0440\u043f \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u0440\u0435\u0434 \u0441\u0442\u0440\u0434\u043b\u0438\u043d\u0430 \u0441\u0442\u0440\u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f\u043d\u0430 \u0441\u0442\u0440\u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043d\u0430\u0439\u0442\u0438 \u0441\u0442\u0440\u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f\u0441 \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u0442\u0440\u043e\u043a\u0430\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u0441\u0442\u0440\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0442\u0440\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u0447\u0438\u0441\u043b\u043e\u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u0442\u0440\u0447\u0438\u0441\u043b\u043e\u0441\u0442\u0440\u043e\u043a \u0441\u0442\u0440\u0448\u0430\u0431\u043b\u043e\u043d \u0442\u0435\u043a\u0443\u0449\u0430\u044f\u0434\u0430\u0442\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u044f\u0434\u0430\u0442\u0430\u0441\u0435\u0430\u043d\u0441\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u044f\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0430\u044f\u0434\u0430\u0442\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u044f\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0430\u044f\u0434\u0430\u0442\u0430\u0432\u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e\u0448\u0440\u0438\u0444\u0442\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u043a\u043e\u0434\u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0440\u0435\u0436\u0438\u043c\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u044f\u0437\u044b\u043a \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u044f\u0437\u044b\u043a\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0442\u0438\u043f \u0442\u0438\u043f\u0437\u043d\u0447 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u0430\u043a\u0442\u0438\u0432\u043d\u0430 \u0442\u0440\u0435\u0433 \u0443\u0434\u0430\u043b\u0438\u0442\u044c\u0434\u0430\u043d\u043d\u044b\u0435\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u0443\u0434\u0430\u043b\u0438\u0442\u044c\u0438\u0437\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0443\u0434\u0430\u043b\u0438\u0442\u044c\u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0443\u0434\u0430\u043b\u0438\u0442\u044c\u0444\u0430\u0439\u043b\u044b \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0435\u0432\u0440\u0435\u043c\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443\u0441\u0435\u0430\u043d\u0441\u043e\u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0432\u043d\u0435\u0448\u043d\u044e\u044e\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f\u0441\u043f\u044f\u0449\u0435\u0433\u043e\u0441\u0435\u0430\u043d\u0441\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u0437\u0430\u0441\u044b\u043f\u0430\u043d\u0438\u044f\u043f\u0430\u0441\u0441\u0438\u0432\u043d\u043e\u0433\u043e\u0441\u0435\u0430\u043d\u0441\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043a\u0440\u0430\u0442\u043a\u0438\u0439\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e\u0434\u043b\u0438\u043d\u0443\u043f\u0430\u0440\u043e\u043b\u0435\u0439\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043c\u043e\u043d\u043e\u043f\u043e\u043b\u044c\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e\u0440\u0435\u0436\u0438\u043c\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445\u043e\u043f\u0446\u0438\u0439\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443\u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438\u043f\u0430\u0440\u043e\u043b\u0435\u0439\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u0441\u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c\u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0438\u0444\u043e\u0440\u043c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u043e\u0441\u0442\u0430\u0432\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430odata \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0447\u0430\u0441\u043e\u0432\u043e\u0439\u043f\u043e\u044f\u0441\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0447\u0430\u0441\u043e\u0432\u043e\u0439\u043f\u043e\u044f\u0441\u0441\u0435\u0430\u043d\u0441\u0430 \u0444\u043e\u0440\u043c\u0430\u0442 \u0446\u0435\u043b \u0447\u0430\u0441 \u0447\u0430\u0441\u043e\u0432\u043e\u0439\u043f\u043e\u044f\u0441 \u0447\u0430\u0441\u043e\u0432\u043e\u0439\u043f\u043e\u044f\u0441\u0441\u0435\u0430\u043d\u0441\u0430 \u0447\u0438\u0441\u043b\u043e \u0447\u0438\u0441\u043b\u043e\u043f\u0440\u043e\u043f\u0438\u0441\u044c\u044e \u044d\u0442\u043e\u0430\u0434\u0440\u0435\u0441\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 ws\u0441\u0441\u044b\u043b\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0430\u043a\u0435\u0442\u043e\u0432\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0441\u0442\u0438\u043b\u0435\u0439 \u0431\u0438\u0437\u043d\u0435\u0441\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0432\u043d\u0435\u0448\u043d\u0438\u0435\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0435\u043e\u0442\u0447\u0435\u0442\u044b \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435\u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0439\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0433\u043b\u0430\u0432\u043d\u044b\u0439\u0441\u0442\u0438\u043b\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0436\u0443\u0440\u043d\u0430\u043b\u044b\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\u043e\u0431\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0440\u0430\u0431\u043e\u0447\u0435\u0439\u0434\u0430\u0442\u044b \u0438\u0441\u0442\u043e\u0440\u0438\u044f\u0440\u0430\u0431\u043e\u0442\u044b\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0438\u043e\u0442\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0440\u0435\u043a\u043b\u0430\u043c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043e\u0442\u0447\u0435\u0442\u044b \u043f\u0430\u043d\u0435\u043b\u044c\u0437\u0430\u0434\u0430\u0447\u043e\u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0441\u0435\u0430\u043d\u0441\u0430 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u044b\u0432\u0438\u0434\u043e\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043f\u043b\u0430\u043d\u044b\u0432\u0438\u0434\u043e\u0432\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u043f\u043b\u0430\u043d\u044b\u043e\u0431\u043c\u0435\u043d\u0430 \u043f\u043b\u0430\u043d\u044b\u0441\u0447\u0435\u0442\u043e\u0432 \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439\u043f\u043e\u0438\u0441\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445\u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0440\u0430\u0431\u043e\u0447\u0430\u044f\u0434\u0430\u0442\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b\u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0438\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b\u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b\u0441\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u0440\u0435\u0433\u043b\u0430\u043c\u0435\u043d\u0442\u043d\u044b\u0435\u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440xdto \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u0433\u0435\u043e\u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0440\u0435\u043a\u043b\u0430\u043c\u044b \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043f\u043e\u0447\u0442\u044b \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0438 \u0444\u0430\u0431\u0440\u0438\u043a\u0430xdto \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435\u043f\u043e\u0442\u043e\u043a\u0438 \u0444\u043e\u043d\u043e\u0432\u044b\u0435\u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432\u043e\u0442\u0447\u0435\u0442\u043e\u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u0434\u0430\u043d\u043d\u044b\u0445\u0444\u043e\u0440\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043e\u0431\u0449\u0438\u0445\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445\u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043e\u0442\u0447\u0435\u0442\u043e\u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a ", +class:"web\u0446\u0432\u0435\u0442\u0430 windows\u0446\u0432\u0435\u0442\u0430 windows\u0448\u0440\u0438\u0444\u0442\u044b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0440\u0430\u043c\u043a\u0438\u0441\u0442\u0438\u043b\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0446\u0432\u0435\u0442\u0430\u0441\u0442\u0438\u043b\u044f \u0448\u0440\u0438\u0444\u0442\u044b\u0441\u0442\u0438\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u0434\u0430\u043d\u043d\u044b\u0445\u0444\u043e\u0440\u043c\u044b\u0432\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0430\u0432\u0442\u043e\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f\u0432\u0444\u043e\u0440\u043c\u0435 \u0430\u0432\u0442\u043e\u0440\u0430\u0437\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\u0441\u0435\u0440\u0438\u0439 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u0438\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0432\u044b\u0441\u043e\u0442\u043e\u0439\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0430\u044f\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430\u0444\u043e\u0440\u043c\u044b \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432\u0438\u0434\u0433\u0440\u0443\u043f\u043f\u044b\u0444\u043e\u0440\u043c\u044b \u0432\u0438\u0434\u0434\u0435\u043a\u043e\u0440\u0430\u0446\u0438\u0438\u0444\u043e\u0440\u043c\u044b \u0432\u0438\u0434\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0444\u043e\u0440\u043c\u044b \u0432\u0438\u0434\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0438\u0434\u043a\u043d\u043e\u043f\u043a\u0438\u0444\u043e\u0440\u043c\u044b \u0432\u0438\u0434\u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f \u0432\u0438\u0434\u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439\u043a\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435 \u0432\u0438\u0434\u043f\u043e\u043b\u044f\u0444\u043e\u0440\u043c\u044b \u0432\u0438\u0434\u0444\u043b\u0430\u0436\u043a\u0430 \u0432\u043b\u0438\u044f\u043d\u0438\u0435\u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043d\u0430\u043f\u0443\u0437\u044b\u0440\u0435\u043a\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430\u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430\u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u0445\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u0444\u043e\u0440\u043c\u044b \u0433\u0440\u0443\u043f\u043f\u044b\u0438\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043c\u0435\u0436\u0434\u0443\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438\u0444\u043e\u0440\u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0432\u044b\u0432\u043e\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043f\u043e\u043b\u043e\u0441\u044b\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0442\u043e\u0447\u043a\u0438\u0431\u0438\u0440\u0436\u0435\u0432\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0441\u0442\u043e\u0440\u0438\u044f\u0432\u044b\u0431\u043e\u0440\u0430\u043f\u0440\u0438\u0432\u0432\u043e\u0434\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u043e\u0441\u0438\u0442\u043e\u0447\u0435\u043a\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043f\u0443\u0437\u044b\u0440\u044c\u043a\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0433\u0440\u0443\u043f\u043f\u044b\u043a\u043e\u043c\u0430\u043d\u0434 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0441\u0435\u0440\u0438\u0439 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0434\u0435\u0440\u0435\u0432\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0441\u043f\u0438\u0441\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u0442\u0435\u043a\u0441\u0442\u0430\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0434\u0435\u043d\u0434\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u043c\u0435\u0442\u043e\u043a\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u043c\u0435\u0442\u043e\u043a\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0444\u043e\u0440\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0432\u043b\u0435\u0433\u0435\u043d\u0434\u0435\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0433\u0440\u0443\u043f\u043f\u044b\u043a\u043d\u043e\u043f\u043e\u043a \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0448\u043a\u0430\u043b\u044b\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\u0433\u0430\u043d\u0442\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043a\u043d\u043e\u043f\u043a\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043a\u043d\u043e\u043f\u043a\u0438\u0432\u044b\u0431\u043e\u0440\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0439\u0444\u043e\u0440\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0439\u0433\u0440\u0443\u043f\u043f\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u043f\u0443\u0437\u044b\u0440\u044c\u043a\u043e\u0432\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043f\u0430\u043d\u0435\u043b\u0438\u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f\u043f\u0440\u0438\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438\u043f\u043e\u043b\u043e\u0441\u044b\u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0444\u043e\u0440\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u0435\u043a\u0441\u0442\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\u0433\u0430\u043d\u0442\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043e\u0431\u044b\u0447\u043d\u043e\u0439\u0433\u0440\u0443\u043f\u043f\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0444\u0438\u0433\u0443\u0440\u044b\u043a\u043d\u043e\u043f\u043a\u0438 \u043f\u0430\u043b\u0438\u0442\u0440\u0430\u0446\u0432\u0435\u0442\u043e\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0439\u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0434\u0435\u043d\u0434\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\u0433\u0430\u043d\u0442\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0438\u0441\u043a\u0432\u0442\u0430\u0431\u043b\u0438\u0446\u0435\u043f\u0440\u0438\u0432\u0432\u043e\u0434\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0444\u043e\u0440\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438\u043a\u043d\u043e\u043f\u043a\u0438\u0444\u043e\u0440\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439\u043f\u0430\u043d\u0435\u043b\u0438\u0444\u043e\u0440\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439\u043f\u0430\u043d\u0435\u043b\u0438\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0444\u043e\u0440\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043e\u043f\u043e\u0440\u043d\u043e\u0439\u0442\u043e\u0447\u043a\u0438\u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439\u043a\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439\u0448\u043a\u0430\u043b\u044b\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0441\u0442\u0440\u043e\u043a\u0438\u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u0435\u043a\u0441\u0442\u0430\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439\u043b\u0438\u043d\u0438\u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043f\u043e\u0438\u0441\u043a\u043e\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0448\u043a\u0430\u043b\u044b\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0442\u043e\u0447\u0435\u043a\u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439\u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0440\u044f\u0434\u043e\u043a\u0441\u0435\u0440\u0438\u0439\u0432\u043b\u0435\u0433\u0435\u043d\u0434\u0435\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0437\u043c\u0435\u0440\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0448\u043a\u0430\u043b\u044b\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0441\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u0435\u043f\u043e\u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\u0433\u0430\u043d\u0442\u0430 \u0440\u0435\u0436\u0438\u043c\u0430\u0432\u0442\u043e\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u0432\u0432\u043e\u0434\u0430\u0441\u0442\u0440\u043e\u043a\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0435\u0436\u0438\u043c\u0432\u044b\u0431\u043e\u0440\u0430\u043d\u0435\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0434\u0430\u0442\u044b \u0440\u0435\u0436\u0438\u043c\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0441\u0442\u0440\u043e\u043a\u0438\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0435\u0436\u0438\u043c\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0435\u0436\u0438\u043c\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0440\u0435\u0436\u0438\u043c\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0434\u0438\u0430\u043b\u043e\u0433\u0430\u043f\u0435\u0447\u0430\u0442\u0438 \u0440\u0435\u0436\u0438\u043c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0440\u0435\u0436\u0438\u043c\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0440\u0435\u0436\u0438\u043c\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e\u043e\u043a\u043d\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f\u043e\u043a\u043d\u0430\u0444\u043e\u0440\u043c\u044b \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u0441\u0435\u0440\u0438\u0438 \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438\u0441\u0435\u0442\u043a\u0438\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0440\u0435\u0436\u0438\u043c\u043f\u043e\u043b\u0443\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0435\u0436\u0438\u043c\u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0435\u0436\u0438\u043c\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u043d\u0430\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0440\u0435\u0436\u0438\u043c\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0440\u0435\u0436\u0438\u043c\u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u044f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0435\u0436\u0438\u043c\u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u044f\u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0440\u0435\u0436\u0438\u043c\u0441\u043f\u0438\u0441\u043a\u0430\u0437\u0430\u0434\u0430\u0447 \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0435\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u0434\u0430\u043d\u043d\u044b\u0445\u0444\u043e\u0440\u043c\u044b\u0432\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u0442\u0435\u043a\u0441\u0442\u0430\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0448\u043a\u0430\u043b\u044b\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f\u0433\u0440\u0443\u043f\u043f\u0430\u043a\u043e\u043c\u0430\u043d\u0434 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u0442\u0438\u043b\u044c\u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u0442\u0438\u043f\u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0430\u0446\u0438\u0438\u043b\u0438\u043d\u0438\u0438\u0442\u0440\u0435\u043d\u0434\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u0435\u0434\u0438\u043d\u0438\u0446\u044b\u0448\u043a\u0430\u043b\u044b\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0442\u0438\u043f\u0438\u043c\u043f\u043e\u0440\u0442\u0430\u0441\u0435\u0440\u0438\u0439\u0441\u043b\u043e\u044f\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043b\u0438\u043d\u0438\u0438\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043b\u0438\u043d\u0438\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u043c\u0430\u0440\u043a\u0435\u0440\u0430\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043c\u0430\u0440\u043a\u0435\u0440\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u043e\u0431\u043b\u0430\u0441\u0442\u0438\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0441\u0435\u0440\u0438\u0438\u0441\u043b\u043e\u044f\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0442\u043e\u0447\u0435\u0447\u043d\u043e\u0433\u043e\u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0448\u043a\u0430\u043b\u044b\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u0435\u0433\u0435\u043d\u0434\u044b\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043f\u043e\u0438\u0441\u043a\u0430\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0438\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u0442\u0438\u043f\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u043e\u0432\u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u0442\u0438\u043f\u0440\u0430\u043c\u043a\u0438\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u0441\u0432\u044f\u0437\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\u0433\u0430\u043d\u0442\u0430 \u0442\u0438\u043f\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u043f\u043e\u0441\u0435\u0440\u0438\u044f\u043c\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0442\u043e\u0447\u0435\u043a\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439\u043b\u0438\u043d\u0438\u0438 \u0442\u0438\u043f\u0441\u0442\u043e\u0440\u043e\u043d\u044b\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u0444\u043e\u0440\u043c\u044b\u043e\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043f\u0448\u043a\u0430\u043b\u044b\u0440\u0430\u0434\u0430\u0440\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0444\u0430\u043a\u0442\u043e\u0440\u043b\u0438\u043d\u0438\u0438\u0442\u0440\u0435\u043d\u0434\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0444\u0438\u0433\u0443\u0440\u0430\u043a\u043d\u043e\u043f\u043a\u0438 \u0444\u0438\u0433\u0443\u0440\u044b\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f\u0432\u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0434\u043d\u044f\u0448\u043a\u0430\u043b\u044b\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0448\u0438\u0440\u0438\u043d\u0430\u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u0445\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u0444\u043e\u0440\u043c\u044b \u0432\u0438\u0434\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f\u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0438\u0438 \u0432\u0438\u0434\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f\u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0432\u0438\u0434\u0441\u0447\u0435\u0442\u0430 \u0432\u0438\u0434\u0442\u043e\u0447\u043a\u0438\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430\u0431\u0438\u0437\u043d\u0435\u0441\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0433\u0440\u0443\u043f\u043f\u0438\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0440\u0435\u0436\u0438\u043c\u0430\u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0441\u0440\u0435\u0437\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u0430\u0432\u0442\u043e\u0432\u0440\u0435\u043c\u044f \u0440\u0435\u0436\u0438\u043c\u0437\u0430\u043f\u0438\u0441\u0438\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0440\u0435\u0436\u0438\u043c\u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0430\u0432\u0442\u043e\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439\u043d\u043e\u043c\u0435\u0440\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0438\u0442\u043e\u0433\u043e\u0432\u043a\u043e\u043b\u043e\u043d\u043e\u043a\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0438\u0442\u043e\u0433\u043e\u0432\u0441\u0442\u0440\u043e\u043a\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u0435\u043a\u0441\u0442\u0430\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0447\u0442\u0435\u043d\u0438\u044f\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u0434\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439\u043f\u0435\u0447\u0430\u0442\u0438 \u0442\u0438\u043f\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043e\u0431\u043b\u0430\u0441\u0442\u0438\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043a\u0443\u0440\u0441\u043e\u0440\u043e\u0432\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043b\u0438\u043d\u0438\u0438\u0440\u0438\u0441\u0443\u043d\u043a\u0430\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043b\u0438\u043d\u0438\u0438\u044f\u0447\u0435\u0439\u043a\u0438\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043b\u0438\u043d\u0438\u0439\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0442\u0438\u043f\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0442\u0435\u043a\u0441\u0442\u0430\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u0440\u0438\u0441\u0443\u043d\u043a\u0430\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u0443\u0437\u043e\u0440\u0430\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u0444\u0430\u0439\u043b\u0430\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u043f\u0435\u0447\u0430\u0442\u0438 \u0447\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0432\u0440\u0435\u043c\u0435\u043d\u0438\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0442\u0438\u043f\u0444\u0430\u0439\u043b\u0430\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043e\u0431\u0445\u043e\u0434\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0442\u0438\u043f\u0437\u0430\u043f\u0438\u0441\u0438\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432\u0438\u0434\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044f\u043e\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043f\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0442\u0438\u043f\u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f\u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044f\u043e\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043f\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0438\u0442\u043e\u0433\u043e\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u043a\u0444\u0430\u0439\u043b\u0443 \u0440\u0435\u0436\u0438\u043c\u0434\u0438\u0430\u043b\u043e\u0433\u0430\u0432\u044b\u0431\u043e\u0440\u0430\u0444\u0430\u0439\u043b\u0430 \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f\u0444\u0430\u0439\u043b\u0430 \u0442\u0438\u043f\u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f\u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044f\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432\u0438\u0434\u0434\u0430\u043d\u043d\u044b\u0445\u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043c\u0435\u0442\u043e\u0434\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0438\u043f\u0435\u0434\u0438\u043d\u0438\u0446\u044b\u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430\u0432\u0440\u0435\u043c\u0435\u043d\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u0442\u0430\u0431\u043b\u0438\u0446\u044b\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u0438\u0441\u043a\u0430\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0439 \u0442\u0438\u043f\u043a\u043e\u043b\u043e\u043d\u043a\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u0434\u0435\u0440\u0435\u0432\u043e\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0442\u0438\u043f\u043a\u043e\u043b\u043e\u043d\u043a\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0438\u043f\u043a\u043e\u043b\u043e\u043d\u043a\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043e\u0431\u0449\u0430\u044f\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0442\u0438\u043f\u043a\u043e\u043b\u043e\u043d\u043a\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u0438\u0441\u043a\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0439 \u0442\u0438\u043f\u043a\u043e\u043b\u043e\u043d\u043a\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u0438\u0441\u043a\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0442\u0438\u043f\u043a\u043e\u043b\u043e\u043d\u043a\u0438\u043c\u043e\u0434\u0435\u043b\u0438\u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0442\u0438\u043f\u043c\u0435\u0440\u044b\u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0442\u0441\u0435\u0447\u0435\u043d\u0438\u044f\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438 \u0442\u0438\u043f\u043f\u043e\u043b\u044f\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0432\u0430\u043d\u0438\u044f\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0432\u0430\u043d\u0438\u044f\u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f\u0434\u0435\u0440\u0435\u0432\u0430\u0440\u0435\u0448\u0435\u043d\u0438\u0439 ws\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442xpathxs \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0437\u0430\u043f\u0438\u0441\u0438\u0434\u0430\u0442\u044bjson \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e\u0442\u0438\u043f\u0430xs \u0432\u0438\u0434\u0433\u0440\u0443\u043f\u043f\u044b\u043c\u043e\u0434\u0435\u043b\u0438xs \u0432\u0438\u0434\u0444\u0430\u0441\u0435\u0442\u0430xdto \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044fdom \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e\u0442\u0438\u043f\u0430xs \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0433\u043e\u0442\u0438\u043f\u0430xs \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u0441\u0445\u0435\u043c\u044bxs \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043d\u044b\u0435\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438xs \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u0433\u0440\u0443\u043f\u043f\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438xs \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u0438xs \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0438\u043c\u0435\u043dxs \u043c\u0435\u0442\u043e\u0434\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044fxs \u043c\u043e\u0434\u0435\u043b\u044c\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043exs \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0442\u0438\u043f\u0430xml \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438xs \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043f\u0440\u043e\u0431\u0435\u043b\u044c\u043d\u044b\u0445\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432xs \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043exs \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044fxs \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u043e\u0442\u0431\u043e\u0440\u0430\u0443\u0437\u043b\u043e\u0432dom \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0441\u0442\u0440\u043e\u043ajson \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0432\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435dom \u043f\u0440\u043e\u0431\u0435\u043b\u044c\u043d\u044b\u0435\u0441\u0438\u043c\u0432\u043e\u043b\u044bxml \u0442\u0438\u043f\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xml \u0442\u0438\u043f\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044fjson \u0442\u0438\u043f\u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043exml \u0442\u0438\u043f\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044bxs \u0442\u0438\u043f\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438xml \u0442\u0438\u043f\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430domxpath \u0442\u0438\u043f\u0443\u0437\u043b\u0430dom \u0442\u0438\u043f\u0443\u0437\u043b\u0430xml \u0444\u043e\u0440\u043c\u0430xml \u0444\u043e\u0440\u043c\u0430\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044fxs \u0444\u043e\u0440\u043c\u0430\u0442\u0434\u0430\u0442\u044bjson \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432json \u0432\u0438\u0434\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0438\u0442\u043e\u0433\u043e\u0432\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043f\u043e\u043b\u0435\u0439\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043f\u043e\u043b\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u043e\u0432\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u043e\u0433\u043e\u043e\u0441\u0442\u0430\u0442\u043a\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0432\u044b\u0432\u043e\u0434\u0430\u0442\u0435\u043a\u0441\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0433\u0440\u0443\u043f\u043f\u044b\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u043e\u0442\u0431\u043e\u0440\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u043f\u043e\u043b\u0435\u0439\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043c\u0430\u043a\u0435\u0442\u0430\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043c\u0430\u043a\u0435\u0442\u0430\u043e\u0431\u043b\u0430\u0441\u0442\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0441\u0442\u0430\u0442\u043a\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0442\u0435\u043a\u0441\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0441\u0432\u044f\u0437\u0438\u043d\u0430\u0431\u043e\u0440\u043e\u0432\u0434\u0430\u043d\u043d\u044b\u0445\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043b\u0435\u0433\u0435\u043d\u0434\u044b\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043e\u0442\u0431\u043e\u0440\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0436\u0438\u043c\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0433\u043e\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u0442\u0435\u043a\u0441\u0442\u0430\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u043d\u0435ascii\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0442\u0435\u043a\u0441\u0442\u0430\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u044b \u0441\u0442\u0430\u0442\u0443\u0441\u0440\u0430\u0437\u0431\u043e\u0440\u0430\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438\u0437\u0430\u043f\u0438\u0441\u0438\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438\u0437\u0430\u043f\u0438\u0441\u0438\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0440\u043e\u0432\u0435\u043d\u044c\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0440\u0435\u0436\u0438\u043c\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0440\u0435\u0436\u0438\u043c\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0442\u0438\u043f\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430\u0438\u043c\u0435\u043d\u0444\u0430\u0439\u043b\u043e\u0432\u0432zip\u0444\u0430\u0439\u043b\u0435 \u043c\u0435\u0442\u043e\u0434\u0441\u0436\u0430\u0442\u0438\u044fzip \u043c\u0435\u0442\u043e\u0434\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044fzip \u0440\u0435\u0436\u0438\u043c\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043f\u0443\u0442\u0435\u0439\u0444\u0430\u0439\u043b\u043e\u0432zip \u0440\u0435\u0436\u0438\u043c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438\u043f\u043e\u0434\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432zip \u0440\u0435\u0436\u0438\u043c\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f\u043f\u0443\u0442\u0435\u0439zip \u0443\u0440\u043e\u0432\u0435\u043d\u044c\u0441\u0436\u0430\u0442\u0438\u044fzip \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0435\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u043a\u0441\u0442\u0440\u043e\u043a\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0432\u043f\u043e\u0442\u043e\u043a\u0435 \u043f\u043e\u0440\u044f\u0434\u043e\u043a\u0431\u0430\u0439\u0442\u043e\u0432 \u0440\u0435\u0436\u0438\u043c\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0436\u0438\u043c\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445\u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0444\u043e\u043d\u043e\u0432\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u0433\u043e\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044fftp \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u043e\u0440\u044f\u0434\u043a\u0430\u0441\u0445\u0435\u043c\u044b\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0442\u0438\u043f\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u043c\u0438\u0441\u0445\u0435\u043c\u044b\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0442\u0438\u043f\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439\u0442\u043e\u0447\u043a\u0438\u0441\u0445\u0435\u043c\u044b\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0442\u0438\u043f\u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0441\u0445\u0435\u043c\u044b\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0442\u0438\u043f\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439\u0442\u0430\u0431\u043b\u0438\u0446\u044b\u0441\u0445\u0435\u043c\u044b\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0442\u0438\u043f\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0441\u0445\u0435\u043c\u044b\u0437\u0430\u043f\u0440\u043e\u0441\u0430 http\u043c\u0435\u0442\u043e\u0434 \u0430\u0432\u0442\u043e\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043e\u0431\u0449\u0435\u0433\u043e\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u0430\u0432\u0442\u043e\u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u043e\u043c\u0435\u0440\u0430\u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e\u044f\u0437\u044b\u043a\u0430 \u0432\u0438\u0434\u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0432\u0438\u0434\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0442\u0430\u0431\u043b\u0438\u0446\u044b\u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u044c\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0439\u043f\u0440\u0438\u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0431\u0430\u0437\u044b\u043f\u043b\u0430\u043d\u0430\u0432\u0438\u0434\u043e\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e\u0432\u044b\u0431\u043e\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043e\u0431\u0449\u0435\u0433\u043e\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e\u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445\u043e\u0431\u0449\u0435\u0433\u043e\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0435\u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0432\u0438\u0434\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0432\u0438\u0434\u0430\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u043b\u0430\u043d\u0430\u043e\u0431\u043c\u0435\u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0441\u0447\u0435\u0442\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u0433\u0440\u0430\u043d\u0438\u0446\u044b\u043f\u0440\u0438\u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u043d\u043e\u043c\u0435\u0440\u0430\u0431\u0438\u0437\u043d\u0435\u0441\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u043d\u043e\u043c\u0435\u0440\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0441\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439\u043f\u043e\u0438\u0441\u043a\u043f\u0440\u0438\u0432\u0432\u043e\u0434\u0435\u043f\u043e\u0441\u0442\u0440\u043e\u043a\u0435 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u043d\u043e\u0441\u0442\u044c\u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438\u043e\u0431\u0449\u0435\u0433\u043e\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0434\u0430\u043d\u043d\u044b\u0445\u043e\u0431\u0449\u0435\u0433\u043e\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u043e\u0431\u0449\u0435\u0433\u043e\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0435\u0436\u0438\u043c\u0430\u0432\u0442\u043e\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u0438\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0440\u0435\u0436\u0438\u043c\u0437\u0430\u043f\u0438\u0441\u0438\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0440\u0435\u0436\u0438\u043c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u043e\u0434\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0436\u0438\u043c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445\u0432\u044b\u0437\u043e\u0432\u043e\u0432\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b\u0438\u0432\u043d\u0435\u0448\u043d\u0438\u0445\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0440\u0435\u0436\u0438\u043c\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0441\u0435\u0430\u043d\u0441\u043e\u0432 \u0440\u0435\u0436\u0438\u043c\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f\u0434\u0430\u043d\u043d\u044b\u0445\u0432\u044b\u0431\u043e\u0440\u0430\u043f\u0440\u0438\u0432\u0432\u043e\u0434\u0435\u043f\u043e\u0441\u0442\u0440\u043e\u043a\u0435 \u0440\u0435\u0436\u0438\u043c\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0440\u0435\u0436\u0438\u043c\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0440\u0435\u0436\u0438\u043c\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u0438\u043a\u043e\u0434\u043e\u0432\u043f\u043b\u0430\u043d\u0430\u0432\u0438\u0434\u043e\u0432\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u0441\u0435\u0440\u0438\u0438\u043a\u043e\u0434\u043e\u0432\u043f\u043b\u0430\u043d\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u0441\u0435\u0440\u0438\u0438\u043a\u043e\u0434\u043e\u0432\u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043f\u0440\u0438\u0432\u0432\u043e\u0434\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u0432\u044b\u0431\u043e\u0440\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u043f\u043e\u0438\u0441\u043a\u0430\u0441\u0442\u0440\u043e\u043a\u0438\u043f\u0440\u0438\u0432\u0432\u043e\u0434\u0435\u043f\u043e\u0441\u0442\u0440\u043e\u043a\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u0434\u0430\u043d\u043d\u044b\u0445\u0442\u0430\u0431\u043b\u0438\u0446\u044b\u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043a\u043e\u0434\u0430\u043f\u043b\u0430\u043d\u0430\u0432\u0438\u0434\u043e\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0442\u0438\u043f\u043a\u043e\u0434\u0430\u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u0442\u0438\u043f\u043c\u0430\u043a\u0435\u0442\u0430 \u0442\u0438\u043f\u043d\u043e\u043c\u0435\u0440\u0430\u0431\u0438\u0437\u043d\u0435\u0441\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0442\u0438\u043f\u043d\u043e\u043c\u0435\u0440\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043d\u043e\u043c\u0435\u0440\u0430\u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u0438\u043f\u0444\u043e\u0440\u043c\u044b \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0439 \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0444\u043e\u0440\u043c\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e\u0448\u0440\u0438\u0444\u0442\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439\u0434\u0430\u0442\u044b\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0438\u0434\u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u0438\u0434\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0432\u0438\u0434\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e\u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u0438\u0434\u0440\u0430\u043c\u043a\u0438 \u0432\u0438\u0434\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0446\u0432\u0435\u0442\u0430 \u0432\u0438\u0434\u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0448\u0440\u0438\u0444\u0442\u0430 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u0430\u044f\u0434\u043b\u0438\u043d\u0430 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439\u0437\u043d\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435byteordermark \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e\u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0432\u0438\u0448\u0430 \u043a\u043e\u0434\u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430\u0434\u0438\u0430\u043b\u043e\u0433\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430xbase \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430\u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u043e\u0438\u0441\u043a\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0438\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043f\u0430\u043d\u0435\u043b\u0438\u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u0434\u0438\u0430\u043b\u043e\u0433\u0430\u0432\u043e\u043f\u0440\u043e\u0441 \u0440\u0435\u0436\u0438\u043c\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f\u0444\u043e\u0440\u043c\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e\u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044b\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u0432\u044b\u0431\u043e\u0440\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430windows \u0441\u043f\u043e\u0441\u043e\u0431\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0432\u043d\u0435\u0448\u043d\u0435\u0439\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0442\u0438\u043f\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0442\u0438\u043f\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f\u043a\u043b\u0430\u0432\u0438\u0448\u0438enter \u0442\u0438\u043f\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438\u043e\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044b\u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0440\u043e\u0432\u0435\u043d\u044c\u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0445\u0435\u0448\u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0447\u0430\u0441\u0442\u0438\u0434\u0430\u0442\u044b", +type:"com\u043e\u0431\u044a\u0435\u043a\u0442 ftp\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 http\u0437\u0430\u043f\u0440\u043e\u0441 http\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0442\u0432\u0435\u0442 http\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 ws\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f ws\u043f\u0440\u043e\u043a\u0441\u0438 xbase \u0430\u043d\u0430\u043b\u0438\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044fxs \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0444\u0435\u0440\u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435xs \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445\u0447\u0438\u0441\u0435\u043b \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f\u0441\u0445\u0435\u043c\u0430 \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f\u0441\u0445\u0435\u043c\u0430 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u043e\u0434\u0435\u043b\u0438xs \u0434\u0430\u043d\u043d\u044b\u0435\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0435\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0435\u043d\u0434\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430\u0433\u0430\u043d\u0442\u0430 \u0434\u0438\u0430\u043b\u043e\u0433\u0432\u044b\u0431\u043e\u0440\u0430\u0444\u0430\u0439\u043b\u0430 \u0434\u0438\u0430\u043b\u043e\u0433\u0432\u044b\u0431\u043e\u0440\u0430\u0446\u0432\u0435\u0442\u0430 \u0434\u0438\u0430\u043b\u043e\u0433\u0432\u044b\u0431\u043e\u0440\u0430\u0448\u0440\u0438\u0444\u0442\u0430 \u0434\u0438\u0430\u043b\u043e\u0433\u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u0440\u0435\u0433\u043b\u0430\u043c\u0435\u043d\u0442\u043d\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0434\u0438\u0430\u043b\u043e\u0433\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442dom \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442html \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044fxs \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0435\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u044cdom \u0437\u0430\u043f\u0438\u0441\u044cfastinfoset \u0437\u0430\u043f\u0438\u0441\u044chtml \u0437\u0430\u043f\u0438\u0441\u044cjson \u0437\u0430\u043f\u0438\u0441\u044cxml \u0437\u0430\u043f\u0438\u0441\u044czip\u0444\u0430\u0439\u043b\u0430 \u0437\u0430\u043f\u0438\u0441\u044c\u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u044c\u0442\u0435\u043a\u0441\u0442\u0430 \u0437\u0430\u043f\u0438\u0441\u044c\u0443\u0437\u043b\u043e\u0432dom \u0437\u0430\u043f\u0440\u043e\u0441 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u0435\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435openssl \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043f\u043e\u043b\u0435\u0439\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435\u0442\u0435\u043a\u0441\u0442\u0430 \u0438\u043c\u043f\u043e\u0440\u0442xs \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u0430 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0435\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439\u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u0440\u043e\u043a\u0441\u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\u0434\u043b\u044f\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044fxs \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443\u0437\u043b\u043e\u0432dom \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\u0434\u0430\u0442\u044b \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\u0447\u0438\u0441\u043b\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a\u043c\u0430\u043a\u0435\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043c\u0430\u043a\u0435\u0442\u0430\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0444\u043e\u0440\u043c\u0430\u0442\u043d\u043e\u0439\u0441\u0442\u0440\u043e\u043a\u0438 \u043b\u0438\u043d\u0438\u044f \u043c\u0430\u043a\u0435\u0442\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u043a\u0435\u0442\u043e\u0431\u043b\u0430\u0441\u0442\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u043a\u0435\u0442\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u0441\u043a\u0430xs \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043d\u0430\u0431\u043e\u0440\u0441\u0445\u0435\u043cxml \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438json \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0431\u0445\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430dom \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043d\u043e\u0442\u0430\u0446\u0438\u0438xs \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430xs \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0434\u043e\u0441\u0442\u0443\u043f\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043e\u0442\u043a\u0430\u0437\u0432\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e\u0444\u0430\u0439\u043b\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0442\u0438\u043f\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0433\u0440\u0443\u043f\u043f\u044b\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432xs \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0433\u0440\u0443\u043f\u043f\u044b\u043c\u043e\u0434\u0435\u043b\u0438xs \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u0438xs \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e\u0442\u0438\u043f\u0430xs \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0433\u043e\u0442\u0438\u043f\u0430xs \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0442\u0438\u043f\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430dom \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044fxpathxs \u043e\u0442\u0431\u043e\u0440\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0445\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0437\u0430\u043f\u0438\u0441\u0438json \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0437\u0430\u043f\u0438\u0441\u0438xml \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0447\u0442\u0435\u043d\u0438\u044fxml \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435xs \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043f\u043e\u043b\u0435\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044cdom \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043e\u0442\u0447\u0435\u0442\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043e\u0442\u0447\u0435\u0442\u0430\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u0441\u0445\u0435\u043cxml \u043f\u043e\u0442\u043e\u043a \u043f\u043e\u0442\u043e\u043a\u0432\u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0447\u0442\u0430 \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0435\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435xsl \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043a\u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443xml \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0432\u044b\u0432\u043e\u0434\u0430\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445\u0432\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0432\u044b\u0432\u043e\u0434\u0430\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445\u0432\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u044b\u0439\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0438\u043c\u0435\u043ddom \u0440\u0430\u043c\u043a\u0430 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0440\u0435\u0433\u043b\u0430\u043c\u0435\u043d\u0442\u043d\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0435\u0438\u043c\u044fxml \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0447\u0442\u0435\u043d\u0438\u044f\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0432\u043e\u0434\u043d\u0430\u044f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u0432\u044f\u0437\u044c\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0432\u044b\u0431\u043e\u0440\u0430 \u0441\u0432\u044f\u0437\u044c\u043f\u043e\u0442\u0438\u043f\u0443 \u0441\u0432\u044f\u0437\u044c\u043f\u043e\u0442\u0438\u043f\u0443\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440xdto \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043a\u043b\u0438\u0435\u043d\u0442\u0430windows \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u0444\u0430\u0439\u043b \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b\u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u044e\u0449\u0438\u0445\u0446\u0435\u043d\u0442\u0440\u043e\u0432windows \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b\u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u044e\u0449\u0438\u0445\u0446\u0435\u043d\u0442\u0440\u043e\u0432\u0444\u0430\u0439\u043b \u0441\u0436\u0430\u0442\u0438\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435\u043a\u043b\u0430\u0432\u0438\u0448 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f\u0434\u0430\u0442\u0430\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439\u043f\u0435\u0440\u0438\u043e\u0434 \u0441\u0445\u0435\u043c\u0430xml \u0441\u0445\u0435\u043c\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u044b\u0439\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0435\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0434\u0430\u043d\u043d\u044b\u0445xml \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0444\u0430\u0431\u0440\u0438\u043a\u0430xdto \u0444\u0430\u0439\u043b \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0439\u043f\u043e\u0442\u043e\u043a \u0444\u0430\u0441\u0435\u0442\u0434\u043b\u0438\u043d\u044bxs \u0444\u0430\u0441\u0435\u0442\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430\u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432\u0434\u0440\u043e\u0431\u043d\u043e\u0439\u0447\u0430\u0441\u0442\u0438xs \u0444\u0430\u0441\u0435\u0442\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044fxs \u0444\u0430\u0441\u0435\u0442\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044fxs \u0444\u0430\u0441\u0435\u0442\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439\u0434\u043b\u0438\u043d\u044bxs \u0444\u0430\u0441\u0435\u0442\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044fxs \u0444\u0430\u0441\u0435\u0442\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044fxs \u0444\u0430\u0441\u0435\u0442\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439\u0434\u043b\u0438\u043d\u044bxs \u0444\u0430\u0441\u0435\u0442\u043e\u0431\u0440\u0430\u0437\u0446\u0430xs \u0444\u0430\u0441\u0435\u0442\u043e\u0431\u0449\u0435\u0433\u043e\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430\u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432xs \u0444\u0430\u0441\u0435\u0442\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044fxs \u0444\u0430\u0441\u0435\u0442\u043f\u0440\u043e\u0431\u0435\u043b\u044c\u043d\u044b\u0445\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432xs \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0437\u043b\u043e\u0432dom \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f\u0441\u0442\u0440\u043e\u043a\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442xs \u0445\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442 \u0447\u0442\u0435\u043d\u0438\u0435fastinfoset \u0447\u0442\u0435\u043d\u0438\u0435html \u0447\u0442\u0435\u043d\u0438\u0435json \u0447\u0442\u0435\u043d\u0438\u0435xml \u0447\u0442\u0435\u043d\u0438\u0435zip\u0444\u0430\u0439\u043b\u0430 \u0447\u0442\u0435\u043d\u0438\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0442\u0435\u043d\u0438\u0435\u0442\u0435\u043a\u0441\u0442\u0430 \u0447\u0442\u0435\u043d\u0438\u0435\u0443\u0437\u043b\u043e\u0432dom \u0448\u0440\u0438\u0444\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 comsafearray \u0434\u0435\u0440\u0435\u0432\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u043f\u0438\u0441\u043e\u043a\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439\u043c\u0430\u0441\u0441\u0438\u0432 ", +literal:e},contains:[{className:"meta",begin:"#|&",end:"$",keywords:{$pattern:x, +keyword:n+"\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0438\u0437\u0444\u0430\u0439\u043b\u0430 \u0432\u0435\u0431\u043a\u043b\u0438\u0435\u043d\u0442 \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0435\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442 \u043a\u043e\u043d\u0435\u0446\u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0435\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043a\u043b\u0438\u0435\u043d\u0442 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0435\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043d\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0435\u043d\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043d\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0435\u043d\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043d\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u0441\u043b\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u0442\u043e\u043b\u0441\u0442\u044b\u0439\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0431\u044b\u0447\u043d\u043e\u0435\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u043e\u043b\u0441\u0442\u044b\u0439\u043a\u043b\u0438\u0435\u043d\u0442\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0435\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u043e\u043d\u043a\u0438\u0439\u043a\u043b\u0438\u0435\u043d\u0442 " +},contains:[m]},{className:"function",variants:[{ +begin:"\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430|\u0444\u0443\u043d\u043a\u0446\u0438\u044f", +end:"\\)", +keywords:"\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f" +},{ +begin:"\u043a\u043e\u043d\u0435\u0446\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b|\u043a\u043e\u043d\u0435\u0446\u0444\u0443\u043d\u043a\u0446\u0438\u0438", +keywords:"\u043a\u043e\u043d\u0435\u0446\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043a\u043e\u043d\u0435\u0446\u0444\u0443\u043d\u043a\u0446\u0438\u0438" +}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params", +begin:x,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{$pattern:x, +keyword:"\u0437\u043d\u0430\u0447",literal:e},contains:[o,t,a]},m] +},s.inherit(s.TITLE_MODE,{begin:x})]},m,{className:"symbol",begin:"~",end:";|:", +excludeEnd:!0},o,t,a]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/abnf.min.js b/src/app/resources/assets/highlight/es/languages/abnf.min.js new file mode 100644 index 0000000..a8f55a6 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/abnf.min.js @@ -0,0 +1,12 @@ +/*! `abnf` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return a=>{ +const e=a.regex,s=a.COMMENT(/;/,/$/);return{name:"Augmented Backus-Naur Form", +illegal:/[!@#$^&',?+~`|:]/, +keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"], +contains:[{scope:"operator",match:/=\/?/},{scope:"attribute", +match:e.concat(/^[a-zA-Z][a-zA-Z0-9-]*/,/(?=\s*=)/)},s,{scope:"symbol", +match:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/},{scope:"symbol", +match:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/},{scope:"symbol", +match:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/},{scope:"symbol", +match:/%[si](?=".*")/},a.QUOTE_STRING_MODE,a.NUMBER_MODE]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/accesslog.min.js b/src/app/resources/assets/highlight/es/languages/accesslog.min.js new file mode 100644 index 0000000..3bf839d --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/accesslog.min.js @@ -0,0 +1,13 @@ +/*! `accesslog` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n=e.regex,a=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"] +;return{name:"Apache Access Log",contains:[{className:"number", +begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5},{ +className:"number",begin:/\b\d+\b/,relevance:0},{className:"string", +begin:n.concat(/"/,n.either(...a)),end:/"/,keywords:a,illegal:/\n/,relevance:5, +contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]},{className:"string", +begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string", +begin:/\[/,end:/\]/,illegal:/\n/,relevance:0},{className:"string", +begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3},{ +className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/actionscript.min.js b/src/app/resources/assets/highlight/es/languages/actionscript.min.js new file mode 100644 index 0000000..fd764fe --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/actionscript.min.js @@ -0,0 +1,17 @@ +/*! `actionscript` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a=e.regex,t=/[a-zA-Z_$][a-zA-Z0-9_$]*/,n=a.concat(t,a.concat("(\\.",t,")*")),s={ +className:"rest_arg",begin:/[.]{3}/,end:t,relevance:10};return{ +name:"ActionScript",aliases:["as"],keywords:{ +keyword:["as","break","case","catch","class","const","continue","default","delete","do","dynamic","each","else","extends","final","finally","for","function","get","if","implements","import","in","include","instanceof","interface","internal","is","namespace","native","new","override","package","private","protected","public","return","set","static","super","switch","this","throw","try","typeof","use","var","void","while","with"], +literal:["true","false","null","undefined"]}, +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{ +match:[/\bpackage/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{ +match:[/\b(?:class|interface|extends|implements)/,/\s+/,t],className:{ +1:"keyword",3:"title.class"}},{className:"meta",beginKeywords:"import include", +end:/;/,keywords:{keyword:"import include"}},{beginKeywords:"function", +end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[e.inherit(e.TITLE_MODE,{ +className:"title.function"}),{className:"params",begin:/\(/,end:/\)/, +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s] +},{begin:a.concat(/:\s*/,/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/)}]},e.METHOD_GUARD], +illegal:/#/}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/ada.min.js b/src/app/resources/assets/highlight/es/languages/ada.min.js new file mode 100644 index 0000000..bfb6d0f --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/ada.min.js @@ -0,0 +1,26 @@ +/*! `ada` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n="[A-Za-z](_?[A-Za-z0-9.])*",s="[]\\{\\}%#'\"",a=e.COMMENT("--","$"),r={ +begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:s,contains:[{ +beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword", +beginKeywords:"not null constant access function procedure in out aliased exception" +},{className:"type",begin:n,endsParent:!0,relevance:0}]};return{name:"Ada", +case_insensitive:!0,keywords:{ +keyword:["abort","else","new","return","abs","elsif","not","reverse","abstract","end","accept","entry","select","access","exception","of","separate","aliased","exit","or","some","all","others","subtype","and","for","out","synchronized","array","function","overriding","at","tagged","generic","package","task","begin","goto","pragma","terminate","body","private","then","if","procedure","type","case","in","protected","constant","interface","is","raise","use","declare","range","delay","limited","record","when","delta","loop","rem","while","digits","renames","with","do","mod","requeue","xor"], +literal:["True","False"]},contains:[a,{className:"string",begin:/"/,end:/"/, +contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{ +className:"number", +begin:"\\b(\\d(_|\\d)*#\\w+(\\.\\w+)?#([eE][-+]?\\d(_|\\d)*)?|\\d(_|\\d)*(\\.\\d(_|\\d)*)?([eE][-+]?\\d(_|\\d)*)?)", +relevance:0},{className:"symbol",begin:"'"+n},{className:"title", +begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?", +end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:s},{ +begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+", +end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)", +keywords:"overriding function procedure with is renames return",returnBegin:!0, +contains:[a,{className:"title", +begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)", +excludeBegin:!0,excludeEnd:!0,illegal:s},r,{className:"type", +begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0, +excludeEnd:!0,endsParent:!0,illegal:s}]},{className:"type", +begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:s +},r]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/angelscript.min.js b/src/app/resources/assets/highlight/es/languages/angelscript.min.js new file mode 100644 index 0000000..221442c --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/angelscript.min.js @@ -0,0 +1,21 @@ +/*! `angelscript` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n={className:"built_in", +begin:"\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)" +},a={className:"symbol",begin:"[a-zA-Z0-9_]+@"},i={className:"keyword", +begin:"<",end:">",contains:[n,a]};return n.contains=[i],a.contains=[i],{ +name:"AngelScript",aliases:["asc"], +keywords:["for","in|0","break","continue","while","do|0","return","if","else","case","switch","namespace","is","cast","or","and","xor","not","get|0","in","inout|10","out","override","set|0","private","public","const","default|0","final","shared","external","mixin|10","enum","typedef","funcdef","this","super","import","from","interface","abstract|0","try","catch","protected","explicit","property"], +illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{ +className:"string",begin:"'",end:"'",illegal:"\\n", +contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"""', +end:'"""'},{className:"string",begin:'"',end:'"',illegal:"\\n", +contains:[e.BACKSLASH_ESCAPE],relevance:0 +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string", +begin:"^\\s*\\[",end:"\\]"},{beginKeywords:"interface namespace",end:/\{/, +illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{ +beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol", +begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol", +begin:"[a-zA-Z0-9_]+"}]}]}]},n,a,{className:"literal", +begin:"\\b(null|true|false)"},{className:"number",relevance:0, +begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)" +}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/apache.min.js b/src/app/resources/assets/highlight/es/languages/apache.min.js new file mode 100644 index 0000000..48d3cf6 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/apache.min.js @@ -0,0 +1,14 @@ +/*! `apache` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a={className:"number", +begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{ +name:"Apache config",aliases:["apacheconf"],case_insensitive:!0, +contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/, +contains:[a,{className:"number",begin:/:\d{1,5}/ +},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute", +begin:/\w+/,relevance:0,keywords:{ +_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"] +},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"}, +contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable", +begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}] +},a,{className:"number",begin:/\b\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}} +})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/applescript.min.js b/src/app/resources/assets/highlight/es/languages/applescript.min.js new file mode 100644 index 0000000..a216068 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/applescript.min.js @@ -0,0 +1,18 @@ +/*! `applescript` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const t=e.regex,r=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),a={ +className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,r] +},i=e.COMMENT(/--/,/$/),n=[i,e.COMMENT(/\(\*/,/\*\)/,{contains:["self",i] +}),e.HASH_COMMENT_MODE];return{name:"AppleScript",aliases:["osascript"], +keywords:{ +keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without", +literal:"AppleScript false linefeed return pi quote result space tab true", +built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name|0 paragraph paragraphs rest reverse running time version weekday word words year" +},contains:[r,e.C_NUMBER_MODE,{className:"built_in", +begin:t.concat(/\b/,t.either(/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/),/\b/) +},{className:"built_in",begin:/^\s*return\b/},{className:"literal", +begin:/\b(text item delimiters|current application|missing value)\b/},{ +className:"keyword", +begin:t.concat(/\b/,t.either(/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/),/\b/) +},{beginKeywords:"on",illegal:/[${=;\n]/,contains:[e.UNDERSCORE_TITLE_MODE,a] +},...n],illegal:/\/\/|->|=>|\[\[/}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/arcade.min.js b/src/app/resources/assets/highlight/es/languages/arcade.min.js new file mode 100644 index 0000000..ca5145e --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/arcade.min.js @@ -0,0 +1,28 @@ +/*! `arcade` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n="[A-Za-z_][0-9A-Za-z_]*",a={ +keyword:["if","for","while","var","new","function","do","return","void","else","break"], +literal:["BackSlash","DoubleQuote","false","ForwardSlash","Infinity","NaN","NewLine","null","PI","SingleQuote","Tab","TextFormatting","true","undefined"], +built_in:["Abs","Acos","All","Angle","Any","Area","AreaGeodetic","Array","Asin","Atan","Atan2","Attachments","Average","Back","Bearing","Boolean","Buffer","BufferGeodetic","Ceil","Centroid","Clip","Concatenate","Console","Constrain","Contains","ConvertDirection","Cos","Count","Crosses","Cut","Date","DateAdd","DateDiff","Day","Decode","DefaultValue","Densify","DensifyGeodetic","Dictionary","Difference","Disjoint","Distance","DistanceGeodetic","Distinct","Domain","DomainCode","DomainName","EnvelopeIntersects","Equals","Erase","Exp","Expects","Extent","Feature","FeatureSet","FeatureSetByAssociation","FeatureSetById","FeatureSetByName","FeatureSetByPortalItem","FeatureSetByRelationshipName","Filter","Find","First","Floor","FromCharCode","FromCodePoint","FromJSON","GdbVersion","Generalize","Geometry","GetFeatureSet","GetUser","GroupBy","Guid","Hash","HasKey","Hour","IIf","Includes","IndexOf","Insert","Intersection","Intersects","IsEmpty","IsNan","ISOMonth","ISOWeek","ISOWeekday","ISOYear","IsSelfIntersecting","IsSimple","Left|0","Length","Length3D","LengthGeodetic","Log","Lower","Map","Max","Mean","Mid","Millisecond","Min","Minute","Month","MultiPartToSinglePart","Multipoint","NextSequenceValue","None","Now","Number","Offset|0","OrderBy","Overlaps","Point","Polygon","Polyline","Pop","Portal","Pow","Proper","Push","Random","Reduce","Relate","Replace","Resize","Reverse","Right|0","RingIsClockwise","Rotate","Round","Schema","Second","SetGeometry","Simplify","Sin","Slice","Sort","Splice","Split","Sqrt","Stdev","SubtypeCode","SubtypeName","Subtypes","Sum","SymmetricDifference","Tan","Text","Timestamp","ToCharCode","ToCodePoint","Today","ToHex","ToLocal","Top|0","Touches","ToUTC","TrackAccelerationAt","TrackAccelerationWindow","TrackCurrentAcceleration","TrackCurrentDistance","TrackCurrentSpeed","TrackCurrentTime","TrackDistanceAt","TrackDistanceWindow","TrackDuration","TrackFieldWindow","TrackGeometryWindow","TrackIndex","TrackSpeedAt","TrackSpeedWindow","TrackStartTime","TrackWindow","Trim","TypeOf","Union","Upper","UrlEncode","Variance","Week","Weekday","When","Within","Year"] +},t={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{ +begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},r={ +className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},i={ +className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,r]} +;r.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,t,e.REGEXP_MODE] +;const o=r.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]) +;return{name:"ArcGIS Arcade",case_insensitive:!0,keywords:a, +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{ +className:"symbol", +begin:"\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+" +},t,{begin:/[{,]\s*/,relevance:0,contains:[{begin:n+"\\s*:",returnBegin:!0, +relevance:0,contains:[{className:"attr",begin:n,relevance:0}]}]},{ +begin:"("+e.RE_STARTERS_RE+"|\\b(return)\\b)\\s*",keywords:"return", +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{ +className:"function",begin:"(\\(.*?\\)|"+n+")\\s*=>",returnBegin:!0, +end:"\\s*=>",contains:[{className:"params",variants:[{begin:n},{begin:/\(\s*\)/ +},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:o}]}] +}],relevance:0},{beginKeywords:"function",end:/\{/,excludeEnd:!0, +contains:[e.inherit(e.TITLE_MODE,{className:"title.function",begin:n}),{ +className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:o +}],illegal:/\[|%/},{begin:/\$[(.]/}],illegal:/#(?!!)/}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/arduino.min.js b/src/app/resources/assets/highlight/es/languages/arduino.min.js new file mode 100644 index 0000000..7b98871 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/arduino.min.js @@ -0,0 +1,54 @@ +/*! `arduino` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const t={ +type:["boolean","byte","word","String"], +built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"], +_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"], +literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"] +},r=(e=>{const t=e.regex,r=e.COMMENT("//","$",{contains:[{begin:/\\\n/}] +}),a="[a-zA-Z_]\\w*::",n="(?!struct)(decltype\\(auto\\)|"+t.optional(a)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",i={ +className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{ +className:"string",begin:/<.*?>/},r,e.C_BLOCK_COMMENT_MODE]},c={ +className:"title",begin:t.optional(a)+e.IDENT_RE,relevance:0 +},d=t.optional(a)+e.IDENT_RE+"\\s*\\(",u={ +type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"], +keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"], +literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"], +_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"] +},p={className:"function.dispatch",relevance:0,keywords:{ +_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"] +}, +begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/)) +},m=[p,l,i,r,e.C_BLOCK_COMMENT_MODE,o,s],g={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:m.concat(["self"]),relevance:0}]),relevance:0},_={className:"function", +begin:"("+n+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", +keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[c],relevance:0},{ +begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,o]},{ +relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u, +relevance:0,contains:[r,e.C_BLOCK_COMMENT_MODE,s,o,i,{begin:/\(/,end:/\)/, +keywords:u,relevance:0,contains:["self",r,e.C_BLOCK_COMMENT_MODE,s,o,i]}] +},i,r,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C++", +aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",i]},{begin:e.IDENT_RE+"::",keywords:u},{ +match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/], +className:{1:"keyword",3:"title.class"}}])}})(e),a=r.keywords +;return a.type=[...a.type,...t.type], +a.literal=[...a.literal,...t.literal],a.built_in=[...a.built_in,...t.built_in], +a._hints=t._hints,r.name="Arduino",r.aliases=["ino"],r.supersetOf="cpp",r}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/armasm.min.js b/src/app/resources/assets/highlight/es/languages/armasm.min.js new file mode 100644 index 0000000..009c4c9 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/armasm.min.js @@ -0,0 +1,17 @@ +/*! `armasm` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return s=>{const r={ +variants:[s.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0 +}),s.COMMENT("[;@]","$",{relevance:0 +}),s.C_LINE_COMMENT_MODE,s.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly", +case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+s.IDENT_RE, +meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ", +built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @" +},contains:[{className:"keyword", +begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)" +},r,s.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0 +},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{ +className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+" +},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol", +variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{ +begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/asciidoc.min.js b/src/app/resources/assets/highlight/es/languages/asciidoc.min.js new file mode 100644 index 0000000..8aa338e --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/asciidoc.min.js @@ -0,0 +1,35 @@ +/*! `asciidoc` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n=e.regex,a=[{ +className:"strong",begin:/\*{2}([^\n]+?)\*{2}/},{className:"strong", +begin:n.concat(/\*\*/,/((\*(?!\*)|\\[^\n]|[^*\n\\])+\n)+/,/(\*(?!\*)|\\[^\n]|[^*\n\\])*/,/\*\*/), +relevance:0},{className:"strong",begin:/\B\*(\S|\S[^\n]*?\S)\*(?!\w)/},{ +className:"strong",begin:/\*[^\s]([^\n]+\n)+([^\n]+)\*/}],s=[{ +className:"emphasis",begin:/_{2}([^\n]+?)_{2}/},{className:"emphasis", +begin:n.concat(/__/,/((_(?!_)|\\[^\n]|[^_\n\\])+\n)+/,/(_(?!_)|\\[^\n]|[^_\n\\])*/,/__/), +relevance:0},{className:"emphasis",begin:/\b_(\S|\S[^\n]*?\S)_(?!\w)/},{ +className:"emphasis",begin:/_[^\s]([^\n]+\n)+([^\n]+)_/},{className:"emphasis", +begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0 +}],relevance:0}];return{name:"AsciiDoc",aliases:["adoc"], +contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10 +}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{ +begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"section", +relevance:10,variants:[{begin:"^(={1,6})[ \t].+?([ \t]\\1)?$"},{ +begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{className:"meta", +begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"meta", +begin:"^\\[.+?\\]$",relevance:0},{className:"quote",begin:"^_{4,}\\n", +end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n", +end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$", +contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{ +className:"bullet",begin:"^(\\*+|-+|\\.+|[^\\n]+?::)\\s+"},{className:"symbol", +begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{ +begin:/\\[*_`]/},{begin:/\\\\\*{2}[^\n]*?\*{2}/},{begin:/\\\\_{2}[^\n]*_{2}/},{ +begin:/\\\\`{2}[^\n]*`{2}/},{begin:/[:;}][*_`](?![*_`])/},...a,...s,{ +className:"string",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{ +className:"code",begin:/`{2}/,end:/(\n{2}|`{2})/},{className:"code", +begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]", +end:"$",relevance:0},{begin:"^'{3,}[ \\t]*$",relevance:10},{ +begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+?\\[[^[]*?\\]", +returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{ +className:"link",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"string", +begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}] +}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/aspectj.min.js b/src/app/resources/assets/highlight/es/languages/aspectj.min.js new file mode 100644 index 0000000..226ba0b --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/aspectj.min.js @@ -0,0 +1,30 @@ +/*! `aspectj` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n=e.regex,t=["false","synchronized","int","abstract","float","private","char","boolean","static","null","if","const","for","true","while","long","throw","strictfp","finally","protected","import","native","final","return","void","enum","else","extends","implements","break","transient","new","catch","instanceof","byte","super","volatile","case","assert","short","package","default","double","public","try","this","switch","continue","throws","privileged","aspectOf","adviceexecution","proceed","cflowbelow","cflow","initialization","preinitialization","staticinitialization","withincode","target","within","execution","getWithinTypeName","handler","thisJoinPoint","thisJoinPointStaticPart","thisEnclosingJoinPointStaticPart","declare","parents","warning","error","soft","precedence","thisAspectInstance"],i=["get","set","args","call"] +;return{name:"AspectJ",keywords:t,illegal:/<\/|#/, +contains:[e.COMMENT(/\/\*\*/,/\*\//,{relevance:0,contains:[{begin:/\w+@/, +relevance:0},{className:"doctag",begin:/@[A-Za-z]+/}] +}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ +className:"class",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0, +illegal:/[:;"\[\]]/,contains:[{ +beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton" +},e.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:t.concat(i), +excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/, +excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/, +contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ +beginKeywords:"pointcut after before around throwing returning",end:/[)]/, +excludeEnd:!1,illegal:/["\[\]]/,contains:[{ +begin:n.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0, +contains:[e.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/, +relevance:0,excludeEnd:!1,keywords:t,illegal:/["\[\]]/,contains:[{ +begin:n.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),keywords:t.concat(i),relevance:0 +},e.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{ +className:"function", +begin:/\w+ +\w+(\.\w+)?\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0, +end:/[{;=]/,keywords:t,excludeEnd:!0,contains:[{ +begin:n.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/, +relevance:0,keywords:t, +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_NUMBER_MODE,{ +className:"meta",begin:/@[A-Za-z]+/}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/autohotkey.min.js b/src/app/resources/assets/highlight/es/languages/autohotkey.min.js new file mode 100644 index 0000000..8bdf50f --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/autohotkey.min.js @@ -0,0 +1,13 @@ +/*! `autohotkey` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a={begin:"`[\\s\\S]"} +;return{name:"AutoHotkey",case_insensitive:!0,aliases:["ahk"],keywords:{ +keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group", +literal:"true false NOT AND OR", +built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"}, +contains:[a,e.inherit(e.QUOTE_STRING_MODE,{contains:[a]}),e.COMMENT(";","$",{ +relevance:0}),e.C_BLOCK_COMMENT_MODE,{className:"number",begin:e.NUMBER_RE, +relevance:0},{className:"variable",begin:"%[a-zA-Z0-9#_$@]+%"},{ +className:"built_in",begin:"^\\s*\\w+\\s*(,|%)"},{className:"title",variants:[{ +begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{ +className:"meta",begin:"^\\s*#\\w+",end:"$",relevance:0},{className:"built_in", +begin:"A_[a-zA-Z0-9]+"},{begin:",\\s*,"}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/autoit.min.js b/src/app/resources/assets/highlight/es/languages/autoit.min.js new file mode 100644 index 0000000..a91207d --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/autoit.min.js @@ -0,0 +1,21 @@ +/*! `autoit` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const t={ +variants:[e.COMMENT(";","$",{relevance:0 +}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},r={ +begin:"\\$[A-z0-9_]+"},i={className:"string",variants:[{begin:/"/,end:/"/, +contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/, +relevance:0}]}]},n={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{ +name:"AutoIt",case_insensitive:!0,illegal:/\/\*/,keywords:{ +keyword:"ByRef Case Const ContinueCase ContinueLoop Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With", +built_in:"Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive", +literal:"True False And Null Not Or Default"},contains:[t,r,i,n,{ +className:"meta",begin:"#",end:"$",keywords:{ +keyword:["EndRegion","forcedef","forceref","ignorefunc","include","include-once","NoTrayIcon","OnAutoItStartRegister","pragma","Region","RequireAdmin","Tidy_Off","Tidy_On","Tidy_Parameters"] +},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",keywords:{ +keyword:"include"},end:"$",contains:[i,{className:"string",variants:[{begin:"<", +end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/, +end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},i,t]},{className:"symbol", +begin:"@[A-z0-9_]+"},{beginKeywords:"Func",end:"$",illegal:"\\$|\\[|%", +contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{className:"title.function"}),{ +className:"params",begin:"\\(",end:"\\)",contains:[r,i,n]}]}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/avrasm.min.js b/src/app/resources/assets/highlight/es/languages/avrasm.min.js new file mode 100644 index 0000000..7bb183f --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/avrasm.min.js @@ -0,0 +1,12 @@ +/*! `avrasm` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return r=>({name:"AVR Assembly", +case_insensitive:!0,keywords:{$pattern:"\\.?"+r.IDENT_RE, +keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr", +built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf", +meta:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set" +},contains:[r.C_BLOCK_COMMENT_MODE,r.COMMENT(";","$",{relevance:0 +}),r.C_NUMBER_MODE,r.BINARY_NUMBER_MODE,{className:"number", +begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},r.QUOTE_STRING_MODE,{className:"string", +begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"symbol", +begin:"^[A-Za-z0-9_.$]+:"},{className:"meta",begin:"#",end:"$"},{ +className:"subst",begin:"@[0-9]+"}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/awk.min.js b/src/app/resources/assets/highlight/es/languages/awk.min.js new file mode 100644 index 0000000..0d58798 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/awk.min.js @@ -0,0 +1,11 @@ +/*! `awk` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Awk",keywords:{ +keyword:"BEGIN END if else while do for in break continue delete next nextfile function func exit|10" +},contains:[{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{ +begin:/\$\{(.*?)\}/}]},{className:"string",contains:[e.BACKSLASH_ESCAPE], +variants:[{begin:/(u|b)?r?'''/,end:/'''/,relevance:10},{begin:/(u|b)?r?"""/, +end:/"""/,relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{ +begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{ +begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/axapta.min.js b/src/app/resources/assets/highlight/es/languages/axapta.min.js new file mode 100644 index 0000000..5bab911 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/axapta.min.js @@ -0,0 +1,10 @@ +/*! `axapta` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const t=e.UNDERSCORE_IDENT_RE,s={ +keyword:["abstract","as","asc","avg","break","breakpoint","by","byref","case","catch","changecompany","class","client","client","common","const","continue","count","crosscompany","delegate","delete_from","desc","display","div","do","edit","else","eventhandler","exists","extends","final","finally","firstfast","firstonly","firstonly1","firstonly10","firstonly100","firstonly1000","flush","for","forceliterals","forcenestedloop","forceplaceholders","forceselectorder","forupdate","from","generateonly","group","hint","if","implements","in","index","insert_recordset","interface","internal","is","join","like","maxof","minof","mod","namespace","new","next","nofetch","notexists","optimisticlock","order","outer","pessimisticlock","print","private","protected","public","readonly","repeatableread","retry","return","reverse","select","server","setting","static","sum","super","switch","this","throw","try","ttsabort","ttsbegin","ttscommit","unchecked","update_recordset","using","validtimestate","void","where","while"], +built_in:["anytype","boolean","byte","char","container","date","double","enum","guid","int","int64","long","real","short","str","utcdatetime","var"], +literal:["default","false","null","true"]},r={variants:[{ +match:[/(class|interface)\s+/,t,/\s+(extends|implements)\s+/,t]},{ +match:[/class\s+/,t]}],scope:{2:"title.class",4:"title.class.inherited"}, +keywords:s};return{name:"X++",aliases:["x++"],keywords:s, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{ +className:"meta",begin:"#",end:"$"},r]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/bash.min.js b/src/app/resources/assets/highlight/es/languages/bash.min.js new file mode 100644 index 0000000..1a9ff76 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/bash.min.js @@ -0,0 +1,20 @@ +/*! `bash` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const s=e.regex,t={},a={ +begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]} +;Object.assign(t,{className:"variable",variants:[{ +begin:s.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const n={ +className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i={ +begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, +end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,t,n]};n.contains.push(c);const o={begin:/\$?\(\(/, +end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] +},r=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 +}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, +contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ +name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/, +keyword:["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"], +literal:["true","false"], +built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"] +},contains:[r,e.SHEBANG(),l,o,e.HASH_COMMENT_MODE,i,{match:/(\/[a-z._-]+)+/},c,{ +className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/basic.min.js b/src/app/resources/assets/highlight/es/languages/basic.min.js new file mode 100644 index 0000000..b89afd6 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/basic.min.js @@ -0,0 +1,9 @@ +/*! `basic` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return E=>({name:"BASIC",case_insensitive:!0, +illegal:"^.",keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_$%!#]*", +keyword:["ABS","ASC","AND","ATN","AUTO|0","BEEP","BLOAD|10","BSAVE|10","CALL","CALLS","CDBL","CHAIN","CHDIR","CHR$|10","CINT","CIRCLE","CLEAR","CLOSE","CLS","COLOR","COM","COMMON","CONT","COS","CSNG","CSRLIN","CVD","CVI","CVS","DATA","DATE$","DEFDBL","DEFINT","DEFSNG","DEFSTR","DEF|0","SEG","USR","DELETE","DIM","DRAW","EDIT","END","ENVIRON","ENVIRON$","EOF","EQV","ERASE","ERDEV","ERDEV$","ERL","ERR","ERROR","EXP","FIELD","FILES","FIX","FOR|0","FRE","GET","GOSUB|10","GOTO","HEX$","IF","THEN","ELSE|0","INKEY$","INP","INPUT","INPUT#","INPUT$","INSTR","IMP","INT","IOCTL","IOCTL$","KEY","ON","OFF","LIST","KILL","LEFT$","LEN","LET","LINE","LLIST","LOAD","LOC","LOCATE","LOF","LOG","LPRINT","USING","LSET","MERGE","MID$","MKDIR","MKD$","MKI$","MKS$","MOD","NAME","NEW","NEXT","NOISE","NOT","OCT$","ON","OR","PEN","PLAY","STRIG","OPEN","OPTION","BASE","OUT","PAINT","PALETTE","PCOPY","PEEK","PMAP","POINT","POKE","POS","PRINT","PRINT]","PSET","PRESET","PUT","RANDOMIZE","READ","REM","RENUM","RESET|0","RESTORE","RESUME","RETURN|0","RIGHT$","RMDIR","RND","RSET","RUN","SAVE","SCREEN","SGN","SHELL","SIN","SOUND","SPACE$","SPC","SQR","STEP","STICK","STOP","STR$","STRING$","SWAP","SYSTEM","TAB","TAN","TIME$","TIMER","TROFF","TRON","TO","USR","VAL","VARPTR","VARPTR$","VIEW","WAIT","WHILE","WEND","WIDTH","WINDOW","WRITE","XOR"] +},contains:[E.QUOTE_STRING_MODE,E.COMMENT("REM","$",{relevance:10 +}),E.COMMENT("'","$",{relevance:0}),{className:"symbol",begin:"^[0-9]+ ", +relevance:10},{className:"number",begin:"\\b\\d+(\\.\\d+)?([edED]\\d+)?[#!]?", +relevance:0},{className:"number",begin:"(&[hH][0-9a-fA-F]{1,4})"},{ +className:"number",begin:"(&[oO][0-7]{1,6})"}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/bnf.min.js b/src/app/resources/assets/highlight/es/languages/bnf.min.js new file mode 100644 index 0000000..a10a636 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/bnf.min.js @@ -0,0 +1,6 @@ +/*! `bnf` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return a=>({name:"Backus\u2013Naur Form", +contains:[{className:"attribute",begin://},{begin:/::=/,end:/$/, +contains:[{begin:// +},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE] +}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/brainfuck.min.js b/src/app/resources/assets/highlight/es/languages/brainfuck.min.js new file mode 100644 index 0000000..9ae6403 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/brainfuck.min.js @@ -0,0 +1,8 @@ +/*! `brainfuck` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a={className:"literal", +begin:/[+-]+/,relevance:0};return{name:"Brainfuck",aliases:["bf"], +contains:[e.COMMENT(/[^\[\]\.,\+\-<> \r\n]/,/[\[\]\.,\+\-<> \r\n]/,{contains:[{ +match:/[ ]+[^\[\]\.,\+\-<> \r\n]/,relevance:0}],returnEnd:!0,relevance:0}),{ +className:"title",begin:"[\\[\\]]",relevance:0},{className:"string", +begin:"[\\.,]",relevance:0},{begin:/(?=\+\+|--)/,contains:[a]},a]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/c.min.js b/src/app/resources/assets/highlight/es/languages/c.min.js new file mode 100644 index 0000000..c76e4b1 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/c.min.js @@ -0,0 +1,41 @@ +/*! `c` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}] +}),a="[a-zA-Z_]\\w*::",s="(decltype\\(auto\\)|"+n.optional(a)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",r={ +className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{ +match:/\batomic_[a-z]{3,6}\b/}]},i={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(i,{className:"string"}),{ +className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},c={ +className:"title",begin:n.optional(a)+e.IDENT_RE,relevance:0 +},d=n.optional(a)+e.IDENT_RE+"\\s*\\(",u={ +keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"], +type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"], +literal:"true false NULL", +built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr" +},m=[o,r,t,e.C_BLOCK_COMMENT_MODE,l,i],g={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:m.concat(["self"]),relevance:0}]),relevance:0},p={ +begin:"("+s+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", +keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[e.inherit(c,{ +className:"title.function"})],relevance:0},{relevance:0,match:/,/},{ +className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0, +contains:[t,e.C_BLOCK_COMMENT_MODE,i,l,r,{begin:/\(/,end:/\)/,keywords:u, +relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,i,l,r]}] +},r,t,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C",aliases:["h"],keywords:u, +disableAutodetect:!0,illegal:"=]/,contains:[{ +beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:o, +strings:i,keywords:u}}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/cal.min.js b/src/app/resources/assets/highlight/es/languages/cal.min.js new file mode 100644 index 0000000..2c991c5 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/cal.min.js @@ -0,0 +1,15 @@ +/*! `cal` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const r=e.regex,a=["div","mod","in","and","or","not","xor","asserterror","begin","case","do","downto","else","end","exit","for","local","if","of","repeat","then","to","until","while","with","var"],n=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{ +relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],t={className:"string", +begin:/'/,end:/'/,contains:[{begin:/''/}]},s={className:"string",begin:/(#\d+)+/ +},i={match:[/procedure/,/\s+/,/[a-zA-Z_][\w@]*/,/\s*/],scope:{1:"keyword", +3:"title.function"},contains:[{className:"params",begin:/\(/,end:/\)/, +keywords:a,contains:[t,s,e.NUMBER_MODE]},...n]},o={ +match:[/OBJECT/,/\s+/,r.either("Table","Form","Report","Dataport","Codeunit","XMLport","MenuSuite","Page","Query"),/\s+/,/\d+/,/\s+(?=[^\s])/,/.*/,/$/], +relevance:3,scope:{1:"keyword",3:"type",5:"number",7:"title"}};return{ +name:"C/AL",case_insensitive:!0,keywords:{keyword:a,literal:"false true"}, +illegal:/\/\*/,contains:[{match:/[\w]+(?=\=)/,scope:"attribute",relevance:0 +},t,s,{className:"number",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},{ +className:"string",begin:'"',end:'"'},e.NUMBER_MODE,o,i]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/capnproto.min.js b/src/app/resources/assets/highlight/es/languages/capnproto.min.js new file mode 100644 index 0000000..f6d4a0f --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/capnproto.min.js @@ -0,0 +1,11 @@ +/*! `capnproto` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return t=>{const n={variants:[{ +match:[/(struct|enum|interface)/,/\s+/,t.IDENT_RE]},{ +match:[/extends/,/\s*\(/,t.IDENT_RE,/\s*\)/]}],scope:{1:"keyword", +3:"title.class"}};return{name:"Cap\u2019n Proto",aliases:["capnp"],keywords:{ +keyword:["struct","enum","interface","union","group","import","using","const","annotation","extends","in","of","on","as","with","from","fixed"], +type:["Void","Bool","Int8","Int16","Int32","Int64","UInt8","UInt16","UInt32","UInt64","Float32","Float64","Text","Data","AnyPointer","AnyStruct","Capability","List"], +literal:["true","false"]}, +contains:[t.QUOTE_STRING_MODE,t.NUMBER_MODE,t.HASH_COMMENT_MODE,{ +className:"meta",begin:/@0x[\w\d]{16};/,illegal:/\n/},{className:"symbol", +begin:/@\d+\b/},n]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/ceylon.min.js b/src/app/resources/assets/highlight/es/languages/ceylon.min.js new file mode 100644 index 0000000..14944aa --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/ceylon.min.js @@ -0,0 +1,15 @@ +/*! `ceylon` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a=["assembly","module","package","import","alias","class","interface","object","given","value","assign","void","function","new","of","extends","satisfies","abstracts","in","out","return","break","continue","throw","assert","dynamic","if","else","switch","case","for","while","try","catch","finally","then","let","this","outer","super","is","exists","nonempty"],s={ +className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:a, +relevance:10},n=[{className:"string",begin:'"""',end:'"""',relevance:10},{ +className:"string",begin:'"',end:'"',contains:[s]},{className:"string", +begin:"'",end:"'"},{className:"number", +begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?", +relevance:0}];return s.contains=n,{name:"Ceylon",keywords:{ +keyword:a.concat(["shared","abstract","formal","default","actual","variable","late","native","deprecated","final","sealed","annotation","suppressWarnings","small"]), +meta:["doc","by","license","see","throws","tagged"]}, +illegal:"\\$[^01]|#[^0-9a-fA-F]", +contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),{ +className:"meta",begin:'@[a-z]\\w*(?::"[^"]*")?'}].concat(n)}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/clean.min.js b/src/app/resources/assets/highlight/es/languages/clean.min.js new file mode 100644 index 0000000..8a72990 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/clean.min.js @@ -0,0 +1,8 @@ +/*! `clean` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Clean", +aliases:["icl","dcl"],keywords:{ +keyword:["if","let","in","with","where","case","of","class","instance","otherwise","implementation","definition","system","module","from","import","qualified","as","special","code","inline","foreign","export","ccall","stdcall","generic","derive","infix","infixl","infixr"], +built_in:"Int Real Char Bool",literal:"True False"}, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{ +begin:"->|<-[|:]?|#!?|>>=|\\{\\||\\|\\}|:==|=:|<>"}]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/clojure-repl.min.js b/src/app/resources/assets/highlight/es/languages/clojure-repl.min.js new file mode 100644 index 0000000..d5da710 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/clojure-repl.min.js @@ -0,0 +1,4 @@ +/*! `clojure-repl` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return a=>({name:"Clojure REPL",contains:[{ +className:"meta.prompt",begin:/^([\w.-]+|\s*#_)?=>/,starts:{end:/$/, +subLanguage:"clojure"}}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/clojure.min.js b/src/app/resources/assets/highlight/es/languages/clojure.min.js new file mode 100644 index 0000000..6282df6 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/clojure.min.js @@ -0,0 +1,25 @@ +/*! `clojure` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const t="a-zA-Z_\\-!.?+*=<>&'",n="[#]?["+t+"]["+t+"0-9/;:$#]*",a="def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord",r={ +$pattern:n, +built_in:a+" cond apply if-not if-let if not not= =|0 <|0 >|0 <=|0 >=|0 ==|0 +|0 /|0 *|0 -|0 rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy first rest cons cast coll last butlast sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize" +},s={begin:n,relevance:0},o={scope:"number",relevance:0,variants:[{ +match:/[-+]?0[xX][0-9a-fA-F]+N?/},{match:/[-+]?0[0-7]+N?/},{ +match:/[-+]?[1-9][0-9]?[rR][0-9a-zA-Z]+N?/},{match:/[-+]?[0-9]+\/[0-9]+N?/},{ +match:/[-+]?[0-9]+((\.[0-9]*([eE][+-]?[0-9]+)?M?)|([eE][+-]?[0-9]+M?|M))/},{ +match:/[-+]?([1-9][0-9]*|0)N?/}]},c={scope:"character",variants:[{ +match:/\\o[0-3]?[0-7]{1,2}/},{match:/\\u[0-9a-fA-F]{4}/},{ +match:/\\(newline|space|tab|formfeed|backspace|return)/},{match:/\\\S/, +relevance:0}]},i={scope:"regex",begin:/#"/,end:/"/,contains:[e.BACKSLASH_ESCAPE] +},d=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),l={scope:"punctuation", +match:/,/,relevance:0},m=e.COMMENT(";","$",{relevance:0}),p={ +className:"literal",begin:/\b(true|false|nil)\b/},u={ +begin:"\\[|(#::?"+n+")?\\{",end:"[\\]\\}]",relevance:0},f={className:"symbol", +begin:"[:]{1,2}"+n},h={begin:"\\(",end:"\\)"},y={endsWithParent:!0,relevance:0 +},b={keywords:r,className:"name",begin:n,relevance:0,starts:y +},g=[l,h,c,i,d,m,f,u,o,p,s],v={beginKeywords:a,keywords:{$pattern:n,keyword:a}, +end:'(\\[|#|\\d|"|:|\\{|\\)|\\(|$)',contains:[{className:"title",begin:n, +relevance:0,excludeEnd:!0,endsParent:!0}].concat(g)} +;return h.contains=[v,b,y],y.contains=g,u.contains=g,{name:"Clojure", +aliases:["clj","edn"],illegal:/\S/,contains:[l,h,c,i,d,m,f,u,o,p]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/cmake.min.js b/src/app/resources/assets/highlight/es/languages/cmake.min.js new file mode 100644 index 0000000..664e90a --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/cmake.min.js @@ -0,0 +1,7 @@ +/*! `cmake` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"CMake", +aliases:["cmake.in"],case_insensitive:!0,keywords:{ +keyword:"break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined" +},contains:[{className:"variable",begin:/\$\{/,end:/\}/ +},e.COMMENT(/#\[\[/,/]]/),e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE] +})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/coffeescript.min.js b/src/app/resources/assets/highlight/es/languages/coffeescript.min.js new file mode 100644 index 0000000..86883a4 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/coffeescript.min.js @@ -0,0 +1,28 @@ +/*! `coffeescript` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict" +;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],r=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) +;return a=>{const t={ +keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((i=["var","const","let","function","static"], +e=>!i.includes(e))),literal:n.concat(["yes","no","on","off"]), +built_in:r.concat(["npm","print"])};var i;const s="[A-Za-z$_][0-9A-Za-z$_]*",o={ +className:"subst",begin:/#\{/,end:/\}/,keywords:t +},c=[a.BINARY_NUMBER_MODE,a.inherit(a.C_NUMBER_MODE,{starts:{end:"(\\s*/)?", +relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/, +contains:[a.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[a.BACKSLASH_ESCAPE] +},{begin:/"""/,end:/"""/,contains:[a.BACKSLASH_ESCAPE,o]},{begin:/"/,end:/"/, +contains:[a.BACKSLASH_ESCAPE,o]}]},{className:"regexp",variants:[{begin:"///", +end:"///",contains:[o,a.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)", +relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+s +},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{ +begin:"```",end:"```"},{begin:"`",end:"`"}]}];o.contains=c +;const l=a.inherit(a.TITLE_MODE,{begin:s}),d="(\\(.*\\)\\s*)?\\B[-=]>",u={ +className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/, +end:/\)/,keywords:t,contains:["self"].concat(c)}]},g={variants:[{ +match:[/class\s+/,s,/\s+extends\s+/,s]},{match:[/class\s+/,s]}],scope:{ +2:"title.class",4:"title.class.inherited"},keywords:t};return{ +name:"CoffeeScript",aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/, +contains:[...c,a.COMMENT("###","###"),a.HASH_COMMENT_MODE,{className:"function", +begin:"^\\s*"+s+"\\s*=\\s*"+d,end:"[-=]>",returnBegin:!0,contains:[l,u]},{ +begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:d, +end:"[-=]>",returnBegin:!0,contains:[u]}]},g,{begin:s+":",end:":", +returnBegin:!0,returnEnd:!0,relevance:0}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/coq.min.js b/src/app/resources/assets/highlight/es/languages/coq.min.js new file mode 100644 index 0000000..652c328 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/coq.min.js @@ -0,0 +1,7 @@ +/*! `coq` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Coq",keywords:{ +keyword:["_|0","as","at","cofix","else","end","exists","exists2","fix","for","forall","fun","if","IF","in","let","match","mod","Prop","return","Set","then","Type","using","where","with","Abort","About","Add","Admit","Admitted","All","Arguments","Assumptions","Axiom","Back","BackTo","Backtrack","Bind","Blacklist","Canonical","Cd","Check","Class","Classes","Close","Coercion","Coercions","CoFixpoint","CoInductive","Collection","Combined","Compute","Conjecture","Conjectures","Constant","constr","Constraint","Constructors","Context","Corollary","CreateHintDb","Cut","Declare","Defined","Definition","Delimit","Dependencies","Dependent","Derive","Drop","eauto","End","Equality","Eval","Example","Existential","Existentials","Existing","Export","exporting","Extern","Extract","Extraction","Fact","Field","Fields","File","Fixpoint","Focus","for","From","Function","Functional","Generalizable","Global","Goal","Grab","Grammar","Graph","Guarded","Heap","Hint","HintDb","Hints","Hypotheses","Hypothesis","ident","Identity","If","Immediate","Implicit","Import","Include","Inductive","Infix","Info","Initial","Inline","Inspect","Instance","Instances","Intro","Intros","Inversion","Inversion_clear","Language","Left","Lemma","Let","Libraries","Library","Load","LoadPath","Local","Locate","Ltac","ML","Mode","Module","Modules","Monomorphic","Morphism","Next","NoInline","Notation","Obligation","Obligations","Opaque","Open","Optimize","Options","Parameter","Parameters","Parametric","Path","Paths","pattern","Polymorphic","Preterm","Print","Printing","Program","Projections","Proof","Proposition","Pwd","Qed","Quit","Rec","Record","Recursive","Redirect","Relation","Remark","Remove","Require","Reserved","Reset","Resolve","Restart","Rewrite","Right","Ring","Rings","Save","Scheme","Scope","Scopes","Script","Search","SearchAbout","SearchHead","SearchPattern","SearchRewrite","Section","Separate","Set","Setoid","Show","Solve","Sorted","Step","Strategies","Strategy","Structure","SubClass","Table","Tables","Tactic","Term","Test","Theorem","Time","Timeout","Transparent","Type","Typeclasses","Types","Undelimit","Undo","Unfocus","Unfocused","Unfold","Universe","Universes","Unset","Unshelve","using","Variable","Variables","Variant","Verbose","Visibility","where","with"], +built_in:["abstract","absurd","admit","after","apply","as","assert","assumption","at","auto","autorewrite","autounfold","before","bottom","btauto","by","case","case_eq","cbn","cbv","change","classical_left","classical_right","clear","clearbody","cofix","compare","compute","congruence","constr_eq","constructor","contradict","contradiction","cut","cutrewrite","cycle","decide","decompose","dependent","destruct","destruction","dintuition","discriminate","discrR","do","double","dtauto","eapply","eassumption","eauto","ecase","econstructor","edestruct","ediscriminate","eelim","eexact","eexists","einduction","einjection","eleft","elim","elimtype","enough","equality","erewrite","eright","esimplify_eq","esplit","evar","exact","exactly_once","exfalso","exists","f_equal","fail","field","field_simplify","field_simplify_eq","first","firstorder","fix","fold","fourier","functional","generalize","generalizing","gfail","give_up","has_evar","hnf","idtac","in","induction","injection","instantiate","intro","intro_pattern","intros","intuition","inversion","inversion_clear","is_evar","is_var","lapply","lazy","left","lia","lra","move","native_compute","nia","nsatz","omega","once","pattern","pose","progress","proof","psatz","quote","record","red","refine","reflexivity","remember","rename","repeat","replace","revert","revgoals","rewrite","rewrite_strat","right","ring","ring_simplify","rtauto","set","setoid_reflexivity","setoid_replace","setoid_rewrite","setoid_symmetry","setoid_transitivity","shelve","shelve_unifiable","simpl","simple","simplify_eq","solve","specialize","split","split_Rabs","split_Rmult","stepl","stepr","subst","sum","swap","symmetry","tactic","tauto","time","timeout","top","transitivity","trivial","try","tryif","unfold","unify","until","using","vm_compute","with"] +},contains:[e.QUOTE_STRING_MODE,e.COMMENT("\\(\\*","\\*\\)"),e.C_NUMBER_MODE,{ +className:"type",excludeBegin:!0,begin:"\\|\\s*",end:"\\w+"},{begin:/[-=]>/}]}) +})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/cos.min.js b/src/app/resources/assets/highlight/es/languages/cos.min.js new file mode 100644 index 0000000..9307577 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/cos.min.js @@ -0,0 +1,15 @@ +/*! `cos` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Cach\xe9 Object Script", +case_insensitive:!0,aliases:["cls"], +keywords:"property parameter class classmethod clientmethod extends as break catch close continue do d|0 else elseif for goto halt hang h|0 if job j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 tcommit throw trollback try tstart use view while write w|0 xecute x|0 zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit zsync ascii", +contains:[{className:"number",begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)",relevance:0},{ +className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""', +relevance:0}]}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{ +className:"comment",begin:/;/,end:"$",relevance:0},{className:"built_in", +begin:/(?:\$\$?|\.\.)\^?[a-zA-Z]+/},{className:"built_in", +begin:/\$\$\$[a-zA-Z]+/},{className:"built_in",begin:/%[a-z]+(?:\.[a-z]+)*/},{ +className:"symbol",begin:/\^%?[a-zA-Z][\w]*/},{className:"keyword", +begin:/##class|##super|#define|#dim/},{begin:/&sql\(/,end:/\)/,excludeBegin:!0, +excludeEnd:!0,subLanguage:"sql"},{begin:/&(js|jscript|javascript)/, +excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"},{begin:/&html<\s*\s*>/,subLanguage:"xml"}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/cpp.min.js b/src/app/resources/assets/highlight/es/languages/cpp.min.js new file mode 100644 index 0000000..c052732 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/cpp.min.js @@ -0,0 +1,46 @@ +/*! `cpp` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const t=e.regex,a=e.COMMENT("//","$",{contains:[{begin:/\\\n/}] +}),n="[a-zA-Z_]\\w*::",r="(?!struct)(decltype\\(auto\\)|"+t.optional(n)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",i={ +className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{ +className:"string",begin:/<.*?>/},a,e.C_BLOCK_COMMENT_MODE]},l={ +className:"title",begin:t.optional(n)+e.IDENT_RE,relevance:0 +},d=t.optional(n)+e.IDENT_RE+"\\s*\\(",u={ +type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"], +keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"], +literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"], +_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"] +},p={className:"function.dispatch",relevance:0,keywords:{ +_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"] +}, +begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/)) +},_=[p,o,i,a,e.C_BLOCK_COMMENT_MODE,c,s],m={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:_.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:_.concat(["self"]),relevance:0}]),relevance:0},g={className:"function", +begin:"("+r+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", +keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[l],relevance:0},{ +begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,c]},{ +relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u, +relevance:0,contains:[a,e.C_BLOCK_COMMENT_MODE,s,c,i,{begin:/\(/,end:/\)/, +keywords:u,relevance:0,contains:["self",a,e.C_BLOCK_COMMENT_MODE,s,c,i]}] +},i,a,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C++", +aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",i]},{begin:e.IDENT_RE+"::",keywords:u},{ +match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/], +className:{1:"keyword",3:"title.class"}}])}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/crmsh.min.js b/src/app/resources/assets/highlight/es/languages/crmsh.min.js new file mode 100644 index 0000000..2df6581 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/crmsh.min.js @@ -0,0 +1,19 @@ +/*! `crmsh` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const t="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml" +;return{name:"crmsh",aliases:["crm","pcmk"],case_insensitive:!0,keywords:{ +keyword:"params meta operations op rule attributes utilization read write deny defined not_defined in_range date spec in ref reference attribute type xpath version and or lt gt tag lte gte eq ne \\ number string", +literal:"Master Started Slave Stopped start promote demote stop monitor true false" +},contains:[e.HASH_COMMENT_MODE,{beginKeywords:"node",starts:{ +end:"\\s*([\\w_-]+:)?",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*"}} +},{beginKeywords:"primitive rsc_template",starts:{className:"title", +end:"\\s*[\\$\\w_][\\w_-]*",starts:{end:"\\s*@?[\\w_][\\w_\\.:-]*"}}},{ +begin:"\\b("+t.split(" ").join("|")+")\\s+",keywords:t,starts:{ +className:"title",end:"[\\$\\w_][\\w_-]*"}},{ +beginKeywords:"property rsc_defaults op_defaults",starts:{className:"title", +end:"\\s*([\\w_-]+:)?"}},e.QUOTE_STRING_MODE,{className:"meta", +begin:"(ocf|systemd|service|lsb):[\\w_:-]+",relevance:0},{className:"number", +begin:"\\b\\d+(\\.\\d+)?(ms|s|h|m)?",relevance:0},{className:"literal", +begin:"[-]?(infinity|inf)",relevance:0},{className:"attr", +begin:/([A-Za-z$_#][\w_-]+)=/,relevance:0},{className:"tag",begin:"",relevance:0}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/crystal.min.js b/src/app/resources/assets/highlight/es/languages/crystal.min.js new file mode 100644 index 0000000..ef0e076 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/crystal.min.js @@ -0,0 +1,48 @@ +/*! `crystal` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n="(_?[ui](8|16|32|64|128))?",i="[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?",a="[A-Za-z_]\\w*(::\\w+)*(\\?|!)?",s={ +$pattern:"[a-zA-Z_]\\w*[!?=]?", +keyword:"abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield __DIR__ __END_LINE__ __FILE__ __LINE__", +literal:"false nil true"},t={className:"subst",begin:/#\{/,end:/\}/,keywords:s +},r={className:"template-variable",variants:[{begin:"\\{\\{",end:"\\}\\}"},{ +begin:"\\{%",end:"%\\}"}],keywords:s};function c(e,n){const i=[{begin:e,end:n}] +;return i[0].contains=i,i}const l={className:"string", +contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ +},{begin:/`/,end:/`/},{begin:"%[Qwi]?\\(",end:"\\)",contains:c("\\(","\\)")},{ +begin:"%[Qwi]?\\[",end:"\\]",contains:c("\\[","\\]")},{begin:"%[Qwi]?\\{", +end:/\}/,contains:c(/\{/,/\}/)},{begin:"%[Qwi]?<",end:">",contains:c("<",">")},{ +begin:"%[Qwi]?\\|",end:"\\|"},{begin:/<<-\w+$/,end:/^\s*\w+$/}],relevance:0},b={ +className:"string",variants:[{begin:"%q\\(",end:"\\)",contains:c("\\(","\\)")},{ +begin:"%q\\[",end:"\\]",contains:c("\\[","\\]")},{begin:"%q\\{",end:/\}/, +contains:c(/\{/,/\}/)},{begin:"%q<",end:">",contains:c("<",">")},{begin:"%q\\|", +end:"\\|"},{begin:/<<-'\w+'$/,end:/^\s*\w+$/}],relevance:0},o={ +begin:"(?!%\\})("+e.RE_STARTERS_RE+"|\\n|\\b(case|if|select|unless|until|when|while)\\b)\\s*", +keywords:"case if select unless until when while",contains:[{className:"regexp", +contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:"//[a-z]*",relevance:0},{ +begin:"/(?!\\/)",end:"/[a-z]*"}]}],relevance:0},g=[r,l,b,{className:"regexp", +contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:"%r\\(",end:"\\)", +contains:c("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:c("\\[","\\]")},{ +begin:"%r\\{",end:/\}/,contains:c(/\{/,/\}/)},{begin:"%r<",end:">", +contains:c("<",">")},{begin:"%r\\|",end:"\\|"}],relevance:0},o,{ +className:"meta",begin:"@\\[",end:"\\]", +contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"string"})]},{ +className:"variable", +begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])" +},e.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct", +end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{ +begin:a}),{begin:"<"}]},{className:"class",beginKeywords:"lib enum union", +end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{ +begin:a})]},{beginKeywords:"annotation",end:"$|;",illegal:/=/, +contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:a})],relevance:2},{ +className:"function",beginKeywords:"def",end:/\B\b/, +contains:[e.inherit(e.TITLE_MODE,{begin:i,endsParent:!0})]},{ +className:"function",beginKeywords:"fun macro",end:/\B\b/, +contains:[e.inherit(e.TITLE_MODE,{begin:i,endsParent:!0})],relevance:2},{ +className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{ +className:"symbol",begin:":",contains:[l,{begin:i}],relevance:0},{ +className:"number",variants:[{begin:"\\b0b([01_]+)"+n},{begin:"\\b0o([0-7_]+)"+n +},{begin:"\\b0x([A-Fa-f0-9_]+)"+n},{ +begin:"\\b([1-9][0-9_]*[0-9]|[0-9])(\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?(_?f(32|64))?(?!_)" +},{begin:"\\b([1-9][0-9_]*|0)"+n}],relevance:0}] +;return t.contains=g,r.contains=g.slice(1),{name:"Crystal",aliases:["cr"], +keywords:s,contains:g}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/csharp.min.js b/src/app/resources/assets/highlight/es/languages/csharp.min.js new file mode 100644 index 0000000..02d071c --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/csharp.min.js @@ -0,0 +1,47 @@ +/*! `csharp` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n={ +keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]), +built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"], +literal:["default","false","null","true"]},a=e.inherit(e.TITLE_MODE,{ +begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{ +begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}] +},t=e.inherit(s,{illegal:/\n/}),r={className:"subst",begin:/\{/,end:/\}/, +keywords:n},l=e.inherit(r,{illegal:/\n/}),c={className:"string",begin:/\$"/, +end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/ +},e.BACKSLASH_ESCAPE,l]},o={className:"string",begin:/\$@"/,end:'"',contains:[{ +begin:/\{\{/},{begin:/\}\}/},{begin:'""'},r]},d=e.inherit(o,{illegal:/\n/, +contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]}) +;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE], +l.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{ +illegal:/\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},a] +},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={ +begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"], +keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0, +contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{ +begin:"\x3c!--|--\x3e"},{begin:""}]}] +}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#", +end:"$",keywords:{ +keyword:"if else elif endif define undef warning error line region endregion pragma checksum" +}},g,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/, +illegal:/[^\s:,]/,contains:[{beginKeywords:"where class" +},a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace", +relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta", +begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{ +className:"string",begin:/"/,end:/"/}]},{ +beginKeywords:"new return throw await else",relevance:0},{className:"function", +begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, +end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{ +beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial", +relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, +contains:[e.TITLE_MODE,E],relevance:0},{match:/\(\)/},{className:"params", +begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0, +contains:[g,i,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/csp.min.js b/src/app/resources/assets/highlight/es/languages/csp.min.js new file mode 100644 index 0000000..1cc36a8 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/csp.min.js @@ -0,0 +1,6 @@ +/*! `csp` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return s=>({name:"CSP",case_insensitive:!1, +keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_-]*", +keyword:["base-uri","child-src","connect-src","default-src","font-src","form-action","frame-ancestors","frame-src","img-src","manifest-src","media-src","object-src","plugin-types","report-uri","sandbox","script-src","style-src","trusted-types","unsafe-hashes","worker-src"] +},contains:[{className:"string",begin:"'",end:"'"},{className:"attribute", +begin:"^Content",end:":",excludeEnd:!0}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/css.min.js b/src/app/resources/assets/highlight/es/languages/css.min.js new file mode 100644 index 0000000..9099b69 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/css.min.js @@ -0,0 +1,31 @@ +/*! `css` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],r=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],t=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse() +;return n=>{const a=n.regex,l=(e=>({IMPORTANT:{scope:"meta",begin:"!important"}, +BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number", +begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{ +className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{ +scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/} +}))(n),s=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS", +case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"}, +classNameAliases:{keyframePosition:"selector-tag"},contains:[l.BLOCK_COMMENT,{ +begin:/-(webkit|moz|ms|o)-(?=[a-z])/},l.CSS_NUMBER_MODE,{ +className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{ +className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 +},l.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ +begin:":("+i.join("|")+")"},{begin:":(:)?("+t.join("|")+")"}]},l.CSS_VARIABLE,{ +className:"attribute",begin:"\\b("+o.join("|")+")\\b"},{begin:/:/,end:/[;}{]/, +contains:[l.BLOCK_COMMENT,l.HEXCOLOR,l.IMPORTANT,l.CSS_NUMBER_MODE,...s,{ +begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" +},contains:[...s,{className:"string",begin:/[^)]/,endsWithParent:!0, +excludeEnd:!0}]},l.FUNCTION_DISPATCH]},{begin:a.lookahead(/@/),end:"[{;]", +relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/ +},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{ +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:r.join(" ")},contains:[{ +begin:/[a-z-]+(?=:)/,className:"attribute"},...s,l.CSS_NUMBER_MODE]}]},{ +className:"selector-tag",begin:"\\b("+e.join("|")+")\\b"}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/d.min.js b/src/app/resources/assets/highlight/es/languages/d.min.js new file mode 100644 index 0000000..dee4f7a --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/d.min.js @@ -0,0 +1,20 @@ +/*! `d` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a={ +$pattern:e.UNDERSCORE_IDENT_RE, +keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__", +built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring", +literal:"false null true" +},d="((0|[1-9][\\d_]*)|0[bB][01_]+|0[xX]([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))",t="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",n={ +className:"number",begin:"\\b"+d+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},r={ +className:"number", +begin:"\\b(((0[xX](([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)\\.([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)|\\.?([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))[pP][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))|((0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(\\.\\d*|([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)))|\\d+\\.(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)|\\.(0|[1-9][\\d_]*)([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))?))([fF]|L|i|[fF]i|Li)?|"+d+"(i|[fF]i|Li))", +relevance:0},_={className:"string",begin:"'("+t+"|.)",end:"'",illegal:"."},i={ +className:"string",begin:'"',contains:[{begin:t,relevance:0}],end:'"[cwd]?' +},s=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{ +name:"D",keywords:a,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,{ +className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},i,{ +className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},{className:"string", +begin:"`",end:"`[cwd]?"},{className:"string",begin:'q"\\{',end:'\\}"'},r,n,_,{ +className:"meta",begin:"^#!",end:"$",relevance:5},{className:"meta", +begin:"#(line)",end:"$",relevance:5},{className:"keyword", +begin:"@[a-zA-Z_][a-zA-Z_\\d]*"}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/dart.min.js b/src/app/resources/assets/highlight/es/languages/dart.min.js new file mode 100644 index 0000000..ba0f7ce --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/dart.min.js @@ -0,0 +1,22 @@ +/*! `dart` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n={className:"subst", +variants:[{begin:"\\$[A-Za-z0-9_]+"}]},a={className:"subst",variants:[{ +begin:/\$\{/,end:/\}/}],keywords:"true false null this is new super"},t={ +className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""',end:'"""'},{ +begin:"r'",end:"'",illegal:"\\n"},{begin:'r"',end:'"',illegal:"\\n"},{ +begin:"'''",end:"'''",contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:'"""',end:'"""', +contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:"'",end:"'",illegal:"\\n", +contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:'"',end:'"',illegal:"\\n", +contains:[e.BACKSLASH_ESCAPE,n,a]}]};a.contains=[e.C_NUMBER_MODE,t] +;const i=["Comparable","DateTime","Duration","Function","Iterable","Iterator","List","Map","Match","Object","Pattern","RegExp","Set","Stopwatch","String","StringBuffer","StringSink","Symbol","Type","Uri","bool","double","int","num","Element","ElementList"],r=i.map((e=>e+"?")) +;return{name:"Dart",keywords:{ +keyword:["abstract","as","assert","async","await","break","case","catch","class","const","continue","covariant","default","deferred","do","dynamic","else","enum","export","extends","extension","external","factory","false","final","finally","for","Function","get","hide","if","implements","import","in","inferface","is","late","library","mixin","new","null","on","operator","part","required","rethrow","return","set","show","static","super","switch","sync","this","throw","true","try","typedef","var","void","while","with","yield"], +built_in:i.concat(r).concat(["Never","Null","dynamic","print","document","querySelector","querySelectorAll","window"]), +$pattern:/[A-Za-z][A-Za-z0-9_]*\??/}, +contains:[t,e.COMMENT(/\/\*\*(?!\/)/,/\*\//,{subLanguage:"markdown",relevance:0 +}),e.COMMENT(/\/{3,} ?/,/$/,{contains:[{subLanguage:"markdown",begin:".", +end:"$",relevance:0}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{ +className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0, +contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE] +},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{begin:"=>"}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/delphi.min.js b/src/app/resources/assets/highlight/es/languages/delphi.min.js new file mode 100644 index 0000000..4548a2b --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/delphi.min.js @@ -0,0 +1,17 @@ +/*! `delphi` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const r=["exports","register","file","shl","array","record","property","for","mod","while","set","ally","label","uses","raise","not","stored","class","safecall","var","interface","or","private","static","exit","index","inherited","to","else","stdcall","override","shr","asm","far","resourcestring","finalization","packed","virtual","out","and","protected","library","do","xorwrite","goto","near","function","end","div","overload","object","unit","begin","string","on","inline","repeat","until","destructor","write","message","program","with","read","initialization","except","default","nil","if","case","cdecl","in","downto","threadvar","of","try","pascal","const","external","constructor","type","public","then","implementation","finally","published","procedure","absolute","reintroduce","operator","as","is","abstract","alias","assembler","bitpacked","break","continue","cppdecl","cvar","enumerator","experimental","platform","deprecated","unimplemented","dynamic","export","far16","forward","generic","helper","implements","interrupt","iochecks","local","name","nodefault","noreturn","nostackframe","oldfpccall","otherwise","saveregisters","softfloat","specialize","strict","unaligned","varargs"],a=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{ +relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],t={className:"meta", +variants:[{begin:/\{\$/,end:/\}/},{begin:/\(\*\$/,end:/\*\)/}]},n={ +className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},s={ +className:"string",begin:/(#\d+)+/},i={begin:e.IDENT_RE+"\\s*=\\s*class\\s*\\(", +returnBegin:!0,contains:[e.TITLE_MODE]},o={className:"function", +beginKeywords:"function constructor destructor procedure",end:/[:;]/, +keywords:"function constructor|10 destructor|10 procedure|10", +contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:r, +contains:[n,s,t].concat(a)},t].concat(a)};return{name:"Delphi", +aliases:["dpr","dfm","pas","pascal"],case_insensitive:!0,keywords:r, +illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[n,s,e.NUMBER_MODE,{ +className:"number",relevance:0,variants:[{begin:"\\$[0-9A-Fa-f]+"},{ +begin:"&[0-7]+"},{begin:"%[01]+"}]},i,o,t].concat(a)}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/diff.min.js b/src/app/resources/assets/highlight/es/languages/diff.min.js new file mode 100644 index 0000000..ee63e96 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/diff.min.js @@ -0,0 +1,9 @@ +/*! `diff` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a=e.regex;return{ +name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10, +match:a.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/) +},{className:"comment",variants:[{ +begin:a.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/), +end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{ +className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/, +end:/$/}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/django.min.js b/src/app/resources/assets/highlight/es/languages/django.min.js new file mode 100644 index 0000000..2c4d453 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/django.min.js @@ -0,0 +1,13 @@ +/*! `django` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a={begin:/\|[A-Za-z]+:?/, +keywords:{ +name:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone" +},contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE]};return{name:"Django", +aliases:["jinja"],case_insensitive:!0,subLanguage:"xml", +contains:[e.COMMENT(/\{%\s*comment\s*%\}/,/\{%\s*endcomment\s*%\}/),e.COMMENT(/\{#/,/#\}/),{ +className:"template-tag",begin:/\{%/,end:/%\}/,contains:[{className:"name", +begin:/\w+/,keywords:{ +name:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim" +},starts:{endsWithParent:!0,keywords:"in by as",contains:[a],relevance:0}}]},{ +className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[a]}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/dns.min.js b/src/app/resources/assets/highlight/es/languages/dns.min.js new file mode 100644 index 0000000..a4648bf --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/dns.min.js @@ -0,0 +1,11 @@ +/*! `dns` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return d=>({name:"DNS Zone", +aliases:["bind","zone"], +keywords:["IN","A","AAAA","AFSDB","APL","CAA","CDNSKEY","CDS","CERT","CNAME","DHCID","DLV","DNAME","DNSKEY","DS","HIP","IPSECKEY","KEY","KX","LOC","MX","NAPTR","NS","NSEC","NSEC3","NSEC3PARAM","PTR","RRSIG","RP","SIG","SOA","SRV","SSHFP","TA","TKEY","TLSA","TSIG","TXT"], +contains:[d.COMMENT(";","$",{relevance:0}),{className:"meta", +begin:/^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/},{className:"number", +begin:"((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b" +},{className:"number", +begin:"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b" +},d.inherit(d.NUMBER_MODE,{begin:/\b\d+[dhwm]?/})]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/dockerfile.min.js b/src/app/resources/assets/highlight/es/languages/dockerfile.min.js new file mode 100644 index 0000000..d6c5ee4 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/dockerfile.min.js @@ -0,0 +1,8 @@ +/*! `dockerfile` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Dockerfile", +aliases:["docker"],case_insensitive:!0, +keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"], +contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{ +beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell", +starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"{"use strict";return e=>{ +const r=e.COMMENT(/^\s*@?rem\b/,/$/,{relevance:10});return{ +name:"Batch file (DOS)",aliases:["bat","cmd"],case_insensitive:!0, +illegal:/\/\*/,keywords:{ +keyword:["if","else","goto","for","in","do","call","exit","not","exist","errorlevel","defined","equ","neq","lss","leq","gtr","geq"], +built_in:["prn","nul","lpt3","lpt2","lpt1","con","com4","com3","com2","com1","aux","shift","cd","dir","echo","setlocal","endlocal","set","pause","copy","append","assoc","at","attrib","break","cacls","cd","chcp","chdir","chkdsk","chkntfs","cls","cmd","color","comp","compact","convert","date","dir","diskcomp","diskcopy","doskey","erase","fs","find","findstr","format","ftype","graftabl","help","keyb","label","md","mkdir","mode","more","move","path","pause","print","popd","pushd","promt","rd","recover","rem","rename","replace","restore","rmdir","shift","sort","start","subst","time","title","tree","type","ver","verify","vol","ping","net","ipconfig","taskkill","xcopy","ren","del"] +},contains:[{className:"variable",begin:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{ +className:"function",begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)", +end:"goto:eof",contains:[e.inherit(e.TITLE_MODE,{ +begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),r]},{ +className:"number",begin:"\\b\\d+",relevance:0},r]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/dsconfig.min.js b/src/app/resources/assets/highlight/es/languages/dsconfig.min.js new file mode 100644 index 0000000..e3589fb --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/dsconfig.min.js @@ -0,0 +1,9 @@ +/*! `dsconfig` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({keywords:"dsconfig",contains:[{ +className:"keyword",begin:"^dsconfig",end:/\s/,excludeEnd:!0,relevance:10},{ +className:"built_in",begin:/(list|create|get|set|delete)-(\w+)/,end:/\s/, +excludeEnd:!0,illegal:"!@#$%^&*()",relevance:10},{className:"built_in", +begin:/--(\w+)/,end:/\s/,excludeEnd:!0},{className:"string",begin:/"/,end:/"/},{ +className:"string",begin:/'/,end:/'/},{className:"string",begin:/[\w\-?]+:\w+/, +end:/\W/,relevance:0},{className:"string",begin:/\w+(\-\w+)*/,end:/(?=\W)/, +relevance:0},e.HASH_COMMENT_MODE]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/dts.min.js b/src/app/resources/assets/highlight/es/languages/dts.min.js new file mode 100644 index 0000000..bbf8e89 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/dts.min.js @@ -0,0 +1,22 @@ +/*! `dts` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a={className:"string", +variants:[e.inherit(e.QUOTE_STRING_MODE,{begin:'((u8?|U)|L)?"'}),{ +begin:'(u8?|U)?R"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{begin:"'\\\\?.", +end:"'",illegal:"."}]},n={className:"number",variants:[{ +begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},{begin:e.C_NUMBER_RE}], +relevance:0},s={className:"meta",begin:"#",end:"$",keywords:{ +keyword:"if else elif endif define undef ifdef ifndef"},contains:[{begin:/\\\n/, +relevance:0},{beginKeywords:"include",end:"$",keywords:{keyword:"include"}, +contains:[e.inherit(a,{className:"string"}),{className:"string",begin:"<", +end:">",illegal:"\\n"}]},a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},i={ +className:"variable",begin:/&[a-z\d_]*\b/};return{name:"Device Tree",contains:[{ +className:"title.class",begin:/^\/(?=\s*\{)/,relevance:10},i,{ +className:"keyword",begin:"/[a-z][a-z\\d-]*/"},{className:"symbol", +begin:"^\\s*[a-zA-Z_][a-zA-Z\\d_]*:"},{className:"title.class", +begin:/[a-zA-Z_][a-zA-Z\d_@-]*(?=\s\{)/,relevance:.2},{relevance:0, +match:[/[a-z][a-z-,]+/,/\s*/,/=/],scope:{1:"attr",3:"operator"}},{ +match:/[a-z][a-z-,]+(?=;)/,relevance:0,scope:"attr"},{className:"params", +relevance:0,begin:"<",end:">",contains:[n,i] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,a,s,{scope:"punctuation", +relevance:0,match:/\};|[;{}]/},{begin:e.IDENT_RE+"::",keywords:""}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/dust.min.js b/src/app/resources/assets/highlight/es/languages/dust.min.js new file mode 100644 index 0000000..4a2c0c5 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/dust.min.js @@ -0,0 +1,8 @@ +/*! `dust` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Dust",aliases:["dst"], +case_insensitive:!0,subLanguage:"xml",contains:[{className:"template-tag", +begin:/\{[#\/]/,end:/\}/,illegal:/;/,contains:[{className:"name", +begin:/[a-zA-Z\.-]+/,starts:{endsWithParent:!0,relevance:0, +contains:[e.QUOTE_STRING_MODE]}}]},{className:"template-variable",begin:/\{/, +end:/\}/,illegal:/;/,keywords:"if eq ne lt lte gt gte select default math sep"}] +})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/ebnf.min.js b/src/app/resources/assets/highlight/es/languages/ebnf.min.js new file mode 100644 index 0000000..b4bd8b4 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/ebnf.min.js @@ -0,0 +1,7 @@ +/*! `ebnf` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return a=>{const e=a.COMMENT(/\(\*/,/\*\)/) +;return{name:"Extended Backus-Naur Form",illegal:/\S/,contains:[e,{ +className:"attribute",begin:/^[ ]*[a-zA-Z]+([\s_-]+[a-zA-Z]+)*/},{begin:/=/, +end:/[.;]/,contains:[e,{className:"meta",begin:/\?.*\?/},{className:"string", +variants:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{begin:"`",end:"`"}]}]}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/elixir.min.js b/src/app/resources/assets/highlight/es/languages/elixir.min.js new file mode 100644 index 0000000..aa351ff --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/elixir.min.js @@ -0,0 +1,34 @@ +/*! `elixir` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n=e.regex,a="[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?",i={$pattern:a, +keyword:["after","alias","and","case","catch","cond","defstruct","defguard","do","else","end","fn","for","if","import","in","not","or","quote","raise","receive","require","reraise","rescue","try","unless","unquote","unquote_splicing","use","when","with|0"], +literal:["false","nil","true"]},s={className:"subst",begin:/#\{/,end:/\}/, +keywords:i},c={match:/\\[\s\S]/,scope:"char.escape",relevance:0},r=[{begin:/"/, +end:/"/},{begin:/'/,end:/'/},{begin:/\//,end:/\//},{begin:/\|/,end:/\|/},{ +begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/},{begin:/\{/,end:/\}/},{begin://}],t=e=>({scope:"char.escape",begin:n.concat(/\\/,e),relevance:0}),d={ +className:"string",begin:"~[a-z](?=[/|([{<\"'])", +contains:r.map((n=>e.inherit(n,{contains:[t(n.end),c,s]})))},o={ +className:"string",begin:"~[A-Z](?=[/|([{<\"'])", +contains:r.map((n=>e.inherit(n,{contains:[t(n.end)]})))},b={className:"regex", +variants:[{begin:"~r(?=[/|([{<\"'])",contains:r.map((a=>e.inherit(a,{ +end:n.concat(a.end,/[uismxfU]{0,7}/),contains:[t(a.end),c,s]})))},{ +begin:"~R(?=[/|([{<\"'])",contains:r.map((a=>e.inherit(a,{ +end:n.concat(a.end,/[uismxfU]{0,7}/),contains:[t(a.end)]})))}]},l={ +className:"string",contains:[e.BACKSLASH_ESCAPE,s],variants:[{begin:/"""/, +end:/"""/},{begin:/'''/,end:/'''/},{begin:/~S"""/,end:/"""/,contains:[]},{ +begin:/~S"/,end:/"/,contains:[]},{begin:/~S'''/,end:/'''/,contains:[]},{ +begin:/~S'/,end:/'/,contains:[]},{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},g={ +className:"function",beginKeywords:"def defp defmacro defmacrop",end:/\B\b/, +contains:[e.inherit(e.TITLE_MODE,{begin:a,endsParent:!0})]},m=e.inherit(g,{ +className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord", +end:/\bdo\b|$|;/}),u=[l,b,o,d,e.HASH_COMMENT_MODE,m,g,{begin:"::"},{ +className:"symbol",begin:":(?![\\s:])",contains:[l,{ +begin:"[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?" +}],relevance:0},{className:"symbol",begin:a+":(?!:)",relevance:0},{ +className:"title.class",begin:/(\b[A-Z][a-zA-Z0-9_]+)/,relevance:0},{ +className:"number", +begin:"(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[0-9][0-9_]*(\\.[0-9_]+([eE][-+]?[0-9]+)?)?)", +relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))"}] +;return s.contains=u,{name:"Elixir",aliases:["ex","exs"],keywords:i,contains:u}} +})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/elm.min.js b/src/app/resources/assets/highlight/es/languages/elm.min.js new file mode 100644 index 0000000..401d575 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/elm.min.js @@ -0,0 +1,18 @@ +/*! `elm` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n={ +variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},i={ +className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},s={begin:"\\(",end:"\\)", +illegal:'"',contains:[{className:"type", +begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},n]};return{name:"Elm", +keywords:["let","in","if","then","else","case","of","where","module","import","exposing","type","alias","as","infix","infixl","infixr","port","effect","command","subscription"], +contains:[{beginKeywords:"port effect module",end:"exposing", +keywords:"port effect module where command subscription exposing", +contains:[s,n],illegal:"\\W\\.|;"},{begin:"import",end:"$", +keywords:"import as exposing",contains:[s,n],illegal:"\\W\\.|;"},{begin:"type", +end:"$",keywords:"type alias",contains:[i,s,{begin:/\{/,end:/\}/, +contains:s.contains},n]},{beginKeywords:"infix infixl infixr",end:"$", +contains:[e.C_NUMBER_MODE,n]},{begin:"port",end:"$",keywords:"port",contains:[n] +},{className:"string",begin:"'\\\\?.",end:"'",illegal:"." +},e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,i,e.inherit(e.TITLE_MODE,{ +begin:"^[_a-z][\\w']*"}),n,{begin:"->|<-"}],illegal:/;/}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/erb.min.js b/src/app/resources/assets/highlight/es/languages/erb.min.js new file mode 100644 index 0000000..c65668e --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/erb.min.js @@ -0,0 +1,5 @@ +/*! `erb` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"ERB",subLanguage:"xml", +contains:[e.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>", +subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/erlang-repl.min.js b/src/app/resources/assets/highlight/es/languages/erlang-repl.min.js new file mode 100644 index 0000000..319c02c --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/erlang-repl.min.js @@ -0,0 +1,13 @@ +/*! `erlang-repl` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a=e.regex;return{ +name:"Erlang REPL",keywords:{built_in:"spawn spawn_link self", +keyword:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor" +},contains:[{className:"meta.prompt",begin:"^[0-9]+> ",relevance:10 +},e.COMMENT("%","$"),{className:"number", +begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)", +relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ +begin:a.concat(/\?(::)?/,/([A-Z]\w*)/,/((::)[A-Z]\w*)*/)},{begin:"->"},{ +begin:"ok"},{begin:"!"},{ +begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)", +relevance:0},{begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/erlang.min.js b/src/app/resources/assets/highlight/es/languages/erlang.min.js new file mode 100644 index 0000000..53c11d0 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/erlang.min.js @@ -0,0 +1,27 @@ +/*! `erlang` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n="[a-z'][a-zA-Z0-9_']*",r="("+n+":"+n+"|"+n+")",a={ +keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor", +literal:"false true"},i=e.COMMENT("%","$"),s={className:"number", +begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)", +relevance:0},t={begin:"fun\\s+"+n+"/\\d+"},c={begin:r+"\\(",end:"\\)", +returnBegin:!0,relevance:0,contains:[{begin:r,relevance:0},{begin:"\\(", +end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},d={begin:/\{/,end:/\}/, +relevance:0},o={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},l={ +begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},b={begin:"#"+e.UNDERSCORE_IDENT_RE, +relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE, +relevance:0},{begin:/\{/,end:/\}/,relevance:0}]},g={ +beginKeywords:"fun receive if try case",end:"end",keywords:a} +;g.contains=[i,t,e.inherit(e.APOS_STRING_MODE,{className:"" +}),g,c,e.QUOTE_STRING_MODE,s,d,o,l,b] +;const E=[i,t,g,c,e.QUOTE_STRING_MODE,s,d,o,l,b] +;c.contains[1].contains=E,d.contains=E,b.contains[1].contains=E;const u={ +className:"params",begin:"\\(",end:"\\)",contains:E};return{name:"Erlang", +aliases:["erl"],keywords:a,illegal:"(",returnBegin:!0, +illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[u,e.inherit(e.TITLE_MODE,{begin:n})], +starts:{end:";|\\.",keywords:a,contains:E}},i,{begin:"^-",end:"\\.",relevance:0, +excludeEnd:!0,returnBegin:!0,keywords:{$pattern:"-"+e.IDENT_RE, +keyword:["-module","-record","-undef","-export","-ifdef","-ifndef","-author","-copyright","-doc","-vsn","-import","-include","-include_lib","-compile","-define","-else","-endif","-file","-behaviour","-behavior","-spec"].map((e=>e+"|1.5")).join(" ") +},contains:[u]},s,e.QUOTE_STRING_MODE,b,o,l,d,{begin:/\.$/}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/excel.min.js b/src/app/resources/assets/highlight/es/languages/excel.min.js new file mode 100644 index 0000000..eb4f9ef --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/excel.min.js @@ -0,0 +1,10 @@ +/*! `excel` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return E=>({name:"Excel formulae", +aliases:["xlsx","xls"],case_insensitive:!0,keywords:{$pattern:/[a-zA-Z][\w\.]*/, +built_in:["ABS","ACCRINT","ACCRINTM","ACOS","ACOSH","ACOT","ACOTH","AGGREGATE","ADDRESS","AMORDEGRC","AMORLINC","AND","ARABIC","AREAS","ASC","ASIN","ASINH","ATAN","ATAN2","ATANH","AVEDEV","AVERAGE","AVERAGEA","AVERAGEIF","AVERAGEIFS","BAHTTEXT","BASE","BESSELI","BESSELJ","BESSELK","BESSELY","BETADIST","BETA.DIST","BETAINV","BETA.INV","BIN2DEC","BIN2HEX","BIN2OCT","BINOMDIST","BINOM.DIST","BINOM.DIST.RANGE","BINOM.INV","BITAND","BITLSHIFT","BITOR","BITRSHIFT","BITXOR","CALL","CEILING","CEILING.MATH","CEILING.PRECISE","CELL","CHAR","CHIDIST","CHIINV","CHITEST","CHISQ.DIST","CHISQ.DIST.RT","CHISQ.INV","CHISQ.INV.RT","CHISQ.TEST","CHOOSE","CLEAN","CODE","COLUMN","COLUMNS","COMBIN","COMBINA","COMPLEX","CONCAT","CONCATENATE","CONFIDENCE","CONFIDENCE.NORM","CONFIDENCE.T","CONVERT","CORREL","COS","COSH","COT","COTH","COUNT","COUNTA","COUNTBLANK","COUNTIF","COUNTIFS","COUPDAYBS","COUPDAYS","COUPDAYSNC","COUPNCD","COUPNUM","COUPPCD","COVAR","COVARIANCE.P","COVARIANCE.S","CRITBINOM","CSC","CSCH","CUBEKPIMEMBER","CUBEMEMBER","CUBEMEMBERPROPERTY","CUBERANKEDMEMBER","CUBESET","CUBESETCOUNT","CUBEVALUE","CUMIPMT","CUMPRINC","DATE","DATEDIF","DATEVALUE","DAVERAGE","DAY","DAYS","DAYS360","DB","DBCS","DCOUNT","DCOUNTA","DDB","DEC2BIN","DEC2HEX","DEC2OCT","DECIMAL","DEGREES","DELTA","DEVSQ","DGET","DISC","DMAX","DMIN","DOLLAR","DOLLARDE","DOLLARFR","DPRODUCT","DSTDEV","DSTDEVP","DSUM","DURATION","DVAR","DVARP","EDATE","EFFECT","ENCODEURL","EOMONTH","ERF","ERF.PRECISE","ERFC","ERFC.PRECISE","ERROR.TYPE","EUROCONVERT","EVEN","EXACT","EXP","EXPON.DIST","EXPONDIST","FACT","FACTDOUBLE","FALSE|0","F.DIST","FDIST","F.DIST.RT","FILTERXML","FIND","FINDB","F.INV","F.INV.RT","FINV","FISHER","FISHERINV","FIXED","FLOOR","FLOOR.MATH","FLOOR.PRECISE","FORECAST","FORECAST.ETS","FORECAST.ETS.CONFINT","FORECAST.ETS.SEASONALITY","FORECAST.ETS.STAT","FORECAST.LINEAR","FORMULATEXT","FREQUENCY","F.TEST","FTEST","FV","FVSCHEDULE","GAMMA","GAMMA.DIST","GAMMADIST","GAMMA.INV","GAMMAINV","GAMMALN","GAMMALN.PRECISE","GAUSS","GCD","GEOMEAN","GESTEP","GETPIVOTDATA","GROWTH","HARMEAN","HEX2BIN","HEX2DEC","HEX2OCT","HLOOKUP","HOUR","HYPERLINK","HYPGEOM.DIST","HYPGEOMDIST","IF","IFERROR","IFNA","IFS","IMABS","IMAGINARY","IMARGUMENT","IMCONJUGATE","IMCOS","IMCOSH","IMCOT","IMCSC","IMCSCH","IMDIV","IMEXP","IMLN","IMLOG10","IMLOG2","IMPOWER","IMPRODUCT","IMREAL","IMSEC","IMSECH","IMSIN","IMSINH","IMSQRT","IMSUB","IMSUM","IMTAN","INDEX","INDIRECT","INFO","INT","INTERCEPT","INTRATE","IPMT","IRR","ISBLANK","ISERR","ISERROR","ISEVEN","ISFORMULA","ISLOGICAL","ISNA","ISNONTEXT","ISNUMBER","ISODD","ISREF","ISTEXT","ISO.CEILING","ISOWEEKNUM","ISPMT","JIS","KURT","LARGE","LCM","LEFT","LEFTB","LEN","LENB","LINEST","LN","LOG","LOG10","LOGEST","LOGINV","LOGNORM.DIST","LOGNORMDIST","LOGNORM.INV","LOOKUP","LOWER","MATCH","MAX","MAXA","MAXIFS","MDETERM","MDURATION","MEDIAN","MID","MIDBs","MIN","MINIFS","MINA","MINUTE","MINVERSE","MIRR","MMULT","MOD","MODE","MODE.MULT","MODE.SNGL","MONTH","MROUND","MULTINOMIAL","MUNIT","N","NA","NEGBINOM.DIST","NEGBINOMDIST","NETWORKDAYS","NETWORKDAYS.INTL","NOMINAL","NORM.DIST","NORMDIST","NORMINV","NORM.INV","NORM.S.DIST","NORMSDIST","NORM.S.INV","NORMSINV","NOT","NOW","NPER","NPV","NUMBERVALUE","OCT2BIN","OCT2DEC","OCT2HEX","ODD","ODDFPRICE","ODDFYIELD","ODDLPRICE","ODDLYIELD","OFFSET","OR","PDURATION","PEARSON","PERCENTILE.EXC","PERCENTILE.INC","PERCENTILE","PERCENTRANK.EXC","PERCENTRANK.INC","PERCENTRANK","PERMUT","PERMUTATIONA","PHI","PHONETIC","PI","PMT","POISSON.DIST","POISSON","POWER","PPMT","PRICE","PRICEDISC","PRICEMAT","PROB","PRODUCT","PROPER","PV","QUARTILE","QUARTILE.EXC","QUARTILE.INC","QUOTIENT","RADIANS","RAND","RANDBETWEEN","RANK.AVG","RANK.EQ","RANK","RATE","RECEIVED","REGISTER.ID","REPLACE","REPLACEB","REPT","RIGHT","RIGHTB","ROMAN","ROUND","ROUNDDOWN","ROUNDUP","ROW","ROWS","RRI","RSQ","RTD","SEARCH","SEARCHB","SEC","SECH","SECOND","SERIESSUM","SHEET","SHEETS","SIGN","SIN","SINH","SKEW","SKEW.P","SLN","SLOPE","SMALL","SQL.REQUEST","SQRT","SQRTPI","STANDARDIZE","STDEV","STDEV.P","STDEV.S","STDEVA","STDEVP","STDEVPA","STEYX","SUBSTITUTE","SUBTOTAL","SUM","SUMIF","SUMIFS","SUMPRODUCT","SUMSQ","SUMX2MY2","SUMX2PY2","SUMXMY2","SWITCH","SYD","T","TAN","TANH","TBILLEQ","TBILLPRICE","TBILLYIELD","T.DIST","T.DIST.2T","T.DIST.RT","TDIST","TEXT","TEXTJOIN","TIME","TIMEVALUE","T.INV","T.INV.2T","TINV","TODAY","TRANSPOSE","TREND","TRIM","TRIMMEAN","TRUE|0","TRUNC","T.TEST","TTEST","TYPE","UNICHAR","UNICODE","UPPER","VALUE","VAR","VAR.P","VAR.S","VARA","VARP","VARPA","VDB","VLOOKUP","WEBSERVICE","WEEKDAY","WEEKNUM","WEIBULL","WEIBULL.DIST","WORKDAY","WORKDAY.INTL","XIRR","XNPV","XOR","YEAR","YEARFRAC","YIELD","YIELDDISC","YIELDMAT","Z.TEST","ZTEST"] +},contains:[{begin:/^=/,end:/[^=]/,returnEnd:!0,illegal:/=/,relevance:10},{ +className:"symbol",begin:/\b[A-Z]{1,2}\d+\b/,end:/[^\d]/,excludeEnd:!0, +relevance:0},{className:"symbol",begin:/[A-Z]{0,2}\d*:[A-Z]{0,2}\d*/,relevance:0 +},E.BACKSLASH_ESCAPE,E.QUOTE_STRING_MODE,{className:"number", +begin:E.NUMBER_RE+"(%)?",relevance:0},E.COMMENT(/\bN\(/,/\)/,{excludeBegin:!0, +excludeEnd:!0,illegal:/\n/})]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/fix.min.js b/src/app/resources/assets/highlight/es/languages/fix.min.js new file mode 100644 index 0000000..9c1312a --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/fix.min.js @@ -0,0 +1,7 @@ +/*! `fix` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"FIX",contains:[{ +begin:/[^\u2401\u0001]+/,end:/[\u2401\u0001]/,excludeEnd:!0,returnBegin:!0, +returnEnd:!1,contains:[{begin:/([^\u2401\u0001=]+)/,end:/=([^\u2401\u0001=]+)/, +returnEnd:!0,returnBegin:!1,className:"attr"},{begin:/=/,end:/([\u2401\u0001])/, +excludeEnd:!0,excludeBegin:!0,className:"string"}]}],case_insensitive:!0})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/flix.min.js b/src/app/resources/assets/highlight/es/languages/flix.min.js new file mode 100644 index 0000000..283cb28 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/flix.min.js @@ -0,0 +1,10 @@ +/*! `flix` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Flix",keywords:{ +keyword:["case","class","def","else","enum","if","impl","import","in","lat","rel","index","let","match","namespace","switch","type","yield","with"], +literal:["true","false"]}, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string", +begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},{className:"string",variants:[{begin:'"', +end:'"'}]},{className:"function",beginKeywords:"def",end:/[:={\[(\n;]/, +excludeEnd:!0,contains:[{className:"title",relevance:0, +begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/ +}]},e.C_NUMBER_MODE]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/fortran.min.js b/src/app/resources/assets/highlight/es/languages/fortran.min.js new file mode 100644 index 0000000..ac423df --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/fortran.min.js @@ -0,0 +1,16 @@ +/*! `fortran` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n=e.regex,a={ +variants:[e.COMMENT("!","$",{relevance:0}),e.COMMENT("^C[ ]","$",{relevance:0 +}),e.COMMENT("^C$","$",{relevance:0})] +},t=/(_[a-z_\d]+)?/,i=/([de][+-]?\d+)?/,c={className:"number",variants:[{ +begin:n.concat(/\b\d+/,/\.(\d*)/,i,t)},{begin:n.concat(/\b\d+/,i,t)},{ +begin:n.concat(/\.\d+/,i,t)}],relevance:0},o={className:"function", +beginKeywords:"subroutine function program",illegal:"[${=\\n]", +contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]} +;return{name:"Fortran",case_insensitive:!0,aliases:["f90","f95"],keywords:{ +keyword:["kind","do","concurrent","local","shared","while","private","call","intrinsic","where","elsewhere","type","endtype","endmodule","endselect","endinterface","end","enddo","endif","if","forall","endforall","only","contains","default","return","stop","then","block","endblock","endassociate","public","subroutine|10","function","program",".and.",".or.",".not.",".le.",".eq.",".ge.",".gt.",".lt.","goto","save","else","use","module","select","case","access","blank","direct","exist","file","fmt","form","formatted","iostat","name","named","nextrec","number","opened","rec","recl","sequential","status","unformatted","unit","continue","format","pause","cycle","exit","c_null_char","c_alert","c_backspace","c_form_feed","flush","wait","decimal","round","iomsg","synchronous","nopass","non_overridable","pass","protected","volatile","abstract","extends","import","non_intrinsic","value","deferred","generic","final","enumerator","class","associate","bind","enum","c_int","c_short","c_long","c_long_long","c_signed_char","c_size_t","c_int8_t","c_int16_t","c_int32_t","c_int64_t","c_int_least8_t","c_int_least16_t","c_int_least32_t","c_int_least64_t","c_int_fast8_t","c_int_fast16_t","c_int_fast32_t","c_int_fast64_t","c_intmax_t","C_intptr_t","c_float","c_double","c_long_double","c_float_complex","c_double_complex","c_long_double_complex","c_bool","c_char","c_null_ptr","c_null_funptr","c_new_line","c_carriage_return","c_horizontal_tab","c_vertical_tab","iso_c_binding","c_loc","c_funloc","c_associated","c_f_pointer","c_ptr","c_funptr","iso_fortran_env","character_storage_size","error_unit","file_storage_size","input_unit","iostat_end","iostat_eor","numeric_storage_size","output_unit","c_f_procpointer","ieee_arithmetic","ieee_support_underflow_control","ieee_get_underflow_mode","ieee_set_underflow_mode","newunit","contiguous","recursive","pad","position","action","delim","readwrite","eor","advance","nml","interface","procedure","namelist","include","sequence","elemental","pure","impure","integer","real","character","complex","logical","codimension","dimension","allocatable|10","parameter","external","implicit|10","none","double","precision","assign","intent","optional","pointer","target","in","out","common","equivalence","data"], +literal:[".False.",".True."], +built_in:["alog","alog10","amax0","amax1","amin0","amin1","amod","cabs","ccos","cexp","clog","csin","csqrt","dabs","dacos","dasin","datan","datan2","dcos","dcosh","ddim","dexp","dint","dlog","dlog10","dmax1","dmin1","dmod","dnint","dsign","dsin","dsinh","dsqrt","dtan","dtanh","float","iabs","idim","idint","idnint","ifix","isign","max0","max1","min0","min1","sngl","algama","cdabs","cdcos","cdexp","cdlog","cdsin","cdsqrt","cqabs","cqcos","cqexp","cqlog","cqsin","cqsqrt","dcmplx","dconjg","derf","derfc","dfloat","dgamma","dimag","dlgama","iqint","qabs","qacos","qasin","qatan","qatan2","qcmplx","qconjg","qcos","qcosh","qdim","qerf","qerfc","qexp","qgamma","qimag","qlgama","qlog","qlog10","qmax1","qmin1","qmod","qnint","qsign","qsin","qsinh","qsqrt","qtan","qtanh","abs","acos","aimag","aint","anint","asin","atan","atan2","char","cmplx","conjg","cos","cosh","exp","ichar","index","int","log","log10","max","min","nint","sign","sin","sinh","sqrt","tan","tanh","print","write","dim","lge","lgt","lle","llt","mod","nullify","allocate","deallocate","adjustl","adjustr","all","allocated","any","associated","bit_size","btest","ceiling","count","cshift","date_and_time","digits","dot_product","eoshift","epsilon","exponent","floor","fraction","huge","iand","ibclr","ibits","ibset","ieor","ior","ishft","ishftc","lbound","len_trim","matmul","maxexponent","maxloc","maxval","merge","minexponent","minloc","minval","modulo","mvbits","nearest","pack","present","product","radix","random_number","random_seed","range","repeat","reshape","rrspacing","scale","scan","selected_int_kind","selected_real_kind","set_exponent","shape","size","spacing","spread","sum","system_clock","tiny","transpose","trim","ubound","unpack","verify","achar","iachar","transfer","dble","entry","dprod","cpu_time","command_argument_count","get_command","get_command_argument","get_environment_variable","is_iostat_end","ieee_arithmetic","ieee_support_underflow_control","ieee_get_underflow_mode","ieee_set_underflow_mode","is_iostat_eor","move_alloc","new_line","selected_char_kind","same_type_as","extends_type_of","acosh","asinh","atanh","bessel_j0","bessel_j1","bessel_jn","bessel_y0","bessel_y1","bessel_yn","erf","erfc","erfc_scaled","gamma","log_gamma","hypot","norm2","atomic_define","atomic_ref","execute_command_line","leadz","trailz","storage_size","merge_bits","bge","bgt","ble","blt","dshiftl","dshiftr","findloc","iall","iany","iparity","image_index","lcobound","ucobound","maskl","maskr","num_images","parity","popcnt","poppar","shifta","shiftl","shiftr","this_image","sync","change","team","co_broadcast","co_max","co_min","co_sum","co_reduce"] +},illegal:/\/\*/,contains:[{className:"string",relevance:0, +variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},o,{begin:/^C\s*=(?!=)/, +relevance:0},a,c]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/fsharp.min.js b/src/app/resources/assets/highlight/es/languages/fsharp.min.js new file mode 100644 index 0000000..6e595db --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/fsharp.min.js @@ -0,0 +1,47 @@ +/*! `fsharp` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";function e(e){ +return RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function n(e){ +return e?"string"==typeof e?e:e.source:null}function t(e){return i("(?=",e,")")} +function i(...e){return e.map((e=>n(e))).join("")}function a(...e){const t=(e=>{ +const n=e[e.length-1] +;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{} +})(e);return"("+(t.capture?"":"?:")+e.map((e=>n(e))).join("|")+")"}return n=>{ +const r={scope:"keyword",match:/\b(yield|return|let|do|match|use)!/ +},o=["bool","byte","sbyte","int8","int16","int32","uint8","uint16","uint32","int","uint","int64","uint64","nativeint","unativeint","decimal","float","double","float32","single","char","string","unit","bigint","option","voption","list","array","seq","byref","exn","inref","nativeptr","obj","outref","voidptr","Result"],s={ +keyword:["abstract","and","as","assert","base","begin","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","extern","finally","fixed","for","fun","function","global","if","in","inherit","inline","interface","internal","lazy","let","match","member","module","mutable","namespace","new","of","open","or","override","private","public","rec","return","static","struct","then","to","try","type","upcast","use","val","void","when","while","with","yield"], +literal:["true","false","null","Some","None","Ok","Error","infinity","infinityf","nan","nanf"], +built_in:["not","ref","raise","reraise","dict","readOnlyDict","set","get","enum","sizeof","typeof","typedefof","nameof","nullArg","invalidArg","invalidOp","id","fst","snd","ignore","lock","using","box","unbox","tryUnbox","printf","printfn","sprintf","eprintf","eprintfn","fprintf","fprintfn","failwith","failwithf"], +"variable.constant":["__LINE__","__SOURCE_DIRECTORY__","__SOURCE_FILE__"]},c={ +variants:[n.COMMENT(/\(\*(?!\))/,/\*\)/,{contains:["self"] +}),n.C_LINE_COMMENT_MODE]},l={scope:"variable",begin:/``/,end:/``/ +},u=/\B('|\^)/,p={scope:"symbol",variants:[{match:i(u,/``.*?``/)},{ +match:i(u,n.UNDERSCORE_IDENT_RE)}],relevance:0},f=({includeEqual:n})=>{let r +;r=n?"!%&*+-/<=>@^|~?":"!%&*+-/<>@^|~?" +;const o=i("[",...Array.from(r).map(e),"]"),s=a(o,/\./),c=i(s,t(s)),l=a(i(c,s,"*"),i(o,"+")) +;return{scope:"operator",match:a(l,/:\?>/,/:\?/,/:>/,/:=/,/::?/,/\$/), +relevance:0}},d=f({includeEqual:!0}),b=f({includeEqual:!1}),m=(e,r)=>({ +begin:i(e,t(i(/\s*/,a(/\w/,/'/,/\^/,/#/,/``/,/\(/,/{\|/)))),beginScope:r, +end:t(a(/\n/,/=/)),relevance:0,keywords:n.inherit(s,{type:o}), +contains:[c,p,n.inherit(l,{scope:null}),b] +}),g=m(/:/,"operator"),h=m(/\bof\b/,"keyword"),y={ +begin:[/(^|\s+)/,/type/,/\s+/,/[a-zA-Z_](\w|')*/],beginScope:{2:"keyword", +4:"title.class"},end:t(/\(|=|$/),keywords:s,contains:[c,n.inherit(l,{scope:null +}),p,{scope:"operator",match:/<|>/},g]},E={scope:"computation-expression", +match:/\b[_a-z]\w*(?=\s*\{)/},_={ +begin:[/^\s*/,i(/#/,a("if","else","endif","line","nowarn","light","r","i","I","load","time","help","quit")),/\b/], +beginScope:{2:"meta"},end:t(/\s|$/)},v={ +variants:[n.BINARY_NUMBER_MODE,n.C_NUMBER_MODE]},w={scope:"string",begin:/"/, +end:/"/,contains:[n.BACKSLASH_ESCAPE]},A={scope:"string",begin:/@"/,end:/"/, +contains:[{match:/""/},n.BACKSLASH_ESCAPE]},S={scope:"string",begin:/"""/, +end:/"""/,relevance:2},C={scope:"subst",begin:/\{/,end:/\}/,keywords:s},O={ +scope:"string",begin:/\$"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/ +},n.BACKSLASH_ESCAPE,C]},x={scope:"string",begin:/(\$@|@\$)"/,end:/"/, +contains:[{match:/\{\{/},{match:/\}\}/},{match:/""/},n.BACKSLASH_ESCAPE,C]},R={ +scope:"string",begin:/\$"""/,end:/"""/,contains:[{match:/\{\{/},{match:/\}\}/ +},C],relevance:2},k={scope:"string", +match:i(/'/,a(/[^\\']/,/\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8})/),/'/) +};return C.contains=[x,O,A,w,k,r,c,l,g,E,_,v,p,d],{name:"F#", +aliases:["fs","f#"],keywords:s,illegal:/\/\*/,classNameAliases:{ +"computation-expression":"keyword"},contains:[r,{variants:[R,x,O,S,A,w,k] +},c,l,y,{scope:"meta",begin:/\[\]/,relevance:2,contains:[l,S,A,w,k,v] +},h,g,E,_,v,p,d]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/gams.min.js b/src/app/resources/assets/highlight/es/languages/gams.min.js new file mode 100644 index 0000000..e34c459 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/gams.min.js @@ -0,0 +1,28 @@ +/*! `gams` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a=e.regex,n={ +keyword:"abort acronym acronyms alias all and assign binary card diag display else eq file files for free ge gt if integer le loop lt maximizing minimizing model models ne negative no not option options or ord positive prod put putpage puttl repeat sameas semicont semiint smax smin solve sos1 sos2 sum system table then until using while xor yes", +literal:"eps inf na", +built_in:"abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact floor frac gamma gammaReg log logBeta logGamma log10 log2 mapVal max min mod ncpCM ncpF ncpVUpow ncpVUsin normal pi poly power randBinomial randLinear randTriangle round rPower sigmoid sign signPower sin sinh slexp sllog10 slrec sqexp sqlog10 sqr sqrec sqrt tan tanh trunc uniform uniformInt vcPower bool_and bool_eqv bool_imp bool_not bool_or bool_xor ifThen rel_eq rel_ge rel_gt rel_le rel_lt rel_ne gday gdow ghour gleap gmillisec gminute gmonth gsecond gyear jdate jnow jstart jtime errorLevel execError gamsRelease gamsVersion handleCollect handleDelete handleStatus handleSubmit heapFree heapLimit heapSize jobHandle jobKill jobStatus jobTerminate licenseLevel licenseStatus maxExecError sleep timeClose timeComp timeElapsed timeExec timeStart" +},i={className:"symbol",variants:[{begin:/=[lgenxc]=/},{begin:/\$/}]},s={ +className:"comment",variants:[{begin:"'",end:"'"},{begin:'"',end:'"'}], +illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},o={begin:"/",end:"/",keywords:n, +contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE] +},r=/[a-z0-9&#*=?@\\><:,()$[\]_.{}!+%^-]+/,t={ +begin:/[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/,excludeBegin:!0,end:"$", +endsWithParent:!0,contains:[s,o,{className:"comment", +begin:a.concat(r,a.anyNumberOfTimes(a.concat(/[ ]+/,r))),relevance:0}]};return{ +name:"GAMS",aliases:["gms"],case_insensitive:!0,keywords:n, +contains:[e.COMMENT(/^\$ontext/,/^\$offtext/),{className:"meta", +begin:"^\\$[a-z0-9]+",end:"$",returnBegin:!0,contains:[{className:"keyword", +begin:"^\\$[a-z0-9]+"}] +},e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{ +beginKeywords:"set sets parameter parameters variable variables scalar scalars equation equations", +end:";", +contains:[e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,o,t] +},{beginKeywords:"table",end:";",returnBegin:!0,contains:[{ +beginKeywords:"table",end:"$",contains:[t] +},e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE] +},{className:"function",begin:/^[a-z][a-z0-9_,\-+' ()$]+\.{2}/,returnBegin:!0, +contains:[{className:"title",begin:/^[a-z0-9_]+/},{className:"params", +begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0},i]},e.C_NUMBER_MODE,i]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/gauss.min.js b/src/app/resources/assets/highlight/es/languages/gauss.min.js new file mode 100644 index 0000000..488613d --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/gauss.min.js @@ -0,0 +1,36 @@ +/*! `gauss` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const t={ +keyword:"bool break call callexe checkinterrupt clear clearg closeall cls comlog compile continue create debug declare delete disable dlibrary dllcall do dos ed edit else elseif enable end endfor endif endp endo errorlog errorlogat expr external fn for format goto gosub graph if keyword let lib library line load loadarray loadexe loadf loadk loadm loadp loads loadx local locate loopnextindex lprint lpwidth lshow matrix msym ndpclex new open output outwidth plot plotsym pop prcsn print printdos proc push retp return rndcon rndmod rndmult rndseed run save saveall screen scroll setarray show sparse stop string struct system trace trap threadfor threadendfor threadbegin threadjoin threadstat threadend until use while winprint ne ge le gt lt and xor or not eq eqv", +built_in:"abs acf aconcat aeye amax amean AmericanBinomCall AmericanBinomCall_Greeks AmericanBinomCall_ImpVol AmericanBinomPut AmericanBinomPut_Greeks AmericanBinomPut_ImpVol AmericanBSCall AmericanBSCall_Greeks AmericanBSCall_ImpVol AmericanBSPut AmericanBSPut_Greeks AmericanBSPut_ImpVol amin amult annotationGetDefaults annotationSetBkd annotationSetFont annotationSetLineColor annotationSetLineStyle annotationSetLineThickness annualTradingDays arccos arcsin areshape arrayalloc arrayindex arrayinit arraytomat asciiload asclabel astd astds asum atan atan2 atranspose axmargin balance band bandchol bandcholsol bandltsol bandrv bandsolpd bar base10 begwind besselj bessely beta box boxcox cdfBeta cdfBetaInv cdfBinomial cdfBinomialInv cdfBvn cdfBvn2 cdfBvn2e cdfCauchy cdfCauchyInv cdfChic cdfChii cdfChinc cdfChincInv cdfExp cdfExpInv cdfFc cdfFnc cdfFncInv cdfGam cdfGenPareto cdfHyperGeo cdfLaplace cdfLaplaceInv cdfLogistic cdfLogisticInv cdfmControlCreate cdfMvn cdfMvn2e cdfMvnce cdfMvne cdfMvt2e cdfMvtce cdfMvte cdfN cdfN2 cdfNc cdfNegBinomial cdfNegBinomialInv cdfNi cdfPoisson cdfPoissonInv cdfRayleigh cdfRayleighInv cdfTc cdfTci cdfTnc cdfTvn cdfWeibull cdfWeibullInv cdir ceil ChangeDir chdir chiBarSquare chol choldn cholsol cholup chrs close code cols colsf combinate combinated complex con cond conj cons ConScore contour conv convertsatostr convertstrtosa corrm corrms corrvc corrx corrxs cos cosh counts countwts crossprd crout croutp csrcol csrlin csvReadM csvReadSA cumprodc cumsumc curve cvtos datacreate datacreatecomplex datalist dataload dataloop dataopen datasave date datestr datestring datestrymd dayinyr dayofweek dbAddDatabase dbClose dbCommit dbCreateQuery dbExecQuery dbGetConnectOptions dbGetDatabaseName dbGetDriverName dbGetDrivers dbGetHostName dbGetLastErrorNum dbGetLastErrorText dbGetNumericalPrecPolicy dbGetPassword dbGetPort dbGetTableHeaders dbGetTables dbGetUserName dbHasFeature dbIsDriverAvailable dbIsOpen dbIsOpenError dbOpen dbQueryBindValue dbQueryClear dbQueryCols dbQueryExecPrepared dbQueryFetchAllM dbQueryFetchAllSA dbQueryFetchOneM dbQueryFetchOneSA dbQueryFinish dbQueryGetBoundValue dbQueryGetBoundValues dbQueryGetField dbQueryGetLastErrorNum dbQueryGetLastErrorText dbQueryGetLastInsertID dbQueryGetLastQuery dbQueryGetPosition dbQueryIsActive dbQueryIsForwardOnly dbQueryIsNull dbQueryIsSelect dbQueryIsValid dbQueryPrepare dbQueryRows dbQuerySeek dbQuerySeekFirst dbQuerySeekLast dbQuerySeekNext dbQuerySeekPrevious dbQuerySetForwardOnly dbRemoveDatabase dbRollback dbSetConnectOptions dbSetDatabaseName dbSetHostName dbSetNumericalPrecPolicy dbSetPort dbSetUserName dbTransaction DeleteFile delif delrows denseToSp denseToSpRE denToZero design det detl dfft dffti diag diagrv digamma doswin DOSWinCloseall DOSWinOpen dotfeq dotfeqmt dotfge dotfgemt dotfgt dotfgtmt dotfle dotflemt dotflt dotfltmt dotfne dotfnemt draw drop dsCreate dstat dstatmt dstatmtControlCreate dtdate dtday dttime dttodtv dttostr dttoutc dtvnormal dtvtodt dtvtoutc dummy dummybr dummydn eig eigh eighv eigv elapsedTradingDays endwind envget eof eqSolve eqSolvemt eqSolvemtControlCreate eqSolvemtOutCreate eqSolveset erf erfc erfccplx erfcplx error etdays ethsec etstr EuropeanBinomCall EuropeanBinomCall_Greeks EuropeanBinomCall_ImpVol EuropeanBinomPut EuropeanBinomPut_Greeks EuropeanBinomPut_ImpVol EuropeanBSCall EuropeanBSCall_Greeks EuropeanBSCall_ImpVol EuropeanBSPut EuropeanBSPut_Greeks EuropeanBSPut_ImpVol exctsmpl exec execbg exp extern eye fcheckerr fclearerr feq feqmt fflush fft ffti fftm fftmi fftn fge fgemt fgets fgetsa fgetsat fgetst fgt fgtmt fileinfo filesa fle flemt floor flt fltmt fmod fne fnemt fonts fopen formatcv formatnv fputs fputst fseek fstrerror ftell ftocv ftos ftostrC gamma gammacplx gammaii gausset gdaAppend gdaCreate gdaDStat gdaDStatMat gdaGetIndex gdaGetName gdaGetNames gdaGetOrders gdaGetType gdaGetTypes gdaGetVarInfo gdaIsCplx gdaLoad gdaPack gdaRead gdaReadByIndex gdaReadSome gdaReadSparse gdaReadStruct gdaReportVarInfo gdaSave gdaUpdate gdaUpdateAndPack gdaVars gdaWrite gdaWrite32 gdaWriteSome getarray getdims getf getGAUSShome getmatrix getmatrix4D getname getnamef getNextTradingDay getNextWeekDay getnr getorders getpath getPreviousTradingDay getPreviousWeekDay getRow getscalar3D getscalar4D getTrRow getwind glm gradcplx gradMT gradMTm gradMTT gradMTTm gradp graphprt graphset hasimag header headermt hess hessMT hessMTg hessMTgw hessMTm hessMTmw hessMTT hessMTTg hessMTTgw hessMTTm hessMTw hessp hist histf histp hsec imag indcv indexcat indices indices2 indicesf indicesfn indnv indsav integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 inthpControlCreate intquad1 intquad2 intquad3 intrleav intrleavsa intrsect intsimp inv invpd invswp iscplx iscplxf isden isinfnanmiss ismiss key keyav keyw lag lag1 lagn lapEighb lapEighi lapEighvb lapEighvi lapgEig lapgEigh lapgEighv lapgEigv lapgSchur lapgSvdcst lapgSvds lapgSvdst lapSvdcusv lapSvds lapSvdusv ldlp ldlsol linSolve listwise ln lncdfbvn lncdfbvn2 lncdfmvn lncdfn lncdfn2 lncdfnc lnfact lngammacplx lnpdfmvn lnpdfmvt lnpdfn lnpdft loadd loadstruct loadwind loess loessmt loessmtControlCreate log loglog logx logy lower lowmat lowmat1 ltrisol lu lusol machEpsilon make makevars makewind margin matalloc matinit mattoarray maxbytes maxc maxindc maxv maxvec mbesselei mbesselei0 mbesselei1 mbesseli mbesseli0 mbesseli1 meanc median mergeby mergevar minc minindc minv miss missex missrv moment momentd movingave movingaveExpwgt movingaveWgt nextindex nextn nextnevn nextwind ntos null null1 numCombinations ols olsmt olsmtControlCreate olsqr olsqr2 olsqrmt ones optn optnevn orth outtyp pacf packedToSp packr parse pause pdfCauchy pdfChi pdfExp pdfGenPareto pdfHyperGeo pdfLaplace pdfLogistic pdfn pdfPoisson pdfRayleigh pdfWeibull pi pinv pinvmt plotAddArrow plotAddBar plotAddBox plotAddHist plotAddHistF plotAddHistP plotAddPolar plotAddScatter plotAddShape plotAddTextbox plotAddTS plotAddXY plotArea plotBar plotBox plotClearLayout plotContour plotCustomLayout plotGetDefaults plotHist plotHistF plotHistP plotLayout plotLogLog plotLogX plotLogY plotOpenWindow plotPolar plotSave plotScatter plotSetAxesPen plotSetBar plotSetBarFill plotSetBarStacked plotSetBkdColor plotSetFill plotSetGrid plotSetLegend plotSetLineColor plotSetLineStyle plotSetLineSymbol plotSetLineThickness plotSetNewWindow plotSetTitle plotSetWhichYAxis plotSetXAxisShow plotSetXLabel plotSetXRange plotSetXTicInterval plotSetXTicLabel plotSetYAxisShow plotSetYLabel plotSetYRange plotSetZAxisShow plotSetZLabel plotSurface plotTS plotXY polar polychar polyeval polygamma polyint polymake polymat polymroot polymult polyroot pqgwin previousindex princomp printfm printfmt prodc psi putarray putf putvals pvCreate pvGetIndex pvGetParNames pvGetParVector pvLength pvList pvPack pvPacki pvPackm pvPackmi pvPacks pvPacksi pvPacksm pvPacksmi pvPutParVector pvTest pvUnpack QNewton QNewtonmt QNewtonmtControlCreate QNewtonmtOutCreate QNewtonSet QProg QProgmt QProgmtInCreate qqr qqre qqrep qr qre qrep qrsol qrtsol qtyr qtyre qtyrep quantile quantiled qyr qyre qyrep qz rank rankindx readr real reclassify reclassifyCuts recode recserar recsercp recserrc rerun rescale reshape rets rev rfft rffti rfftip rfftn rfftnp rfftp rndBernoulli rndBeta rndBinomial rndCauchy rndChiSquare rndCon rndCreateState rndExp rndGamma rndGeo rndGumbel rndHyperGeo rndi rndKMbeta rndKMgam rndKMi rndKMn rndKMnb rndKMp rndKMu rndKMvm rndLaplace rndLCbeta rndLCgam rndLCi rndLCn rndLCnb rndLCp rndLCu rndLCvm rndLogNorm rndMTu rndMVn rndMVt rndn rndnb rndNegBinomial rndp rndPoisson rndRayleigh rndStateSkip rndu rndvm rndWeibull rndWishart rotater round rows rowsf rref sampleData satostrC saved saveStruct savewind scale scale3d scalerr scalinfnanmiss scalmiss schtoc schur searchsourcepath seekr select selif seqa seqm setdif setdifsa setvars setvwrmode setwind shell shiftr sin singleindex sinh sleep solpd sortc sortcc sortd sorthc sorthcc sortind sortindc sortmc sortr sortrc spBiconjGradSol spChol spConjGradSol spCreate spDenseSubmat spDiagRvMat spEigv spEye spLDL spline spLU spNumNZE spOnes spreadSheetReadM spreadSheetReadSA spreadSheetWrite spScale spSubmat spToDense spTrTDense spTScalar spZeros sqpSolve sqpSolveMT sqpSolveMTControlCreate sqpSolveMTlagrangeCreate sqpSolveMToutCreate sqpSolveSet sqrt statements stdc stdsc stocv stof strcombine strindx strlen strput strrindx strsect strsplit strsplitPad strtodt strtof strtofcplx strtriml strtrimr strtrunc strtruncl strtruncpad strtruncr submat subscat substute subvec sumc sumr surface svd svd1 svd2 svdcusv svds svdusv sysstate tab tan tanh tempname time timedt timestr timeutc title tkf2eps tkf2ps tocart todaydt toeplitz token topolar trapchk trigamma trimr trunc type typecv typef union unionsa uniqindx uniqindxsa unique uniquesa upmat upmat1 upper utctodt utctodtv utrisol vals varCovMS varCovXS varget vargetl varmall varmares varput varputl vartypef vcm vcms vcx vcxs vec vech vecr vector vget view viewxyz vlist vnamecv volume vput vread vtypecv wait waitc walkindex where window writer xlabel xlsGetSheetCount xlsGetSheetSize xlsGetSheetTypes xlsMakeRange xlsReadM xlsReadSA xlsWrite xlsWriteM xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics cdfEmpirical dot h5create h5open h5read h5readAttribute h5write h5writeAttribute ldl plotAddErrorBar plotAddSurface plotCDFEmpirical plotSetColormap plotSetContourLabels plotSetLegendFont plotSetTextInterpreter plotSetXTicCount plotSetYTicCount plotSetZLevels powerm strjoin sylvester strtrim", +literal:"DB_AFTER_LAST_ROW DB_ALL_TABLES DB_BATCH_OPERATIONS DB_BEFORE_FIRST_ROW DB_BLOB DB_EVENT_NOTIFICATIONS DB_FINISH_QUERY DB_HIGH_PRECISION DB_LAST_INSERT_ID DB_LOW_PRECISION_DOUBLE DB_LOW_PRECISION_INT32 DB_LOW_PRECISION_INT64 DB_LOW_PRECISION_NUMBERS DB_MULTIPLE_RESULT_SETS DB_NAMED_PLACEHOLDERS DB_POSITIONAL_PLACEHOLDERS DB_PREPARED_QUERIES DB_QUERY_SIZE DB_SIMPLE_LOCKING DB_SYSTEM_TABLES DB_TABLES DB_TRANSACTIONS DB_UNICODE DB_VIEWS __STDIN __STDOUT __STDERR __FILE_DIR" +},a=e.COMMENT("@","@"),r={className:"meta",begin:"#",end:"$",keywords:{ +keyword:"define definecs|10 undef ifdef ifndef iflight ifdllcall ifmac ifos2win ifunix else endif lineson linesoff srcfile srcline" +},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$", +keywords:{keyword:"include"},contains:[{className:"string",begin:'"',end:'"', +illegal:"\\n"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a]},n={ +begin:/\bstruct\s+/,end:/\s/,keywords:"struct",contains:[{className:"type", +begin:e.UNDERSCORE_IDENT_RE,relevance:0}]},s=[{className:"params",begin:/\(/, +end:/\)/,excludeBegin:!0,excludeEnd:!0,endsWithParent:!0,relevance:0,contains:[{ +className:"literal",begin:/\.\.\./},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,a,n] +}],o={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},d=(t,r,n)=>{ +const d=e.inherit({className:"function",beginKeywords:t,end:r,excludeEnd:!0, +contains:[].concat(s)},n||{}) +;return d.contains.push(o),d.contains.push(e.C_NUMBER_MODE), +d.contains.push(e.C_BLOCK_COMMENT_MODE),d.contains.push(a),d},l={ +className:"built_in",begin:"\\b("+t.built_in.split(" ").join("|")+")\\b"},i={ +className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE],relevance:0 +},c={begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,keywords:t, +relevance:0,contains:[{beginKeywords:t.keyword},l,{className:"built_in", +begin:e.UNDERSCORE_IDENT_RE,relevance:0}]},p={begin:/\(/,end:/\)/,relevance:0, +keywords:{built_in:t.built_in,literal:t.literal}, +contains:[e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,a,l,c,i,"self"]} +;return c.contains.push(p),{name:"GAUSS",aliases:["gss"],case_insensitive:!0, +keywords:t,illegal:/(\{[%#]|[%#]\}| <- )/, +contains:[e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r,{ +className:"keyword", +begin:/\bexternal (matrix|string|array|sparse matrix|struct|proc|keyword|fn)/ +},d("proc keyword",";"),d("fn","="),{beginKeywords:"for threadfor",end:/;/, +relevance:0,contains:[e.C_BLOCK_COMMENT_MODE,a,p]},{variants:[{ +begin:e.UNDERSCORE_IDENT_RE+"\\."+e.UNDERSCORE_IDENT_RE},{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*="}],relevance:0},c,n]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/gcode.min.js b/src/app/resources/assets/highlight/es/languages/gcode.min.js new file mode 100644 index 0000000..ffb92ff --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/gcode.min.js @@ -0,0 +1,17 @@ +/*! `gcode` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a=e.inherit(e.C_NUMBER_MODE,{ +begin:"([-+]?((\\.\\d+)|(\\d+)(\\.\\d*)?))|"+e.C_NUMBER_RE +}),n=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(/\(/,/\)/),a,e.inherit(e.APOS_STRING_MODE,{ +illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"name", +begin:"([G])([0-9]+\\.?[0-9]?)"},{className:"name", +begin:"([M])([0-9]+\\.?[0-9]?)"},{className:"attr",begin:"(VC|VS|#)", +end:"(\\d+)"},{className:"attr",begin:"(VZOFX|VZOFY|VZOFZ)"},{ +className:"built_in", +begin:"(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)",contains:[a], +end:"\\]"},{className:"symbol",variants:[{begin:"N",end:"\\d+",illegal:"\\W"}]}] +;return{name:"G-code (ISO 6983)",aliases:["nc"],case_insensitive:!0,keywords:{ +$pattern:"[A-Z_][A-Z0-9_.]*", +keyword:"IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR" +},contains:[{className:"meta",begin:"%"},{className:"meta",begin:"([O])([0-9]+)" +}].concat(n)}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/gherkin.min.js b/src/app/resources/assets/highlight/es/languages/gherkin.min.js new file mode 100644 index 0000000..5bc713a --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/gherkin.min.js @@ -0,0 +1,9 @@ +/*! `gherkin` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Gherkin", +aliases:["feature"], +keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When", +contains:[{className:"symbol",begin:"\\*",relevance:0},{className:"meta", +begin:"@[^@\\s]+"},{begin:"\\|",end:"\\|\\w*$",contains:[{className:"string", +begin:"[^|]+"}]},{className:"variable",begin:"<",end:">"},e.HASH_COMMENT_MODE,{ +className:"string",begin:'"""',end:'"""'},e.QUOTE_STRING_MODE]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/glsl.min.js b/src/app/resources/assets/highlight/es/languages/glsl.min.js new file mode 100644 index 0000000..9c071ed --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/glsl.min.js @@ -0,0 +1,8 @@ +/*! `glsl` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"GLSL",keywords:{ +keyword:"break continue discard do else for if return while switch case default attribute binding buffer ccw centroid centroid varying coherent column_major const cw depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip triangles triangles_adjacency uniform varying vertices volatile writeonly", +type:"atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void", +built_in:"gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow", +literal:"true false"},illegal:'"', +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{ +className:"meta",begin:"#",end:"$"}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/gml.min.js b/src/app/resources/assets/highlight/es/languages/gml.min.js new file mode 100644 index 0000000..ed4457c --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/gml.min.js @@ -0,0 +1,11 @@ +/*! `gml` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"GML",case_insensitive:!1, +keywords:{ +keyword:["#endregion","#macro","#region","and","begin","break","case","constructor","continue","default","delete","div","do","else","end","enum","exit","for","function","globalvar","if","mod","not","or","repeat","return","switch","then","until","var","while","with","xor"], +built_in:["abs","achievement_available","achievement_event","achievement_get_challenges","achievement_get_info","achievement_get_pic","achievement_increment","achievement_load_friends","achievement_load_leaderboard","achievement_load_progress","achievement_login","achievement_login_status","achievement_logout","achievement_post","achievement_post_score","achievement_reset","achievement_send_challenge","achievement_show","achievement_show_achievements","achievement_show_challenge_notifications","achievement_show_leaderboards","action_inherited","action_kill_object","ads_disable","ads_enable","ads_engagement_active","ads_engagement_available","ads_engagement_launch","ads_event","ads_event_preload","ads_get_display_height","ads_get_display_width","ads_interstitial_available","ads_interstitial_display","ads_move","ads_set_reward_callback","ads_setup","alarm_get","alarm_set","analytics_event","analytics_event_ext","angle_difference","ansi_char","application_get_position","application_surface_draw_enable","application_surface_enable","application_surface_is_enabled","arccos","arcsin","arctan","arctan2","array_copy","array_create","array_delete","array_equals","array_height_2d","array_insert","array_length","array_length_1d","array_length_2d","array_pop","array_push","array_resize","array_sort","asset_get_index","asset_get_type","audio_channel_num","audio_create_buffer_sound","audio_create_play_queue","audio_create_stream","audio_create_sync_group","audio_debug","audio_destroy_stream","audio_destroy_sync_group","audio_emitter_create","audio_emitter_exists","audio_emitter_falloff","audio_emitter_free","audio_emitter_gain","audio_emitter_get_gain","audio_emitter_get_listener_mask","audio_emitter_get_pitch","audio_emitter_get_vx","audio_emitter_get_vy","audio_emitter_get_vz","audio_emitter_get_x","audio_emitter_get_y","audio_emitter_get_z","audio_emitter_pitch","audio_emitter_position","audio_emitter_set_listener_mask","audio_emitter_velocity","audio_exists","audio_falloff_set_model","audio_free_buffer_sound","audio_free_play_queue","audio_get_listener_count","audio_get_listener_info","audio_get_listener_mask","audio_get_master_gain","audio_get_name","audio_get_recorder_count","audio_get_recorder_info","audio_get_type","audio_group_is_loaded","audio_group_load","audio_group_load_progress","audio_group_name","audio_group_set_gain","audio_group_stop_all","audio_group_unload","audio_is_paused","audio_is_playing","audio_listener_get_data","audio_listener_orientation","audio_listener_position","audio_listener_set_orientation","audio_listener_set_position","audio_listener_set_velocity","audio_listener_velocity","audio_master_gain","audio_music_gain","audio_music_is_playing","audio_pause_all","audio_pause_music","audio_pause_sound","audio_pause_sync_group","audio_play_in_sync_group","audio_play_music","audio_play_sound","audio_play_sound_at","audio_play_sound_on","audio_queue_sound","audio_resume_all","audio_resume_music","audio_resume_sound","audio_resume_sync_group","audio_set_listener_mask","audio_set_master_gain","audio_sound_gain","audio_sound_get_gain","audio_sound_get_listener_mask","audio_sound_get_pitch","audio_sound_get_track_position","audio_sound_length","audio_sound_pitch","audio_sound_set_listener_mask","audio_sound_set_track_position","audio_start_recording","audio_start_sync_group","audio_stop_all","audio_stop_music","audio_stop_recording","audio_stop_sound","audio_stop_sync_group","audio_sync_group_debug","audio_sync_group_get_track_pos","audio_sync_group_is_playing","audio_system","background_get_height","background_get_width","base64_decode","base64_encode","browser_input_capture","buffer_async_group_begin","buffer_async_group_end","buffer_async_group_option","buffer_base64_decode","buffer_base64_decode_ext","buffer_base64_encode","buffer_copy","buffer_copy_from_vertex_buffer","buffer_create","buffer_create_from_vertex_buffer","buffer_create_from_vertex_buffer_ext","buffer_delete","buffer_exists","buffer_fill","buffer_get_address","buffer_get_alignment","buffer_get_size","buffer_get_surface","buffer_get_type","buffer_load","buffer_load_async","buffer_load_ext","buffer_load_partial","buffer_md5","buffer_peek","buffer_poke","buffer_read","buffer_resize","buffer_save","buffer_save_async","buffer_save_ext","buffer_seek","buffer_set_surface","buffer_sha1","buffer_sizeof","buffer_tell","buffer_write","camera_apply","camera_create","camera_create_view","camera_destroy","camera_get_active","camera_get_begin_script","camera_get_default","camera_get_end_script","camera_get_proj_mat","camera_get_update_script","camera_get_view_angle","camera_get_view_border_x","camera_get_view_border_y","camera_get_view_height","camera_get_view_mat","camera_get_view_speed_x","camera_get_view_speed_y","camera_get_view_target","camera_get_view_width","camera_get_view_x","camera_get_view_y","camera_set_begin_script","camera_set_default","camera_set_end_script","camera_set_proj_mat","camera_set_update_script","camera_set_view_angle","camera_set_view_border","camera_set_view_mat","camera_set_view_pos","camera_set_view_size","camera_set_view_speed","camera_set_view_target","ceil","choose","chr","clamp","clickable_add","clickable_add_ext","clickable_change","clickable_change_ext","clickable_delete","clickable_exists","clickable_set_style","clipboard_get_text","clipboard_has_text","clipboard_set_text","cloud_file_save","cloud_string_save","cloud_synchronise","code_is_compiled","collision_circle","collision_circle_list","collision_ellipse","collision_ellipse_list","collision_line","collision_line_list","collision_point","collision_point_list","collision_rectangle","collision_rectangle_list","color_get_blue","color_get_green","color_get_hue","color_get_red","color_get_saturation","color_get_value","colour_get_blue","colour_get_green","colour_get_hue","colour_get_red","colour_get_saturation","colour_get_value","cos","darccos","darcsin","darctan","darctan2","date_compare_date","date_compare_datetime","date_compare_time","date_create_datetime","date_current_datetime","date_date_of","date_date_string","date_datetime_string","date_day_span","date_days_in_month","date_days_in_year","date_get_day","date_get_day_of_year","date_get_hour","date_get_hour_of_year","date_get_minute","date_get_minute_of_year","date_get_month","date_get_second","date_get_second_of_year","date_get_timezone","date_get_week","date_get_weekday","date_get_year","date_hour_span","date_inc_day","date_inc_hour","date_inc_minute","date_inc_month","date_inc_second","date_inc_week","date_inc_year","date_is_today","date_leap_year","date_minute_span","date_month_span","date_second_span","date_set_timezone","date_time_of","date_time_string","date_valid_datetime","date_week_span","date_year_span","dcos","debug_event","debug_get_callstack","degtorad","device_get_tilt_x","device_get_tilt_y","device_get_tilt_z","device_is_keypad_open","device_mouse_check_button","device_mouse_check_button_pressed","device_mouse_check_button_released","device_mouse_dbclick_enable","device_mouse_raw_x","device_mouse_raw_y","device_mouse_x","device_mouse_x_to_gui","device_mouse_y","device_mouse_y_to_gui","directory_create","directory_destroy","directory_exists","display_get_dpi_x","display_get_dpi_y","display_get_gui_height","display_get_gui_width","display_get_height","display_get_orientation","display_get_sleep_margin","display_get_timing_method","display_get_width","display_mouse_get_x","display_mouse_get_y","display_mouse_set","display_reset","display_set_gui_maximise","display_set_gui_maximize","display_set_gui_size","display_set_sleep_margin","display_set_timing_method","display_set_ui_visibility","distance_to_object","distance_to_point","dot_product","dot_product_3d","dot_product_3d_normalised","dot_product_3d_normalized","dot_product_normalised","dot_product_normalized","draw_arrow","draw_background","draw_background_ext","draw_background_part_ext","draw_background_tiled","draw_button","draw_circle","draw_circle_color","draw_circle_colour","draw_clear","draw_clear_alpha","draw_ellipse","draw_ellipse_color","draw_ellipse_colour","draw_enable_alphablend","draw_enable_drawevent","draw_enable_swf_aa","draw_flush","draw_get_alpha","draw_get_color","draw_get_colour","draw_get_lighting","draw_get_swf_aa_level","draw_getpixel","draw_getpixel_ext","draw_healthbar","draw_highscore","draw_light_define_ambient","draw_light_define_direction","draw_light_define_point","draw_light_enable","draw_light_get","draw_light_get_ambient","draw_line","draw_line_color","draw_line_colour","draw_line_width","draw_line_width_color","draw_line_width_colour","draw_path","draw_point","draw_point_color","draw_point_colour","draw_primitive_begin","draw_primitive_begin_texture","draw_primitive_end","draw_rectangle","draw_rectangle_color","draw_rectangle_colour","draw_roundrect","draw_roundrect_color","draw_roundrect_color_ext","draw_roundrect_colour","draw_roundrect_colour_ext","draw_roundrect_ext","draw_self","draw_set_alpha","draw_set_alpha_test","draw_set_alpha_test_ref_value","draw_set_blend_mode","draw_set_blend_mode_ext","draw_set_circle_precision","draw_set_color","draw_set_color_write_enable","draw_set_colour","draw_set_font","draw_set_halign","draw_set_lighting","draw_set_swf_aa_level","draw_set_valign","draw_skeleton","draw_skeleton_collision","draw_skeleton_instance","draw_skeleton_time","draw_sprite","draw_sprite_ext","draw_sprite_general","draw_sprite_part","draw_sprite_part_ext","draw_sprite_pos","draw_sprite_stretched","draw_sprite_stretched_ext","draw_sprite_tiled","draw_sprite_tiled_ext","draw_surface","draw_surface_ext","draw_surface_general","draw_surface_part","draw_surface_part_ext","draw_surface_stretched","draw_surface_stretched_ext","draw_surface_tiled","draw_surface_tiled_ext","draw_text","draw_text_color","draw_text_colour","draw_text_ext","draw_text_ext_color","draw_text_ext_colour","draw_text_ext_transformed","draw_text_ext_transformed_color","draw_text_ext_transformed_colour","draw_text_transformed","draw_text_transformed_color","draw_text_transformed_colour","draw_texture_flush","draw_tile","draw_tilemap","draw_triangle","draw_triangle_color","draw_triangle_colour","draw_vertex","draw_vertex_color","draw_vertex_colour","draw_vertex_texture","draw_vertex_texture_color","draw_vertex_texture_colour","ds_exists","ds_grid_add","ds_grid_add_disk","ds_grid_add_grid_region","ds_grid_add_region","ds_grid_clear","ds_grid_copy","ds_grid_create","ds_grid_destroy","ds_grid_get","ds_grid_get_disk_max","ds_grid_get_disk_mean","ds_grid_get_disk_min","ds_grid_get_disk_sum","ds_grid_get_max","ds_grid_get_mean","ds_grid_get_min","ds_grid_get_sum","ds_grid_height","ds_grid_multiply","ds_grid_multiply_disk","ds_grid_multiply_grid_region","ds_grid_multiply_region","ds_grid_read","ds_grid_resize","ds_grid_set","ds_grid_set_disk","ds_grid_set_grid_region","ds_grid_set_region","ds_grid_shuffle","ds_grid_sort","ds_grid_value_disk_exists","ds_grid_value_disk_x","ds_grid_value_disk_y","ds_grid_value_exists","ds_grid_value_x","ds_grid_value_y","ds_grid_width","ds_grid_write","ds_list_add","ds_list_clear","ds_list_copy","ds_list_create","ds_list_delete","ds_list_destroy","ds_list_empty","ds_list_find_index","ds_list_find_value","ds_list_insert","ds_list_mark_as_list","ds_list_mark_as_map","ds_list_read","ds_list_replace","ds_list_set","ds_list_shuffle","ds_list_size","ds_list_sort","ds_list_write","ds_map_add","ds_map_add_list","ds_map_add_map","ds_map_clear","ds_map_copy","ds_map_create","ds_map_delete","ds_map_destroy","ds_map_empty","ds_map_exists","ds_map_find_first","ds_map_find_last","ds_map_find_next","ds_map_find_previous","ds_map_find_value","ds_map_read","ds_map_replace","ds_map_replace_list","ds_map_replace_map","ds_map_secure_load","ds_map_secure_load_buffer","ds_map_secure_save","ds_map_secure_save_buffer","ds_map_set","ds_map_size","ds_map_write","ds_priority_add","ds_priority_change_priority","ds_priority_clear","ds_priority_copy","ds_priority_create","ds_priority_delete_max","ds_priority_delete_min","ds_priority_delete_value","ds_priority_destroy","ds_priority_empty","ds_priority_find_max","ds_priority_find_min","ds_priority_find_priority","ds_priority_read","ds_priority_size","ds_priority_write","ds_queue_clear","ds_queue_copy","ds_queue_create","ds_queue_dequeue","ds_queue_destroy","ds_queue_empty","ds_queue_enqueue","ds_queue_head","ds_queue_read","ds_queue_size","ds_queue_tail","ds_queue_write","ds_set_precision","ds_stack_clear","ds_stack_copy","ds_stack_create","ds_stack_destroy","ds_stack_empty","ds_stack_pop","ds_stack_push","ds_stack_read","ds_stack_size","ds_stack_top","ds_stack_write","dsin","dtan","effect_clear","effect_create_above","effect_create_below","environment_get_variable","event_inherited","event_perform","event_perform_object","event_user","exp","external_call","external_define","external_free","facebook_accesstoken","facebook_check_permission","facebook_dialog","facebook_graph_request","facebook_init","facebook_launch_offerwall","facebook_login","facebook_logout","facebook_post_message","facebook_request_publish_permissions","facebook_request_read_permissions","facebook_send_invite","facebook_status","facebook_user_id","file_attributes","file_bin_close","file_bin_open","file_bin_position","file_bin_read_byte","file_bin_rewrite","file_bin_seek","file_bin_size","file_bin_write_byte","file_copy","file_delete","file_exists","file_find_close","file_find_first","file_find_next","file_rename","file_text_close","file_text_eof","file_text_eoln","file_text_open_append","file_text_open_from_string","file_text_open_read","file_text_open_write","file_text_read_real","file_text_read_string","file_text_readln","file_text_write_real","file_text_write_string","file_text_writeln","filename_change_ext","filename_dir","filename_drive","filename_ext","filename_name","filename_path","floor","font_add","font_add_enable_aa","font_add_get_enable_aa","font_add_sprite","font_add_sprite_ext","font_delete","font_exists","font_get_bold","font_get_first","font_get_fontname","font_get_italic","font_get_last","font_get_name","font_get_size","font_get_texture","font_get_uvs","font_replace","font_replace_sprite","font_replace_sprite_ext","font_set_cache_size","font_texture_page_size","frac","game_end","game_get_speed","game_load","game_load_buffer","game_restart","game_save","game_save_buffer","game_set_speed","gamepad_axis_count","gamepad_axis_value","gamepad_button_check","gamepad_button_check_pressed","gamepad_button_check_released","gamepad_button_count","gamepad_button_value","gamepad_get_axis_deadzone","gamepad_get_button_threshold","gamepad_get_description","gamepad_get_device_count","gamepad_is_connected","gamepad_is_supported","gamepad_set_axis_deadzone","gamepad_set_button_threshold","gamepad_set_color","gamepad_set_colour","gamepad_set_vibration","gesture_double_tap_distance","gesture_double_tap_time","gesture_drag_distance","gesture_drag_time","gesture_flick_speed","gesture_get_double_tap_distance","gesture_get_double_tap_time","gesture_get_drag_distance","gesture_get_drag_time","gesture_get_flick_speed","gesture_get_pinch_angle_away","gesture_get_pinch_angle_towards","gesture_get_pinch_distance","gesture_get_rotate_angle","gesture_get_rotate_time","gesture_get_tap_count","gesture_pinch_angle_away","gesture_pinch_angle_towards","gesture_pinch_distance","gesture_rotate_angle","gesture_rotate_time","gesture_tap_count","get_integer","get_integer_async","get_login_async","get_open_filename","get_open_filename_ext","get_save_filename","get_save_filename_ext","get_string","get_string_async","get_timer","gml_pragma","gml_release_mode","gpu_get_alphatestenable","gpu_get_alphatestfunc","gpu_get_alphatestref","gpu_get_blendenable","gpu_get_blendmode","gpu_get_blendmode_dest","gpu_get_blendmode_destalpha","gpu_get_blendmode_ext","gpu_get_blendmode_ext_sepalpha","gpu_get_blendmode_src","gpu_get_blendmode_srcalpha","gpu_get_colorwriteenable","gpu_get_colourwriteenable","gpu_get_cullmode","gpu_get_fog","gpu_get_lightingenable","gpu_get_state","gpu_get_tex_filter","gpu_get_tex_filter_ext","gpu_get_tex_max_aniso","gpu_get_tex_max_aniso_ext","gpu_get_tex_max_mip","gpu_get_tex_max_mip_ext","gpu_get_tex_min_mip","gpu_get_tex_min_mip_ext","gpu_get_tex_mip_bias","gpu_get_tex_mip_bias_ext","gpu_get_tex_mip_enable","gpu_get_tex_mip_enable_ext","gpu_get_tex_mip_filter","gpu_get_tex_mip_filter_ext","gpu_get_tex_repeat","gpu_get_tex_repeat_ext","gpu_get_texfilter","gpu_get_texfilter_ext","gpu_get_texrepeat","gpu_get_texrepeat_ext","gpu_get_zfunc","gpu_get_ztestenable","gpu_get_zwriteenable","gpu_pop_state","gpu_push_state","gpu_set_alphatestenable","gpu_set_alphatestfunc","gpu_set_alphatestref","gpu_set_blendenable","gpu_set_blendmode","gpu_set_blendmode_ext","gpu_set_blendmode_ext_sepalpha","gpu_set_colorwriteenable","gpu_set_colourwriteenable","gpu_set_cullmode","gpu_set_fog","gpu_set_lightingenable","gpu_set_state","gpu_set_tex_filter","gpu_set_tex_filter_ext","gpu_set_tex_max_aniso","gpu_set_tex_max_aniso_ext","gpu_set_tex_max_mip","gpu_set_tex_max_mip_ext","gpu_set_tex_min_mip","gpu_set_tex_min_mip_ext","gpu_set_tex_mip_bias","gpu_set_tex_mip_bias_ext","gpu_set_tex_mip_enable","gpu_set_tex_mip_enable_ext","gpu_set_tex_mip_filter","gpu_set_tex_mip_filter_ext","gpu_set_tex_repeat","gpu_set_tex_repeat_ext","gpu_set_texfilter","gpu_set_texfilter_ext","gpu_set_texrepeat","gpu_set_texrepeat_ext","gpu_set_zfunc","gpu_set_ztestenable","gpu_set_zwriteenable","highscore_add","highscore_clear","highscore_name","highscore_value","http_get","http_get_file","http_post_string","http_request","iap_acquire","iap_activate","iap_consume","iap_enumerate_products","iap_product_details","iap_purchase_details","iap_restore_all","iap_status","ini_close","ini_key_delete","ini_key_exists","ini_open","ini_open_from_string","ini_read_real","ini_read_string","ini_section_delete","ini_section_exists","ini_write_real","ini_write_string","instance_activate_all","instance_activate_layer","instance_activate_object","instance_activate_region","instance_change","instance_copy","instance_create","instance_create_depth","instance_create_layer","instance_deactivate_all","instance_deactivate_layer","instance_deactivate_object","instance_deactivate_region","instance_destroy","instance_exists","instance_find","instance_furthest","instance_id_get","instance_nearest","instance_number","instance_place","instance_place_list","instance_position","instance_position_list","int64","io_clear","irandom","irandom_range","is_array","is_bool","is_infinity","is_int32","is_int64","is_matrix","is_method","is_nan","is_numeric","is_ptr","is_real","is_string","is_struct","is_undefined","is_vec3","is_vec4","json_decode","json_encode","keyboard_check","keyboard_check_direct","keyboard_check_pressed","keyboard_check_released","keyboard_clear","keyboard_get_map","keyboard_get_numlock","keyboard_key_press","keyboard_key_release","keyboard_set_map","keyboard_set_numlock","keyboard_unset_map","keyboard_virtual_height","keyboard_virtual_hide","keyboard_virtual_show","keyboard_virtual_status","layer_add_instance","layer_background_alpha","layer_background_blend","layer_background_change","layer_background_create","layer_background_destroy","layer_background_exists","layer_background_get_alpha","layer_background_get_blend","layer_background_get_htiled","layer_background_get_id","layer_background_get_index","layer_background_get_speed","layer_background_get_sprite","layer_background_get_stretch","layer_background_get_visible","layer_background_get_vtiled","layer_background_get_xscale","layer_background_get_yscale","layer_background_htiled","layer_background_index","layer_background_speed","layer_background_sprite","layer_background_stretch","layer_background_visible","layer_background_vtiled","layer_background_xscale","layer_background_yscale","layer_create","layer_depth","layer_destroy","layer_destroy_instances","layer_element_move","layer_exists","layer_force_draw_depth","layer_get_all","layer_get_all_elements","layer_get_depth","layer_get_element_layer","layer_get_element_type","layer_get_forced_depth","layer_get_hspeed","layer_get_id","layer_get_id_at_depth","layer_get_name","layer_get_script_begin","layer_get_script_end","layer_get_shader","layer_get_target_room","layer_get_visible","layer_get_vspeed","layer_get_x","layer_get_y","layer_has_instance","layer_hspeed","layer_instance_get_instance","layer_is_draw_depth_forced","layer_reset_target_room","layer_script_begin","layer_script_end","layer_set_target_room","layer_set_visible","layer_shader","layer_sprite_alpha","layer_sprite_angle","layer_sprite_blend","layer_sprite_change","layer_sprite_create","layer_sprite_destroy","layer_sprite_exists","layer_sprite_get_alpha","layer_sprite_get_angle","layer_sprite_get_blend","layer_sprite_get_id","layer_sprite_get_index","layer_sprite_get_speed","layer_sprite_get_sprite","layer_sprite_get_x","layer_sprite_get_xscale","layer_sprite_get_y","layer_sprite_get_yscale","layer_sprite_index","layer_sprite_speed","layer_sprite_x","layer_sprite_xscale","layer_sprite_y","layer_sprite_yscale","layer_tile_alpha","layer_tile_blend","layer_tile_change","layer_tile_create","layer_tile_destroy","layer_tile_exists","layer_tile_get_alpha","layer_tile_get_blend","layer_tile_get_region","layer_tile_get_sprite","layer_tile_get_visible","layer_tile_get_x","layer_tile_get_xscale","layer_tile_get_y","layer_tile_get_yscale","layer_tile_region","layer_tile_visible","layer_tile_x","layer_tile_xscale","layer_tile_y","layer_tile_yscale","layer_tilemap_create","layer_tilemap_destroy","layer_tilemap_exists","layer_tilemap_get_id","layer_vspeed","layer_x","layer_y","lengthdir_x","lengthdir_y","lerp","ln","load_csv","log10","log2","logn","make_color_hsv","make_color_rgb","make_colour_hsv","make_colour_rgb","math_get_epsilon","math_set_epsilon","matrix_build","matrix_build_identity","matrix_build_lookat","matrix_build_projection_ortho","matrix_build_projection_perspective","matrix_build_projection_perspective_fov","matrix_get","matrix_multiply","matrix_set","matrix_stack_clear","matrix_stack_is_empty","matrix_stack_multiply","matrix_stack_pop","matrix_stack_push","matrix_stack_set","matrix_stack_top","matrix_transform_vertex","max","md5_file","md5_string_unicode","md5_string_utf8","mean","median","merge_color","merge_colour","min","motion_add","motion_set","mouse_check_button","mouse_check_button_pressed","mouse_check_button_released","mouse_clear","mouse_wheel_down","mouse_wheel_up","move_bounce_all","move_bounce_solid","move_contact_all","move_contact_solid","move_outside_all","move_outside_solid","move_random","move_snap","move_towards_point","move_wrap","mp_grid_add_cell","mp_grid_add_instances","mp_grid_add_rectangle","mp_grid_clear_all","mp_grid_clear_cell","mp_grid_clear_rectangle","mp_grid_create","mp_grid_destroy","mp_grid_draw","mp_grid_get_cell","mp_grid_path","mp_grid_to_ds_grid","mp_linear_path","mp_linear_path_object","mp_linear_step","mp_linear_step_object","mp_potential_path","mp_potential_path_object","mp_potential_settings","mp_potential_step","mp_potential_step_object","network_connect","network_connect_raw","network_create_server","network_create_server_raw","network_create_socket","network_create_socket_ext","network_destroy","network_resolve","network_send_broadcast","network_send_packet","network_send_raw","network_send_udp","network_send_udp_raw","network_set_config","network_set_timeout","object_exists","object_get_depth","object_get_mask","object_get_name","object_get_parent","object_get_persistent","object_get_physics","object_get_solid","object_get_sprite","object_get_visible","object_is_ancestor","object_set_mask","object_set_persistent","object_set_solid","object_set_sprite","object_set_visible","ord","os_get_config","os_get_info","os_get_language","os_get_region","os_is_network_connected","os_is_paused","os_lock_orientation","os_powersave_enable","parameter_count","parameter_string","part_emitter_burst","part_emitter_clear","part_emitter_create","part_emitter_destroy","part_emitter_destroy_all","part_emitter_exists","part_emitter_region","part_emitter_stream","part_particles_clear","part_particles_count","part_particles_create","part_particles_create_color","part_particles_create_colour","part_system_automatic_draw","part_system_automatic_update","part_system_clear","part_system_create","part_system_create_layer","part_system_depth","part_system_destroy","part_system_draw_order","part_system_drawit","part_system_exists","part_system_get_layer","part_system_layer","part_system_position","part_system_update","part_type_alpha1","part_type_alpha2","part_type_alpha3","part_type_blend","part_type_clear","part_type_color1","part_type_color2","part_type_color3","part_type_color_hsv","part_type_color_mix","part_type_color_rgb","part_type_colour1","part_type_colour2","part_type_colour3","part_type_colour_hsv","part_type_colour_mix","part_type_colour_rgb","part_type_create","part_type_death","part_type_destroy","part_type_direction","part_type_exists","part_type_gravity","part_type_life","part_type_orientation","part_type_scale","part_type_shape","part_type_size","part_type_speed","part_type_sprite","part_type_step","path_add","path_add_point","path_append","path_assign","path_change_point","path_clear_points","path_delete","path_delete_point","path_duplicate","path_end","path_exists","path_flip","path_get_closed","path_get_kind","path_get_length","path_get_name","path_get_number","path_get_point_speed","path_get_point_x","path_get_point_y","path_get_precision","path_get_speed","path_get_time","path_get_x","path_get_y","path_insert_point","path_mirror","path_rescale","path_reverse","path_rotate","path_set_closed","path_set_kind","path_set_precision","path_shift","path_start","physics_apply_angular_impulse","physics_apply_force","physics_apply_impulse","physics_apply_local_force","physics_apply_local_impulse","physics_apply_torque","physics_draw_debug","physics_fixture_add_point","physics_fixture_bind","physics_fixture_bind_ext","physics_fixture_create","physics_fixture_delete","physics_fixture_set_angular_damping","physics_fixture_set_awake","physics_fixture_set_box_shape","physics_fixture_set_chain_shape","physics_fixture_set_circle_shape","physics_fixture_set_collision_group","physics_fixture_set_density","physics_fixture_set_edge_shape","physics_fixture_set_friction","physics_fixture_set_kinematic","physics_fixture_set_linear_damping","physics_fixture_set_polygon_shape","physics_fixture_set_restitution","physics_fixture_set_sensor","physics_get_density","physics_get_friction","physics_get_restitution","physics_joint_delete","physics_joint_distance_create","physics_joint_enable_motor","physics_joint_friction_create","physics_joint_gear_create","physics_joint_get_value","physics_joint_prismatic_create","physics_joint_pulley_create","physics_joint_revolute_create","physics_joint_rope_create","physics_joint_set_value","physics_joint_weld_create","physics_joint_wheel_create","physics_mass_properties","physics_particle_count","physics_particle_create","physics_particle_delete","physics_particle_delete_region_box","physics_particle_delete_region_circle","physics_particle_delete_region_poly","physics_particle_draw","physics_particle_draw_ext","physics_particle_get_damping","physics_particle_get_data","physics_particle_get_data_particle","physics_particle_get_density","physics_particle_get_gravity_scale","physics_particle_get_group_flags","physics_particle_get_max_count","physics_particle_get_radius","physics_particle_group_add_point","physics_particle_group_begin","physics_particle_group_box","physics_particle_group_circle","physics_particle_group_count","physics_particle_group_delete","physics_particle_group_end","physics_particle_group_get_ang_vel","physics_particle_group_get_angle","physics_particle_group_get_centre_x","physics_particle_group_get_centre_y","physics_particle_group_get_data","physics_particle_group_get_inertia","physics_particle_group_get_mass","physics_particle_group_get_vel_x","physics_particle_group_get_vel_y","physics_particle_group_get_x","physics_particle_group_get_y","physics_particle_group_join","physics_particle_group_polygon","physics_particle_set_category_flags","physics_particle_set_damping","physics_particle_set_density","physics_particle_set_flags","physics_particle_set_gravity_scale","physics_particle_set_group_flags","physics_particle_set_max_count","physics_particle_set_radius","physics_pause_enable","physics_remove_fixture","physics_set_density","physics_set_friction","physics_set_restitution","physics_test_overlap","physics_world_create","physics_world_draw_debug","physics_world_gravity","physics_world_update_iterations","physics_world_update_speed","place_empty","place_free","place_meeting","place_snapped","point_direction","point_distance","point_distance_3d","point_in_circle","point_in_rectangle","point_in_triangle","position_change","position_destroy","position_empty","position_meeting","power","ptr","push_cancel_local_notification","push_get_first_local_notification","push_get_next_local_notification","push_local_notification","radtodeg","random","random_get_seed","random_range","random_set_seed","randomise","randomize","real","rectangle_in_circle","rectangle_in_rectangle","rectangle_in_triangle","room_add","room_assign","room_duplicate","room_exists","room_get_camera","room_get_name","room_get_viewport","room_goto","room_goto_next","room_goto_previous","room_instance_add","room_instance_clear","room_next","room_previous","room_restart","room_set_background_color","room_set_background_colour","room_set_camera","room_set_height","room_set_persistent","room_set_view","room_set_view_enabled","room_set_viewport","room_set_width","round","screen_save","screen_save_part","script_execute","script_exists","script_get_name","sha1_file","sha1_string_unicode","sha1_string_utf8","shader_current","shader_enable_corner_id","shader_get_name","shader_get_sampler_index","shader_get_uniform","shader_is_compiled","shader_reset","shader_set","shader_set_uniform_f","shader_set_uniform_f_array","shader_set_uniform_i","shader_set_uniform_i_array","shader_set_uniform_matrix","shader_set_uniform_matrix_array","shaders_are_supported","shop_leave_rating","show_debug_message","show_debug_overlay","show_error","show_message","show_message_async","show_question","show_question_async","sign","sin","skeleton_animation_clear","skeleton_animation_get","skeleton_animation_get_duration","skeleton_animation_get_ext","skeleton_animation_get_frame","skeleton_animation_get_frames","skeleton_animation_list","skeleton_animation_mix","skeleton_animation_set","skeleton_animation_set_ext","skeleton_animation_set_frame","skeleton_attachment_create","skeleton_attachment_get","skeleton_attachment_set","skeleton_bone_data_get","skeleton_bone_data_set","skeleton_bone_state_get","skeleton_bone_state_set","skeleton_collision_draw_set","skeleton_get_bounds","skeleton_get_minmax","skeleton_get_num_bounds","skeleton_skin_get","skeleton_skin_list","skeleton_skin_set","skeleton_slot_data","sprite_add","sprite_add_from_surface","sprite_assign","sprite_collision_mask","sprite_create_from_surface","sprite_delete","sprite_duplicate","sprite_exists","sprite_flush","sprite_flush_multi","sprite_get_bbox_bottom","sprite_get_bbox_left","sprite_get_bbox_right","sprite_get_bbox_top","sprite_get_height","sprite_get_name","sprite_get_number","sprite_get_speed","sprite_get_speed_type","sprite_get_texture","sprite_get_tpe","sprite_get_uvs","sprite_get_width","sprite_get_xoffset","sprite_get_yoffset","sprite_merge","sprite_prefetch","sprite_prefetch_multi","sprite_replace","sprite_save","sprite_save_strip","sprite_set_alpha_from_sprite","sprite_set_cache_size","sprite_set_cache_size_ext","sprite_set_offset","sprite_set_speed","sqr","sqrt","steam_activate_overlay","steam_activate_overlay_browser","steam_activate_overlay_store","steam_activate_overlay_user","steam_available_languages","steam_clear_achievement","steam_create_leaderboard","steam_current_game_language","steam_download_friends_scores","steam_download_scores","steam_download_scores_around_user","steam_file_delete","steam_file_exists","steam_file_persisted","steam_file_read","steam_file_share","steam_file_size","steam_file_write","steam_file_write_file","steam_get_achievement","steam_get_app_id","steam_get_persona_name","steam_get_quota_free","steam_get_quota_total","steam_get_stat_avg_rate","steam_get_stat_float","steam_get_stat_int","steam_get_user_account_id","steam_get_user_persona_name","steam_get_user_steam_id","steam_initialised","steam_is_cloud_enabled_for_account","steam_is_cloud_enabled_for_app","steam_is_overlay_activated","steam_is_overlay_enabled","steam_is_screenshot_requested","steam_is_user_logged_on","steam_reset_all_stats","steam_reset_all_stats_achievements","steam_send_screenshot","steam_set_achievement","steam_set_stat_avg_rate","steam_set_stat_float","steam_set_stat_int","steam_stats_ready","steam_ugc_create_item","steam_ugc_create_query_all","steam_ugc_create_query_all_ex","steam_ugc_create_query_user","steam_ugc_create_query_user_ex","steam_ugc_download","steam_ugc_get_item_install_info","steam_ugc_get_item_update_info","steam_ugc_get_item_update_progress","steam_ugc_get_subscribed_items","steam_ugc_num_subscribed_items","steam_ugc_query_add_excluded_tag","steam_ugc_query_add_required_tag","steam_ugc_query_set_allow_cached_response","steam_ugc_query_set_cloud_filename_filter","steam_ugc_query_set_match_any_tag","steam_ugc_query_set_ranked_by_trend_days","steam_ugc_query_set_return_long_description","steam_ugc_query_set_return_total_only","steam_ugc_query_set_search_text","steam_ugc_request_item_details","steam_ugc_send_query","steam_ugc_set_item_content","steam_ugc_set_item_description","steam_ugc_set_item_preview","steam_ugc_set_item_tags","steam_ugc_set_item_title","steam_ugc_set_item_visibility","steam_ugc_start_item_update","steam_ugc_submit_item_update","steam_ugc_subscribe_item","steam_ugc_unsubscribe_item","steam_upload_score","steam_upload_score_buffer","steam_upload_score_buffer_ext","steam_upload_score_ext","steam_user_installed_dlc","steam_user_owns_dlc","string","string_byte_at","string_byte_length","string_char_at","string_copy","string_count","string_delete","string_digits","string_format","string_hash_to_newline","string_height","string_height_ext","string_insert","string_length","string_letters","string_lettersdigits","string_lower","string_ord_at","string_pos","string_repeat","string_replace","string_replace_all","string_set_byte_at","string_upper","string_width","string_width_ext","surface_copy","surface_copy_part","surface_create","surface_create_ext","surface_depth_disable","surface_exists","surface_free","surface_get_depth_disable","surface_get_height","surface_get_texture","surface_get_width","surface_getpixel","surface_getpixel_ext","surface_reset_target","surface_resize","surface_save","surface_save_part","surface_set_target","surface_set_target_ext","tan","texture_get_height","texture_get_texel_height","texture_get_texel_width","texture_get_uvs","texture_get_width","texture_global_scale","texture_set_stage","tile_get_empty","tile_get_flip","tile_get_index","tile_get_mirror","tile_get_rotate","tile_set_empty","tile_set_flip","tile_set_index","tile_set_mirror","tile_set_rotate","tilemap_clear","tilemap_get","tilemap_get_at_pixel","tilemap_get_cell_x_at_pixel","tilemap_get_cell_y_at_pixel","tilemap_get_frame","tilemap_get_global_mask","tilemap_get_height","tilemap_get_mask","tilemap_get_tile_height","tilemap_get_tile_width","tilemap_get_tileset","tilemap_get_width","tilemap_get_x","tilemap_get_y","tilemap_set","tilemap_set_at_pixel","tilemap_set_global_mask","tilemap_set_mask","tilemap_tileset","tilemap_x","tilemap_y","timeline_add","timeline_clear","timeline_delete","timeline_exists","timeline_get_name","timeline_max_moment","timeline_moment_add_script","timeline_moment_clear","timeline_size","typeof","url_get_domain","url_open","url_open_ext","url_open_full","variable_global_exists","variable_global_get","variable_global_set","variable_instance_exists","variable_instance_get","variable_instance_get_names","variable_instance_set","variable_struct_exists","variable_struct_get","variable_struct_get_names","variable_struct_names_count","variable_struct_remove","variable_struct_set","vertex_argb","vertex_begin","vertex_color","vertex_colour","vertex_create_buffer","vertex_create_buffer_ext","vertex_create_buffer_from_buffer","vertex_create_buffer_from_buffer_ext","vertex_delete_buffer","vertex_end","vertex_float1","vertex_float2","vertex_float3","vertex_float4","vertex_format_add_color","vertex_format_add_colour","vertex_format_add_custom","vertex_format_add_normal","vertex_format_add_position","vertex_format_add_position_3d","vertex_format_add_texcoord","vertex_format_add_textcoord","vertex_format_begin","vertex_format_delete","vertex_format_end","vertex_freeze","vertex_get_buffer_size","vertex_get_number","vertex_normal","vertex_position","vertex_position_3d","vertex_submit","vertex_texcoord","vertex_ubyte4","view_get_camera","view_get_hport","view_get_surface_id","view_get_visible","view_get_wport","view_get_xport","view_get_yport","view_set_camera","view_set_hport","view_set_surface_id","view_set_visible","view_set_wport","view_set_xport","view_set_yport","virtual_key_add","virtual_key_delete","virtual_key_hide","virtual_key_show","win8_appbar_add_element","win8_appbar_enable","win8_appbar_remove_element","win8_device_touchscreen_available","win8_license_initialize_sandbox","win8_license_trial_version","win8_livetile_badge_clear","win8_livetile_badge_notification","win8_livetile_notification_begin","win8_livetile_notification_end","win8_livetile_notification_expiry","win8_livetile_notification_image_add","win8_livetile_notification_secondary_begin","win8_livetile_notification_tag","win8_livetile_notification_text_add","win8_livetile_queue_enable","win8_livetile_tile_clear","win8_livetile_tile_notification","win8_search_add_suggestions","win8_search_disable","win8_search_enable","win8_secondarytile_badge_notification","win8_secondarytile_delete","win8_secondarytile_pin","win8_settingscharm_add_entry","win8_settingscharm_add_html_entry","win8_settingscharm_add_xaml_entry","win8_settingscharm_get_xaml_property","win8_settingscharm_remove_entry","win8_settingscharm_set_xaml_property","win8_share_file","win8_share_image","win8_share_screenshot","win8_share_text","win8_share_url","window_center","window_device","window_get_caption","window_get_color","window_get_colour","window_get_cursor","window_get_fullscreen","window_get_height","window_get_visible_rects","window_get_width","window_get_x","window_get_y","window_handle","window_has_focus","window_mouse_get_x","window_mouse_get_y","window_mouse_set","window_set_caption","window_set_color","window_set_colour","window_set_cursor","window_set_fullscreen","window_set_max_height","window_set_max_width","window_set_min_height","window_set_min_width","window_set_position","window_set_rectangle","window_set_size","window_view_mouse_get_x","window_view_mouse_get_y","window_views_mouse_get_x","window_views_mouse_get_y","winphone_license_trial_version","winphone_tile_back_content","winphone_tile_back_content_wide","winphone_tile_back_image","winphone_tile_back_image_wide","winphone_tile_back_title","winphone_tile_background_color","winphone_tile_background_colour","winphone_tile_count","winphone_tile_cycle_images","winphone_tile_front_image","winphone_tile_front_image_small","winphone_tile_front_image_wide","winphone_tile_icon_image","winphone_tile_small_background_image","winphone_tile_small_icon_image","winphone_tile_title","winphone_tile_wide_content","zip_unzip"], +literal:["all","false","noone","pointer_invalid","pointer_null","true","undefined"], +symbol:["ANSI_CHARSET","ARABIC_CHARSET","BALTIC_CHARSET","CHINESEBIG5_CHARSET","DEFAULT_CHARSET","EASTEUROPE_CHARSET","GB2312_CHARSET","GM_build_date","GM_runtime_version","GM_version","GREEK_CHARSET","HANGEUL_CHARSET","HEBREW_CHARSET","JOHAB_CHARSET","MAC_CHARSET","OEM_CHARSET","RUSSIAN_CHARSET","SHIFTJIS_CHARSET","SYMBOL_CHARSET","THAI_CHARSET","TURKISH_CHARSET","VIETNAMESE_CHARSET","achievement_achievement_info","achievement_filter_all_players","achievement_filter_favorites_only","achievement_filter_friends_only","achievement_friends_info","achievement_leaderboard_info","achievement_our_info","achievement_pic_loaded","achievement_show_achievement","achievement_show_bank","achievement_show_friend_picker","achievement_show_leaderboard","achievement_show_profile","achievement_show_purchase_prompt","achievement_show_ui","achievement_type_achievement_challenge","achievement_type_score_challenge","asset_font","asset_object","asset_path","asset_room","asset_script","asset_shader","asset_sound","asset_sprite","asset_tiles","asset_timeline","asset_unknown","audio_3d","audio_falloff_exponent_distance","audio_falloff_exponent_distance_clamped","audio_falloff_inverse_distance","audio_falloff_inverse_distance_clamped","audio_falloff_linear_distance","audio_falloff_linear_distance_clamped","audio_falloff_none","audio_mono","audio_new_system","audio_old_system","audio_stereo","bm_add","bm_complex","bm_dest_alpha","bm_dest_color","bm_dest_colour","bm_inv_dest_alpha","bm_inv_dest_color","bm_inv_dest_colour","bm_inv_src_alpha","bm_inv_src_color","bm_inv_src_colour","bm_max","bm_normal","bm_one","bm_src_alpha","bm_src_alpha_sat","bm_src_color","bm_src_colour","bm_subtract","bm_zero","browser_chrome","browser_edge","browser_firefox","browser_ie","browser_ie_mobile","browser_not_a_browser","browser_opera","browser_safari","browser_safari_mobile","browser_tizen","browser_unknown","browser_windows_store","buffer_bool","buffer_f16","buffer_f32","buffer_f64","buffer_fast","buffer_fixed","buffer_generalerror","buffer_grow","buffer_invalidtype","buffer_network","buffer_outofbounds","buffer_outofspace","buffer_s16","buffer_s32","buffer_s8","buffer_seek_end","buffer_seek_relative","buffer_seek_start","buffer_string","buffer_surface_copy","buffer_text","buffer_u16","buffer_u32","buffer_u64","buffer_u8","buffer_vbuffer","buffer_wrap","button_type","c_aqua","c_black","c_blue","c_dkgray","c_fuchsia","c_gray","c_green","c_lime","c_ltgray","c_maroon","c_navy","c_olive","c_orange","c_purple","c_red","c_silver","c_teal","c_white","c_yellow","cmpfunc_always","cmpfunc_equal","cmpfunc_greater","cmpfunc_greaterequal","cmpfunc_less","cmpfunc_lessequal","cmpfunc_never","cmpfunc_notequal","cr_appstart","cr_arrow","cr_beam","cr_cross","cr_default","cr_drag","cr_handpoint","cr_hourglass","cr_none","cr_size_all","cr_size_nesw","cr_size_ns","cr_size_nwse","cr_size_we","cr_uparrow","cull_clockwise","cull_counterclockwise","cull_noculling","device_emulator","device_ios_ipad","device_ios_ipad_retina","device_ios_iphone","device_ios_iphone5","device_ios_iphone6","device_ios_iphone6plus","device_ios_iphone_retina","device_ios_unknown","device_tablet","display_landscape","display_landscape_flipped","display_portrait","display_portrait_flipped","dll_cdecl","dll_stdcall","ds_type_grid","ds_type_list","ds_type_map","ds_type_priority","ds_type_queue","ds_type_stack","ef_cloud","ef_ellipse","ef_explosion","ef_firework","ef_flare","ef_rain","ef_ring","ef_smoke","ef_smokeup","ef_snow","ef_spark","ef_star","ev_alarm","ev_animation_end","ev_boundary","ev_cleanup","ev_close_button","ev_collision","ev_create","ev_destroy","ev_draw","ev_draw_begin","ev_draw_end","ev_draw_post","ev_draw_pre","ev_end_of_path","ev_game_end","ev_game_start","ev_gesture","ev_gesture_double_tap","ev_gesture_drag_end","ev_gesture_drag_start","ev_gesture_dragging","ev_gesture_flick","ev_gesture_pinch_end","ev_gesture_pinch_in","ev_gesture_pinch_out","ev_gesture_pinch_start","ev_gesture_rotate_end","ev_gesture_rotate_start","ev_gesture_rotating","ev_gesture_tap","ev_global_gesture_double_tap","ev_global_gesture_drag_end","ev_global_gesture_drag_start","ev_global_gesture_dragging","ev_global_gesture_flick","ev_global_gesture_pinch_end","ev_global_gesture_pinch_in","ev_global_gesture_pinch_out","ev_global_gesture_pinch_start","ev_global_gesture_rotate_end","ev_global_gesture_rotate_start","ev_global_gesture_rotating","ev_global_gesture_tap","ev_global_left_button","ev_global_left_press","ev_global_left_release","ev_global_middle_button","ev_global_middle_press","ev_global_middle_release","ev_global_right_button","ev_global_right_press","ev_global_right_release","ev_gui","ev_gui_begin","ev_gui_end","ev_joystick1_button1","ev_joystick1_button2","ev_joystick1_button3","ev_joystick1_button4","ev_joystick1_button5","ev_joystick1_button6","ev_joystick1_button7","ev_joystick1_button8","ev_joystick1_down","ev_joystick1_left","ev_joystick1_right","ev_joystick1_up","ev_joystick2_button1","ev_joystick2_button2","ev_joystick2_button3","ev_joystick2_button4","ev_joystick2_button5","ev_joystick2_button6","ev_joystick2_button7","ev_joystick2_button8","ev_joystick2_down","ev_joystick2_left","ev_joystick2_right","ev_joystick2_up","ev_keyboard","ev_keypress","ev_keyrelease","ev_left_button","ev_left_press","ev_left_release","ev_middle_button","ev_middle_press","ev_middle_release","ev_mouse","ev_mouse_enter","ev_mouse_leave","ev_mouse_wheel_down","ev_mouse_wheel_up","ev_no_button","ev_no_more_health","ev_no_more_lives","ev_other","ev_outside","ev_right_button","ev_right_press","ev_right_release","ev_room_end","ev_room_start","ev_step","ev_step_begin","ev_step_end","ev_step_normal","ev_trigger","ev_user0","ev_user1","ev_user2","ev_user3","ev_user4","ev_user5","ev_user6","ev_user7","ev_user8","ev_user9","ev_user10","ev_user11","ev_user12","ev_user13","ev_user14","ev_user15","fa_archive","fa_bottom","fa_center","fa_directory","fa_hidden","fa_left","fa_middle","fa_readonly","fa_right","fa_sysfile","fa_top","fa_volumeid","fb_login_default","fb_login_fallback_to_webview","fb_login_forcing_safari","fb_login_forcing_webview","fb_login_no_fallback_to_webview","fb_login_use_system_account","gamespeed_fps","gamespeed_microseconds","ge_lose","global","gp_axislh","gp_axislv","gp_axisrh","gp_axisrv","gp_face1","gp_face2","gp_face3","gp_face4","gp_padd","gp_padl","gp_padr","gp_padu","gp_select","gp_shoulderl","gp_shoulderlb","gp_shoulderr","gp_shoulderrb","gp_start","gp_stickl","gp_stickr","iap_available","iap_canceled","iap_ev_consume","iap_ev_product","iap_ev_purchase","iap_ev_restore","iap_ev_storeload","iap_failed","iap_purchased","iap_refunded","iap_status_available","iap_status_loading","iap_status_processing","iap_status_restoring","iap_status_unavailable","iap_status_uninitialised","iap_storeload_failed","iap_storeload_ok","iap_unavailable","input_type","kbv_autocapitalize_characters","kbv_autocapitalize_none","kbv_autocapitalize_sentences","kbv_autocapitalize_words","kbv_returnkey_continue","kbv_returnkey_default","kbv_returnkey_done","kbv_returnkey_emergency","kbv_returnkey_go","kbv_returnkey_google","kbv_returnkey_join","kbv_returnkey_next","kbv_returnkey_route","kbv_returnkey_search","kbv_returnkey_send","kbv_returnkey_yahoo","kbv_type_ascii","kbv_type_default","kbv_type_email","kbv_type_numbers","kbv_type_phone","kbv_type_phone_name","kbv_type_url","layerelementtype_background","layerelementtype_instance","layerelementtype_oldtilemap","layerelementtype_particlesystem","layerelementtype_sprite","layerelementtype_tile","layerelementtype_tilemap","layerelementtype_undefined","lb_disp_none","lb_disp_numeric","lb_disp_time_ms","lb_disp_time_sec","lb_sort_ascending","lb_sort_descending","lb_sort_none","leaderboard_type_number","leaderboard_type_time_mins_secs","lighttype_dir","lighttype_point","local","matrix_projection","matrix_view","matrix_world","mb_any","mb_left","mb_middle","mb_none","mb_right","mip_markedonly","mip_off","mip_on","network_config_connect_timeout","network_config_disable_reliable_udp","network_config_enable_reliable_udp","network_config_use_non_blocking_socket","network_socket_bluetooth","network_socket_tcp","network_socket_udp","network_type_connect","network_type_data","network_type_disconnect","network_type_non_blocking_connect","of_challen","of_challenge_tie","of_challenge_win","os_3ds","os_android","os_bb10","os_ios","os_linux","os_macosx","os_ps3","os_ps4","os_psvita","os_switch","os_symbian","os_tizen","os_tvos","os_unknown","os_uwp","os_wiiu","os_win32","os_win8native","os_windows","os_winphone","os_xbox360","os_xboxone","other","ov_achievements","ov_community","ov_friends","ov_gamegroup","ov_players","ov_settings","path_action_continue","path_action_restart","path_action_reverse","path_action_stop","phy_debug_render_aabb","phy_debug_render_collision_pairs","phy_debug_render_coms","phy_debug_render_core_shapes","phy_debug_render_joints","phy_debug_render_obb","phy_debug_render_shapes","phy_joint_anchor_1_x","phy_joint_anchor_1_y","phy_joint_anchor_2_x","phy_joint_anchor_2_y","phy_joint_angle","phy_joint_angle_limits","phy_joint_damping_ratio","phy_joint_frequency","phy_joint_length_1","phy_joint_length_2","phy_joint_lower_angle_limit","phy_joint_max_force","phy_joint_max_length","phy_joint_max_motor_force","phy_joint_max_motor_torque","phy_joint_max_torque","phy_joint_motor_force","phy_joint_motor_speed","phy_joint_motor_torque","phy_joint_reaction_force_x","phy_joint_reaction_force_y","phy_joint_reaction_torque","phy_joint_speed","phy_joint_translation","phy_joint_upper_angle_limit","phy_particle_data_flag_category","phy_particle_data_flag_color","phy_particle_data_flag_colour","phy_particle_data_flag_position","phy_particle_data_flag_typeflags","phy_particle_data_flag_velocity","phy_particle_flag_colormixing","phy_particle_flag_colourmixing","phy_particle_flag_elastic","phy_particle_flag_powder","phy_particle_flag_spring","phy_particle_flag_tensile","phy_particle_flag_viscous","phy_particle_flag_wall","phy_particle_flag_water","phy_particle_flag_zombie","phy_particle_group_flag_rigid","phy_particle_group_flag_solid","pi","pr_linelist","pr_linestrip","pr_pointlist","pr_trianglefan","pr_trianglelist","pr_trianglestrip","ps_distr_gaussian","ps_distr_invgaussian","ps_distr_linear","ps_shape_diamond","ps_shape_ellipse","ps_shape_line","ps_shape_rectangle","pt_shape_circle","pt_shape_cloud","pt_shape_disk","pt_shape_explosion","pt_shape_flare","pt_shape_line","pt_shape_pixel","pt_shape_ring","pt_shape_smoke","pt_shape_snow","pt_shape_spark","pt_shape_sphere","pt_shape_square","pt_shape_star","spritespeed_framespergameframe","spritespeed_framespersecond","text_type","tf_anisotropic","tf_linear","tf_point","tile_flip","tile_index_mask","tile_mirror","tile_rotate","timezone_local","timezone_utc","tm_countvsyncs","tm_sleep","ty_real","ty_string","ugc_filetype_community","ugc_filetype_microtrans","ugc_list_Favorited","ugc_list_Followed","ugc_list_Published","ugc_list_Subscribed","ugc_list_UsedOrPlayed","ugc_list_VotedDown","ugc_list_VotedOn","ugc_list_VotedUp","ugc_list_WillVoteLater","ugc_match_AllGuides","ugc_match_Artwork","ugc_match_Collections","ugc_match_ControllerBindings","ugc_match_IntegratedGuides","ugc_match_Items","ugc_match_Items_Mtx","ugc_match_Items_ReadyToUse","ugc_match_Screenshots","ugc_match_UsableInGame","ugc_match_Videos","ugc_match_WebGuides","ugc_query_AcceptedForGameRankedByAcceptanceDate","ugc_query_CreatedByFollowedUsersRankedByPublicationDate","ugc_query_CreatedByFriendsRankedByPublicationDate","ugc_query_FavoritedByFriendsRankedByPublicationDate","ugc_query_NotYetRated","ugc_query_RankedByNumTimesReported","ugc_query_RankedByPublicationDate","ugc_query_RankedByTextSearch","ugc_query_RankedByTotalVotesAsc","ugc_query_RankedByTrend","ugc_query_RankedByVote","ugc_query_RankedByVotesUp","ugc_result_success","ugc_sortorder_CreationOrderAsc","ugc_sortorder_CreationOrderDesc","ugc_sortorder_ForModeration","ugc_sortorder_LastUpdatedDesc","ugc_sortorder_SubscriptionDateDesc","ugc_sortorder_TitleAsc","ugc_sortorder_VoteScoreDesc","ugc_visibility_friends_only","ugc_visibility_private","ugc_visibility_public","vertex_type_color","vertex_type_colour","vertex_type_float1","vertex_type_float2","vertex_type_float3","vertex_type_float4","vertex_type_ubyte4","vertex_usage_binormal","vertex_usage_blendindices","vertex_usage_blendweight","vertex_usage_color","vertex_usage_colour","vertex_usage_depth","vertex_usage_fog","vertex_usage_normal","vertex_usage_position","vertex_usage_psize","vertex_usage_sample","vertex_usage_tangent","vertex_usage_texcoord","vertex_usage_textcoord","vk_add","vk_alt","vk_anykey","vk_backspace","vk_control","vk_decimal","vk_delete","vk_divide","vk_down","vk_end","vk_enter","vk_escape","vk_f1","vk_f2","vk_f3","vk_f4","vk_f5","vk_f6","vk_f7","vk_f8","vk_f9","vk_f10","vk_f11","vk_f12","vk_home","vk_insert","vk_lalt","vk_lcontrol","vk_left","vk_lshift","vk_multiply","vk_nokey","vk_numpad0","vk_numpad1","vk_numpad2","vk_numpad3","vk_numpad4","vk_numpad5","vk_numpad6","vk_numpad7","vk_numpad8","vk_numpad9","vk_pagedown","vk_pageup","vk_pause","vk_printscreen","vk_ralt","vk_rcontrol","vk_return","vk_right","vk_rshift","vk_shift","vk_space","vk_subtract","vk_tab","vk_up"], +"variable.language":["alarm","application_surface","argument","argument0","argument1","argument2","argument3","argument4","argument5","argument6","argument7","argument8","argument9","argument10","argument11","argument12","argument13","argument14","argument15","argument_count","argument_relative","async_load","background_color","background_colour","background_showcolor","background_showcolour","bbox_bottom","bbox_left","bbox_right","bbox_top","browser_height","browser_width","caption_health","caption_lives","caption_score","current_day","current_hour","current_minute","current_month","current_second","current_time","current_weekday","current_year","cursor_sprite","debug_mode","delta_time","depth","direction","display_aa","error_last","error_occurred","event_action","event_data","event_number","event_object","event_type","fps","fps_real","friction","game_display_name","game_id","game_project_name","game_save_id","gamemaker_pro","gamemaker_registered","gamemaker_version","gravity","gravity_direction","health","hspeed","iap_data","id|0","image_alpha","image_angle","image_blend","image_index","image_number","image_speed","image_xscale","image_yscale","instance_count","instance_id","keyboard_key","keyboard_lastchar","keyboard_lastkey","keyboard_string","layer","lives","mask_index","mouse_button","mouse_lastbutton","mouse_x","mouse_y","object_index","os_browser","os_device","os_type","os_version","path_endaction","path_index","path_orientation","path_position","path_positionprevious","path_scale","path_speed","persistent","phy_active","phy_angular_damping","phy_angular_velocity","phy_bullet","phy_col_normal_x","phy_col_normal_y","phy_collision_points","phy_collision_x","phy_collision_y","phy_com_x","phy_com_y","phy_dynamic","phy_fixed_rotation","phy_inertia","phy_kinematic","phy_linear_damping","phy_linear_velocity_x","phy_linear_velocity_y","phy_mass","phy_position_x","phy_position_xprevious","phy_position_y","phy_position_yprevious","phy_rotation","phy_sleeping","phy_speed","phy_speed_x","phy_speed_y","program_directory","room","room_caption","room_first","room_height","room_last","room_persistent","room_speed","room_width","score","self","show_health","show_lives","show_score","solid","speed","sprite_height","sprite_index","sprite_width","sprite_xoffset","sprite_yoffset","temp_directory","timeline_index","timeline_loop","timeline_position","timeline_running","timeline_speed","view_angle","view_camera","view_current","view_enabled","view_hborder","view_hport","view_hspeed","view_hview","view_object","view_surface_id","view_vborder","view_visible","view_vspeed","view_wport","view_wview","view_xport","view_xview","view_yport","view_yview","visible","vspeed","webgl_enabled","working_directory","xprevious","xstart","x|0","yprevious","ystart","y|0"] +}, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE] +})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/go.min.js b/src/app/resources/assets/highlight/es/languages/go.min.js new file mode 100644 index 0000000..017d0dc --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/go.min.js @@ -0,0 +1,14 @@ +/*! `go` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n={ +keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"], +type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"], +literal:["true","false","iota","nil"], +built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"] +};return{name:"Go",aliases:["golang"],keywords:n,illegal:"{"use strict";return e=>({name:"Golo",keywords:{ +keyword:["println","readln","print","import","module","function","local","return","let","var","while","for","foreach","times","in","case","when","match","with","break","continue","augment","augmentation","each","find","filter","reduce","if","then","else","otherwise","try","catch","finally","raise","throw","orIfNull","DynamicObject|10","DynamicVariable","struct","Observable","map","set","vector","list","array"], +literal:["true","false","null"]}, +contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{ +className:"meta",begin:"@[A-Za-z]+"}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/gradle.min.js b/src/app/resources/assets/highlight/es/languages/gradle.min.js new file mode 100644 index 0000000..2ad4643 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/gradle.min.js @@ -0,0 +1,6 @@ +/*! `gradle` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Gradle", +case_insensitive:!0, +keywords:["task","project","allprojects","subprojects","artifacts","buildscript","configurations","dependencies","repositories","sourceSets","description","delete","from","into","include","exclude","source","classpath","destinationDir","includes","options","sourceCompatibility","targetCompatibility","group","flatDir","doLast","doFirst","flatten","todir","fromdir","ant","def","abstract","break","case","catch","continue","default","do","else","extends","final","finally","for","if","implements","instanceof","native","new","private","protected","public","return","static","switch","synchronized","throw","throws","transient","try","volatile","while","strictfp","package","import","false","null","super","this","true","antlrtask","checkstyle","codenarc","copy","boolean","byte","char","class","double","float","int","interface","long","short","void","compile","runTime","file","fileTree","abs","any","append","asList","asWritable","call","collect","compareTo","count","div","dump","each","eachByte","eachFile","eachLine","every","find","findAll","flatten","getAt","getErr","getIn","getOut","getText","grep","immutable","inject","inspect","intersect","invokeMethods","isCase","join","leftShift","minus","multiply","newInputStream","newOutputStream","newPrintWriter","newReader","newWriter","next","plus","pop","power","previous","print","println","push","putAt","read","readBytes","readLines","reverse","reverseEach","round","size","sort","splitEachLine","step","subMap","times","toInteger","toList","tokenize","upto","waitForOrKill","withPrintWriter","withReader","withStream","withWriter","withWriterAppend","write","writeLine"], +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.REGEXP_MODE] +})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/graphql.min.js b/src/app/resources/assets/highlight/es/languages/graphql.min.js new file mode 100644 index 0000000..c8ae52f --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/graphql.min.js @@ -0,0 +1,12 @@ +/*! `graphql` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a=e.regex;return{ +name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1, +keywords:{ +keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"], +literal:["true","false","null"]}, +contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{ +scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation", +begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/, +end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{ +scope:"symbol",begin:a.concat(/[_A-Za-z][_0-9A-Za-z]*/,a.lookahead(/\s*:/)), +relevance:0}],illegal:[/[;<']/,/BEGIN/]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/groovy.min.js b/src/app/resources/assets/highlight/es/languages/groovy.min.js new file mode 100644 index 0000000..d954c69 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/groovy.min.js @@ -0,0 +1,21 @@ +/*! `groovy` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";function e(e,a={}){return a.variants=e,a} +return a=>{ +const n=a.regex,t="[A-Za-z0-9_$]+",r=e([a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.COMMENT("/\\*\\*","\\*/",{ +relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag", +begin:"@[A-Za-z]+"}]})]),s={className:"regexp",begin:/~?\/[^\/\n]+\//, +contains:[a.BACKSLASH_ESCAPE] +},l=e([a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]),i=e([{begin:/"""/,end:/"""/},{ +begin:/'''/,end:/'''/},{begin:"\\$/",end:"/\\$",relevance:10 +},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE],{className:"string"}),c={ +match:[/(class|interface|trait|enum|extends|implements)/,/\s+/,a.UNDERSCORE_IDENT_RE], +scope:{1:"keyword",3:"title.class"}};return{name:"Groovy",keywords:{ +"variable.language":"this super",literal:"true false null", +type:["byte","short","char","int","long","boolean","float","double","void"], +keyword:["def","as","in","assert","trait","abstract","static","volatile","transient","public","private","protected","synchronized","final","class","interface","enum","if","else","for","while","switch","case","break","default","continue","throw","throws","try","catch","finally","implements","extends","new","import","package","return","instanceof"] +},contains:[a.SHEBANG({binary:"groovy",relevance:10}),r,i,s,l,c,{ +className:"meta",begin:"@[A-Za-z]+",relevance:0},{className:"attr", +begin:t+"[ \t]*:",relevance:0},{begin:/\?/,end:/:/,relevance:0, +contains:[r,i,s,l,"self"]},{className:"symbol", +begin:"^[ \t]*"+n.lookahead(t+":"),excludeBegin:!0,end:t+":",relevance:0}], +illegal:/#|<\//}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/haml.min.js b/src/app/resources/assets/highlight/es/languages/haml.min.js new file mode 100644 index 0000000..6679316 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/haml.min.js @@ -0,0 +1,18 @@ +/*! `haml` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"HAML",case_insensitive:!0, +contains:[{className:"meta", +begin:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$", +relevance:10},e.COMMENT("^\\s*(!=#|=#|-#|/).*$",null,{relevance:0}),{ +begin:"^\\s*(-|=|!=)(?!#)",end:/$/,subLanguage:"ruby",excludeBegin:!0, +excludeEnd:!0},{className:"tag",begin:"^\\s*%",contains:[{ +className:"selector-tag",begin:"\\w+"},{className:"selector-id",begin:"#[\\w-]+" +},{className:"selector-class",begin:"\\.[\\w-]+"},{begin:/\{\s*/,end:/\s*\}/, +contains:[{begin:":\\w+\\s*=>",end:",\\s+",returnBegin:!0,endsWithParent:!0, +contains:[{className:"attr",begin:":\\w+" +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]},{ +begin:"\\(\\s*",end:"\\s*\\)",excludeEnd:!0,contains:[{begin:"\\w+\\s*=", +end:"\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attr", +begin:"\\w+",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+", +relevance:0}]}]}]},{begin:"^\\s*[=~]\\s*"},{begin:/#\{/,end:/\}/, +subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/handlebars.min.js b/src/app/resources/assets/highlight/es/languages/handlebars.min.js new file mode 100644 index 0000000..a988040 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/handlebars.min.js @@ -0,0 +1,29 @@ +/*! `handlebars` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a=e.regex,n={ +$pattern:/[\w.\/]+/, +built_in:["action","bindattr","collection","component","concat","debugger","each","each-in","get","hash","if","in","input","link-to","loc","log","lookup","mut","outlet","partial","query-params","render","template","textarea","unbound","unless","view","with","yield"] +},t=/\[\]|\[[^\]]+\]/,s=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,i=a.either(/""|"[^"]+"/,/''|'[^']+'/,t,s),r=a.concat(a.optional(/\.|\.\/|\//),i,a.anyNumberOfTimes(a.concat(/(\.|\/)/,i))),l=a.concat("(",t,"|",s,")(?==)"),c={ +begin:r},m=e.inherit(c,{keywords:{$pattern:/[\w.\/]+/, +literal:["true","false","undefined","null"]}}),o={begin:/\(/,end:/\)/},d={ +className:"attr",begin:l,relevance:0,starts:{begin:/=/,end:/=/,starts:{ +contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,m,o]}}},g={ +contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:/as\s+\|/, +keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},d,m,o],returnEnd:!0 +},b=e.inherit(c,{className:"name",keywords:n,starts:e.inherit(g,{end:/\)/})}) +;o.contains=[b];const u=e.inherit(c,{keywords:n,className:"name", +starts:e.inherit(g,{end:/\}\}/})}),h=e.inherit(c,{keywords:n,className:"name" +}),N=e.inherit(c,{className:"name",keywords:n,starts:e.inherit(g,{end:/\}\}/})}) +;return{name:"Handlebars", +aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0, +subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/, +skip:!0},e.COMMENT(/\{\{!--/,/--\}\}/),e.COMMENT(/\{\{!/,/\}\}/),{ +className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[u], +starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{ +className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[h]},{ +className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[u]},{ +className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{ +className:"template-tag",begin:/\{\{(?=else if)/,end:/\}\}/,keywords:"else if" +},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[h]},{ +className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[N]},{ +className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[N]}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/haskell.min.js b/src/app/resources/assets/highlight/es/languages/haskell.min.js new file mode 100644 index 0000000..dbd9cbb --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/haskell.min.js @@ -0,0 +1,29 @@ +/*! `haskell` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n={ +variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},a={ +className:"meta",begin:/\{-#/,end:/#-\}/},i={className:"meta",begin:"^#",end:"$" +},s={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},l={begin:"\\(", +end:"\\)",illegal:'"',contains:[a,i,{className:"type", +begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{ +begin:"[_a-z][\\w']*"}),n]},t="([0-9a-fA-F]_*)+",r={className:"number", +relevance:0,variants:[{ +match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{ +match:`\\b0[xX]_*(${t})(\\.(${t}))?([pP][+-]?(([0-9]_*)+))?\\b`},{ +match:"\\b0[oO](([0-7]_*)+)\\b"},{match:"\\b0[bB](([01]_*)+)\\b"}]};return{ +name:"Haskell",aliases:["hs"], +keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec", +contains:[{beginKeywords:"module",end:"where",keywords:"module where", +contains:[l,n],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$", +keywords:"import qualified as hiding",contains:[l,n],illegal:"\\W\\.|;"},{ +className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where", +keywords:"class family instance where",contains:[s,l,n]},{className:"class", +begin:"\\b(data|(new)?type)\\b",end:"$", +keywords:"data family type newtype deriving",contains:[a,s,l,{begin:/\{/, +end:/\}/,contains:l.contains},n]},{beginKeywords:"default",end:"$", +contains:[s,l,n]},{beginKeywords:"infix infixl infixr",end:"$", +contains:[e.C_NUMBER_MODE,n]},{begin:"\\bforeign\\b",end:"$", +keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe", +contains:[s,e.QUOTE_STRING_MODE,n]},{className:"meta", +begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$" +},a,i,e.QUOTE_STRING_MODE,r,s,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*" +}),n,{begin:"->|<-"}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/haxe.min.js b/src/app/resources/assets/highlight/es/languages/haxe.min.js new file mode 100644 index 0000000..fb4d7c5 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/haxe.min.js @@ -0,0 +1,27 @@ +/*! `haxe` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Haxe",aliases:["hx"], +keywords:{ +keyword:"break case cast catch continue default do dynamic else enum extern for function here if import in inline never new override package private get set public return static super switch this throw trace try typedef untyped using var while Int Float String Bool Dynamic Void Array ", +built_in:"trace this",literal:"true false null _"},contains:[{ +className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{ +className:"subst",begin:"\\$\\{",end:"\\}"},{className:"subst",begin:"\\$", +end:/\W\}/}] +},e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{ +className:"meta",begin:"@:",end:"$"},{className:"meta",begin:"#",end:"$", +keywords:{keyword:"if else elseif end error"}},{className:"type", +begin:":[ \t]*",end:"[^A-Za-z0-9_ \t\\->]",excludeBegin:!0,excludeEnd:!0, +relevance:0},{className:"type",begin:":[ \t]*",end:"\\W",excludeBegin:!0, +excludeEnd:!0},{className:"type",begin:"new *",end:"\\W",excludeBegin:!0, +excludeEnd:!0},{className:"class",beginKeywords:"enum",end:"\\{", +contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"abstract", +end:"[\\{$]",contains:[{className:"type",begin:"\\(",end:"\\)",excludeBegin:!0, +excludeEnd:!0},{className:"type",begin:"from +",end:"\\W",excludeBegin:!0, +excludeEnd:!0},{className:"type",begin:"to +",end:"\\W",excludeBegin:!0, +excludeEnd:!0},e.TITLE_MODE],keywords:{keyword:"abstract from to"}},{ +className:"class",begin:"\\b(class|interface) +",end:"[\\{$]",excludeEnd:!0, +keywords:"class interface",contains:[{className:"keyword", +begin:"\\b(extends|implements) +",keywords:"extends implements",contains:[{ +className:"type",begin:e.IDENT_RE,relevance:0}]},e.TITLE_MODE]},{ +className:"function",beginKeywords:"function",end:"\\(",excludeEnd:!0, +illegal:"\\S",contains:[e.TITLE_MODE]}],illegal:/<\//})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/hsp.min.js b/src/app/resources/assets/highlight/es/languages/hsp.min.js new file mode 100644 index 0000000..4dc5217 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/hsp.min.js @@ -0,0 +1,14 @@ +/*! `hsp` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"HSP",case_insensitive:!0, +keywords:{$pattern:/[\w._]+/, +keyword:"goto gosub return break repeat loop continue wait await dim sdim foreach dimtype dup dupptr end stop newmod delmod mref run exgoto on mcall assert logmes newlab resume yield onexit onerror onkey onclick oncmd exist delete mkdir chdir dirlist bload bsave bcopy memfile if else poke wpoke lpoke getstr chdpm memexpand memcpy memset notesel noteadd notedel noteload notesave randomize noteunsel noteget split strrep setease button chgdisp exec dialog mmload mmplay mmstop mci pset pget syscolor mes print title pos circle cls font sysfont objsize picload color palcolor palette redraw width gsel gcopy gzoom gmode bmpsave hsvcolor getkey listbox chkbox combox input mesbox buffer screen bgscr mouse objsel groll line clrobj boxf objprm objmode stick grect grotate gsquare gradf objimage objskip objenable celload celdiv celput newcom querycom delcom cnvstow comres axobj winobj sendmsg comevent comevarg sarrayconv callfunc cnvwtos comevdisp libptr system hspstat hspver stat cnt err strsize looplev sublev iparam wparam lparam refstr refdval int rnd strlen length length2 length3 length4 vartype gettime peek wpeek lpeek varptr varuse noteinfo instr abs limit getease str strmid strf getpath strtrim sin cos tan atan sqrt double absf expf logf limitf powf geteasef mousex mousey mousew hwnd hinstance hdc ginfo objinfo dirinfo sysinfo thismod __hspver__ __hsp30__ __date__ __time__ __line__ __file__ _debug __hspdef__ and or xor not screen_normal screen_palette screen_hide screen_fixedsize screen_tool screen_frame gmode_gdi gmode_mem gmode_rgb0 gmode_alpha gmode_rgb0alpha gmode_add gmode_sub gmode_pixela ginfo_mx ginfo_my ginfo_act ginfo_sel ginfo_wx1 ginfo_wy1 ginfo_wx2 ginfo_wy2 ginfo_vx ginfo_vy ginfo_sizex ginfo_sizey ginfo_winx ginfo_winy ginfo_mesx ginfo_mesy ginfo_r ginfo_g ginfo_b ginfo_paluse ginfo_dispx ginfo_dispy ginfo_cx ginfo_cy ginfo_intid ginfo_newid ginfo_sx ginfo_sy objinfo_mode objinfo_bmscr objinfo_hwnd notemax notesize dir_cur dir_exe dir_win dir_sys dir_cmdline dir_desktop dir_mydoc dir_tv font_normal font_bold font_italic font_underline font_strikeout font_antialias objmode_normal objmode_guifont objmode_usefont gsquare_grad msgothic msmincho do until while wend for next _break _continue switch case default swbreak swend ddim ldim alloc m_pi rad2deg deg2rad ease_linear ease_quad_in ease_quad_out ease_quad_inout ease_cubic_in ease_cubic_out ease_cubic_inout ease_quartic_in ease_quartic_out ease_quartic_inout ease_bounce_in ease_bounce_out ease_bounce_inout ease_shake_in ease_shake_out ease_shake_inout ease_loop" +}, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{ +className:"string",begin:/\{"/,end:/"\}/,contains:[e.BACKSLASH_ESCAPE] +},e.COMMENT(";","$",{relevance:0}),{className:"meta",begin:"#",end:"$", +keywords:{ +keyword:"addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib" +},contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"string" +}),e.NUMBER_MODE,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE] +},{className:"symbol",begin:"^\\*(\\w+|@)"},e.NUMBER_MODE,e.C_NUMBER_MODE]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/http.min.js b/src/app/resources/assets/highlight/es/languages/http.min.js new file mode 100644 index 0000000..190ba41 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/http.min.js @@ -0,0 +1,14 @@ +/*! `http` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a="HTTP/(2|1\\.[01])",n={ +className:"attribute", +begin:e.regex.concat("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{ +contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$", +relevance:0}}]}},s=[n,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0} +}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{ +begin:"^(?="+a+" \\d{3})",end:/$/,contains:[{className:"meta",begin:a},{ +className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/, +contains:s}},{begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{ +className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{ +className:"meta",begin:a},{className:"keyword",begin:"[A-Z]+"}],starts:{ +end:/\b\B/,illegal:/\S/,contains:s}},e.inherit(n,{relevance:0})]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/hy.min.js b/src/app/resources/assets/highlight/es/languages/hy.min.js new file mode 100644 index 0000000..9ffd075 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/hy.min.js @@ -0,0 +1,15 @@ +/*! `hy` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a="a-zA-Z_\\-!.?+*=<>&#'",t="["+a+"]["+a+"0-9/;:]*",i={$pattern:t, +built_in:"!= % %= & &= * ** **= *= *map + += , --build-class-- --import-- -= . / // //= /= < << <<= <= = > >= >> >>= @ @= ^ ^= abs accumulate all and any ap-compose ap-dotimes ap-each ap-each-while ap-filter ap-first ap-if ap-last ap-map ap-map-when ap-pipe ap-reduce ap-reject apply as-> ascii assert assoc bin break butlast callable calling-module-name car case cdr chain chr coll? combinations compile compress cond cons cons? continue count curry cut cycle dec def default-method defclass defmacro defmacro-alias defmacro/g! defmain defmethod defmulti defn defn-alias defnc defnr defreader defseq del delattr delete-route dict-comp dir disassemble dispatch-reader-macro distinct divmod do doto drop drop-last drop-while empty? end-sequence eval eval-and-compile eval-when-compile even? every? except exec filter first flatten float? fn fnc fnr for for* format fraction genexpr gensym get getattr global globals group-by hasattr hash hex id identity if if* if-not if-python2 import in inc input instance? integer integer-char? integer? interleave interpose is is-coll is-cons is-empty is-even is-every is-float is-instance is-integer is-integer-char is-iterable is-iterator is-keyword is-neg is-none is-not is-numeric is-odd is-pos is-string is-symbol is-zero isinstance islice issubclass iter iterable? iterate iterator? keyword keyword? lambda last len let lif lif-not list* list-comp locals loop macro-error macroexpand macroexpand-1 macroexpand-all map max merge-with method-decorator min multi-decorator multicombinations name neg? next none? nonlocal not not-in not? nth numeric? oct odd? open or ord partition permutations pos? post-route postwalk pow prewalk print product profile/calls profile/cpu put-route quasiquote quote raise range read read-str recursive-replace reduce remove repeat repeatedly repr require rest round route route-with-methods rwm second seq set-comp setattr setv some sorted string string? sum switch symbol? take take-nth take-while tee try unless unquote unquote-splicing vars walk when while with with* with-decorator with-gensyms xi xor yield yield-from zero? zip zip-longest | |= ~" +},r={begin:t,relevance:0},n={className:"number",begin:"[-+]?\\d+(\\.\\d+)?", +relevance:0},s=e.inherit(e.QUOTE_STRING_MODE,{illegal:null +}),o=e.COMMENT(";","$",{relevance:0}),l={className:"literal", +begin:/\b([Tt]rue|[Ff]alse|nil|None)\b/},c={begin:"[\\[\\{]",end:"[\\]\\}]", +relevance:0},d={className:"comment",begin:"\\^"+t +},m=e.COMMENT("\\^\\{","\\}"),p={className:"symbol",begin:"[:]{1,2}"+t},u={ +begin:"\\(",end:"\\)"},f={endsWithParent:!0,relevance:0},h={className:"name", +relevance:0,keywords:i,begin:t,starts:f},g=[u,s,d,m,o,p,c,n,l,r] +;return u.contains=[e.COMMENT("comment",""),h,f],f.contains=g,c.contains=g,{ +name:"Hy",aliases:["hylang"],illegal:/\S/, +contains:[e.SHEBANG(),u,s,d,m,o,p,c,n,l]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/inform7.min.js b/src/app/resources/assets/highlight/es/languages/inform7.min.js new file mode 100644 index 0000000..31e681a --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/inform7.min.js @@ -0,0 +1,10 @@ +/*! `inform7` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Inform 7",aliases:["i7"], +case_insensitive:!0,keywords:{ +keyword:"thing room person man woman animal container supporter backdrop door scenery open closed locked inside gender is are say understand kind of rule" +},contains:[{className:"string",begin:'"',end:'"',relevance:0,contains:[{ +className:"subst",begin:"\\[",end:"\\]"}]},{className:"section", +begin:/^(Volume|Book|Part|Chapter|Section|Table)\b/,end:"$"},{ +begin:/^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/, +end:":",contains:[{begin:"\\(This",end:"\\)"}]},{className:"comment", +begin:"\\[",end:"\\]",contains:["self"]}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/ini.min.js b/src/app/resources/assets/highlight/es/languages/ini.min.js new file mode 100644 index 0000000..86380ab --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/ini.min.js @@ -0,0 +1,16 @@ +/*! `ini` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n=e.regex,a={ +className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{ +begin:e.NUMBER_RE}]},s=e.COMMENT();s.variants=[{begin:/;/,end:/$/},{begin:/#/, +end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{ +begin:/\$\{(.*?)\}/}]},r={className:"literal", +begin:/\bon|off|true|false|yes|no\b/},t={className:"string", +contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{ +begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}] +},l={begin:/\[/,end:/\]/,contains:[s,r,i,t,a,"self"],relevance:0 +},c=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{ +name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/, +contains:[s,{className:"section",begin:/\[+/,end:/\]+/},{ +begin:n.concat(c,"(\\s*\\.\\s*",c,")*",n.lookahead(/\s*=\s*[^#\s]/)), +className:"attr",starts:{end:/$/,contains:[s,l,r,i,t,a]}}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/irpf90.min.js b/src/app/resources/assets/highlight/es/languages/irpf90.min.js new file mode 100644 index 0000000..55ab5d3 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/irpf90.min.js @@ -0,0 +1,15 @@ +/*! `irpf90` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n=e.regex,t=/(_[a-z_\d]+)?/,a=/([de][+-]?\d+)?/,i={className:"number", +variants:[{begin:n.concat(/\b\d+/,/\.(\d*)/,a,t)},{begin:n.concat(/\b\d+/,a,t) +},{begin:n.concat(/\.\d+/,a,t)}],relevance:0};return{name:"IRPF90", +case_insensitive:!0,keywords:{literal:".False. .True.", +keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read", +built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image IRP_ALIGN irp_here" +},illegal:/\/\*/,contains:[e.inherit(e.APOS_STRING_MODE,{className:"string", +relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{className:"string",relevance:0}),{ +className:"function",beginKeywords:"subroutine function program", +illegal:"[${=\\n]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params", +begin:"\\(",end:"\\)"}]},e.COMMENT("!","$",{relevance:0 +}),e.COMMENT("begin_doc","end_doc",{relevance:10}),i]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/isbl.min.js b/src/app/resources/assets/highlight/es/languages/isbl.min.js new file mode 100644 index 0000000..75dd87c --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/isbl.min.js @@ -0,0 +1,25 @@ +/*! `isbl` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return S=>{ +const E="[A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_!][A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_0-9]*",_={ +className:"number",begin:S.NUMBER_RE,relevance:0},T={className:"string", +variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]},R={className:"doctag", +begin:"\\b(?:TODO|DONE|BEGIN|END|STUB|CHG|FIXME|NOTE|BUG|XXX)\\b",relevance:0 +},O={variants:[{className:"comment",begin:"//",end:"$",relevance:0, +contains:[S.PHRASAL_WORDS_MODE,R]},{className:"comment",begin:"/\\*",end:"\\*/", +relevance:0,contains:[S.PHRASAL_WORDS_MODE,R]}]},C={$pattern:E, +keyword:"and \u0438 else \u0438\u043d\u0430\u0447\u0435 endexcept endfinally endforeach \u043a\u043e\u043d\u0435\u0446\u0432\u0441\u0435 endif \u043a\u043e\u043d\u0435\u0446\u0435\u0441\u043b\u0438 endwhile \u043a\u043e\u043d\u0435\u0446\u043f\u043e\u043a\u0430 except exitfor finally foreach \u0432\u0441\u0435 if \u0435\u0441\u043b\u0438 in \u0432 not \u043d\u0435 or \u0438\u043b\u0438 try while \u043f\u043e\u043a\u0430 ", +built_in:"SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT SYSRES_CONST_ACCES_RIGHT_TYPE_FULL SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE SYSRES_CONST_ACCESS_NO_ACCESS_VIEW SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW SYSRES_CONST_ACCESS_RIGHTS_VIEW_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_TYPE_CHANGE SYSRES_CONST_ACCESS_TYPE_CHANGE_CODE SYSRES_CONST_ACCESS_TYPE_EXISTS SYSRES_CONST_ACCESS_TYPE_EXISTS_CODE SYSRES_CONST_ACCESS_TYPE_FULL SYSRES_CONST_ACCESS_TYPE_FULL_CODE SYSRES_CONST_ACCESS_TYPE_VIEW SYSRES_CONST_ACCESS_TYPE_VIEW_CODE SYSRES_CONST_ACTION_TYPE_ABORT SYSRES_CONST_ACTION_TYPE_ACCEPT SYSRES_CONST_ACTION_TYPE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ADD_ATTACHMENT SYSRES_CONST_ACTION_TYPE_CHANGE_CARD SYSRES_CONST_ACTION_TYPE_CHANGE_KIND SYSRES_CONST_ACTION_TYPE_CHANGE_STORAGE SYSRES_CONST_ACTION_TYPE_CONTINUE SYSRES_CONST_ACTION_TYPE_COPY SYSRES_CONST_ACTION_TYPE_CREATE SYSRES_CONST_ACTION_TYPE_CREATE_VERSION SYSRES_CONST_ACTION_TYPE_DELETE SYSRES_CONST_ACTION_TYPE_DELETE_ATTACHMENT SYSRES_CONST_ACTION_TYPE_DELETE_VERSION SYSRES_CONST_ACTION_TYPE_DISABLE_DELEGATE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ENABLE_DELEGATE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE_AND_PASSWORD SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_PASSWORD SYSRES_CONST_ACTION_TYPE_EXPORT_WITH_LOCK SYSRES_CONST_ACTION_TYPE_EXPORT_WITHOUT_LOCK SYSRES_CONST_ACTION_TYPE_IMPORT_WITH_UNLOCK SYSRES_CONST_ACTION_TYPE_IMPORT_WITHOUT_UNLOCK SYSRES_CONST_ACTION_TYPE_LIFE_CYCLE_STAGE SYSRES_CONST_ACTION_TYPE_LOCK SYSRES_CONST_ACTION_TYPE_LOCK_FOR_SERVER SYSRES_CONST_ACTION_TYPE_LOCK_MODIFY SYSRES_CONST_ACTION_TYPE_MARK_AS_READED SYSRES_CONST_ACTION_TYPE_MARK_AS_UNREADED SYSRES_CONST_ACTION_TYPE_MODIFY SYSRES_CONST_ACTION_TYPE_MODIFY_CARD SYSRES_CONST_ACTION_TYPE_MOVE_TO_ARCHIVE SYSRES_CONST_ACTION_TYPE_OFF_ENCRYPTION SYSRES_CONST_ACTION_TYPE_PASSWORD_CHANGE SYSRES_CONST_ACTION_TYPE_PERFORM SYSRES_CONST_ACTION_TYPE_RECOVER_FROM_LOCAL_COPY SYSRES_CONST_ACTION_TYPE_RESTART SYSRES_CONST_ACTION_TYPE_RESTORE_FROM_ARCHIVE SYSRES_CONST_ACTION_TYPE_REVISION SYSRES_CONST_ACTION_TYPE_SEND_BY_MAIL SYSRES_CONST_ACTION_TYPE_SIGN SYSRES_CONST_ACTION_TYPE_START SYSRES_CONST_ACTION_TYPE_UNLOCK SYSRES_CONST_ACTION_TYPE_UNLOCK_FROM_SERVER SYSRES_CONST_ACTION_TYPE_VERSION_STATE SYSRES_CONST_ACTION_TYPE_VERSION_VISIBILITY SYSRES_CONST_ACTION_TYPE_VIEW SYSRES_CONST_ACTION_TYPE_VIEW_SHADOW_COPY SYSRES_CONST_ACTION_TYPE_WORKFLOW_DESCRIPTION_MODIFY SYSRES_CONST_ACTION_TYPE_WRITE_HISTORY SYSRES_CONST_ACTIVE_VERSION_STATE_PICK_VALUE SYSRES_CONST_ADD_REFERENCE_MODE_NAME SYSRES_CONST_ADDITION_REQUISITE_CODE SYSRES_CONST_ADDITIONAL_PARAMS_REQUISITE_CODE SYSRES_CONST_ADITIONAL_JOB_END_DATE_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_READ_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_START_DATE_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_STATE_REQUISITE_NAME SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE_ACTION SYSRES_CONST_ALL_ACCEPT_CONDITION_RUS SYSRES_CONST_ALL_USERS_GROUP SYSRES_CONST_ALL_USERS_GROUP_NAME SYSRES_CONST_ALL_USERS_SERVER_GROUP_NAME SYSRES_CONST_ALLOWED_ACCESS_TYPE_CODE SYSRES_CONST_ALLOWED_ACCESS_TYPE_NAME SYSRES_CONST_APP_VIEWER_TYPE_REQUISITE_CODE SYSRES_CONST_APPROVING_SIGNATURE_NAME SYSRES_CONST_APPROVING_SIGNATURE_REQUISITE_CODE SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE_CODE SYSRES_CONST_ATTACH_TYPE_COMPONENT_TOKEN SYSRES_CONST_ATTACH_TYPE_DOC SYSRES_CONST_ATTACH_TYPE_EDOC SYSRES_CONST_ATTACH_TYPE_FOLDER SYSRES_CONST_ATTACH_TYPE_JOB SYSRES_CONST_ATTACH_TYPE_REFERENCE SYSRES_CONST_ATTACH_TYPE_TASK SYSRES_CONST_AUTH_ENCODED_PASSWORD SYSRES_CONST_AUTH_ENCODED_PASSWORD_CODE SYSRES_CONST_AUTH_NOVELL SYSRES_CONST_AUTH_PASSWORD SYSRES_CONST_AUTH_PASSWORD_CODE SYSRES_CONST_AUTH_WINDOWS SYSRES_CONST_AUTHENTICATING_SIGNATURE_NAME SYSRES_CONST_AUTHENTICATING_SIGNATURE_REQUISITE_CODE SYSRES_CONST_AUTO_ENUM_METHOD_FLAG SYSRES_CONST_AUTO_NUMERATION_CODE SYSRES_CONST_AUTO_STRONG_ENUM_METHOD_FLAG SYSRES_CONST_AUTOTEXT_NAME_REQUISITE_CODE SYSRES_CONST_AUTOTEXT_TEXT_REQUISITE_CODE SYSRES_CONST_AUTOTEXT_USAGE_ALL SYSRES_CONST_AUTOTEXT_USAGE_ALL_CODE SYSRES_CONST_AUTOTEXT_USAGE_SIGN SYSRES_CONST_AUTOTEXT_USAGE_SIGN_CODE SYSRES_CONST_AUTOTEXT_USAGE_WORK SYSRES_CONST_AUTOTEXT_USAGE_WORK_CODE SYSRES_CONST_AUTOTEXT_USE_ANYWHERE_CODE SYSRES_CONST_AUTOTEXT_USE_ON_SIGNING_CODE SYSRES_CONST_AUTOTEXT_USE_ON_WORK_CODE SYSRES_CONST_BEGIN_DATE_REQUISITE_CODE SYSRES_CONST_BLACK_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_BLUE_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_BTN_PART SYSRES_CONST_CALCULATED_ROLE_TYPE_CODE SYSRES_CONST_CALL_TYPE_VARIABLE_BUTTON_VALUE SYSRES_CONST_CALL_TYPE_VARIABLE_PROGRAM_VALUE SYSRES_CONST_CANCEL_MESSAGE_FUNCTION_RESULT SYSRES_CONST_CARD_PART SYSRES_CONST_CARD_REFERENCE_MODE_NAME SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_ENCRYPT_VALUE SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_AND_ENCRYPT_VALUE SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_VALUE SYSRES_CONST_CHECK_PARAM_VALUE_DATE_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_FLOAT_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_INTEGER_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_PICK_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_REEFRENCE_PARAM_TYPE SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_FEMININE SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_CODE_COMPONENT_TYPE_ADMIN SYSRES_CONST_CODE_COMPONENT_TYPE_DEVELOPER SYSRES_CONST_CODE_COMPONENT_TYPE_DOCS SYSRES_CONST_CODE_COMPONENT_TYPE_EDOC_CARDS SYSRES_CONST_CODE_COMPONENT_TYPE_EXTERNAL_EXECUTABLE SYSRES_CONST_CODE_COMPONENT_TYPE_OTHER SYSRES_CONST_CODE_COMPONENT_TYPE_REFERENCE SYSRES_CONST_CODE_COMPONENT_TYPE_REPORT SYSRES_CONST_CODE_COMPONENT_TYPE_SCRIPT SYSRES_CONST_CODE_COMPONENT_TYPE_URL SYSRES_CONST_CODE_REQUISITE_ACCESS SYSRES_CONST_CODE_REQUISITE_CODE SYSRES_CONST_CODE_REQUISITE_COMPONENT SYSRES_CONST_CODE_REQUISITE_DESCRIPTION SYSRES_CONST_CODE_REQUISITE_EXCLUDE_COMPONENT SYSRES_CONST_CODE_REQUISITE_RECORD SYSRES_CONST_COMMENT_REQ_CODE SYSRES_CONST_COMMON_SETTINGS_REQUISITE_CODE SYSRES_CONST_COMP_CODE_GRD SYSRES_CONST_COMPONENT_GROUP_TYPE_REQUISITE_CODE SYSRES_CONST_COMPONENT_TYPE_ADMIN_COMPONENTS SYSRES_CONST_COMPONENT_TYPE_DEVELOPER_COMPONENTS SYSRES_CONST_COMPONENT_TYPE_DOCS SYSRES_CONST_COMPONENT_TYPE_EDOC_CARDS SYSRES_CONST_COMPONENT_TYPE_EDOCS SYSRES_CONST_COMPONENT_TYPE_EXTERNAL_EXECUTABLE SYSRES_CONST_COMPONENT_TYPE_OTHER SYSRES_CONST_COMPONENT_TYPE_REFERENCE_TYPES SYSRES_CONST_COMPONENT_TYPE_REFERENCES SYSRES_CONST_COMPONENT_TYPE_REPORTS SYSRES_CONST_COMPONENT_TYPE_SCRIPTS SYSRES_CONST_COMPONENT_TYPE_URL SYSRES_CONST_COMPONENTS_REMOTE_SERVERS_VIEW_CODE SYSRES_CONST_CONDITION_BLOCK_DESCRIPTION SYSRES_CONST_CONST_FIRM_STATUS_COMMON SYSRES_CONST_CONST_FIRM_STATUS_INDIVIDUAL SYSRES_CONST_CONST_NEGATIVE_VALUE SYSRES_CONST_CONST_POSITIVE_VALUE SYSRES_CONST_CONST_SERVER_STATUS_DONT_REPLICATE SYSRES_CONST_CONST_SERVER_STATUS_REPLICATE SYSRES_CONST_CONTENTS_REQUISITE_CODE SYSRES_CONST_DATA_TYPE_BOOLEAN SYSRES_CONST_DATA_TYPE_DATE SYSRES_CONST_DATA_TYPE_FLOAT SYSRES_CONST_DATA_TYPE_INTEGER SYSRES_CONST_DATA_TYPE_PICK SYSRES_CONST_DATA_TYPE_REFERENCE SYSRES_CONST_DATA_TYPE_STRING SYSRES_CONST_DATA_TYPE_TEXT SYSRES_CONST_DATA_TYPE_VARIANT SYSRES_CONST_DATE_CLOSE_REQ_CODE SYSRES_CONST_DATE_FORMAT_DATE_ONLY_CHAR SYSRES_CONST_DATE_OPEN_REQ_CODE SYSRES_CONST_DATE_REQUISITE SYSRES_CONST_DATE_REQUISITE_CODE SYSRES_CONST_DATE_REQUISITE_NAME SYSRES_CONST_DATE_REQUISITE_TYPE SYSRES_CONST_DATE_TYPE_CHAR SYSRES_CONST_DATETIME_FORMAT_VALUE SYSRES_CONST_DEA_ACCESS_RIGHTS_ACTION_CODE SYSRES_CONST_DESCRIPTION_LOCALIZE_ID_REQUISITE_CODE SYSRES_CONST_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_DET1_PART SYSRES_CONST_DET2_PART SYSRES_CONST_DET3_PART SYSRES_CONST_DET4_PART SYSRES_CONST_DET5_PART SYSRES_CONST_DET6_PART SYSRES_CONST_DETAIL_DATASET_KEY_REQUISITE_CODE SYSRES_CONST_DETAIL_PICK_REQUISITE_CODE SYSRES_CONST_DETAIL_REQ_CODE SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_CODE SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_NAME SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_CODE SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_NAME SYSRES_CONST_DOCUMENT_STORAGES_CODE SYSRES_CONST_DOCUMENT_TEMPLATES_TYPE_NAME SYSRES_CONST_DOUBLE_REQUISITE_CODE SYSRES_CONST_EDITOR_CLOSE_FILE_OBSERV_TYPE_CODE SYSRES_CONST_EDITOR_CLOSE_PROCESS_OBSERV_TYPE_CODE SYSRES_CONST_EDITOR_TYPE_REQUISITE_CODE SYSRES_CONST_EDITORS_APPLICATION_NAME_REQUISITE_CODE SYSRES_CONST_EDITORS_CREATE_SEVERAL_PROCESSES_REQUISITE_CODE SYSRES_CONST_EDITORS_EXTENSION_REQUISITE_CODE SYSRES_CONST_EDITORS_OBSERVER_BY_PROCESS_TYPE SYSRES_CONST_EDITORS_REFERENCE_CODE SYSRES_CONST_EDITORS_REPLACE_SPEC_CHARS_REQUISITE_CODE SYSRES_CONST_EDITORS_USE_PLUGINS_REQUISITE_CODE SYSRES_CONST_EDITORS_VIEW_DOCUMENT_OPENED_TO_EDIT_CODE SYSRES_CONST_EDOC_CARD_TYPE_REQUISITE_CODE SYSRES_CONST_EDOC_CARD_TYPES_LINK_REQUISITE_CODE SYSRES_CONST_EDOC_CERTIFICATE_AND_PASSWORD_ENCODE_CODE SYSRES_CONST_EDOC_CERTIFICATE_ENCODE_CODE SYSRES_CONST_EDOC_DATE_REQUISITE_CODE SYSRES_CONST_EDOC_KIND_REFERENCE_CODE SYSRES_CONST_EDOC_KINDS_BY_TEMPLATE_ACTION_CODE SYSRES_CONST_EDOC_MANAGE_ACCESS_CODE SYSRES_CONST_EDOC_NONE_ENCODE_CODE SYSRES_CONST_EDOC_NUMBER_REQUISITE_CODE SYSRES_CONST_EDOC_PASSWORD_ENCODE_CODE SYSRES_CONST_EDOC_READONLY_ACCESS_CODE SYSRES_CONST_EDOC_SHELL_LIFE_TYPE_VIEW_VALUE SYSRES_CONST_EDOC_SIZE_RESTRICTION_PRIORITY_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_CHECK_ACCESS_RIGHTS_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_COMPUTER_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_DATABASE_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_EDIT_IN_STORAGE_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_LOCAL_PATH_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_SHARED_SOURCE_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_TEMPLATE_REQUISITE_CODE SYSRES_CONST_EDOC_TYPES_REFERENCE_CODE SYSRES_CONST_EDOC_VERSION_ACTIVE_STAGE_CODE SYSRES_CONST_EDOC_VERSION_DESIGN_STAGE_CODE SYSRES_CONST_EDOC_VERSION_OBSOLETE_STAGE_CODE SYSRES_CONST_EDOC_WRITE_ACCES_CODE SYSRES_CONST_EDOCUMENT_CARD_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE SYSRES_CONST_ENCODE_CERTIFICATE_TYPE_CODE SYSRES_CONST_END_DATE_REQUISITE_CODE SYSRES_CONST_ENUMERATION_TYPE_REQUISITE_CODE SYSRES_CONST_EXECUTE_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_EXECUTIVE_FILE_STORAGE_TYPE SYSRES_CONST_EXIST_CONST SYSRES_CONST_EXIST_VALUE SYSRES_CONST_EXPORT_LOCK_TYPE_ASK SYSRES_CONST_EXPORT_LOCK_TYPE_WITH_LOCK SYSRES_CONST_EXPORT_LOCK_TYPE_WITHOUT_LOCK SYSRES_CONST_EXPORT_VERSION_TYPE_ASK SYSRES_CONST_EXPORT_VERSION_TYPE_LAST SYSRES_CONST_EXPORT_VERSION_TYPE_LAST_ACTIVE SYSRES_CONST_EXTENSION_REQUISITE_CODE SYSRES_CONST_FILTER_NAME_REQUISITE_CODE SYSRES_CONST_FILTER_REQUISITE_CODE SYSRES_CONST_FILTER_TYPE_COMMON_CODE SYSRES_CONST_FILTER_TYPE_COMMON_NAME SYSRES_CONST_FILTER_TYPE_USER_CODE SYSRES_CONST_FILTER_TYPE_USER_NAME SYSRES_CONST_FILTER_VALUE_REQUISITE_NAME SYSRES_CONST_FLOAT_NUMBER_FORMAT_CHAR SYSRES_CONST_FLOAT_REQUISITE_TYPE SYSRES_CONST_FOLDER_AUTHOR_VALUE SYSRES_CONST_FOLDER_KIND_ANY_OBJECTS SYSRES_CONST_FOLDER_KIND_COMPONENTS SYSRES_CONST_FOLDER_KIND_EDOCS SYSRES_CONST_FOLDER_KIND_JOBS SYSRES_CONST_FOLDER_KIND_TASKS SYSRES_CONST_FOLDER_TYPE_COMMON SYSRES_CONST_FOLDER_TYPE_COMPONENT SYSRES_CONST_FOLDER_TYPE_FAVORITES SYSRES_CONST_FOLDER_TYPE_INBOX SYSRES_CONST_FOLDER_TYPE_OUTBOX SYSRES_CONST_FOLDER_TYPE_QUICK_LAUNCH SYSRES_CONST_FOLDER_TYPE_SEARCH SYSRES_CONST_FOLDER_TYPE_SHORTCUTS SYSRES_CONST_FOLDER_TYPE_USER SYSRES_CONST_FROM_DICTIONARY_ENUM_METHOD_FLAG SYSRES_CONST_FULL_SUBSTITUTE_TYPE SYSRES_CONST_FULL_SUBSTITUTE_TYPE_CODE SYSRES_CONST_FUNCTION_CANCEL_RESULT SYSRES_CONST_FUNCTION_CATEGORY_SYSTEM SYSRES_CONST_FUNCTION_CATEGORY_USER SYSRES_CONST_FUNCTION_FAILURE_RESULT SYSRES_CONST_FUNCTION_SAVE_RESULT SYSRES_CONST_GENERATED_REQUISITE SYSRES_CONST_GREEN_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_GROUP_ACCOUNT_TYPE_VALUE_CODE SYSRES_CONST_GROUP_CATEGORY_NORMAL_CODE SYSRES_CONST_GROUP_CATEGORY_NORMAL_NAME SYSRES_CONST_GROUP_CATEGORY_SERVICE_CODE SYSRES_CONST_GROUP_CATEGORY_SERVICE_NAME SYSRES_CONST_GROUP_COMMON_CATEGORY_FIELD_VALUE SYSRES_CONST_GROUP_FULL_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_RIGHTS_T_REQUISITE_CODE SYSRES_CONST_GROUP_SERVER_CODES_REQUISITE_CODE SYSRES_CONST_GROUP_SERVER_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_SERVICE_CATEGORY_FIELD_VALUE SYSRES_CONST_GROUP_USER_REQUISITE_CODE SYSRES_CONST_GROUPS_REFERENCE_CODE SYSRES_CONST_GROUPS_REQUISITE_CODE SYSRES_CONST_HIDDEN_MODE_NAME SYSRES_CONST_HIGH_LVL_REQUISITE_CODE SYSRES_CONST_HISTORY_ACTION_CREATE_CODE SYSRES_CONST_HISTORY_ACTION_DELETE_CODE SYSRES_CONST_HISTORY_ACTION_EDIT_CODE SYSRES_CONST_HOUR_CHAR SYSRES_CONST_ID_REQUISITE_CODE SYSRES_CONST_IDSPS_REQUISITE_CODE SYSRES_CONST_IMAGE_MODE_COLOR SYSRES_CONST_IMAGE_MODE_GREYSCALE SYSRES_CONST_IMAGE_MODE_MONOCHROME SYSRES_CONST_IMPORTANCE_HIGH SYSRES_CONST_IMPORTANCE_LOW SYSRES_CONST_IMPORTANCE_NORMAL SYSRES_CONST_IN_DESIGN_VERSION_STATE_PICK_VALUE SYSRES_CONST_INCOMING_WORK_RULE_TYPE_CODE SYSRES_CONST_INT_REQUISITE SYSRES_CONST_INT_REQUISITE_TYPE SYSRES_CONST_INTEGER_NUMBER_FORMAT_CHAR SYSRES_CONST_INTEGER_TYPE_CHAR SYSRES_CONST_IS_GENERATED_REQUISITE_NEGATIVE_VALUE SYSRES_CONST_IS_PUBLIC_ROLE_REQUISITE_CODE SYSRES_CONST_IS_REMOTE_USER_NEGATIVE_VALUE SYSRES_CONST_IS_REMOTE_USER_POSITIVE_VALUE SYSRES_CONST_IS_STORED_REQUISITE_NEGATIVE_VALUE SYSRES_CONST_IS_STORED_REQUISITE_STORED_VALUE SYSRES_CONST_ITALIC_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_JOB_BLOCK_DESCRIPTION SYSRES_CONST_JOB_KIND_CONTROL_JOB SYSRES_CONST_JOB_KIND_JOB SYSRES_CONST_JOB_KIND_NOTICE SYSRES_CONST_JOB_STATE_ABORTED SYSRES_CONST_JOB_STATE_COMPLETE SYSRES_CONST_JOB_STATE_WORKING SYSRES_CONST_KIND_REQUISITE_CODE SYSRES_CONST_KIND_REQUISITE_NAME SYSRES_CONST_KINDS_CREATE_SHADOW_COPIES_REQUISITE_CODE SYSRES_CONST_KINDS_DEFAULT_EDOC_LIFE_STAGE_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALL_TEPLATES_ALLOWED_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALLOW_LIFE_CYCLE_STAGE_CHANGING_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALLOW_MULTIPLE_ACTIVE_VERSIONS_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_SHARE_ACCES_RIGHTS_BY_DEFAULT_CODE SYSRES_CONST_KINDS_EDOC_TEMPLATE_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_TYPE_REQUISITE_CODE SYSRES_CONST_KINDS_SIGNERS_REQUISITES_CODE SYSRES_CONST_KOD_INPUT_TYPE SYSRES_CONST_LAST_UPDATE_DATE_REQUISITE_CODE SYSRES_CONST_LIFE_CYCLE_START_STAGE_REQUISITE_CODE SYSRES_CONST_LILAC_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_LINK_OBJECT_KIND_COMPONENT SYSRES_CONST_LINK_OBJECT_KIND_DOCUMENT SYSRES_CONST_LINK_OBJECT_KIND_EDOC SYSRES_CONST_LINK_OBJECT_KIND_FOLDER SYSRES_CONST_LINK_OBJECT_KIND_JOB SYSRES_CONST_LINK_OBJECT_KIND_REFERENCE SYSRES_CONST_LINK_OBJECT_KIND_TASK SYSRES_CONST_LINK_REF_TYPE_REQUISITE_CODE SYSRES_CONST_LIST_REFERENCE_MODE_NAME SYSRES_CONST_LOCALIZATION_DICTIONARY_MAIN_VIEW_CODE SYSRES_CONST_MAIN_VIEW_CODE SYSRES_CONST_MANUAL_ENUM_METHOD_FLAG SYSRES_CONST_MASTER_COMP_TYPE_REQUISITE_CODE SYSRES_CONST_MASTER_TABLE_REC_ID_REQUISITE_CODE SYSRES_CONST_MAXIMIZED_MODE_NAME SYSRES_CONST_ME_VALUE SYSRES_CONST_MESSAGE_ATTENTION_CAPTION SYSRES_CONST_MESSAGE_CONFIRMATION_CAPTION SYSRES_CONST_MESSAGE_ERROR_CAPTION SYSRES_CONST_MESSAGE_INFORMATION_CAPTION SYSRES_CONST_MINIMIZED_MODE_NAME SYSRES_CONST_MINUTE_CHAR SYSRES_CONST_MODULE_REQUISITE_CODE SYSRES_CONST_MONITORING_BLOCK_DESCRIPTION SYSRES_CONST_MONTH_FORMAT_VALUE SYSRES_CONST_NAME_LOCALIZE_ID_REQUISITE_CODE SYSRES_CONST_NAME_REQUISITE_CODE SYSRES_CONST_NAME_SINGULAR_REQUISITE_CODE SYSRES_CONST_NAMEAN_INPUT_TYPE SYSRES_CONST_NEGATIVE_PICK_VALUE SYSRES_CONST_NEGATIVE_VALUE SYSRES_CONST_NO SYSRES_CONST_NO_PICK_VALUE SYSRES_CONST_NO_SIGNATURE_REQUISITE_CODE SYSRES_CONST_NO_VALUE SYSRES_CONST_NONE_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_NORMAL_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_NORMAL_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_NORMAL_MODE_NAME SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_CODE SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_NAME SYSRES_CONST_NOTE_REQUISITE_CODE SYSRES_CONST_NOTICE_BLOCK_DESCRIPTION SYSRES_CONST_NUM_REQUISITE SYSRES_CONST_NUM_STR_REQUISITE_CODE SYSRES_CONST_NUMERATION_AUTO_NOT_STRONG SYSRES_CONST_NUMERATION_AUTO_STRONG SYSRES_CONST_NUMERATION_FROM_DICTONARY SYSRES_CONST_NUMERATION_MANUAL SYSRES_CONST_NUMERIC_TYPE_CHAR SYSRES_CONST_NUMREQ_REQUISITE_CODE SYSRES_CONST_OBSOLETE_VERSION_STATE_PICK_VALUE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_CODE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_FEMININE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_OPTIONAL_FORM_COMP_REQCODE_PREFIX SYSRES_CONST_ORANGE_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_ORIGINALREF_REQUISITE_CODE SYSRES_CONST_OURFIRM_REF_CODE SYSRES_CONST_OURFIRM_REQUISITE_CODE SYSRES_CONST_OURFIRM_VAR SYSRES_CONST_OUTGOING_WORK_RULE_TYPE_CODE SYSRES_CONST_PICK_NEGATIVE_RESULT SYSRES_CONST_PICK_POSITIVE_RESULT SYSRES_CONST_PICK_REQUISITE SYSRES_CONST_PICK_REQUISITE_TYPE SYSRES_CONST_PICK_TYPE_CHAR SYSRES_CONST_PLAN_STATUS_REQUISITE_CODE SYSRES_CONST_PLATFORM_VERSION_COMMENT SYSRES_CONST_PLUGINS_SETTINGS_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_POSITIVE_PICK_VALUE SYSRES_CONST_POWER_TO_CREATE_ACTION_CODE SYSRES_CONST_POWER_TO_SIGN_ACTION_CODE SYSRES_CONST_PRIORITY_REQUISITE_CODE SYSRES_CONST_QUALIFIED_TASK_TYPE SYSRES_CONST_QUALIFIED_TASK_TYPE_CODE SYSRES_CONST_RECSTAT_REQUISITE_CODE SYSRES_CONST_RED_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_REF_ID_T_REF_TYPE_REQUISITE_CODE SYSRES_CONST_REF_REQUISITE SYSRES_CONST_REF_REQUISITE_TYPE SYSRES_CONST_REF_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE SYSRES_CONST_REFERENCE_RECORD_HISTORY_CREATE_ACTION_CODE SYSRES_CONST_REFERENCE_RECORD_HISTORY_DELETE_ACTION_CODE SYSRES_CONST_REFERENCE_RECORD_HISTORY_MODIFY_ACTION_CODE SYSRES_CONST_REFERENCE_TYPE_CHAR SYSRES_CONST_REFERENCE_TYPE_REQUISITE_NAME SYSRES_CONST_REFERENCES_ADD_PARAMS_REQUISITE_CODE SYSRES_CONST_REFERENCES_DISPLAY_REQUISITE_REQUISITE_CODE SYSRES_CONST_REMOTE_SERVER_STATUS_WORKING SYSRES_CONST_REMOTE_SERVER_TYPE_MAIN SYSRES_CONST_REMOTE_SERVER_TYPE_SECONDARY SYSRES_CONST_REMOTE_USER_FLAG_VALUE_CODE SYSRES_CONST_REPORT_APP_EDITOR_INTERNAL SYSRES_CONST_REPORT_BASE_REPORT_ID_REQUISITE_CODE SYSRES_CONST_REPORT_BASE_REPORT_REQUISITE_CODE SYSRES_CONST_REPORT_SCRIPT_REQUISITE_CODE SYSRES_CONST_REPORT_TEMPLATE_REQUISITE_CODE SYSRES_CONST_REPORT_VIEWER_CODE_REQUISITE_CODE SYSRES_CONST_REQ_ALLOW_COMPONENT_DEFAULT_VALUE SYSRES_CONST_REQ_ALLOW_RECORD_DEFAULT_VALUE SYSRES_CONST_REQ_ALLOW_SERVER_COMPONENT_DEFAULT_VALUE SYSRES_CONST_REQ_MODE_AVAILABLE_CODE SYSRES_CONST_REQ_MODE_EDIT_CODE SYSRES_CONST_REQ_MODE_HIDDEN_CODE SYSRES_CONST_REQ_MODE_NOT_AVAILABLE_CODE SYSRES_CONST_REQ_MODE_VIEW_CODE SYSRES_CONST_REQ_NUMBER_REQUISITE_CODE SYSRES_CONST_REQ_SECTION_VALUE SYSRES_CONST_REQ_TYPE_VALUE SYSRES_CONST_REQUISITE_FORMAT_BY_UNIT SYSRES_CONST_REQUISITE_FORMAT_DATE_FULL SYSRES_CONST_REQUISITE_FORMAT_DATE_TIME SYSRES_CONST_REQUISITE_FORMAT_LEFT SYSRES_CONST_REQUISITE_FORMAT_RIGHT SYSRES_CONST_REQUISITE_FORMAT_WITHOUT_UNIT SYSRES_CONST_REQUISITE_NUMBER_REQUISITE_CODE SYSRES_CONST_REQUISITE_SECTION_ACTIONS SYSRES_CONST_REQUISITE_SECTION_BUTTON SYSRES_CONST_REQUISITE_SECTION_BUTTONS SYSRES_CONST_REQUISITE_SECTION_CARD SYSRES_CONST_REQUISITE_SECTION_TABLE SYSRES_CONST_REQUISITE_SECTION_TABLE10 SYSRES_CONST_REQUISITE_SECTION_TABLE11 SYSRES_CONST_REQUISITE_SECTION_TABLE12 SYSRES_CONST_REQUISITE_SECTION_TABLE13 SYSRES_CONST_REQUISITE_SECTION_TABLE14 SYSRES_CONST_REQUISITE_SECTION_TABLE15 SYSRES_CONST_REQUISITE_SECTION_TABLE16 SYSRES_CONST_REQUISITE_SECTION_TABLE17 SYSRES_CONST_REQUISITE_SECTION_TABLE18 SYSRES_CONST_REQUISITE_SECTION_TABLE19 SYSRES_CONST_REQUISITE_SECTION_TABLE2 SYSRES_CONST_REQUISITE_SECTION_TABLE20 SYSRES_CONST_REQUISITE_SECTION_TABLE21 SYSRES_CONST_REQUISITE_SECTION_TABLE22 SYSRES_CONST_REQUISITE_SECTION_TABLE23 SYSRES_CONST_REQUISITE_SECTION_TABLE24 SYSRES_CONST_REQUISITE_SECTION_TABLE3 SYSRES_CONST_REQUISITE_SECTION_TABLE4 SYSRES_CONST_REQUISITE_SECTION_TABLE5 SYSRES_CONST_REQUISITE_SECTION_TABLE6 SYSRES_CONST_REQUISITE_SECTION_TABLE7 SYSRES_CONST_REQUISITE_SECTION_TABLE8 SYSRES_CONST_REQUISITE_SECTION_TABLE9 SYSRES_CONST_REQUISITES_PSEUDOREFERENCE_REQUISITE_NUMBER_REQUISITE_CODE SYSRES_CONST_RIGHT_ALIGNMENT_CODE SYSRES_CONST_ROLES_REFERENCE_CODE SYSRES_CONST_ROUTE_STEP_AFTER_RUS SYSRES_CONST_ROUTE_STEP_AND_CONDITION_RUS SYSRES_CONST_ROUTE_STEP_OR_CONDITION_RUS SYSRES_CONST_ROUTE_TYPE_COMPLEX SYSRES_CONST_ROUTE_TYPE_PARALLEL SYSRES_CONST_ROUTE_TYPE_SERIAL SYSRES_CONST_SBDATASETDESC_NEGATIVE_VALUE SYSRES_CONST_SBDATASETDESC_POSITIVE_VALUE SYSRES_CONST_SBVIEWSDESC_POSITIVE_VALUE SYSRES_CONST_SCRIPT_BLOCK_DESCRIPTION SYSRES_CONST_SEARCH_BY_TEXT_REQUISITE_CODE SYSRES_CONST_SEARCHES_COMPONENT_CONTENT SYSRES_CONST_SEARCHES_CRITERIA_ACTION_NAME SYSRES_CONST_SEARCHES_EDOC_CONTENT SYSRES_CONST_SEARCHES_FOLDER_CONTENT SYSRES_CONST_SEARCHES_JOB_CONTENT SYSRES_CONST_SEARCHES_REFERENCE_CODE SYSRES_CONST_SEARCHES_TASK_CONTENT SYSRES_CONST_SECOND_CHAR SYSRES_CONST_SECTION_REQUISITE_ACTIONS_VALUE SYSRES_CONST_SECTION_REQUISITE_CARD_VALUE SYSRES_CONST_SECTION_REQUISITE_CODE SYSRES_CONST_SECTION_REQUISITE_DETAIL_1_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_2_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_3_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_4_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_5_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_6_VALUE SYSRES_CONST_SELECT_REFERENCE_MODE_NAME SYSRES_CONST_SELECT_TYPE_SELECTABLE SYSRES_CONST_SELECT_TYPE_SELECTABLE_ONLY_CHILD SYSRES_CONST_SELECT_TYPE_SELECTABLE_WITH_CHILD SYSRES_CONST_SELECT_TYPE_UNSLECTABLE SYSRES_CONST_SERVER_TYPE_MAIN SYSRES_CONST_SERVICE_USER_CATEGORY_FIELD_VALUE SYSRES_CONST_SETTINGS_USER_REQUISITE_CODE SYSRES_CONST_SIGNATURE_AND_ENCODE_CERTIFICATE_TYPE_CODE SYSRES_CONST_SIGNATURE_CERTIFICATE_TYPE_CODE SYSRES_CONST_SINGULAR_TITLE_REQUISITE_CODE SYSRES_CONST_SQL_SERVER_AUTHENTIFICATION_FLAG_VALUE_CODE SYSRES_CONST_SQL_SERVER_ENCODE_AUTHENTIFICATION_FLAG_VALUE_CODE SYSRES_CONST_STANDART_ROUTE_REFERENCE_CODE SYSRES_CONST_STANDART_ROUTE_REFERENCE_COMMENT_REQUISITE_CODE SYSRES_CONST_STANDART_ROUTES_GROUPS_REFERENCE_CODE SYSRES_CONST_STATE_REQ_NAME SYSRES_CONST_STATE_REQUISITE_ACTIVE_VALUE SYSRES_CONST_STATE_REQUISITE_CLOSED_VALUE SYSRES_CONST_STATE_REQUISITE_CODE SYSRES_CONST_STATIC_ROLE_TYPE_CODE SYSRES_CONST_STATUS_PLAN_DEFAULT_VALUE SYSRES_CONST_STATUS_VALUE_AUTOCLEANING SYSRES_CONST_STATUS_VALUE_BLUE_SQUARE SYSRES_CONST_STATUS_VALUE_COMPLETE SYSRES_CONST_STATUS_VALUE_GREEN_SQUARE SYSRES_CONST_STATUS_VALUE_ORANGE_SQUARE SYSRES_CONST_STATUS_VALUE_PURPLE_SQUARE SYSRES_CONST_STATUS_VALUE_RED_SQUARE SYSRES_CONST_STATUS_VALUE_SUSPEND SYSRES_CONST_STATUS_VALUE_YELLOW_SQUARE SYSRES_CONST_STDROUTE_SHOW_TO_USERS_REQUISITE_CODE SYSRES_CONST_STORAGE_TYPE_FILE SYSRES_CONST_STORAGE_TYPE_SQL_SERVER SYSRES_CONST_STR_REQUISITE SYSRES_CONST_STRIKEOUT_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_STRING_FORMAT_LEFT_ALIGN_CHAR SYSRES_CONST_STRING_FORMAT_RIGHT_ALIGN_CHAR SYSRES_CONST_STRING_REQUISITE_CODE SYSRES_CONST_STRING_REQUISITE_TYPE SYSRES_CONST_STRING_TYPE_CHAR SYSRES_CONST_SUBSTITUTES_PSEUDOREFERENCE_CODE SYSRES_CONST_SUBTASK_BLOCK_DESCRIPTION SYSRES_CONST_SYSTEM_SETTING_CURRENT_USER_PARAM_VALUE SYSRES_CONST_SYSTEM_SETTING_EMPTY_VALUE_PARAM_VALUE SYSRES_CONST_SYSTEM_VERSION_COMMENT SYSRES_CONST_TASK_ACCESS_TYPE_ALL SYSRES_CONST_TASK_ACCESS_TYPE_ALL_MEMBERS SYSRES_CONST_TASK_ACCESS_TYPE_MANUAL SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION_AND_PASSWORD SYSRES_CONST_TASK_ENCODE_TYPE_NONE SYSRES_CONST_TASK_ENCODE_TYPE_PASSWORD SYSRES_CONST_TASK_ROUTE_ALL_CONDITION SYSRES_CONST_TASK_ROUTE_AND_CONDITION SYSRES_CONST_TASK_ROUTE_OR_CONDITION SYSRES_CONST_TASK_STATE_ABORTED SYSRES_CONST_TASK_STATE_COMPLETE SYSRES_CONST_TASK_STATE_CONTINUED SYSRES_CONST_TASK_STATE_CONTROL SYSRES_CONST_TASK_STATE_INIT SYSRES_CONST_TASK_STATE_WORKING SYSRES_CONST_TASK_TITLE SYSRES_CONST_TASK_TYPES_GROUPS_REFERENCE_CODE SYSRES_CONST_TASK_TYPES_REFERENCE_CODE SYSRES_CONST_TEMPLATES_REFERENCE_CODE SYSRES_CONST_TEST_DATE_REQUISITE_NAME SYSRES_CONST_TEST_DEV_DATABASE_NAME SYSRES_CONST_TEST_DEV_SYSTEM_CODE SYSRES_CONST_TEST_EDMS_DATABASE_NAME SYSRES_CONST_TEST_EDMS_MAIN_CODE SYSRES_CONST_TEST_EDMS_MAIN_DB_NAME SYSRES_CONST_TEST_EDMS_SECOND_CODE SYSRES_CONST_TEST_EDMS_SECOND_DB_NAME SYSRES_CONST_TEST_EDMS_SYSTEM_CODE SYSRES_CONST_TEST_NUMERIC_REQUISITE_NAME SYSRES_CONST_TEXT_REQUISITE SYSRES_CONST_TEXT_REQUISITE_CODE SYSRES_CONST_TEXT_REQUISITE_TYPE SYSRES_CONST_TEXT_TYPE_CHAR SYSRES_CONST_TYPE_CODE_REQUISITE_CODE SYSRES_CONST_TYPE_REQUISITE_CODE SYSRES_CONST_UNDEFINED_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_UNITS_SECTION_ID_REQUISITE_CODE SYSRES_CONST_UNITS_SECTION_REQUISITE_CODE SYSRES_CONST_UNOPERATING_RECORD_FLAG_VALUE_CODE SYSRES_CONST_UNSTORED_DATA_REQUISITE_CODE SYSRES_CONST_UNSTORED_DATA_REQUISITE_NAME SYSRES_CONST_USE_ACCESS_TYPE_CODE SYSRES_CONST_USE_ACCESS_TYPE_NAME SYSRES_CONST_USER_ACCOUNT_TYPE_VALUE_CODE SYSRES_CONST_USER_ADDITIONAL_INFORMATION_REQUISITE_CODE SYSRES_CONST_USER_AND_GROUP_ID_FROM_PSEUDOREFERENCE_REQUISITE_CODE SYSRES_CONST_USER_CATEGORY_NORMAL SYSRES_CONST_USER_CERTIFICATE_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_STATE_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_SUBJECT_NAME_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_THUMBPRINT_REQUISITE_CODE SYSRES_CONST_USER_COMMON_CATEGORY SYSRES_CONST_USER_COMMON_CATEGORY_CODE SYSRES_CONST_USER_FULL_NAME_REQUISITE_CODE SYSRES_CONST_USER_GROUP_TYPE_REQUISITE_CODE SYSRES_CONST_USER_LOGIN_REQUISITE_CODE SYSRES_CONST_USER_REMOTE_CONTROLLER_REQUISITE_CODE SYSRES_CONST_USER_REMOTE_SYSTEM_REQUISITE_CODE SYSRES_CONST_USER_RIGHTS_T_REQUISITE_CODE SYSRES_CONST_USER_SERVER_NAME_REQUISITE_CODE SYSRES_CONST_USER_SERVICE_CATEGORY SYSRES_CONST_USER_SERVICE_CATEGORY_CODE SYSRES_CONST_USER_STATUS_ADMINISTRATOR_CODE SYSRES_CONST_USER_STATUS_ADMINISTRATOR_NAME SYSRES_CONST_USER_STATUS_DEVELOPER_CODE SYSRES_CONST_USER_STATUS_DEVELOPER_NAME SYSRES_CONST_USER_STATUS_DISABLED_CODE SYSRES_CONST_USER_STATUS_DISABLED_NAME SYSRES_CONST_USER_STATUS_SYSTEM_DEVELOPER_CODE SYSRES_CONST_USER_STATUS_USER_CODE SYSRES_CONST_USER_STATUS_USER_NAME SYSRES_CONST_USER_STATUS_USER_NAME_DEPRECATED SYSRES_CONST_USER_TYPE_FIELD_VALUE_USER SYSRES_CONST_USER_TYPE_REQUISITE_CODE SYSRES_CONST_USERS_CONTROLLER_REQUISITE_CODE SYSRES_CONST_USERS_IS_MAIN_SERVER_REQUISITE_CODE SYSRES_CONST_USERS_REFERENCE_CODE SYSRES_CONST_USERS_REGISTRATION_CERTIFICATES_ACTION_NAME SYSRES_CONST_USERS_REQUISITE_CODE SYSRES_CONST_USERS_SYSTEM_REQUISITE_CODE SYSRES_CONST_USERS_USER_ACCESS_RIGHTS_TYPR_REQUISITE_CODE SYSRES_CONST_USERS_USER_AUTHENTICATION_REQUISITE_CODE SYSRES_CONST_USERS_USER_COMPONENT_REQUISITE_CODE SYSRES_CONST_USERS_USER_GROUP_REQUISITE_CODE SYSRES_CONST_USERS_VIEW_CERTIFICATES_ACTION_NAME SYSRES_CONST_VIEW_DEFAULT_CODE SYSRES_CONST_VIEW_DEFAULT_NAME SYSRES_CONST_VIEWER_REQUISITE_CODE SYSRES_CONST_WAITING_BLOCK_DESCRIPTION SYSRES_CONST_WIZARD_FORM_LABEL_TEST_STRING SYSRES_CONST_WIZARD_QUERY_PARAM_HEIGHT_ETALON_STRING SYSRES_CONST_WIZARD_REFERENCE_COMMENT_REQUISITE_CODE SYSRES_CONST_WORK_RULES_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_WORK_TIME_CALENDAR_REFERENCE_CODE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE_RUS SYSRES_CONST_WORK_WORKFLOW_SOFT_ROUTE_TYPE_VALUE_CODE_RUS SYSRES_CONST_WORKFLOW_ROUTE_TYPR_HARD SYSRES_CONST_WORKFLOW_ROUTE_TYPR_SOFT SYSRES_CONST_XML_ENCODING SYSRES_CONST_XREC_STAT_REQUISITE_CODE SYSRES_CONST_XRECID_FIELD_NAME SYSRES_CONST_YES SYSRES_CONST_YES_NO_2_REQUISITE_CODE SYSRES_CONST_YES_NO_REQUISITE_CODE SYSRES_CONST_YES_NO_T_REF_TYPE_REQUISITE_CODE SYSRES_CONST_YES_PICK_VALUE SYSRES_CONST_YES_VALUE CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE ADMINISTRATORS_GROUP_NAME CUSTOMIZERS_GROUP_NAME DEVELOPERS_GROUP_NAME SERVICE_USERS_GROUP_NAME DECISION_BLOCK_FIRST_OPERAND_PROPERTY DECISION_BLOCK_NAME_PROPERTY DECISION_BLOCK_OPERATION_PROPERTY DECISION_BLOCK_RESULT_TYPE_PROPERTY DECISION_BLOCK_SECOND_OPERAND_PROPERTY ANY_FILE_EXTENTION COMPRESSED_DOCUMENT_EXTENSION EXTENDED_DOCUMENT_EXTENSION SHORT_COMPRESSED_DOCUMENT_EXTENSION SHORT_EXTENDED_DOCUMENT_EXTENSION JOB_BLOCK_ABORT_DEADLINE_PROPERTY JOB_BLOCK_AFTER_FINISH_EVENT JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT JOB_BLOCK_ATTACHMENT_PROPERTY JOB_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY JOB_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY JOB_BLOCK_BEFORE_QUERY_PARAMETERS_EVENT JOB_BLOCK_BEFORE_START_EVENT JOB_BLOCK_CREATED_JOBS_PROPERTY JOB_BLOCK_DEADLINE_PROPERTY JOB_BLOCK_EXECUTION_RESULTS_PROPERTY JOB_BLOCK_IS_PARALLEL_PROPERTY JOB_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY JOB_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY JOB_BLOCK_JOB_TEXT_PROPERTY JOB_BLOCK_NAME_PROPERTY JOB_BLOCK_NEED_SIGN_ON_PERFORM_PROPERTY JOB_BLOCK_PERFORMER_PROPERTY JOB_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY JOB_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY JOB_BLOCK_SUBJECT_PROPERTY ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE smHidden smMaximized smMinimized smNormal wmNo wmYes COMPONENT_TOKEN_LINK_KIND DOCUMENT_LINK_KIND EDOCUMENT_LINK_KIND FOLDER_LINK_KIND JOB_LINK_KIND REFERENCE_LINK_KIND TASK_LINK_KIND COMPONENT_TOKEN_LOCK_TYPE EDOCUMENT_VERSION_LOCK_TYPE MONITOR_BLOCK_AFTER_FINISH_EVENT MONITOR_BLOCK_BEFORE_START_EVENT MONITOR_BLOCK_DEADLINE_PROPERTY MONITOR_BLOCK_INTERVAL_PROPERTY MONITOR_BLOCK_INTERVAL_TYPE_PROPERTY MONITOR_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY MONITOR_BLOCK_NAME_PROPERTY MONITOR_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY NOTICE_BLOCK_AFTER_FINISH_EVENT NOTICE_BLOCK_ATTACHMENT_PROPERTY NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY NOTICE_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY NOTICE_BLOCK_BEFORE_START_EVENT NOTICE_BLOCK_CREATED_NOTICES_PROPERTY NOTICE_BLOCK_DEADLINE_PROPERTY NOTICE_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY NOTICE_BLOCK_NAME_PROPERTY NOTICE_BLOCK_NOTICE_TEXT_PROPERTY NOTICE_BLOCK_PERFORMER_PROPERTY NOTICE_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY NOTICE_BLOCK_SUBJECT_PROPERTY dseAfterCancel dseAfterClose dseAfterDelete dseAfterDeleteOutOfTransaction dseAfterInsert dseAfterOpen dseAfterScroll dseAfterUpdate dseAfterUpdateOutOfTransaction dseBeforeCancel dseBeforeClose dseBeforeDelete dseBeforeDetailUpdate dseBeforeInsert dseBeforeOpen dseBeforeUpdate dseOnAnyRequisiteChange dseOnCloseRecord dseOnDeleteError dseOnOpenRecord dseOnPrepareUpdate dseOnUpdateError dseOnUpdateRatifiedRecord dseOnValidDelete dseOnValidUpdate reOnChange reOnChangeValues SELECTION_BEGIN_ROUTE_EVENT SELECTION_END_ROUTE_EVENT CURRENT_PERIOD_IS_REQUIRED PREVIOUS_CARD_TYPE_NAME SHOW_RECORD_PROPERTIES_FORM ACCESS_RIGHTS_SETTING_DIALOG_CODE ADMINISTRATOR_USER_CODE ANALYTIC_REPORT_TYPE asrtHideLocal asrtHideRemote CALCULATED_ROLE_TYPE_CODE COMPONENTS_REFERENCE_DEVELOPER_VIEW_CODE DCTS_TEST_PROTOCOLS_FOLDER_PATH E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED_BY_USER E_EDOC_VERSION_ALREDY_SIGNED E_EDOC_VERSION_ALREDY_SIGNED_BY_USER EDOC_TYPES_CODE_REQUISITE_FIELD_NAME EDOCUMENTS_ALIAS_NAME FILES_FOLDER_PATH FILTER_OPERANDS_DELIMITER FILTER_OPERATIONS_DELIMITER FORMCARD_NAME FORMLIST_NAME GET_EXTENDED_DOCUMENT_EXTENSION_CREATION_MODE GET_EXTENDED_DOCUMENT_EXTENSION_IMPORT_MODE INTEGRATED_REPORT_TYPE IS_BUILDER_APPLICATION_ROLE IS_BUILDER_APPLICATION_ROLE2 IS_BUILDER_USERS ISBSYSDEV LOG_FOLDER_PATH mbCancel mbNo mbNoToAll mbOK mbYes mbYesToAll MEMORY_DATASET_DESRIPTIONS_FILENAME mrNo mrNoToAll mrYes mrYesToAll MULTIPLE_SELECT_DIALOG_CODE NONOPERATING_RECORD_FLAG_FEMININE NONOPERATING_RECORD_FLAG_MASCULINE OPERATING_RECORD_FLAG_FEMININE OPERATING_RECORD_FLAG_MASCULINE PROFILING_SETTINGS_COMMON_SETTINGS_CODE_VALUE PROGRAM_INITIATED_LOOKUP_ACTION ratDelete ratEdit ratInsert REPORT_TYPE REQUIRED_PICK_VALUES_VARIABLE rmCard rmList SBRTE_PROGID_DEV SBRTE_PROGID_RELEASE STATIC_ROLE_TYPE_CODE SUPPRESS_EMPTY_TEMPLATE_CREATION SYSTEM_USER_CODE UPDATE_DIALOG_DATASET USED_IN_OBJECT_HINT_PARAM USER_INITIATED_LOOKUP_ACTION USER_NAME_FORMAT USER_SELECTION_RESTRICTIONS WORKFLOW_TEST_PROTOCOLS_FOLDER_PATH ELS_SUBTYPE_CONTROL_NAME ELS_FOLDER_KIND_CONTROL_NAME REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME PRIVILEGE_COMPONENT_FULL_ACCESS PRIVILEGE_DEVELOPMENT_EXPORT PRIVILEGE_DEVELOPMENT_IMPORT PRIVILEGE_DOCUMENT_DELETE PRIVILEGE_ESD PRIVILEGE_FOLDER_DELETE PRIVILEGE_MANAGE_ACCESS_RIGHTS PRIVILEGE_MANAGE_REPLICATION PRIVILEGE_MANAGE_SESSION_SERVER PRIVILEGE_OBJECT_FULL_ACCESS PRIVILEGE_OBJECT_VIEW PRIVILEGE_RESERVE_LICENSE PRIVILEGE_SYSTEM_CUSTOMIZE PRIVILEGE_SYSTEM_DEVELOP PRIVILEGE_SYSTEM_INSTALL PRIVILEGE_TASK_DELETE PRIVILEGE_USER_PLUGIN_SETTINGS_CUSTOMIZE PRIVILEGES_PSEUDOREFERENCE_CODE ACCESS_TYPES_PSEUDOREFERENCE_CODE ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE ALL_REPLICATE_COMPONENTS_PSEUDOREFERENCE_CODE AVAILABLE_DEVELOPERS_COMPONENTS_PSEUDOREFERENCE_CODE COMPONENTS_PSEUDOREFERENCE_CODE FILTRATER_SETTINGS_CONFLICTS_PSEUDOREFERENCE_CODE GROUPS_PSEUDOREFERENCE_CODE RECEIVE_PROTOCOL_PSEUDOREFERENCE_CODE REFERENCE_REQUISITE_PSEUDOREFERENCE_CODE REFERENCE_REQUISITES_PSEUDOREFERENCE_CODE REFTYPES_PSEUDOREFERENCE_CODE REPLICATION_SEANCES_DIARY_PSEUDOREFERENCE_CODE SEND_PROTOCOL_PSEUDOREFERENCE_CODE SUBSTITUTES_PSEUDOREFERENCE_CODE SYSTEM_SETTINGS_PSEUDOREFERENCE_CODE UNITS_PSEUDOREFERENCE_CODE USERS_PSEUDOREFERENCE_CODE VIEWERS_PSEUDOREFERENCE_CODE CERTIFICATE_TYPE_ENCRYPT CERTIFICATE_TYPE_SIGN CERTIFICATE_TYPE_SIGN_AND_ENCRYPT STORAGE_TYPE_FILE STORAGE_TYPE_NAS_CIFS STORAGE_TYPE_SAPERION STORAGE_TYPE_SQL_SERVER COMPTYPE2_REQUISITE_DOCUMENTS_VALUE COMPTYPE2_REQUISITE_TASKS_VALUE COMPTYPE2_REQUISITE_FOLDERS_VALUE COMPTYPE2_REQUISITE_REFERENCES_VALUE SYSREQ_CODE SYSREQ_COMPTYPE2 SYSREQ_CONST_AVAILABLE_FOR_WEB SYSREQ_CONST_COMMON_CODE SYSREQ_CONST_COMMON_VALUE SYSREQ_CONST_FIRM_CODE SYSREQ_CONST_FIRM_STATUS SYSREQ_CONST_FIRM_VALUE SYSREQ_CONST_SERVER_STATUS SYSREQ_CONTENTS SYSREQ_DATE_OPEN SYSREQ_DATE_CLOSE SYSREQ_DESCRIPTION SYSREQ_DESCRIPTION_LOCALIZE_ID SYSREQ_DOUBLE SYSREQ_EDOC_ACCESS_TYPE SYSREQ_EDOC_AUTHOR SYSREQ_EDOC_CREATED SYSREQ_EDOC_DELEGATE_RIGHTS_REQUISITE_CODE SYSREQ_EDOC_EDITOR SYSREQ_EDOC_ENCODE_TYPE SYSREQ_EDOC_ENCRYPTION_PLUGIN_NAME SYSREQ_EDOC_ENCRYPTION_PLUGIN_VERSION SYSREQ_EDOC_EXPORT_DATE SYSREQ_EDOC_EXPORTER SYSREQ_EDOC_KIND SYSREQ_EDOC_LIFE_STAGE_NAME SYSREQ_EDOC_LOCKED_FOR_SERVER_CODE SYSREQ_EDOC_MODIFIED SYSREQ_EDOC_NAME SYSREQ_EDOC_NOTE SYSREQ_EDOC_QUALIFIED_ID SYSREQ_EDOC_SESSION_KEY SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_NAME SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_VERSION SYSREQ_EDOC_SIGNATURE_TYPE SYSREQ_EDOC_SIGNED SYSREQ_EDOC_STORAGE SYSREQ_EDOC_STORAGES_ARCHIVE_STORAGE SYSREQ_EDOC_STORAGES_CHECK_RIGHTS SYSREQ_EDOC_STORAGES_COMPUTER_NAME SYSREQ_EDOC_STORAGES_EDIT_IN_STORAGE SYSREQ_EDOC_STORAGES_EXECUTIVE_STORAGE SYSREQ_EDOC_STORAGES_FUNCTION SYSREQ_EDOC_STORAGES_INITIALIZED SYSREQ_EDOC_STORAGES_LOCAL_PATH SYSREQ_EDOC_STORAGES_SAPERION_DATABASE_NAME SYSREQ_EDOC_STORAGES_SEARCH_BY_TEXT SYSREQ_EDOC_STORAGES_SERVER_NAME SYSREQ_EDOC_STORAGES_SHARED_SOURCE_NAME SYSREQ_EDOC_STORAGES_TYPE SYSREQ_EDOC_TEXT_MODIFIED SYSREQ_EDOC_TYPE_ACT_CODE SYSREQ_EDOC_TYPE_ACT_DESCRIPTION SYSREQ_EDOC_TYPE_ACT_DESCRIPTION_LOCALIZE_ID SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE_EXISTS SYSREQ_EDOC_TYPE_ACT_SECTION SYSREQ_EDOC_TYPE_ADD_PARAMS SYSREQ_EDOC_TYPE_COMMENT SYSREQ_EDOC_TYPE_EVENT_TEXT SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID SYSREQ_EDOC_TYPE_NAME_LOCALIZE_ID SYSREQ_EDOC_TYPE_NUMERATION_METHOD SYSREQ_EDOC_TYPE_PSEUDO_REQUISITE_CODE SYSREQ_EDOC_TYPE_REQ_CODE SYSREQ_EDOC_TYPE_REQ_DESCRIPTION SYSREQ_EDOC_TYPE_REQ_DESCRIPTION_LOCALIZE_ID SYSREQ_EDOC_TYPE_REQ_IS_LEADING SYSREQ_EDOC_TYPE_REQ_IS_REQUIRED SYSREQ_EDOC_TYPE_REQ_NUMBER SYSREQ_EDOC_TYPE_REQ_ON_CHANGE SYSREQ_EDOC_TYPE_REQ_ON_CHANGE_EXISTS SYSREQ_EDOC_TYPE_REQ_ON_SELECT SYSREQ_EDOC_TYPE_REQ_ON_SELECT_KIND SYSREQ_EDOC_TYPE_REQ_SECTION SYSREQ_EDOC_TYPE_VIEW_CARD SYSREQ_EDOC_TYPE_VIEW_CODE SYSREQ_EDOC_TYPE_VIEW_COMMENT SYSREQ_EDOC_TYPE_VIEW_IS_MAIN SYSREQ_EDOC_TYPE_VIEW_NAME SYSREQ_EDOC_TYPE_VIEW_NAME_LOCALIZE_ID SYSREQ_EDOC_VERSION_AUTHOR SYSREQ_EDOC_VERSION_CRC SYSREQ_EDOC_VERSION_DATA SYSREQ_EDOC_VERSION_EDITOR SYSREQ_EDOC_VERSION_EXPORT_DATE SYSREQ_EDOC_VERSION_EXPORTER SYSREQ_EDOC_VERSION_HIDDEN SYSREQ_EDOC_VERSION_LIFE_STAGE SYSREQ_EDOC_VERSION_MODIFIED SYSREQ_EDOC_VERSION_NOTE SYSREQ_EDOC_VERSION_SIGNATURE_TYPE SYSREQ_EDOC_VERSION_SIGNED SYSREQ_EDOC_VERSION_SIZE SYSREQ_EDOC_VERSION_SOURCE SYSREQ_EDOC_VERSION_TEXT_MODIFIED SYSREQ_EDOCKIND_DEFAULT_VERSION_STATE_CODE SYSREQ_FOLDER_KIND SYSREQ_FUNC_CATEGORY SYSREQ_FUNC_COMMENT SYSREQ_FUNC_GROUP SYSREQ_FUNC_GROUP_COMMENT SYSREQ_FUNC_GROUP_NUMBER SYSREQ_FUNC_HELP SYSREQ_FUNC_PARAM_DEF_VALUE SYSREQ_FUNC_PARAM_IDENT SYSREQ_FUNC_PARAM_NUMBER SYSREQ_FUNC_PARAM_TYPE SYSREQ_FUNC_TEXT SYSREQ_GROUP_CATEGORY SYSREQ_ID SYSREQ_LAST_UPDATE SYSREQ_LEADER_REFERENCE SYSREQ_LINE_NUMBER SYSREQ_MAIN_RECORD_ID SYSREQ_NAME SYSREQ_NAME_LOCALIZE_ID SYSREQ_NOTE SYSREQ_ORIGINAL_RECORD SYSREQ_OUR_FIRM SYSREQ_PROFILING_SETTINGS_BATCH_LOGING SYSREQ_PROFILING_SETTINGS_BATCH_SIZE SYSREQ_PROFILING_SETTINGS_PROFILING_ENABLED SYSREQ_PROFILING_SETTINGS_SQL_PROFILING_ENABLED SYSREQ_PROFILING_SETTINGS_START_LOGGED SYSREQ_RECORD_STATUS SYSREQ_REF_REQ_FIELD_NAME SYSREQ_REF_REQ_FORMAT SYSREQ_REF_REQ_GENERATED SYSREQ_REF_REQ_LENGTH SYSREQ_REF_REQ_PRECISION SYSREQ_REF_REQ_REFERENCE SYSREQ_REF_REQ_SECTION SYSREQ_REF_REQ_STORED SYSREQ_REF_REQ_TOKENS SYSREQ_REF_REQ_TYPE SYSREQ_REF_REQ_VIEW SYSREQ_REF_TYPE_ACT_CODE SYSREQ_REF_TYPE_ACT_DESCRIPTION SYSREQ_REF_TYPE_ACT_DESCRIPTION_LOCALIZE_ID SYSREQ_REF_TYPE_ACT_ON_EXECUTE SYSREQ_REF_TYPE_ACT_ON_EXECUTE_EXISTS SYSREQ_REF_TYPE_ACT_SECTION SYSREQ_REF_TYPE_ADD_PARAMS SYSREQ_REF_TYPE_COMMENT SYSREQ_REF_TYPE_COMMON_SETTINGS SYSREQ_REF_TYPE_DISPLAY_REQUISITE_NAME SYSREQ_REF_TYPE_EVENT_TEXT SYSREQ_REF_TYPE_MAIN_LEADING_REF SYSREQ_REF_TYPE_NAME_IN_SINGULAR SYSREQ_REF_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID SYSREQ_REF_TYPE_NAME_LOCALIZE_ID SYSREQ_REF_TYPE_NUMERATION_METHOD SYSREQ_REF_TYPE_REQ_CODE SYSREQ_REF_TYPE_REQ_DESCRIPTION SYSREQ_REF_TYPE_REQ_DESCRIPTION_LOCALIZE_ID SYSREQ_REF_TYPE_REQ_IS_CONTROL SYSREQ_REF_TYPE_REQ_IS_FILTER SYSREQ_REF_TYPE_REQ_IS_LEADING SYSREQ_REF_TYPE_REQ_IS_REQUIRED SYSREQ_REF_TYPE_REQ_NUMBER SYSREQ_REF_TYPE_REQ_ON_CHANGE SYSREQ_REF_TYPE_REQ_ON_CHANGE_EXISTS SYSREQ_REF_TYPE_REQ_ON_SELECT SYSREQ_REF_TYPE_REQ_ON_SELECT_KIND SYSREQ_REF_TYPE_REQ_SECTION SYSREQ_REF_TYPE_VIEW_CARD SYSREQ_REF_TYPE_VIEW_CODE SYSREQ_REF_TYPE_VIEW_COMMENT SYSREQ_REF_TYPE_VIEW_IS_MAIN SYSREQ_REF_TYPE_VIEW_NAME SYSREQ_REF_TYPE_VIEW_NAME_LOCALIZE_ID SYSREQ_REFERENCE_TYPE_ID SYSREQ_STATE SYSREQ_STAT\u0415 SYSREQ_SYSTEM_SETTINGS_VALUE SYSREQ_TYPE SYSREQ_UNIT SYSREQ_UNIT_ID SYSREQ_USER_GROUPS_GROUP_FULL_NAME SYSREQ_USER_GROUPS_GROUP_NAME SYSREQ_USER_GROUPS_GROUP_SERVER_NAME SYSREQ_USERS_ACCESS_RIGHTS SYSREQ_USERS_AUTHENTICATION SYSREQ_USERS_CATEGORY SYSREQ_USERS_COMPONENT SYSREQ_USERS_COMPONENT_USER_IS_PUBLIC SYSREQ_USERS_DOMAIN SYSREQ_USERS_FULL_USER_NAME SYSREQ_USERS_GROUP SYSREQ_USERS_IS_MAIN_SERVER SYSREQ_USERS_LOGIN SYSREQ_USERS_REFERENCE_USER_IS_PUBLIC SYSREQ_USERS_STATUS SYSREQ_USERS_USER_CERTIFICATE SYSREQ_USERS_USER_CERTIFICATE_INFO SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_NAME SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_VERSION SYSREQ_USERS_USER_CERTIFICATE_STATE SYSREQ_USERS_USER_CERTIFICATE_SUBJECT_NAME SYSREQ_USERS_USER_CERTIFICATE_THUMBPRINT SYSREQ_USERS_USER_DEFAULT_CERTIFICATE SYSREQ_USERS_USER_DESCRIPTION SYSREQ_USERS_USER_GLOBAL_NAME SYSREQ_USERS_USER_LOGIN SYSREQ_USERS_USER_MAIN_SERVER SYSREQ_USERS_USER_TYPE SYSREQ_WORK_RULES_FOLDER_ID RESULT_VAR_NAME RESULT_VAR_NAME_ENG AUTO_NUMERATION_RULE_ID CANT_CHANGE_ID_REQUISITE_RULE_ID CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID CHECK_CHANGING_REFERENCE_RECORD_USE_RULE_ID CHECK_CODE_REQUISITE_RULE_ID CHECK_DELETING_REFERENCE_RECORD_USE_RULE_ID CHECK_FILTRATER_CHANGES_RULE_ID CHECK_RECORD_INTERVAL_RULE_ID CHECK_REFERENCE_INTERVAL_RULE_ID CHECK_REQUIRED_DATA_FULLNESS_RULE_ID CHECK_REQUIRED_REQUISITES_FULLNESS_RULE_ID MAKE_RECORD_UNRATIFIED_RULE_ID RESTORE_AUTO_NUMERATION_RULE_ID SET_FIRM_CONTEXT_FROM_RECORD_RULE_ID SET_FIRST_RECORD_IN_LIST_FORM_RULE_ID SET_IDSPS_VALUE_RULE_ID SET_NEXT_CODE_VALUE_RULE_ID SET_OURFIRM_BOUNDS_RULE_ID SET_OURFIRM_REQUISITE_RULE_ID SCRIPT_BLOCK_AFTER_FINISH_EVENT SCRIPT_BLOCK_BEFORE_START_EVENT SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY SCRIPT_BLOCK_NAME_PROPERTY SCRIPT_BLOCK_SCRIPT_PROPERTY SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY SUBTASK_BLOCK_AFTER_FINISH_EVENT SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT SUBTASK_BLOCK_ATTACHMENTS_PROPERTY SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY SUBTASK_BLOCK_BEFORE_START_EVENT SUBTASK_BLOCK_CREATED_TASK_PROPERTY SUBTASK_BLOCK_CREATION_EVENT SUBTASK_BLOCK_DEADLINE_PROPERTY SUBTASK_BLOCK_IMPORTANCE_PROPERTY SUBTASK_BLOCK_INITIATOR_PROPERTY SUBTASK_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY SUBTASK_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY SUBTASK_BLOCK_JOBS_TYPE_PROPERTY SUBTASK_BLOCK_NAME_PROPERTY SUBTASK_BLOCK_PARALLEL_ROUTE_PROPERTY SUBTASK_BLOCK_PERFORMERS_PROPERTY SUBTASK_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY SUBTASK_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY SUBTASK_BLOCK_REQUIRE_SIGN_PROPERTY SUBTASK_BLOCK_STANDARD_ROUTE_PROPERTY SUBTASK_BLOCK_START_EVENT SUBTASK_BLOCK_STEP_CONTROL_PROPERTY SUBTASK_BLOCK_SUBJECT_PROPERTY SUBTASK_BLOCK_TASK_CONTROL_PROPERTY SUBTASK_BLOCK_TEXT_PROPERTY SUBTASK_BLOCK_UNLOCK_ATTACHMENTS_ON_STOP_PROPERTY SUBTASK_BLOCK_USE_STANDARD_ROUTE_PROPERTY SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY SYSCOMP_CONTROL_JOBS SYSCOMP_FOLDERS SYSCOMP_JOBS SYSCOMP_NOTICES SYSCOMP_TASKS SYSDLG_CREATE_EDOCUMENT SYSDLG_CREATE_EDOCUMENT_VERSION SYSDLG_CURRENT_PERIOD SYSDLG_EDIT_FUNCTION_HELP SYSDLG_EDOCUMENT_KINDS_FOR_TEMPLATE SYSDLG_EXPORT_MULTIPLE_EDOCUMENTS SYSDLG_EXPORT_SINGLE_EDOCUMENT SYSDLG_IMPORT_EDOCUMENT SYSDLG_MULTIPLE_SELECT SYSDLG_SETUP_ACCESS_RIGHTS SYSDLG_SETUP_DEFAULT_RIGHTS SYSDLG_SETUP_FILTER_CONDITION SYSDLG_SETUP_SIGN_RIGHTS SYSDLG_SETUP_TASK_OBSERVERS SYSDLG_SETUP_TASK_ROUTE SYSDLG_SETUP_USERS_LIST SYSDLG_SIGN_EDOCUMENT SYSDLG_SIGN_MULTIPLE_EDOCUMENTS SYSREF_ACCESS_RIGHTS_TYPES SYSREF_ADMINISTRATION_HISTORY SYSREF_ALL_AVAILABLE_COMPONENTS SYSREF_ALL_AVAILABLE_PRIVILEGES SYSREF_ALL_REPLICATING_COMPONENTS SYSREF_AVAILABLE_DEVELOPERS_COMPONENTS SYSREF_CALENDAR_EVENTS SYSREF_COMPONENT_TOKEN_HISTORY SYSREF_COMPONENT_TOKENS SYSREF_COMPONENTS SYSREF_CONSTANTS SYSREF_DATA_RECEIVE_PROTOCOL SYSREF_DATA_SEND_PROTOCOL SYSREF_DIALOGS SYSREF_DIALOGS_REQUISITES SYSREF_EDITORS SYSREF_EDOC_CARDS SYSREF_EDOC_TYPES SYSREF_EDOCUMENT_CARD_REQUISITES SYSREF_EDOCUMENT_CARD_TYPES SYSREF_EDOCUMENT_CARD_TYPES_REFERENCE SYSREF_EDOCUMENT_CARDS SYSREF_EDOCUMENT_HISTORY SYSREF_EDOCUMENT_KINDS SYSREF_EDOCUMENT_REQUISITES SYSREF_EDOCUMENT_SIGNATURES SYSREF_EDOCUMENT_TEMPLATES SYSREF_EDOCUMENT_TEXT_STORAGES SYSREF_EDOCUMENT_VIEWS SYSREF_FILTERER_SETUP_CONFLICTS SYSREF_FILTRATER_SETTING_CONFLICTS SYSREF_FOLDER_HISTORY SYSREF_FOLDERS SYSREF_FUNCTION_GROUPS SYSREF_FUNCTION_PARAMS SYSREF_FUNCTIONS SYSREF_JOB_HISTORY SYSREF_LINKS SYSREF_LOCALIZATION_DICTIONARY SYSREF_LOCALIZATION_LANGUAGES SYSREF_MODULES SYSREF_PRIVILEGES SYSREF_RECORD_HISTORY SYSREF_REFERENCE_REQUISITES SYSREF_REFERENCE_TYPE_VIEWS SYSREF_REFERENCE_TYPES SYSREF_REFERENCES SYSREF_REFERENCES_REQUISITES SYSREF_REMOTE_SERVERS SYSREF_REPLICATION_SESSIONS_LOG SYSREF_REPLICATION_SESSIONS_PROTOCOL SYSREF_REPORTS SYSREF_ROLES SYSREF_ROUTE_BLOCK_GROUPS SYSREF_ROUTE_BLOCKS SYSREF_SCRIPTS SYSREF_SEARCHES SYSREF_SERVER_EVENTS SYSREF_SERVER_EVENTS_HISTORY SYSREF_STANDARD_ROUTE_GROUPS SYSREF_STANDARD_ROUTES SYSREF_STATUSES SYSREF_SYSTEM_SETTINGS SYSREF_TASK_HISTORY SYSREF_TASK_KIND_GROUPS SYSREF_TASK_KINDS SYSREF_TASK_RIGHTS SYSREF_TASK_SIGNATURES SYSREF_TASKS SYSREF_UNITS SYSREF_USER_GROUPS SYSREF_USER_GROUPS_REFERENCE SYSREF_USER_SUBSTITUTION SYSREF_USERS SYSREF_USERS_REFERENCE SYSREF_VIEWERS SYSREF_WORKING_TIME_CALENDARS ACCESS_RIGHTS_TABLE_NAME EDMS_ACCESS_TABLE_NAME EDOC_TYPES_TABLE_NAME TEST_DEV_DB_NAME TEST_DEV_SYSTEM_CODE TEST_EDMS_DB_NAME TEST_EDMS_MAIN_CODE TEST_EDMS_MAIN_DB_NAME TEST_EDMS_SECOND_CODE TEST_EDMS_SECOND_DB_NAME TEST_EDMS_SYSTEM_CODE TEST_ISB5_MAIN_CODE TEST_ISB5_SECOND_CODE TEST_SQL_SERVER_2005_NAME TEST_SQL_SERVER_NAME ATTENTION_CAPTION cbsCommandLinks cbsDefault CONFIRMATION_CAPTION ERROR_CAPTION INFORMATION_CAPTION mrCancel mrOk EDOC_VERSION_ACTIVE_STAGE_CODE EDOC_VERSION_DESIGN_STAGE_CODE EDOC_VERSION_OBSOLETE_STAGE_CODE cpDataEnciphermentEnabled cpDigitalSignatureEnabled cpID cpIssuer cpPluginVersion cpSerial cpSubjectName cpSubjSimpleName cpValidFromDate cpValidToDate ISBL_SYNTAX NO_SYNTAX XML_SYNTAX WAIT_BLOCK_AFTER_FINISH_EVENT WAIT_BLOCK_BEFORE_START_EVENT WAIT_BLOCK_DEADLINE_PROPERTY WAIT_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY WAIT_BLOCK_NAME_PROPERTY WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY SYSRES_COMMON SYSRES_CONST SYSRES_MBFUNC SYSRES_SBDATA SYSRES_SBGUI SYSRES_SBINTF SYSRES_SBREFDSC SYSRES_SQLERRORS SYSRES_SYSCOMP atUser atGroup atRole aemEnabledAlways aemDisabledAlways aemEnabledOnBrowse aemEnabledOnEdit aemDisabledOnBrowseEmpty apBegin apEnd alLeft alRight asmNever asmNoButCustomize asmAsLastTime asmYesButCustomize asmAlways cirCommon cirRevoked ctSignature ctEncode ctSignatureEncode clbUnchecked clbChecked clbGrayed ceISB ceAlways ceNever ctDocument ctReference ctScript ctUnknown ctReport ctDialog ctFunction ctFolder ctEDocument ctTask ctJob ctNotice ctControlJob cfInternal cfDisplay ciUnspecified ciWrite ciRead ckFolder ckEDocument ckTask ckJob ckComponentToken ckAny ckReference ckScript ckReport ckDialog ctISBLEditor ctBevel ctButton ctCheckListBox ctComboBox ctComboEdit ctGrid ctDBCheckBox ctDBComboBox ctDBEdit ctDBEllipsis ctDBMemo ctDBNavigator ctDBRadioGroup ctDBStatusLabel ctEdit ctGroupBox ctInplaceHint ctMemo ctPanel ctListBox ctRadioButton ctRichEdit ctTabSheet ctWebBrowser ctImage ctHyperLink ctLabel ctDBMultiEllipsis ctRibbon ctRichView ctInnerPanel ctPanelGroup ctBitButton cctDate cctInteger cctNumeric cctPick cctReference cctString cctText cltInternal cltPrimary cltGUI dseBeforeOpen dseAfterOpen dseBeforeClose dseAfterClose dseOnValidDelete dseBeforeDelete dseAfterDelete dseAfterDeleteOutOfTransaction dseOnDeleteError dseBeforeInsert dseAfterInsert dseOnValidUpdate dseBeforeUpdate dseOnUpdateRatifiedRecord dseAfterUpdate dseAfterUpdateOutOfTransaction dseOnUpdateError dseAfterScroll dseOnOpenRecord dseOnCloseRecord dseBeforeCancel dseAfterCancel dseOnUpdateDeadlockError dseBeforeDetailUpdate dseOnPrepareUpdate dseOnAnyRequisiteChange dssEdit dssInsert dssBrowse dssInActive dftDate dftShortDate dftDateTime dftTimeStamp dotDays dotHours dotMinutes dotSeconds dtkndLocal dtkndUTC arNone arView arEdit arFull ddaView ddaEdit emLock emEdit emSign emExportWithLock emImportWithUnlock emChangeVersionNote emOpenForModify emChangeLifeStage emDelete emCreateVersion emImport emUnlockExportedWithLock emStart emAbort emReInit emMarkAsReaded emMarkAsUnreaded emPerform emAccept emResume emChangeRights emEditRoute emEditObserver emRecoveryFromLocalCopy emChangeWorkAccessType emChangeEncodeTypeToCertificate emChangeEncodeTypeToPassword emChangeEncodeTypeToNone emChangeEncodeTypeToCertificatePassword emChangeStandardRoute emGetText emOpenForView emMoveToStorage emCreateObject emChangeVersionHidden emDeleteVersion emChangeLifeCycleStage emApprovingSign emExport emContinue emLockFromEdit emUnLockForEdit emLockForServer emUnlockFromServer emDelegateAccessRights emReEncode ecotFile ecotProcess eaGet eaCopy eaCreate eaCreateStandardRoute edltAll edltNothing edltQuery essmText essmCard esvtLast esvtLastActive esvtSpecified edsfExecutive edsfArchive edstSQLServer edstFile edvstNone edvstEDocumentVersionCopy edvstFile edvstTemplate edvstScannedFile vsDefault vsDesign vsActive vsObsolete etNone etCertificate etPassword etCertificatePassword ecException ecWarning ecInformation estAll estApprovingOnly evtLast evtLastActive evtQuery fdtString fdtNumeric fdtInteger fdtDate fdtText fdtUnknown fdtWideString fdtLargeInteger ftInbox ftOutbox ftFavorites ftCommonFolder ftUserFolder ftComponents ftQuickLaunch ftShortcuts ftSearch grhAuto grhX1 grhX2 grhX3 hltText hltRTF hltHTML iffBMP iffJPEG iffMultiPageTIFF iffSinglePageTIFF iffTIFF iffPNG im8bGrayscale im24bRGB im1bMonochrome itBMP itJPEG itWMF itPNG ikhInformation ikhWarning ikhError ikhNoIcon icUnknown icScript icFunction icIntegratedReport icAnalyticReport icDataSetEventHandler icActionHandler icFormEventHandler icLookUpEventHandler icRequisiteChangeEventHandler icBeforeSearchEventHandler icRoleCalculation icSelectRouteEventHandler icBlockPropertyCalculation icBlockQueryParamsEventHandler icChangeSearchResultEventHandler icBlockEventHandler icSubTaskInitEventHandler icEDocDataSetEventHandler icEDocLookUpEventHandler icEDocActionHandler icEDocFormEventHandler icEDocRequisiteChangeEventHandler icStructuredConversionRule icStructuredConversionEventBefore icStructuredConversionEventAfter icWizardEventHandler icWizardFinishEventHandler icWizardStepEventHandler icWizardStepFinishEventHandler icWizardActionEnableEventHandler icWizardActionExecuteEventHandler icCreateJobsHandler icCreateNoticesHandler icBeforeLookUpEventHandler icAfterLookUpEventHandler icTaskAbortEventHandler icWorkflowBlockActionHandler icDialogDataSetEventHandler icDialogActionHandler icDialogLookUpEventHandler icDialogRequisiteChangeEventHandler icDialogFormEventHandler icDialogValidCloseEventHandler icBlockFormEventHandler icTaskFormEventHandler icReferenceMethod icEDocMethod icDialogMethod icProcessMessageHandler isShow isHide isByUserSettings jkJob jkNotice jkControlJob jtInner jtLeft jtRight jtFull jtCross lbpAbove lbpBelow lbpLeft lbpRight eltPerConnection eltPerUser sfcUndefined sfcBlack sfcGreen sfcRed sfcBlue sfcOrange sfcLilac sfsItalic sfsStrikeout sfsNormal ldctStandardRoute ldctWizard ldctScript ldctFunction ldctRouteBlock ldctIntegratedReport ldctAnalyticReport ldctReferenceType ldctEDocumentType ldctDialog ldctServerEvents mrcrtNone mrcrtUser mrcrtMaximal mrcrtCustom vtEqual vtGreaterOrEqual vtLessOrEqual vtRange rdYesterday rdToday rdTomorrow rdThisWeek rdThisMonth rdThisYear rdNextMonth rdNextWeek rdLastWeek rdLastMonth rdWindow rdFile rdPrinter rdtString rdtNumeric rdtInteger rdtDate rdtReference rdtAccount rdtText rdtPick rdtUnknown rdtLargeInteger rdtDocument reOnChange reOnChangeValues ttGlobal ttLocal ttUser ttSystem ssmBrowse ssmSelect ssmMultiSelect ssmBrowseModal smSelect smLike smCard stNone stAuthenticating stApproving sctString sctStream sstAnsiSort sstNaturalSort svtEqual svtContain soatString soatNumeric soatInteger soatDatetime soatReferenceRecord soatText soatPick soatBoolean soatEDocument soatAccount soatIntegerCollection soatNumericCollection soatStringCollection soatPickCollection soatDatetimeCollection soatBooleanCollection soatReferenceRecordCollection soatEDocumentCollection soatAccountCollection soatContents soatUnknown tarAbortByUser tarAbortByWorkflowException tvtAllWords tvtExactPhrase tvtAnyWord usNone usCompleted usRedSquare usBlueSquare usYellowSquare usGreenSquare usOrangeSquare usPurpleSquare usFollowUp utUnknown utUser utDeveloper utAdministrator utSystemDeveloper utDisconnected btAnd btDetailAnd btOr btNotOr btOnly vmView vmSelect vmNavigation vsmSingle vsmMultiple vsmMultipleCheck vsmNoSelection wfatPrevious wfatNext wfatCancel wfatFinish wfepUndefined wfepText3 wfepText6 wfepText9 wfepSpinEdit wfepDropDown wfepRadioGroup wfepFlag wfepText12 wfepText15 wfepText18 wfepText21 wfepText24 wfepText27 wfepText30 wfepRadioGroupColumn1 wfepRadioGroupColumn2 wfepRadioGroupColumn3 wfetQueryParameter wfetText wfetDelimiter wfetLabel wptString wptInteger wptNumeric wptBoolean wptDateTime wptPick wptText wptUser wptUserList wptEDocumentInfo wptEDocumentInfoList wptReferenceRecordInfo wptReferenceRecordInfoList wptFolderInfo wptTaskInfo wptContents wptFileName wptDate wsrComplete wsrGoNext wsrGoPrevious wsrCustom wsrCancel wsrGoFinal wstForm wstEDocument wstTaskCard wstReferenceRecordCard wstFinal waAll waPerformers waManual wsbStart wsbFinish wsbNotice wsbStep wsbDecision wsbWait wsbMonitor wsbScript wsbConnector wsbSubTask wsbLifeCycleStage wsbPause wdtInteger wdtFloat wdtString wdtPick wdtDateTime wdtBoolean wdtTask wdtJob wdtFolder wdtEDocument wdtReferenceRecord wdtUser wdtGroup wdtRole wdtIntegerCollection wdtFloatCollection wdtStringCollection wdtPickCollection wdtDateTimeCollection wdtBooleanCollection wdtTaskCollection wdtJobCollection wdtFolderCollection wdtEDocumentCollection wdtReferenceRecordCollection wdtUserCollection wdtGroupCollection wdtRoleCollection wdtContents wdtUserList wdtSearchDescription wdtDeadLine wdtPickSet wdtAccountCollection wiLow wiNormal wiHigh wrtSoft wrtHard wsInit wsRunning wsDone wsControlled wsAborted wsContinued wtmFull wtmFromCurrent wtmOnlyCurrent ", +class:"AltState Application CallType ComponentTokens CreatedJobs CreatedNotices ControlState DialogResult Dialogs EDocuments EDocumentVersionSource Folders GlobalIDs Job Jobs InputValue LookUpReference LookUpRequisiteNames LookUpSearch Object ParentComponent Processes References Requisite ReportName Reports Result Scripts Searches SelectedAttachments SelectedItems SelectMode Sender ServerEvents ServiceFactory ShiftState SubTask SystemDialogs Tasks Wizard Wizards Work \u0412\u044b\u0437\u043e\u0432\u0421\u043f\u043e\u0441\u043e\u0431 \u0418\u043c\u044f\u041e\u0442\u0447\u0435\u0442\u0430 \u0420\u0435\u043a\u0432\u0417\u043d\u0430\u0447 ", +literal:"null true false nil "},I={begin:"\\.\\s*"+S.UNDERSCORE_IDENT_RE, +keywords:C,relevance:0},N={className:"type", +begin:":[ \\t]*(IApplication|IAccessRights|IAccountRepository|IAccountSelectionRestrictions|IAction|IActionList|IAdministrationHistoryDescription|IAnchors|IApplication|IArchiveInfo|IAttachment|IAttachmentList|ICheckListBox|ICheckPointedList|IColumn|IComponent|IComponentDescription|IComponentToken|IComponentTokenFactory|IComponentTokenInfo|ICompRecordInfo|IConnection|IContents|IControl|IControlJob|IControlJobInfo|IControlList|ICrypto|ICrypto2|ICustomJob|ICustomJobInfo|ICustomListBox|ICustomObjectWizardStep|ICustomWork|ICustomWorkInfo|IDataSet|IDataSetAccessInfo|IDataSigner|IDateCriterion|IDateRequisite|IDateRequisiteDescription|IDateValue|IDeaAccessRights|IDeaObjectInfo|IDevelopmentComponentLock|IDialog|IDialogFactory|IDialogPickRequisiteItems|IDialogsFactory|IDICSFactory|IDocRequisite|IDocumentInfo|IDualListDialog|IECertificate|IECertificateInfo|IECertificates|IEditControl|IEditorForm|IEdmsExplorer|IEdmsObject|IEdmsObjectDescription|IEdmsObjectFactory|IEdmsObjectInfo|IEDocument|IEDocumentAccessRights|IEDocumentDescription|IEDocumentEditor|IEDocumentFactory|IEDocumentInfo|IEDocumentStorage|IEDocumentVersion|IEDocumentVersionListDialog|IEDocumentVersionSource|IEDocumentWizardStep|IEDocVerSignature|IEDocVersionState|IEnabledMode|IEncodeProvider|IEncrypter|IEvent|IEventList|IException|IExternalEvents|IExternalHandler|IFactory|IField|IFileDialog|IFolder|IFolderDescription|IFolderDialog|IFolderFactory|IFolderInfo|IForEach|IForm|IFormTitle|IFormWizardStep|IGlobalIDFactory|IGlobalIDInfo|IGrid|IHasher|IHistoryDescription|IHyperLinkControl|IImageButton|IImageControl|IInnerPanel|IInplaceHint|IIntegerCriterion|IIntegerList|IIntegerRequisite|IIntegerValue|IISBLEditorForm|IJob|IJobDescription|IJobFactory|IJobForm|IJobInfo|ILabelControl|ILargeIntegerCriterion|ILargeIntegerRequisite|ILargeIntegerValue|ILicenseInfo|ILifeCycleStage|IList|IListBox|ILocalIDInfo|ILocalization|ILock|IMemoryDataSet|IMessagingFactory|IMetadataRepository|INotice|INoticeInfo|INumericCriterion|INumericRequisite|INumericValue|IObject|IObjectDescription|IObjectImporter|IObjectInfo|IObserver|IPanelGroup|IPickCriterion|IPickProperty|IPickRequisite|IPickRequisiteDescription|IPickRequisiteItem|IPickRequisiteItems|IPickValue|IPrivilege|IPrivilegeList|IProcess|IProcessFactory|IProcessMessage|IProgress|IProperty|IPropertyChangeEvent|IQuery|IReference|IReferenceCriterion|IReferenceEnabledMode|IReferenceFactory|IReferenceHistoryDescription|IReferenceInfo|IReferenceRecordCardWizardStep|IReferenceRequisiteDescription|IReferencesFactory|IReferenceValue|IRefRequisite|IReport|IReportFactory|IRequisite|IRequisiteDescription|IRequisiteDescriptionList|IRequisiteFactory|IRichEdit|IRouteStep|IRule|IRuleList|ISchemeBlock|IScript|IScriptFactory|ISearchCriteria|ISearchCriterion|ISearchDescription|ISearchFactory|ISearchFolderInfo|ISearchForObjectDescription|ISearchResultRestrictions|ISecuredContext|ISelectDialog|IServerEvent|IServerEventFactory|IServiceDialog|IServiceFactory|ISignature|ISignProvider|ISignProvider2|ISignProvider3|ISimpleCriterion|IStringCriterion|IStringList|IStringRequisite|IStringRequisiteDescription|IStringValue|ISystemDialogsFactory|ISystemInfo|ITabSheet|ITask|ITaskAbortReasonInfo|ITaskCardWizardStep|ITaskDescription|ITaskFactory|ITaskInfo|ITaskRoute|ITextCriterion|ITextRequisite|ITextValue|ITreeListSelectDialog|IUser|IUserList|IValue|IView|IWebBrowserControl|IWizard|IWizardAction|IWizardFactory|IWizardFormElement|IWizardParam|IWizardPickParam|IWizardReferenceParam|IWizardStep|IWorkAccessRights|IWorkDescription|IWorkflowAskableParam|IWorkflowAskableParams|IWorkflowBlock|IWorkflowBlockResult|IWorkflowEnabledMode|IWorkflowParam|IWorkflowPickParam|IWorkflowReferenceParam|IWorkState|IWorkTreeCustomNode|IWorkTreeJobNode|IWorkTreeTaskNode|IXMLEditorForm|SBCrypto)", +end:"[ \\t]*=",excludeEnd:!0},A={className:"variable",keywords:C,begin:E, +relevance:0,contains:[N,I] +},e="[A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_][A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_0-9]*\\(" +;return{name:"ISBL",case_insensitive:!0,keywords:C, +illegal:"\\$|\\?|%|,|;$|~|#|@|{"use strict" +;var e="\\.([0-9](_*[0-9])*)",a="[0-9a-fA-F](_*[0-9a-fA-F])*",n={ +className:"number",variants:[{ +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ +begin:`\\b0[xX]((${a})\\.?|(${a})?\\.(${a}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${a})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};function s(e,a,n){return-1===n?"":e.replace(a,(t=>s(e,a,n-1)))} +return e=>{ +const a=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",r=t+s("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={ +keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"], +literal:["false","true","null"], +type:["char","boolean","long","float","int","byte","short","double"], +built_in:["super","this"]},l={className:"meta",begin:"@"+t,contains:[{ +begin:/\(/,end:/\)/,contains:["self"]}]},c={className:"params",begin:/\(/, +end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0} +;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, +relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ +begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/, +className:"string",contains:[e.BACKSLASH_ESCAPE] +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ +match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{ +1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{ +begin:[a.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type", +3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword", +3:"title.class"},contains:[c,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +beginKeywords:"new throw return else",relevance:0},{ +begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{ +2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/, +end:/\)/,keywords:i,relevance:0, +contains:[l,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n,l]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/javascript.min.js b/src/app/resources/assets/highlight/es/languages/javascript.min.js new file mode 100644 index 0000000..55a8a15 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/javascript.min.js @@ -0,0 +1,78 @@ +/*! `javascript` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict" +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],t=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],r=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","module","global"],i=[].concat(r,t,s) +;return o=>{const l=o.regex,b=e,d={begin:/<[A-Za-z0-9\\._:-]+/, +end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ +const a=e[0].length+e.index,t=e.input[a] +;if("<"===t||","===t)return void n.ignoreMatch();let s +;">"===t&&(((e,{after:n})=>{const a="",M={ +match:[/const|var|let/,/\s+/,b,/\s*/,/=\s*/,/(async\s*)?/,l.lookahead(C)], +keywords:"async",className:{1:"keyword",3:"title.function"},contains:[S]} +;return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{ +PARAMS_CONTAINS:p,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/, +contains:[o.SHEBANG({label:"shebang",binary:"node",relevance:5}),{ +label:"use_strict",className:"meta",relevance:10, +begin:/^\s*['"]use (strict|asm)['"]/ +},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,y,h,N,_,{match:/\$\d+/},E,R,{ +className:"attr",begin:b+l.lookahead(":"),relevance:0},M,{ +begin:"("+o.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", +keywords:"return throw case",relevance:0,contains:[_,o.REGEXP_MODE,{ +className:"function",begin:C,returnBegin:!0,end:"\\s*=>",contains:[{ +className:"params",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{ +className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0, +excludeEnd:!0,keywords:g,contains:p}]}]},{begin:/,/,relevance:0},{match:/\s+/, +relevance:0},{variants:[{begin:"<>",end:""},{ +match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:d.begin, +"on:begin":d.isTrulyOpeningTag,end:d.end}],subLanguage:"xml",contains:[{ +begin:d.begin,end:d.end,skip:!0,contains:["self"]}]}]},O,{ +beginKeywords:"while if switch catch for"},{ +begin:"\\b(?!function)"+o.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,label:"func.def",contains:[S,o.inherit(o.TITLE_MODE,{begin:b, +className:"title.function"})]},{match:/\.\.\./,relevance:0},x,{match:"\\$"+b, +relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, +contains:[S]},k,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},w,T,{match:/\$[(.]/}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/jboss-cli.min.js b/src/app/resources/assets/highlight/es/languages/jboss-cli.min.js new file mode 100644 index 0000000..a162aeb --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/jboss-cli.min.js @@ -0,0 +1,10 @@ +/*! `jboss-cli` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"JBoss CLI", +aliases:["wildfly-cli"],keywords:{$pattern:"[a-z-]+", +keyword:"alias batch cd clear command connect connection-factory connection-info data-source deploy deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias undeploy unset version xa-data-source", +literal:"true false"},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,{ +className:"params",begin:/--[\w\-=\/]+/},{className:"function", +begin:/:[\w\-.]+/,relevance:0},{className:"string",begin:/\B([\/.])[\w\-.\/=]+/ +},{className:"params",begin:/\(/,end:/\)/,contains:[{begin:/[\w-]+ *=/, +returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/[\w-]+/}]}], +relevance:0}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/json.min.js b/src/app/resources/assets/highlight/es/languages/json.min.js new file mode 100644 index 0000000..e01fd1a --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/json.min.js @@ -0,0 +1,8 @@ +/*! `json` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a=["true","false","null"],r={scope:"literal",beginKeywords:a.join(" ")} +;return{name:"JSON",keywords:{literal:a},contains:[{className:"attr", +begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{match:/[{}[\],:]/, +className:"punctuation",relevance:0 +},e.QUOTE_STRING_MODE,r,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE], +illegal:"\\S"}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/julia-repl.min.js b/src/app/resources/assets/highlight/es/languages/julia-repl.min.js new file mode 100644 index 0000000..75d9843 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/julia-repl.min.js @@ -0,0 +1,4 @@ +/*! `julia-repl` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return a=>({name:"Julia REPL",contains:[{ +className:"meta.prompt",begin:/^julia>/,relevance:10,starts:{end:/^(?![ ]{6})/, +subLanguage:"julia"}}],aliases:["jldoctest"]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/julia.min.js b/src/app/resources/assets/highlight/es/languages/julia.min.js new file mode 100644 index 0000000..cdb9a73 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/julia.min.js @@ -0,0 +1,18 @@ +/*! `julia` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const r="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",t={$pattern:r, +keyword:["baremodule","begin","break","catch","ccall","const","continue","do","else","elseif","end","export","false","finally","for","function","global","if","import","in","isa","let","local","macro","module","quote","return","true","try","using","where","while"], +literal:["ARGS","C_NULL","DEPOT_PATH","ENDIAN_BOM","ENV","Inf","Inf16","Inf32","Inf64","InsertionSort","LOAD_PATH","MergeSort","NaN","NaN16","NaN32","NaN64","PROGRAM_FILE","QuickSort","RoundDown","RoundFromZero","RoundNearest","RoundNearestTiesAway","RoundNearestTiesUp","RoundToZero","RoundUp","VERSION|0","devnull","false","im","missing","nothing","pi","stderr","stdin","stdout","true","undef","\u03c0","\u212f"], +built_in:["AbstractArray","AbstractChannel","AbstractChar","AbstractDict","AbstractDisplay","AbstractFloat","AbstractIrrational","AbstractMatrix","AbstractRange","AbstractSet","AbstractString","AbstractUnitRange","AbstractVecOrMat","AbstractVector","Any","ArgumentError","Array","AssertionError","BigFloat","BigInt","BitArray","BitMatrix","BitSet","BitVector","Bool","BoundsError","CapturedException","CartesianIndex","CartesianIndices","Cchar","Cdouble","Cfloat","Channel","Char","Cint","Cintmax_t","Clong","Clonglong","Cmd","Colon","Complex","ComplexF16","ComplexF32","ComplexF64","CompositeException","Condition","Cptrdiff_t","Cshort","Csize_t","Cssize_t","Cstring","Cuchar","Cuint","Cuintmax_t","Culong","Culonglong","Cushort","Cvoid","Cwchar_t","Cwstring","DataType","DenseArray","DenseMatrix","DenseVecOrMat","DenseVector","Dict","DimensionMismatch","Dims","DivideError","DomainError","EOFError","Enum","ErrorException","Exception","ExponentialBackOff","Expr","Float16","Float32","Float64","Function","GlobalRef","HTML","IO","IOBuffer","IOContext","IOStream","IdDict","IndexCartesian","IndexLinear","IndexStyle","InexactError","InitError","Int","Int128","Int16","Int32","Int64","Int8","Integer","InterruptException","InvalidStateException","Irrational","KeyError","LinRange","LineNumberNode","LinearIndices","LoadError","MIME","Matrix","Method","MethodError","Missing","MissingException","Module","NTuple","NamedTuple","Nothing","Number","OrdinalRange","OutOfMemoryError","OverflowError","Pair","PartialQuickSort","PermutedDimsArray","Pipe","ProcessFailedException","Ptr","QuoteNode","Rational","RawFD","ReadOnlyMemoryError","Real","ReentrantLock","Ref","Regex","RegexMatch","RoundingMode","SegmentationFault","Set","Signed","Some","StackOverflowError","StepRange","StepRangeLen","StridedArray","StridedMatrix","StridedVecOrMat","StridedVector","String","StringIndexError","SubArray","SubString","SubstitutionString","Symbol","SystemError","Task","TaskFailedException","Text","TextDisplay","Timer","Tuple","Type","TypeError","TypeVar","UInt","UInt128","UInt16","UInt32","UInt64","UInt8","UndefInitializer","UndefKeywordError","UndefRefError","UndefVarError","Union","UnionAll","UnitRange","Unsigned","Val","Vararg","VecElement","VecOrMat","Vector","VersionNumber","WeakKeyDict","WeakRef"] +},n={keywords:t,illegal:/<\//},a={className:"subst",begin:/\$\(/,end:/\)/, +keywords:t},i={className:"variable",begin:"\\$"+r},o={className:"string", +contains:[e.BACKSLASH_ESCAPE,a,i],variants:[{begin:/\w*"""/,end:/"""\w*/, +relevance:10},{begin:/\w*"/,end:/"\w*/}]},s={className:"string", +contains:[e.BACKSLASH_ESCAPE,a,i],begin:"`",end:"`"},l={className:"meta", +begin:"@"+r};return n.name="Julia",n.contains=[{className:"number", +begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/, +relevance:0},{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},o,s,l,{ +className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#", +end:"$"}]},e.HASH_COMMENT_MODE,{className:"keyword", +begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/ +}],a.contains=n.contains,n}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/kotlin.min.js b/src/app/resources/assets/highlight/es/languages/kotlin.min.js new file mode 100644 index 0000000..4130ec7 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/kotlin.min.js @@ -0,0 +1,46 @@ +/*! `kotlin` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict" +;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={ +className:"number",variants:[{ +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ +begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};return e=>{const n={ +keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", +built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing", +literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@" +},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={ +className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string", +variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'", +illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/, +contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={ +className:"meta", +begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?" +},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/, +end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}] +},o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={ +variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/, +contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d], +{name:"Kotlin",aliases:["kt","kts"],keywords:n, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag", +begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword", +begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol", +begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$", +returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://, +keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/, +endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/, +endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0 +},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{ +begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{ +3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0, +illegal:"extends implements",contains:[{ +beginKeywords:"public protected internal private constructor" +},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0, +excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/, +excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env", +end:"$",illegal:"\n"},o]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/lasso.min.js b/src/app/resources/assets/highlight/es/languages/lasso.min.js new file mode 100644 index 0000000..457a2f2 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/lasso.min.js @@ -0,0 +1,29 @@ +/*! `lasso` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a="<\\?(lasso(script)?|=)",n="\\]|\\?>",r={ +$pattern:"[a-zA-Z_][\\w.]*|&[lg]t;", +literal:"true false none minimal full all void and or not bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft", +built_in:"array date decimal duration integer map pair string tag xml null boolean bytes keyword list locale queue set stack staticarray local var variable global data self inherited currentcapture givenblock", +keyword:"cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else fail_if fail_ifnot fail if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome" +},t=e.COMMENT("\x3c!--","--\x3e",{relevance:0}),s={className:"meta", +begin:"\\[noprocess\\]",starts:{end:"\\[/noprocess\\]",returnEnd:!0,contains:[t] +}},i={className:"meta",begin:"\\[/noprocess|"+a +},l=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.inherit(e.C_NUMBER_MODE,{ +begin:e.C_NUMBER_RE+"|(-?infinity|NaN)\\b"}),e.inherit(e.APOS_STRING_MODE,{ +illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{ +className:"string",begin:"`",end:"`"},{variants:[{begin:"[#$][a-zA-Z_][\\w.]*" +},{begin:"#",end:"\\d+",illegal:"\\W"}]},{className:"type",begin:"::\\s*", +end:"[a-zA-Z_][\\w.]*",illegal:"\\W"},{className:"params",variants:[{ +begin:"-(?!infinity)[a-zA-Z_][\\w.]*",relevance:0},{begin:"(\\.\\.\\.)"}]},{ +begin:/(->|\.)\s*/,relevance:0,contains:[{className:"symbol", +begin:"'[a-zA-Z_][\\w.]*'"}]},{className:"class",beginKeywords:"define", +returnEnd:!0,end:"\\(|=>",contains:[e.inherit(e.TITLE_MODE,{ +begin:"[a-zA-Z_][\\w.]*(=(?!>))?|[-+*/%](?!>)"})]}];return{name:"Lasso", +aliases:["ls","lassoscript"],case_insensitive:!0,keywords:r,contains:[{ +className:"meta",begin:n,relevance:0,starts:{end:"\\[|"+a,returnEnd:!0, +relevance:0,contains:[t]}},s,i,{className:"meta",begin:"\\[no_square_brackets", +starts:{end:"\\[/no_square_brackets\\]",keywords:r,contains:[{className:"meta", +begin:n,relevance:0,starts:{end:"\\[noprocess\\]|"+a,returnEnd:!0,contains:[t]} +},s,i].concat(l)}},{className:"meta",begin:"\\[",relevance:0},{className:"meta", +begin:"^#!",end:"lasso9$",relevance:10}].concat(l)}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/latex.min.js b/src/app/resources/assets/highlight/es/languages/latex.min.js new file mode 100644 index 0000000..268f501 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/latex.min.js @@ -0,0 +1,34 @@ +/*! `latex` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a=[{begin:/\^{6}[0-9a-f]{6}/ +},{begin:/\^{5}[0-9a-f]{5}/},{begin:/\^{4}[0-9a-f]{4}/},{ +begin:/\^{3}[0-9a-f]{3}/},{begin:/\^{2}[0-9a-f]{2}/},{ +begin:/\^{2}[\u0000-\u007f]/}],n=[{className:"keyword",begin:/\\/,relevance:0, +contains:[{endsParent:!0, +begin:e.regex.either(...["(?:NeedsTeXFormat|RequirePackage|GetIdInfo)","Provides(?:Expl)?(?:Package|Class|File)","(?:DeclareOption|ProcessOptions)","(?:documentclass|usepackage|input|include)","makeat(?:letter|other)","ExplSyntax(?:On|Off)","(?:new|renew|provide)?command","(?:re)newenvironment","(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand","(?:New|Renew|Provide|Declare)DocumentEnvironment","(?:(?:e|g|x)?def|let)","(?:begin|end)","(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph)","caption","(?:label|(?:eq|page|name)?ref|(?:paren|foot|super)?cite)","(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)","(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)","(?:[Ss]igma|varsigma|tau|[Uu]psilon|[Pp]hi|varphi|chi|[Pp]si|[Oo]mega)","(?:frac|sum|prod|lim|infty|times|sqrt|leq|geq|left|right|middle|[bB]igg?)","(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)"].map((e=>e+"(?![a-zA-Z@:_])"))) +},{endsParent:!0, +begin:RegExp(["(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*","[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}","[qs]__?[a-zA-Z](?:_?[a-zA-Z])+","use(?:_i)?:[a-zA-Z]*","(?:else|fi|or):","(?:if|cs|exp):w","(?:hbox|vbox):n","::[a-zA-Z]_unbraced","::[a-zA-Z:]"].map((e=>e+"(?![a-zA-Z:_])")).join("|")) +},{endsParent:!0,variants:a},{endsParent:!0,relevance:0,variants:[{ +begin:/[a-zA-Z@]+/},{begin:/[^a-zA-Z@]?/}]}]},{className:"params",relevance:0, +begin:/#+\d?/},{variants:a},{className:"built_in",relevance:0,begin:/[$&^_]/},{ +className:"meta",begin:/% ?!(T[eE]X|tex|BIB|bib)/,end:"$",relevance:10 +},e.COMMENT("%","$",{relevance:0})],i={begin:/\{/,end:/\}/,relevance:0, +contains:["self",...n]},t=e.inherit(i,{relevance:0,endsParent:!0, +contains:[i,...n]}),r={begin:/\[/,end:/\]/,endsParent:!0,relevance:0, +contains:[i,...n]},s={begin:/\s+/,relevance:0},c=[t],l=[r],o=(e,a)=>({ +contains:[s],starts:{relevance:0,contains:e,starts:a}}),d=(e,a)=>({ +begin:"\\\\"+e+"(?![a-zA-Z@:_])",keywords:{$pattern:/\\[a-zA-Z]+/,keyword:"\\"+e +},relevance:0,contains:[s],starts:a}),m=(a,n)=>e.inherit({ +begin:"\\\\begin(?=[ \t]*(\\r?\\n[ \t]*)?\\{"+a+"\\})",keywords:{ +$pattern:/\\[a-zA-Z]+/,keyword:"\\begin"},relevance:0 +},o(c,n)),g=(a="string")=>e.END_SAME_AS_BEGIN({className:a,begin:/(.|\r?\n)/, +end:/(.|\r?\n)/,excludeBegin:!0,excludeEnd:!0,endsParent:!0}),b=e=>({ +className:"string",end:"(?=\\\\end\\{"+e+"\\})"}),p=(e="string")=>({relevance:0, +begin:/\{/,starts:{endsParent:!0,contains:[{className:e,end:/(?=\})/, +endsParent:!0,contains:[{begin:/\{/,end:/\}/,relevance:0,contains:["self"]}]}]} +});return{name:"LaTeX",aliases:["tex"], +contains:[...["verb","lstinline"].map((e=>d(e,{contains:[g()]}))),d("mint",o(c,{ +contains:[g()]})),d("mintinline",o(c,{contains:[p(),g()]})),d("url",{ +contains:[p("link"),p("link")]}),d("hyperref",{contains:[p("link")] +}),d("href",o(l,{contains:[p("link")] +})),...[].concat(...["","\\*"].map((e=>[m("verbatim"+e,b("verbatim"+e)),m("filecontents"+e,o(c,b("filecontents"+e))),...["","B","L"].map((a=>m(a+"Verbatim"+e,o(l,b(a+"Verbatim"+e)))))]))),m("minted",o(l,o(c,b("minted")))),...n] +}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/ldif.min.js b/src/app/resources/assets/highlight/es/languages/ldif.min.js new file mode 100644 index 0000000..ed2da26 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/ldif.min.js @@ -0,0 +1,5 @@ +/*! `ldif` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return a=>({name:"LDIF",contains:[{ +className:"attribute",match:"^dn(?=:)",relevance:10},{className:"attribute", +match:"^\\w+(?=:)"},{className:"literal",match:"^-"},a.HASH_COMMENT_MODE]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/leaf.min.js b/src/app/resources/assets/highlight/es/languages/leaf.min.js new file mode 100644 index 0000000..d1ab8d7 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/leaf.min.js @@ -0,0 +1,8 @@ +/*! `leaf` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return a=>({name:"Leaf",contains:[{ +className:"function",begin:"#+[A-Za-z_0-9]*\\(",end:/ \{/,returnBegin:!0, +excludeEnd:!0,contains:[{className:"keyword",begin:"#+"},{className:"title", +begin:"[A-Za-z_][A-Za-z_0-9]*"},{className:"params",begin:"\\(",end:"\\)", +endsParent:!0,contains:[{className:"string",begin:'"',end:'"'},{ +className:"variable",begin:"[A-Za-z_][A-Za-z_0-9]*"}]}]}]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/less.min.js b/src/app/resources/assets/highlight/es/languages/less.min.js new file mode 100644 index 0000000..d298168 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/less.min.js @@ -0,0 +1,44 @@ +/*! `less` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],r=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],t=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],i=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),n=t.concat(i) +;return a=>{const l=(e=>({IMPORTANT:{scope:"meta",begin:"!important"}, +BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number", +begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{ +className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{ +scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/} +}))(a),s=n,d="([\\w-]+|@\\{[\\w-]+\\})",c=[],b=[],g=e=>({className:"string", +begin:"~?"+e+".*?"+e}),m=(e,r,t)=>({className:e,begin:r,relevance:t}),p={ +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:r.join(" ")},u={ +begin:"\\(",end:"\\)",contains:b,keywords:p,relevance:0} +;b.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,g("'"),g('"'),l.CSS_NUMBER_MODE,{ +begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]", +excludeEnd:!0} +},l.HEXCOLOR,u,m("variable","@@?[\\w-]+",10),m("variable","@\\{[\\w-]+\\}"),m("built_in","~?`[^`]*?`"),{ +className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0 +},l.IMPORTANT,{beginKeywords:"and not"},l.FUNCTION_DISPATCH);const h=b.concat({ +begin:/\{/,end:/\}/,contains:c}),f={beginKeywords:"when",endsWithParent:!0, +contains:[{beginKeywords:"and not"}].concat(b)},k={begin:d+"\\s*:", +returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/ +},l.CSS_VARIABLE,{className:"attribute",begin:"\\b("+o.join("|")+")\\b", +end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:b}}] +},w={className:"keyword", +begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", +starts:{end:"[;{}]",keywords:p,returnEnd:!0,contains:b,relevance:0}},v={ +className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{ +begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:h}},y={variants:[{ +begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0, +returnEnd:!0,illegal:"[<='$\"]",relevance:0, +contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,f,m("keyword","all\\b"),m("variable","@\\{[\\w-]+\\}"),{ +begin:"\\b("+e.join("|")+")\\b",className:"selector-tag" +},l.CSS_NUMBER_MODE,m("selector-tag",d,0),m("selector-id","#"+d),m("selector-class","\\."+d,0),m("selector-tag","&",0),l.ATTRIBUTE_SELECTOR_MODE,{ +className:"selector-pseudo",begin:":("+t.join("|")+")"},{ +className:"selector-pseudo",begin:":(:)?("+i.join("|")+")"},{begin:/\(/, +end:/\)/,relevance:0,contains:h},{begin:"!important"},l.FUNCTION_DISPATCH]},x={ +begin:`[\\w-]+:(:)?(${s.join("|")})`,returnBegin:!0,contains:[y]} +;return c.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,w,v,x,k,y,f,l.FUNCTION_DISPATCH), +{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:c}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/lisp.min.js b/src/app/resources/assets/highlight/es/languages/lisp.min.js new file mode 100644 index 0000000..f625d3c --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/lisp.min.js @@ -0,0 +1,16 @@ +/*! `lisp` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n="[a-zA-Z_\\-+\\*\\/<=>&#][a-zA-Z0-9_\\-+*\\/<=>&#!]*",a="\\|[^]*?\\|",i="(-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|-)?\\d+)?",s={ +className:"literal",begin:"\\b(t{1}|nil)\\b"},l={className:"number",variants:[{ +begin:i,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{ +begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{ +begin:"#(c|C)\\("+i+" +"+i,end:"\\)"}]},r=e.inherit(e.QUOTE_STRING_MODE,{ +illegal:null}),b=e.COMMENT(";","$",{relevance:0}),t={begin:"\\*",end:"\\*"},g={ +className:"symbol",begin:"[:&]"+n},c={begin:n,relevance:0},d={begin:a},m={ +contains:[l,r,t,g,{begin:"\\(",end:"\\)",contains:["self",s,r,l,c]},c], +variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{ +name:"quote"}},{begin:"'"+a}]},o={variants:[{begin:"'"+n},{ +begin:"#'"+n+"(::"+n+")*"}]},v={begin:"\\(\\s*",end:"\\)"},u={endsWithParent:!0, +relevance:0};return v.contains=[{className:"name",variants:[{begin:n,relevance:0 +},{begin:a}]},u],u.contains=[m,o,v,s,l,r,b,t,g,d,c],{name:"Lisp",illegal:/\S/, +contains:[l,e.SHEBANG(),s,r,b,m,o,v,c]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/livecodeserver.min.js b/src/app/resources/assets/highlight/es/languages/livecodeserver.min.js new file mode 100644 index 0000000..c37a0d2 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/livecodeserver.min.js @@ -0,0 +1,21 @@ +/*! `livecodeserver` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const r={className:"variable", +variants:[{begin:"\\b([gtps][A-Z]{1}[a-zA-Z0-9]*)(\\[.+\\])?(?:\\s*?)"},{ +begin:"\\$_[A-Z]+"}],relevance:0 +},t=[e.C_BLOCK_COMMENT_MODE,e.HASH_COMMENT_MODE,e.COMMENT("--","$"),e.COMMENT("[^:]//","$")],a=e.inherit(e.TITLE_MODE,{ +variants:[{begin:"\\b_*rig[A-Z][A-Za-z0-9_\\-]*"},{begin:"\\b_[a-z0-9\\-]+"}] +}),o=e.inherit(e.TITLE_MODE,{begin:"\\b([A-Za-z0-9_\\-]+)\\b"});return{ +name:"LiveCode",case_insensitive:!1,keywords:{ +keyword:"$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph after byte bytes english the until http forever descending using line real8 with seventh for stdout finally element word words fourth before black ninth sixth characters chars stderr uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat end repeat URL in try into switch to words https token binfile each tenth as ticks tick system real4 by dateItems without char character ascending eighth whole dateTime numeric short first ftp integer abbreviated abbr abbrev private case while if div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys", +literal:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK", +built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress constantNames cos date dateFormat decompress difference directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge messageAuthenticationCode messageDigest millisec millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetDriver libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load extension loadedExtensions multiply socket prepare process post seek rel relative read from process rename replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop subtract symmetric union unload vectorDotProduct wait write" +},contains:[r,{className:"keyword",begin:"\\bend\\sif\\b"},{ +className:"function",beginKeywords:"function",end:"$", +contains:[r,o,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,a] +},{className:"function",begin:"\\bend\\s+",end:"$",keywords:"end", +contains:[o,a],relevance:0},{beginKeywords:"command on",end:"$", +contains:[r,o,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,a] +},{className:"meta",variants:[{begin:"<\\?(rev|lc|livecode)",relevance:10},{ +begin:"<\\?"},{begin:"\\?>"}] +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,a].concat(t), +illegal:";$|^\\[|^=|&|\\{"}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/livescript.min.js b/src/app/resources/assets/highlight/es/languages/livescript.min.js new file mode 100644 index 0000000..59db14b --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/livescript.min.js @@ -0,0 +1,35 @@ +/*! `livescript` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict" +;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) +;return r=>{const t={ +keyword:e.concat(["then","unless","until","loop","of","by","when","and","or","is","isnt","not","it","that","otherwise","from","to","til","fallthrough","case","enum","native","list","map","__hasProp","__extends","__slice","__bind","__indexOf"]), +literal:n.concat(["yes","no","on","off","it","that","void"]), +built_in:a.concat(["npm","print"]) +},s="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",i=r.inherit(r.TITLE_MODE,{ +begin:s}),o={className:"subst",begin:/#\{/,end:/\}/,keywords:t},c={ +className:"subst",begin:/#[A-Za-z$_]/,end:/(?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/, +keywords:t},l=[r.BINARY_NUMBER_MODE,{className:"number", +begin:"(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)", +relevance:0,starts:{end:"(\\s*/)?",relevance:0}},{className:"string",variants:[{ +begin:/'''/,end:/'''/,contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/, +contains:[r.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/, +contains:[r.BACKSLASH_ESCAPE,o,c]},{begin:/"/,end:/"/, +contains:[r.BACKSLASH_ESCAPE,o,c]},{begin:/\\/,end:/(\s|$)/,excludeEnd:!0}]},{ +className:"regexp",variants:[{begin:"//",end:"//[gim]*", +contains:[o,r.HASH_COMMENT_MODE]},{ +begin:/\/(?![ *])(\\.|[^\\\n])*?\/[gim]*(?=\W)/}]},{begin:"@"+s},{begin:"``", +end:"``",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];o.contains=l +;const d={className:"params",begin:"\\(",returnBegin:!0,contains:[{begin:/\(/, +end:/\)/,keywords:t,contains:["self"].concat(l)}]},g={variants:[{ +match:[/class\s+/,s,/\s+extends\s+/,s]},{match:[/class\s+/,s]}],scope:{ +2:"title.class",4:"title.class.inherited"},keywords:t};return{name:"LiveScript", +aliases:["ls"],keywords:t,illegal:/\/\*/, +contains:l.concat([r.COMMENT("\\/\\*","\\*\\/"),r.HASH_COMMENT_MODE,{ +begin:"(#=>|=>|\\|>>|-?->|!->)"},{className:"function",contains:[i,d], +returnBegin:!0,variants:[{ +begin:"("+s+"\\s*(?:=|:=)\\s*)?(\\(.*\\)\\s*)?\\B->\\*?",end:"->\\*?"},{ +begin:"("+s+"\\s*(?:=|:=)\\s*)?!?(\\(.*\\)\\s*)?\\B[-~]{1,2}>\\*?", +end:"[-~]{1,2}>\\*?"},{ +begin:"("+s+"\\s*(?:=|:=)\\s*)?(\\(.*\\)\\s*)?\\B!?[-~]{1,2}>\\*?", +end:"!?[-~]{1,2}>\\*?"}]},g,{begin:s+":",end:":",returnBegin:!0,returnEnd:!0, +relevance:0}])}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/llvm.min.js b/src/app/resources/assets/highlight/es/languages/llvm.min.js new file mode 100644 index 0000000..1619eed --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/llvm.min.js @@ -0,0 +1,15 @@ +/*! `llvm` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a=e.regex,n=/([-a-zA-Z$._][\w$.-]*)/,t={className:"variable",variants:[{ +begin:a.concat(/%/,n)},{begin:/%\d+/},{begin:/#\d+/}]},i={className:"title", +variants:[{begin:a.concat(/@/,n)},{begin:/@\d+/},{begin:a.concat(/!/,n)},{ +begin:a.concat(/!\d+/,n)},{begin:/!\d+/}]};return{name:"LLVM IR", +keywords:"begin end true false declare define global constant private linker_private internal available_externally linkonce linkonce_odr weak weak_odr appending dllimport dllexport common default hidden protected extern_weak external thread_local zeroinitializer undef null to tail target triple datalayout volatile nuw nsw nnan ninf nsz arcp fast exact inbounds align addrspace section alias module asm sideeffect gc dbg linker_private_weak attributes blockaddress initialexec localdynamic localexec prefix unnamed_addr ccc fastcc coldcc x86_stdcallcc x86_fastcallcc arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ptx_kernel intel_ocl_bicc msp430_intrcc spir_func spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc cc c signext zeroext inreg sret nounwind noreturn noalias nocapture byval nest readnone readonly inlinehint noinline alwaysinline optsize ssp sspreq noredzone noimplicitfloat naked builtin cold nobuiltin noduplicate nonlazybind optnone returns_twice sanitize_address sanitize_memory sanitize_thread sspstrong uwtable returned type opaque eq ne slt sgt sle sge ult ugt ule uge oeq one olt ogt ole oge ord uno ueq une x acq_rel acquire alignstack atomic catch cleanup filter inteldialect max min monotonic nand personality release seq_cst singlethread umax umin unordered xchg add fadd sub fsub mul fmul udiv sdiv fdiv urem srem frem shl lshr ashr and or xor icmp fcmp phi call trunc zext sext fptrunc fpext uitofp sitofp fptoui fptosi inttoptr ptrtoint bitcast addrspacecast select va_arg ret br switch invoke unwind unreachable indirectbr landingpad resume malloc alloca free load store getelementptr extractelement insertelement shufflevector getresult extractvalue insertvalue atomicrmw cmpxchg fence argmemonly double", +contains:[{className:"type",begin:/\bi\d+(?=\s|\b)/},e.COMMENT(/;\s*$/,null,{ +relevance:0}),e.COMMENT(/;/,/$/),{className:"string",begin:/"/,end:/"/, +contains:[{className:"char.escape",match:/\\\d\d/}]},i,{className:"punctuation", +relevance:0,begin:/,/},{className:"operator",relevance:0,begin:/=/},t,{ +className:"symbol",variants:[{begin:/^\s*[a-z]+:/}],relevance:0},{ +className:"number",variants:[{begin:/[su]?0[xX][KMLHR]?[a-fA-F0-9]+/},{ +begin:/[-+]?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/}],relevance:0}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/lsl.min.js b/src/app/resources/assets/highlight/es/languages/lsl.min.js new file mode 100644 index 0000000..d8d96be --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/lsl.min.js @@ -0,0 +1,19 @@ +/*! `lsl` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return E=>{const T={className:"number", +relevance:0,begin:E.C_NUMBER_RE};return{name:"LSL (Linden Scripting Language)", +illegal:":",contains:[{className:"string",begin:'"',end:'"',contains:[{ +className:"subst",begin:/\\[tn"\\]/}]},{className:"comment", +variants:[E.COMMENT("//","$"),E.COMMENT("/\\*","\\*/")],relevance:0},T,{ +className:"section",variants:[{begin:"\\b(state|default)\\b"},{ +begin:"\\b(state_(entry|exit)|touch(_(start|end))?|(land_)?collision(_(start|end))?|timer|listen|(no_)?sensor|control|(not_)?at_(rot_)?target|money|email|experience_permissions(_denied)?|run_time_permissions|changed|attach|dataserver|moving_(start|end)|link_message|(on|object)_rez|remote_data|http_re(sponse|quest)|path_update|transaction_result)\\b" +}]},{className:"built_in", +begin:"\\b(ll(AgentInExperience|(Create|DataSize|Delete|KeyCount|Keys|Read|Update)KeyValue|GetExperience(Details|ErrorMessage)|ReturnObjectsBy(ID|Owner)|Json(2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(Mag|Norm|Dist)|Rot(Between|2(Euler|Fwd|Left|Up))|(Euler|Axes)2Rot|Whisper|(Region|Owner)?Say|Shout|Listen(Control|Remove)?|Sensor(Repeat|Remove)?|Detected(Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|([GS]et)(AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(Scale|Offset|Rotate)Texture|(Rot)?Target(Remove)?|(Stop)?MoveToTarget|Apply(Rotational)?Impulse|Set(KeyframedMotion|ContentType|RegionPos|(Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(Queueing|Radius)|Vehicle(Type|(Float|Vector|Rotation)Param)|(Touch|Sit)?Text|Camera(Eye|At)Offset|PrimitiveParams|ClickAction|Link(Alpha|Color|PrimitiveParams(Fast)?|Texture(Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get((Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(PrimitiveParams|Number(OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(Details|PermMask|PrimCount)|Parcel(MaxPrims|Details|Prim(Count|Owners))|Attached(List)?|(SPMax|Free|Used)Memory|Region(Name|TimeDilation|FPS|Corner|AgentCount)|Root(Position|Rotation)|UnixTime|(Parcel|Region)Flags|(Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(Prims|NotecardLines|Sides)|Animation(List)?|(Camera|Local)(Pos|Rot)|Vel|Accel|Omega|Time(stamp|OfDay)|(Object|CenterOf)?Mass|MassMKS|Energy|Owner|(Owner)?Key|SunDirection|Texture(Offset|Scale|Rot)|Inventory(Number|Name|Key|Type|Creator|PermMask)|Permissions(Key)?|StartParameter|List(Length|EntryType)|Date|Agent(Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(Name|State))|(Get|Reset|GetAndReset)Time|PlaySound(Slave)?|LoopSound(Master|Slave)?|(Trigger|Stop|Preload)Sound|((Get|Delete)Sub|Insert)String|To(Upper|Lower)|Give(InventoryList|Money)|RezObject|(Stop)?LookAt|Sleep|CollisionFilter|(Take|Release)Controls|DetachFromAvatar|AttachToAvatar(Temp)?|InstantMessage|(GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(Length|Trim)|(Start|Stop)Animation|TargetOmega|Request(Experience)?Permissions|(Create|Break)Link|BreakAllLinks|(Give|Remove)Inventory|Water|PassTouches|Request(Agent|Inventory)Data|TeleportAgent(Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(Axis|Angle)|A(cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(CSV|Integer|Json|Float|String|Key|Vector|Rot|List(Strided)?)|DeleteSubList|List(Statistics|Sort|Randomize|(Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(Slope|Normal|Contour)|GroundRepel|(Set|Remove)VehicleFlags|SitOnLink|(AvatarOn)?(Link)?SitTarget|Script(Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(Integer|String)ToBase64|XorBase64|Log(10)?|Base64To(String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(Load|Release|(E|Une)scape)URL|ParcelMedia(CommandList|Query)|ModPow|MapDestination|(RemoveFrom|AddTo|Reset)Land(Pass|Ban)List|(Set|Clear)CameraParams|HTTP(Request|Response)|TextBox|DetectedTouch(UV|Face|Pos|(N|Bin)ormal|ST)|(MD5|SHA1|DumpList2)String|Request(Secure)?URL|Clear(Prim|Link)Media|(Link)?ParticleSystem|(Get|Request)(Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\\b" +},{className:"literal",variants:[{ +begin:"\\b(PI|TWO_PI|PI_BY_TWO|DEG_TO_RAD|RAD_TO_DEG|SQRT2)\\b"},{ +begin:"\\b(XP_ERROR_(EXPERIENCES_DISABLED|EXPERIENCE_(DISABLED|SUSPENDED)|INVALID_(EXPERIENCE|PARAMETERS)|KEY_NOT_FOUND|MATURITY_EXCEEDED|NONE|NOT_(FOUND|PERMITTED(_LAND)?)|NO_EXPERIENCE|QUOTA_EXCEEDED|RETRY_UPDATE|STORAGE_EXCEPTION|STORE_DISABLED|THROTTLED|UNKNOWN_ERROR)|JSON_APPEND|STATUS_(PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(_OBJECT)?|(DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(_(BY_(LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(PARCEL(_OWNER)?|REGION)))?|CAMERA_(PITCH|DISTANCE|BEHINDNESS_(ANGLE|LAG)|(FOCUS|POSITION)(_(THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(ROOT|SET|ALL_(OTHERS|CHILDREN)|THIS)|ACTIVE|PASS(IVE|_(ALWAYS|IF_NOT_HANDLED|NEVER))|SCRIPTED|CONTROL_(FWD|BACK|(ROT_)?(LEFT|RIGHT)|UP|DOWN|(ML_)?LBUTTON)|PERMISSION_(RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(_START)?|TELEPORT|MEDIA)|OBJECT_(CLICK_ACTION|HOVER_HEIGHT|LAST_OWNER_ID|(PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_(ATTACHED|ON_REZ)|NAME|DESC|POS|PRIM_(COUNT|EQUIVALENCE)|RETURN_(PARCEL(_OWNER)?|REGION)|REZZER_KEY|ROO?T|VELOCITY|OMEGA|OWNER|GROUP(_TAG)?|CREATOR|ATTACHED_(POINT|SLOTS_AVAILABLE)|RENDER_WEIGHT|(BODY_SHAPE|PATHFINDING)_TYPE|(RUNNING|TOTAL)_SCRIPT_COUNT|TOTAL_INVENTORY_COUNT|SCRIPT_(MEMORY|TIME))|TYPE_(INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(DEBUG|PUBLIC)_CHANNEL|ATTACH_(AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](SHOULDER|HAND|FOOT|EAR|EYE|[UL](ARM|LEG)|HIP)|(LEFT|RIGHT)_PEC|HUD_(CENTER_[12]|TOP_(RIGHT|CENTER|LEFT)|BOTTOM(_(RIGHT|LEFT))?)|[LR]HAND_RING1|TAIL_(BASE|TIP)|[LR]WING|FACE_(JAW|[LR]EAR|[LR]EYE|TOUNGE)|GROIN|HIND_[LR]FOOT)|LAND_(LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(ONLINE|NAME|BORN|SIM_(POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(ON_FILE|USED)|REMOTE_DATA_(CHANNEL|REQUEST|REPLY)|PSYS_(PART_(BF_(ZERO|ONE(_MINUS_(DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(START|END)_(COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(RIBBON|WIND|INTERP_(COLOR|SCALE)|BOUNCE|FOLLOW_(SRC|VELOCITY)|TARGET_(POS|LINEAR)|EMISSIVE)_MASK)|SRC_(MAX_AGE|PATTERN|ANGLE_(BEGIN|END)|BURST_(RATE|PART_COUNT|RADIUS|SPEED_(MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(DROP|EXPLODE|ANGLE(_CONE(_EMPTY)?)?)))|VEHICLE_(REFERENCE_FRAME|TYPE_(NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(LINEAR|ANGULAR)_(FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(LINEAR|ANGULAR)_(DEFLECTION_(EFFICIENCY|TIMESCALE)|MOTOR_(DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(EFFICIENCY|TIMESCALE)|BANKING_(EFFICIENCY|MIX|TIMESCALE)|FLAG_(NO_DEFLECTION_UP|LIMIT_(ROLL_ONLY|MOTOR_UP)|HOVER_((WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(ALLOW_UNSIT|ALPHA_MODE(_(BLEND|EMISSIVE|MASK|NONE))?|NORMAL|SPECULAR|TYPE(_(BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(_(STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(NONE|LOW|MEDIUM|HIGH)|BUMP_(NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(DEFAULT|PLANAR)|SCRIPTED_SIT_ONLY|SCULPT_(TYPE_(SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(MIRROR|INVERT))|PHYSICS(_(SHAPE_(CONVEX|NONE|PRIM|TYPE)))?|(POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIT_TARGET|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(ALT_IMAGE_ENABLE|CONTROLS|(CURRENT|HOME)_URL|AUTO_(LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(WIDTH|HEIGHT)_PIXELS|WHITELIST(_ENABLE)?|PERMS_(INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(STANDARD|MINI)|PERM_(NONE|OWNER|GROUP|ANYONE)|MAX_(URL_LENGTH|WHITELIST_(SIZE|COUNT)|(WIDTH|HEIGHT)_PIXELS)))|MASK_(BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(MEDIA_COMMAND_(STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(ALLOW_(FLY|(GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(GROUP_)?OBJECTS)|USE_(ACCESS_(GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(GROUP|ALL)_OBJECT_ENTRY)|COUNT_(TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(HIDE|DEFAULT)|REGION_FLAG_(ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(METHOD|MIMETYPE|BODY_(MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|SIT_(INVALID_(AGENT|LINK_OBJECT)|NO(T_EXPERIENCE|_(ACCESS|EXPERIENCE_PERMISSION|SIT_TARGET)))|STRING_(TRIM(_(HEAD|TAIL))?)|CLICK_ACTION_(NONE|TOUCH|SIT|BUY|PAY|OPEN(_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(NONE|SCRIPT_MEMORY)|RC_(DATA_FLAGS|DETECT_PHANTOM|GET_(LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(TYPES|AGENTS|(NON)?PHYSICAL|LAND))|RCERR_(CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(ALLOWED_(AGENT|GROUP)_(ADD|REMOVE)|BANNED_AGENT_(ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(COMMAND|CMD_(PLAY|STOP|PAUSE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(CMD_((SMOOTH_)?STOP|JUMP)|DESIRED_(TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(_([ABCD]|NONE))?|MAX_(DECEL|TURN_RADIUS|(ACCEL|SPEED)))|PURSUIT_(OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(EVADE_(HIDDEN|SPOTTED)|FAILURE_(DYNAMIC_PATHFINDING_DISABLED|INVALID_(GOAL|START)|NO_(NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(PARCEL_)?UNREACHABLE)|(GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(_(FAST|NONE|SLOW))?|CONTENT_TYPE_(ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(RADIUS|STATIC)|(PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\\b" +},{begin:"\\b(FALSE|TRUE)\\b"},{begin:"\\b(ZERO_ROTATION)\\b"},{ +begin:"\\b(EOF|JSON_(ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(GRANTED|DENIED))\\b" +},{begin:"\\b(ZERO_VECTOR|TOUCH_INVALID_(TEXCOORD|VECTOR))\\b"}]},{ +className:"type", +begin:"\\b(integer|float|string|key|vector|quaternion|rotation|list)\\b"}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/lua.min.js b/src/app/resources/assets/highlight/es/languages/lua.min.js new file mode 100644 index 0000000..88de2ff --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/lua.min.js @@ -0,0 +1,14 @@ +/*! `lua` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const t="\\[=*\\[",a="\\]=*\\]",n={begin:t,end:a,contains:["self"] +},r=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",a,{contains:[n], +relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE, +literal:"true false nil", +keyword:"and break do else elseif end for goto if in local not or repeat return then until while", +built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" +},contains:r.concat([{className:"function",beginKeywords:"function",end:"\\)", +contains:[e.inherit(e.TITLE_MODE,{ +begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params", +begin:"\\(",endsWithParent:!0,contains:r}].concat(r) +},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string", +begin:t,end:a,contains:[n],relevance:5}])}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/makefile.min.js b/src/app/resources/assets/highlight/es/languages/makefile.min.js new file mode 100644 index 0000000..fa4ac9d --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/makefile.min.js @@ -0,0 +1,14 @@ +/*! `makefile` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a={className:"variable", +variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{"use strict";return e=>{const n={begin:/<\/?[A-Za-z_]/, +end:">",subLanguage:"xml",relevance:0},a={variants:[{begin:/\[.+?\]\[.*?\]/, +relevance:0},{ +begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, +relevance:2},{ +begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), +relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ +begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/ +},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, +returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", +excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", +end:"\\]",excludeBegin:!0,excludeEnd:!0}]},i={className:"strong",contains:[], +variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}] +},s={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{ +begin:/_(?![_\s])/,end:/_/,relevance:0}]},c=e.inherit(i,{contains:[] +}),t=e.inherit(s,{contains:[]});i.contains.push(t),s.contains.push(c) +;let l=[n,a];return[i,s,c,t].forEach((e=>{e.contains=e.contains.concat(l) +})),l=l.concat(i,s),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ +className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:l},{ +begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", +contains:l}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", +end:"\\s+",excludeEnd:!0},i,s,{className:"quote",begin:"^>\\s+",contains:l, +end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ +begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ +begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", +contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ +begin:"^[-\\*]{3,}",end:"$"},a,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ +className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ +className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/mathematica.min.js b/src/app/resources/assets/highlight/es/languages/mathematica.min.js new file mode 100644 index 0000000..851dc9e --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/mathematica.min.js @@ -0,0 +1,21 @@ +/*! `mathematica` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict" +;const e=["AASTriangle","AbelianGroup","Abort","AbortKernels","AbortProtect","AbortScheduledTask","Above","Abs","AbsArg","AbsArgPlot","Absolute","AbsoluteCorrelation","AbsoluteCorrelationFunction","AbsoluteCurrentValue","AbsoluteDashing","AbsoluteFileName","AbsoluteOptions","AbsolutePointSize","AbsoluteThickness","AbsoluteTime","AbsoluteTiming","AcceptanceThreshold","AccountingForm","Accumulate","Accuracy","AccuracyGoal","ActionDelay","ActionMenu","ActionMenuBox","ActionMenuBoxOptions","Activate","Active","ActiveClassification","ActiveClassificationObject","ActiveItem","ActivePrediction","ActivePredictionObject","ActiveStyle","AcyclicGraphQ","AddOnHelpPath","AddSides","AddTo","AddToSearchIndex","AddUsers","AdjacencyGraph","AdjacencyList","AdjacencyMatrix","AdjacentMeshCells","AdjustmentBox","AdjustmentBoxOptions","AdjustTimeSeriesForecast","AdministrativeDivisionData","AffineHalfSpace","AffineSpace","AffineStateSpaceModel","AffineTransform","After","AggregatedEntityClass","AggregationLayer","AircraftData","AirportData","AirPressureData","AirTemperatureData","AiryAi","AiryAiPrime","AiryAiZero","AiryBi","AiryBiPrime","AiryBiZero","AlgebraicIntegerQ","AlgebraicNumber","AlgebraicNumberDenominator","AlgebraicNumberNorm","AlgebraicNumberPolynomial","AlgebraicNumberTrace","AlgebraicRules","AlgebraicRulesData","Algebraics","AlgebraicUnitQ","Alignment","AlignmentMarker","AlignmentPoint","All","AllowAdultContent","AllowedCloudExtraParameters","AllowedCloudParameterExtensions","AllowedDimensions","AllowedFrequencyRange","AllowedHeads","AllowGroupClose","AllowIncomplete","AllowInlineCells","AllowKernelInitialization","AllowLooseGrammar","AllowReverseGroupClose","AllowScriptLevelChange","AllowVersionUpdate","AllTrue","Alphabet","AlphabeticOrder","AlphabeticSort","AlphaChannel","AlternateImage","AlternatingFactorial","AlternatingGroup","AlternativeHypothesis","Alternatives","AltitudeMethod","AmbientLight","AmbiguityFunction","AmbiguityList","Analytic","AnatomyData","AnatomyForm","AnatomyPlot3D","AnatomySkinStyle","AnatomyStyling","AnchoredSearch","And","AndersonDarlingTest","AngerJ","AngleBisector","AngleBracket","AnglePath","AnglePath3D","AngleVector","AngularGauge","Animate","AnimationCycleOffset","AnimationCycleRepetitions","AnimationDirection","AnimationDisplayTime","AnimationRate","AnimationRepetitions","AnimationRunning","AnimationRunTime","AnimationTimeIndex","Animator","AnimatorBox","AnimatorBoxOptions","AnimatorElements","Annotate","Annotation","AnnotationDelete","AnnotationKeys","AnnotationRules","AnnotationValue","Annuity","AnnuityDue","Annulus","AnomalyDetection","AnomalyDetector","AnomalyDetectorFunction","Anonymous","Antialiasing","AntihermitianMatrixQ","Antisymmetric","AntisymmetricMatrixQ","Antonyms","AnyOrder","AnySubset","AnyTrue","Apart","ApartSquareFree","APIFunction","Appearance","AppearanceElements","AppearanceRules","AppellF1","Append","AppendCheck","AppendLayer","AppendTo","Apply","ApplySides","ArcCos","ArcCosh","ArcCot","ArcCoth","ArcCsc","ArcCsch","ArcCurvature","ARCHProcess","ArcLength","ArcSec","ArcSech","ArcSin","ArcSinDistribution","ArcSinh","ArcTan","ArcTanh","Area","Arg","ArgMax","ArgMin","ArgumentCountQ","ARIMAProcess","ArithmeticGeometricMean","ARMAProcess","Around","AroundReplace","ARProcess","Array","ArrayComponents","ArrayDepth","ArrayFilter","ArrayFlatten","ArrayMesh","ArrayPad","ArrayPlot","ArrayQ","ArrayResample","ArrayReshape","ArrayRules","Arrays","Arrow","Arrow3DBox","ArrowBox","Arrowheads","ASATriangle","Ask","AskAppend","AskConfirm","AskDisplay","AskedQ","AskedValue","AskFunction","AskState","AskTemplateDisplay","AspectRatio","AspectRatioFixed","Assert","AssociateTo","Association","AssociationFormat","AssociationMap","AssociationQ","AssociationThread","AssumeDeterministic","Assuming","Assumptions","AstronomicalData","Asymptotic","AsymptoticDSolveValue","AsymptoticEqual","AsymptoticEquivalent","AsymptoticGreater","AsymptoticGreaterEqual","AsymptoticIntegrate","AsymptoticLess","AsymptoticLessEqual","AsymptoticOutputTracker","AsymptoticProduct","AsymptoticRSolveValue","AsymptoticSolve","AsymptoticSum","Asynchronous","AsynchronousTaskObject","AsynchronousTasks","Atom","AtomCoordinates","AtomCount","AtomDiagramCoordinates","AtomList","AtomQ","AttentionLayer","Attributes","Audio","AudioAmplify","AudioAnnotate","AudioAnnotationLookup","AudioBlockMap","AudioCapture","AudioChannelAssignment","AudioChannelCombine","AudioChannelMix","AudioChannels","AudioChannelSeparate","AudioData","AudioDelay","AudioDelete","AudioDevice","AudioDistance","AudioEncoding","AudioFade","AudioFrequencyShift","AudioGenerator","AudioIdentify","AudioInputDevice","AudioInsert","AudioInstanceQ","AudioIntervals","AudioJoin","AudioLabel","AudioLength","AudioLocalMeasurements","AudioLooping","AudioLoudness","AudioMeasurements","AudioNormalize","AudioOutputDevice","AudioOverlay","AudioPad","AudioPan","AudioPartition","AudioPause","AudioPitchShift","AudioPlay","AudioPlot","AudioQ","AudioRecord","AudioReplace","AudioResample","AudioReverb","AudioReverse","AudioSampleRate","AudioSpectralMap","AudioSpectralTransformation","AudioSplit","AudioStop","AudioStream","AudioStreams","AudioTimeStretch","AudioTracks","AudioTrim","AudioType","AugmentedPolyhedron","AugmentedSymmetricPolynomial","Authenticate","Authentication","AuthenticationDialog","AutoAction","Autocomplete","AutocompletionFunction","AutoCopy","AutocorrelationTest","AutoDelete","AutoEvaluateEvents","AutoGeneratedPackage","AutoIndent","AutoIndentSpacings","AutoItalicWords","AutoloadPath","AutoMatch","Automatic","AutomaticImageSize","AutoMultiplicationSymbol","AutoNumberFormatting","AutoOpenNotebooks","AutoOpenPalettes","AutoQuoteCharacters","AutoRefreshed","AutoRemove","AutorunSequencing","AutoScaling","AutoScroll","AutoSpacing","AutoStyleOptions","AutoStyleWords","AutoSubmitting","Axes","AxesEdge","AxesLabel","AxesOrigin","AxesStyle","AxiomaticTheory","Axis","BabyMonsterGroupB","Back","Background","BackgroundAppearance","BackgroundTasksSettings","Backslash","Backsubstitution","Backward","Ball","Band","BandpassFilter","BandstopFilter","BarabasiAlbertGraphDistribution","BarChart","BarChart3D","BarcodeImage","BarcodeRecognize","BaringhausHenzeTest","BarLegend","BarlowProschanImportance","BarnesG","BarOrigin","BarSpacing","BartlettHannWindow","BartlettWindow","BaseDecode","BaseEncode","BaseForm","Baseline","BaselinePosition","BaseStyle","BasicRecurrentLayer","BatchNormalizationLayer","BatchSize","BatesDistribution","BattleLemarieWavelet","BayesianMaximization","BayesianMaximizationObject","BayesianMinimization","BayesianMinimizationObject","Because","BeckmannDistribution","Beep","Before","Begin","BeginDialogPacket","BeginFrontEndInteractionPacket","BeginPackage","BellB","BellY","Below","BenfordDistribution","BeniniDistribution","BenktanderGibratDistribution","BenktanderWeibullDistribution","BernoulliB","BernoulliDistribution","BernoulliGraphDistribution","BernoulliProcess","BernsteinBasis","BesselFilterModel","BesselI","BesselJ","BesselJZero","BesselK","BesselY","BesselYZero","Beta","BetaBinomialDistribution","BetaDistribution","BetaNegativeBinomialDistribution","BetaPrimeDistribution","BetaRegularized","Between","BetweennessCentrality","BeveledPolyhedron","BezierCurve","BezierCurve3DBox","BezierCurve3DBoxOptions","BezierCurveBox","BezierCurveBoxOptions","BezierFunction","BilateralFilter","Binarize","BinaryDeserialize","BinaryDistance","BinaryFormat","BinaryImageQ","BinaryRead","BinaryReadList","BinarySerialize","BinaryWrite","BinCounts","BinLists","Binomial","BinomialDistribution","BinomialProcess","BinormalDistribution","BiorthogonalSplineWavelet","BipartiteGraphQ","BiquadraticFilterModel","BirnbaumImportance","BirnbaumSaundersDistribution","BitAnd","BitClear","BitGet","BitLength","BitNot","BitOr","BitSet","BitShiftLeft","BitShiftRight","BitXor","BiweightLocation","BiweightMidvariance","Black","BlackmanHarrisWindow","BlackmanNuttallWindow","BlackmanWindow","Blank","BlankForm","BlankNullSequence","BlankSequence","Blend","Block","BlockchainAddressData","BlockchainBase","BlockchainBlockData","BlockchainContractValue","BlockchainData","BlockchainGet","BlockchainKeyEncode","BlockchainPut","BlockchainTokenData","BlockchainTransaction","BlockchainTransactionData","BlockchainTransactionSign","BlockchainTransactionSubmit","BlockMap","BlockRandom","BlomqvistBeta","BlomqvistBetaTest","Blue","Blur","BodePlot","BohmanWindow","Bold","Bond","BondCount","BondList","BondQ","Bookmarks","Boole","BooleanConsecutiveFunction","BooleanConvert","BooleanCountingFunction","BooleanFunction","BooleanGraph","BooleanMaxterms","BooleanMinimize","BooleanMinterms","BooleanQ","BooleanRegion","Booleans","BooleanStrings","BooleanTable","BooleanVariables","BorderDimensions","BorelTannerDistribution","Bottom","BottomHatTransform","BoundaryDiscretizeGraphics","BoundaryDiscretizeRegion","BoundaryMesh","BoundaryMeshRegion","BoundaryMeshRegionQ","BoundaryStyle","BoundedRegionQ","BoundingRegion","Bounds","Box","BoxBaselineShift","BoxData","BoxDimensions","Boxed","Boxes","BoxForm","BoxFormFormatTypes","BoxFrame","BoxID","BoxMargins","BoxMatrix","BoxObject","BoxRatios","BoxRotation","BoxRotationPoint","BoxStyle","BoxWhiskerChart","Bra","BracketingBar","BraKet","BrayCurtisDistance","BreadthFirstScan","Break","BridgeData","BrightnessEqualize","BroadcastStationData","Brown","BrownForsytheTest","BrownianBridgeProcess","BrowserCategory","BSplineBasis","BSplineCurve","BSplineCurve3DBox","BSplineCurve3DBoxOptions","BSplineCurveBox","BSplineCurveBoxOptions","BSplineFunction","BSplineSurface","BSplineSurface3DBox","BSplineSurface3DBoxOptions","BubbleChart","BubbleChart3D","BubbleScale","BubbleSizes","BuildingData","BulletGauge","BusinessDayQ","ButterflyGraph","ButterworthFilterModel","Button","ButtonBar","ButtonBox","ButtonBoxOptions","ButtonCell","ButtonContents","ButtonData","ButtonEvaluator","ButtonExpandable","ButtonFrame","ButtonFunction","ButtonMargins","ButtonMinHeight","ButtonNote","ButtonNotebook","ButtonSource","ButtonStyle","ButtonStyleMenuListing","Byte","ByteArray","ByteArrayFormat","ByteArrayQ","ByteArrayToString","ByteCount","ByteOrdering","C","CachedValue","CacheGraphics","CachePersistence","CalendarConvert","CalendarData","CalendarType","Callout","CalloutMarker","CalloutStyle","CallPacket","CanberraDistance","Cancel","CancelButton","CandlestickChart","CanonicalGraph","CanonicalizePolygon","CanonicalizePolyhedron","CanonicalName","CanonicalWarpingCorrespondence","CanonicalWarpingDistance","CantorMesh","CantorStaircase","Cap","CapForm","CapitalDifferentialD","Capitalize","CapsuleShape","CaptureRunning","CardinalBSplineBasis","CarlemanLinearize","CarmichaelLambda","CaseOrdering","Cases","CaseSensitive","Cashflow","Casoratian","Catalan","CatalanNumber","Catch","CategoricalDistribution","Catenate","CatenateLayer","CauchyDistribution","CauchyWindow","CayleyGraph","CDF","CDFDeploy","CDFInformation","CDFWavelet","Ceiling","CelestialSystem","Cell","CellAutoOverwrite","CellBaseline","CellBoundingBox","CellBracketOptions","CellChangeTimes","CellContents","CellContext","CellDingbat","CellDynamicExpression","CellEditDuplicate","CellElementsBoundingBox","CellElementSpacings","CellEpilog","CellEvaluationDuplicate","CellEvaluationFunction","CellEvaluationLanguage","CellEventActions","CellFrame","CellFrameColor","CellFrameLabelMargins","CellFrameLabels","CellFrameMargins","CellGroup","CellGroupData","CellGrouping","CellGroupingRules","CellHorizontalScrolling","CellID","CellLabel","CellLabelAutoDelete","CellLabelMargins","CellLabelPositioning","CellLabelStyle","CellLabelTemplate","CellMargins","CellObject","CellOpen","CellPrint","CellProlog","Cells","CellSize","CellStyle","CellTags","CellularAutomaton","CensoredDistribution","Censoring","Center","CenterArray","CenterDot","CentralFeature","CentralMoment","CentralMomentGeneratingFunction","Cepstrogram","CepstrogramArray","CepstrumArray","CForm","ChampernowneNumber","ChangeOptions","ChannelBase","ChannelBrokerAction","ChannelDatabin","ChannelHistoryLength","ChannelListen","ChannelListener","ChannelListeners","ChannelListenerWait","ChannelObject","ChannelPreSendFunction","ChannelReceiverFunction","ChannelSend","ChannelSubscribers","ChanVeseBinarize","Character","CharacterCounts","CharacterEncoding","CharacterEncodingsPath","CharacteristicFunction","CharacteristicPolynomial","CharacterName","CharacterNormalize","CharacterRange","Characters","ChartBaseStyle","ChartElementData","ChartElementDataFunction","ChartElementFunction","ChartElements","ChartLabels","ChartLayout","ChartLegends","ChartStyle","Chebyshev1FilterModel","Chebyshev2FilterModel","ChebyshevDistance","ChebyshevT","ChebyshevU","Check","CheckAbort","CheckAll","Checkbox","CheckboxBar","CheckboxBox","CheckboxBoxOptions","ChemicalData","ChessboardDistance","ChiDistribution","ChineseRemainder","ChiSquareDistribution","ChoiceButtons","ChoiceDialog","CholeskyDecomposition","Chop","ChromaticityPlot","ChromaticityPlot3D","ChromaticPolynomial","Circle","CircleBox","CircleDot","CircleMinus","CirclePlus","CirclePoints","CircleThrough","CircleTimes","CirculantGraph","CircularOrthogonalMatrixDistribution","CircularQuaternionMatrixDistribution","CircularRealMatrixDistribution","CircularSymplecticMatrixDistribution","CircularUnitaryMatrixDistribution","Circumsphere","CityData","ClassifierFunction","ClassifierInformation","ClassifierMeasurements","ClassifierMeasurementsObject","Classify","ClassPriors","Clear","ClearAll","ClearAttributes","ClearCookies","ClearPermissions","ClearSystemCache","ClebschGordan","ClickPane","Clip","ClipboardNotebook","ClipFill","ClippingStyle","ClipPlanes","ClipPlanesStyle","ClipRange","Clock","ClockGauge","ClockwiseContourIntegral","Close","Closed","CloseKernels","ClosenessCentrality","Closing","ClosingAutoSave","ClosingEvent","ClosingSaveDialog","CloudAccountData","CloudBase","CloudConnect","CloudConnections","CloudDeploy","CloudDirectory","CloudDisconnect","CloudEvaluate","CloudExport","CloudExpression","CloudExpressions","CloudFunction","CloudGet","CloudImport","CloudLoggingData","CloudObject","CloudObjectInformation","CloudObjectInformationData","CloudObjectNameFormat","CloudObjects","CloudObjectURLType","CloudPublish","CloudPut","CloudRenderingMethod","CloudSave","CloudShare","CloudSubmit","CloudSymbol","CloudUnshare","CloudUserID","ClusterClassify","ClusterDissimilarityFunction","ClusteringComponents","ClusteringTree","CMYKColor","Coarse","CodeAssistOptions","Coefficient","CoefficientArrays","CoefficientDomain","CoefficientList","CoefficientRules","CoifletWavelet","Collect","Colon","ColonForm","ColorBalance","ColorCombine","ColorConvert","ColorCoverage","ColorData","ColorDataFunction","ColorDetect","ColorDistance","ColorFunction","ColorFunctionScaling","Colorize","ColorNegate","ColorOutput","ColorProfileData","ColorQ","ColorQuantize","ColorReplace","ColorRules","ColorSelectorSettings","ColorSeparate","ColorSetter","ColorSetterBox","ColorSetterBoxOptions","ColorSlider","ColorsNear","ColorSpace","ColorToneMapping","Column","ColumnAlignments","ColumnBackgrounds","ColumnForm","ColumnLines","ColumnsEqual","ColumnSpacings","ColumnWidths","CombinedEntityClass","CombinerFunction","CometData","CommonDefaultFormatTypes","Commonest","CommonestFilter","CommonName","CommonUnits","CommunityBoundaryStyle","CommunityGraphPlot","CommunityLabels","CommunityRegionStyle","CompanyData","CompatibleUnitQ","CompilationOptions","CompilationTarget","Compile","Compiled","CompiledCodeFunction","CompiledFunction","CompilerOptions","Complement","ComplementedEntityClass","CompleteGraph","CompleteGraphQ","CompleteKaryTree","CompletionsListPacket","Complex","ComplexContourPlot","Complexes","ComplexExpand","ComplexInfinity","ComplexityFunction","ComplexListPlot","ComplexPlot","ComplexPlot3D","ComplexRegionPlot","ComplexStreamPlot","ComplexVectorPlot","ComponentMeasurements","ComponentwiseContextMenu","Compose","ComposeList","ComposeSeries","CompositeQ","Composition","CompoundElement","CompoundExpression","CompoundPoissonDistribution","CompoundPoissonProcess","CompoundRenewalProcess","Compress","CompressedData","CompressionLevel","ComputeUncertainty","Condition","ConditionalExpression","Conditioned","Cone","ConeBox","ConfidenceLevel","ConfidenceRange","ConfidenceTransform","ConfigurationPath","ConformAudio","ConformImages","Congruent","ConicHullRegion","ConicHullRegion3DBox","ConicHullRegionBox","ConicOptimization","Conjugate","ConjugateTranspose","Conjunction","Connect","ConnectedComponents","ConnectedGraphComponents","ConnectedGraphQ","ConnectedMeshComponents","ConnectedMoleculeComponents","ConnectedMoleculeQ","ConnectionSettings","ConnectLibraryCallbackFunction","ConnectSystemModelComponents","ConnesWindow","ConoverTest","ConsoleMessage","ConsoleMessagePacket","Constant","ConstantArray","ConstantArrayLayer","ConstantImage","ConstantPlusLayer","ConstantRegionQ","Constants","ConstantTimesLayer","ConstellationData","ConstrainedMax","ConstrainedMin","Construct","Containing","ContainsAll","ContainsAny","ContainsExactly","ContainsNone","ContainsOnly","ContentFieldOptions","ContentLocationFunction","ContentObject","ContentPadding","ContentsBoundingBox","ContentSelectable","ContentSize","Context","ContextMenu","Contexts","ContextToFileName","Continuation","Continue","ContinuedFraction","ContinuedFractionK","ContinuousAction","ContinuousMarkovProcess","ContinuousTask","ContinuousTimeModelQ","ContinuousWaveletData","ContinuousWaveletTransform","ContourDetect","ContourGraphics","ContourIntegral","ContourLabels","ContourLines","ContourPlot","ContourPlot3D","Contours","ContourShading","ContourSmoothing","ContourStyle","ContraharmonicMean","ContrastiveLossLayer","Control","ControlActive","ControlAlignment","ControlGroupContentsBox","ControllabilityGramian","ControllabilityMatrix","ControllableDecomposition","ControllableModelQ","ControllerDuration","ControllerInformation","ControllerInformationData","ControllerLinking","ControllerManipulate","ControllerMethod","ControllerPath","ControllerState","ControlPlacement","ControlsRendering","ControlType","Convergents","ConversionOptions","ConversionRules","ConvertToBitmapPacket","ConvertToPostScript","ConvertToPostScriptPacket","ConvexHullMesh","ConvexPolygonQ","ConvexPolyhedronQ","ConvolutionLayer","Convolve","ConwayGroupCo1","ConwayGroupCo2","ConwayGroupCo3","CookieFunction","Cookies","CoordinateBoundingBox","CoordinateBoundingBoxArray","CoordinateBounds","CoordinateBoundsArray","CoordinateChartData","CoordinatesToolOptions","CoordinateTransform","CoordinateTransformData","CoprimeQ","Coproduct","CopulaDistribution","Copyable","CopyDatabin","CopyDirectory","CopyFile","CopyTag","CopyToClipboard","CornerFilter","CornerNeighbors","Correlation","CorrelationDistance","CorrelationFunction","CorrelationTest","Cos","Cosh","CoshIntegral","CosineDistance","CosineWindow","CosIntegral","Cot","Coth","Count","CountDistinct","CountDistinctBy","CounterAssignments","CounterBox","CounterBoxOptions","CounterClockwiseContourIntegral","CounterEvaluator","CounterFunction","CounterIncrements","CounterStyle","CounterStyleMenuListing","CountRoots","CountryData","Counts","CountsBy","Covariance","CovarianceEstimatorFunction","CovarianceFunction","CoxianDistribution","CoxIngersollRossProcess","CoxModel","CoxModelFit","CramerVonMisesTest","CreateArchive","CreateCellID","CreateChannel","CreateCloudExpression","CreateDatabin","CreateDataStructure","CreateDataSystemModel","CreateDialog","CreateDirectory","CreateDocument","CreateFile","CreateIntermediateDirectories","CreateManagedLibraryExpression","CreateNotebook","CreatePacletArchive","CreatePalette","CreatePalettePacket","CreatePermissionsGroup","CreateScheduledTask","CreateSearchIndex","CreateSystemModel","CreateTemporary","CreateUUID","CreateWindow","CriterionFunction","CriticalityFailureImportance","CriticalitySuccessImportance","CriticalSection","Cross","CrossEntropyLossLayer","CrossingCount","CrossingDetect","CrossingPolygon","CrossMatrix","Csc","Csch","CTCLossLayer","Cube","CubeRoot","Cubics","Cuboid","CuboidBox","Cumulant","CumulantGeneratingFunction","Cup","CupCap","Curl","CurlyDoubleQuote","CurlyQuote","CurrencyConvert","CurrentDate","CurrentImage","CurrentlySpeakingPacket","CurrentNotebookImage","CurrentScreenImage","CurrentValue","Curry","CurryApplied","CurvatureFlowFilter","CurveClosed","Cyan","CycleGraph","CycleIndexPolynomial","Cycles","CyclicGroup","Cyclotomic","Cylinder","CylinderBox","CylindricalDecomposition","D","DagumDistribution","DamData","DamerauLevenshteinDistance","DampingFactor","Darker","Dashed","Dashing","DatabaseConnect","DatabaseDisconnect","DatabaseReference","Databin","DatabinAdd","DatabinRemove","Databins","DatabinUpload","DataCompression","DataDistribution","DataRange","DataReversed","Dataset","DatasetDisplayPanel","DataStructure","DataStructureQ","Date","DateBounds","Dated","DateDelimiters","DateDifference","DatedUnit","DateFormat","DateFunction","DateHistogram","DateInterval","DateList","DateListLogPlot","DateListPlot","DateListStepPlot","DateObject","DateObjectQ","DateOverlapsQ","DatePattern","DatePlus","DateRange","DateReduction","DateString","DateTicksFormat","DateValue","DateWithinQ","DaubechiesWavelet","DavisDistribution","DawsonF","DayCount","DayCountConvention","DayHemisphere","DaylightQ","DayMatchQ","DayName","DayNightTerminator","DayPlus","DayRange","DayRound","DeBruijnGraph","DeBruijnSequence","Debug","DebugTag","Decapitalize","Decimal","DecimalForm","DeclareKnownSymbols","DeclarePackage","Decompose","DeconvolutionLayer","Decrement","Decrypt","DecryptFile","DedekindEta","DeepSpaceProbeData","Default","DefaultAxesStyle","DefaultBaseStyle","DefaultBoxStyle","DefaultButton","DefaultColor","DefaultControlPlacement","DefaultDuplicateCellStyle","DefaultDuration","DefaultElement","DefaultFaceGridsStyle","DefaultFieldHintStyle","DefaultFont","DefaultFontProperties","DefaultFormatType","DefaultFormatTypeForStyle","DefaultFrameStyle","DefaultFrameTicksStyle","DefaultGridLinesStyle","DefaultInlineFormatType","DefaultInputFormatType","DefaultLabelStyle","DefaultMenuStyle","DefaultNaturalLanguage","DefaultNewCellStyle","DefaultNewInlineCellStyle","DefaultNotebook","DefaultOptions","DefaultOutputFormatType","DefaultPrintPrecision","DefaultStyle","DefaultStyleDefinitions","DefaultTextFormatType","DefaultTextInlineFormatType","DefaultTicksStyle","DefaultTooltipStyle","DefaultValue","DefaultValues","Defer","DefineExternal","DefineInputStreamMethod","DefineOutputStreamMethod","DefineResourceFunction","Definition","Degree","DegreeCentrality","DegreeGraphDistribution","DegreeLexicographic","DegreeReverseLexicographic","DEigensystem","DEigenvalues","Deinitialization","Del","DelaunayMesh","Delayed","Deletable","Delete","DeleteAnomalies","DeleteBorderComponents","DeleteCases","DeleteChannel","DeleteCloudExpression","DeleteContents","DeleteDirectory","DeleteDuplicates","DeleteDuplicatesBy","DeleteFile","DeleteMissing","DeleteObject","DeletePermissionsKey","DeleteSearchIndex","DeleteSmallComponents","DeleteStopwords","DeleteWithContents","DeletionWarning","DelimitedArray","DelimitedSequence","Delimiter","DelimiterFlashTime","DelimiterMatching","Delimiters","DeliveryFunction","Dendrogram","Denominator","DensityGraphics","DensityHistogram","DensityPlot","DensityPlot3D","DependentVariables","Deploy","Deployed","Depth","DepthFirstScan","Derivative","DerivativeFilter","DerivedKey","DescriptorStateSpace","DesignMatrix","DestroyAfterEvaluation","Det","DeviceClose","DeviceConfigure","DeviceExecute","DeviceExecuteAsynchronous","DeviceObject","DeviceOpen","DeviceOpenQ","DeviceRead","DeviceReadBuffer","DeviceReadLatest","DeviceReadList","DeviceReadTimeSeries","Devices","DeviceStreams","DeviceWrite","DeviceWriteBuffer","DGaussianWavelet","DiacriticalPositioning","Diagonal","DiagonalizableMatrixQ","DiagonalMatrix","DiagonalMatrixQ","Dialog","DialogIndent","DialogInput","DialogLevel","DialogNotebook","DialogProlog","DialogReturn","DialogSymbols","Diamond","DiamondMatrix","DiceDissimilarity","DictionaryLookup","DictionaryWordQ","DifferenceDelta","DifferenceOrder","DifferenceQuotient","DifferenceRoot","DifferenceRootReduce","Differences","DifferentialD","DifferentialRoot","DifferentialRootReduce","DifferentiatorFilter","DigitalSignature","DigitBlock","DigitBlockMinimum","DigitCharacter","DigitCount","DigitQ","DihedralAngle","DihedralGroup","Dilation","DimensionalCombinations","DimensionalMeshComponents","DimensionReduce","DimensionReducerFunction","DimensionReduction","Dimensions","DiracComb","DiracDelta","DirectedEdge","DirectedEdges","DirectedGraph","DirectedGraphQ","DirectedInfinity","Direction","Directive","Directory","DirectoryName","DirectoryQ","DirectoryStack","DirichletBeta","DirichletCharacter","DirichletCondition","DirichletConvolve","DirichletDistribution","DirichletEta","DirichletL","DirichletLambda","DirichletTransform","DirichletWindow","DisableConsolePrintPacket","DisableFormatting","DiscreteAsymptotic","DiscreteChirpZTransform","DiscreteConvolve","DiscreteDelta","DiscreteHadamardTransform","DiscreteIndicator","DiscreteLimit","DiscreteLQEstimatorGains","DiscreteLQRegulatorGains","DiscreteLyapunovSolve","DiscreteMarkovProcess","DiscreteMaxLimit","DiscreteMinLimit","DiscretePlot","DiscretePlot3D","DiscreteRatio","DiscreteRiccatiSolve","DiscreteShift","DiscreteTimeModelQ","DiscreteUniformDistribution","DiscreteVariables","DiscreteWaveletData","DiscreteWaveletPacketTransform","DiscreteWaveletTransform","DiscretizeGraphics","DiscretizeRegion","Discriminant","DisjointQ","Disjunction","Disk","DiskBox","DiskMatrix","DiskSegment","Dispatch","DispatchQ","DispersionEstimatorFunction","Display","DisplayAllSteps","DisplayEndPacket","DisplayFlushImagePacket","DisplayForm","DisplayFunction","DisplayPacket","DisplayRules","DisplaySetSizePacket","DisplayString","DisplayTemporary","DisplayWith","DisplayWithRef","DisplayWithVariable","DistanceFunction","DistanceMatrix","DistanceTransform","Distribute","Distributed","DistributedContexts","DistributeDefinitions","DistributionChart","DistributionDomain","DistributionFitTest","DistributionParameterAssumptions","DistributionParameterQ","Dithering","Div","Divergence","Divide","DivideBy","Dividers","DivideSides","Divisible","Divisors","DivisorSigma","DivisorSum","DMSList","DMSString","Do","DockedCells","DocumentGenerator","DocumentGeneratorInformation","DocumentGeneratorInformationData","DocumentGenerators","DocumentNotebook","DocumentWeightingRules","Dodecahedron","DomainRegistrationInformation","DominantColors","DOSTextFormat","Dot","DotDashed","DotEqual","DotLayer","DotPlusLayer","Dotted","DoubleBracketingBar","DoubleContourIntegral","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DoublyInfinite","Down","DownArrow","DownArrowBar","DownArrowUpArrow","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","Downsample","DownTee","DownTeeArrow","DownValues","DragAndDrop","DrawEdges","DrawFrontFaces","DrawHighlighted","Drop","DropoutLayer","DSolve","DSolveValue","Dt","DualLinearProgramming","DualPolyhedron","DualSystemsModel","DumpGet","DumpSave","DuplicateFreeQ","Duration","Dynamic","DynamicBox","DynamicBoxOptions","DynamicEvaluationTimeout","DynamicGeoGraphics","DynamicImage","DynamicLocation","DynamicModule","DynamicModuleBox","DynamicModuleBoxOptions","DynamicModuleParent","DynamicModuleValues","DynamicName","DynamicNamespace","DynamicReference","DynamicSetting","DynamicUpdating","DynamicWrapper","DynamicWrapperBox","DynamicWrapperBoxOptions","E","EarthImpactData","EarthquakeData","EccentricityCentrality","Echo","EchoFunction","EclipseType","EdgeAdd","EdgeBetweennessCentrality","EdgeCapacity","EdgeCapForm","EdgeColor","EdgeConnectivity","EdgeContract","EdgeCost","EdgeCount","EdgeCoverQ","EdgeCycleMatrix","EdgeDashing","EdgeDelete","EdgeDetect","EdgeForm","EdgeIndex","EdgeJoinForm","EdgeLabeling","EdgeLabels","EdgeLabelStyle","EdgeList","EdgeOpacity","EdgeQ","EdgeRenderingFunction","EdgeRules","EdgeShapeFunction","EdgeStyle","EdgeTaggedGraph","EdgeTaggedGraphQ","EdgeTags","EdgeThickness","EdgeWeight","EdgeWeightedGraphQ","Editable","EditButtonSettings","EditCellTagsSettings","EditDistance","EffectiveInterest","Eigensystem","Eigenvalues","EigenvectorCentrality","Eigenvectors","Element","ElementData","ElementwiseLayer","ElidedForms","Eliminate","EliminationOrder","Ellipsoid","EllipticE","EllipticExp","EllipticExpPrime","EllipticF","EllipticFilterModel","EllipticK","EllipticLog","EllipticNomeQ","EllipticPi","EllipticReducedHalfPeriods","EllipticTheta","EllipticThetaPrime","EmbedCode","EmbeddedHTML","EmbeddedService","EmbeddingLayer","EmbeddingObject","EmitSound","EmphasizeSyntaxErrors","EmpiricalDistribution","Empty","EmptyGraphQ","EmptyRegion","EnableConsolePrintPacket","Enabled","Encode","Encrypt","EncryptedObject","EncryptFile","End","EndAdd","EndDialogPacket","EndFrontEndInteractionPacket","EndOfBuffer","EndOfFile","EndOfLine","EndOfString","EndPackage","EngineEnvironment","EngineeringForm","Enter","EnterExpressionPacket","EnterTextPacket","Entity","EntityClass","EntityClassList","EntityCopies","EntityFunction","EntityGroup","EntityInstance","EntityList","EntityPrefetch","EntityProperties","EntityProperty","EntityPropertyClass","EntityRegister","EntityStore","EntityStores","EntityTypeName","EntityUnregister","EntityValue","Entropy","EntropyFilter","Environment","Epilog","EpilogFunction","Equal","EqualColumns","EqualRows","EqualTilde","EqualTo","EquatedTo","Equilibrium","EquirippleFilterKernel","Equivalent","Erf","Erfc","Erfi","ErlangB","ErlangC","ErlangDistribution","Erosion","ErrorBox","ErrorBoxOptions","ErrorNorm","ErrorPacket","ErrorsDialogSettings","EscapeRadius","EstimatedBackground","EstimatedDistribution","EstimatedProcess","EstimatorGains","EstimatorRegulator","EuclideanDistance","EulerAngles","EulerCharacteristic","EulerE","EulerGamma","EulerianGraphQ","EulerMatrix","EulerPhi","Evaluatable","Evaluate","Evaluated","EvaluatePacket","EvaluateScheduledTask","EvaluationBox","EvaluationCell","EvaluationCompletionAction","EvaluationData","EvaluationElements","EvaluationEnvironment","EvaluationMode","EvaluationMonitor","EvaluationNotebook","EvaluationObject","EvaluationOrder","Evaluator","EvaluatorNames","EvenQ","EventData","EventEvaluator","EventHandler","EventHandlerTag","EventLabels","EventSeries","ExactBlackmanWindow","ExactNumberQ","ExactRootIsolation","ExampleData","Except","ExcludedForms","ExcludedLines","ExcludedPhysicalQuantities","ExcludePods","Exclusions","ExclusionsStyle","Exists","Exit","ExitDialog","ExoplanetData","Exp","Expand","ExpandAll","ExpandDenominator","ExpandFileName","ExpandNumerator","Expectation","ExpectationE","ExpectedValue","ExpGammaDistribution","ExpIntegralE","ExpIntegralEi","ExpirationDate","Exponent","ExponentFunction","ExponentialDistribution","ExponentialFamily","ExponentialGeneratingFunction","ExponentialMovingAverage","ExponentialPowerDistribution","ExponentPosition","ExponentStep","Export","ExportAutoReplacements","ExportByteArray","ExportForm","ExportPacket","ExportString","Expression","ExpressionCell","ExpressionGraph","ExpressionPacket","ExpressionUUID","ExpToTrig","ExtendedEntityClass","ExtendedGCD","Extension","ExtentElementFunction","ExtentMarkers","ExtentSize","ExternalBundle","ExternalCall","ExternalDataCharacterEncoding","ExternalEvaluate","ExternalFunction","ExternalFunctionName","ExternalIdentifier","ExternalObject","ExternalOptions","ExternalSessionObject","ExternalSessions","ExternalStorageBase","ExternalStorageDownload","ExternalStorageGet","ExternalStorageObject","ExternalStoragePut","ExternalStorageUpload","ExternalTypeSignature","ExternalValue","Extract","ExtractArchive","ExtractLayer","ExtractPacletArchive","ExtremeValueDistribution","FaceAlign","FaceForm","FaceGrids","FaceGridsStyle","FacialFeatures","Factor","FactorComplete","Factorial","Factorial2","FactorialMoment","FactorialMomentGeneratingFunction","FactorialPower","FactorInteger","FactorList","FactorSquareFree","FactorSquareFreeList","FactorTerms","FactorTermsList","Fail","Failure","FailureAction","FailureDistribution","FailureQ","False","FareySequence","FARIMAProcess","FeatureDistance","FeatureExtract","FeatureExtraction","FeatureExtractor","FeatureExtractorFunction","FeatureNames","FeatureNearest","FeatureSpacePlot","FeatureSpacePlot3D","FeatureTypes","FEDisableConsolePrintPacket","FeedbackLinearize","FeedbackSector","FeedbackSectorStyle","FeedbackType","FEEnableConsolePrintPacket","FetalGrowthData","Fibonacci","Fibonorial","FieldCompletionFunction","FieldHint","FieldHintStyle","FieldMasked","FieldSize","File","FileBaseName","FileByteCount","FileConvert","FileDate","FileExistsQ","FileExtension","FileFormat","FileHandler","FileHash","FileInformation","FileName","FileNameDepth","FileNameDialogSettings","FileNameDrop","FileNameForms","FileNameJoin","FileNames","FileNameSetter","FileNameSplit","FileNameTake","FilePrint","FileSize","FileSystemMap","FileSystemScan","FileTemplate","FileTemplateApply","FileType","FilledCurve","FilledCurveBox","FilledCurveBoxOptions","Filling","FillingStyle","FillingTransform","FilteredEntityClass","FilterRules","FinancialBond","FinancialData","FinancialDerivative","FinancialIndicator","Find","FindAnomalies","FindArgMax","FindArgMin","FindChannels","FindClique","FindClusters","FindCookies","FindCurvePath","FindCycle","FindDevices","FindDistribution","FindDistributionParameters","FindDivisions","FindEdgeCover","FindEdgeCut","FindEdgeIndependentPaths","FindEquationalProof","FindEulerianCycle","FindExternalEvaluators","FindFaces","FindFile","FindFit","FindFormula","FindFundamentalCycles","FindGeneratingFunction","FindGeoLocation","FindGeometricConjectures","FindGeometricTransform","FindGraphCommunities","FindGraphIsomorphism","FindGraphPartition","FindHamiltonianCycle","FindHamiltonianPath","FindHiddenMarkovStates","FindImageText","FindIndependentEdgeSet","FindIndependentVertexSet","FindInstance","FindIntegerNullVector","FindKClan","FindKClique","FindKClub","FindKPlex","FindLibrary","FindLinearRecurrence","FindList","FindMatchingColor","FindMaximum","FindMaximumCut","FindMaximumFlow","FindMaxValue","FindMeshDefects","FindMinimum","FindMinimumCostFlow","FindMinimumCut","FindMinValue","FindMoleculeSubstructure","FindPath","FindPeaks","FindPermutation","FindPostmanTour","FindProcessParameters","FindRepeat","FindRoot","FindSequenceFunction","FindSettings","FindShortestPath","FindShortestTour","FindSpanningTree","FindSystemModelEquilibrium","FindTextualAnswer","FindThreshold","FindTransientRepeat","FindVertexCover","FindVertexCut","FindVertexIndependentPaths","Fine","FinishDynamic","FiniteAbelianGroupCount","FiniteGroupCount","FiniteGroupData","First","FirstCase","FirstPassageTimeDistribution","FirstPosition","FischerGroupFi22","FischerGroupFi23","FischerGroupFi24Prime","FisherHypergeometricDistribution","FisherRatioTest","FisherZDistribution","Fit","FitAll","FitRegularization","FittedModel","FixedOrder","FixedPoint","FixedPointList","FlashSelection","Flat","Flatten","FlattenAt","FlattenLayer","FlatTopWindow","FlipView","Floor","FlowPolynomial","FlushPrintOutputPacket","Fold","FoldList","FoldPair","FoldPairList","FollowRedirects","Font","FontColor","FontFamily","FontForm","FontName","FontOpacity","FontPostScriptName","FontProperties","FontReencoding","FontSize","FontSlant","FontSubstitutions","FontTracking","FontVariations","FontWeight","For","ForAll","ForceVersionInstall","Format","FormatRules","FormatType","FormatTypeAutoConvert","FormatValues","FormBox","FormBoxOptions","FormControl","FormFunction","FormLayoutFunction","FormObject","FormPage","FormTheme","FormulaData","FormulaLookup","FortranForm","Forward","ForwardBackward","Fourier","FourierCoefficient","FourierCosCoefficient","FourierCosSeries","FourierCosTransform","FourierDCT","FourierDCTFilter","FourierDCTMatrix","FourierDST","FourierDSTMatrix","FourierMatrix","FourierParameters","FourierSequenceTransform","FourierSeries","FourierSinCoefficient","FourierSinSeries","FourierSinTransform","FourierTransform","FourierTrigSeries","FractionalBrownianMotionProcess","FractionalGaussianNoiseProcess","FractionalPart","FractionBox","FractionBoxOptions","FractionLine","Frame","FrameBox","FrameBoxOptions","Framed","FrameInset","FrameLabel","Frameless","FrameMargins","FrameRate","FrameStyle","FrameTicks","FrameTicksStyle","FRatioDistribution","FrechetDistribution","FreeQ","FrenetSerretSystem","FrequencySamplingFilterKernel","FresnelC","FresnelF","FresnelG","FresnelS","Friday","FrobeniusNumber","FrobeniusSolve","FromAbsoluteTime","FromCharacterCode","FromCoefficientRules","FromContinuedFraction","FromDate","FromDigits","FromDMS","FromEntity","FromJulianDate","FromLetterNumber","FromPolarCoordinates","FromRomanNumeral","FromSphericalCoordinates","FromUnixTime","Front","FrontEndDynamicExpression","FrontEndEventActions","FrontEndExecute","FrontEndObject","FrontEndResource","FrontEndResourceString","FrontEndStackSize","FrontEndToken","FrontEndTokenExecute","FrontEndValueCache","FrontEndVersion","FrontFaceColor","FrontFaceOpacity","Full","FullAxes","FullDefinition","FullForm","FullGraphics","FullInformationOutputRegulator","FullOptions","FullRegion","FullSimplify","Function","FunctionCompile","FunctionCompileExport","FunctionCompileExportByteArray","FunctionCompileExportLibrary","FunctionCompileExportString","FunctionDomain","FunctionExpand","FunctionInterpolation","FunctionPeriod","FunctionRange","FunctionSpace","FussellVeselyImportance","GaborFilter","GaborMatrix","GaborWavelet","GainMargins","GainPhaseMargins","GalaxyData","GalleryView","Gamma","GammaDistribution","GammaRegularized","GapPenalty","GARCHProcess","GatedRecurrentLayer","Gather","GatherBy","GaugeFaceElementFunction","GaugeFaceStyle","GaugeFrameElementFunction","GaugeFrameSize","GaugeFrameStyle","GaugeLabels","GaugeMarkers","GaugeStyle","GaussianFilter","GaussianIntegers","GaussianMatrix","GaussianOrthogonalMatrixDistribution","GaussianSymplecticMatrixDistribution","GaussianUnitaryMatrixDistribution","GaussianWindow","GCD","GegenbauerC","General","GeneralizedLinearModelFit","GenerateAsymmetricKeyPair","GenerateConditions","GeneratedCell","GeneratedDocumentBinding","GenerateDerivedKey","GenerateDigitalSignature","GenerateDocument","GeneratedParameters","GeneratedQuantityMagnitudes","GenerateFileSignature","GenerateHTTPResponse","GenerateSecuredAuthenticationKey","GenerateSymmetricKey","GeneratingFunction","GeneratorDescription","GeneratorHistoryLength","GeneratorOutputType","Generic","GenericCylindricalDecomposition","GenomeData","GenomeLookup","GeoAntipode","GeoArea","GeoArraySize","GeoBackground","GeoBoundingBox","GeoBounds","GeoBoundsRegion","GeoBubbleChart","GeoCenter","GeoCircle","GeoContourPlot","GeoDensityPlot","GeodesicClosing","GeodesicDilation","GeodesicErosion","GeodesicOpening","GeoDestination","GeodesyData","GeoDirection","GeoDisk","GeoDisplacement","GeoDistance","GeoDistanceList","GeoElevationData","GeoEntities","GeoGraphics","GeogravityModelData","GeoGridDirectionDifference","GeoGridLines","GeoGridLinesStyle","GeoGridPosition","GeoGridRange","GeoGridRangePadding","GeoGridUnitArea","GeoGridUnitDistance","GeoGridVector","GeoGroup","GeoHemisphere","GeoHemisphereBoundary","GeoHistogram","GeoIdentify","GeoImage","GeoLabels","GeoLength","GeoListPlot","GeoLocation","GeologicalPeriodData","GeomagneticModelData","GeoMarker","GeometricAssertion","GeometricBrownianMotionProcess","GeometricDistribution","GeometricMean","GeometricMeanFilter","GeometricOptimization","GeometricScene","GeometricTransformation","GeometricTransformation3DBox","GeometricTransformation3DBoxOptions","GeometricTransformationBox","GeometricTransformationBoxOptions","GeoModel","GeoNearest","GeoPath","GeoPosition","GeoPositionENU","GeoPositionXYZ","GeoProjection","GeoProjectionData","GeoRange","GeoRangePadding","GeoRegionValuePlot","GeoResolution","GeoScaleBar","GeoServer","GeoSmoothHistogram","GeoStreamPlot","GeoStyling","GeoStylingImageFunction","GeoVariant","GeoVector","GeoVectorENU","GeoVectorPlot","GeoVectorXYZ","GeoVisibleRegion","GeoVisibleRegionBoundary","GeoWithinQ","GeoZoomLevel","GestureHandler","GestureHandlerTag","Get","GetBoundingBoxSizePacket","GetContext","GetEnvironment","GetFileName","GetFrontEndOptionsDataPacket","GetLinebreakInformationPacket","GetMenusPacket","GetPageBreakInformationPacket","Glaisher","GlobalClusteringCoefficient","GlobalPreferences","GlobalSession","Glow","GoldenAngle","GoldenRatio","GompertzMakehamDistribution","GoochShading","GoodmanKruskalGamma","GoodmanKruskalGammaTest","Goto","Grad","Gradient","GradientFilter","GradientOrientationFilter","GrammarApply","GrammarRules","GrammarToken","Graph","Graph3D","GraphAssortativity","GraphAutomorphismGroup","GraphCenter","GraphComplement","GraphData","GraphDensity","GraphDiameter","GraphDifference","GraphDisjointUnion","GraphDistance","GraphDistanceMatrix","GraphElementData","GraphEmbedding","GraphHighlight","GraphHighlightStyle","GraphHub","Graphics","Graphics3D","Graphics3DBox","Graphics3DBoxOptions","GraphicsArray","GraphicsBaseline","GraphicsBox","GraphicsBoxOptions","GraphicsColor","GraphicsColumn","GraphicsComplex","GraphicsComplex3DBox","GraphicsComplex3DBoxOptions","GraphicsComplexBox","GraphicsComplexBoxOptions","GraphicsContents","GraphicsData","GraphicsGrid","GraphicsGridBox","GraphicsGroup","GraphicsGroup3DBox","GraphicsGroup3DBoxOptions","GraphicsGroupBox","GraphicsGroupBoxOptions","GraphicsGrouping","GraphicsHighlightColor","GraphicsRow","GraphicsSpacing","GraphicsStyle","GraphIntersection","GraphLayout","GraphLinkEfficiency","GraphPeriphery","GraphPlot","GraphPlot3D","GraphPower","GraphPropertyDistribution","GraphQ","GraphRadius","GraphReciprocity","GraphRoot","GraphStyle","GraphUnion","Gray","GrayLevel","Greater","GreaterEqual","GreaterEqualLess","GreaterEqualThan","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterThan","GreaterTilde","Green","GreenFunction","Grid","GridBaseline","GridBox","GridBoxAlignment","GridBoxBackground","GridBoxDividers","GridBoxFrame","GridBoxItemSize","GridBoxItemStyle","GridBoxOptions","GridBoxSpacings","GridCreationSettings","GridDefaultElement","GridElementStyleOptions","GridFrame","GridFrameMargins","GridGraph","GridLines","GridLinesStyle","GroebnerBasis","GroupActionBase","GroupBy","GroupCentralizer","GroupElementFromWord","GroupElementPosition","GroupElementQ","GroupElements","GroupElementToWord","GroupGenerators","Groupings","GroupMultiplicationTable","GroupOrbits","GroupOrder","GroupPageBreakWithin","GroupSetwiseStabilizer","GroupStabilizer","GroupStabilizerChain","GroupTogetherGrouping","GroupTogetherNestedGrouping","GrowCutComponents","Gudermannian","GuidedFilter","GumbelDistribution","HaarWavelet","HadamardMatrix","HalfLine","HalfNormalDistribution","HalfPlane","HalfSpace","HalftoneShading","HamiltonianGraphQ","HammingDistance","HammingWindow","HandlerFunctions","HandlerFunctionsKeys","HankelH1","HankelH2","HankelMatrix","HankelTransform","HannPoissonWindow","HannWindow","HaradaNortonGroupHN","HararyGraph","HarmonicMean","HarmonicMeanFilter","HarmonicNumber","Hash","HatchFilling","HatchShading","Haversine","HazardFunction","Head","HeadCompose","HeaderAlignment","HeaderBackground","HeaderDisplayFunction","HeaderLines","HeaderSize","HeaderStyle","Heads","HeavisideLambda","HeavisidePi","HeavisideTheta","HeldGroupHe","HeldPart","HelpBrowserLookup","HelpBrowserNotebook","HelpBrowserSettings","Here","HermiteDecomposition","HermiteH","HermitianMatrixQ","HessenbergDecomposition","Hessian","HeunB","HeunBPrime","HeunC","HeunCPrime","HeunD","HeunDPrime","HeunG","HeunGPrime","HeunT","HeunTPrime","HexadecimalCharacter","Hexahedron","HexahedronBox","HexahedronBoxOptions","HiddenItems","HiddenMarkovProcess","HiddenSurface","Highlighted","HighlightGraph","HighlightImage","HighlightMesh","HighpassFilter","HigmanSimsGroupHS","HilbertCurve","HilbertFilter","HilbertMatrix","Histogram","Histogram3D","HistogramDistribution","HistogramList","HistogramTransform","HistogramTransformInterpolation","HistoricalPeriodData","HitMissTransform","HITSCentrality","HjorthDistribution","HodgeDual","HoeffdingD","HoeffdingDTest","Hold","HoldAll","HoldAllComplete","HoldComplete","HoldFirst","HoldForm","HoldPattern","HoldRest","HolidayCalendar","HomeDirectory","HomePage","Horizontal","HorizontalForm","HorizontalGauge","HorizontalScrollPosition","HornerForm","HostLookup","HotellingTSquareDistribution","HoytDistribution","HTMLSave","HTTPErrorResponse","HTTPRedirect","HTTPRequest","HTTPRequestData","HTTPResponse","Hue","HumanGrowthData","HumpDownHump","HumpEqual","HurwitzLerchPhi","HurwitzZeta","HyperbolicDistribution","HypercubeGraph","HyperexponentialDistribution","Hyperfactorial","Hypergeometric0F1","Hypergeometric0F1Regularized","Hypergeometric1F1","Hypergeometric1F1Regularized","Hypergeometric2F1","Hypergeometric2F1Regularized","HypergeometricDistribution","HypergeometricPFQ","HypergeometricPFQRegularized","HypergeometricU","Hyperlink","HyperlinkAction","HyperlinkCreationSettings","Hyperplane","Hyphenation","HyphenationOptions","HypoexponentialDistribution","HypothesisTestData","I","IconData","Iconize","IconizedObject","IconRules","Icosahedron","Identity","IdentityMatrix","If","IgnoreCase","IgnoreDiacritics","IgnorePunctuation","IgnoreSpellCheck","IgnoringInactive","Im","Image","Image3D","Image3DProjection","Image3DSlices","ImageAccumulate","ImageAdd","ImageAdjust","ImageAlign","ImageApply","ImageApplyIndexed","ImageAspectRatio","ImageAssemble","ImageAugmentationLayer","ImageBoundingBoxes","ImageCache","ImageCacheValid","ImageCapture","ImageCaptureFunction","ImageCases","ImageChannels","ImageClip","ImageCollage","ImageColorSpace","ImageCompose","ImageContainsQ","ImageContents","ImageConvolve","ImageCooccurrence","ImageCorners","ImageCorrelate","ImageCorrespondingPoints","ImageCrop","ImageData","ImageDeconvolve","ImageDemosaic","ImageDifference","ImageDimensions","ImageDisplacements","ImageDistance","ImageEffect","ImageExposureCombine","ImageFeatureTrack","ImageFileApply","ImageFileFilter","ImageFileScan","ImageFilter","ImageFocusCombine","ImageForestingComponents","ImageFormattingWidth","ImageForwardTransformation","ImageGraphics","ImageHistogram","ImageIdentify","ImageInstanceQ","ImageKeypoints","ImageLabels","ImageLegends","ImageLevels","ImageLines","ImageMargins","ImageMarker","ImageMarkers","ImageMeasurements","ImageMesh","ImageMultiply","ImageOffset","ImagePad","ImagePadding","ImagePartition","ImagePeriodogram","ImagePerspectiveTransformation","ImagePosition","ImagePreviewFunction","ImagePyramid","ImagePyramidApply","ImageQ","ImageRangeCache","ImageRecolor","ImageReflect","ImageRegion","ImageResize","ImageResolution","ImageRestyle","ImageRotate","ImageRotated","ImageSaliencyFilter","ImageScaled","ImageScan","ImageSize","ImageSizeAction","ImageSizeCache","ImageSizeMultipliers","ImageSizeRaw","ImageSubtract","ImageTake","ImageTransformation","ImageTrim","ImageType","ImageValue","ImageValuePositions","ImagingDevice","ImplicitRegion","Implies","Import","ImportAutoReplacements","ImportByteArray","ImportOptions","ImportString","ImprovementImportance","In","Inactivate","Inactive","IncidenceGraph","IncidenceList","IncidenceMatrix","IncludeAromaticBonds","IncludeConstantBasis","IncludeDefinitions","IncludeDirectories","IncludeFileExtension","IncludeGeneratorTasks","IncludeHydrogens","IncludeInflections","IncludeMetaInformation","IncludePods","IncludeQuantities","IncludeRelatedTables","IncludeSingularTerm","IncludeWindowTimes","Increment","IndefiniteMatrixQ","Indent","IndentingNewlineSpacings","IndentMaxFraction","IndependenceTest","IndependentEdgeSetQ","IndependentPhysicalQuantity","IndependentUnit","IndependentUnitDimension","IndependentVertexSetQ","Indeterminate","IndeterminateThreshold","IndexCreationOptions","Indexed","IndexEdgeTaggedGraph","IndexGraph","IndexTag","Inequality","InexactNumberQ","InexactNumbers","InfiniteFuture","InfiniteLine","InfinitePast","InfinitePlane","Infinity","Infix","InflationAdjust","InflationMethod","Information","InformationData","InformationDataGrid","Inherited","InheritScope","InhomogeneousPoissonProcess","InitialEvaluationHistory","Initialization","InitializationCell","InitializationCellEvaluation","InitializationCellWarning","InitializationObjects","InitializationValue","Initialize","InitialSeeding","InlineCounterAssignments","InlineCounterIncrements","InlineRules","Inner","InnerPolygon","InnerPolyhedron","Inpaint","Input","InputAliases","InputAssumptions","InputAutoReplacements","InputField","InputFieldBox","InputFieldBoxOptions","InputForm","InputGrouping","InputNamePacket","InputNotebook","InputPacket","InputSettings","InputStream","InputString","InputStringPacket","InputToBoxFormPacket","Insert","InsertionFunction","InsertionPointObject","InsertLinebreaks","InsertResults","Inset","Inset3DBox","Inset3DBoxOptions","InsetBox","InsetBoxOptions","Insphere","Install","InstallService","InstanceNormalizationLayer","InString","Integer","IntegerDigits","IntegerExponent","IntegerLength","IntegerName","IntegerPart","IntegerPartitions","IntegerQ","IntegerReverse","Integers","IntegerString","Integral","Integrate","Interactive","InteractiveTradingChart","Interlaced","Interleaving","InternallyBalancedDecomposition","InterpolatingFunction","InterpolatingPolynomial","Interpolation","InterpolationOrder","InterpolationPoints","InterpolationPrecision","Interpretation","InterpretationBox","InterpretationBoxOptions","InterpretationFunction","Interpreter","InterpretTemplate","InterquartileRange","Interrupt","InterruptSettings","IntersectedEntityClass","IntersectingQ","Intersection","Interval","IntervalIntersection","IntervalMarkers","IntervalMarkersStyle","IntervalMemberQ","IntervalSlider","IntervalUnion","Into","Inverse","InverseBetaRegularized","InverseCDF","InverseChiSquareDistribution","InverseContinuousWaveletTransform","InverseDistanceTransform","InverseEllipticNomeQ","InverseErf","InverseErfc","InverseFourier","InverseFourierCosTransform","InverseFourierSequenceTransform","InverseFourierSinTransform","InverseFourierTransform","InverseFunction","InverseFunctions","InverseGammaDistribution","InverseGammaRegularized","InverseGaussianDistribution","InverseGudermannian","InverseHankelTransform","InverseHaversine","InverseImagePyramid","InverseJacobiCD","InverseJacobiCN","InverseJacobiCS","InverseJacobiDC","InverseJacobiDN","InverseJacobiDS","InverseJacobiNC","InverseJacobiND","InverseJacobiNS","InverseJacobiSC","InverseJacobiSD","InverseJacobiSN","InverseLaplaceTransform","InverseMellinTransform","InversePermutation","InverseRadon","InverseRadonTransform","InverseSeries","InverseShortTimeFourier","InverseSpectrogram","InverseSurvivalFunction","InverseTransformedRegion","InverseWaveletTransform","InverseWeierstrassP","InverseWishartMatrixDistribution","InverseZTransform","Invisible","InvisibleApplication","InvisibleTimes","IPAddress","IrreduciblePolynomialQ","IslandData","IsolatingInterval","IsomorphicGraphQ","IsotopeData","Italic","Item","ItemAspectRatio","ItemBox","ItemBoxOptions","ItemDisplayFunction","ItemSize","ItemStyle","ItoProcess","JaccardDissimilarity","JacobiAmplitude","Jacobian","JacobiCD","JacobiCN","JacobiCS","JacobiDC","JacobiDN","JacobiDS","JacobiNC","JacobiND","JacobiNS","JacobiP","JacobiSC","JacobiSD","JacobiSN","JacobiSymbol","JacobiZeta","JankoGroupJ1","JankoGroupJ2","JankoGroupJ3","JankoGroupJ4","JarqueBeraALMTest","JohnsonDistribution","Join","JoinAcross","Joined","JoinedCurve","JoinedCurveBox","JoinedCurveBoxOptions","JoinForm","JordanDecomposition","JordanModelDecomposition","JulianDate","JuliaSetBoettcher","JuliaSetIterationCount","JuliaSetPlot","JuliaSetPoints","K","KagiChart","KaiserBesselWindow","KaiserWindow","KalmanEstimator","KalmanFilter","KarhunenLoeveDecomposition","KaryTree","KatzCentrality","KCoreComponents","KDistribution","KEdgeConnectedComponents","KEdgeConnectedGraphQ","KeepExistingVersion","KelvinBei","KelvinBer","KelvinKei","KelvinKer","KendallTau","KendallTauTest","KernelExecute","KernelFunction","KernelMixtureDistribution","KernelObject","Kernels","Ket","Key","KeyCollisionFunction","KeyComplement","KeyDrop","KeyDropFrom","KeyExistsQ","KeyFreeQ","KeyIntersection","KeyMap","KeyMemberQ","KeypointStrength","Keys","KeySelect","KeySort","KeySortBy","KeyTake","KeyUnion","KeyValueMap","KeyValuePattern","Khinchin","KillProcess","KirchhoffGraph","KirchhoffMatrix","KleinInvariantJ","KnapsackSolve","KnightTourGraph","KnotData","KnownUnitQ","KochCurve","KolmogorovSmirnovTest","KroneckerDelta","KroneckerModelDecomposition","KroneckerProduct","KroneckerSymbol","KuiperTest","KumaraswamyDistribution","Kurtosis","KuwaharaFilter","KVertexConnectedComponents","KVertexConnectedGraphQ","LABColor","Label","Labeled","LabeledSlider","LabelingFunction","LabelingSize","LabelStyle","LabelVisibility","LaguerreL","LakeData","LambdaComponents","LambertW","LaminaData","LanczosWindow","LandauDistribution","Language","LanguageCategory","LanguageData","LanguageIdentify","LanguageOptions","LaplaceDistribution","LaplaceTransform","Laplacian","LaplacianFilter","LaplacianGaussianFilter","Large","Larger","Last","Latitude","LatitudeLongitude","LatticeData","LatticeReduce","Launch","LaunchKernels","LayeredGraphPlot","LayerSizeFunction","LayoutInformation","LCHColor","LCM","LeaderSize","LeafCount","LeapYearQ","LearnDistribution","LearnedDistribution","LearningRate","LearningRateMultipliers","LeastSquares","LeastSquaresFilterKernel","Left","LeftArrow","LeftArrowBar","LeftArrowRightArrow","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftRightArrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","LegendAppearance","Legended","LegendFunction","LegendLabel","LegendLayout","LegendMargins","LegendMarkers","LegendMarkerSize","LegendreP","LegendreQ","LegendreType","Length","LengthWhile","LerchPhi","Less","LessEqual","LessEqualGreater","LessEqualThan","LessFullEqual","LessGreater","LessLess","LessSlantEqual","LessThan","LessTilde","LetterCharacter","LetterCounts","LetterNumber","LetterQ","Level","LeveneTest","LeviCivitaTensor","LevyDistribution","Lexicographic","LibraryDataType","LibraryFunction","LibraryFunctionError","LibraryFunctionInformation","LibraryFunctionLoad","LibraryFunctionUnload","LibraryLoad","LibraryUnload","LicenseID","LiftingFilterData","LiftingWaveletTransform","LightBlue","LightBrown","LightCyan","Lighter","LightGray","LightGreen","Lighting","LightingAngle","LightMagenta","LightOrange","LightPink","LightPurple","LightRed","LightSources","LightYellow","Likelihood","Limit","LimitsPositioning","LimitsPositioningTokens","LindleyDistribution","Line","Line3DBox","Line3DBoxOptions","LinearFilter","LinearFractionalOptimization","LinearFractionalTransform","LinearGradientImage","LinearizingTransformationData","LinearLayer","LinearModelFit","LinearOffsetFunction","LinearOptimization","LinearProgramming","LinearRecurrence","LinearSolve","LinearSolveFunction","LineBox","LineBoxOptions","LineBreak","LinebreakAdjustments","LineBreakChart","LinebreakSemicolonWeighting","LineBreakWithin","LineColor","LineGraph","LineIndent","LineIndentMaxFraction","LineIntegralConvolutionPlot","LineIntegralConvolutionScale","LineLegend","LineOpacity","LineSpacing","LineWrapParts","LinkActivate","LinkClose","LinkConnect","LinkConnectedQ","LinkCreate","LinkError","LinkFlush","LinkFunction","LinkHost","LinkInterrupt","LinkLaunch","LinkMode","LinkObject","LinkOpen","LinkOptions","LinkPatterns","LinkProtocol","LinkRankCentrality","LinkRead","LinkReadHeld","LinkReadyQ","Links","LinkService","LinkWrite","LinkWriteHeld","LiouvilleLambda","List","Listable","ListAnimate","ListContourPlot","ListContourPlot3D","ListConvolve","ListCorrelate","ListCurvePathPlot","ListDeconvolve","ListDensityPlot","ListDensityPlot3D","Listen","ListFormat","ListFourierSequenceTransform","ListInterpolation","ListLineIntegralConvolutionPlot","ListLinePlot","ListLogLinearPlot","ListLogLogPlot","ListLogPlot","ListPicker","ListPickerBox","ListPickerBoxBackground","ListPickerBoxOptions","ListPlay","ListPlot","ListPlot3D","ListPointPlot3D","ListPolarPlot","ListQ","ListSliceContourPlot3D","ListSliceDensityPlot3D","ListSliceVectorPlot3D","ListStepPlot","ListStreamDensityPlot","ListStreamPlot","ListSurfacePlot3D","ListVectorDensityPlot","ListVectorPlot","ListVectorPlot3D","ListZTransform","Literal","LiteralSearch","LocalAdaptiveBinarize","LocalCache","LocalClusteringCoefficient","LocalizeDefinitions","LocalizeVariables","LocalObject","LocalObjects","LocalResponseNormalizationLayer","LocalSubmit","LocalSymbol","LocalTime","LocalTimeZone","LocationEquivalenceTest","LocationTest","Locator","LocatorAutoCreate","LocatorBox","LocatorBoxOptions","LocatorCentering","LocatorPane","LocatorPaneBox","LocatorPaneBoxOptions","LocatorRegion","Locked","Log","Log10","Log2","LogBarnesG","LogGamma","LogGammaDistribution","LogicalExpand","LogIntegral","LogisticDistribution","LogisticSigmoid","LogitModelFit","LogLikelihood","LogLinearPlot","LogLogisticDistribution","LogLogPlot","LogMultinormalDistribution","LogNormalDistribution","LogPlot","LogRankTest","LogSeriesDistribution","LongEqual","Longest","LongestCommonSequence","LongestCommonSequencePositions","LongestCommonSubsequence","LongestCommonSubsequencePositions","LongestMatch","LongestOrderedSequence","LongForm","Longitude","LongLeftArrow","LongLeftRightArrow","LongRightArrow","LongShortTermMemoryLayer","Lookup","Loopback","LoopFreeGraphQ","Looping","LossFunction","LowerCaseQ","LowerLeftArrow","LowerRightArrow","LowerTriangularize","LowerTriangularMatrixQ","LowpassFilter","LQEstimatorGains","LQGRegulator","LQOutputRegulatorGains","LQRegulatorGains","LUBackSubstitution","LucasL","LuccioSamiComponents","LUDecomposition","LunarEclipse","LUVColor","LyapunovSolve","LyonsGroupLy","MachineID","MachineName","MachineNumberQ","MachinePrecision","MacintoshSystemPageSetup","Magenta","Magnification","Magnify","MailAddressValidation","MailExecute","MailFolder","MailItem","MailReceiverFunction","MailResponseFunction","MailSearch","MailServerConnect","MailServerConnection","MailSettings","MainSolve","MaintainDynamicCaches","Majority","MakeBoxes","MakeExpression","MakeRules","ManagedLibraryExpressionID","ManagedLibraryExpressionQ","MandelbrotSetBoettcher","MandelbrotSetDistance","MandelbrotSetIterationCount","MandelbrotSetMemberQ","MandelbrotSetPlot","MangoldtLambda","ManhattanDistance","Manipulate","Manipulator","MannedSpaceMissionData","MannWhitneyTest","MantissaExponent","Manual","Map","MapAll","MapAt","MapIndexed","MAProcess","MapThread","MarchenkoPasturDistribution","MarcumQ","MardiaCombinedTest","MardiaKurtosisTest","MardiaSkewnessTest","MarginalDistribution","MarkovProcessProperties","Masking","MatchingDissimilarity","MatchLocalNameQ","MatchLocalNames","MatchQ","Material","MathematicalFunctionData","MathematicaNotation","MathieuC","MathieuCharacteristicA","MathieuCharacteristicB","MathieuCharacteristicExponent","MathieuCPrime","MathieuGroupM11","MathieuGroupM12","MathieuGroupM22","MathieuGroupM23","MathieuGroupM24","MathieuS","MathieuSPrime","MathMLForm","MathMLText","Matrices","MatrixExp","MatrixForm","MatrixFunction","MatrixLog","MatrixNormalDistribution","MatrixPlot","MatrixPower","MatrixPropertyDistribution","MatrixQ","MatrixRank","MatrixTDistribution","Max","MaxBend","MaxCellMeasure","MaxColorDistance","MaxDate","MaxDetect","MaxDuration","MaxExtraBandwidths","MaxExtraConditions","MaxFeatureDisplacement","MaxFeatures","MaxFilter","MaximalBy","Maximize","MaxItems","MaxIterations","MaxLimit","MaxMemoryUsed","MaxMixtureKernels","MaxOverlapFraction","MaxPlotPoints","MaxPoints","MaxRecursion","MaxStableDistribution","MaxStepFraction","MaxSteps","MaxStepSize","MaxTrainingRounds","MaxValue","MaxwellDistribution","MaxWordGap","McLaughlinGroupMcL","Mean","MeanAbsoluteLossLayer","MeanAround","MeanClusteringCoefficient","MeanDegreeConnectivity","MeanDeviation","MeanFilter","MeanGraphDistance","MeanNeighborDegree","MeanShift","MeanShiftFilter","MeanSquaredLossLayer","Median","MedianDeviation","MedianFilter","MedicalTestData","Medium","MeijerG","MeijerGReduce","MeixnerDistribution","MellinConvolve","MellinTransform","MemberQ","MemoryAvailable","MemoryConstrained","MemoryConstraint","MemoryInUse","MengerMesh","Menu","MenuAppearance","MenuCommandKey","MenuEvaluator","MenuItem","MenuList","MenuPacket","MenuSortingValue","MenuStyle","MenuView","Merge","MergeDifferences","MergingFunction","MersennePrimeExponent","MersennePrimeExponentQ","Mesh","MeshCellCentroid","MeshCellCount","MeshCellHighlight","MeshCellIndex","MeshCellLabel","MeshCellMarker","MeshCellMeasure","MeshCellQuality","MeshCells","MeshCellShapeFunction","MeshCellStyle","MeshConnectivityGraph","MeshCoordinates","MeshFunctions","MeshPrimitives","MeshQualityGoal","MeshRange","MeshRefinementFunction","MeshRegion","MeshRegionQ","MeshShading","MeshStyle","Message","MessageDialog","MessageList","MessageName","MessageObject","MessageOptions","MessagePacket","Messages","MessagesNotebook","MetaCharacters","MetaInformation","MeteorShowerData","Method","MethodOptions","MexicanHatWavelet","MeyerWavelet","Midpoint","Min","MinColorDistance","MinDate","MinDetect","MineralData","MinFilter","MinimalBy","MinimalPolynomial","MinimalStateSpaceModel","Minimize","MinimumTimeIncrement","MinIntervalSize","MinkowskiQuestionMark","MinLimit","MinMax","MinorPlanetData","Minors","MinRecursion","MinSize","MinStableDistribution","Minus","MinusPlus","MinValue","Missing","MissingBehavior","MissingDataMethod","MissingDataRules","MissingQ","MissingString","MissingStyle","MissingValuePattern","MittagLefflerE","MixedFractionParts","MixedGraphQ","MixedMagnitude","MixedRadix","MixedRadixQuantity","MixedUnit","MixtureDistribution","Mod","Modal","Mode","Modular","ModularInverse","ModularLambda","Module","Modulus","MoebiusMu","Molecule","MoleculeContainsQ","MoleculeEquivalentQ","MoleculeGraph","MoleculeModify","MoleculePattern","MoleculePlot","MoleculePlot3D","MoleculeProperty","MoleculeQ","MoleculeRecognize","MoleculeValue","Moment","Momentary","MomentConvert","MomentEvaluate","MomentGeneratingFunction","MomentOfInertia","Monday","Monitor","MonomialList","MonomialOrder","MonsterGroupM","MoonPhase","MoonPosition","MorletWavelet","MorphologicalBinarize","MorphologicalBranchPoints","MorphologicalComponents","MorphologicalEulerNumber","MorphologicalGraph","MorphologicalPerimeter","MorphologicalTransform","MortalityData","Most","MountainData","MouseAnnotation","MouseAppearance","MouseAppearanceTag","MouseButtons","Mouseover","MousePointerNote","MousePosition","MovieData","MovingAverage","MovingMap","MovingMedian","MoyalDistribution","Multicolumn","MultiedgeStyle","MultigraphQ","MultilaunchWarning","MultiLetterItalics","MultiLetterStyle","MultilineFunction","Multinomial","MultinomialDistribution","MultinormalDistribution","MultiplicativeOrder","Multiplicity","MultiplySides","Multiselection","MultivariateHypergeometricDistribution","MultivariatePoissonDistribution","MultivariateTDistribution","N","NakagamiDistribution","NameQ","Names","NamespaceBox","NamespaceBoxOptions","Nand","NArgMax","NArgMin","NBernoulliB","NBodySimulation","NBodySimulationData","NCache","NDEigensystem","NDEigenvalues","NDSolve","NDSolveValue","Nearest","NearestFunction","NearestMeshCells","NearestNeighborGraph","NearestTo","NebulaData","NeedCurrentFrontEndPackagePacket","NeedCurrentFrontEndSymbolsPacket","NeedlemanWunschSimilarity","Needs","Negative","NegativeBinomialDistribution","NegativeDefiniteMatrixQ","NegativeIntegers","NegativeMultinomialDistribution","NegativeRationals","NegativeReals","NegativeSemidefiniteMatrixQ","NeighborhoodData","NeighborhoodGraph","Nest","NestedGreaterGreater","NestedLessLess","NestedScriptRules","NestGraph","NestList","NestWhile","NestWhileList","NetAppend","NetBidirectionalOperator","NetChain","NetDecoder","NetDelete","NetDrop","NetEncoder","NetEvaluationMode","NetExtract","NetFlatten","NetFoldOperator","NetGANOperator","NetGraph","NetInformation","NetInitialize","NetInsert","NetInsertSharedArrays","NetJoin","NetMapOperator","NetMapThreadOperator","NetMeasurements","NetModel","NetNestOperator","NetPairEmbeddingOperator","NetPort","NetPortGradient","NetPrepend","NetRename","NetReplace","NetReplacePart","NetSharedArray","NetStateObject","NetTake","NetTrain","NetTrainResultsObject","NetworkPacketCapture","NetworkPacketRecording","NetworkPacketRecordingDuring","NetworkPacketTrace","NeumannValue","NevilleThetaC","NevilleThetaD","NevilleThetaN","NevilleThetaS","NewPrimitiveStyle","NExpectation","Next","NextCell","NextDate","NextPrime","NextScheduledTaskTime","NHoldAll","NHoldFirst","NHoldRest","NicholsGridLines","NicholsPlot","NightHemisphere","NIntegrate","NMaximize","NMaxValue","NMinimize","NMinValue","NominalVariables","NonAssociative","NoncentralBetaDistribution","NoncentralChiSquareDistribution","NoncentralFRatioDistribution","NoncentralStudentTDistribution","NonCommutativeMultiply","NonConstants","NondimensionalizationTransform","None","NoneTrue","NonlinearModelFit","NonlinearStateSpaceModel","NonlocalMeansFilter","NonNegative","NonNegativeIntegers","NonNegativeRationals","NonNegativeReals","NonPositive","NonPositiveIntegers","NonPositiveRationals","NonPositiveReals","Nor","NorlundB","Norm","Normal","NormalDistribution","NormalGrouping","NormalizationLayer","Normalize","Normalized","NormalizedSquaredEuclideanDistance","NormalMatrixQ","NormalsFunction","NormFunction","Not","NotCongruent","NotCupCap","NotDoubleVerticalBar","Notebook","NotebookApply","NotebookAutoSave","NotebookClose","NotebookConvertSettings","NotebookCreate","NotebookCreateReturnObject","NotebookDefault","NotebookDelete","NotebookDirectory","NotebookDynamicExpression","NotebookEvaluate","NotebookEventActions","NotebookFileName","NotebookFind","NotebookFindReturnObject","NotebookGet","NotebookGetLayoutInformationPacket","NotebookGetMisspellingsPacket","NotebookImport","NotebookInformation","NotebookInterfaceObject","NotebookLocate","NotebookObject","NotebookOpen","NotebookOpenReturnObject","NotebookPath","NotebookPrint","NotebookPut","NotebookPutReturnObject","NotebookRead","NotebookResetGeneratedCells","Notebooks","NotebookSave","NotebookSaveAs","NotebookSelection","NotebookSetupLayoutInformationPacket","NotebooksMenu","NotebookTemplate","NotebookWrite","NotElement","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","Nothing","NotHumpDownHump","NotHumpEqual","NotificationFunction","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessFullEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotPrecedesTilde","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","Now","NoWhitespace","NProbability","NProduct","NProductFactors","NRoots","NSolve","NSum","NSumTerms","NuclearExplosionData","NuclearReactorData","Null","NullRecords","NullSpace","NullWords","Number","NumberCompose","NumberDecompose","NumberExpand","NumberFieldClassNumber","NumberFieldDiscriminant","NumberFieldFundamentalUnits","NumberFieldIntegralBasis","NumberFieldNormRepresentatives","NumberFieldRegulator","NumberFieldRootsOfUnity","NumberFieldSignature","NumberForm","NumberFormat","NumberLinePlot","NumberMarks","NumberMultiplier","NumberPadding","NumberPoint","NumberQ","NumberSeparator","NumberSigns","NumberString","Numerator","NumeratorDenominator","NumericalOrder","NumericalSort","NumericArray","NumericArrayQ","NumericArrayType","NumericFunction","NumericQ","NuttallWindow","NValues","NyquistGridLines","NyquistPlot","O","ObservabilityGramian","ObservabilityMatrix","ObservableDecomposition","ObservableModelQ","OceanData","Octahedron","OddQ","Off","Offset","OLEData","On","ONanGroupON","Once","OneIdentity","Opacity","OpacityFunction","OpacityFunctionScaling","Open","OpenAppend","Opener","OpenerBox","OpenerBoxOptions","OpenerView","OpenFunctionInspectorPacket","Opening","OpenRead","OpenSpecialOptions","OpenTemporary","OpenWrite","Operate","OperatingSystem","OperatorApplied","OptimumFlowData","Optional","OptionalElement","OptionInspectorSettings","OptionQ","Options","OptionsPacket","OptionsPattern","OptionValue","OptionValueBox","OptionValueBoxOptions","Or","Orange","Order","OrderDistribution","OrderedQ","Ordering","OrderingBy","OrderingLayer","Orderless","OrderlessPatternSequence","OrnsteinUhlenbeckProcess","Orthogonalize","OrthogonalMatrixQ","Out","Outer","OuterPolygon","OuterPolyhedron","OutputAutoOverwrite","OutputControllabilityMatrix","OutputControllableModelQ","OutputForm","OutputFormData","OutputGrouping","OutputMathEditExpression","OutputNamePacket","OutputResponse","OutputSizeLimit","OutputStream","Over","OverBar","OverDot","Overflow","OverHat","Overlaps","Overlay","OverlayBox","OverlayBoxOptions","Overscript","OverscriptBox","OverscriptBoxOptions","OverTilde","OverVector","OverwriteTarget","OwenT","OwnValues","Package","PackingMethod","PackPaclet","PacletDataRebuild","PacletDirectoryAdd","PacletDirectoryLoad","PacletDirectoryRemove","PacletDirectoryUnload","PacletDisable","PacletEnable","PacletFind","PacletFindRemote","PacletInformation","PacletInstall","PacletInstallSubmit","PacletNewerQ","PacletObject","PacletObjectQ","PacletSite","PacletSiteObject","PacletSiteRegister","PacletSites","PacletSiteUnregister","PacletSiteUpdate","PacletUninstall","PacletUpdate","PaddedForm","Padding","PaddingLayer","PaddingSize","PadeApproximant","PadLeft","PadRight","PageBreakAbove","PageBreakBelow","PageBreakWithin","PageFooterLines","PageFooters","PageHeaderLines","PageHeaders","PageHeight","PageRankCentrality","PageTheme","PageWidth","Pagination","PairedBarChart","PairedHistogram","PairedSmoothHistogram","PairedTTest","PairedZTest","PaletteNotebook","PalettePath","PalindromeQ","Pane","PaneBox","PaneBoxOptions","Panel","PanelBox","PanelBoxOptions","Paneled","PaneSelector","PaneSelectorBox","PaneSelectorBoxOptions","PaperWidth","ParabolicCylinderD","ParagraphIndent","ParagraphSpacing","ParallelArray","ParallelCombine","ParallelDo","Parallelepiped","ParallelEvaluate","Parallelization","Parallelize","ParallelMap","ParallelNeeds","Parallelogram","ParallelProduct","ParallelSubmit","ParallelSum","ParallelTable","ParallelTry","Parameter","ParameterEstimator","ParameterMixtureDistribution","ParameterVariables","ParametricFunction","ParametricNDSolve","ParametricNDSolveValue","ParametricPlot","ParametricPlot3D","ParametricRampLayer","ParametricRegion","ParentBox","ParentCell","ParentConnect","ParentDirectory","ParentForm","Parenthesize","ParentList","ParentNotebook","ParetoDistribution","ParetoPickandsDistribution","ParkData","Part","PartBehavior","PartialCorrelationFunction","PartialD","ParticleAcceleratorData","ParticleData","Partition","PartitionGranularity","PartitionsP","PartitionsQ","PartLayer","PartOfSpeech","PartProtection","ParzenWindow","PascalDistribution","PassEventsDown","PassEventsUp","Paste","PasteAutoQuoteCharacters","PasteBoxFormInlineCells","PasteButton","Path","PathGraph","PathGraphQ","Pattern","PatternFilling","PatternSequence","PatternTest","PauliMatrix","PaulWavelet","Pause","PausedTime","PDF","PeakDetect","PeanoCurve","PearsonChiSquareTest","PearsonCorrelationTest","PearsonDistribution","PercentForm","PerfectNumber","PerfectNumberQ","PerformanceGoal","Perimeter","PeriodicBoundaryCondition","PeriodicInterpolation","Periodogram","PeriodogramArray","Permanent","Permissions","PermissionsGroup","PermissionsGroupMemberQ","PermissionsGroups","PermissionsKey","PermissionsKeys","PermutationCycles","PermutationCyclesQ","PermutationGroup","PermutationLength","PermutationList","PermutationListQ","PermutationMax","PermutationMin","PermutationOrder","PermutationPower","PermutationProduct","PermutationReplace","Permutations","PermutationSupport","Permute","PeronaMalikFilter","Perpendicular","PerpendicularBisector","PersistenceLocation","PersistenceTime","PersistentObject","PersistentObjects","PersistentValue","PersonData","PERTDistribution","PetersenGraph","PhaseMargins","PhaseRange","PhysicalSystemData","Pi","Pick","PIDData","PIDDerivativeFilter","PIDFeedforward","PIDTune","Piecewise","PiecewiseExpand","PieChart","PieChart3D","PillaiTrace","PillaiTraceTest","PingTime","Pink","PitchRecognize","Pivoting","PixelConstrained","PixelValue","PixelValuePositions","Placed","Placeholder","PlaceholderReplace","Plain","PlanarAngle","PlanarGraph","PlanarGraphQ","PlanckRadiationLaw","PlaneCurveData","PlanetaryMoonData","PlanetData","PlantData","Play","PlayRange","Plot","Plot3D","Plot3Matrix","PlotDivision","PlotJoined","PlotLabel","PlotLabels","PlotLayout","PlotLegends","PlotMarkers","PlotPoints","PlotRange","PlotRangeClipping","PlotRangeClipPlanesStyle","PlotRangePadding","PlotRegion","PlotStyle","PlotTheme","Pluralize","Plus","PlusMinus","Pochhammer","PodStates","PodWidth","Point","Point3DBox","Point3DBoxOptions","PointBox","PointBoxOptions","PointFigureChart","PointLegend","PointSize","PoissonConsulDistribution","PoissonDistribution","PoissonProcess","PoissonWindow","PolarAxes","PolarAxesOrigin","PolarGridLines","PolarPlot","PolarTicks","PoleZeroMarkers","PolyaAeppliDistribution","PolyGamma","Polygon","Polygon3DBox","Polygon3DBoxOptions","PolygonalNumber","PolygonAngle","PolygonBox","PolygonBoxOptions","PolygonCoordinates","PolygonDecomposition","PolygonHoleScale","PolygonIntersections","PolygonScale","Polyhedron","PolyhedronAngle","PolyhedronCoordinates","PolyhedronData","PolyhedronDecomposition","PolyhedronGenus","PolyLog","PolynomialExtendedGCD","PolynomialForm","PolynomialGCD","PolynomialLCM","PolynomialMod","PolynomialQ","PolynomialQuotient","PolynomialQuotientRemainder","PolynomialReduce","PolynomialRemainder","Polynomials","PoolingLayer","PopupMenu","PopupMenuBox","PopupMenuBoxOptions","PopupView","PopupWindow","Position","PositionIndex","Positive","PositiveDefiniteMatrixQ","PositiveIntegers","PositiveRationals","PositiveReals","PositiveSemidefiniteMatrixQ","PossibleZeroQ","Postfix","PostScript","Power","PowerDistribution","PowerExpand","PowerMod","PowerModList","PowerRange","PowerSpectralDensity","PowersRepresentations","PowerSymmetricPolynomial","Precedence","PrecedenceForm","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","Precision","PrecisionGoal","PreDecrement","Predict","PredictionRoot","PredictorFunction","PredictorInformation","PredictorMeasurements","PredictorMeasurementsObject","PreemptProtect","PreferencesPath","Prefix","PreIncrement","Prepend","PrependLayer","PrependTo","PreprocessingRules","PreserveColor","PreserveImageOptions","Previous","PreviousCell","PreviousDate","PriceGraphDistribution","PrimaryPlaceholder","Prime","PrimeNu","PrimeOmega","PrimePi","PrimePowerQ","PrimeQ","Primes","PrimeZetaP","PrimitivePolynomialQ","PrimitiveRoot","PrimitiveRootList","PrincipalComponents","PrincipalValue","Print","PrintableASCIIQ","PrintAction","PrintForm","PrintingCopies","PrintingOptions","PrintingPageRange","PrintingStartingPageNumber","PrintingStyleEnvironment","Printout3D","Printout3DPreviewer","PrintPrecision","PrintTemporary","Prism","PrismBox","PrismBoxOptions","PrivateCellOptions","PrivateEvaluationOptions","PrivateFontOptions","PrivateFrontEndOptions","PrivateKey","PrivateNotebookOptions","PrivatePaths","Probability","ProbabilityDistribution","ProbabilityPlot","ProbabilityPr","ProbabilityScalePlot","ProbitModelFit","ProcessConnection","ProcessDirectory","ProcessEnvironment","Processes","ProcessEstimator","ProcessInformation","ProcessObject","ProcessParameterAssumptions","ProcessParameterQ","ProcessStateDomain","ProcessStatus","ProcessTimeDomain","Product","ProductDistribution","ProductLog","ProgressIndicator","ProgressIndicatorBox","ProgressIndicatorBoxOptions","Projection","Prolog","PromptForm","ProofObject","Properties","Property","PropertyList","PropertyValue","Proportion","Proportional","Protect","Protected","ProteinData","Pruning","PseudoInverse","PsychrometricPropertyData","PublicKey","PublisherID","PulsarData","PunctuationCharacter","Purple","Put","PutAppend","Pyramid","PyramidBox","PyramidBoxOptions","QBinomial","QFactorial","QGamma","QHypergeometricPFQ","QnDispersion","QPochhammer","QPolyGamma","QRDecomposition","QuadraticIrrationalQ","QuadraticOptimization","Quantile","QuantilePlot","Quantity","QuantityArray","QuantityDistribution","QuantityForm","QuantityMagnitude","QuantityQ","QuantityUnit","QuantityVariable","QuantityVariableCanonicalUnit","QuantityVariableDimensions","QuantityVariableIdentifier","QuantityVariablePhysicalQuantity","Quartics","QuartileDeviation","Quartiles","QuartileSkewness","Query","QueueingNetworkProcess","QueueingProcess","QueueProperties","Quiet","Quit","Quotient","QuotientRemainder","RadialGradientImage","RadialityCentrality","RadicalBox","RadicalBoxOptions","RadioButton","RadioButtonBar","RadioButtonBox","RadioButtonBoxOptions","Radon","RadonTransform","RamanujanTau","RamanujanTauL","RamanujanTauTheta","RamanujanTauZ","Ramp","Random","RandomChoice","RandomColor","RandomComplex","RandomEntity","RandomFunction","RandomGeoPosition","RandomGraph","RandomImage","RandomInstance","RandomInteger","RandomPermutation","RandomPoint","RandomPolygon","RandomPolyhedron","RandomPrime","RandomReal","RandomSample","RandomSeed","RandomSeeding","RandomVariate","RandomWalkProcess","RandomWord","Range","RangeFilter","RangeSpecification","RankedMax","RankedMin","RarerProbability","Raster","Raster3D","Raster3DBox","Raster3DBoxOptions","RasterArray","RasterBox","RasterBoxOptions","Rasterize","RasterSize","Rational","RationalFunctions","Rationalize","Rationals","Ratios","RawArray","RawBoxes","RawData","RawMedium","RayleighDistribution","Re","Read","ReadByteArray","ReadLine","ReadList","ReadProtected","ReadString","Real","RealAbs","RealBlockDiagonalForm","RealDigits","RealExponent","Reals","RealSign","Reap","RebuildPacletData","RecognitionPrior","RecognitionThreshold","Record","RecordLists","RecordSeparators","Rectangle","RectangleBox","RectangleBoxOptions","RectangleChart","RectangleChart3D","RectangularRepeatingElement","RecurrenceFilter","RecurrenceTable","RecurringDigitsForm","Red","Reduce","RefBox","ReferenceLineStyle","ReferenceMarkers","ReferenceMarkerStyle","Refine","ReflectionMatrix","ReflectionTransform","Refresh","RefreshRate","Region","RegionBinarize","RegionBoundary","RegionBoundaryStyle","RegionBounds","RegionCentroid","RegionDifference","RegionDimension","RegionDisjoint","RegionDistance","RegionDistanceFunction","RegionEmbeddingDimension","RegionEqual","RegionFillingStyle","RegionFunction","RegionImage","RegionIntersection","RegionMeasure","RegionMember","RegionMemberFunction","RegionMoment","RegionNearest","RegionNearestFunction","RegionPlot","RegionPlot3D","RegionProduct","RegionQ","RegionResize","RegionSize","RegionSymmetricDifference","RegionUnion","RegionWithin","RegisterExternalEvaluator","RegularExpression","Regularization","RegularlySampledQ","RegularPolygon","ReIm","ReImLabels","ReImPlot","ReImStyle","Reinstall","RelationalDatabase","RelationGraph","Release","ReleaseHold","ReliabilityDistribution","ReliefImage","ReliefPlot","RemoteAuthorizationCaching","RemoteConnect","RemoteConnectionObject","RemoteFile","RemoteRun","RemoteRunProcess","Remove","RemoveAlphaChannel","RemoveAsynchronousTask","RemoveAudioStream","RemoveBackground","RemoveChannelListener","RemoveChannelSubscribers","Removed","RemoveDiacritics","RemoveInputStreamMethod","RemoveOutputStreamMethod","RemoveProperty","RemoveScheduledTask","RemoveUsers","RemoveVideoStream","RenameDirectory","RenameFile","RenderAll","RenderingOptions","RenewalProcess","RenkoChart","RepairMesh","Repeated","RepeatedNull","RepeatedString","RepeatedTiming","RepeatingElement","Replace","ReplaceAll","ReplaceHeldPart","ReplaceImageValue","ReplaceList","ReplacePart","ReplacePixelValue","ReplaceRepeated","ReplicateLayer","RequiredPhysicalQuantities","Resampling","ResamplingAlgorithmData","ResamplingMethod","Rescale","RescalingTransform","ResetDirectory","ResetMenusPacket","ResetScheduledTask","ReshapeLayer","Residue","ResizeLayer","Resolve","ResourceAcquire","ResourceData","ResourceFunction","ResourceObject","ResourceRegister","ResourceRemove","ResourceSearch","ResourceSubmissionObject","ResourceSubmit","ResourceSystemBase","ResourceSystemPath","ResourceUpdate","ResourceVersion","ResponseForm","Rest","RestartInterval","Restricted","Resultant","ResumePacket","Return","ReturnEntersInput","ReturnExpressionPacket","ReturnInputFormPacket","ReturnPacket","ReturnReceiptFunction","ReturnTextPacket","Reverse","ReverseApplied","ReverseBiorthogonalSplineWavelet","ReverseElement","ReverseEquilibrium","ReverseGraph","ReverseSort","ReverseSortBy","ReverseUpEquilibrium","RevolutionAxis","RevolutionPlot3D","RGBColor","RiccatiSolve","RiceDistribution","RidgeFilter","RiemannR","RiemannSiegelTheta","RiemannSiegelZ","RiemannXi","Riffle","Right","RightArrow","RightArrowBar","RightArrowLeftArrow","RightComposition","RightCosetRepresentative","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightTee","RightTeeArrow","RightTeeVector","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","RiskAchievementImportance","RiskReductionImportance","RogersTanimotoDissimilarity","RollPitchYawAngles","RollPitchYawMatrix","RomanNumeral","Root","RootApproximant","RootIntervals","RootLocusPlot","RootMeanSquare","RootOfUnityQ","RootReduce","Roots","RootSum","Rotate","RotateLabel","RotateLeft","RotateRight","RotationAction","RotationBox","RotationBoxOptions","RotationMatrix","RotationTransform","Round","RoundImplies","RoundingRadius","Row","RowAlignments","RowBackgrounds","RowBox","RowHeights","RowLines","RowMinHeight","RowReduce","RowsEqual","RowSpacings","RSolve","RSolveValue","RudinShapiro","RudvalisGroupRu","Rule","RuleCondition","RuleDelayed","RuleForm","RulePlot","RulerUnits","Run","RunProcess","RunScheduledTask","RunThrough","RuntimeAttributes","RuntimeOptions","RussellRaoDissimilarity","SameQ","SameTest","SameTestProperties","SampledEntityClass","SampleDepth","SampledSoundFunction","SampledSoundList","SampleRate","SamplingPeriod","SARIMAProcess","SARMAProcess","SASTriangle","SatelliteData","SatisfiabilityCount","SatisfiabilityInstances","SatisfiableQ","Saturday","Save","Saveable","SaveAutoDelete","SaveConnection","SaveDefinitions","SavitzkyGolayMatrix","SawtoothWave","Scale","Scaled","ScaleDivisions","ScaledMousePosition","ScaleOrigin","ScalePadding","ScaleRanges","ScaleRangeStyle","ScalingFunctions","ScalingMatrix","ScalingTransform","Scan","ScheduledTask","ScheduledTaskActiveQ","ScheduledTaskInformation","ScheduledTaskInformationData","ScheduledTaskObject","ScheduledTasks","SchurDecomposition","ScientificForm","ScientificNotationThreshold","ScorerGi","ScorerGiPrime","ScorerHi","ScorerHiPrime","ScreenRectangle","ScreenStyleEnvironment","ScriptBaselineShifts","ScriptForm","ScriptLevel","ScriptMinSize","ScriptRules","ScriptSizeMultipliers","Scrollbars","ScrollingOptions","ScrollPosition","SearchAdjustment","SearchIndexObject","SearchIndices","SearchQueryString","SearchResultObject","Sec","Sech","SechDistribution","SecondOrderConeOptimization","SectionGrouping","SectorChart","SectorChart3D","SectorOrigin","SectorSpacing","SecuredAuthenticationKey","SecuredAuthenticationKeys","SeedRandom","Select","Selectable","SelectComponents","SelectedCells","SelectedNotebook","SelectFirst","Selection","SelectionAnimate","SelectionCell","SelectionCellCreateCell","SelectionCellDefaultStyle","SelectionCellParentStyle","SelectionCreateCell","SelectionDebuggerTag","SelectionDuplicateCell","SelectionEvaluate","SelectionEvaluateCreateCell","SelectionMove","SelectionPlaceholder","SelectionSetStyle","SelectWithContents","SelfLoops","SelfLoopStyle","SemanticImport","SemanticImportString","SemanticInterpretation","SemialgebraicComponentInstances","SemidefiniteOptimization","SendMail","SendMessage","Sequence","SequenceAlignment","SequenceAttentionLayer","SequenceCases","SequenceCount","SequenceFold","SequenceFoldList","SequenceForm","SequenceHold","SequenceLastLayer","SequenceMostLayer","SequencePosition","SequencePredict","SequencePredictorFunction","SequenceReplace","SequenceRestLayer","SequenceReverseLayer","SequenceSplit","Series","SeriesCoefficient","SeriesData","SeriesTermGoal","ServiceConnect","ServiceDisconnect","ServiceExecute","ServiceObject","ServiceRequest","ServiceResponse","ServiceSubmit","SessionSubmit","SessionTime","Set","SetAccuracy","SetAlphaChannel","SetAttributes","Setbacks","SetBoxFormNamesPacket","SetCloudDirectory","SetCookies","SetDelayed","SetDirectory","SetEnvironment","SetEvaluationNotebook","SetFileDate","SetFileLoadingContext","SetNotebookStatusLine","SetOptions","SetOptionsPacket","SetPermissions","SetPrecision","SetProperty","SetSecuredAuthenticationKey","SetSelectedNotebook","SetSharedFunction","SetSharedVariable","SetSpeechParametersPacket","SetStreamPosition","SetSystemModel","SetSystemOptions","Setter","SetterBar","SetterBox","SetterBoxOptions","Setting","SetUsers","SetValue","Shading","Shallow","ShannonWavelet","ShapiroWilkTest","Share","SharingList","Sharpen","ShearingMatrix","ShearingTransform","ShellRegion","ShenCastanMatrix","ShiftedGompertzDistribution","ShiftRegisterSequence","Short","ShortDownArrow","Shortest","ShortestMatch","ShortestPathFunction","ShortLeftArrow","ShortRightArrow","ShortTimeFourier","ShortTimeFourierData","ShortUpArrow","Show","ShowAutoConvert","ShowAutoSpellCheck","ShowAutoStyles","ShowCellBracket","ShowCellLabel","ShowCellTags","ShowClosedCellArea","ShowCodeAssist","ShowContents","ShowControls","ShowCursorTracker","ShowGroupOpenCloseIcon","ShowGroupOpener","ShowInvisibleCharacters","ShowPageBreaks","ShowPredictiveInterface","ShowSelection","ShowShortBoxForm","ShowSpecialCharacters","ShowStringCharacters","ShowSyntaxStyles","ShrinkingDelay","ShrinkWrapBoundingBox","SiderealTime","SiegelTheta","SiegelTukeyTest","SierpinskiCurve","SierpinskiMesh","Sign","Signature","SignedRankTest","SignedRegionDistance","SignificanceLevel","SignPadding","SignTest","SimilarityRules","SimpleGraph","SimpleGraphQ","SimplePolygonQ","SimplePolyhedronQ","Simplex","Simplify","Sin","Sinc","SinghMaddalaDistribution","SingleEvaluation","SingleLetterItalics","SingleLetterStyle","SingularValueDecomposition","SingularValueList","SingularValuePlot","SingularValues","Sinh","SinhIntegral","SinIntegral","SixJSymbol","Skeleton","SkeletonTransform","SkellamDistribution","Skewness","SkewNormalDistribution","SkinStyle","Skip","SliceContourPlot3D","SliceDensityPlot3D","SliceDistribution","SliceVectorPlot3D","Slider","Slider2D","Slider2DBox","Slider2DBoxOptions","SliderBox","SliderBoxOptions","SlideView","Slot","SlotSequence","Small","SmallCircle","Smaller","SmithDecomposition","SmithDelayCompensator","SmithWatermanSimilarity","SmoothDensityHistogram","SmoothHistogram","SmoothHistogram3D","SmoothKernelDistribution","SnDispersion","Snippet","SnubPolyhedron","SocialMediaData","Socket","SocketConnect","SocketListen","SocketListener","SocketObject","SocketOpen","SocketReadMessage","SocketReadyQ","Sockets","SocketWaitAll","SocketWaitNext","SoftmaxLayer","SokalSneathDissimilarity","SolarEclipse","SolarSystemFeatureData","SolidAngle","SolidData","SolidRegionQ","Solve","SolveAlways","SolveDelayed","Sort","SortBy","SortedBy","SortedEntityClass","Sound","SoundAndGraphics","SoundNote","SoundVolume","SourceLink","Sow","Space","SpaceCurveData","SpaceForm","Spacer","Spacings","Span","SpanAdjustments","SpanCharacterRounding","SpanFromAbove","SpanFromBoth","SpanFromLeft","SpanLineThickness","SpanMaxSize","SpanMinSize","SpanningCharacters","SpanSymmetric","SparseArray","SpatialGraphDistribution","SpatialMedian","SpatialTransformationLayer","Speak","SpeakerMatchQ","SpeakTextPacket","SpearmanRankTest","SpearmanRho","SpeciesData","SpecificityGoal","SpectralLineData","Spectrogram","SpectrogramArray","Specularity","SpeechCases","SpeechInterpreter","SpeechRecognize","SpeechSynthesize","SpellingCorrection","SpellingCorrectionList","SpellingDictionaries","SpellingDictionariesPath","SpellingOptions","SpellingSuggestionsPacket","Sphere","SphereBox","SpherePoints","SphericalBesselJ","SphericalBesselY","SphericalHankelH1","SphericalHankelH2","SphericalHarmonicY","SphericalPlot3D","SphericalRegion","SphericalShell","SpheroidalEigenvalue","SpheroidalJoiningFactor","SpheroidalPS","SpheroidalPSPrime","SpheroidalQS","SpheroidalQSPrime","SpheroidalRadialFactor","SpheroidalS1","SpheroidalS1Prime","SpheroidalS2","SpheroidalS2Prime","Splice","SplicedDistribution","SplineClosed","SplineDegree","SplineKnots","SplineWeights","Split","SplitBy","SpokenString","Sqrt","SqrtBox","SqrtBoxOptions","Square","SquaredEuclideanDistance","SquareFreeQ","SquareIntersection","SquareMatrixQ","SquareRepeatingElement","SquaresR","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","SquareWave","SSSTriangle","StabilityMargins","StabilityMarginsStyle","StableDistribution","Stack","StackBegin","StackComplete","StackedDateListPlot","StackedListPlot","StackInhibit","StadiumShape","StandardAtmosphereData","StandardDeviation","StandardDeviationFilter","StandardForm","Standardize","Standardized","StandardOceanData","StandbyDistribution","Star","StarClusterData","StarData","StarGraph","StartAsynchronousTask","StartExternalSession","StartingStepSize","StartOfLine","StartOfString","StartProcess","StartScheduledTask","StartupSound","StartWebSession","StateDimensions","StateFeedbackGains","StateOutputEstimator","StateResponse","StateSpaceModel","StateSpaceRealization","StateSpaceTransform","StateTransformationLinearize","StationaryDistribution","StationaryWaveletPacketTransform","StationaryWaveletTransform","StatusArea","StatusCentrality","StepMonitor","StereochemistryElements","StieltjesGamma","StippleShading","StirlingS1","StirlingS2","StopAsynchronousTask","StoppingPowerData","StopScheduledTask","StrataVariables","StratonovichProcess","StreamColorFunction","StreamColorFunctionScaling","StreamDensityPlot","StreamMarkers","StreamPlot","StreamPoints","StreamPosition","Streams","StreamScale","StreamStyle","String","StringBreak","StringByteCount","StringCases","StringContainsQ","StringCount","StringDelete","StringDrop","StringEndsQ","StringExpression","StringExtract","StringForm","StringFormat","StringFreeQ","StringInsert","StringJoin","StringLength","StringMatchQ","StringPadLeft","StringPadRight","StringPart","StringPartition","StringPosition","StringQ","StringRepeat","StringReplace","StringReplaceList","StringReplacePart","StringReverse","StringRiffle","StringRotateLeft","StringRotateRight","StringSkeleton","StringSplit","StringStartsQ","StringTake","StringTemplate","StringToByteArray","StringToStream","StringTrim","StripBoxes","StripOnInput","StripWrapperBoxes","StrokeForm","StructuralImportance","StructuredArray","StructuredArrayHeadQ","StructuredSelection","StruveH","StruveL","Stub","StudentTDistribution","Style","StyleBox","StyleBoxAutoDelete","StyleData","StyleDefinitions","StyleForm","StyleHints","StyleKeyMapping","StyleMenuListing","StyleNameDialogSettings","StyleNames","StylePrint","StyleSheetPath","Subdivide","Subfactorial","Subgraph","SubMinus","SubPlus","SubresultantPolynomialRemainders","SubresultantPolynomials","Subresultants","Subscript","SubscriptBox","SubscriptBoxOptions","Subscripted","Subsequences","Subset","SubsetCases","SubsetCount","SubsetEqual","SubsetMap","SubsetPosition","SubsetQ","SubsetReplace","Subsets","SubStar","SubstitutionSystem","Subsuperscript","SubsuperscriptBox","SubsuperscriptBoxOptions","SubtitleEncoding","SubtitleTracks","Subtract","SubtractFrom","SubtractSides","SubValues","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","Success","SuchThat","Sum","SumConvergence","SummationLayer","Sunday","SunPosition","Sunrise","Sunset","SuperDagger","SuperMinus","SupernovaData","SuperPlus","Superscript","SuperscriptBox","SuperscriptBoxOptions","Superset","SupersetEqual","SuperStar","Surd","SurdForm","SurfaceAppearance","SurfaceArea","SurfaceColor","SurfaceData","SurfaceGraphics","SurvivalDistribution","SurvivalFunction","SurvivalModel","SurvivalModelFit","SuspendPacket","SuzukiDistribution","SuzukiGroupSuz","SwatchLegend","Switch","Symbol","SymbolName","SymletWavelet","Symmetric","SymmetricGroup","SymmetricKey","SymmetricMatrixQ","SymmetricPolynomial","SymmetricReduction","Symmetrize","SymmetrizedArray","SymmetrizedArrayRules","SymmetrizedDependentComponents","SymmetrizedIndependentComponents","SymmetrizedReplacePart","SynchronousInitialization","SynchronousUpdating","Synonyms","Syntax","SyntaxForm","SyntaxInformation","SyntaxLength","SyntaxPacket","SyntaxQ","SynthesizeMissingValues","SystemCredential","SystemCredentialData","SystemCredentialKey","SystemCredentialKeys","SystemCredentialStoreObject","SystemDialogInput","SystemException","SystemGet","SystemHelpPath","SystemInformation","SystemInformationData","SystemInstall","SystemModel","SystemModeler","SystemModelExamples","SystemModelLinearize","SystemModelParametricSimulate","SystemModelPlot","SystemModelProgressReporting","SystemModelReliability","SystemModels","SystemModelSimulate","SystemModelSimulateSensitivity","SystemModelSimulationData","SystemOpen","SystemOptions","SystemProcessData","SystemProcesses","SystemsConnectionsModel","SystemsModelDelay","SystemsModelDelayApproximate","SystemsModelDelete","SystemsModelDimensions","SystemsModelExtract","SystemsModelFeedbackConnect","SystemsModelLabels","SystemsModelLinearity","SystemsModelMerge","SystemsModelOrder","SystemsModelParallelConnect","SystemsModelSeriesConnect","SystemsModelStateFeedbackConnect","SystemsModelVectorRelativeOrders","SystemStub","SystemTest","Tab","TabFilling","Table","TableAlignments","TableDepth","TableDirections","TableForm","TableHeadings","TableSpacing","TableView","TableViewBox","TableViewBoxBackground","TableViewBoxItemSize","TableViewBoxOptions","TabSpacings","TabView","TabViewBox","TabViewBoxOptions","TagBox","TagBoxNote","TagBoxOptions","TaggingRules","TagSet","TagSetDelayed","TagStyle","TagUnset","Take","TakeDrop","TakeLargest","TakeLargestBy","TakeList","TakeSmallest","TakeSmallestBy","TakeWhile","Tally","Tan","Tanh","TargetDevice","TargetFunctions","TargetSystem","TargetUnits","TaskAbort","TaskExecute","TaskObject","TaskRemove","TaskResume","Tasks","TaskSuspend","TaskWait","TautologyQ","TelegraphProcess","TemplateApply","TemplateArgBox","TemplateBox","TemplateBoxOptions","TemplateEvaluate","TemplateExpression","TemplateIf","TemplateObject","TemplateSequence","TemplateSlot","TemplateSlotSequence","TemplateUnevaluated","TemplateVerbatim","TemplateWith","TemporalData","TemporalRegularity","Temporary","TemporaryVariable","TensorContract","TensorDimensions","TensorExpand","TensorProduct","TensorQ","TensorRank","TensorReduce","TensorSymmetry","TensorTranspose","TensorWedge","TestID","TestReport","TestReportObject","TestResultObject","Tetrahedron","TetrahedronBox","TetrahedronBoxOptions","TeXForm","TeXSave","Text","Text3DBox","Text3DBoxOptions","TextAlignment","TextBand","TextBoundingBox","TextBox","TextCases","TextCell","TextClipboardType","TextContents","TextData","TextElement","TextForm","TextGrid","TextJustification","TextLine","TextPacket","TextParagraph","TextPosition","TextRecognize","TextSearch","TextSearchReport","TextSentences","TextString","TextStructure","TextStyle","TextTranslation","Texture","TextureCoordinateFunction","TextureCoordinateScaling","TextWords","Therefore","ThermodynamicData","ThermometerGauge","Thick","Thickness","Thin","Thinning","ThisLink","ThompsonGroupTh","Thread","ThreadingLayer","ThreeJSymbol","Threshold","Through","Throw","ThueMorse","Thumbnail","Thursday","Ticks","TicksStyle","TideData","Tilde","TildeEqual","TildeFullEqual","TildeTilde","TimeConstrained","TimeConstraint","TimeDirection","TimeFormat","TimeGoal","TimelinePlot","TimeObject","TimeObjectQ","TimeRemaining","Times","TimesBy","TimeSeries","TimeSeriesAggregate","TimeSeriesForecast","TimeSeriesInsert","TimeSeriesInvertibility","TimeSeriesMap","TimeSeriesMapThread","TimeSeriesModel","TimeSeriesModelFit","TimeSeriesResample","TimeSeriesRescale","TimeSeriesShift","TimeSeriesThread","TimeSeriesWindow","TimeUsed","TimeValue","TimeWarpingCorrespondence","TimeWarpingDistance","TimeZone","TimeZoneConvert","TimeZoneOffset","Timing","Tiny","TitleGrouping","TitsGroupT","ToBoxes","ToCharacterCode","ToColor","ToContinuousTimeModel","ToDate","Today","ToDiscreteTimeModel","ToEntity","ToeplitzMatrix","ToExpression","ToFileName","Together","Toggle","ToggleFalse","Toggler","TogglerBar","TogglerBox","TogglerBoxOptions","ToHeldExpression","ToInvertibleTimeSeries","TokenWords","Tolerance","ToLowerCase","Tomorrow","ToNumberField","TooBig","Tooltip","TooltipBox","TooltipBoxOptions","TooltipDelay","TooltipStyle","ToonShading","Top","TopHatTransform","ToPolarCoordinates","TopologicalSort","ToRadicals","ToRules","ToSphericalCoordinates","ToString","Total","TotalHeight","TotalLayer","TotalVariationFilter","TotalWidth","TouchPosition","TouchscreenAutoZoom","TouchscreenControlPlacement","ToUpperCase","Tr","Trace","TraceAbove","TraceAction","TraceBackward","TraceDepth","TraceDialog","TraceForward","TraceInternal","TraceLevel","TraceOff","TraceOn","TraceOriginal","TracePrint","TraceScan","TrackedSymbols","TrackingFunction","TracyWidomDistribution","TradingChart","TraditionalForm","TraditionalFunctionNotation","TraditionalNotation","TraditionalOrder","TrainingProgressCheckpointing","TrainingProgressFunction","TrainingProgressMeasurements","TrainingProgressReporting","TrainingStoppingCriterion","TrainingUpdateSchedule","TransferFunctionCancel","TransferFunctionExpand","TransferFunctionFactor","TransferFunctionModel","TransferFunctionPoles","TransferFunctionTransform","TransferFunctionZeros","TransformationClass","TransformationFunction","TransformationFunctions","TransformationMatrix","TransformedDistribution","TransformedField","TransformedProcess","TransformedRegion","TransitionDirection","TransitionDuration","TransitionEffect","TransitiveClosureGraph","TransitiveReductionGraph","Translate","TranslationOptions","TranslationTransform","Transliterate","Transparent","TransparentColor","Transpose","TransposeLayer","TrapSelection","TravelDirections","TravelDirectionsData","TravelDistance","TravelDistanceList","TravelMethod","TravelTime","TreeForm","TreeGraph","TreeGraphQ","TreePlot","TrendStyle","Triangle","TriangleCenter","TriangleConstruct","TriangleMeasurement","TriangleWave","TriangularDistribution","TriangulateMesh","Trig","TrigExpand","TrigFactor","TrigFactorList","Trigger","TrigReduce","TrigToExp","TrimmedMean","TrimmedVariance","TropicalStormData","True","TrueQ","TruncatedDistribution","TruncatedPolyhedron","TsallisQExponentialDistribution","TsallisQGaussianDistribution","TTest","Tube","TubeBezierCurveBox","TubeBezierCurveBoxOptions","TubeBox","TubeBoxOptions","TubeBSplineCurveBox","TubeBSplineCurveBoxOptions","Tuesday","TukeyLambdaDistribution","TukeyWindow","TunnelData","Tuples","TuranGraph","TuringMachine","TuttePolynomial","TwoWayRule","Typed","TypeSpecifier","UnateQ","Uncompress","UnconstrainedParameters","Undefined","UnderBar","Underflow","Underlined","Underoverscript","UnderoverscriptBox","UnderoverscriptBoxOptions","Underscript","UnderscriptBox","UnderscriptBoxOptions","UnderseaFeatureData","UndirectedEdge","UndirectedGraph","UndirectedGraphQ","UndoOptions","UndoTrackedVariables","Unequal","UnequalTo","Unevaluated","UniformDistribution","UniformGraphDistribution","UniformPolyhedron","UniformSumDistribution","Uninstall","Union","UnionedEntityClass","UnionPlus","Unique","UnitaryMatrixQ","UnitBox","UnitConvert","UnitDimensions","Unitize","UnitRootTest","UnitSimplify","UnitStep","UnitSystem","UnitTriangle","UnitVector","UnitVectorLayer","UnityDimensions","UniverseModelData","UniversityData","UnixTime","Unprotect","UnregisterExternalEvaluator","UnsameQ","UnsavedVariables","Unset","UnsetShared","UntrackedVariables","Up","UpArrow","UpArrowBar","UpArrowDownArrow","Update","UpdateDynamicObjects","UpdateDynamicObjectsSynchronous","UpdateInterval","UpdatePacletSites","UpdateSearchIndex","UpDownArrow","UpEquilibrium","UpperCaseQ","UpperLeftArrow","UpperRightArrow","UpperTriangularize","UpperTriangularMatrixQ","Upsample","UpSet","UpSetDelayed","UpTee","UpTeeArrow","UpTo","UpValues","URL","URLBuild","URLDecode","URLDispatcher","URLDownload","URLDownloadSubmit","URLEncode","URLExecute","URLExpand","URLFetch","URLFetchAsynchronous","URLParse","URLQueryDecode","URLQueryEncode","URLRead","URLResponseTime","URLSave","URLSaveAsynchronous","URLShorten","URLSubmit","UseGraphicsRange","UserDefinedWavelet","Using","UsingFrontEnd","UtilityFunction","V2Get","ValenceErrorHandling","ValidationLength","ValidationSet","Value","ValueBox","ValueBoxOptions","ValueDimensions","ValueForm","ValuePreprocessingFunction","ValueQ","Values","ValuesData","Variables","Variance","VarianceEquivalenceTest","VarianceEstimatorFunction","VarianceGammaDistribution","VarianceTest","VectorAngle","VectorAround","VectorAspectRatio","VectorColorFunction","VectorColorFunctionScaling","VectorDensityPlot","VectorGlyphData","VectorGreater","VectorGreaterEqual","VectorLess","VectorLessEqual","VectorMarkers","VectorPlot","VectorPlot3D","VectorPoints","VectorQ","VectorRange","Vectors","VectorScale","VectorScaling","VectorSizes","VectorStyle","Vee","Verbatim","Verbose","VerboseConvertToPostScriptPacket","VerificationTest","VerifyConvergence","VerifyDerivedKey","VerifyDigitalSignature","VerifyFileSignature","VerifyInterpretation","VerifySecurityCertificates","VerifySolutions","VerifyTestAssumptions","Version","VersionedPreferences","VersionNumber","VertexAdd","VertexCapacity","VertexColors","VertexComponent","VertexConnectivity","VertexContract","VertexCoordinateRules","VertexCoordinates","VertexCorrelationSimilarity","VertexCosineSimilarity","VertexCount","VertexCoverQ","VertexDataCoordinates","VertexDegree","VertexDelete","VertexDiceSimilarity","VertexEccentricity","VertexInComponent","VertexInDegree","VertexIndex","VertexJaccardSimilarity","VertexLabeling","VertexLabels","VertexLabelStyle","VertexList","VertexNormals","VertexOutComponent","VertexOutDegree","VertexQ","VertexRenderingFunction","VertexReplace","VertexShape","VertexShapeFunction","VertexSize","VertexStyle","VertexTextureCoordinates","VertexWeight","VertexWeightedGraphQ","Vertical","VerticalBar","VerticalForm","VerticalGauge","VerticalSeparator","VerticalSlider","VerticalTilde","Video","VideoEncoding","VideoExtractFrames","VideoFrameList","VideoFrameMap","VideoPause","VideoPlay","VideoQ","VideoStop","VideoStream","VideoStreams","VideoTimeSeries","VideoTracks","VideoTrim","ViewAngle","ViewCenter","ViewMatrix","ViewPoint","ViewPointSelectorSettings","ViewPort","ViewProjection","ViewRange","ViewVector","ViewVertical","VirtualGroupData","Visible","VisibleCell","VoiceStyleData","VoigtDistribution","VolcanoData","Volume","VonMisesDistribution","VoronoiMesh","WaitAll","WaitAsynchronousTask","WaitNext","WaitUntil","WakebyDistribution","WalleniusHypergeometricDistribution","WaringYuleDistribution","WarpingCorrespondence","WarpingDistance","WatershedComponents","WatsonUSquareTest","WattsStrogatzGraphDistribution","WaveletBestBasis","WaveletFilterCoefficients","WaveletImagePlot","WaveletListPlot","WaveletMapIndexed","WaveletMatrixPlot","WaveletPhi","WaveletPsi","WaveletScale","WaveletScalogram","WaveletThreshold","WeaklyConnectedComponents","WeaklyConnectedGraphComponents","WeaklyConnectedGraphQ","WeakStationarity","WeatherData","WeatherForecastData","WebAudioSearch","WebElementObject","WeberE","WebExecute","WebImage","WebImageSearch","WebSearch","WebSessionObject","WebSessions","WebWindowObject","Wedge","Wednesday","WeibullDistribution","WeierstrassE1","WeierstrassE2","WeierstrassE3","WeierstrassEta1","WeierstrassEta2","WeierstrassEta3","WeierstrassHalfPeriods","WeierstrassHalfPeriodW1","WeierstrassHalfPeriodW2","WeierstrassHalfPeriodW3","WeierstrassInvariantG2","WeierstrassInvariantG3","WeierstrassInvariants","WeierstrassP","WeierstrassPPrime","WeierstrassSigma","WeierstrassZeta","WeightedAdjacencyGraph","WeightedAdjacencyMatrix","WeightedData","WeightedGraphQ","Weights","WelchWindow","WheelGraph","WhenEvent","Which","While","White","WhiteNoiseProcess","WhitePoint","Whitespace","WhitespaceCharacter","WhittakerM","WhittakerW","WienerFilter","WienerProcess","WignerD","WignerSemicircleDistribution","WikidataData","WikidataSearch","WikipediaData","WikipediaSearch","WilksW","WilksWTest","WindDirectionData","WindingCount","WindingPolygon","WindowClickSelect","WindowElements","WindowFloating","WindowFrame","WindowFrameElements","WindowMargins","WindowMovable","WindowOpacity","WindowPersistentStyles","WindowSelected","WindowSize","WindowStatusArea","WindowTitle","WindowToolbars","WindowWidth","WindSpeedData","WindVectorData","WinsorizedMean","WinsorizedVariance","WishartMatrixDistribution","With","WolframAlpha","WolframAlphaDate","WolframAlphaQuantity","WolframAlphaResult","WolframLanguageData","Word","WordBoundary","WordCharacter","WordCloud","WordCount","WordCounts","WordData","WordDefinition","WordFrequency","WordFrequencyData","WordList","WordOrientation","WordSearch","WordSelectionFunction","WordSeparators","WordSpacings","WordStem","WordTranslation","WorkingPrecision","WrapAround","Write","WriteLine","WriteString","Wronskian","XMLElement","XMLObject","XMLTemplate","Xnor","Xor","XYZColor","Yellow","Yesterday","YuleDissimilarity","ZernikeR","ZeroSymmetric","ZeroTest","ZeroWidthTimes","Zeta","ZetaZero","ZIPCodeData","ZipfDistribution","ZoomCenter","ZoomFactor","ZTest","ZTransform","$Aborted","$ActivationGroupID","$ActivationKey","$ActivationUserRegistered","$AddOnsDirectory","$AllowDataUpdates","$AllowExternalChannelFunctions","$AllowInternet","$AssertFunction","$Assumptions","$AsynchronousTask","$AudioDecoders","$AudioEncoders","$AudioInputDevices","$AudioOutputDevices","$BaseDirectory","$BasePacletsDirectory","$BatchInput","$BatchOutput","$BlockchainBase","$BoxForms","$ByteOrdering","$CacheBaseDirectory","$Canceled","$ChannelBase","$CharacterEncoding","$CharacterEncodings","$CloudAccountName","$CloudBase","$CloudConnected","$CloudConnection","$CloudCreditsAvailable","$CloudEvaluation","$CloudExpressionBase","$CloudObjectNameFormat","$CloudObjectURLType","$CloudRootDirectory","$CloudSymbolBase","$CloudUserID","$CloudUserUUID","$CloudVersion","$CloudVersionNumber","$CloudWolframEngineVersionNumber","$CommandLine","$CompilationTarget","$ConditionHold","$ConfiguredKernels","$Context","$ContextPath","$ControlActiveSetting","$Cookies","$CookieStore","$CreationDate","$CurrentLink","$CurrentTask","$CurrentWebSession","$DataStructures","$DateStringFormat","$DefaultAudioInputDevice","$DefaultAudioOutputDevice","$DefaultFont","$DefaultFrontEnd","$DefaultImagingDevice","$DefaultLocalBase","$DefaultMailbox","$DefaultNetworkInterface","$DefaultPath","$DefaultProxyRules","$DefaultSystemCredentialStore","$Display","$DisplayFunction","$DistributedContexts","$DynamicEvaluation","$Echo","$EmbedCodeEnvironments","$EmbeddableServices","$EntityStores","$Epilog","$EvaluationCloudBase","$EvaluationCloudObject","$EvaluationEnvironment","$ExportFormats","$ExternalIdentifierTypes","$ExternalStorageBase","$Failed","$FinancialDataSource","$FontFamilies","$FormatType","$FrontEnd","$FrontEndSession","$GeoEntityTypes","$GeoLocation","$GeoLocationCity","$GeoLocationCountry","$GeoLocationPrecision","$GeoLocationSource","$HistoryLength","$HomeDirectory","$HTMLExportRules","$HTTPCookies","$HTTPRequest","$IgnoreEOF","$ImageFormattingWidth","$ImageResolution","$ImagingDevice","$ImagingDevices","$ImportFormats","$IncomingMailSettings","$InitialDirectory","$Initialization","$InitializationContexts","$Input","$InputFileName","$InputStreamMethods","$Inspector","$InstallationDate","$InstallationDirectory","$InterfaceEnvironment","$InterpreterTypes","$IterationLimit","$KernelCount","$KernelID","$Language","$LaunchDirectory","$LibraryPath","$LicenseExpirationDate","$LicenseID","$LicenseProcesses","$LicenseServer","$LicenseSubprocesses","$LicenseType","$Line","$Linked","$LinkSupported","$LoadedFiles","$LocalBase","$LocalSymbolBase","$MachineAddresses","$MachineDomain","$MachineDomains","$MachineEpsilon","$MachineID","$MachineName","$MachinePrecision","$MachineType","$MaxExtraPrecision","$MaxLicenseProcesses","$MaxLicenseSubprocesses","$MaxMachineNumber","$MaxNumber","$MaxPiecewiseCases","$MaxPrecision","$MaxRootDegree","$MessageGroups","$MessageList","$MessagePrePrint","$Messages","$MinMachineNumber","$MinNumber","$MinorReleaseNumber","$MinPrecision","$MobilePhone","$ModuleNumber","$NetworkConnected","$NetworkInterfaces","$NetworkLicense","$NewMessage","$NewSymbol","$NotebookInlineStorageLimit","$Notebooks","$NoValue","$NumberMarks","$Off","$OperatingSystem","$Output","$OutputForms","$OutputSizeLimit","$OutputStreamMethods","$Packages","$ParentLink","$ParentProcessID","$PasswordFile","$PatchLevelID","$Path","$PathnameSeparator","$PerformanceGoal","$Permissions","$PermissionsGroupBase","$PersistenceBase","$PersistencePath","$PipeSupported","$PlotTheme","$Post","$Pre","$PreferencesDirectory","$PreInitialization","$PrePrint","$PreRead","$PrintForms","$PrintLiteral","$Printout3DPreviewer","$ProcessID","$ProcessorCount","$ProcessorType","$ProductInformation","$ProgramName","$PublisherID","$RandomState","$RecursionLimit","$RegisteredDeviceClasses","$RegisteredUserName","$ReleaseNumber","$RequesterAddress","$RequesterWolframID","$RequesterWolframUUID","$RootDirectory","$ScheduledTask","$ScriptCommandLine","$ScriptInputString","$SecuredAuthenticationKeyTokens","$ServiceCreditsAvailable","$Services","$SessionID","$SetParentLink","$SharedFunctions","$SharedVariables","$SoundDisplay","$SoundDisplayFunction","$SourceLink","$SSHAuthentication","$SubtitleDecoders","$SubtitleEncoders","$SummaryBoxDataSizeLimit","$SuppressInputFormHeads","$SynchronousEvaluation","$SyntaxHandler","$System","$SystemCharacterEncoding","$SystemCredentialStore","$SystemID","$SystemMemory","$SystemShell","$SystemTimeZone","$SystemWordLength","$TemplatePath","$TemporaryDirectory","$TemporaryPrefix","$TestFileName","$TextStyle","$TimedOut","$TimeUnit","$TimeZone","$TimeZoneEntity","$TopDirectory","$TraceOff","$TraceOn","$TracePattern","$TracePostAction","$TracePreAction","$UnitSystem","$Urgent","$UserAddOnsDirectory","$UserAgentLanguages","$UserAgentMachine","$UserAgentName","$UserAgentOperatingSystem","$UserAgentString","$UserAgentVersion","$UserBaseDirectory","$UserBasePacletsDirectory","$UserDocumentsDirectory","$Username","$UserName","$UserURLBase","$Version","$VersionNumber","$VideoDecoders","$VideoEncoders","$VoiceStyles","$WolframDocumentsDirectory","$WolframID","$WolframUUID"] +;return t=>{ +const i=t.regex,o=i.either(i.concat(/([2-9]|[1-2]\d|[3][0-5])\^\^/,/(\w*\.\w+|\w+\.\w*|\w+)/),/(\d*\.\d+|\d+\.\d*|\d+)/),a=i.either(/``[+-]?(\d*\.\d+|\d+\.\d*|\d+)/,/`([+-]?(\d*\.\d+|\d+\.\d*|\d+))?/),n={ +className:"number",relevance:0, +begin:i.concat(o,i.optional(a),i.optional(/\*\^[+-]?\d+/)) +},r=/[a-zA-Z$][a-zA-Z0-9$]*/,l=new Set(e),s={variants:[{ +className:"builtin-symbol",begin:r,"on:begin":(e,t)=>{ +l.has(e[0])||t.ignoreMatch()}},{className:"symbol",relevance:0,begin:r}]},c={ +className:"message-name",relevance:0,begin:i.concat("::",r)};return{ +name:"Mathematica",aliases:["mma","wl"],classNameAliases:{brace:"punctuation", +pattern:"type",slot:"type",symbol:"variable","named-character":"variable", +"builtin-symbol":"built_in","message-name":"string"}, +contains:[t.COMMENT(/\(\*/,/\*\)/,{contains:["self"]}),{className:"pattern", +relevance:0,begin:/([a-zA-Z$][a-zA-Z0-9$]*)?_+([a-zA-Z$][a-zA-Z0-9$]*)?/},{ +className:"slot",relevance:0,begin:/#[a-zA-Z$][a-zA-Z0-9$]*|#+[0-9]?/},c,s,{ +className:"named-character",begin:/\\\[[$a-zA-Z][$a-zA-Z0-9]+\]/ +},t.QUOTE_STRING_MODE,n,{className:"operator",relevance:0, +begin:/[+\-*/,;.:@~=><&|_`'^?!%]+/},{className:"brace",relevance:0, +begin:/[[\](){}]/}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/matlab.min.js b/src/app/resources/assets/highlight/es/languages/matlab.min.js new file mode 100644 index 0000000..37c273f --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/matlab.min.js @@ -0,0 +1,15 @@ +/*! `matlab` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a={relevance:0,contains:[{ +begin:"('|\\.')+"}]};return{name:"Matlab",keywords:{ +keyword:"arguments break case catch classdef continue else elseif end enumeration events for function global if methods otherwise parfor persistent properties return spmd switch try while", +built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i|0 inf nan isnan isinf isfinite j|0 why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun legend intersect ismember procrustes hold num2cell " +},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function", +beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{ +className:"params",variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}]}] +},{className:"built_in",begin:/true|false/,relevance:0,starts:a},{ +begin:"[a-zA-Z][a-zA-Z_0-9]*('|\\.')+",relevance:0},{className:"number", +begin:e.C_NUMBER_RE,relevance:0,starts:a},{className:"string",begin:"'",end:"'", +contains:[{begin:"''"}]},{begin:/\]|\}|\)/,relevance:0,starts:a},{ +className:"string",begin:'"',end:'"',contains:[{begin:'""'}],starts:a +},e.COMMENT("^\\s*%\\{\\s*$","^\\s*%\\}\\s*$"),e.COMMENT("%","$")]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/maxima.min.js b/src/app/resources/assets/highlight/es/languages/maxima.min.js new file mode 100644 index 0000000..4f49046 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/maxima.min.js @@ -0,0 +1,12 @@ +/*! `maxima` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Maxima",keywords:{ +$pattern:"[A-Za-z_%][0-9A-Za-z_%]*", +keyword:"if then else elseif for thru do while unless step in and or not", +literal:"true false unknown inf minf ind und %e %i %pi %phi %gamma", +built_in:" abasep abs absint absolute_real_time acos acosh acot acoth acsc acsch activate addcol add_edge add_edges addmatrices addrow add_vertex add_vertices adjacency_matrix adjoin adjoint af agd airy airy_ai airy_bi airy_dai airy_dbi algsys alg_type alias allroots alphacharp alphanumericp amortization %and annuity_fv annuity_pv antid antidiff AntiDifference append appendfile apply apply1 apply2 applyb1 apropos args arit_amortization arithmetic arithsum array arrayapply arrayinfo arraymake arraysetapply ascii asec asech asin asinh askinteger asksign assoc assoc_legendre_p assoc_legendre_q assume assume_external_byte_order asympa at atan atan2 atanh atensimp atom atvalue augcoefmatrix augmented_lagrangian_method av average_degree backtrace bars barsplot barsplot_description base64 base64_decode bashindices batch batchload bc2 bdvac belln benefit_cost bern bernpoly bernstein_approx bernstein_expand bernstein_poly bessel bessel_i bessel_j bessel_k bessel_simplify bessel_y beta beta_incomplete beta_incomplete_generalized beta_incomplete_regularized bezout bfallroots bffac bf_find_root bf_fmin_cobyla bfhzeta bfloat bfloatp bfpsi bfpsi0 bfzeta biconnected_components bimetric binomial bipartition block blockmatrixp bode_gain bode_phase bothcoef box boxplot boxplot_description break bug_report build_info|10 buildq build_sample burn cabs canform canten cardinality carg cartan cartesian_product catch cauchy_matrix cbffac cdf_bernoulli cdf_beta cdf_binomial cdf_cauchy cdf_chi2 cdf_continuous_uniform cdf_discrete_uniform cdf_exp cdf_f cdf_gamma cdf_general_finite_discrete cdf_geometric cdf_gumbel cdf_hypergeometric cdf_laplace cdf_logistic cdf_lognormal cdf_negative_binomial cdf_noncentral_chi2 cdf_noncentral_student_t cdf_normal cdf_pareto cdf_poisson cdf_rank_sum cdf_rayleigh cdf_signed_rank cdf_student_t cdf_weibull cdisplay ceiling central_moment cequal cequalignore cf cfdisrep cfexpand cgeodesic cgreaterp cgreaterpignore changename changevar chaosgame charat charfun charfun2 charlist charp charpoly chdir chebyshev_t chebyshev_u checkdiv check_overlaps chinese cholesky christof chromatic_index chromatic_number cint circulant_graph clear_edge_weight clear_rules clear_vertex_label clebsch_gordan clebsch_graph clessp clesspignore close closefile cmetric coeff coefmatrix cograd col collapse collectterms columnop columnspace columnswap columnvector combination combine comp2pui compare compfile compile compile_file complement_graph complete_bipartite_graph complete_graph complex_number_p components compose_functions concan concat conjugate conmetderiv connected_components connect_vertices cons constant constantp constituent constvalue cont2part content continuous_freq contortion contour_plot contract contract_edge contragrad contrib_ode convert coord copy copy_file copy_graph copylist copymatrix cor cos cosh cot coth cov cov1 covdiff covect covers crc24sum create_graph create_list csc csch csetup cspline ctaylor ct_coordsys ctransform ctranspose cube_graph cuboctahedron_graph cunlisp cv cycle_digraph cycle_graph cylindrical days360 dblint deactivate declare declare_constvalue declare_dimensions declare_fundamental_dimensions declare_fundamental_units declare_qty declare_translated declare_unit_conversion declare_units declare_weights decsym defcon define define_alt_display define_variable defint defmatch defrule defstruct deftaylor degree_sequence del delete deleten delta demo demoivre denom depends derivdegree derivlist describe desolve determinant dfloat dgauss_a dgauss_b dgeev dgemm dgeqrf dgesv dgesvd diag diagmatrix diag_matrix diagmatrixp diameter diff digitcharp dimacs_export dimacs_import dimension dimensionless dimensions dimensions_as_list direct directory discrete_freq disjoin disjointp disolate disp dispcon dispform dispfun dispJordan display disprule dispterms distrib divide divisors divsum dkummer_m dkummer_u dlange dodecahedron_graph dotproduct dotsimp dpart draw draw2d draw3d drawdf draw_file draw_graph dscalar echelon edge_coloring edge_connectivity edges eigens_by_jacobi eigenvalues eigenvectors eighth einstein eivals eivects elapsed_real_time elapsed_run_time ele2comp ele2polynome ele2pui elem elementp elevation_grid elim elim_allbut eliminate eliminate_using ellipse elliptic_e elliptic_ec elliptic_eu elliptic_f elliptic_kc elliptic_pi ematrix empty_graph emptyp endcons entermatrix entertensor entier equal equalp equiv_classes erf erfc erf_generalized erfi errcatch error errormsg errors euler ev eval_string evenp every evolution evolution2d evundiff example exp expand expandwrt expandwrt_factored expint expintegral_chi expintegral_ci expintegral_e expintegral_e1 expintegral_ei expintegral_e_simplify expintegral_li expintegral_shi expintegral_si explicit explose exponentialize express expt exsec extdiff extract_linear_equations extremal_subset ezgcd %f f90 facsum factcomb factor factorfacsum factorial factorout factorsum facts fast_central_elements fast_linsolve fasttimes featurep fernfale fft fib fibtophi fifth filename_merge file_search file_type fillarray findde find_root find_root_abs find_root_error find_root_rel first fix flatten flength float floatnump floor flower_snark flush flush1deriv flushd flushnd flush_output fmin_cobyla forget fortran fourcos fourexpand fourier fourier_elim fourint fourintcos fourintsin foursimp foursin fourth fposition frame_bracket freeof freshline fresnel_c fresnel_s from_adjacency_matrix frucht_graph full_listify fullmap fullmapl fullratsimp fullratsubst fullsetify funcsolve fundamental_dimensions fundamental_units fundef funmake funp fv g0 g1 gamma gamma_greek gamma_incomplete gamma_incomplete_generalized gamma_incomplete_regularized gauss gauss_a gauss_b gaussprob gcd gcdex gcdivide gcfac gcfactor gd generalized_lambert_w genfact gen_laguerre genmatrix gensym geo_amortization geo_annuity_fv geo_annuity_pv geomap geometric geometric_mean geosum get getcurrentdirectory get_edge_weight getenv get_lu_factors get_output_stream_string get_pixel get_plot_option get_tex_environment get_tex_environment_default get_vertex_label gfactor gfactorsum ggf girth global_variances gn gnuplot_close gnuplot_replot gnuplot_reset gnuplot_restart gnuplot_start go Gosper GosperSum gr2d gr3d gradef gramschmidt graph6_decode graph6_encode graph6_export graph6_import graph_center graph_charpoly graph_eigenvalues graph_flow graph_order graph_periphery graph_product graph_size graph_union great_rhombicosidodecahedron_graph great_rhombicuboctahedron_graph grid_graph grind grobner_basis grotzch_graph hamilton_cycle hamilton_path hankel hankel_1 hankel_2 harmonic harmonic_mean hav heawood_graph hermite hessian hgfred hilbertmap hilbert_matrix hipow histogram histogram_description hodge horner hypergeometric i0 i1 %ibes ic1 ic2 ic_convert ichr1 ichr2 icosahedron_graph icosidodecahedron_graph icurvature ident identfor identity idiff idim idummy ieqn %if ifactors iframes ifs igcdex igeodesic_coords ilt image imagpart imetric implicit implicit_derivative implicit_plot indexed_tensor indices induced_subgraph inferencep inference_result infix info_display init_atensor init_ctensor in_neighbors innerproduct inpart inprod inrt integerp integer_partitions integrate intersect intersection intervalp intopois intosum invariant1 invariant2 inverse_fft inverse_jacobi_cd inverse_jacobi_cn inverse_jacobi_cs inverse_jacobi_dc inverse_jacobi_dn inverse_jacobi_ds inverse_jacobi_nc inverse_jacobi_nd inverse_jacobi_ns inverse_jacobi_sc inverse_jacobi_sd inverse_jacobi_sn invert invert_by_adjoint invert_by_lu inv_mod irr is is_biconnected is_bipartite is_connected is_digraph is_edge_in_graph is_graph is_graph_or_digraph ishow is_isomorphic isolate isomorphism is_planar isqrt isreal_p is_sconnected is_tree is_vertex_in_graph items_inference %j j0 j1 jacobi jacobian jacobi_cd jacobi_cn jacobi_cs jacobi_dc jacobi_dn jacobi_ds jacobi_nc jacobi_nd jacobi_ns jacobi_p jacobi_sc jacobi_sd jacobi_sn JF jn join jordan julia julia_set julia_sin %k kdels kdelta kill killcontext kostka kron_delta kronecker_product kummer_m kummer_u kurtosis kurtosis_bernoulli kurtosis_beta kurtosis_binomial kurtosis_chi2 kurtosis_continuous_uniform kurtosis_discrete_uniform kurtosis_exp kurtosis_f kurtosis_gamma kurtosis_general_finite_discrete kurtosis_geometric kurtosis_gumbel kurtosis_hypergeometric kurtosis_laplace kurtosis_logistic kurtosis_lognormal kurtosis_negative_binomial kurtosis_noncentral_chi2 kurtosis_noncentral_student_t kurtosis_normal kurtosis_pareto kurtosis_poisson kurtosis_rayleigh kurtosis_student_t kurtosis_weibull label labels lagrange laguerre lambda lambert_w laplace laplacian_matrix last lbfgs lc2kdt lcharp lc_l lcm lc_u ldefint ldisp ldisplay legendre_p legendre_q leinstein length let letrules letsimp levi_civita lfreeof lgtreillis lhs li liediff limit Lindstedt linear linearinterpol linear_program linear_regression line_graph linsolve listarray list_correlations listify list_matrix_entries list_nc_monomials listoftens listofvars listp lmax lmin load loadfile local locate_matrix_entry log logcontract log_gamma lopow lorentz_gauge lowercasep lpart lratsubst lreduce lriemann lsquares_estimates lsquares_estimates_approximate lsquares_estimates_exact lsquares_mse lsquares_residual_mse lsquares_residuals lsum ltreillis lu_backsub lucas lu_factor %m macroexpand macroexpand1 make_array makebox makefact makegamma make_graph make_level_picture makelist makeOrders make_poly_continent make_poly_country make_polygon make_random_state make_rgb_picture makeset make_string_input_stream make_string_output_stream make_transform mandelbrot mandelbrot_set map mapatom maplist matchdeclare matchfix mat_cond mat_fullunblocker mat_function mathml_display mat_norm matrix matrixmap matrixp matrix_size mattrace mat_trace mat_unblocker max max_clique max_degree max_flow maximize_lp max_independent_set max_matching maybe md5sum mean mean_bernoulli mean_beta mean_binomial mean_chi2 mean_continuous_uniform mean_deviation mean_discrete_uniform mean_exp mean_f mean_gamma mean_general_finite_discrete mean_geometric mean_gumbel mean_hypergeometric mean_laplace mean_logistic mean_lognormal mean_negative_binomial mean_noncentral_chi2 mean_noncentral_student_t mean_normal mean_pareto mean_poisson mean_rayleigh mean_student_t mean_weibull median median_deviation member mesh metricexpandall mgf1_sha1 min min_degree min_edge_cut minfactorial minimalPoly minimize_lp minimum_spanning_tree minor minpack_lsquares minpack_solve min_vertex_cover min_vertex_cut mkdir mnewton mod mode_declare mode_identity ModeMatrix moebius mon2schur mono monomial_dimensions multibernstein_poly multi_display_for_texinfo multi_elem multinomial multinomial_coeff multi_orbit multiplot_mode multi_pui multsym multthru mycielski_graph nary natural_unit nc_degree ncexpt ncharpoly negative_picture neighbors new newcontext newdet new_graph newline newton new_variable next_prime nicedummies niceindices ninth nofix nonarray noncentral_moment nonmetricity nonnegintegerp nonscalarp nonzeroandfreeof notequal nounify nptetrad npv nroots nterms ntermst nthroot nullity nullspace num numbered_boundaries numberp number_to_octets num_distinct_partitions numerval numfactor num_partitions nusum nzeta nzetai nzetar octets_to_number octets_to_oid odd_girth oddp ode2 ode_check odelin oid_to_octets op opena opena_binary openr openr_binary openw openw_binary operatorp opsubst optimize %or orbit orbits ordergreat ordergreatp orderless orderlessp orthogonal_complement orthopoly_recur orthopoly_weight outermap out_neighbors outofpois pade parabolic_cylinder_d parametric parametric_surface parg parGosper parse_string parse_timedate part part2cont partfrac partition partition_set partpol path_digraph path_graph pathname_directory pathname_name pathname_type pdf_bernoulli pdf_beta pdf_binomial pdf_cauchy pdf_chi2 pdf_continuous_uniform pdf_discrete_uniform pdf_exp pdf_f pdf_gamma pdf_general_finite_discrete pdf_geometric pdf_gumbel pdf_hypergeometric pdf_laplace pdf_logistic pdf_lognormal pdf_negative_binomial pdf_noncentral_chi2 pdf_noncentral_student_t pdf_normal pdf_pareto pdf_poisson pdf_rank_sum pdf_rayleigh pdf_signed_rank pdf_student_t pdf_weibull pearson_skewness permanent permut permutation permutations petersen_graph petrov pickapart picture_equalp picturep piechart piechart_description planar_embedding playback plog plot2d plot3d plotdf ploteq plsquares pochhammer points poisdiff poisexpt poisint poismap poisplus poissimp poissubst poistimes poistrim polar polarform polartorect polar_to_xy poly_add poly_buchberger poly_buchberger_criterion poly_colon_ideal poly_content polydecomp poly_depends_p poly_elimination_ideal poly_exact_divide poly_expand poly_expt poly_gcd polygon poly_grobner poly_grobner_equal poly_grobner_member poly_grobner_subsetp poly_ideal_intersection poly_ideal_polysaturation poly_ideal_polysaturation1 poly_ideal_saturation poly_ideal_saturation1 poly_lcm poly_minimization polymod poly_multiply polynome2ele polynomialp poly_normal_form poly_normalize poly_normalize_list poly_polysaturation_extension poly_primitive_part poly_pseudo_divide poly_reduced_grobner poly_reduction poly_saturation_extension poly_s_polynomial poly_subtract polytocompanion pop postfix potential power_mod powerseries powerset prefix prev_prime primep primes principal_components print printf printfile print_graph printpois printprops prodrac product properties propvars psi psubst ptriangularize pui pui2comp pui2ele pui2polynome pui_direct puireduc push put pv qput qrange qty quad_control quad_qag quad_qagi quad_qagp quad_qags quad_qawc quad_qawf quad_qawo quad_qaws quadrilateral quantile quantile_bernoulli quantile_beta quantile_binomial quantile_cauchy quantile_chi2 quantile_continuous_uniform quantile_discrete_uniform quantile_exp quantile_f quantile_gamma quantile_general_finite_discrete quantile_geometric quantile_gumbel quantile_hypergeometric quantile_laplace quantile_logistic quantile_lognormal quantile_negative_binomial quantile_noncentral_chi2 quantile_noncentral_student_t quantile_normal quantile_pareto quantile_poisson quantile_rayleigh quantile_student_t quantile_weibull quartile_skewness quit qunit quotient racah_v racah_w radcan radius random random_bernoulli random_beta random_binomial random_bipartite_graph random_cauchy random_chi2 random_continuous_uniform random_digraph random_discrete_uniform random_exp random_f random_gamma random_general_finite_discrete random_geometric random_graph random_graph1 random_gumbel random_hypergeometric random_laplace random_logistic random_lognormal random_negative_binomial random_network random_noncentral_chi2 random_noncentral_student_t random_normal random_pareto random_permutation random_poisson random_rayleigh random_regular_graph random_student_t random_tournament random_tree random_weibull range rank rat ratcoef ratdenom ratdiff ratdisrep ratexpand ratinterpol rational rationalize ratnumer ratnump ratp ratsimp ratsubst ratvars ratweight read read_array read_binary_array read_binary_list read_binary_matrix readbyte readchar read_hashed_array readline read_list read_matrix read_nested_list readonly read_xpm real_imagpart_to_conjugate realpart realroots rearray rectangle rectform rectform_log_if_constant recttopolar rediff reduce_consts reduce_order region region_boundaries region_boundaries_plus rem remainder remarray rembox remcomps remcon remcoord remfun remfunction remlet remove remove_constvalue remove_dimensions remove_edge remove_fundamental_dimensions remove_fundamental_units remove_plot_option remove_vertex rempart remrule remsym remvalue rename rename_file reset reset_displays residue resolvante resolvante_alternee1 resolvante_bipartite resolvante_diedrale resolvante_klein resolvante_klein3 resolvante_produit_sym resolvante_unitaire resolvante_vierer rest resultant return reveal reverse revert revert2 rgb2level rhs ricci riemann rinvariant risch rk rmdir rncombine romberg room rootscontract round row rowop rowswap rreduce run_testsuite %s save saving scalarp scaled_bessel_i scaled_bessel_i0 scaled_bessel_i1 scalefactors scanmap scatterplot scatterplot_description scene schur2comp sconcat scopy scsimp scurvature sdowncase sec sech second sequal sequalignore set_alt_display setdifference set_draw_defaults set_edge_weight setelmx setequalp setify setp set_partitions set_plot_option set_prompt set_random_state set_tex_environment set_tex_environment_default setunits setup_autoload set_up_dot_simplifications set_vertex_label seventh sexplode sf sha1sum sha256sum shortest_path shortest_weighted_path show showcomps showratvars sierpinskiale sierpinskimap sign signum similaritytransform simp_inequality simplify_sum simplode simpmetderiv simtran sin sinh sinsert sinvertcase sixth skewness skewness_bernoulli skewness_beta skewness_binomial skewness_chi2 skewness_continuous_uniform skewness_discrete_uniform skewness_exp skewness_f skewness_gamma skewness_general_finite_discrete skewness_geometric skewness_gumbel skewness_hypergeometric skewness_laplace skewness_logistic skewness_lognormal skewness_negative_binomial skewness_noncentral_chi2 skewness_noncentral_student_t skewness_normal skewness_pareto skewness_poisson skewness_rayleigh skewness_student_t skewness_weibull slength smake small_rhombicosidodecahedron_graph small_rhombicuboctahedron_graph smax smin smismatch snowmap snub_cube_graph snub_dodecahedron_graph solve solve_rec solve_rec_rat some somrac sort sparse6_decode sparse6_encode sparse6_export sparse6_import specint spherical spherical_bessel_j spherical_bessel_y spherical_hankel1 spherical_hankel2 spherical_harmonic spherical_to_xyz splice split sposition sprint sqfr sqrt sqrtdenest sremove sremovefirst sreverse ssearch ssort sstatus ssubst ssubstfirst staircase standardize standardize_inverse_trig starplot starplot_description status std std1 std_bernoulli std_beta std_binomial std_chi2 std_continuous_uniform std_discrete_uniform std_exp std_f std_gamma std_general_finite_discrete std_geometric std_gumbel std_hypergeometric std_laplace std_logistic std_lognormal std_negative_binomial std_noncentral_chi2 std_noncentral_student_t std_normal std_pareto std_poisson std_rayleigh std_student_t std_weibull stemplot stirling stirling1 stirling2 strim striml strimr string stringout stringp strong_components struve_h struve_l sublis sublist sublist_indices submatrix subsample subset subsetp subst substinpart subst_parallel substpart substring subvar subvarp sum sumcontract summand_to_rec supcase supcontext symbolp symmdifference symmetricp system take_channel take_inference tan tanh taylor taylorinfo taylorp taylor_simplifier taytorat tcl_output tcontract tellrat tellsimp tellsimpafter tentex tenth test_mean test_means_difference test_normality test_proportion test_proportions_difference test_rank_sum test_sign test_signed_rank test_variance test_variance_ratio tex tex1 tex_display texput %th third throw time timedate timer timer_info tldefint tlimit todd_coxeter toeplitz tokens to_lisp topological_sort to_poly to_poly_solve totaldisrep totalfourier totient tpartpol trace tracematrix trace_options transform_sample translate translate_file transpose treefale tree_reduce treillis treinat triangle triangularize trigexpand trigrat trigreduce trigsimp trunc truncate truncated_cube_graph truncated_dodecahedron_graph truncated_icosahedron_graph truncated_tetrahedron_graph tr_warnings_get tube tutte_graph ueivects uforget ultraspherical underlying_graph undiff union unique uniteigenvectors unitp units unit_step unitvector unorder unsum untellrat untimer untrace uppercasep uricci uriemann uvect vandermonde_matrix var var1 var_bernoulli var_beta var_binomial var_chi2 var_continuous_uniform var_discrete_uniform var_exp var_f var_gamma var_general_finite_discrete var_geometric var_gumbel var_hypergeometric var_laplace var_logistic var_lognormal var_negative_binomial var_noncentral_chi2 var_noncentral_student_t var_normal var_pareto var_poisson var_rayleigh var_student_t var_weibull vector vectorpotential vectorsimp verbify vers vertex_coloring vertex_connectivity vertex_degree vertex_distance vertex_eccentricity vertex_in_degree vertex_out_degree vertices vertices_to_cycle vertices_to_path %w weyl wheel_graph wiener_index wigner_3j wigner_6j wigner_9j with_stdout write_binary_data writebyte write_data writefile wronskian xreduce xthru %y Zeilberger zeroequiv zerofor zeromatrix zeromatrixp zeta zgeev zheev zlange zn_add_table zn_carmichael_lambda zn_characteristic_factors zn_determinant zn_factor_generators zn_invert_by_lu zn_log zn_mult_table absboxchar activecontexts adapt_depth additive adim aform algebraic algepsilon algexact aliases allbut all_dotsimp_denoms allocation allsym alphabetic animation antisymmetric arrays askexp assume_pos assume_pos_pred assumescalar asymbol atomgrad atrig1 axes axis_3d axis_bottom axis_left axis_right axis_top azimuth background background_color backsubst berlefact bernstein_explicit besselexpand beta_args_sum_to_integer beta_expand bftorat bftrunc bindtest border boundaries_array box boxchar breakup %c capping cauchysum cbrange cbtics center cflength cframe_flag cnonmet_flag color color_bar color_bar_tics colorbox columns commutative complex cone context contexts contour contour_levels cosnpiflag ctaypov ctaypt ctayswitch ctayvar ct_coords ctorsion_flag ctrgsimp cube current_let_rule_package cylinder data_file_name debugmode decreasing default_let_rule_package delay dependencies derivabbrev derivsubst detout diagmetric diff dim dimensions dispflag display2d|10 display_format_internal distribute_over doallmxops domain domxexpt domxmxops domxnctimes dontfactor doscmxops doscmxplus dot0nscsimp dot0simp dot1simp dotassoc dotconstrules dotdistrib dotexptsimp dotident dotscrules draw_graph_program draw_realpart edge_color edge_coloring edge_partition edge_type edge_width %edispflag elevation %emode endphi endtheta engineering_format_floats enhanced3d %enumer epsilon_lp erfflag erf_representation errormsg error_size error_syms error_type %e_to_numlog eval even evenfun evflag evfun ev_point expandwrt_denom expintexpand expintrep expon expop exptdispflag exptisolate exptsubst facexpand facsum_combine factlim factorflag factorial_expand factors_only fb feature features file_name file_output_append file_search_demo file_search_lisp file_search_maxima|10 file_search_tests file_search_usage file_type_lisp file_type_maxima|10 fill_color fill_density filled_func fixed_vertices flipflag float2bf font font_size fortindent fortspaces fpprec fpprintprec functions gamma_expand gammalim gdet genindex gensumnum GGFCFMAX GGFINFINITY globalsolve gnuplot_command gnuplot_curve_styles gnuplot_curve_titles gnuplot_default_term_command gnuplot_dumb_term_command gnuplot_file_args gnuplot_file_name gnuplot_out_file gnuplot_pdf_term_command gnuplot_pm3d gnuplot_png_term_command gnuplot_postamble gnuplot_preamble gnuplot_ps_term_command gnuplot_svg_term_command gnuplot_term gnuplot_view_args Gosper_in_Zeilberger gradefs grid grid2d grind halfangles head_angle head_both head_length head_type height hypergeometric_representation %iargs ibase icc1 icc2 icounter idummyx ieqnprint ifb ifc1 ifc2 ifg ifgi ifr iframe_bracket_form ifri igeowedge_flag ikt1 ikt2 imaginary inchar increasing infeval infinity inflag infolists inm inmc1 inmc2 intanalysis integer integervalued integrate_use_rootsof integration_constant integration_constant_counter interpolate_color intfaclim ip_grid ip_grid_in irrational isolate_wrt_times iterations itr julia_parameter %k1 %k2 keepfloat key key_pos kinvariant kt label label_alignment label_orientation labels lassociative lbfgs_ncorrections lbfgs_nfeval_max leftjust legend letrat let_rule_packages lfg lg lhospitallim limsubst linear linear_solver linechar linel|10 linenum line_type linewidth line_width linsolve_params linsolvewarn lispdisp listarith listconstvars listdummyvars lmxchar load_pathname loadprint logabs logarc logcb logconcoeffp logexpand lognegint logsimp logx logx_secondary logy logy_secondary logz lriem m1pbranch macroexpansion macros mainvar manual_demo maperror mapprint matrix_element_add matrix_element_mult matrix_element_transpose maxapplydepth maxapplyheight maxima_tempdir|10 maxima_userdir|10 maxnegex MAX_ORD maxposex maxpsifracdenom maxpsifracnum maxpsinegint maxpsiposint maxtayorder mesh_lines_color method mod_big_prime mode_check_errorp mode_checkp mode_check_warnp mod_test mod_threshold modular_linear_solver modulus multiplicative multiplicities myoptions nary negdistrib negsumdispflag newline newtonepsilon newtonmaxiter nextlayerfactor niceindicespref nm nmc noeval nolabels nonegative_lp noninteger nonscalar noun noundisp nouns np npi nticks ntrig numer numer_pbranch obase odd oddfun opacity opproperties opsubst optimprefix optionset orientation origin orthopoly_returns_intervals outative outchar packagefile palette partswitch pdf_file pfeformat phiresolution %piargs piece pivot_count_sx pivot_max_sx plot_format plot_options plot_realpart png_file pochhammer_max_index points pointsize point_size points_joined point_type poislim poisson poly_coefficient_ring poly_elimination_order polyfactor poly_grobner_algorithm poly_grobner_debug poly_monomial_order poly_primary_elimination_order poly_return_term_list poly_secondary_elimination_order poly_top_reduction_only posfun position powerdisp pred prederror primep_number_of_tests product_use_gamma program programmode promote_float_to_bigfloat prompt proportional_axes props psexpand ps_file radexpand radius radsubstflag rassociative ratalgdenom ratchristof ratdenomdivide rateinstein ratepsilon ratfac rational ratmx ratprint ratriemann ratsimpexpons ratvarswitch ratweights ratweyl ratwtlvl real realonly redraw refcheck resolution restart resultant ric riem rmxchar %rnum_list rombergabs rombergit rombergmin rombergtol rootsconmode rootsepsilon run_viewer same_xy same_xyz savedef savefactors scalar scalarmatrixp scale scale_lp setcheck setcheckbreak setval show_edge_color show_edges show_edge_type show_edge_width show_id show_label showtime show_vertex_color show_vertex_size show_vertex_type show_vertices show_weight simp simplified_output simplify_products simpproduct simpsum sinnpiflag solvedecomposes solveexplicit solvefactors solvenullwarn solveradcan solvetrigwarn space sparse sphere spring_embedding_depth sqrtdispflag stardisp startphi starttheta stats_numer stringdisp structures style sublis_apply_lambda subnumsimp sumexpand sumsplitfact surface surface_hide svg_file symmetric tab taylordepth taylor_logexpand taylor_order_coefficients taylor_truncate_polynomials tensorkill terminal testsuite_files thetaresolution timer_devalue title tlimswitch tr track transcompile transform transform_xy translate_fast_arrays transparent transrun tr_array_as_ref tr_bound_function_applyp tr_file_tty_messagesp tr_float_can_branch_complex tr_function_call_default trigexpandplus trigexpandtimes triginverses trigsign trivial_solutions tr_numer tr_optimize_max_loop tr_semicompile tr_state_vars tr_warn_bad_function_calls tr_warn_fexpr tr_warn_meval tr_warn_mode tr_warn_undeclared tr_warn_undefined_variable tstep ttyoff tube_extremes ufg ug %unitexpand unit_vectors uric uriem use_fast_arrays user_preamble usersetunits values vect_cross verbose vertex_color vertex_coloring vertex_partition vertex_size vertex_type view warnings weyl width windowname windowtitle wired_surface wireframe xaxis xaxis_color xaxis_secondary xaxis_type xaxis_width xlabel xlabel_secondary xlength xrange xrange_secondary xtics xtics_axis xtics_rotate xtics_rotate_secondary xtics_secondary xtics_secondary_axis xu_grid x_voxel xy_file xyplane xy_scale yaxis yaxis_color yaxis_secondary yaxis_type yaxis_width ylabel ylabel_secondary ylength yrange yrange_secondary ytics ytics_axis ytics_rotate ytics_rotate_secondary ytics_secondary ytics_secondary_axis yv_grid y_voxel yx_ratio zaxis zaxis_color zaxis_type zaxis_width zeroa zerob zerobern zeta%pi zlabel zlabel_rotate zlength zmin zn_primroot_limit zn_primroot_pretest", +symbol:"_ __ %|0 %%|0"},contains:[{className:"comment",begin:"/\\*",end:"\\*/", +contains:["self"]},e.QUOTE_STRING_MODE,{className:"number",relevance:0, +variants:[{begin:"\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Ee][-+]?\\d+\\b"},{ +begin:"\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Bb][-+]?\\d+\\b",relevance:10},{ +begin:"\\b(\\.\\d+|\\d+\\.\\d+)\\b"},{begin:"\\b(\\d+|0[0-9A-Za-z]+)\\.?\\b"}] +}],illegal:/@/})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/mel.min.js b/src/app/resources/assets/highlight/es/languages/mel.min.js new file mode 100644 index 0000000..1925812 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/mel.min.js @@ -0,0 +1,8 @@ +/*! `mel` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"MEL", +keywords:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform", +illegal:"{"use strict";return e=>{ +const i=e.COMMENT("%","$"),n=e.inherit(e.APOS_STRING_MODE,{relevance:0 +}),r=e.inherit(e.QUOTE_STRING_MODE,{relevance:0}) +;return r.contains=r.contains.slice(),r.contains.push({className:"subst", +begin:"\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]", +relevance:0}),{name:"Mercury",aliases:["m","moo"],keywords:{ +keyword:"module use_module import_module include_module end_module initialise mutable initialize finalize finalise interface implementation pred mode func type inst solver any_pred any_func is semidet det nondet multi erroneous failure cc_nondet cc_multi typeclass instance where pragma promise external trace atomic or_else require_complete_switch require_det require_semidet require_multi require_nondet require_cc_multi require_cc_nondet require_erroneous require_failure", +meta:"inline no_inline type_spec source_file fact_table obsolete memo loop_check minimal_model terminates does_not_terminate check_termination promise_equivalent_clauses foreign_proc foreign_decl foreign_code foreign_type foreign_import_module foreign_export_enum foreign_export foreign_enum may_call_mercury will_not_call_mercury thread_safe not_thread_safe maybe_thread_safe promise_pure promise_semipure tabled_for_io local untrailed trailed attach_to_io_state can_pass_as_mercury_type stable will_not_throw_exception may_modify_trail will_not_modify_trail may_duplicate may_not_duplicate affects_liveness does_not_affect_liveness doesnt_affect_liveness no_sharing unknown_sharing sharing", +built_in:"some all not if then else true fail false try catch catch_any semidet_true semidet_false semidet_fail impure_true impure semipure" +},contains:[{className:"built_in",variants:[{begin:"<=>"},{begin:"<=", +relevance:0},{begin:"=>",relevance:0},{begin:"/\\\\"},{begin:"\\\\/"}]},{ +className:"built_in",variants:[{begin:":-\\|--\x3e"},{begin:"=",relevance:0}] +},i,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"0'.\\|0[box][0-9a-fA-F]*" +},e.NUMBER_MODE,n,r,{begin:/:-/},{begin:/\.$/}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/mipsasm.min.js b/src/app/resources/assets/highlight/es/languages/mipsasm.min.js new file mode 100644 index 0000000..2b0d81f --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/mipsasm.min.js @@ -0,0 +1,15 @@ +/*! `mipsasm` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"MIPS Assembly", +case_insensitive:!0,aliases:["mips"],keywords:{$pattern:"\\.?"+e.IDENT_RE, +meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .ltorg ", +built_in:"$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 k0 k1 gp sp fp ra $f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 $f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt " +},contains:[{className:"keyword", +begin:"\\b(addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\\.hb)?|jr(\\.hb)?|lbu?|lhu?|ll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|move|msubu?|mthi|mtlo|mul|multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|srlv?|subu?|sw[lr]?|xori?|wsbh|abs\\.[sd]|add\\.[sd]|alnv.ps|bc1[ft]l?|c\\.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\\.[sd]|(ceil|floor|round|trunc)\\.[lw]\\.[sd]|cfc1|cvt\\.d\\.[lsw]|cvt\\.l\\.[dsw]|cvt\\.ps\\.s|cvt\\.s\\.[dlw]|cvt\\.s\\.p[lu]|cvt\\.w\\.[dls]|div\\.[ds]|ldx?c1|luxc1|lwx?c1|madd\\.[sd]|mfc1|mov[fntz]?\\.[ds]|msub\\.[sd]|mth?c1|mul\\.[ds]|neg\\.[ds]|nmadd\\.[ds]|nmsub\\.[ds]|p[lu][lu]\\.ps|recip\\.fmt|r?sqrt\\.[ds]|sdx?c1|sub\\.[ds]|suxc1|swx?c1|break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|tlti?u?|tnei?|wait|wrpgpr)", +end:"\\s" +},e.COMMENT("[;#](?!\\s*$)","$"),e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,{ +className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title", +begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{ +begin:"0x[0-9a-f]+"},{begin:"\\b-?\\d+"}],relevance:0},{className:"symbol", +variants:[{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^\\s*[0-9]+:"},{ +begin:"[0-9]+[bf]"}],relevance:0}],illegal:/\//})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/mizar.min.js b/src/app/resources/assets/highlight/es/languages/mizar.min.js new file mode 100644 index 0000000..2605292 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/mizar.min.js @@ -0,0 +1,4 @@ +/*! `mizar` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Mizar", +keywords:"environ vocabularies notations constructors definitions registrations theorems schemes requirements begin end definition registration cluster existence pred func defpred deffunc theorem proof let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from be being by means equals implies iff redefine define now not or attr is mode suppose per cases set thesis contradiction scheme reserve struct correctness compatibility coherence symmetry assymetry reflexivity irreflexivity connectedness uniqueness commutativity idempotence involutiveness projectivity", +contains:[e.COMMENT("::","$")]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/mojolicious.min.js b/src/app/resources/assets/highlight/es/languages/mojolicious.min.js new file mode 100644 index 0000000..afe68fb --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/mojolicious.min.js @@ -0,0 +1,6 @@ +/*! `mojolicious` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Mojolicious", +subLanguage:"xml",contains:[{className:"meta",begin:"^__(END|DATA)__$"},{ +begin:"^\\s*%{1,2}={0,2}",end:"$",subLanguage:"perl"},{begin:"<%{1,2}={0,2}", +end:"={0,1}%>",subLanguage:"perl",excludeBegin:!0,excludeEnd:!0}]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/monkey.min.js b/src/app/resources/assets/highlight/es/languages/monkey.min.js new file mode 100644 index 0000000..3b6fb27 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/monkey.min.js @@ -0,0 +1,17 @@ +/*! `monkey` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n={className:"number", +relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},e.NUMBER_MODE]},a={variants:[{ +match:[/(function|method)/,/\s+/,e.UNDERSCORE_IDENT_RE]}],scope:{1:"keyword", +3:"title.function"}},r={variants:[{ +match:[/(class|interface|extends|implements)/,/\s+/,e.UNDERSCORE_IDENT_RE]}], +scope:{1:"keyword",3:"title.class"}};return{name:"Monkey",case_insensitive:!0, +keywords:{ +keyword:["public","private","property","continue","exit","extern","new","try","catch","eachin","not","abstract","final","select","case","default","const","local","global","field","end","if","then","else","elseif","endif","while","wend","repeat","until","forever","for","to","step","next","return","module","inline","throw","import","and","or","shl","shr","mod"], +built_in:["DebugLog","DebugStop","Error","Print","ACos","ACosr","ASin","ASinr","ATan","ATan2","ATan2r","ATanr","Abs","Abs","Ceil","Clamp","Clamp","Cos","Cosr","Exp","Floor","Log","Max","Max","Min","Min","Pow","Sgn","Sgn","Sin","Sinr","Sqrt","Tan","Tanr","Seed","PI","HALFPI","TWOPI"], +literal:["true","false","null"]},illegal:/\/\*/, +contains:[e.COMMENT("#rem","#end"),e.COMMENT("'","$",{relevance:0}),a,r,{ +className:"variable.language",begin:/\b(self|super)\b/},{className:"meta", +begin:/\s*#/,end:"$",keywords:{keyword:"if else elseif endif end then"}},{ +match:[/^\s*/,/strict\b/],scope:{2:"meta"}},{beginKeywords:"alias",end:"=", +contains:[e.UNDERSCORE_TITLE_MODE]},e.QUOTE_STRING_MODE,n]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/moonscript.min.js b/src/app/resources/assets/highlight/es/languages/moonscript.min.js new file mode 100644 index 0000000..6b5c796 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/moonscript.min.js @@ -0,0 +1,23 @@ +/*! `moonscript` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n={ +keyword:"if then not for in while do return else elseif break continue switch and or unless when class extends super local import export from using", +literal:"true false nil", +built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table" +},a="[A-Za-z$_][0-9A-Za-z$_]*",s={className:"subst",begin:/#\{/,end:/\}/, +keywords:n},t=[e.inherit(e.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0} +}),{className:"string",variants:[{begin:/'/,end:/'/, +contains:[e.BACKSLASH_ESCAPE]},{begin:/"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,s]}]},{className:"built_in",begin:"@__"+e.IDENT_RE +},{begin:"@"+e.IDENT_RE},{begin:e.IDENT_RE+"\\\\"+e.IDENT_RE}];s.contains=t +;const i=e.inherit(e.TITLE_MODE,{begin:a}),r="(\\(.*\\)\\s*)?\\B[-=]>",l={ +className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/, +end:/\)/,keywords:n,contains:["self"].concat(t)}]};return{name:"MoonScript", +aliases:["moon"],keywords:n,illegal:/\/\*/, +contains:t.concat([e.COMMENT("--","$"),{className:"function", +begin:"^\\s*"+a+"\\s*=\\s*"+r,end:"[-=]>",returnBegin:!0,contains:[i,l]},{ +begin:/[\(,:=]\s*/,relevance:0,contains:[{className:"function",begin:r, +end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class", +beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{ +beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[i]},i] +},{className:"name",begin:a+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0 +}])}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/n1ql.min.js b/src/app/resources/assets/highlight/es/languages/n1ql.min.js new file mode 100644 index 0000000..cccf5d5 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/n1ql.min.js @@ -0,0 +1,13 @@ +/*! `n1ql` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"N1QL",case_insensitive:!0, +contains:[{ +beginKeywords:"build create index delete drop explain infer|10 insert merge prepare select update upsert|10", +end:/;/,keywords:{ +keyword:["all","alter","analyze","and","any","array","as","asc","begin","between","binary","boolean","break","bucket","build","by","call","case","cast","cluster","collate","collection","commit","connect","continue","correlate","cover","create","database","dataset","datastore","declare","decrement","delete","derived","desc","describe","distinct","do","drop","each","element","else","end","every","except","exclude","execute","exists","explain","fetch","first","flatten","for","force","from","function","grant","group","gsi","having","if","ignore","ilike","in","include","increment","index","infer","inline","inner","insert","intersect","into","is","join","key","keys","keyspace","known","last","left","let","letting","like","limit","lsm","map","mapping","matched","materialized","merge","minus","namespace","nest","not","number","object","offset","on","option","or","order","outer","over","parse","partition","password","path","pool","prepare","primary","private","privilege","procedure","public","raw","realm","reduce","rename","return","returning","revoke","right","role","rollback","satisfies","schema","select","self","semi","set","show","some","start","statistics","string","system","then","to","transaction","trigger","truncate","under","union","unique","unknown","unnest","unset","update","upsert","use","user","using","validate","value","valued","values","via","view","when","where","while","with","within","work","xor"], +literal:["true","false","null","missing|5"], +built_in:["array_agg","array_append","array_concat","array_contains","array_count","array_distinct","array_ifnull","array_length","array_max","array_min","array_position","array_prepend","array_put","array_range","array_remove","array_repeat","array_replace","array_reverse","array_sort","array_sum","avg","count","max","min","sum","greatest","least","ifmissing","ifmissingornull","ifnull","missingif","nullif","ifinf","ifnan","ifnanorinf","naninf","neginfif","posinfif","clock_millis","clock_str","date_add_millis","date_add_str","date_diff_millis","date_diff_str","date_part_millis","date_part_str","date_trunc_millis","date_trunc_str","duration_to_str","millis","str_to_millis","millis_to_str","millis_to_utc","millis_to_zone_name","now_millis","now_str","str_to_duration","str_to_utc","str_to_zone_name","decode_json","encode_json","encoded_size","poly_length","base64","base64_encode","base64_decode","meta","uuid","abs","acos","asin","atan","atan2","ceil","cos","degrees","e","exp","ln","log","floor","pi","power","radians","random","round","sign","sin","sqrt","tan","trunc","object_length","object_names","object_pairs","object_inner_pairs","object_values","object_inner_values","object_add","object_put","object_remove","object_unwrap","regexp_contains","regexp_like","regexp_position","regexp_replace","contains","initcap","length","lower","ltrim","position","repeat","replace","rtrim","split","substr","title","trim","upper","isarray","isatom","isboolean","isnumber","isobject","isstring","type","toarray","toatom","toboolean","tonumber","toobject","tostring"] +},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE] +},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{ +className:"symbol",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE] +},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/nestedtext.min.js b/src/app/resources/assets/highlight/es/languages/nestedtext.min.js new file mode 100644 index 0000000..a763f4d --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/nestedtext.min.js @@ -0,0 +1,9 @@ +/*! `nestedtext` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return t=>({name:"Nested Text", +aliases:["nt"],contains:[t.inherit(t.HASH_COMMENT_MODE,{begin:/^\s*(?=#)/, +excludeBegin:!0}),{variants:[{match:[/^\s*/,/-/,/[ ]/,/.*$/]},{ +match:[/^\s*/,/-$/]}],className:{2:"bullet",4:"string"}},{ +match:[/^\s*/,/>/,/[ ]/,/.*$/],className:{2:"punctuation",4:"string"}},{ +match:[/^\s*(?=\S)/,/[^:]+/,/:\s*/,/$/],className:{2:"attribute",3:"punctuation" +}},{match:[/^\s*(?=\S)/,/[^:]*[^: ]/,/[ ]*:/,/[ ]/,/.*$/],className:{ +2:"attribute",3:"punctuation",5:"string"}}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/nginx.min.js b/src/app/resources/assets/highlight/es/languages/nginx.min.js new file mode 100644 index 0000000..6487128 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/nginx.min.js @@ -0,0 +1,21 @@ +/*! `nginx` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n=e.regex,a={ +className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{\w+\}/},{ +begin:n.concat(/[$@]/,e.UNDERSCORE_IDENT_RE)}]},s={endsWithParent:!0,keywords:{ +$pattern:/[a-z_]{2,}|\/dev\/poll/, +literal:["on","off","yes","no","true","false","none","blocked","debug","info","notice","warn","error","crit","select","break","last","permanent","redirect","kqueue","rtsig","epoll","poll","/dev/poll"] +},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string", +contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/ +}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[a] +},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:"\\s\\^", +end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{ +begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number", +begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{ +className:"number",begin:"\\b\\d+[kKmMgGdshdwy]?\\b",relevance:0},a]};return{ +name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{ +beginKeywords:"upstream location",end:/;|\{/,contains:s.contains,keywords:{ +section:"upstream location"}},{className:"section", +begin:n.concat(e.UNDERSCORE_IDENT_RE+n.lookahead(/\s+\{/)),relevance:0},{ +begin:n.lookahead(e.UNDERSCORE_IDENT_RE+"\\s"),end:";|\\{",contains:[{ +className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:s}],relevance:0}], +illegal:"[^\\s\\}\\{]"}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/nim.min.js b/src/app/resources/assets/highlight/es/languages/nim.min.js new file mode 100644 index 0000000..a502cb1 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/nim.min.js @@ -0,0 +1,15 @@ +/*! `nim` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Nim",keywords:{ +keyword:["addr","and","as","asm","bind","block","break","case","cast","const","continue","converter","discard","distinct","div","do","elif","else","end","enum","except","export","finally","for","from","func","generic","guarded","if","import","in","include","interface","is","isnot","iterator","let","macro","method","mixin","mod","nil","not","notin","object","of","or","out","proc","ptr","raise","ref","return","shared","shl","shr","static","template","try","tuple","type","using","var","when","while","with","without","xor","yield"], +literal:["true","false"], +type:["int","int8","int16","int32","int64","uint","uint8","uint16","uint32","uint64","float","float32","float64","bool","char","string","cstring","pointer","expr","stmt","void","auto","any","range","array","openarray","varargs","seq","set","clong","culong","cchar","cschar","cshort","cint","csize","clonglong","cfloat","cdouble","clongdouble","cuchar","cushort","cuint","culonglong","cstringarray","semistatic"], +built_in:["stdin","stdout","stderr","result"]},contains:[{className:"meta", +begin:/\{\./,end:/\.\}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/, +end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/, +end:/"""/},e.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/, +relevance:0},{className:"number",relevance:0,variants:[{ +begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},{ +begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},{ +begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},{ +begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}]},e.HASH_COMMENT_MODE]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/nix.min.js b/src/app/resources/assets/highlight/es/languages/nix.min.js new file mode 100644 index 0000000..d5d7e62 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/nix.min.js @@ -0,0 +1,12 @@ +/*! `nix` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a={ +keyword:["rec","with","let","in","inherit","assert","if","else","then"], +literal:["true","false","or","and","null"], +built_in:["import","abort","baseNameOf","dirOf","isNull","builtins","map","removeAttrs","throw","toString","derivation"] +},n={className:"subst",begin:/\$\{/,end:/\}/,keywords:a},r={className:"string", +contains:[{className:"char.escape",begin:/''\$/},n],variants:[{begin:"''", +end:"''"},{begin:'"',end:'"'}] +},s=[e.NUMBER_MODE,e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,{ +begin:/[a-zA-Z0-9-_]+(\s*=)/,returnBegin:!0,relevance:0,contains:[{ +className:"attr",begin:/\S+/,relevance:.2}]}];return n.contains=s,{name:"Nix", +aliases:["nixos"],keywords:a,contains:s}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/node-repl.min.js b/src/app/resources/assets/highlight/es/languages/node-repl.min.js new file mode 100644 index 0000000..93d3757 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/node-repl.min.js @@ -0,0 +1,5 @@ +/*! `node-repl` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return a=>({name:"Node REPL",contains:[{ +className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$", +subLanguage:"javascript"}},variants:[{begin:/^>(?=[ ]|$)/},{ +begin:/^\.\.\.(?=[ ]|$)/}]}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/nsis.min.js b/src/app/resources/assets/highlight/es/languages/nsis.min.js new file mode 100644 index 0000000..2042b72 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/nsis.min.js @@ -0,0 +1,23 @@ +/*! `nsis` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const t=e.regex,n={ +className:"variable.constant", +begin:t.concat(/\$/,t.either("ADMINTOOLS","APPDATA","CDBURN_AREA","CMDLINE","COMMONFILES32","COMMONFILES64","COMMONFILES","COOKIES","DESKTOP","DOCUMENTS","EXEDIR","EXEFILE","EXEPATH","FAVORITES","FONTS","HISTORY","HWNDPARENT","INSTDIR","INTERNET_CACHE","LANGUAGE","LOCALAPPDATA","MUSIC","NETHOOD","OUTDIR","PICTURES","PLUGINSDIR","PRINTHOOD","PROFILE","PROGRAMFILES32","PROGRAMFILES64","PROGRAMFILES","QUICKLAUNCH","RECENT","RESOURCES_LOCALIZED","RESOURCES","SENDTO","SMPROGRAMS","SMSTARTUP","STARTMENU","SYSDIR","TEMP","TEMPLATES","VIDEOS","WINDIR")) +},i={className:"variable",begin:/\$+\{[\!\w.:-]+\}/},r={className:"variable", +begin:/\$+\w[\w\.]*/,illegal:/\(\)\{\}/},a={className:"variable", +begin:/\$+\([\w^.:!-]+\)/},l={className:"params", +begin:t.either("ARCHIVE","FILE_ATTRIBUTE_ARCHIVE","FILE_ATTRIBUTE_NORMAL","FILE_ATTRIBUTE_OFFLINE","FILE_ATTRIBUTE_READONLY","FILE_ATTRIBUTE_SYSTEM","FILE_ATTRIBUTE_TEMPORARY","HKCR","HKCU","HKDD","HKEY_CLASSES_ROOT","HKEY_CURRENT_CONFIG","HKEY_CURRENT_USER","HKEY_DYN_DATA","HKEY_LOCAL_MACHINE","HKEY_PERFORMANCE_DATA","HKEY_USERS","HKLM","HKPD","HKU","IDABORT","IDCANCEL","IDIGNORE","IDNO","IDOK","IDRETRY","IDYES","MB_ABORTRETRYIGNORE","MB_DEFBUTTON1","MB_DEFBUTTON2","MB_DEFBUTTON3","MB_DEFBUTTON4","MB_ICONEXCLAMATION","MB_ICONINFORMATION","MB_ICONQUESTION","MB_ICONSTOP","MB_OK","MB_OKCANCEL","MB_RETRYCANCEL","MB_RIGHT","MB_RTLREADING","MB_SETFOREGROUND","MB_TOPMOST","MB_USERICON","MB_YESNO","NORMAL","OFFLINE","READONLY","SHCTX","SHELL_CONTEXT","SYSTEM|TEMPORARY") +},o={className:"keyword", +begin:t.concat(/!/,t.either("addincludedir","addplugindir","appendfile","cd","define","delfile","echo","else","endif","error","execute","finalize","getdllversion","gettlbversion","if","ifdef","ifmacrodef","ifmacrondef","ifndef","include","insertmacro","macro","macroend","makensis","packhdr","searchparse","searchreplace","system","tempfile","undef","uninstfinalize","verbose","warning")) +},s={className:"string",variants:[{begin:'"',end:'"'},{begin:"'",end:"'"},{ +begin:"`",end:"`"}],illegal:/\n/,contains:[{className:"char.escape", +begin:/\$(\\[nrt]|\$)/},n,i,r,a]},S={ +match:[/Function/,/\s+/,t.concat(/(\.)?/,e.IDENT_RE)],scope:{1:"keyword", +3:"title.function"}};return{name:"NSIS",case_insensitive:!0,keywords:{ +keyword:["Abort","AddBrandingImage","AddSize","AllowRootDirInstall","AllowSkipFiles","AutoCloseWindow","BGFont","BGGradient","BrandingText","BringToFront","Call","CallInstDLL","Caption","ChangeUI","CheckBitmap","ClearErrors","CompletedText","ComponentText","CopyFiles","CRCCheck","CreateDirectory","CreateFont","CreateShortCut","Delete","DeleteINISec","DeleteINIStr","DeleteRegKey","DeleteRegValue","DetailPrint","DetailsButtonText","DirText","DirVar","DirVerify","EnableWindow","EnumRegKey","EnumRegValue","Exch","Exec","ExecShell","ExecShellWait","ExecWait","ExpandEnvStrings","File","FileBufSize","FileClose","FileErrorText","FileOpen","FileRead","FileReadByte","FileReadUTF16LE","FileReadWord","FileWriteUTF16LE","FileSeek","FileWrite","FileWriteByte","FileWriteWord","FindClose","FindFirst","FindNext","FindWindow","FlushINI","GetCurInstType","GetCurrentAddress","GetDlgItem","GetDLLVersion","GetDLLVersionLocal","GetErrorLevel","GetFileTime","GetFileTimeLocal","GetFullPathName","GetFunctionAddress","GetInstDirError","GetKnownFolderPath","GetLabelAddress","GetTempFileName","GetWinVer","Goto","HideWindow","Icon","IfAbort","IfErrors","IfFileExists","IfRebootFlag","IfRtlLanguage","IfShellVarContextAll","IfSilent","InitPluginsDir","InstallButtonText","InstallColors","InstallDir","InstallDirRegKey","InstProgressFlags","InstType","InstTypeGetText","InstTypeSetText","Int64Cmp","Int64CmpU","Int64Fmt","IntCmp","IntCmpU","IntFmt","IntOp","IntPtrCmp","IntPtrCmpU","IntPtrOp","IsWindow","LangString","LicenseBkColor","LicenseData","LicenseForceSelection","LicenseLangString","LicenseText","LoadAndSetImage","LoadLanguageFile","LockWindow","LogSet","LogText","ManifestDPIAware","ManifestLongPathAware","ManifestMaxVersionTested","ManifestSupportedOS","MessageBox","MiscButtonText","Name|0","Nop","OutFile","Page","PageCallbacks","PEAddResource","PEDllCharacteristics","PERemoveResource","PESubsysVer","Pop","Push","Quit","ReadEnvStr","ReadINIStr","ReadRegDWORD","ReadRegStr","Reboot","RegDLL","Rename","RequestExecutionLevel","ReserveFile","Return","RMDir","SearchPath","SectionGetFlags","SectionGetInstTypes","SectionGetSize","SectionGetText","SectionIn","SectionSetFlags","SectionSetInstTypes","SectionSetSize","SectionSetText","SendMessage","SetAutoClose","SetBrandingImage","SetCompress","SetCompressor","SetCompressorDictSize","SetCtlColors","SetCurInstType","SetDatablockOptimize","SetDateSave","SetDetailsPrint","SetDetailsView","SetErrorLevel","SetErrors","SetFileAttributes","SetFont","SetOutPath","SetOverwrite","SetRebootFlag","SetRegView","SetShellVarContext","SetSilent","ShowInstDetails","ShowUninstDetails","ShowWindow","SilentInstall","SilentUnInstall","Sleep","SpaceTexts","StrCmp","StrCmpS","StrCpy","StrLen","SubCaption","Unicode","UninstallButtonText","UninstallCaption","UninstallIcon","UninstallSubCaption","UninstallText","UninstPage","UnRegDLL","Var","VIAddVersionKey","VIFileVersion","VIProductVersion","WindowIcon","WriteINIStr","WriteRegBin","WriteRegDWORD","WriteRegExpandStr","WriteRegMultiStr","WriteRegNone","WriteRegStr","WriteUninstaller","XPStyle"], +literal:["admin","all","auto","both","bottom","bzip2","colored","components","current","custom","directory","false","force","hide","highest","ifdiff","ifnewer","instfiles","lastused","leave","left","license","listonly","lzma","nevershow","none","normal","notset","off","on","open","print","right","show","silent","silentlog","smooth","textonly","top","true","try","un.components","un.custom","un.directory","un.instfiles","un.license","uninstConfirm","user","Win10","Win7","Win8","WinVista","zlib"] +},contains:[e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{ +relevance:0}),{match:[/Var/,/\s+/,/(?:\/GLOBAL\s+)?/,/[A-Za-z][\w.]*/],scope:{ +1:"keyword",3:"params",4:"variable"}},S,{ +beginKeywords:"Function PageEx Section SectionGroup FunctionEnd SectionEnd" +},s,o,i,r,a,l,{className:"title.function",begin:/\w+::\w+/},e.NUMBER_MODE]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/objectivec.min.js b/src/app/resources/assets/highlight/es/languages/objectivec.min.js new file mode 100644 index 0000000..0b62c32 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/objectivec.min.js @@ -0,0 +1,23 @@ +/*! `objectivec` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const _=/[a-zA-Z@][a-zA-Z0-9_]*/,n={$pattern:_, +keyword:["@interface","@class","@protocol","@implementation"]};return{ +name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"], +keywords:{"variable.language":["this","super"],$pattern:_, +keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"], +literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"], +built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"], +type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"] +},illegal:"/,end:/$/,illegal:"\\n" +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class", +begin:"("+n.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:n, +contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE, +relevance:0}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/ocaml.min.js b/src/app/resources/assets/highlight/es/languages/ocaml.min.js new file mode 100644 index 0000000..c2f8887 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/ocaml.min.js @@ -0,0 +1,14 @@ +/*! `ocaml` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"OCaml",aliases:["ml"], +keywords:{$pattern:"[a-z_]\\w*!?", +keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value", +built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref", +literal:"true false"},illegal:/\/\/|>>/,contains:[{className:"literal", +begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},e.COMMENT("\\(\\*","\\*\\)",{ +contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{ +className:"type",begin:"`[A-Z][\\w']*"},{className:"type", +begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*",relevance:0 +},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0 +}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number", +begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)", +relevance:0},{begin:/->/}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/openscad.min.js b/src/app/resources/assets/highlight/es/languages/openscad.min.js new file mode 100644 index 0000000..6ea6deb --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/openscad.min.js @@ -0,0 +1,15 @@ +/*! `openscad` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n={className:"keyword", +begin:"\\$(f[asn]|t|vp[rtd]|children)"},r={className:"number", +begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0 +},s=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),a={className:"function", +beginKeywords:"module function",end:/=|\{/,contains:[{className:"params", +begin:"\\(",end:"\\)",contains:["self",r,s,n,{className:"literal", +begin:"false|true|PI|undef"}]},e.UNDERSCORE_TITLE_MODE]};return{name:"OpenSCAD", +aliases:["scad"],keywords:{ +keyword:"function module include use for intersection_for if else \\%", +literal:"false true PI undef", +built_in:"circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign" +},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,{className:"meta", +keywords:{keyword:"include use"},begin:"include|use <",end:">"},s,n,{ +begin:"[*!#%]",relevance:0},a]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/oxygene.min.js b/src/app/resources/assets/highlight/es/languages/oxygene.min.js new file mode 100644 index 0000000..644b5cb --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/oxygene.min.js @@ -0,0 +1,13 @@ +/*! `oxygene` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const r={$pattern:/\.?\w+/, +keyword:"abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained" +},t=e.COMMENT(/\{/,/\}/,{relevance:0}),a=e.COMMENT("\\(\\*","\\*\\)",{ +relevance:10}),n={className:"string",begin:"'",end:"'",contains:[{begin:"''"}] +},i={className:"string",begin:"(#\\d+)+"},s={ +beginKeywords:"function constructor destructor procedure method",end:"[:;]", +keywords:"function constructor|10 destructor|10 procedure|10 method|10", +contains:[e.inherit(e.TITLE_MODE,{scope:"title.function"}),{className:"params", +begin:"\\(",end:"\\)",keywords:r,contains:[n,i]},t,a]};return{name:"Oxygene", +case_insensitive:!0,keywords:r,illegal:'("|\\$[G-Zg-z]|\\/\\*||->)', +contains:[t,a,e.C_LINE_COMMENT_MODE,n,i,e.NUMBER_MODE,s,{scope:"punctuation", +match:/;/,relevance:0}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/parser3.min.js b/src/app/resources/assets/highlight/es/languages/parser3.min.js new file mode 100644 index 0000000..7656ede --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/parser3.min.js @@ -0,0 +1,10 @@ +/*! `parser3` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a=e.COMMENT(/\{/,/\}/,{ +contains:["self"]});return{name:"Parser3",subLanguage:"xml",relevance:0, +contains:[e.COMMENT("^#","$"),e.COMMENT(/\^rem\{/,/\}/,{relevance:10, +contains:[a]}),{className:"meta",begin:"^@(?:BASE|USE|CLASS|OPTIONS)$", +relevance:10},{className:"title", +begin:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{ +className:"variable",begin:/\$\{?[\w\-.:]+\}?/},{className:"keyword", +begin:/\^[\w\-.:]+/},{className:"number",begin:"\\^#[0-9a-fA-F]+" +},e.C_NUMBER_MODE]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/perl.min.js b/src/app/resources/assets/highlight/es/languages/perl.min.js new file mode 100644 index 0000000..e798de3 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/perl.min.js @@ -0,0 +1,36 @@ +/*! `perl` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n=e.regex,t=/[dualxmsipngr]{0,12}/,r={$pattern:/[\w.]+/, +keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0" +},s={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:r},a={begin:/->\{/, +end:/\}/},i={variants:[{begin:/\$\d/},{ +begin:n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])") +},{begin:/[$%@][^\s\w{]/,relevance:0}] +},c=[e.BACKSLASH_ESCAPE,s,i],o=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],g=(e,r,s="\\1")=>{ +const a="\\1"===s?s:n.concat(s,r) +;return n.concat(n.concat("(?:",e,")"),r,/(?:\\.|[^\\\/])*?/,a,/(?:\\.|[^\\\/])*?/,s,t) +},l=(e,r,s)=>n.concat(n.concat("(?:",e,")"),r,/(?:\\.|[^\\\/])*?/,s,t),d=[i,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{ +endsWithParent:!0}),a,{className:"string",contains:c,variants:[{ +begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[", +end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{ +begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">", +relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'", +contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{ +begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number", +begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", +relevance:0},{ +begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*", +keywords:"split return print reverse grep",relevance:0, +contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{ +begin:g("s|tr|y",n.either(...o,{capture:!0}))},{begin:g("s|tr|y","\\(","\\)")},{ +begin:g("s|tr|y","\\[","\\]")},{begin:g("s|tr|y","\\{","\\}")}],relevance:2},{ +className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{ +begin:l("(?:m|qr)?",/\//,/\//)},{begin:l("m|qr",n.either(...o,{capture:!0 +}),/\1/)},{begin:l("m|qr",/\(/,/\)/)},{begin:l("m|qr",/\[/,/\]/)},{ +begin:l("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub", +end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{ +begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$", +subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}] +}];return s.contains=d,a.contains=d,{name:"Perl",aliases:["pl","pm"],keywords:r, +contains:d}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/pf.min.js b/src/app/resources/assets/highlight/es/languages/pf.min.js new file mode 100644 index 0000000..90780d4 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/pf.min.js @@ -0,0 +1,9 @@ +/*! `pf` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return t=>({name:"Packet Filter config", +aliases:["pf.conf"],keywords:{$pattern:/[a-z0-9_<>-]+/, +built_in:"block match pass load anchor|5 antispoof|10 set table", +keyword:"in out log quick on rdomain inet inet6 proto from port os to route allow-opts divert-packet divert-reply divert-to flags group icmp-type icmp6-type label once probability recieved-on rtable prio queue tos tag tagged user keep fragment for os drop af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin source-hash static-port dup-to reply-to route-to parent bandwidth default min max qlimit block-policy debug fingerprints hostid limit loginterface optimization reassemble ruleset-optimization basic none profile skip state-defaults state-policy timeout const counters persist no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy source-track global rule max-src-nodes max-src-states max-src-conn max-src-conn-rate overload flush scrub|5 max-mss min-ttl no-df|10 random-id", +literal:"all any no-route self urpf-failed egress|5 unknown"}, +contains:[t.HASH_COMMENT_MODE,t.NUMBER_MODE,t.QUOTE_STRING_MODE,{ +className:"variable",begin:/\$[\w\d#@][\w\d_]*/,relevance:0},{ +className:"variable",begin:/<(?!\/)/,end:/>/}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/pgsql.min.js b/src/app/resources/assets/highlight/es/languages/pgsql.min.js new file mode 100644 index 0000000..9f14612 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/pgsql.min.js @@ -0,0 +1,69 @@ +/*! `pgsql` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return E=>{ +const T=E.COMMENT("--","$"),N="\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$",A="BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR NAME OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ",R=A.trim().split(" ").map((E=>E.split("|")[0])).join("|"),I="ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP PERCENTILE_CONT PERCENTILE_DISC ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE NUM_NONNULLS NUM_NULLS ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT TRUNC WIDTH_BUCKET RANDOM SETSEED ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR TO_ASCII TO_HEX TRANSLATE OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 TIMEOFDAY TRANSACTION_TIMESTAMP|10 ENUM_FIRST ENUM_LAST ENUM_RANGE AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY INET_MERGE MACADDR8_SET7BIT ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA CURSOR_TO_XML CURSOR_TO_XMLSCHEMA SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA XMLATTRIBUTES TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY CURRVAL LASTVAL NEXTVAL SETVAL COALESCE NULLIF GREATEST LEAST ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY STRING_TO_ARRAY UNNEST ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE GENERATE_SERIES GENERATE_SUBSCRIPTS CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE GIN_CLEAN_PENDING_LIST SUPPRESS_REDUNDANT_UPDATES_TRIGGER LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE GROUPING CAST".split(" ").map((E=>E.split("|")[0])).join("|") +;return{name:"PostgreSQL",aliases:["postgres","postgresql"],supersetOf:"sql", +case_insensitive:!0,keywords:{ +keyword:"ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION INDEX PROCEDURE ASSERTION ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS DEFERRABLE RANGE DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED OF NOTHING NONE EXCLUDE ATTRIBUTE USAGE ROUTINES TRUE FALSE NAN INFINITY ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT OPEN SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ", +built_in:"CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 SQLSTATE SQLERRM|10 SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED INDEX_CORRUPTED " +},illegal:/:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/, +contains:[{className:"keyword",variants:[{begin:/\bTEXT\s*SEARCH\b/},{ +begin:/\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/},{ +begin:/\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/},{ +begin:/\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/},{ +begin:/\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/},{begin:/\bNULLS\s+(FIRST|LAST)\b/},{ +begin:/\bEVENT\s+TRIGGER\b/},{begin:/\b(MAPPING|OR)\s+REPLACE\b/},{ +begin:/\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/},{ +begin:/\b(SHARE|EXCLUSIVE)\s+MODE\b/},{ +begin:/\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/},{ +begin:/\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/ +},{begin:/\bPRESERVE\s+ROWS\b/},{begin:/\bDISCARD\s+PLANS\b/},{ +begin:/\bREFERENCING\s+(OLD|NEW)\b/},{begin:/\bSKIP\s+LOCKED\b/},{ +begin:/\bGROUPING\s+SETS\b/},{ +begin:/\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/},{ +begin:/\b(WITH|WITHOUT)\s+HOLD\b/},{ +begin:/\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/},{ +begin:/\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/},{ +begin:/\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/},{ +begin:/\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/},{begin:/\bIS\s+(NOT\s+)?UNKNOWN\b/ +},{begin:/\bSECURITY\s+LABEL\b/},{begin:/\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/ +},{begin:/\bWITH\s+(NO\s+)?DATA\b/},{begin:/\b(FOREIGN|SET)\s+DATA\b/},{ +begin:/\bSET\s+(CATALOG|CONSTRAINTS)\b/},{begin:/\b(WITH|FOR)\s+ORDINALITY\b/},{ +begin:/\bIS\s+(NOT\s+)?DOCUMENT\b/},{ +begin:/\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/},{ +begin:/\b(STRIP|PRESERVE)\s+WHITESPACE\b/},{ +begin:/\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/},{ +begin:/\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/},{begin:/\bAT\s+TIME\s+ZONE\b/},{ +begin:/\bGRANTED\s+BY\b/},{begin:/\bRETURN\s+(QUERY|NEXT)\b/},{ +begin:/\b(ATTACH|DETACH)\s+PARTITION\b/},{ +begin:/\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/},{ +begin:/\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/ +},{begin:/\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/}]},{ +begin:/\b(FORMAT|FAMILY|VERSION)\s*\(/},{begin:/\bINCLUDE\s*\(/, +keywords:"INCLUDE"},{begin:/\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/ +},{ +begin:/\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/ +},{begin:/\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/,relevance:10},{ +begin:/\bEXTRACT\s*\(/,end:/\bFROM\b/,returnEnd:!0,keywords:{ +type:"CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR TIMEZONE_MINUTE WEEK YEAR" +}},{begin:/\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/,keywords:{keyword:"NAME"}},{ +begin:/\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/,keywords:{ +keyword:"DOCUMENT CONTENT"}},{beginKeywords:"CACHE INCREMENT MAXVALUE MINVALUE", +end:E.C_NUMBER_RE,returnEnd:!0,keywords:"BY CACHE INCREMENT MAXVALUE MINVALUE" +},{className:"type",begin:/\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/},{className:"type", +begin:/\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/ +},{ +begin:/\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/, +keywords:{keyword:"RETURNS", +type:"LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER" +}},{begin:"\\b("+I+")\\s*\\("},{begin:"\\.("+R+")\\b"},{ +begin:"\\b("+R+")\\s+PATH\\b",keywords:{keyword:"PATH", +type:A.replace("PATH ","")}},{className:"type",begin:"\\b("+R+")\\b"},{ +className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{ +className:"string",begin:"(e|E|u&|U&)'",end:"'",contains:[{begin:"\\\\."}], +relevance:10},E.END_SAME_AS_BEGIN({begin:N,end:N,contains:[{ +subLanguage:["pgsql","perl","python","tcl","r","lua","java","php","ruby","bash","scheme","xml","json"], +endsWithParent:!0}]}),{begin:'"',end:'"',contains:[{begin:'""'}] +},E.C_NUMBER_MODE,E.C_BLOCK_COMMENT_MODE,T,{className:"meta",variants:[{ +begin:"%(ROW)?TYPE",relevance:10},{begin:"\\$\\d+"},{begin:"^#\\w",end:"$"}]},{ +className:"symbol",begin:"<<\\s*[a-zA-Z_][a-zA-Z_0-9$]*\\s*>>",relevance:10}]}} +})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/php-template.min.js b/src/app/resources/assets/highlight/es/languages/php-template.min.js new file mode 100644 index 0000000..2f7854f --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/php-template.min.js @@ -0,0 +1,8 @@ +/*! `php-template` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return n=>({name:"PHP template", +subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php", +contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{ +begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{illegal:null, +className:null,contains:null,skip:!0}),n.inherit(n.QUOTE_STRING_MODE,{ +illegal:null,className:null,contains:null,skip:!0})]}]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/php.min.js b/src/app/resources/assets/highlight/es/languages/php.min.js new file mode 100644 index 0000000..842bbc1 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/php.min.js @@ -0,0 +1,56 @@ +/*! `php` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const t=e.regex,a=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,a),n=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,a),o={ +scope:"variable",match:"\\$+"+r},c={scope:"subst",variants:[{begin:/\$\w+/},{ +begin:/\{\$/,end:/\}/}]},i=e.inherit(e.APOS_STRING_MODE,{illegal:null +}),s="[ \t\n]",l={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{ +illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(c) +}),i,e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/, +contains:e.QUOTE_STRING_MODE.contains.concat(c)})]},d={scope:"number", +variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{ +begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{ +begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{ +begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?" +}],relevance:0 +},_=["false","null","true"],p=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],b=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],E={ +keyword:p,literal:(e=>{const t=[];return e.forEach((e=>{ +t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase()) +})),t})(_),built_in:b},u=e=>e.map((e=>e.replace(/\|\d+$/,""))),g={variants:[{ +match:[/new/,t.concat(s,"+"),t.concat("(?!",u(b).join("\\b|"),"\\b)"),n],scope:{ +1:"keyword",4:"title.class"}}]},m=t.concat(r,"\\b(?!\\()"),h={variants:[{ +match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),m],scope:{2:"variable.constant" +}},{match:[/::/,/class/],scope:{2:"variable.language"}},{ +match:[n,t.concat(/::/,t.lookahead(/(?!class\b)/)),m],scope:{1:"title.class", +3:"variable.constant"}},{match:[n,t.concat("::",t.lookahead(/(?!class\b)/))], +scope:{1:"title.class"}},{match:[n,/::/,/class/],scope:{1:"title.class", +3:"variable.language"}}]},f={scope:"attr", +match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},I={relevance:0, +begin:/\(/,end:/\)/,keywords:E,contains:[f,o,h,e.C_BLOCK_COMMENT_MODE,l,d,g] +},O={relevance:0, +match:[/\b/,t.concat("(?!fn\\b|function\\b|",u(p).join("\\b|"),"|",u(b).join("\\b|"),"\\b)"),r,t.concat(s,"*"),t.lookahead(/(?=\()/)], +scope:{3:"title.function.invoke"},contains:[I]};I.contains.push(O) +;const v=[f,h,e.C_BLOCK_COMMENT_MODE,l,d,g];return{case_insensitive:!1, +keywords:E,contains:[{begin:t.concat(/#\[\s*/,n),beginScope:"meta",end:/]/, +endScope:"meta",keywords:{literal:_,keyword:["new","array"]},contains:[{ +begin:/\[/,end:/]/,keywords:{literal:_,keyword:["new","array"]}, +contains:["self",...v]},...v,{scope:"meta",match:n}] +},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{ +scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/, +keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE, +contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{ +begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{ +begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},o,O,h,{ +match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},g,{ +scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/, +excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use" +},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params", +begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:E, +contains:["self",o,h,e.C_BLOCK_COMMENT_MODE,l,d]}]},{scope:"class",variants:[{ +beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait", +illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{ +beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ +beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/, +contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{ +beginKeywords:"use",relevance:0,end:";",contains:[{ +match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},l,d]} +}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/plaintext.min.js b/src/app/resources/assets/highlight/es/languages/plaintext.min.js new file mode 100644 index 0000000..8b3f1f1 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/plaintext.min.js @@ -0,0 +1,3 @@ +/*! `plaintext` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return t=>({name:"Plain text", +aliases:["text","txt"],disableAutodetect:!0})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/pony.min.js b/src/app/resources/assets/highlight/es/languages/pony.min.js new file mode 100644 index 0000000..914c21e --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/pony.min.js @@ -0,0 +1,12 @@ +/*! `pony` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Pony",keywords:{ +keyword:"actor addressof and as be break class compile_error compile_intrinsic consume continue delegate digestof do else elseif embed end error for fun if ifdef in interface is isnt lambda let match new not object or primitive recover repeat return struct then trait try type until use var where while with xor", +meta:"iso val tag trn box ref",literal:"this false true"},contains:[{ +className:"type",begin:"\\b_?[A-Z][\\w]*",relevance:0},{className:"string", +begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"', +contains:[e.BACKSLASH_ESCAPE]},{className:"string",begin:"'",end:"'", +contains:[e.BACKSLASH_ESCAPE],relevance:0},{begin:e.IDENT_RE+"'",relevance:0},{ +className:"number", +begin:"(-?)(\\b0[xX][a-fA-F0-9]+|\\b0[bB][01]+|(\\b\\d+(_\\d+)?(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", +relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/powershell.min.js b/src/app/resources/assets/highlight/es/languages/powershell.min.js new file mode 100644 index 0000000..cef32eb --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/powershell.min.js @@ -0,0 +1,40 @@ +/*! `powershell` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n={ +$pattern:/-?[A-z\.\-]+\b/, +keyword:"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter", +built_in:"ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write" +},s={begin:"`[\\s\\S]",relevance:0},i={className:"variable",variants:[{ +begin:/\$\B/},{className:"keyword",begin:/\$this/},{begin:/\$[\w\d][\w\d_:]*/}] +},a={className:"string",variants:[{begin:/"/,end:/"/},{begin:/@"/,end:/^"@/}], +contains:[s,i,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},t={ +className:"string",variants:[{begin:/'/,end:/'/},{begin:/@'/,end:/^'@/}] +},r=e.inherit(e.COMMENT(null,null),{variants:[{begin:/#/,end:/$/},{begin:/<#/, +end:/#>/}],contains:[{className:"doctag",variants:[{ +begin:/\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/ +},{ +begin:/\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/ +}]}]}),c={className:"class",beginKeywords:"class enum",end:/\s*[{]/, +excludeEnd:!0,relevance:0,contains:[e.TITLE_MODE]},l={className:"function", +begin:/function\s+/,end:/\s*\{|$/,excludeEnd:!0,returnBegin:!0,relevance:0, +contains:[{begin:"function",relevance:0,className:"keyword"},{className:"title", +begin:/\w[\w\d]*((-)[\w\d]+)*/,relevance:0},{begin:/\(/,end:/\)/, +className:"params",relevance:0,contains:[i]}]},o={begin:/using\s/,end:/$/, +returnBegin:!0,contains:[a,t,{className:"keyword", +begin:/(using|assembly|command|module|namespace|type)/}]},p={ +className:"function",begin:/\[.*\]\s*[\w]+[ ]??\(/,end:/$/,returnBegin:!0, +relevance:0,contains:[{className:"keyword", +begin:"(".concat(n.keyword.toString().replace(/\s/g,"|"),")\\b"),endsParent:!0, +relevance:0},e.inherit(e.TITLE_MODE,{endsParent:!0})] +},m=[p,r,s,e.NUMBER_MODE,a,t,{className:"built_in",variants:[{ +begin:"(Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where)+(-)[\\w\\d]+" +}]},i,{className:"literal",begin:/\$(null|true|false)\b/},{ +className:"selector-tag",begin:/@\B/,relevance:0}],g={begin:/\[/,end:/\]/, +excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[].concat("self",m,{ +begin:"(string|char|byte|int|long|bool|decimal|single|double|DateTime|xml|array|hashtable|void)", +className:"built_in",relevance:0},{className:"type",begin:/[\.\w\d]+/, +relevance:0})};return p.contains.unshift(g),{name:"PowerShell", +aliases:["pwsh","ps","ps1"],case_insensitive:!0,keywords:n, +contains:m.concat(c,l,o,{variants:[{className:"operator", +begin:"(-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor)\\b" +},{className:"literal",begin:/(-){1,2}[\w\d-]+/,relevance:0}]},g)}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/processing.min.js b/src/app/resources/assets/highlight/es/languages/processing.min.js new file mode 100644 index 0000000..f78bb6c --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/processing.min.js @@ -0,0 +1,18 @@ +/*! `processing` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const t=e.regex,a=["displayHeight","displayWidth","mouseY","mouseX","mousePressed","pmouseX","pmouseY","key","keyCode","pixels","focused","frameCount","frameRate","height","width","size","createGraphics","beginDraw","createShape","loadShape","PShape","arc","ellipse","line","point","quad","rect","triangle","bezier","bezierDetail","bezierPoint","bezierTangent","curve","curveDetail","curvePoint","curveTangent","curveTightness","shape","shapeMode","beginContour","beginShape","bezierVertex","curveVertex","endContour","endShape","quadraticVertex","vertex","ellipseMode","noSmooth","rectMode","smooth","strokeCap","strokeJoin","strokeWeight","mouseClicked","mouseDragged","mouseMoved","mousePressed","mouseReleased","mouseWheel","keyPressed","keyPressedkeyReleased","keyTyped","print","println","save","saveFrame","day","hour","millis","minute","month","second","year","background","clear","colorMode","fill","noFill","noStroke","stroke","alpha","blue","brightness","color","green","hue","lerpColor","red","saturation","modelX","modelY","modelZ","screenX","screenY","screenZ","ambient","emissive","shininess","specular","add","createImage","beginCamera","camera","endCamera","frustum","ortho","perspective","printCamera","printProjection","cursor","frameRate","noCursor","exit","loop","noLoop","popStyle","pushStyle","redraw","binary","boolean","byte","char","float","hex","int","str","unbinary","unhex","join","match","matchAll","nf","nfc","nfp","nfs","split","splitTokens","trim","append","arrayCopy","concat","expand","reverse","shorten","sort","splice","subset","box","sphere","sphereDetail","createInput","createReader","loadBytes","loadJSONArray","loadJSONObject","loadStrings","loadTable","loadXML","open","parseXML","saveTable","selectFolder","selectInput","beginRaw","beginRecord","createOutput","createWriter","endRaw","endRecord","PrintWritersaveBytes","saveJSONArray","saveJSONObject","saveStream","saveStrings","saveXML","selectOutput","popMatrix","printMatrix","pushMatrix","resetMatrix","rotate","rotateX","rotateY","rotateZ","scale","shearX","shearY","translate","ambientLight","directionalLight","lightFalloff","lights","lightSpecular","noLights","normal","pointLight","spotLight","image","imageMode","loadImage","noTint","requestImage","tint","texture","textureMode","textureWrap","blend","copy","filter","get","loadPixels","set","updatePixels","blendMode","loadShader","PShaderresetShader","shader","createFont","loadFont","text","textFont","textAlign","textLeading","textMode","textSize","textWidth","textAscent","textDescent","abs","ceil","constrain","dist","exp","floor","lerp","log","mag","map","max","min","norm","pow","round","sq","sqrt","acos","asin","atan","atan2","cos","degrees","radians","sin","tan","noise","noiseDetail","noiseSeed","random","randomGaussian","randomSeed"],r=e.IDENT_RE,s={ +variants:[{match:t.concat(t.either(...a),t.lookahead(/\s*\(/)), +className:"built_in"},{relevance:0, +match:t.concat(/\b(?!for|if|while)/,r,t.lookahead(/\s*\(/)), +className:"title.function"}]},o={match:[/new\s+/,r],className:{1:"keyword", +2:"class.title"}},i={relevance:0,match:[/\./,r],className:{2:"property"}},n={ +variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,r]},{ +match:[/class/,/\s+/,r]}],className:{1:"keyword",3:"title.class",5:"keyword", +7:"title.class.inherited"}};return{name:"Processing",aliases:["pde"],keywords:{ +keyword:["abstract","assert","break","case","catch","const","continue","default","else","enum","final","finally","for","if","import","instanceof","long","native","new","package","private","private","protected","protected","public","public","return","static","strictfp","switch","synchronized","throw","throws","transient","try","void","volatile","while"], +literal:"P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI null true false", +title:"setup draw",variable:"super this", +built_in:[...a,"BufferedReader","PVector","PFont","PImage","PGraphics","HashMap","String","Array","FloatDict","ArrayList","FloatList","IntDict","IntList","JSONArray","JSONObject","Object","StringDict","StringList","Table","TableRow","XML"], +type:["boolean","byte","char","color","double","float","int","long","short"]}, +contains:[n,o,s,i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE] +}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/profile.min.js b/src/app/resources/assets/highlight/es/languages/profile.min.js new file mode 100644 index 0000000..2845268 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/profile.min.js @@ -0,0 +1,9 @@ +/*! `profile` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Python profiler", +contains:[e.C_NUMBER_MODE,{begin:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}", +end:":",excludeEnd:!0},{begin:"(ncalls|tottime|cumtime)",end:"$", +keywords:"ncalls tottime|10 cumtime|10 filename",relevance:10},{ +begin:"function calls",end:"$",contains:[e.C_NUMBER_MODE],relevance:10 +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\(", +end:"\\)$",excludeBegin:!0,excludeEnd:!0,relevance:0}]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/prolog.min.js b/src/app/resources/assets/highlight/es/languages/prolog.min.js new file mode 100644 index 0000000..b051741 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/prolog.min.js @@ -0,0 +1,11 @@ +/*! `prolog` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return n=>{const e={begin:/\(/,end:/\)/, +relevance:0},a={begin:/\[/,end:/\]/},s={className:"comment",begin:/%/,end:/$/, +contains:[n.PHRASAL_WORDS_MODE]},i={className:"string",begin:/`/,end:/`/, +contains:[n.BACKSLASH_ESCAPE]},r=[{begin:/[a-z][A-Za-z0-9_]*/,relevance:0},{ +className:"symbol",variants:[{begin:/[A-Z][a-zA-Z0-9_]*/},{ +begin:/_[A-Za-z0-9_]*/}],relevance:0},e,{begin:/:-/ +},a,s,n.C_BLOCK_COMMENT_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,i,{ +className:"string",begin:/0'(\\'|.)/},{className:"string",begin:/0'\\s/ +},n.C_NUMBER_MODE];return e.contains=r,a.contains=r,{name:"Prolog", +contains:r.concat([{begin:/\.$/}])}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/properties.min.js b/src/app/resources/assets/highlight/es/languages/properties.min.js new file mode 100644 index 0000000..1a683e5 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/properties.min.js @@ -0,0 +1,11 @@ +/*! `properties` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const t="[ \\t\\f]*",n="([^\\\\:= \\t\\f\\n]|\\\\.)+";return{name:".properties", +disableAutodetect:!0,case_insensitive:!0,illegal:/\S/, +contains:[e.COMMENT("^\\s*[!#]","$"),{returnBegin:!0,variants:[{ +begin:n+"[ \\t\\f]*[:=][ \\t\\f]*"},{begin:n+"[ \\t\\f]+"}],contains:[{ +className:"attr",begin:n,endsParent:!0}],starts:{ +end:"([ \\t\\f]*[:=][ \\t\\f]*|[ \\t\\f]+)",relevance:0,starts:{ +className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\\\"},{ +begin:"\\\\\\n"}]}}},{className:"attr",begin:n+t+"$"}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/protobuf.min.js b/src/app/resources/assets/highlight/es/languages/protobuf.min.js new file mode 100644 index 0000000..c00ff8f --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/protobuf.min.js @@ -0,0 +1,11 @@ +/*! `protobuf` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const r={ +match:[/(message|enum|service)\s+/,e.IDENT_RE],scope:{1:"keyword", +2:"title.class"}};return{name:"Protocol Buffers",keywords:{ +keyword:["package","import","option","optional","required","repeated","group","oneof"], +type:["double","float","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","bool","string","bytes"], +literal:["true","false"]}, +contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,{ +className:"function",beginKeywords:"rpc",end:/[{;]/,excludeEnd:!0, +keywords:"rpc returns"},{begin:/^\s*[A-Z_]+(?=\s*=[^\n]+;$)/}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/puppet.min.js b/src/app/resources/assets/highlight/es/languages/puppet.min.js new file mode 100644 index 0000000..954e6eb --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/puppet.min.js @@ -0,0 +1,18 @@ +/*! `puppet` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const s=e.COMMENT("#","$"),r="([A-Za-z_]|::)(\\w|::)*",a=e.inherit(e.TITLE_MODE,{ +begin:r}),n={className:"variable",begin:"\\$"+r},i={className:"string", +contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ +}]};return{name:"Puppet",aliases:["pp"],contains:[s,n,i,{beginKeywords:"class", +end:"\\{|;",illegal:/=/,contains:[a,s]},{beginKeywords:"define",end:/\{/, +contains:[{className:"section",begin:e.IDENT_RE,endsParent:!0}]},{ +begin:e.IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\S/,contains:[{ +className:"keyword",begin:e.IDENT_RE,relevance:.2},{begin:/\{/,end:/\}/, +keywords:{ +keyword:"and case default else elsif false if in import enherits node or true undef unless main settings $string ", +literal:"alias audit before loglevel noop require subscribe tag owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check en_address ip_address realname command environment hour monute month monthday special target weekday creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey sslverify mounted", +built_in:"architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version" +},relevance:0,contains:[i,s,{begin:"[a-zA-Z_]+\\s*=>",returnBegin:!0,end:"=>", +contains:[{className:"attr",begin:e.IDENT_RE}]},{className:"number", +begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", +relevance:0},n]}],relevance:0}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/purebasic.min.js b/src/app/resources/assets/highlight/es/languages/purebasic.min.js new file mode 100644 index 0000000..d5d92d4 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/purebasic.min.js @@ -0,0 +1,11 @@ +/*! `purebasic` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"PureBASIC", +aliases:["pb","pbi"], +keywords:"Align And Array As Break CallDebugger Case CompilerCase CompilerDefault CompilerElse CompilerElseIf CompilerEndIf CompilerEndSelect CompilerError CompilerIf CompilerSelect CompilerWarning Continue Data DataSection Debug DebugLevel Declare DeclareC DeclareCDLL DeclareDLL DeclareModule Default Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM EnableDebugger EnableExplicit End EndDataSection EndDeclareModule EndEnumeration EndIf EndImport EndInterface EndMacro EndModule EndProcedure EndSelect EndStructure EndStructureUnion EndWith Enumeration EnumerationBinary Extends FakeReturn For ForEach ForEver Global Gosub Goto If Import ImportC IncludeBinary IncludeFile IncludePath Interface List Macro MacroExpandedCount Map Module NewList NewMap Next Not Or Procedure ProcedureC ProcedureCDLL ProcedureDLL ProcedureReturn Protected Prototype PrototypeC ReDim Read Repeat Restore Return Runtime Select Shared Static Step Structure StructureUnion Swap Threaded To UndefineMacro Until Until UnuseModule UseModule Wend While With XIncludeFile XOr", +contains:[e.COMMENT(";","$",{relevance:0}),{className:"function", +begin:"\\b(Procedure|Declare)(C|CDLL|DLL)?\\b",end:"\\(",excludeEnd:!0, +returnBegin:!0,contains:[{className:"keyword", +begin:"(Procedure|Declare)(C|CDLL|DLL)?",excludeEnd:!0},{className:"type", +begin:"\\.\\w*"},e.UNDERSCORE_TITLE_MODE]},{className:"string",begin:'(~)?"', +end:'"',illegal:"\\n"},{className:"symbol",begin:"#[a-zA-Z_]\\w*\\$?"}]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/python-repl.min.js b/src/app/resources/assets/highlight/es/languages/python-repl.min.js new file mode 100644 index 0000000..4d7f051 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/python-repl.min.js @@ -0,0 +1,5 @@ +/*! `python-repl` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return a=>({aliases:["pycon"],contains:[{ +className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"} +},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/python.min.js b/src/app/resources/assets/highlight/es/languages/python.min.js new file mode 100644 index 0000000..f89a8eb --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/python.min.js @@ -0,0 +1,41 @@ +/*! `python` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n=e.regex,a=/[\p{XID_Start}_]\p{XID_Continue}*/u,s=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={ +$pattern:/[A-Za-z]\w+|__\w+__/,keyword:s, +built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], +literal:["__debug__","Ellipsis","False","None","NotImplemented","True"], +type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"] +},t={className:"meta",begin:/^(>>>|\.\.\.) /},r={className:"subst",begin:/\{/, +end:/\}/,keywords:i,illegal:/#/},l={begin:/\{\{/,relevance:0},b={ +className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,t],relevance:10},{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/, +contains:[e.BACKSLASH_ESCAPE,t],relevance:10},{ +begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,t,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/, +end:/"""/,contains:[e.BACKSLASH_ESCAPE,t,l,r]},{begin:/([uU]|[rR])'/,end:/'/, +relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{ +begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/, +end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/, +contains:[e.BACKSLASH_ESCAPE,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,l,r]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},o="[0-9](_?[0-9])*",c=`(\\b(${o}))?\\.(${o})|\\b(${o})\\.`,d="\\b|"+s.join("|"),m={ +className:"number",relevance:0,variants:[{ +begin:`(\\b(${o})|(${c}))[eE][+-]?(${o})[jJ]?(?=${d})`},{begin:`(${c})[jJ]?`},{ +begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{ +begin:`\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${d})` +},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\b(${o})[jJ](?=${d})` +}]},g={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i, +contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},p={ +className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/, +end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i, +contains:["self",t,m,b,e.HASH_COMMENT_MODE]}]};return r.contains=[b,m,t],{ +name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i, +illegal:/(<\/|->|\?)|=>/,contains:[t,m,{begin:/\bself\b/},{beginKeywords:"if", +relevance:0},b,g,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{ +1:"keyword",3:"title.function"},contains:[p]},{variants:[{ +match:[/\bclass/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/\bclass/,/\s+/,a]}], +scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{ +className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[m,p,b]}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/q.min.js b/src/app/resources/assets/highlight/es/languages/q.min.js new file mode 100644 index 0000000..a343abb --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/q.min.js @@ -0,0 +1,8 @@ +/*! `q` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Q",aliases:["k","kdb"], +keywords:{$pattern:/(`?)[A-Za-z0-9_]+\b/, +keyword:"do while select delete by update from",literal:"0b 1b", +built_in:"neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum", +type:"`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid" +},contains:[e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/qml.min.js b/src/app/resources/assets/highlight/es/languages/qml.min.js new file mode 100644 index 0000000..59c31a3 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/qml.min.js @@ -0,0 +1,29 @@ +/*! `qml` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n="[a-zA-Z_][a-zA-Z0-9\\._]*",r={className:"attribute",begin:"\\bid\\s*:", +starts:{className:"string",end:n,returnEnd:!1}},a={begin:n+"\\s*:", +returnBegin:!0,contains:[{className:"attribute",begin:n,end:"\\s*:", +excludeEnd:!0,relevance:0}],relevance:0},t={begin:e.regex.concat(n,/\s*\{/), +end:/\{/,returnBegin:!0,relevance:0,contains:[e.inherit(e.TITLE_MODE,{begin:n})] +};return{name:"QML",aliases:["qt"],case_insensitive:!1,keywords:{ +keyword:"in of on if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await import", +literal:"true false null undefined NaN Infinity", +built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Behavior bool color coordinate date double enumeration font geocircle georectangle geoshape int list matrix4x4 parent point quaternion real rect size string url variant vector2d vector3d vector4d Promise" +},contains:[{className:"meta",begin:/^\s*['"]use (strict|asm)['"]/ +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`", +contains:[e.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"}] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{ +begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}], +relevance:0},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", +keywords:"return throw case", +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{begin:/\s*[);\]]/,relevance:0,subLanguage:"xml"}],relevance:0},{ +className:"keyword",begin:"\\bsignal\\b",starts:{className:"string", +end:"(\\(|:|=|;|,|//|/\\*|$)",returnEnd:!0}},{className:"keyword", +begin:"\\bproperty\\b",starts:{className:"string",end:"(:|=|;|,|//|/\\*|$)", +returnEnd:!0}},{className:"function",beginKeywords:"function",end:/\{/, +excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/ +}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}],illegal:/\[|%/},{ +begin:"\\."+e.IDENT_RE,relevance:0},r,a,t],illegal:/#/}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/r.min.js b/src/app/resources/assets/highlight/es/languages/r.min.js new file mode 100644 index 0000000..2efb989 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/r.min.js @@ -0,0 +1,26 @@ +/*! `r` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,s=a.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,t=a.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/) +;return{name:"R",keywords:{$pattern:n, +keyword:"function if in break next repeat else for while", +literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10", +built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm" +},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/, +starts:{end:a.lookahead(a.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)), +endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{ +scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0 +}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}] +}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE], +variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"', +relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{ +1:"operator",2:"number"},match:[i,s]},{scope:{1:"operator",2:"number"}, +match:[/%[^%]*%/,s]},{scope:{1:"punctuation",2:"number"},match:[t,s]},{scope:{ +2:"number"},match:[/[^a-zA-Z0-9._]|^/,s]}]},{scope:{3:"operator"}, +match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{ +match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:t},{begin:"`",end:"`", +contains:[{begin:/\\./}]}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/reasonml.min.js b/src/app/resources/assets/highlight/es/languages/reasonml.min.js new file mode 100644 index 0000000..1c2818a --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/reasonml.min.js @@ -0,0 +1,43 @@ +/*! `reasonml` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n="~?[a-z$_][0-9a-zA-Z$_]*",a="`?[A-Z$_][0-9a-zA-Z$_]*",s="("+["||","++","**","+.","*","/","*.","/.","..."].map((e=>e.split("").map((e=>"\\"+e)).join(""))).join("|")+"|\\|>|&&|==|===)",i="\\s+"+s+"\\s+",r={ +keyword:"and as asr assert begin class constraint do done downto else end exception external for fun function functor if in include inherit initializer land lazy let lor lsl lsr lxor match method mod module mutable new nonrec object of open or private rec sig struct then to try type val virtual when while with", +built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ", +literal:"true false" +},l="\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",t={ +className:"number",relevance:0,variants:[{begin:l},{begin:"\\(-"+l+"\\)"}]},c={ +className:"operator",relevance:0,begin:s},o=[{className:"identifier", +relevance:0,begin:n},c,t],g=[e.QUOTE_STRING_MODE,c,{className:"module", +begin:"\\b"+a,returnBegin:!0,relevance:0,end:".",contains:[{ +className:"identifier",begin:a,relevance:0}]}],b=[{className:"module", +begin:"\\b"+a,returnBegin:!0,end:".",relevance:0,contains:[{ +className:"identifier",begin:a,relevance:0}]}],m={className:"function", +relevance:0,keywords:r,variants:[{begin:"\\s(\\(\\.?.*?\\)|"+n+")\\s*=>", +end:"\\s*=>",returnBegin:!0,relevance:0,contains:[{className:"params", +variants:[{begin:n},{ +begin:"~?[a-z$_][0-9a-zA-Z$_]*(\\s*:\\s*[a-z$_][0-9a-z$_]*(\\(\\s*('?[a-z$_][0-9a-z$_]*\\s*(,'?[a-z$_][0-9a-z$_]*\\s*)*)?\\))?){0,2}" +},{begin:/\(\s*\)/}]}]},{begin:"\\s\\(\\.?[^;\\|]*\\)\\s*=>",end:"\\s=>", +returnBegin:!0,relevance:0,contains:[{className:"params",relevance:0,variants:[{ +begin:n,end:"(,|\\n|\\))",relevance:0,contains:[c,{className:"typing",begin:":", +end:"(,|\\n)",returnBegin:!0,relevance:0,contains:b}]}]}]},{ +begin:"\\(\\.\\s"+n+"\\)\\s*=>"}]};g.push(m);const d={className:"constructor", +begin:a+"\\(",end:"\\)",illegal:"\\n",keywords:r, +contains:[e.QUOTE_STRING_MODE,c,{className:"params",begin:"\\b"+n}]},u={ +className:"pattern-match",begin:"\\|",returnBegin:!0,keywords:r,end:"=>", +relevance:0,contains:[d,c,{relevance:0,className:"constructor",begin:a}]},v={ +className:"module-access",keywords:r,returnBegin:!0,variants:[{ +begin:"\\b("+a+"\\.)+"+n},{begin:"\\b("+a+"\\.)+\\(",end:"\\)",returnBegin:!0, +contains:[m,{begin:"\\(",end:"\\)",relevance:0,skip:!0}].concat(g)},{ +begin:"\\b("+a+"\\.)+\\{",end:/\}/}],contains:g};return b.push(v),{ +name:"ReasonML",aliases:["re"],keywords:r,illegal:"(:-|:=|\\$\\{|\\+=)", +contains:[e.COMMENT("/\\*","\\*/",{illegal:"^(#,\\/\\/)"}),{ +className:"character",begin:"'(\\\\[^']+|[^'])'",illegal:"\\n",relevance:0 +},e.QUOTE_STRING_MODE,{className:"literal",begin:"\\(\\)",relevance:0},{ +className:"literal",begin:"\\[\\|",end:"\\|\\]",relevance:0,contains:o},{ +className:"literal",begin:"\\[",end:"\\]",relevance:0,contains:o},d,{ +className:"operator",begin:i,illegal:"--\x3e",relevance:0 +},t,e.C_LINE_COMMENT_MODE,u,m,{className:"module-def", +begin:"\\bmodule\\s+"+n+"\\s+"+a+"\\s+=\\s+\\{",end:/\}/,returnBegin:!0, +keywords:r,relevance:0,contains:[{className:"module",relevance:0,begin:a},{ +begin:/\{/,end:/\}/,relevance:0,skip:!0}].concat(g)},v]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/rib.min.js b/src/app/resources/assets/highlight/es/languages/rib.min.js new file mode 100644 index 0000000..e21fe3d --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/rib.min.js @@ -0,0 +1,6 @@ +/*! `rib` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"RenderMan RIB", +keywords:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd", +illegal:"{"use strict";return e=>{ +const n="[a-zA-Z-_][^\\n{]+\\{",a={className:"attribute",begin:/[a-zA-Z-_]+/, +end:/\s*:/,excludeEnd:!0,starts:{end:";",relevance:0,contains:[{ +className:"variable",begin:/\.[a-zA-Z-_]+/},{className:"keyword", +begin:/\(optional\)/}]}};return{name:"Roboconf",aliases:["graph","instances"], +case_insensitive:!0,keywords:"import",contains:[{begin:"^facet "+n,end:/\}/, +keywords:"facet",contains:[a,e.HASH_COMMENT_MODE]},{begin:"^\\s*instance of "+n, +end:/\}/, +keywords:"name count channels instance-data instance-state instance of", +illegal:/\S/,contains:["self",a,e.HASH_COMMENT_MODE]},{begin:"^"+n,end:/\}/, +contains:[a,e.HASH_COMMENT_MODE]},e.HASH_COMMENT_MODE]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/routeros.min.js b/src/app/resources/assets/highlight/es/languages/routeros.min.js new file mode 100644 index 0000000..c6f507d --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/routeros.min.js @@ -0,0 +1,22 @@ +/*! `routeros` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const r="foreach do while for if from to step else on-error and or not in",n="true false yes no nothing nil null",i={ +className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/ +}]},s={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i,{ +className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]},a={ +className:"string",begin:/'/,end:/'/};return{name:"MikroTik RouterOS script", +aliases:["mikrotik"],case_insensitive:!0,keywords:{$pattern:/:?[\w-]+/, +literal:n, +keyword:r+" :"+r.split(" ").join(" :")+" :"+"global local beep delay put len typeof pick log time set find environment terminal error execute parse resolve toarray tobool toid toip toip6 tonum tostr totime".split(" ").join(" :") +},contains:[{variants:[{begin:/\/\*/,end:/\*\//},{begin:/\/\//,end:/$/},{ +begin:/<\//,end:/>/}],illegal:/./},e.COMMENT("^#","$"),s,a,i,{ +begin:/[\w-]+=([^\s{}[\]()>]+)/,relevance:0,returnBegin:!0,contains:[{ +className:"attribute",begin:/[^=]+/},{begin:/=/,endsWithParent:!0,relevance:0, +contains:[s,a,i,{className:"literal",begin:"\\b("+n.split(" ").join("|")+")\\b" +},{begin:/("[^"]*"|[^\s{}[\]]+)/}]}]},{className:"number",begin:/\*[0-9a-fA-F]+/ +},{ +begin:"\\b(add|remove|enable|disable|set|get|print|export|edit|find|run|debug|error|info|warning)([\\s[(\\]|])", +returnBegin:!0,contains:[{className:"built_in",begin:/\w+/}]},{ +className:"built_in",variants:[{ +begin:"(\\.\\./|/|\\s)((traffic-flow|traffic-generator|firewall|scheduler|aaa|accounting|address-list|address|align|area|bandwidth-server|bfd|bgp|bridge|client|clock|community|config|connection|console|customer|default|dhcp-client|dhcp-server|discovery|dns|e-mail|ethernet|filter|firmware|gps|graphing|group|hardware|health|hotspot|identity|igmp-proxy|incoming|instance|interface|ip|ipsec|ipv6|irq|l2tp-server|lcd|ldp|logging|mac-server|mac-winbox|mangle|manual|mirror|mme|mpls|nat|nd|neighbor|network|note|ntp|ospf|ospf-v3|ovpn-server|page|peer|pim|ping|policy|pool|port|ppp|pppoe-client|pptp-server|prefix|profile|proposal|proxy|queue|radius|resource|rip|ripng|route|routing|screen|script|security-profiles|server|service|service-port|settings|shares|smb|sms|sniffer|snmp|snooper|socks|sstp-server|system|tool|tracking|type|upgrade|upnp|user-manager|users|user|vlan|secret|vrrp|watchdog|web-access|wireless|pptp|pppoe|lan|wan|layer7-protocol|lease|simple|raw);?\\s)+" +},{begin:/\.\./,relevance:0}]}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/rsl.min.js b/src/app/resources/assets/highlight/es/languages/rsl.min.js new file mode 100644 index 0000000..380a685 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/rsl.min.js @@ -0,0 +1,11 @@ +/*! `rsl` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const t={ +match:[/(surface|displacement|light|volume|imager)/,/\s+/,e.IDENT_RE],scope:{ +1:"keyword",3:"title.class"}};return{name:"RenderMan RSL",keywords:{ +keyword:["while","for","if","do","return","else","break","extern","continue"], +built_in:["abs","acos","ambient","area","asin","atan","atmosphere","attribute","calculatenormal","ceil","cellnoise","clamp","comp","concat","cos","degrees","depth","Deriv","diffuse","distance","Du","Dv","environment","exp","faceforward","filterstep","floor","format","fresnel","incident","length","lightsource","log","match","max","min","mod","noise","normalize","ntransform","opposite","option","phong","pnoise","pow","printf","ptlined","radians","random","reflect","refract","renderinfo","round","setcomp","setxcomp","setycomp","setzcomp","shadow","sign","sin","smoothstep","specular","specularbrdf","spline","sqrt","step","tan","texture","textureinfo","trace","transform","vtransform","xcomp","ycomp","zcomp"], +type:["matrix","float","color","point","normal","vector"]},illegal:"{"use strict";return e=>{ +const n=e.regex,a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",s=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(s,/(::\w+)*/),t={ +"variable.constant":["__FILE__","__LINE__","__ENCODING__"], +"variable.language":["self","super"], +keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"], +built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"], +literal:["true","false","nil"]},c={className:"doctag",begin:"@[A-Za-z]+"},r={ +begin:"#<",end:">"},b=[e.COMMENT("#","$",{contains:[c] +}),e.COMMENT("^=begin","^=end",{contains:[c],relevance:10 +}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],l={className:"subst",begin:/#\{/, +end:/\}/,keywords:t},d={className:"string",contains:[e.BACKSLASH_ESCAPE,l], +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{ +begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{ +begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//, +end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{ +begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{ +begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ +begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ +begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ +begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)), +contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/, +contains:[e.BACKSLASH_ESCAPE,l]})]}]},o="[0-9](_?[0-9])*",g={className:"number", +relevance:0,variants:[{ +begin:`\\b([1-9](_?[0-9])*|0)(\\.(${o}))?([eE][+-]?(${o})|r)?i?\\b`},{ +begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" +},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ +begin:"\\b0(_?[0-7])+r?i?\\b"}]},_={variants:[{match:/\(\)/},{ +className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0, +keywords:t}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{ +match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class", +4:"title.class.inherited"},keywords:t},{match:[/(include|extend)\s+/,i],scope:{ +2:"title.class"},keywords:t},{relevance:0,match:[i,/\.new[. (]/],scope:{ +1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},{relevance:0,match:s,scope:"title.class"},{ +match:[/def/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[_]},{ +begin:e.IDENT_RE+"::"},{className:"symbol", +begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", +begin:":(?!\\s)",contains:[d,{begin:a}],relevance:0},g,{className:"variable", +begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ +className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0, +relevance:0,keywords:t},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*", +keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,l], +illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{ +begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[", +end:"\\][a-z]*"}]}].concat(r,b),relevance:0}].concat(r,b) +;l.contains=m,_.contains=m;const u=[{begin:/^\s*=>/,starts:{end:"$",contains:m} +},{className:"meta.prompt", +begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", +starts:{end:"$",keywords:t,contains:m}}];return b.unshift(r),{name:"Ruby", +aliases:["rb","gemspec","podspec","thor","irb"],keywords:t,illegal:/\/\*/, +contains:[e.SHEBANG({binary:"ruby"})].concat(u).concat(b).concat(m)}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/ruleslanguage.min.js b/src/app/resources/assets/highlight/es/languages/ruleslanguage.min.js new file mode 100644 index 0000000..94c3515 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/ruleslanguage.min.js @@ -0,0 +1,9 @@ +/*! `ruleslanguage` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return T=>({name:"Oracle Rules Language", +keywords:{ +keyword:"BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM NUMDAYS READ_DATE STAGING", +built_in:"IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME" +}, +contains:[T.C_LINE_COMMENT_MODE,T.C_BLOCK_COMMENT_MODE,T.APOS_STRING_MODE,T.QUOTE_STRING_MODE,T.C_NUMBER_MODE,{ +className:"literal",variants:[{begin:"#\\s+",relevance:0},{begin:"#[a-zA-Z .]+" +}]}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/rust.min.js b/src/app/resources/assets/highlight/es/languages/rust.min.js new file mode 100644 index 0000000..d3eb2f0 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/rust.min.js @@ -0,0 +1,28 @@ +/*! `rust` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const t=e.regex,a={ +className:"title.function.invoke",relevance:0, +begin:t.concat(/\b/,/(?!let\b)/,e.IDENT_RE,t.lookahead(/\s*\(/)) +},n="([ui](8|16|32|64|128|size)|f(32|64))?",r=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],s=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"] +;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:s, +keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"], +literal:["true","false","Some","None","Ok","Err"],built_in:r},illegal:""},a]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/sas.min.js b/src/app/resources/assets/highlight/es/languages/sas.min.js new file mode 100644 index 0000000..ca26438 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/sas.min.js @@ -0,0 +1,17 @@ +/*! `sas` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const t=e.regex;return{name:"SAS", +case_insensitive:!0,keywords:{ +literal:["null","missing","_all_","_automatic_","_character_","_infile_","_n_","_name_","_null_","_numeric_","_user_","_webout_"], +keyword:["do","if","then","else","end","until","while","abort","array","attrib","by","call","cards","cards4","catname","continue","datalines","datalines4","delete","delim","delimiter","display","dm","drop","endsas","error","file","filename","footnote","format","goto","in","infile","informat","input","keep","label","leave","length","libname","link","list","lostcard","merge","missing","modify","options","output","out","page","put","redirect","remove","rename","replace","retain","return","select","set","skip","startsas","stop","title","update","waitsas","where","window","x|0","systask","add","and","alter","as","cascade","check","create","delete","describe","distinct","drop","foreign","from","group","having","index","insert","into","in","key","like","message","modify","msgtype","not","null","on","or","order","primary","references","reset","restrict","select","set","table","unique","update","validate","view","where"] +},contains:[{className:"keyword",begin:/^\s*(proc [\w\d_]+|data|run|quit)[\s;]/ +},{className:"variable",begin:/&[a-zA-Z_&][a-zA-Z0-9_]*\.?/},{ +begin:[/^\s*/,/datalines;|cards;/,/(?:.*\n)+/,/^\s*;\s*$/],className:{ +2:"keyword",3:"string"}},{ +begin:[/%mend|%macro/,/\s+/,/[a-zA-Z_&][a-zA-Z0-9_]*/],className:{1:"built_in", +3:"title.function"}},{className:"built_in", +begin:"%"+t.either("bquote","nrbquote","cmpres","qcmpres","compstor","datatyp","display","do","else","end","eval","global","goto","if","index","input","keydef","label","left","length","let","local","lowcase","macro","mend","nrbquote","nrquote","nrstr","put","qcmpres","qleft","qlowcase","qscan","qsubstr","qsysfunc","qtrim","quote","qupcase","scan","str","substr","superq","syscall","sysevalf","sysexec","sysfunc","sysget","syslput","sysprod","sysrc","sysrput","then","to","trim","unquote","until","upcase","verify","while","window") +},{className:"title.function",begin:/%[a-zA-Z_][a-zA-Z_0-9]*/},{ +className:"meta", +begin:t.either("abs","addr","airy","arcos","arsin","atan","attrc","attrn","band","betainv","blshift","bnot","bor","brshift","bxor","byte","cdf","ceil","cexist","cinv","close","cnonct","collate","compbl","compound","compress","cos","cosh","css","curobs","cv","daccdb","daccdbsl","daccsl","daccsyd","dacctab","dairy","date","datejul","datepart","datetime","day","dclose","depdb","depdbsl","depdbsl","depsl","depsl","depsyd","depsyd","deptab","deptab","dequote","dhms","dif","digamma","dim","dinfo","dnum","dopen","doptname","doptnum","dread","dropnote","dsname","erf","erfc","exist","exp","fappend","fclose","fcol","fdelete","fetch","fetchobs","fexist","fget","fileexist","filename","fileref","finfo","finv","fipname","fipnamel","fipstate","floor","fnonct","fnote","fopen","foptname","foptnum","fpoint","fpos","fput","fread","frewind","frlen","fsep","fuzz","fwrite","gaminv","gamma","getoption","getvarc","getvarn","hbound","hms","hosthelp","hour","ibessel","index","indexc","indexw","input","inputc","inputn","int","intck","intnx","intrr","irr","jbessel","juldate","kurtosis","lag","lbound","left","length","lgamma","libname","libref","log","log10","log2","logpdf","logpmf","logsdf","lowcase","max","mdy","mean","min","minute","mod","month","mopen","mort","n","netpv","nmiss","normal","note","npv","open","ordinal","pathname","pdf","peek","peekc","pmf","point","poisson","poke","probbeta","probbnml","probchi","probf","probgam","probhypr","probit","probnegb","probnorm","probt","put","putc","putn","qtr","quote","ranbin","rancau","ranexp","rangam","range","rank","rannor","ranpoi","rantbl","rantri","ranuni","repeat","resolve","reverse","rewind","right","round","saving","scan","sdf","second","sign","sin","sinh","skewness","soundex","spedis","sqrt","std","stderr","stfips","stname","stnamel","substr","sum","symget","sysget","sysmsg","sysprod","sysrc","system","tan","tanh","time","timepart","tinv","tnonct","today","translate","tranwrd","trigamma","trim","trimn","trunc","uniform","upcase","uss","var","varfmt","varinfmt","varlabel","varlen","varname","varnum","varray","varrayx","vartype","verify","vformat","vformatd","vformatdx","vformatn","vformatnx","vformatw","vformatwx","vformatx","vinarray","vinarrayx","vinformat","vinformatd","vinformatdx","vinformatn","vinformatnx","vinformatw","vinformatwx","vinformatx","vlabel","vlabelx","vlength","vlengthx","vname","vnamex","vtype","vtypex","weekday","year","yyq","zipfips","zipname","zipnamel","zipstate")+"(?=\\()" +},{className:"string",variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},e.COMMENT("\\*",";"),e.C_BLOCK_COMMENT_MODE]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/scala.min.js b/src/app/resources/assets/highlight/es/languages/scala.min.js new file mode 100644 index 0000000..608864d --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/scala.min.js @@ -0,0 +1,25 @@ +/*! `scala` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n=e.regex,a={ +className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:/\$\{/,end:/\}/}] +},s={className:"string",variants:[{begin:'"""',end:'"""'},{begin:'"',end:'"', +illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'[a-z]+"',end:'"', +illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,a]},{className:"string", +begin:'[a-z]+"""',end:'"""',contains:[a],relevance:10}]},i={className:"type", +begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},t={className:"title", +begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/, +relevance:0},r={className:"class",beginKeywords:"class object trait type", +end:/[:={\[\n;]/,excludeEnd:!0, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{ +beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0, +excludeEnd:!0,relevance:0,contains:[i]},{className:"params",begin:/\(/,end:/\)/, +excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[i]},t]},l={ +className:"function",beginKeywords:"def",end:n.lookahead(/[:={\[(\n;]/), +contains:[t]};return{name:"Scala",keywords:{literal:"true false null", +keyword:"type yield lazy override def with val var sealed abstract private trait object if then forSome for while do throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit export enum given transparent" +}, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,i,l,r,e.C_NUMBER_MODE,{ +begin:[/^\s*/,"extension",/\s+(?=[[(])/],beginScope:{2:"keyword"}},{ +begin:[/^\s*/,/end/,/\s+/,/(extension\b)?/],beginScope:{2:"keyword",4:"keyword"} +},{match:/\.inline\b/},{begin:/\binline(?=\s)/,keywords:"inline"},{ +begin:[/\(\s*/,/using/,/\s+(?!\))/],beginScope:{2:"keyword"}},{className:"meta", +begin:"@[A-Za-z]+"}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/scheme.min.js b/src/app/resources/assets/highlight/es/languages/scheme.min.js new file mode 100644 index 0000000..24d0b21 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/scheme.min.js @@ -0,0 +1,19 @@ +/*! `scheme` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const t="[^\\(\\)\\[\\]\\{\\}\",'`;#|\\\\\\s]+",n={$pattern:t, +built_in:"case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules ' * + , ,@ - ... / ; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?" +},r={className:"literal",begin:"(#t|#f|#\\\\"+t+"|#\\\\.)"},a={ +className:"number",variants:[{begin:"(-|\\+)?\\d+([./]\\d+)?",relevance:0},{ +begin:"(-|\\+)?\\d+([./]\\d+)?[+\\-](-|\\+)?\\d+([./]\\d+)?i",relevance:0},{ +begin:"#b[0-1]+(/[0-1]+)?"},{begin:"#o[0-7]+(/[0-7]+)?"},{ +begin:"#x[0-9a-f]+(/[0-9a-f]+)?"}]},i=e.QUOTE_STRING_MODE,c=[e.COMMENT(";","$",{ +relevance:0}),e.COMMENT("#\\|","\\|#")],s={begin:t,relevance:0},l={ +className:"symbol",begin:"'"+t},o={endsWithParent:!0,relevance:0},u={variants:[{ +begin:/'/},{begin:"`"}],contains:[{begin:"\\(",end:"\\)", +contains:["self",r,i,a,s,l]}]},d={className:"name",relevance:0,begin:t, +keywords:n},g={variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}], +contains:[{begin:/lambda/,endsWithParent:!0,returnBegin:!0,contains:[d,{ +endsParent:!0,variants:[{begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/}], +contains:[s]}]},d,o]};return o.contains=[r,a,i,s,l,u,g].concat(c),{ +name:"Scheme",aliases:["scm"],illegal:/\S/, +contains:[e.SHEBANG(),a,i,l,u,g].concat(c)}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/scilab.min.js b/src/app/resources/assets/highlight/es/languages/scilab.min.js new file mode 100644 index 0000000..172f56c --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/scilab.min.js @@ -0,0 +1,13 @@ +/*! `scilab` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n=[e.C_NUMBER_MODE,{ +className:"string",begin:"'|\"",end:"'|\"",contains:[e.BACKSLASH_ESCAPE,{ +begin:"''"}]}];return{name:"Scilab",aliases:["sci"],keywords:{$pattern:/%?\w+/, +keyword:"abort break case clear catch continue do elseif else endfunction end for function global if pause return resume select try then while", +literal:"%f %F %t %T %pi %eps %inf %nan %e %i %z %s", +built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan type typename warning zeros matrix" +},illegal:'("|#|/\\*|\\s+/\\w+)',contains:[{className:"function", +beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{ +className:"params",begin:"\\(",end:"\\)"}]},{ +begin:"[a-zA-Z_][a-zA-Z_0-9]*[\\.']+",relevance:0},{begin:"\\[", +end:"\\][\\.']*",relevance:0,contains:n},e.COMMENT("//","$")].concat(n)}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/scss.min.js b/src/app/resources/assets/highlight/es/languages/scss.min.js new file mode 100644 index 0000000..d7551f7 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/scss.min.js @@ -0,0 +1,33 @@ +/*! `scss` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],r=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],t=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse() +;return n=>{const a=(e=>({IMPORTANT:{scope:"meta",begin:"!important"}, +BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number", +begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{ +className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{ +scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/} +}))(n),l=t,s=i,d="@[a-z-]+",c={className:"variable", +begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS", +case_insensitive:!0,illegal:"[=/|']", +contains:[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE,a.CSS_NUMBER_MODE,{ +className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{ +className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0 +},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag", +begin:"\\b("+e.join("|")+")\\b",relevance:0},{className:"selector-pseudo", +begin:":("+s.join("|")+")"},{className:"selector-pseudo", +begin:":(:)?("+l.join("|")+")"},c,{begin:/\(/,end:/\)/, +contains:[a.CSS_NUMBER_MODE]},a.CSS_VARIABLE,{className:"attribute", +begin:"\\b("+o.join("|")+")\\b"},{ +begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" +},{begin:/:/,end:/[;}{]/,relevance:0, +contains:[a.BLOCK_COMMENT,c,a.HEXCOLOR,a.CSS_NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,a.IMPORTANT,a.FUNCTION_DISPATCH] +},{begin:"@(page|font-face)",keywords:{$pattern:d,keyword:"@page @font-face"}},{ +begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/, +keyword:"and or not only",attribute:r.join(" ")},contains:[{begin:d, +className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute" +},c,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,a.HEXCOLOR,a.CSS_NUMBER_MODE] +},a.FUNCTION_DISPATCH]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/shell.min.js b/src/app/resources/assets/highlight/es/languages/shell.min.js new file mode 100644 index 0000000..b7a8ab7 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/shell.min.js @@ -0,0 +1,5 @@ +/*! `shell` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return s=>({name:"Shell Session", +aliases:["console","shellsession"],contains:[{className:"meta.prompt", +begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/, +subLanguage:"bash"}}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/smali.min.js b/src/app/resources/assets/highlight/es/languages/smali.min.js new file mode 100644 index 0000000..a3d1a2a --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/smali.min.js @@ -0,0 +1,13 @@ +/*! `smali` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a=["add","and","cmp","cmpg","cmpl","const","div","double","float","goto","if","int","long","move","mul","neg","new","nop","not","or","rem","return","shl","shr","sput","sub","throw","ushr","xor"] +;return{name:"Smali",contains:[{className:"string",begin:'"',end:'"',relevance:0 +},e.COMMENT("#","$",{relevance:0}),{className:"keyword",variants:[{ +begin:"\\s*\\.end\\s[a-zA-Z0-9]*"},{begin:"^[ ]*\\.[a-zA-Z]*",relevance:0},{ +begin:"\\s:[a-zA-Z_0-9]*",relevance:0},{ +begin:"\\s(transient|constructor|abstract|final|synthetic|public|private|protected|static|bridge|system)" +}]},{className:"built_in",variants:[{begin:"\\s("+a.join("|")+")\\s"},{ +begin:"\\s("+a.join("|")+")((-|/)[a-zA-Z0-9]+)+\\s",relevance:10},{ +begin:"\\s(aget|aput|array|check|execute|fill|filled|goto/16|goto/32|iget|instance|invoke|iput|monitor|packed|sget|sparse)((-|/)[a-zA-Z0-9]+)*\\s", +relevance:10}]},{className:"class",begin:"L[^(;:\n]*;",relevance:0},{ +begin:"[vp][0-9]+"}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/smalltalk.min.js b/src/app/resources/assets/highlight/es/languages/smalltalk.min.js new file mode 100644 index 0000000..f450b2e --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/smalltalk.min.js @@ -0,0 +1,11 @@ +/*! `smalltalk` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const a="[a-z][a-zA-Z0-9_]*",n={ +className:"string",begin:"\\$.{1}"},s={className:"symbol", +begin:"#"+e.UNDERSCORE_IDENT_RE};return{name:"Smalltalk",aliases:["st"], +keywords:["self","super","nil","true","false","thisContext"], +contains:[e.COMMENT('"','"'),e.APOS_STRING_MODE,{className:"type", +begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},{begin:a+":",relevance:0 +},e.C_NUMBER_MODE,s,n,{begin:"\\|[ ]*"+a+"([ ]+"+a+")*[ ]*\\|",returnBegin:!0, +end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?"+a}]},{begin:"#\\(", +end:"\\)",contains:[e.APOS_STRING_MODE,n,e.C_NUMBER_MODE,s]}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/sml.min.js b/src/app/resources/assets/highlight/es/languages/sml.min.js new file mode 100644 index 0000000..b0c7fcb --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/sml.min.js @@ -0,0 +1,14 @@ +/*! `sml` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"SML (Standard ML)", +aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?", +keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while", +built_in:"array bool char exn int list option order real ref string substring vector unit word", +literal:"true false NONE SOME LESS EQUAL GREATER nil"},illegal:/\/\/|>>/, +contains:[{className:"literal",begin:/\[(\|\|)?\]|\(\)/,relevance:0 +},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol", +begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{ +className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{ +begin:"[a-z_]\\w*'[\\w']*"},e.inherit(e.APOS_STRING_MODE,{className:"string", +relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number", +begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)", +relevance:0},{begin:/[-=]>/}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/sqf.min.js b/src/app/resources/assets/highlight/es/languages/sqf.min.js new file mode 100644 index 0000000..d3c51dc --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/sqf.min.js @@ -0,0 +1,17 @@ +/*! `sqf` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const t={className:"string", +variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]},{begin:"'", +end:"'",contains:[{begin:"''",relevance:0}]}]},a={className:"meta", +begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"define undef ifdef ifndef else endif include"},contains:[{begin:/\\\n/, +relevance:0},e.inherit(t,{className:"string"}),{className:"string", +begin:/<[^\n>]*>/,end:/$/,illegal:"\\n" +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"SQF", +case_insensitive:!0,keywords:{ +keyword:["case","catch","default","do","else","exit","exitWith","for","forEach","from","if","private","switch","then","throw","to","try","waitUntil","while","with"], +built_in:["abs","accTime","acos","action","actionIDs","actionKeys","actionKeysImages","actionKeysNames","actionKeysNamesArray","actionName","actionParams","activateAddons","activatedAddons","activateKey","add3DENConnection","add3DENEventHandler","add3DENLayer","addAction","addBackpack","addBackpackCargo","addBackpackCargoGlobal","addBackpackGlobal","addBinocularItem","addCamShake","addCuratorAddons","addCuratorCameraArea","addCuratorEditableObjects","addCuratorEditingArea","addCuratorPoints","addEditorObject","addEventHandler","addForce","addForceGeneratorRTD","addGoggles","addGroupIcon","addHandgunItem","addHeadgear","addItem","addItemCargo","addItemCargoGlobal","addItemPool","addItemToBackpack","addItemToUniform","addItemToVest","addLiveStats","addMagazine","addMagazineAmmoCargo","addMagazineCargo","addMagazineCargoGlobal","addMagazineGlobal","addMagazinePool","addMagazines","addMagazineTurret","addMenu","addMenuItem","addMissionEventHandler","addMPEventHandler","addMusicEventHandler","addonFiles","addOwnedMine","addPlayerScores","addPrimaryWeaponItem","addPublicVariableEventHandler","addRating","addResources","addScore","addScoreSide","addSecondaryWeaponItem","addSwitchableUnit","addTeamMember","addToRemainsCollector","addTorque","addUniform","addVehicle","addVest","addWaypoint","addWeapon","addWeaponCargo","addWeaponCargoGlobal","addWeaponGlobal","addWeaponItem","addWeaponPool","addWeaponTurret","addWeaponWithAttachmentsCargo","addWeaponWithAttachmentsCargoGlobal","admin","agent","agents","AGLToASL","aimedAtTarget","aimPos","airDensityCurveRTD","airDensityRTD","airplaneThrottle","airportSide","AISFinishHeal","alive","all3DENEntities","allActiveTitleEffects","allAddonsInfo","allAirports","allControls","allCurators","allCutLayers","allDead","allDeadMen","allDiarySubjects","allDisplays","allGroups","allMapMarkers","allMines","allMissionObjects","allow3DMode","allowCrewInImmobile","allowCuratorLogicIgnoreAreas","allowDamage","allowDammage","allowFileOperations","allowFleeing","allowGetIn","allowSprint","allPlayers","allSimpleObjects","allSites","allTurrets","allUnits","allUnitsUAV","allVariables","ammo","ammoOnPylon","and","animate","animateBay","animateDoor","animatePylon","animateSource","animationNames","animationPhase","animationSourcePhase","animationState","apertureParams","append","apply","armoryPoints","arrayIntersect","asin","ASLToAGL","ASLToATL","assert","assignAsCargo","assignAsCargoIndex","assignAsCommander","assignAsDriver","assignAsGunner","assignAsTurret","assignCurator","assignedCargo","assignedCommander","assignedDriver","assignedGunner","assignedItems","assignedTarget","assignedTeam","assignedVehicle","assignedVehicleRole","assignItem","assignTeam","assignToAirport","atan","atan2","atg","ATLToASL","attachedObject","attachedObjects","attachedTo","attachObject","attachTo","attackEnabled","backpack","backpackCargo","backpackContainer","backpackItems","backpackMagazines","backpackSpaceFor","batteryChargeRTD","behaviour","benchmark","bezierInterpolation","binocular","binocularItems","binocularMagazine","boundingBox","boundingBoxReal","boundingCenter","break","breakOut","breakTo","breakWith","briefingName","buildingExit","buildingPos","buldozer_EnableRoadDiag","buldozer_IsEnabledRoadDiag","buldozer_LoadNewRoads","buldozer_reloadOperMap","buttonAction","buttonSetAction","cadetMode","calculatePath","calculatePlayerVisibilityByFriendly","call","callExtension","camCommand","camCommit","camCommitPrepared","camCommitted","camConstuctionSetParams","camCreate","camDestroy","cameraEffect","cameraEffectEnableHUD","cameraInterest","cameraOn","cameraView","campaignConfigFile","camPreload","camPreloaded","camPrepareBank","camPrepareDir","camPrepareDive","camPrepareFocus","camPrepareFov","camPrepareFovRange","camPreparePos","camPrepareRelPos","camPrepareTarget","camSetBank","camSetDir","camSetDive","camSetFocus","camSetFov","camSetFovRange","camSetPos","camSetRelPos","camSetTarget","camTarget","camUseNVG","canAdd","canAddItemToBackpack","canAddItemToUniform","canAddItemToVest","cancelSimpleTaskDestination","canFire","canMove","canSlingLoad","canStand","canSuspend","canTriggerDynamicSimulation","canUnloadInCombat","canVehicleCargo","captive","captiveNum","cbChecked","cbSetChecked","ceil","channelEnabled","cheatsEnabled","checkAIFeature","checkVisibility","className","clear3DENAttribute","clear3DENInventory","clearAllItemsFromBackpack","clearBackpackCargo","clearBackpackCargoGlobal","clearForcesRTD","clearGroupIcons","clearItemCargo","clearItemCargoGlobal","clearItemPool","clearMagazineCargo","clearMagazineCargoGlobal","clearMagazinePool","clearOverlay","clearRadio","clearVehicleInit","clearWeaponCargo","clearWeaponCargoGlobal","clearWeaponPool","clientOwner","closeDialog","closeDisplay","closeOverlay","collapseObjectTree","collect3DENHistory","collectiveRTD","combatBehaviour","combatMode","commandArtilleryFire","commandChat","commander","commandFire","commandFollow","commandFSM","commandGetOut","commandingMenu","commandMove","commandRadio","commandStop","commandSuppressiveFire","commandTarget","commandWatch","comment","commitOverlay","compile","compileFinal","compileScript","completedFSM","composeText","configClasses","configFile","configHierarchy","configName","configOf","configProperties","configSourceAddonList","configSourceMod","configSourceModList","confirmSensorTarget","connectTerminalToUAV","connectToServer","continue","continueWith","controlsGroupCtrl","copyFromClipboard","copyToClipboard","copyWaypoints","cos","count","countEnemy","countFriendly","countSide","countType","countUnknown","create3DENComposition","create3DENEntity","createAgent","createCenter","createDialog","createDiaryLink","createDiaryRecord","createDiarySubject","createDisplay","createGearDialog","createGroup","createGuardedPoint","createHashMap","createHashMapFromArray","createLocation","createMarker","createMarkerLocal","createMenu","createMine","createMissionDisplay","createMPCampaignDisplay","createSimpleObject","createSimpleTask","createSite","createSoundSource","createTarget","createTask","createTeam","createTrigger","createUnit","createVehicle","createVehicleCrew","createVehicleLocal","crew","ctAddHeader","ctAddRow","ctClear","ctCurSel","ctData","ctFindHeaderRows","ctFindRowHeader","ctHeaderControls","ctHeaderCount","ctRemoveHeaders","ctRemoveRows","ctrlActivate","ctrlAddEventHandler","ctrlAngle","ctrlAnimateModel","ctrlAnimationPhaseModel","ctrlAutoScrollDelay","ctrlAutoScrollRewind","ctrlAutoScrollSpeed","ctrlChecked","ctrlClassName","ctrlCommit","ctrlCommitted","ctrlCreate","ctrlDelete","ctrlEnable","ctrlEnabled","ctrlFade","ctrlFontHeight","ctrlHTMLLoaded","ctrlIDC","ctrlIDD","ctrlMapAnimAdd","ctrlMapAnimClear","ctrlMapAnimCommit","ctrlMapAnimDone","ctrlMapCursor","ctrlMapMouseOver","ctrlMapScale","ctrlMapScreenToWorld","ctrlMapWorldToScreen","ctrlModel","ctrlModelDirAndUp","ctrlModelScale","ctrlMousePosition","ctrlParent","ctrlParentControlsGroup","ctrlPosition","ctrlRemoveAllEventHandlers","ctrlRemoveEventHandler","ctrlScale","ctrlScrollValues","ctrlSetActiveColor","ctrlSetAngle","ctrlSetAutoScrollDelay","ctrlSetAutoScrollRewind","ctrlSetAutoScrollSpeed","ctrlSetBackgroundColor","ctrlSetChecked","ctrlSetDisabledColor","ctrlSetEventHandler","ctrlSetFade","ctrlSetFocus","ctrlSetFont","ctrlSetFontH1","ctrlSetFontH1B","ctrlSetFontH2","ctrlSetFontH2B","ctrlSetFontH3","ctrlSetFontH3B","ctrlSetFontH4","ctrlSetFontH4B","ctrlSetFontH5","ctrlSetFontH5B","ctrlSetFontH6","ctrlSetFontH6B","ctrlSetFontHeight","ctrlSetFontHeightH1","ctrlSetFontHeightH2","ctrlSetFontHeightH3","ctrlSetFontHeightH4","ctrlSetFontHeightH5","ctrlSetFontHeightH6","ctrlSetFontHeightSecondary","ctrlSetFontP","ctrlSetFontPB","ctrlSetFontSecondary","ctrlSetForegroundColor","ctrlSetModel","ctrlSetModelDirAndUp","ctrlSetModelScale","ctrlSetMousePosition","ctrlSetPixelPrecision","ctrlSetPosition","ctrlSetPositionH","ctrlSetPositionW","ctrlSetPositionX","ctrlSetPositionY","ctrlSetScale","ctrlSetScrollValues","ctrlSetStructuredText","ctrlSetText","ctrlSetTextColor","ctrlSetTextColorSecondary","ctrlSetTextSecondary","ctrlSetTextSelection","ctrlSetTooltip","ctrlSetTooltipColorBox","ctrlSetTooltipColorShade","ctrlSetTooltipColorText","ctrlSetURL","ctrlShow","ctrlShown","ctrlStyle","ctrlText","ctrlTextColor","ctrlTextHeight","ctrlTextSecondary","ctrlTextSelection","ctrlTextWidth","ctrlTooltip","ctrlType","ctrlURL","ctrlVisible","ctRowControls","ctRowCount","ctSetCurSel","ctSetData","ctSetHeaderTemplate","ctSetRowTemplate","ctSetValue","ctValue","curatorAddons","curatorCamera","curatorCameraArea","curatorCameraAreaCeiling","curatorCoef","curatorEditableObjects","curatorEditingArea","curatorEditingAreaType","curatorMouseOver","curatorPoints","curatorRegisteredObjects","curatorSelected","curatorWaypointCost","current3DENOperation","currentChannel","currentCommand","currentMagazine","currentMagazineDetail","currentMagazineDetailTurret","currentMagazineTurret","currentMuzzle","currentNamespace","currentPilot","currentTask","currentTasks","currentThrowable","currentVisionMode","currentWaypoint","currentWeapon","currentWeaponMode","currentWeaponTurret","currentZeroing","cursorObject","cursorTarget","customChat","customRadio","customWaypointPosition","cutFadeOut","cutObj","cutRsc","cutText","damage","date","dateToNumber","daytime","deActivateKey","debriefingText","debugFSM","debugLog","decayGraphValues","deg","delete3DENEntities","deleteAt","deleteCenter","deleteCollection","deleteEditorObject","deleteGroup","deleteGroupWhenEmpty","deleteIdentity","deleteLocation","deleteMarker","deleteMarkerLocal","deleteRange","deleteResources","deleteSite","deleteStatus","deleteTarget","deleteTeam","deleteVehicle","deleteVehicleCrew","deleteWaypoint","detach","detectedMines","diag_activeMissionFSMs","diag_activeScripts","diag_activeSQSScripts","diag_captureFrameToFile","diag_captureSlowFrame","diag_deltaTime","diag_drawMode","diag_enable","diag_enabled","diag_fps","diag_fpsMin","diag_frameNo","diag_list","diag_mergeConfigFile","diag_scope","diag_activeSQFScripts","diag_allMissionEventHandlers","diag_captureFrame","diag_codePerformance","diag_dumpCalltraceToLog","diag_dumpTerrainSynth","diag_dynamicSimulationEnd","diag_exportConfig","diag_exportTerrainSVG","diag_lightNewLoad","diag_localized","diag_log","diag_logSlowFrame","diag_recordTurretLimits","diag_resetShapes","diag_setLightNew","diag_tickTime","diag_toggle","dialog","diaryRecordNull","diarySubjectExists","didJIP","didJIPOwner","difficulty","difficultyEnabled","difficultyEnabledRTD","difficultyOption","direction","directSay","disableAI","disableCollisionWith","disableConversation","disableDebriefingStats","disableMapIndicators","disableNVGEquipment","disableRemoteSensors","disableSerialization","disableTIEquipment","disableUAVConnectability","disableUserInput","displayAddEventHandler","displayCtrl","displayParent","displayRemoveAllEventHandlers","displayRemoveEventHandler","displaySetEventHandler","dissolveTeam","distance","distance2D","distanceSqr","distributionRegion","do3DENAction","doArtilleryFire","doFire","doFollow","doFSM","doGetOut","doMove","doorPhase","doStop","doSuppressiveFire","doTarget","doWatch","drawArrow","drawEllipse","drawIcon","drawIcon3D","drawLine","drawLine3D","drawLink","drawLocation","drawPolygon","drawRectangle","drawTriangle","driver","drop","dynamicSimulationDistance","dynamicSimulationDistanceCoef","dynamicSimulationEnabled","dynamicSimulationSystemEnabled","echo","edit3DENMissionAttributes","editObject","editorSetEventHandler","effectiveCommander","elevatePeriscope","emptyPositions","enableAI","enableAIFeature","enableAimPrecision","enableAttack","enableAudioFeature","enableAutoStartUpRTD","enableAutoTrimRTD","enableCamShake","enableCaustics","enableChannel","enableCollisionWith","enableCopilot","enableDebriefingStats","enableDiagLegend","enableDynamicSimulation","enableDynamicSimulationSystem","enableEndDialog","enableEngineArtillery","enableEnvironment","enableFatigue","enableGunLights","enableInfoPanelComponent","enableIRLasers","enableMimics","enablePersonTurret","enableRadio","enableReload","enableRopeAttach","enableSatNormalOnDetail","enableSaving","enableSentences","enableSimulation","enableSimulationGlobal","enableStamina","enableStressDamage","enableTeamSwitch","enableTraffic","enableUAVConnectability","enableUAVWaypoints","enableVehicleCargo","enableVehicleSensor","enableWeaponDisassembly","endLoadingScreen","endMission","enemy","engineOn","enginesIsOnRTD","enginesPowerRTD","enginesRpmRTD","enginesTorqueRTD","entities","environmentEnabled","environmentVolume","estimatedEndServerTime","estimatedTimeLeft","evalObjectArgument","everyBackpack","everyContainer","exec","execEditorScript","execFSM","execVM","exp","expectedDestination","exportJIPMessages","exportLandscapeXYZ","eyeDirection","eyePos","face","faction","fadeEnvironment","fadeMusic","fadeRadio","fadeSound","fadeSpeech","failMission","fileExists","fillWeaponsFromPool","find","findCover","findDisplay","findEditorObject","findEmptyPosition","findEmptyPositionReady","findIf","findNearestEnemy","finishMissionInit","finite","fire","fireAtTarget","firstBackpack","flag","flagAnimationPhase","flagOwner","flagSide","flagTexture","flatten","fleeing","floor","flyInHeight","flyInHeightASL","focusedCtrl","fog","fogForecast","fogParams","forceAddUniform","forceAtPositionRTD","forceCadetDifficulty","forcedMap","forceEnd","forceFlagTexture","forceFollowRoad","forceGeneratorRTD","forceMap","forceRespawn","forceSpeed","forceUnicode","forceWalk","forceWeaponFire","forceWeatherChange","forEachMember","forEachMemberAgent","forEachMemberTeam","forgetTarget","format","formation","formationDirection","formationLeader","formationMembers","formationPosition","formationTask","formatText","formLeader","freeLook","friendly","fromEditor","fuel","fullCrew","gearIDCAmmoCount","gearSlotAmmoCount","gearSlotData","get","get3DENActionState","get3DENAttribute","get3DENCamera","get3DENConnections","get3DENEntity","get3DENEntityID","get3DENGrid","get3DENIconsVisible","get3DENLayerEntities","get3DENLinesVisible","get3DENMissionAttribute","get3DENMouseOver","get3DENSelected","getAimingCoef","getAllEnvSoundControllers","getAllHitPointsDamage","getAllOwnedMines","getAllPylonsInfo","getAllSoundControllers","getAllUnitTraits","getAmmoCargo","getAnimAimPrecision","getAnimSpeedCoef","getArray","getArtilleryAmmo","getArtilleryComputerSettings","getArtilleryETA","getAssetDLCInfo","getAssignedCuratorLogic","getAssignedCuratorUnit","getAttackTarget","getAudioOptionVolumes","getBackpackCargo","getBleedingRemaining","getBurningValue","getCalculatePlayerVisibilityByFriendly","getCameraViewDirection","getCargoIndex","getCenterOfMass","getClientState","getClientStateNumber","getCompatiblePylonMagazines","getConnectedUAV","getContainerMaxLoad","getCursorObjectParams","getCustomAimCoef","getCustomSoundController","getCustomSoundControllerCount","getDammage","getDescription","getDir","getDirVisual","getDiverState","getDLCAssetsUsage","getDLCAssetsUsageByName","getDLCs","getDLCUsageTime","getEditorCamera","getEditorMode","getEditorObjectScope","getElevationOffset","getEnvSoundController","getFatigue","getFieldManualStartPage","getForcedFlagTexture","getFriend","getFSMVariable","getFuelCargo","getGraphValues","getGroupIcon","getGroupIconParams","getGroupIcons","getHideFrom","getHit","getHitIndex","getHitPointDamage","getItemCargo","getLighting","getLightingAt","getLoadedModsInfo","getMagazineCargo","getMarkerColor","getMarkerPos","getMarkerSize","getMarkerType","getMass","getMissionConfig","getMissionConfigValue","getMissionDLCs","getMissionLayerEntities","getMissionLayers","getMissionPath","getModelInfo","getMousePosition","getMusicPlayedTime","getNumber","getObjectArgument","getObjectChildren","getObjectDLC","getObjectFOV","getObjectMaterials","getObjectProxy","getObjectScale","getObjectTextures","getObjectType","getObjectViewDistance","getOrDefault","getOxygenRemaining","getPersonUsedDLCs","getPilotCameraDirection","getPilotCameraPosition","getPilotCameraRotation","getPilotCameraTarget","getPlateNumber","getPlayerChannel","getPlayerID","getPlayerScores","getPlayerUID","getPlayerUIDOld","getPlayerVoNVolume","getPos","getPosASL","getPosASLVisual","getPosASLW","getPosATL","getPosATLVisual","getPosVisual","getPosWorld","getPosWorldVisual","getPylonMagazines","getRelDir","getRelPos","getRemoteSensorsDisabled","getRepairCargo","getResolution","getRoadInfo","getRotorBrakeRTD","getShadowDistance","getShotParents","getSlingLoad","getSoundController","getSoundControllerResult","getSpeed","getStamina","getStatValue","getSteamFriendsServers","getSubtitleOptions","getSuppression","getTerrainGrid","getTerrainHeightASL","getText","getTextRaw","getTextWidth","getTotalDLCUsageTime","getTrimOffsetRTD","getUnitLoadout","getUnitTrait","getUserMFDText","getUserMFDValue","getVariable","getVehicleCargo","getVehicleTIPars","getWeaponCargo","getWeaponSway","getWingsOrientationRTD","getWingsPositionRTD","getWorld","getWPPos","glanceAt","globalChat","globalRadio","goggles","goto","group","groupChat","groupFromNetId","groupIconSelectable","groupIconsVisible","groupId","groupOwner","groupRadio","groupSelectedUnits","groupSelectUnit","gunner","gusts","halt","handgunItems","handgunMagazine","handgunWeapon","handsHit","hasInterface","hasPilotCamera","hasWeapon","hcAllGroups","hcGroupParams","hcLeader","hcRemoveAllGroups","hcRemoveGroup","hcSelected","hcSelectGroup","hcSetGroup","hcShowBar","hcShownBar","headgear","hideBehindScripted","hideBody","hideObject","hideObjectGlobal","hideSelection","hierarchyObjectsCount","hint","hintC","hintCadet","hintSilent","hmd","hostMission","htmlLoad","HUDMovementLevels","humidity","image","importAllGroups","importance","in","inArea","inAreaArray","incapacitatedState","inflame","inflamed","infoPanel","infoPanelComponentEnabled","infoPanelComponents","infoPanels","inGameUISetEventHandler","inheritsFrom","initAmbientLife","inPolygon","inputAction","inRangeOfArtillery","insert","insertEditorObject","intersect","is3DEN","is3DENMultiplayer","is3DENPreview","isAbleToBreathe","isActionMenuVisible","isAgent","isAimPrecisionEnabled","isArray","isAutoHoverOn","isAutonomous","isAutoStartUpEnabledRTD","isAutotest","isAutoTrimOnRTD","isBleeding","isBurning","isClass","isCollisionLightOn","isCopilotEnabled","isDamageAllowed","isDedicated","isDLCAvailable","isEngineOn","isEqualTo","isEqualType","isEqualTypeAll","isEqualTypeAny","isEqualTypeArray","isEqualTypeParams","isFilePatchingEnabled","isFinal","isFlashlightOn","isFlatEmpty","isForcedWalk","isFormationLeader","isGameFocused","isGamePaused","isGroupDeletedWhenEmpty","isHidden","isHideBehindScripted","isInRemainsCollector","isInstructorFigureEnabled","isIRLaserOn","isKeyActive","isKindOf","isLaserOn","isLightOn","isLocalized","isManualFire","isMarkedForCollection","isMultiplayer","isMultiplayerSolo","isNil","isNotEqualTo","isNull","isNumber","isObjectHidden","isObjectRTD","isOnRoad","isPiPEnabled","isPlayer","isRealTime","isRemoteExecuted","isRemoteExecutedJIP","isSensorTargetConfirmed","isServer","isShowing3DIcons","isSimpleObject","isSprintAllowed","isStaminaEnabled","isSteamMission","isStreamFriendlyUIEnabled","isStressDamageEnabled","isText","isTouchingGround","isTurnedOut","isTutHintsEnabled","isUAVConnectable","isUAVConnected","isUIContext","isUniformAllowed","isVehicleCargo","isVehicleRadarOn","isVehicleSensorEnabled","isWalking","isWeaponDeployed","isWeaponRested","itemCargo","items","itemsWithMagazines","join","joinAs","joinAsSilent","joinSilent","joinString","kbAddDatabase","kbAddDatabaseTargets","kbAddTopic","kbHasTopic","kbReact","kbRemoveTopic","kbTell","kbWasSaid","keyImage","keyName","keys","knowsAbout","land","landAt","landResult","language","laserTarget","lbAdd","lbClear","lbColor","lbColorRight","lbCurSel","lbData","lbDelete","lbIsSelected","lbPicture","lbPictureRight","lbSelection","lbSetColor","lbSetColorRight","lbSetCurSel","lbSetData","lbSetPicture","lbSetPictureColor","lbSetPictureColorDisabled","lbSetPictureColorSelected","lbSetPictureRight","lbSetPictureRightColor","lbSetPictureRightColorDisabled","lbSetPictureRightColorSelected","lbSetSelectColor","lbSetSelectColorRight","lbSetSelected","lbSetText","lbSetTextRight","lbSetTooltip","lbSetValue","lbSize","lbSort","lbSortByValue","lbText","lbTextRight","lbValue","leader","leaderboardDeInit","leaderboardGetRows","leaderboardInit","leaderboardRequestRowsFriends","leaderboardRequestRowsGlobal","leaderboardRequestRowsGlobalAroundUser","leaderboardsRequestUploadScore","leaderboardsRequestUploadScoreKeepBest","leaderboardState","leaveVehicle","libraryCredits","libraryDisclaimers","lifeState","lightAttachObject","lightDetachObject","lightIsOn","lightnings","limitSpeed","linearConversion","lineIntersects","lineIntersectsObjs","lineIntersectsSurfaces","lineIntersectsWith","linkItem","list","listObjects","listRemoteTargets","listVehicleSensors","ln","lnbAddArray","lnbAddColumn","lnbAddRow","lnbClear","lnbColor","lnbColorRight","lnbCurSelRow","lnbData","lnbDeleteColumn","lnbDeleteRow","lnbGetColumnsPosition","lnbPicture","lnbPictureRight","lnbSetColor","lnbSetColorRight","lnbSetColumnsPos","lnbSetCurSelRow","lnbSetData","lnbSetPicture","lnbSetPictureColor","lnbSetPictureColorRight","lnbSetPictureColorSelected","lnbSetPictureColorSelectedRight","lnbSetPictureRight","lnbSetText","lnbSetTextRight","lnbSetTooltip","lnbSetValue","lnbSize","lnbSort","lnbSortByValue","lnbText","lnbTextRight","lnbValue","load","loadAbs","loadBackpack","loadFile","loadGame","loadIdentity","loadMagazine","loadOverlay","loadStatus","loadUniform","loadVest","local","localize","localNamespace","locationPosition","lock","lockCameraTo","lockCargo","lockDriver","locked","lockedCargo","lockedDriver","lockedInventory","lockedTurret","lockIdentity","lockInventory","lockTurret","lockWP","log","logEntities","logNetwork","logNetworkTerminate","lookAt","lookAtPos","magazineCargo","magazines","magazinesAllTurrets","magazinesAmmo","magazinesAmmoCargo","magazinesAmmoFull","magazinesDetail","magazinesDetailBackpack","magazinesDetailUniform","magazinesDetailVest","magazinesTurret","magazineTurretAmmo","mapAnimAdd","mapAnimClear","mapAnimCommit","mapAnimDone","mapCenterOnCamera","mapGridPosition","markAsFinishedOnSteam","markerAlpha","markerBrush","markerChannel","markerColor","markerDir","markerPolyline","markerPos","markerShadow","markerShape","markerSize","markerText","markerType","matrixMultiply","matrixTranspose","max","members","menuAction","menuAdd","menuChecked","menuClear","menuCollapse","menuData","menuDelete","menuEnable","menuEnabled","menuExpand","menuHover","menuPicture","menuSetAction","menuSetCheck","menuSetData","menuSetPicture","menuSetShortcut","menuSetText","menuSetURL","menuSetValue","menuShortcut","menuShortcutText","menuSize","menuSort","menuText","menuURL","menuValue","merge","min","mineActive","mineDetectedBy","missileTarget","missileTargetPos","missionConfigFile","missionDifficulty","missionName","missionNameSource","missionNamespace","missionStart","missionVersion","mod","modelToWorld","modelToWorldVisual","modelToWorldVisualWorld","modelToWorldWorld","modParams","moonIntensity","moonPhase","morale","move","move3DENCamera","moveInAny","moveInCargo","moveInCommander","moveInDriver","moveInGunner","moveInTurret","moveObjectToEnd","moveOut","moveTarget","moveTime","moveTo","moveToCompleted","moveToFailed","musicVolume","name","namedProperties","nameSound","nearEntities","nearestBuilding","nearestLocation","nearestLocations","nearestLocationWithDubbing","nearestObject","nearestObjects","nearestTerrainObjects","nearObjects","nearObjectsReady","nearRoads","nearSupplies","nearTargets","needReload","netId","netObjNull","newOverlay","nextMenuItemIndex","nextWeatherChange","nMenuItems","not","numberOfEnginesRTD","numberToDate","object","objectCurators","objectFromNetId","objectParent","objStatus","onBriefingGear","onBriefingGroup","onBriefingNotes","onBriefingPlan","onBriefingTeamSwitch","onCommandModeChanged","onDoubleClick","onEachFrame","onGroupIconClick","onGroupIconOverEnter","onGroupIconOverLeave","onHCGroupSelectionChanged","onMapSingleClick","onPlayerConnected","onPlayerDisconnected","onPreloadFinished","onPreloadStarted","onShowNewObject","onTeamSwitch","openCuratorInterface","openDLCPage","openDSInterface","openGPS","openMap","openSteamApp","openYoutubeVideo","or","orderGetIn","overcast","overcastForecast","owner","param","params","parseNumber","parseSimpleArray","parseText","parsingNamespace","particlesQuality","periscopeElevation","pickWeaponPool","pitch","pixelGrid","pixelGridBase","pixelGridNoUIScale","pixelH","pixelW","playableSlotsNumber","playableUnits","playAction","playActionNow","player","playerRespawnTime","playerSide","playersNumber","playGesture","playMission","playMove","playMoveNow","playMusic","playScriptedMission","playSound","playSound3D","position","positionCameraToWorld","posScreenToWorld","posWorldToScreen","ppEffectAdjust","ppEffectCommit","ppEffectCommitted","ppEffectCreate","ppEffectDestroy","ppEffectEnable","ppEffectEnabled","ppEffectForceInNVG","precision","preloadCamera","preloadObject","preloadSound","preloadTitleObj","preloadTitleRsc","preprocessFile","preprocessFileLineNumbers","primaryWeapon","primaryWeaponItems","primaryWeaponMagazine","priority","processDiaryLink","processInitCommands","productVersion","profileName","profileNamespace","profileNameSteam","progressLoadingScreen","progressPosition","progressSetPosition","publicVariable","publicVariableClient","publicVariableServer","pushBack","pushBackUnique","putWeaponPool","queryItemsPool","queryMagazinePool","queryWeaponPool","rad","radioChannelAdd","radioChannelCreate","radioChannelInfo","radioChannelRemove","radioChannelSetCallSign","radioChannelSetLabel","radioVolume","rain","rainbow","random","rank","rankId","rating","rectangular","registeredTasks","registerTask","reload","reloadEnabled","remoteControl","remoteExec","remoteExecCall","remoteExecutedOwner","remove3DENConnection","remove3DENEventHandler","remove3DENLayer","removeAction","removeAll3DENEventHandlers","removeAllActions","removeAllAssignedItems","removeAllBinocularItems","removeAllContainers","removeAllCuratorAddons","removeAllCuratorCameraAreas","removeAllCuratorEditingAreas","removeAllEventHandlers","removeAllHandgunItems","removeAllItems","removeAllItemsWithMagazines","removeAllMissionEventHandlers","removeAllMPEventHandlers","removeAllMusicEventHandlers","removeAllOwnedMines","removeAllPrimaryWeaponItems","removeAllSecondaryWeaponItems","removeAllWeapons","removeBackpack","removeBackpackGlobal","removeBinocularItem","removeClothing","removeCuratorAddons","removeCuratorCameraArea","removeCuratorEditableObjects","removeCuratorEditingArea","removeDiaryRecord","removeDiarySubject","removeDrawIcon","removeDrawLinks","removeEventHandler","removeFromRemainsCollector","removeGoggles","removeGroupIcon","removeHandgunItem","removeHeadgear","removeItem","removeItemFromBackpack","removeItemFromUniform","removeItemFromVest","removeItems","removeMagazine","removeMagazineGlobal","removeMagazines","removeMagazinesTurret","removeMagazineTurret","removeMenuItem","removeMissionEventHandler","removeMPEventHandler","removeMusicEventHandler","removeOwnedMine","removePrimaryWeaponItem","removeSecondaryWeaponItem","removeSimpleTask","removeSwitchableUnit","removeTeamMember","removeUniform","removeVest","removeWeapon","removeWeaponAttachmentCargo","removeWeaponCargo","removeWeaponGlobal","removeWeaponTurret","reportRemoteTarget","requiredVersion","resetCamShake","resetSubgroupDirection","resize","resources","respawnVehicle","restartEditorCamera","reveal","revealMine","reverse","reversedMouseY","roadAt","roadsConnectedTo","roleDescription","ropeAttachedObjects","ropeAttachedTo","ropeAttachEnabled","ropeAttachTo","ropeCreate","ropeCut","ropeDestroy","ropeDetach","ropeEndPosition","ropeLength","ropes","ropeSegments","ropeSetCargoMass","ropeUnwind","ropeUnwound","rotorsForcesRTD","rotorsRpmRTD","round","runInitScript","safeZoneH","safeZoneW","safeZoneWAbs","safeZoneX","safeZoneXAbs","safeZoneY","save3DENInventory","saveGame","saveIdentity","saveJoysticks","saveOverlay","saveProfileNamespace","saveStatus","saveVar","savingEnabled","say","say2D","say3D","scopeName","score","scoreSide","screenshot","screenToWorld","scriptDone","scriptName","scudState","secondaryWeapon","secondaryWeaponItems","secondaryWeaponMagazine","select","selectBestPlaces","selectDiarySubject","selectedEditorObjects","selectEditorObject","selectionNames","selectionPosition","selectLeader","selectMax","selectMin","selectNoPlayer","selectPlayer","selectRandom","selectRandomWeighted","selectWeapon","selectWeaponTurret","sendAUMessage","sendSimpleCommand","sendTask","sendTaskResult","sendUDPMessage","serverCommand","serverCommandAvailable","serverCommandExecutable","serverName","serverTime","set","set3DENAttribute","set3DENAttributes","set3DENGrid","set3DENIconsVisible","set3DENLayer","set3DENLinesVisible","set3DENLogicType","set3DENMissionAttribute","set3DENMissionAttributes","set3DENModelsVisible","set3DENObjectType","set3DENSelected","setAccTime","setActualCollectiveRTD","setAirplaneThrottle","setAirportSide","setAmmo","setAmmoCargo","setAmmoOnPylon","setAnimSpeedCoef","setAperture","setApertureNew","setAPURTD","setArmoryPoints","setAttributes","setAutonomous","setBatteryChargeRTD","setBatteryRTD","setBehaviour","setBehaviourStrong","setBleedingRemaining","setBrakesRTD","setCameraEffect","setCameraInterest","setCamShakeDefParams","setCamShakeParams","setCamUseTI","setCaptive","setCenterOfMass","setCollisionLight","setCombatBehaviour","setCombatMode","setCompassOscillation","setConvoySeparation","setCuratorCameraAreaCeiling","setCuratorCoef","setCuratorEditingAreaType","setCuratorWaypointCost","setCurrentChannel","setCurrentTask","setCurrentWaypoint","setCustomAimCoef","setCustomMissionData","setCustomSoundController","setCustomWeightRTD","setDamage","setDammage","setDate","setDebriefingText","setDefaultCamera","setDestination","setDetailMapBlendPars","setDiaryRecordText","setDiarySubjectPicture","setDir","setDirection","setDrawIcon","setDriveOnPath","setDropInterval","setDynamicSimulationDistance","setDynamicSimulationDistanceCoef","setEditorMode","setEditorObjectScope","setEffectCondition","setEffectiveCommander","setEngineRPMRTD","setEngineRpmRTD","setFace","setFaceAnimation","setFatigue","setFeatureType","setFlagAnimationPhase","setFlagOwner","setFlagSide","setFlagTexture","setFog","setForceGeneratorRTD","setFormation","setFormationTask","setFormDir","setFriend","setFromEditor","setFSMVariable","setFuel","setFuelCargo","setGroupIcon","setGroupIconParams","setGroupIconsSelectable","setGroupIconsVisible","setGroupId","setGroupIdGlobal","setGroupOwner","setGusts","setHideBehind","setHit","setHitIndex","setHitPointDamage","setHorizonParallaxCoef","setHUDMovementLevels","setIdentity","setImportance","setInfoPanel","setLeader","setLightAmbient","setLightAttenuation","setLightBrightness","setLightColor","setLightDayLight","setLightFlareMaxDistance","setLightFlareSize","setLightIntensity","setLightnings","setLightUseFlare","setLocalWindParams","setMagazineTurretAmmo","setMarkerAlpha","setMarkerAlphaLocal","setMarkerBrush","setMarkerBrushLocal","setMarkerColor","setMarkerColorLocal","setMarkerDir","setMarkerDirLocal","setMarkerPolyline","setMarkerPolylineLocal","setMarkerPos","setMarkerPosLocal","setMarkerShadow","setMarkerShadowLocal","setMarkerShape","setMarkerShapeLocal","setMarkerSize","setMarkerSizeLocal","setMarkerText","setMarkerTextLocal","setMarkerType","setMarkerTypeLocal","setMass","setMimic","setMissileTarget","setMissileTargetPos","setMousePosition","setMusicEffect","setMusicEventHandler","setName","setNameSound","setObjectArguments","setObjectMaterial","setObjectMaterialGlobal","setObjectProxy","setObjectScale","setObjectTexture","setObjectTextureGlobal","setObjectViewDistance","setOvercast","setOwner","setOxygenRemaining","setParticleCircle","setParticleClass","setParticleFire","setParticleParams","setParticleRandom","setPilotCameraDirection","setPilotCameraRotation","setPilotCameraTarget","setPilotLight","setPiPEffect","setPitch","setPlateNumber","setPlayable","setPlayerRespawnTime","setPlayerVoNVolume","setPos","setPosASL","setPosASL2","setPosASLW","setPosATL","setPosition","setPosWorld","setPylonLoadout","setPylonsPriority","setRadioMsg","setRain","setRainbow","setRandomLip","setRank","setRectangular","setRepairCargo","setRotorBrakeRTD","setShadowDistance","setShotParents","setSide","setSimpleTaskAlwaysVisible","setSimpleTaskCustomData","setSimpleTaskDescription","setSimpleTaskDestination","setSimpleTaskTarget","setSimpleTaskType","setSimulWeatherLayers","setSize","setSkill","setSlingLoad","setSoundEffect","setSpeaker","setSpeech","setSpeedMode","setStamina","setStaminaScheme","setStarterRTD","setStatValue","setSuppression","setSystemOfUnits","setTargetAge","setTaskMarkerOffset","setTaskResult","setTaskState","setTerrainGrid","setText","setThrottleRTD","setTimeMultiplier","setTitleEffect","setToneMapping","setToneMappingParams","setTrafficDensity","setTrafficDistance","setTrafficGap","setTrafficSpeed","setTriggerActivation","setTriggerArea","setTriggerInterval","setTriggerStatements","setTriggerText","setTriggerTimeout","setTriggerType","setType","setUnconscious","setUnitAbility","setUnitCombatMode","setUnitLoadout","setUnitPos","setUnitPosWeak","setUnitRank","setUnitRecoilCoefficient","setUnitTrait","setUnloadInCombat","setUserActionText","setUserMFDText","setUserMFDValue","setVariable","setVectorDir","setVectorDirAndUp","setVectorUp","setVehicleAmmo","setVehicleAmmoDef","setVehicleArmor","setVehicleCargo","setVehicleId","setVehicleInit","setVehicleLock","setVehiclePosition","setVehicleRadar","setVehicleReceiveRemoteTargets","setVehicleReportOwnPosition","setVehicleReportRemoteTargets","setVehicleTIPars","setVehicleVarName","setVelocity","setVelocityModelSpace","setVelocityTransformation","setViewDistance","setVisibleIfTreeCollapsed","setWantedRPMRTD","setWaves","setWaypointBehaviour","setWaypointCombatMode","setWaypointCompletionRadius","setWaypointDescription","setWaypointForceBehaviour","setWaypointFormation","setWaypointHousePosition","setWaypointLoiterAltitude","setWaypointLoiterRadius","setWaypointLoiterType","setWaypointName","setWaypointPosition","setWaypointScript","setWaypointSpeed","setWaypointStatements","setWaypointTimeout","setWaypointType","setWaypointVisible","setWeaponReloadingTime","setWeaponZeroing","setWind","setWindDir","setWindForce","setWindStr","setWingForceScaleRTD","setWPPos","show3DIcons","showChat","showCinemaBorder","showCommandingMenu","showCompass","showCuratorCompass","showGPS","showHUD","showLegend","showMap","shownArtilleryComputer","shownChat","shownCompass","shownCuratorCompass","showNewEditorObject","shownGPS","shownHUD","shownMap","shownPad","shownRadio","shownScoretable","shownUAVFeed","shownWarrant","shownWatch","showPad","showRadio","showScoretable","showSubtitles","showUAVFeed","showWarrant","showWatch","showWaypoint","showWaypoints","side","sideChat","sideEmpty","sideEnemy","sideFriendly","sideRadio","simpleTasks","simulationEnabled","simulCloudDensity","simulCloudOcclusion","simulInClouds","simulSetHumidity","simulWeatherSync","sin","size","sizeOf","skill","skillFinal","skipTime","sleep","sliderPosition","sliderRange","sliderSetPosition","sliderSetRange","sliderSetSpeed","sliderSpeed","slingLoadAssistantShown","soldierMagazines","someAmmo","sort","soundVolume","spawn","speaker","speechVolume","speed","speedMode","splitString","sqrt","squadParams","stance","startLoadingScreen","step","stop","stopEngineRTD","stopped","str","sunOrMoon","supportInfo","suppressFor","surfaceIsWater","surfaceNormal","surfaceTexture","surfaceType","swimInDepth","switchableUnits","switchAction","switchCamera","switchGesture","switchLight","switchMove","synchronizedObjects","synchronizedTriggers","synchronizedWaypoints","synchronizeObjectsAdd","synchronizeObjectsRemove","synchronizeTrigger","synchronizeWaypoint","systemChat","systemOfUnits","systemTime","systemTimeUTC","tan","targetKnowledge","targets","targetsAggregate","targetsQuery","taskAlwaysVisible","taskChildren","taskCompleted","taskCustomData","taskDescription","taskDestination","taskHint","taskMarkerOffset","taskName","taskParent","taskResult","taskState","taskType","teamMember","teamName","teams","teamSwitch","teamSwitchEnabled","teamType","terminate","terrainIntersect","terrainIntersectASL","terrainIntersectAtASL","text","textLog","textLogFormat","tg","throttleRTD","time","timeMultiplier","titleCut","titleFadeOut","titleObj","titleRsc","titleText","toArray","toFixed","toLower","toLowerANSI","toString","toUpper","toUpperANSI","triggerActivated","triggerActivation","triggerAmmo","triggerArea","triggerAttachedVehicle","triggerAttachObject","triggerAttachVehicle","triggerDynamicSimulation","triggerInterval","triggerStatements","triggerText","triggerTimeout","triggerTimeoutCurrent","triggerType","trim","turretLocal","turretOwner","turretUnit","tvAdd","tvClear","tvCollapse","tvCollapseAll","tvCount","tvCurSel","tvData","tvDelete","tvExpand","tvExpandAll","tvIsSelected","tvPicture","tvPictureRight","tvSelection","tvSetColor","tvSetCurSel","tvSetData","tvSetPicture","tvSetPictureColor","tvSetPictureColorDisabled","tvSetPictureColorSelected","tvSetPictureRight","tvSetPictureRightColor","tvSetPictureRightColorDisabled","tvSetPictureRightColorSelected","tvSetSelectColor","tvSetSelected","tvSetText","tvSetTooltip","tvSetValue","tvSort","tvSortAll","tvSortByValue","tvSortByValueAll","tvText","tvTooltip","tvValue","type","typeName","typeOf","UAVControl","uiNamespace","uiSleep","unassignCurator","unassignItem","unassignTeam","unassignVehicle","underwater","uniform","uniformContainer","uniformItems","uniformMagazines","unitAddons","unitAimPosition","unitAimPositionVisual","unitBackpack","unitCombatMode","unitIsUAV","unitPos","unitReady","unitRecoilCoefficient","units","unitsBelowHeight","unitTurret","unlinkItem","unlockAchievement","unregisterTask","updateDrawIcon","updateMenuItem","updateObjectTree","useAIOperMapObstructionTest","useAISteeringComponent","useAudioTimeForMoves","userInputDisabled","vectorAdd","vectorCos","vectorCrossProduct","vectorDiff","vectorDir","vectorDirVisual","vectorDistance","vectorDistanceSqr","vectorDotProduct","vectorFromTo","vectorLinearConversion","vectorMagnitude","vectorMagnitudeSqr","vectorModelToWorld","vectorModelToWorldVisual","vectorMultiply","vectorNormalized","vectorUp","vectorUpVisual","vectorWorldToModel","vectorWorldToModelVisual","vehicle","vehicleCargoEnabled","vehicleChat","vehicleMoveInfo","vehicleRadio","vehicleReceiveRemoteTargets","vehicleReportOwnPosition","vehicleReportRemoteTargets","vehicles","vehicleVarName","velocity","velocityModelSpace","verifySignature","vest","vestContainer","vestItems","vestMagazines","viewDistance","visibleCompass","visibleGPS","visibleMap","visiblePosition","visiblePositionASL","visibleScoretable","visibleWatch","waves","waypointAttachedObject","waypointAttachedVehicle","waypointAttachObject","waypointAttachVehicle","waypointBehaviour","waypointCombatMode","waypointCompletionRadius","waypointDescription","waypointForceBehaviour","waypointFormation","waypointHousePosition","waypointLoiterAltitude","waypointLoiterRadius","waypointLoiterType","waypointName","waypointPosition","waypoints","waypointScript","waypointsEnabledUAV","waypointShow","waypointSpeed","waypointStatements","waypointTimeout","waypointTimeoutCurrent","waypointType","waypointVisible","weaponAccessories","weaponAccessoriesCargo","weaponCargo","weaponDirection","weaponInertia","weaponLowered","weapons","weaponsItems","weaponsItemsCargo","weaponState","weaponsTurret","weightRTD","WFSideText","wind","windDir","windRTD","windStr","wingsForcesRTD","worldName","worldSize","worldToModel","worldToModelVisual","worldToScreen"], +literal:["blufor","civilian","configNull","controlNull","displayNull","east","endl","false","grpNull","independent","lineBreak","locationNull","nil","objNull","opfor","pi","resistance","scriptNull","sideAmbientLife","sideEmpty","sideLogic","sideUnknown","taskNull","teamMemberNull","true","west"] +},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.NUMBER_MODE,{ +className:"variable",begin:/\b_+[a-zA-Z]\w*/},{className:"title", +begin:/[a-zA-Z]\w+_fnc_\w+/},t,a],illegal:/#|^\$ /}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/sql.min.js b/src/app/resources/assets/highlight/es/languages/sql.min.js new file mode 100644 index 0000000..f5977bf --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/sql.min.js @@ -0,0 +1,17 @@ +/*! `sql` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const r=e.regex,t=e.COMMENT("--","$"),a=["true","false","unknown"],n=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],i=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],o=i,c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!i.includes(e))),l={ +begin:r.concat(/\b/,r.either(...o),/\s*\(/),relevance:0,keywords:{built_in:o}} +;return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{ +$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:r,when:t}={})=>{const a=t +;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:a(e)?e+"|0":e)) +})(c,{when:e=>e.length<3}),literal:a,type:n, +built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"] +},contains:[{begin:r.either(...s),relevance:0,keywords:{$pattern:/[\w\.]+/, +keyword:c.concat(s),literal:a,type:n}},{className:"type", +begin:r.either("double precision","large object","with timezone","without timezone") +},l,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{ +begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{ +begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"operator", +begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/stan.min.js b/src/app/resources/assets/highlight/es/languages/stan.min.js new file mode 100644 index 0000000..2ed4e36 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/stan.min.js @@ -0,0 +1,28 @@ +/*! `stan` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const _=e.regex,o=["bernoulli","bernoulli_logit","bernoulli_logit_glm","beta","beta_binomial","beta_proportion","binomial","binomial_logit","categorical","categorical_logit","categorical_logit_glm","cauchy","chi_square","dirichlet","discrete_range","double_exponential","exp_mod_normal","exponential","frechet","gamma","gaussian_dlm_obs","gumbel","hmm_latent","hypergeometric","inv_chi_square","inv_gamma","inv_wishart","lkj_corr","lkj_corr_cholesky","logistic","lognormal","multi_gp","multi_gp_cholesky","multi_normal","multi_normal_cholesky","multi_normal_prec","multi_student_t","multinomial","multinomial_logit","neg_binomial","neg_binomial_2","neg_binomial_2_log","neg_binomial_2_log_glm","normal","normal_id_glm","ordered_logistic","ordered_logistic_glm","ordered_probit","pareto","pareto_type_2","poisson","poisson_log","poisson_log_glm","rayleigh","scaled_inv_chi_square","skew_double_exponential","skew_normal","std_normal","student_t","uniform","von_mises","weibull","wiener","wishart"],r=e.COMMENT(/\/\*/,/\*\//,{ +relevance:0,contains:[{scope:"doctag",match:/@(return|param)/}]}),i={ +scope:"meta",begin:/#include\b/,end:/$/,contains:[{match:/[a-z][a-z-._]+/, +scope:"string"},e.C_LINE_COMMENT_MODE] +},t=["lower","upper","offset","multiplier"];return{name:"Stan", +aliases:["stanfuncs"],keywords:{$pattern:e.IDENT_RE, +title:["functions","model","data","parameters","quantities","transformed","generated"], +type:["array","complex","int","real","vector","ordered","positive_ordered","simplex","unit_vector","row_vector","matrix","cholesky_factor_corr|10","cholesky_factor_cov|10","corr_matrix|10","cov_matrix|10","void"], +keyword:["for","in","if","else","while","break","continue","return"], +built_in:["Phi","Phi_approx","abs","acos","acosh","add_diag","algebra_solver","algebra_solver_newton","append_array","append_col","append_row","asin","asinh","atan","atan2","atanh","bessel_first_kind","bessel_second_kind","binary_log_loss","binomial_coefficient_log","block","cbrt","ceil","chol2inv","cholesky_decompose","choose","col","cols","columns_dot_product","columns_dot_self","conj","cos","cosh","cov_exp_quad","crossprod","csr_extract_u","csr_extract_v","csr_extract_w","csr_matrix_times_vector","csr_to_dense_matrix","cumulative_sum","determinant","diag_matrix","diag_post_multiply","diag_pre_multiply","diagonal","digamma","dims","distance","dot_product","dot_self","eigenvalues_sym","eigenvectors_sym","erf","erfc","exp","exp2","expm1","fabs","falling_factorial","fdim","floor","fma","fmax","fmin","fmod","gamma_p","gamma_q","generalized_inverse","get_imag","get_lp","get_real","head","hmm_hidden_state_prob","hmm_marginal","hypot","identity_matrix","inc_beta","int_step","integrate_1d","integrate_ode","integrate_ode_adams","integrate_ode_bdf","integrate_ode_rk45","inv","inv_Phi","inv_cloglog","inv_logit","inv_sqrt","inv_square","inverse","inverse_spd","is_inf","is_nan","lambert_w0","lambert_wm1","lbeta","lchoose","ldexp","lgamma","linspaced_array","linspaced_int_array","linspaced_row_vector","linspaced_vector","lmgamma","lmultiply","log","log1m","log1m_exp","log1m_inv_logit","log1p","log1p_exp","log_determinant","log_diff_exp","log_falling_factorial","log_inv_logit","log_inv_logit_diff","log_mix","log_modified_bessel_first_kind","log_rising_factorial","log_softmax","log_sum_exp","logit","machine_precision","map_rect","matrix_exp","matrix_exp_multiply","matrix_power","max","mdivide_left_spd","mdivide_left_tri_low","mdivide_right_spd","mdivide_right_tri_low","mean","min","modified_bessel_first_kind","modified_bessel_second_kind","multiply_log","multiply_lower_tri_self_transpose","negative_infinity","norm","not_a_number","num_elements","ode_adams","ode_adams_tol","ode_adjoint_tol_ctl","ode_bdf","ode_bdf_tol","ode_ckrk","ode_ckrk_tol","ode_rk45","ode_rk45_tol","one_hot_array","one_hot_int_array","one_hot_row_vector","one_hot_vector","ones_array","ones_int_array","ones_row_vector","ones_vector","owens_t","polar","positive_infinity","pow","print","prod","proj","qr_Q","qr_R","qr_thin_Q","qr_thin_R","quad_form","quad_form_diag","quad_form_sym","quantile","rank","reduce_sum","reject","rep_array","rep_matrix","rep_row_vector","rep_vector","reverse","rising_factorial","round","row","rows","rows_dot_product","rows_dot_self","scale_matrix_exp_multiply","sd","segment","sin","singular_values","sinh","size","softmax","sort_asc","sort_desc","sort_indices_asc","sort_indices_desc","sqrt","square","squared_distance","step","sub_col","sub_row","sum","svd_U","svd_V","symmetrize_from_lower_tri","tail","tan","tanh","target","tcrossprod","tgamma","to_array_1d","to_array_2d","to_complex","to_matrix","to_row_vector","to_vector","trace","trace_gen_quad_form","trace_quad_form","trigamma","trunc","uniform_simplex","variance","zeros_array","zeros_int_array","zeros_row_vector"] +},contains:[e.C_LINE_COMMENT_MODE,i,e.HASH_COMMENT_MODE,r,{scope:"built_in", +match:/\s(pi|e|sqrt2|log2|log10)(?=\()/,relevance:0},{ +match:_.concat(/[<,]\s*/,_.either(...t),/\s*=/),keywords:t},{scope:"keyword", +match:/\btarget(?=\s*\+=)/},{ +match:[/~\s*/,_.either(...o),/(?:\(\))/,/\s*T(?=\s*\[)/],scope:{2:"built_in", +4:"keyword"}},{scope:"built_in",keywords:o, +begin:_.concat(/\w*/,_.either(...o),/(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])/) +},{begin:[/~/,/\s*/,_.concat(_.either(...o),/(?=\s*[\(.*\)])/)],scope:{ +3:"built_in"}},{ +begin:[/~/,/\s*\w+(?=\s*[\(.*\)])/,"(?!.*/\b("+_.either(...o)+")\b)"],scope:{ +2:"title.function"}},{scope:"title.function", +begin:/\w*(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])/},{ +scope:"number", +match:_.concat(/(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)/,/(?:[eE][+-]?\d+(?:_\d+)*)?i?(?!\w)/), +relevance:0},{scope:"string",begin:/"/,end:/"/}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/stata.min.js b/src/app/resources/assets/highlight/es/languages/stata.min.js new file mode 100644 index 0000000..91a6a75 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/stata.min.js @@ -0,0 +1,11 @@ +/*! `stata` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Stata", +aliases:["do","ado"],case_insensitive:!0, +keywords:"if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey bias binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 bubble bubbleplot ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d|0 datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e|0 ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error esize est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 forest forestplot form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate funnel funnelplot g|0 gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h|0 hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l|0 la lab labbe labbeplot labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m|0 ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize menl meqparse mer merg merge meta mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n|0 nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trimfill trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u|0 unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5", +contains:[{className:"symbol",begin:/`[a-zA-Z0-9_]+'/},{className:"variable", +begin:/\$\{?[a-zA-Z0-9_]+\}?/,relevance:0},{className:"string",variants:[{ +begin:'`"[^\r\n]*?"\''},{begin:'"[^\r\n"]*"'}]},{className:"built_in", +variants:[{ +begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\()" +}]},e.COMMENT("^[ \t]*\\*.*$",!1),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE] +})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/step21.min.js b/src/app/resources/assets/highlight/es/languages/step21.min.js new file mode 100644 index 0000000..55d8426 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/step21.min.js @@ -0,0 +1,10 @@ +/*! `step21` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"STEP Part 21", +aliases:["p21","step","stp"],case_insensitive:!0,keywords:{ +$pattern:"[A-Z_][A-Z0-9_.]*",keyword:["HEADER","ENDSEC","DATA"]},contains:[{ +className:"meta",begin:"ISO-10303-21;",relevance:10},{className:"meta", +begin:"END-ISO-10303-21;",relevance:10 +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*!","\\*/"),e.C_NUMBER_MODE,e.inherit(e.APOS_STRING_MODE,{ +illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{ +className:"string",begin:"'",end:"'"},{className:"symbol",variants:[{begin:"#", +end:"\\d+",illegal:"\\W"}]}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/stylus.min.js b/src/app/resources/assets/highlight/es/languages/stylus.min.js new file mode 100644 index 0000000..ec6bd7c --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/stylus.min.js @@ -0,0 +1,36 @@ +/*! `stylus` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],i=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],r=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],t=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse() +;return n=>{const a=(e=>({IMPORTANT:{scope:"meta",begin:"!important"}, +BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number", +begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{ +className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{ +scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/} +}))(n),l={className:"variable",begin:"\\$"+n.IDENT_RE},s="(?=[.\\s\\n[:,(])" +;return{name:"Stylus",aliases:["styl"],case_insensitive:!1, +keywords:"if else for in", +illegal:"(\\?|(\\bReturn\\b)|(\\bEnd\\b)|(\\bend\\b)|(\\bdef\\b)|;|#\\s|\\*\\s|===\\s|\\||%)", +contains:[n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE,a.HEXCOLOR,{ +begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*(?=[.\\s\\n[:,(])",className:"selector-class"},{ +begin:"#[a-zA-Z][a-zA-Z0-9_-]*(?=[.\\s\\n[:,(])",className:"selector-id"},{ +begin:"\\b("+e.join("|")+")"+s,className:"selector-tag"},{ +className:"selector-pseudo",begin:"&?:("+r.join("|")+")"+s},{ +className:"selector-pseudo",begin:"&?:(:)?("+t.join("|")+")"+s +},a.ATTRIBUTE_SELECTOR_MODE,{className:"keyword",begin:/@media/,starts:{ +end:/[{;}]/,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only", +attribute:i.join(" ")},contains:[a.CSS_NUMBER_MODE]}},{className:"keyword", +begin:"@((-(o|moz|ms|webkit)-)?(charset|css|debug|extend|font-face|for|import|include|keyframes|media|mixin|page|warn|while))\\b" +},l,a.CSS_NUMBER_MODE,{className:"function", +begin:"^[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)",illegal:"[\\n]",returnBegin:!0, +contains:[{className:"title",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"},{ +className:"params",begin:/\(/,end:/\)/, +contains:[a.HEXCOLOR,l,n.APOS_STRING_MODE,a.CSS_NUMBER_MODE,n.QUOTE_STRING_MODE] +}]},a.CSS_VARIABLE,{className:"attribute",begin:"\\b("+o.join("|")+")\\b", +starts:{end:/;|$/, +contains:[a.HEXCOLOR,l,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,a.CSS_NUMBER_MODE,n.C_BLOCK_COMMENT_MODE,a.IMPORTANT,a.FUNCTION_DISPATCH], +illegal:/\./,relevance:0}},a.FUNCTION_DISPATCH]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/subunit.min.js b/src/app/resources/assets/highlight/es/languages/subunit.min.js new file mode 100644 index 0000000..5adade8 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/subunit.min.js @@ -0,0 +1,10 @@ +/*! `subunit` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return s=>({name:"SubUnit", +case_insensitive:!0,contains:[{className:"string",begin:"\\[\n(multipart)?", +end:"\\]\n"},{className:"string", +begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"},{ +className:"string",begin:"(\\+|-)\\d+"},{className:"keyword",relevance:10, +variants:[{ +begin:"^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?" +},{begin:"^progress(:?)(\\s+)?(pop|push)?"},{begin:"^tags:"},{begin:"^time:"}]}] +})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/swift.min.js b/src/app/resources/assets/highlight/es/languages/swift.min.js new file mode 100644 index 0000000..0986428 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/swift.min.js @@ -0,0 +1,60 @@ +/*! `swift` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function a(e){return t("(?=",e,")")} +function t(...a){return a.map((a=>e(a))).join("")}function n(...a){const t=(e=>{ +const a=e[e.length-1] +;return"object"==typeof a&&a.constructor===Object?(e.splice(e.length-1,1),a):{} +})(a);return"("+(t.capture?"":"?:")+a.map((a=>e(a))).join("|")+")"} +const i=e=>t(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","distributed","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],p=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],d=n(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),F=n(d,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=t(d,F,"*"),h=n(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=n(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=t(h,f,"*"),y=t(/[A-Z]/,f,"*"),g=["autoclosure",t(/convention\(/,n("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",t(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"] +;return e=>{const d={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{ +contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],A={match:[/\./,n(...s,...u)], +className:{2:"keyword"}},N={match:t(/\./,n(...r)),relevance:0 +},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),D={variants:[{ +className:"keyword", +match:n(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},k={ +$pattern:n(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[A,N,D],_=[{ +match:t(/\./,n(...p)),relevance:0},{className:"built_in", +match:t(/\b/,n(...p),/(?=\()/)}],S={match:/->/,relevance:0},M=[S,{ +className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${F})+`}] +}],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{ +match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{ +match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{ +match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},O=(e="")=>({ +className:"subst",variants:[{match:t(/\\/,e,/[0\\tnr"']/)},{ +match:t(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),L=(e="")=>({className:"subst", +match:t(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),T=(e="")=>({className:"subst", +label:"interpol",begin:t(/\\/,e,/\(/),end:/\)/}),$=(e="")=>({begin:t(e,/"""/), +end:t(/"""/,e),contains:[O(e),L(e),T(e)]}),j=(e="")=>({begin:t(e,/"/), +end:t(/"/,e),contains:[O(e),T(e)]}),P={className:"string", +variants:[$(),$("#"),$("##"),$("###"),j(),j("#"),j("##"),j("###")]},K={ +match:t(/`/,w,/`/)},z=[K,{className:"variable",match:/\$\d+/},{ +className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#(un)?)available/, +className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E, +contains:[...M,I,P]}]}},{className:"keyword",match:t(/@/,n(...g))},{ +className:"meta",match:t(/@/,w)}],U={match:a(/\b[A-Z]/),relevance:0,contains:[{ +className:"type", +match:t(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+") +},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{ +match:/\.\.\./,relevance:0},{match:t(/\s+&\s+/,a(y)),relevance:0}]},Z={ +begin://,keywords:k,contains:[...v,...B,...q,S,U]};U.contains.push(Z) +;const G={begin:/\(/,end:/\)/,relevance:0,keywords:k,contains:["self",{ +match:t(w,/\s*:/),keywords:"_|0",relevance:0 +},...v,...B,..._,...M,I,P,...z,...q,U]},V={begin://,contains:[...v,U] +},W={begin:/\(/,end:/\)/,keywords:k,contains:[{ +begin:n(a(t(w,/\s*:/)),a(t(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0,contains:[{ +className:"keyword",match:/\b_\b/},{className:"params",match:w}] +},...v,...B,...M,I,P,...q,U,G],endsParent:!0,illegal:/["']/},R={ +match:[/func/,/\s+/,n(K.match,w,b)],className:{1:"keyword",3:"title.function"}, +contains:[V,W,d],illegal:[/\[/,/%/]},X={ +match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"}, +contains:[V,W,d],illegal:/\[|%/},H={match:[/operator/,/\s+/,b],className:{ +1:"keyword",3:"title"}},J={begin:[/precedencegroup/,/\s+/,y],className:{ +1:"keyword",3:"title"},contains:[U],keywords:[...l,...o],end:/}/} +;for(const e of P.variants){const a=e.contains.find((e=>"interpol"===e.label)) +;a.keywords=k;const t=[...B,..._,...M,I,P,...z];a.contains=[...t,{begin:/\(/, +end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:k, +contains:[...v,R,X,{beginKeywords:"struct protocol class extension enum actor", +end:"\\{",excludeEnd:!0,keywords:k,contains:[e.inherit(e.TITLE_MODE,{ +className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B] +},H,J,{beginKeywords:"import",end:/$/,contains:[...v],relevance:0 +},...B,..._,...M,I,P,...z,...q,U,G]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/taggerscript.min.js b/src/app/resources/assets/highlight/es/languages/taggerscript.min.js new file mode 100644 index 0000000..c1f966e --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/taggerscript.min.js @@ -0,0 +1,7 @@ +/*! `taggerscript` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Tagger Script",contains:[{ +className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\\[()]/},{ +begin:/\(/,end:/\)/,contains:[{begin:/\\[()]/},"self"]}],relevance:10},{ +className:"keyword",begin:/\$[_a-zA-Z0-9]+(?=\()/},{className:"variable", +begin:/%[_a-zA-Z0-9:]+%/},{className:"symbol",begin:/\\[\\nt$%,()]/},{ +className:"symbol",begin:/\\u[a-fA-F0-9]{4}/}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/tap.min.js b/src/app/resources/assets/highlight/es/languages/tap.min.js new file mode 100644 index 0000000..e76800f --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/tap.min.js @@ -0,0 +1,7 @@ +/*! `tap` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Test Anything Protocol", +case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{ +begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:/---$/, +end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number", +begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}] +}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/tcl.min.js b/src/app/resources/assets/highlight/es/languages/tcl.min.js new file mode 100644 index 0000000..b78ca57 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/tcl.min.js @@ -0,0 +1,15 @@ +/*! `tcl` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a=e.regex,t=/[a-zA-Z_][a-zA-Z0-9_]*/,r={className:"number", +variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"Tcl", +aliases:["tk"], +keywords:["after","append","apply","array","auto_execok","auto_import","auto_load","auto_mkindex","auto_mkindex_old","auto_qualify","auto_reset","bgerror","binary","break","catch","cd","chan","clock","close","concat","continue","dde","dict","encoding","eof","error","eval","exec","exit","expr","fblocked","fconfigure","fcopy","file","fileevent","filename","flush","for","foreach","format","gets","glob","global","history","http","if","incr","info","interp","join","lappend|10","lassign|10","lindex|10","linsert|10","list","llength|10","load","lrange|10","lrepeat|10","lreplace|10","lreverse|10","lsearch|10","lset|10","lsort|10","mathfunc","mathop","memory","msgcat","namespace","open","package","parray","pid","pkg::create","pkg_mkIndex","platform","platform::shell","proc","puts","pwd","read","refchan","regexp","registry","regsub|10","rename","return","safe","scan","seek","set","socket","source","split","string","subst","switch","tcl_endOfWord","tcl_findLibrary","tcl_startOfNextWord","tcl_startOfPreviousWord","tcl_wordBreakAfter","tcl_wordBreakBefore","tcltest","tclvars","tell","time","tm","trace","unknown","unload","unset","update","uplevel","upvar","variable","vwait","while"], +contains:[e.COMMENT(";[ \\t]*#","$"),e.COMMENT("^[ \\t]*#","$"),{ +beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"title", +begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]", +endsWithParent:!0,excludeEnd:!0}]},{className:"variable",variants:[{ +begin:a.concat(/\$/,a.optional(/::/),t,"(::",t,")*")},{ +begin:"\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"\\}",contains:[r]}]},{ +className:"string",contains:[e.BACKSLASH_ESCAPE], +variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},r]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/thrift.min.js b/src/app/resources/assets/highlight/es/languages/thrift.min.js new file mode 100644 index 0000000..92062a0 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/thrift.min.js @@ -0,0 +1,12 @@ +/*! `thrift` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const t=["bool","byte","i16","i32","i64","double","string","binary"];return{ +name:"Thrift",keywords:{ +keyword:["namespace","const","typedef","struct","enum","service","exception","void","oneway","set","list","map","required","optional"], +type:t,literal:"true false"}, +contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{ +className:"class",beginKeywords:"struct enum service exception",end:/\{/, +illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0, +excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",keywords:{ +type:[...t,"set","list","map"]},end:">",contains:["self"]}]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/tp.min.js b/src/app/resources/assets/highlight/es/languages/tp.min.js new file mode 100644 index 0000000..87e66d3 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/tp.min.js @@ -0,0 +1,19 @@ +/*! `tp` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return O=>{const e={className:"number", +begin:"[1-9][0-9]*",relevance:0},R={className:"symbol",begin:":[^\\]]+"};return{ +name:"TP",keywords:{ +keyword:["ABORT","ACC","ADJUST","AND","AP_LD","BREAK","CALL","CNT","COL","CONDITION","CONFIG","DA","DB","DIV","DETECT","ELSE","END","ENDFOR","ERR_NUM","ERROR_PROG","FINE","FOR","GP","GUARD","INC","IF","JMP","LINEAR_MAX_SPEED","LOCK","MOD","MONITOR","OFFSET","Offset","OR","OVERRIDE","PAUSE","PREG","PTH","RT_LD","RUN","SELECT","SKIP","Skip","TA","TB","TO","TOOL_OFFSET","Tool_Offset","UF","UT","UFRAME_NUM","UTOOL_NUM","UNLOCK","WAIT","X","Y","Z","W","P","R","STRLEN","SUBSTR","FINDSTR","VOFFSET","PROG","ATTR","MN","POS"], +literal:["ON","OFF","max_speed","LPOS","JPOS","ENABLE","DISABLE","START","STOP","RESET"] +},contains:[{className:"built_in", +begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[", +end:"\\]",contains:["self",e,R]},{className:"built_in", +begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]", +contains:["self",e,O.QUOTE_STRING_MODE,R]},{className:"keyword", +begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword", +begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword", +begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{ +className:"number", +begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0 +},O.COMMENT("//","[;$]"),O.COMMENT("!","[;$]"),O.COMMENT("--eg:","$"),O.QUOTE_STRING_MODE,{ +className:"string",begin:"'",end:"'"},O.C_NUMBER_MODE,{className:"variable", +begin:"\\$[A-Za-z0-9_]+"}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/twig.min.js b/src/app/resources/assets/highlight/es/languages/twig.min.js new file mode 100644 index 0000000..5cf1c92 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/twig.min.js @@ -0,0 +1,18 @@ +/*! `twig` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a=e.regex,t=["absolute_url","asset|0","asset_version","attribute","block","constant","controller|0","country_timezones","csrf_token","cycle","date","dump","expression","form|0","form_end","form_errors","form_help","form_label","form_rest","form_row","form_start","form_widget","html_classes","include","is_granted","logout_path","logout_url","max","min","parent","path|0","random","range","relative_path","render","render_esi","source","template_from_string","url|0"] +;let r=["apply","autoescape","block","cache","deprecated","do","embed","extends","filter","flush","for","form_theme","from","if","import","include","macro","sandbox","set","stopwatch","trans","trans_default_domain","transchoice","use","verbatim","with"] +;r=r.concat(r.map((e=>"end"+e)));const n={scope:"string",variants:[{begin:/'/, +end:/'/},{begin:/"/,end:/"/}]},o={scope:"number",match:/\d+/},s={begin:/\(/, +end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[n,o]},m={ +beginKeywords:t.join(" "),keywords:{name:t},relevance:0,contains:[s]},c={ +match:/\|(?=[A-Za-z_]+:?)/,beginScope:"punctuation",relevance:0,contains:[{ +match:/[A-Za-z_]+:?/, +keywords:["abs","abbr_class","abbr_method","batch","capitalize","column","convert_encoding","country_name","currency_name","currency_symbol","data_uri","date","date_modify","default","escape","file_excerpt","file_link","file_relative","filter","first","format","format_args","format_args_as_text","format_currency","format_date","format_datetime","format_file","format_file_from_text","format_number","format_time","html_to_markdown","humanize","inky_to_html","inline_css","join","json_encode","keys","language_name","last","length","locale_name","lower","map","markdown","markdown_to_html","merge","nl2br","number_format","raw","reduce","replace","reverse","round","slice","slug","sort","spaceless","split","striptags","timezone_name","title","trans","transchoice","trim","u|0","upper","url_encode","yaml_dump","yaml_encode"] +}]},l=(e,{relevance:t})=>({beginScope:{1:"template-tag",3:"name"}, +relevance:t||2,endScope:"template-tag",begin:[/\{%/,/\s*/,a.either(...e)], +end:/%\}/,keywords:"in",contains:[c,m,n,o]}),i=l(r,{relevance:2 +}),_=l([/[a-z_]+/],{relevance:1});return{name:"Twig",aliases:["craftcms"], +case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{#/,/#\}/),i,_,{ +className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:["self",c,m,n,o] +}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/typescript.min.js b/src/app/resources/assets/highlight/es/languages/typescript.min.js new file mode 100644 index 0000000..d4c185e --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/typescript.min.js @@ -0,0 +1,93 @@ +/*! `typescript` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict" +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],t=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],r=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","module","global"],i=[].concat(r,t,s) +;function o(o){const l=o.regex,d=e,b={begin:/<[A-Za-z0-9\\._:-]+/, +end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ +const a=e[0].length+e.index,t=e.input[a] +;if("<"===t||","===t)return void n.ignoreMatch();let s +;">"===t&&(((e,{after:n})=>{const a="",M={ +match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,l.lookahead(T)], +keywords:"async",className:{1:"keyword",3:"title.function"},contains:[S]} +;return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{ +PARAMS_CONTAINS:v,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/, +contains:[o.SHEBANG({label:"shebang",binary:"node",relevance:5}),{ +label:"use_strict",className:"meta",relevance:10, +begin:/^\s*['"]use (strict|asm)['"]/ +},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,A,_,f,p,{match:/\$\d+/},E,R,{ +className:"attr",begin:d+l.lookahead(":"),relevance:0},M,{ +begin:"("+o.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", +keywords:"return throw case",relevance:0,contains:[p,o.REGEXP_MODE,{ +className:"function",begin:T,returnBegin:!0,end:"\\s*=>",contains:[{ +className:"params",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{ +className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0, +excludeEnd:!0,keywords:g,contains:v}]}]},{begin:/,/,relevance:0},{match:/\s+/, +relevance:0},{variants:[{begin:"<>",end:""},{ +match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:b.begin, +"on:begin":b.isTrulyOpeningTag,end:b.end}],subLanguage:"xml",contains:[{ +begin:b.begin,end:b.end,skip:!0,contains:["self"]}]}]},x,{ +beginKeywords:"while if switch catch for"},{ +begin:"\\b(?!function)"+o.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,label:"func.def",contains:[S,o.inherit(o.TITLE_MODE,{begin:d, +className:"title.function"})]},{match:/\.\.\./,relevance:0},I,{match:"\\$"+d, +relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, +contains:[S]},k,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},w,C,{match:/\$[(.]/}]}}return t=>{ +const s=o(t),r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],l={ +beginKeywords:"namespace",end:/\{/,excludeEnd:!0, +contains:[s.exports.CLASS_REFERENCE]},d={beginKeywords:"interface",end:/\{/, +excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r}, +contains:[s.exports.CLASS_REFERENCE]},b={$pattern:e, +keyword:n.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]), +literal:a,built_in:i.concat(r),"variable.language":c},g={className:"meta", +begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},u=(e,n,a)=>{ +const t=e.contains.findIndex((e=>e.label===n)) +;if(-1===t)throw Error("can not find mode to replace");e.contains.splice(t,1,a)} +;return Object.assign(s.keywords,b), +s.exports.PARAMS_CONTAINS.push(g),s.contains=s.contains.concat([g,l,d]), +u(s,"shebang",t.SHEBANG()),u(s,"use_strict",{className:"meta",relevance:10, +begin:/^\s*['"]use strict['"]/ +}),s.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(s,{ +name:"TypeScript",aliases:["ts","tsx"]}),s}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/vala.min.js b/src/app/resources/assets/highlight/es/languages/vala.min.js new file mode 100644 index 0000000..828dcf1 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/vala.min.js @@ -0,0 +1,9 @@ +/*! `vala` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Vala",keywords:{ +keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var", +built_in:"DBus GLib CCode Gee Object Gtk Posix",literal:"false true null"}, +contains:[{className:"class",beginKeywords:"class interface namespace",end:/\{/, +excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[e.UNDERSCORE_TITLE_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""', +end:'"""',relevance:5},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{ +className:"meta",begin:"^#",end:"$"}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/vbnet.min.js b/src/app/resources/assets/highlight/es/languages/vbnet.min.js new file mode 100644 index 0000000..43236a7 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/vbnet.min.js @@ -0,0 +1,25 @@ +/*! `vbnet` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a=e.regex,n=/\d{1,2}\/\d{1,2}\/\d{4}/,t=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,s=/\d{1,2}(:\d{1,2}){1,2}/,r={ +className:"literal",variants:[{begin:a.concat(/# */,a.either(t,n),/ *#/)},{ +begin:a.concat(/# */,s,/ *#/)},{begin:a.concat(/# */,i,/ *#/)},{ +begin:a.concat(/# */,a.either(t,n),/ +/,a.either(i,s),/ *#/)}] +},l=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}] +}),o=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]}) +;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0, +classNameAliases:{label:"symbol"},keywords:{ +keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield", +built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort", +type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort", +literal:"true false nothing"}, +illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{ +className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/, +end:/"/,illegal:/\n/,contains:[{begin:/""/}]},r,{className:"number",relevance:0, +variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/ +},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{ +begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{ +className:"label",begin:/^\w+:/},l,o,{className:"meta", +begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/, +end:/$/,keywords:{ +keyword:"const disable else elseif enable end externalsource if region then"}, +contains:[o]}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/vbscript-html.min.js b/src/app/resources/assets/highlight/es/languages/vbscript-html.min.js new file mode 100644 index 0000000..0c00b94 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/vbscript-html.min.js @@ -0,0 +1,4 @@ +/*! `vbscript-html` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return a=>({name:"VBScript in HTML", +subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/vbscript.min.js b/src/app/resources/assets/highlight/es/languages/vbscript.min.js new file mode 100644 index 0000000..a8aec10 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/vbscript.min.js @@ -0,0 +1,10 @@ +/*! `vbscript` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const t=e.regex,r=["lcase","month","vartype","instrrev","ubound","setlocale","getobject","rgb","getref","string","weekdayname","rnd","dateadd","monthname","now","day","minute","isarray","cbool","round","formatcurrency","conversions","csng","timevalue","second","year","space","abs","clng","timeserial","fixs","len","asc","isempty","maths","dateserial","atn","timer","isobject","filter","weekday","datevalue","ccur","isdate","instr","datediff","formatdatetime","replace","isnull","right","sgn","array","snumeric","log","cdbl","hex","chr","lbound","msgbox","ucase","getlocale","cos","cdate","cbyte","rtrim","join","hour","oct","typename","trim","strcomp","int","createobject","loadpicture","tan","formatnumber","mid","split","cint","sin","datepart","ltrim","sqr","time","derived","eval","date","formatpercent","exp","inputbox","left","ascw","chrw","regexp","cstr","err"] +;return{name:"VBScript",aliases:["vbs"],case_insensitive:!0,keywords:{ +keyword:["call","class","const","dim","do","loop","erase","execute","executeglobal","exit","for","each","next","function","if","then","else","on","error","option","explicit","new","private","property","let","get","public","randomize","redim","rem","select","case","set","stop","sub","while","wend","with","end","to","elseif","is","or","xor","and","not","class_initialize","class_terminate","default","preserve","in","me","byval","byref","step","resume","goto"], +built_in:["server","response","request","scriptengine","scriptenginebuildversion","scriptengineminorversion","scriptenginemajorversion"], +literal:["true","false","null","nothing","empty"]},illegal:"//",contains:[{ +begin:t.concat(t.either(...r),"\\s*\\("),relevance:0,keywords:{built_in:r} +},e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT(/'/,/$/,{ +relevance:0}),e.C_NUMBER_MODE]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/verilog.min.js b/src/app/resources/assets/highlight/es/languages/verilog.min.js new file mode 100644 index 0000000..489ac88 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/verilog.min.js @@ -0,0 +1,17 @@ +/*! `verilog` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n=e.regex,t=["begin_keywords","celldefine","default_nettype","default_decay_time","default_trireg_strength","define","delay_mode_distributed","delay_mode_path","delay_mode_unit","delay_mode_zero","else","elsif","end_keywords","endcelldefine","endif","ifdef","ifndef","include","line","nounconnected_drive","pragma","resetall","timescale","unconnected_drive","undef","undefineall"] +;return{name:"Verilog",aliases:["v","sv","svh"],case_insensitive:!1,keywords:{ +$pattern:/\$?[\w]+(\$[\w]+)*/, +keyword:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf|0","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate|5","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"], +literal:["null"], +built_in:["$finish","$stop","$exit","$fatal","$error","$warning","$info","$realtime","$time","$printtimescale","$bitstoreal","$bitstoshortreal","$itor","$signed","$cast","$bits","$stime","$timeformat","$realtobits","$shortrealtobits","$rtoi","$unsigned","$asserton","$assertkill","$assertpasson","$assertfailon","$assertnonvacuouson","$assertoff","$assertcontrol","$assertpassoff","$assertfailoff","$assertvacuousoff","$isunbounded","$sampled","$fell","$changed","$past_gclk","$fell_gclk","$changed_gclk","$rising_gclk","$steady_gclk","$coverage_control","$coverage_get","$coverage_save","$set_coverage_db_name","$rose","$stable","$past","$rose_gclk","$stable_gclk","$future_gclk","$falling_gclk","$changing_gclk","$display","$coverage_get_max","$coverage_merge","$get_coverage","$load_coverage_db","$typename","$unpacked_dimensions","$left","$low","$increment","$clog2","$ln","$log10","$exp","$sqrt","$pow","$floor","$ceil","$sin","$cos","$tan","$countbits","$onehot","$isunknown","$fatal","$warning","$dimensions","$right","$high","$size","$asin","$acos","$atan","$atan2","$hypot","$sinh","$cosh","$tanh","$asinh","$acosh","$atanh","$countones","$onehot0","$error","$info","$random","$dist_chi_square","$dist_erlang","$dist_exponential","$dist_normal","$dist_poisson","$dist_t","$dist_uniform","$q_initialize","$q_remove","$q_exam","$async$and$array","$async$nand$array","$async$or$array","$async$nor$array","$sync$and$array","$sync$nand$array","$sync$or$array","$sync$nor$array","$q_add","$q_full","$psprintf","$async$and$plane","$async$nand$plane","$async$or$plane","$async$nor$plane","$sync$and$plane","$sync$nand$plane","$sync$or$plane","$sync$nor$plane","$system","$display","$displayb","$displayh","$displayo","$strobe","$strobeb","$strobeh","$strobeo","$write","$readmemb","$readmemh","$writememh","$value$plusargs","$dumpvars","$dumpon","$dumplimit","$dumpports","$dumpportson","$dumpportslimit","$writeb","$writeh","$writeo","$monitor","$monitorb","$monitorh","$monitoro","$writememb","$dumpfile","$dumpoff","$dumpall","$dumpflush","$dumpportsoff","$dumpportsall","$dumpportsflush","$fclose","$fdisplay","$fdisplayb","$fdisplayh","$fdisplayo","$fstrobe","$fstrobeb","$fstrobeh","$fstrobeo","$swrite","$swriteb","$swriteh","$swriteo","$fscanf","$fread","$fseek","$fflush","$feof","$fopen","$fwrite","$fwriteb","$fwriteh","$fwriteo","$fmonitor","$fmonitorb","$fmonitorh","$fmonitoro","$sformat","$sformatf","$fgetc","$ungetc","$fgets","$sscanf","$rewind","$ftell","$ferror"] +},contains:[e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,{ +scope:"number",contains:[e.BACKSLASH_ESCAPE],variants:[{ +begin:/\b((\d+'([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{ +begin:/\B(('([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\b[0-9][0-9_]*/, +relevance:0}]},{scope:"variable",variants:[{begin:"#\\((?!parameter).+\\)"},{ +begin:"\\.\\w+",relevance:0}]},{scope:"variable.constant", +match:n.concat(/`/,n.either("__FILE__","__LINE__"))},{scope:"meta", +begin:n.concat(/`/,n.either(...t)),end:/$|\/\/|\/\*/,returnEnd:!0,keywords:t}]}} +})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/vhdl.min.js b/src/app/resources/assets/highlight/es/languages/vhdl.min.js new file mode 100644 index 0000000..f2c4fe1 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/vhdl.min.js @@ -0,0 +1,14 @@ +/*! `vhdl` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"VHDL",case_insensitive:!0, +keywords:{ +keyword:["abs","access","after","alias","all","and","architecture","array","assert","assume","assume_guarantee","attribute","begin","block","body","buffer","bus","case","component","configuration","constant","context","cover","disconnect","downto","default","else","elsif","end","entity","exit","fairness","file","for","force","function","generate","generic","group","guarded","if","impure","in","inertial","inout","is","label","library","linkage","literal","loop","map","mod","nand","new","next","nor","not","null","of","on","open","or","others","out","package","parameter","port","postponed","procedure","process","property","protected","pure","range","record","register","reject","release","rem","report","restrict","restrict_guarantee","return","rol","ror","select","sequence","severity","shared","signal","sla","sll","sra","srl","strong","subtype","then","to","transport","type","unaffected","units","until","use","variable","view","vmode","vprop","vunit","wait","when","while","with","xnor","xor"], +built_in:["boolean","bit","character","integer","time","delay_length","natural","positive","string","bit_vector","file_open_kind","file_open_status","std_logic","std_logic_vector","unsigned","signed","boolean_vector","integer_vector","std_ulogic","std_ulogic_vector","unresolved_unsigned","u_unsigned","unresolved_signed","u_signed","real_vector","time_vector"], +literal:["false","true","note","warning","error","failure","line","text","side","width"] +},illegal:/\{/, +contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT("--","$"),e.QUOTE_STRING_MODE,{ +className:"number", +begin:"\\b(\\d(_|\\d)*#\\w+(\\.\\w+)?#([eE][-+]?\\d(_|\\d)*)?|\\d(_|\\d)*(\\.\\d(_|\\d)*)?([eE][-+]?\\d(_|\\d)*)?)", +relevance:0},{className:"string",begin:"'(U|X|0|1|Z|W|L|H|-)'", +contains:[e.BACKSLASH_ESCAPE]},{className:"symbol", +begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[e.BACKSLASH_ESCAPE]}]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/vim.min.js b/src/app/resources/assets/highlight/es/languages/vim.min.js new file mode 100644 index 0000000..ee3485d --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/vim.min.js @@ -0,0 +1,12 @@ +/*! `vim` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"Vim Script",keywords:{ +$pattern:/[!#@\w]+/, +keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank", +built_in:"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp" +},illegal:/;/,contains:[e.NUMBER_MODE,{className:"string",begin:"'",end:"'", +illegal:"\\n"},{className:"string",begin:/"(\\"|\n\\|[^"\n])*"/ +},e.COMMENT('"',"$"),{className:"variable",begin:/[bwtglsav]:[\w\d_]+/},{ +begin:[/\b(?:function|function!)/,/\s+/,e.IDENT_RE],className:{1:"keyword", +3:"title"},end:"$",relevance:0,contains:[{className:"params",begin:"\\(", +end:"\\)"}]},{className:"symbol",begin:/<[\w-]+>/}]})})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/wasm.min.js b/src/app/resources/assets/highlight/es/languages/wasm.min.js new file mode 100644 index 0000000..fead7e6 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/wasm.min.js @@ -0,0 +1,15 @@ +/*! `wasm` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{e.regex +;const a=e.COMMENT(/\(;/,/;\)/);return a.contains.push("self"),{ +name:"WebAssembly",keywords:{$pattern:/[\w.]+/, +keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"] +},contains:[e.COMMENT(/;;/,/$/),a,{match:[/(?:offset|align)/,/\s*/,/=/], +className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{ +match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{ +begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword", +3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/, +className:"type"},{className:"keyword", +match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/ +},{className:"number",relevance:0, +match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/ +}]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/wren.min.js b/src/app/resources/assets/highlight/es/languages/wren.min.js new file mode 100644 index 0000000..ca63b0a --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/wren.min.js @@ -0,0 +1,30 @@ +/*! `wren` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a=e.regex,s=/[a-zA-Z]\w*/,t=["as","break","class","construct","continue","else","for","foreign","if","import","in","is","return","static","var","while"],c=["true","false","null"],n=["this","super"],r=["-","~",/\*/,"%",/\.\.\./,/\.\./,/\+/,"<<",">>",">=","<=","<",">",/\^/,/!=/,/!/,/\bis\b/,"==","&&","&",/\|\|/,/\|/,/\?:/,"="],i={ +relevance:0,match:a.concat(/\b(?!(if|while|for|else|super)\b)/,s,/(?=\s*[({])/), +className:"title.function"},o={ +match:a.concat(a.either(a.concat(/\b(?!(if|while|for|else|super)\b)/,s),a.either(...r)),/(?=\s*\([^)]+\)\s*\{)/), +className:"title.function",starts:{contains:[{begin:/\(/,end:/\)/,contains:[{ +relevance:0,scope:"params",match:s}]}]}},l={variants:[{ +match:[/class\s+/,s,/\s+is\s+/,s]},{match:[/class\s+/,s]}],scope:{ +2:"title.class",4:"title.class.inherited"},keywords:t},m={relevance:0, +match:a.either(...r),className:"operator"},b={className:"property", +begin:a.concat(/\./,a.lookahead(s)),end:s,excludeBegin:!0,relevance:0},h={ +relevance:0,match:a.concat(/\b_/,s),scope:"variable"},p={relevance:0, +match:/\b[A-Z]+[a-z]+([A-Z]+[a-z]+)*/,scope:"title.class",keywords:{ +_:["Bool","Class","Fiber","Fn","List","Map","Null","Num","Object","Range","Sequence","String","System"] +}},u=e.C_NUMBER_MODE,g={match:[s,/\s*/,/=/,/\s*/,/\(/,s,/\)\s*\{/],scope:{ +1:"title.function",3:"operator",6:"params"}},d=e.COMMENT(/\/\*\*/,/\*\//,{ +contains:[{match:/@[a-z]+/,scope:"doctag"},"self"]}),v={scope:"subst", +begin:/%\(/,end:/\)/,contains:[u,p,i,h,m]},f={scope:"string",begin:/"/,end:/"/, +contains:[v,{scope:"char.escape",variants:[{match:/\\\\|\\["0%abefnrtv]/},{ +match:/\\x[0-9A-F]{2}/},{match:/\\u[0-9A-F]{4}/},{match:/\\U[0-9A-F]{8}/}]}]} +;v.contains.push(f);const N=[...t,...n,...c],_={relevance:0, +match:a.concat("\\b(?!",N.join("|"),"\\b)",/[a-zA-Z_]\w*(?:[?!]|\b)/), +className:"variable"};return{name:"Wren",keywords:{keyword:t, +"variable.language":n,literal:c},contains:[{scope:"comment",variants:[{ +begin:[/#!?/,/[A-Za-z_]+(?=\()/],beginScope:{},keywords:{literal:c},contains:[], +end:/\)/},{begin:[/#!?/,/[A-Za-z_]+/],beginScope:{},end:/$/}]},u,f,{ +className:"string",begin:/"""/,end:/"""/ +},d,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,p,l,g,o,i,m,h,b,_]}}})() +;export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/x86asm.min.js b/src/app/resources/assets/highlight/es/languages/x86asm.min.js new file mode 100644 index 0000000..b9e5657 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/x86asm.min.js @@ -0,0 +1,18 @@ +/*! `x86asm` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return s=>({name:"Intel x86 Assembly", +case_insensitive:!0,keywords:{$pattern:"[.%]?"+s.IDENT_RE, +keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63", +built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr", +meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__" +},contains:[s.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{ +begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*(\\.[0-9_]*)?(?:[pP](?:[+-]?[0-9_]+)?)?)\\b", +relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{ +begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b" +},{ +begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b" +}]},s.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'" +},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{ +begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{ +begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst", +begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{ +className:"meta",begin:/^\s*\.[\w_-]+/}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/xl.min.js b/src/app/resources/assets/highlight/es/languages/xl.min.js new file mode 100644 index 0000000..717e305 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/xl.min.js @@ -0,0 +1,15 @@ +/*! `xl` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const t={ +$pattern:/[a-zA-Z][a-zA-Z0-9_?]*/, +keyword:["if","then","else","do","while","until","for","loop","import","with","is","as","where","when","by","data","constant","integer","real","text","name","boolean","symbol","infix","prefix","postfix","block","tree"], +literal:["true","false","nil"], +built_in:["in","mod","rem","and","or","xor","not","abs","sign","floor","ceil","sqrt","sin","cos","tan","asin","acos","atan","exp","expm1","log","log2","log10","log1p","pi","at","text_length","text_range","text_find","text_replace","contains","page","slide","basic_slide","title_slide","title","subtitle","fade_in","fade_out","fade_at","clear_color","color","line_color","line_width","texture_wrap","texture_transform","texture","scale_?x","scale_?y","scale_?z?","translate_?x","translate_?y","translate_?z?","rotate_?x","rotate_?y","rotate_?z?","rectangle","circle","ellipse","sphere","path","line_to","move_to","quad_to","curve_to","theme","background","contents","locally","time","mouse_?x","mouse_?y","mouse_buttons"].concat(["ObjectLoader","Animate","MovieCredits","Slides","Filters","Shading","Materials","LensFlare","Mapping","VLCAudioVideo","StereoDecoder","PointCloud","NetworkAccess","RemoteControl","RegExp","ChromaKey","Snowfall","NodeJS","Speech","Charts"]) +},a={className:"string",begin:'"',end:'"',illegal:"\\n"},n={ +beginKeywords:"import",end:"$",keywords:t,contains:[a]},o={className:"function", +begin:/[a-z][^\n]*->/,returnBegin:!0,end:/->/,contains:[e.inherit(e.TITLE_MODE,{ +starts:{endsWithParent:!0,keywords:t}})]};return{name:"XL",aliases:["tao"], +keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{ +className:"string",begin:"'",end:"'",illegal:"\\n"},{className:"string", +begin:"<<",end:">>"},o,n,{className:"number", +begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?"},e.NUMBER_MODE]}} +})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/xml.min.js b/src/app/resources/assets/highlight/es/languages/xml.min.js new file mode 100644 index 0000000..fb364b2 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/xml.min.js @@ -0,0 +1,29 @@ +/*! `xml` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const a=e.regex,n=a.concat(/[\p{L}_]/u,a.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s={ +className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},t={begin:/\s/, +contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] +},i=e.inherit(t,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{ +className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),r={ +endsWithParent:!0,illegal:/`]+/}]}]}]};return{ +name:"HTML, XML", +aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], +case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[t,l,c,i,{begin:/\[/,end:/\]/,contains:[{ +className:"meta",begin://,contains:[t,i,l,c]}]}] +},e.COMMENT(//,{relevance:10}),{begin://, +relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/, +relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"style"},contains:[r],starts:{ +end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"script"},contains:[r],starts:{ +end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ +className:"tag",begin:/<>|<\/>/},{className:"tag", +begin:a.concat(//,/>/,/\s/)))), +end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:r}]},{ +className:"tag",begin:a.concat(/<\//,a.lookahead(a.concat(n,/>/))),contains:[{ +className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}} +})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/xquery.min.js b/src/app/resources/assets/highlight/es/languages/xquery.min.js new file mode 100644 index 0000000..8713d74 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/xquery.min.js @@ -0,0 +1,33 @@ +/*! `xquery` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>({name:"XQuery", +aliases:["xpath","xq"],case_insensitive:!1, +illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{ +$pattern:/[a-zA-Z$][a-zA-Z0-9_:-]*/, +keyword:["module","schema","namespace","boundary-space","preserve","no-preserve","strip","default","collation","base-uri","ordering","context","decimal-format","decimal-separator","copy-namespaces","empty-sequence","except","exponent-separator","external","grouping-separator","inherit","no-inherit","lax","minus-sign","per-mille","percent","schema-attribute","schema-element","strict","unordered","zero-digit","declare","import","option","function","validate","variable","for","at","in","let","where","order","group","by","return","if","then","else","tumbling","sliding","window","start","when","only","end","previous","next","stable","ascending","descending","allowing","empty","greatest","least","some","every","satisfies","switch","case","typeswitch","try","catch","and","or","to","union","intersect","instance","of","treat","as","castable","cast","map","array","delete","insert","into","replace","value","rename","copy","modify","update"], +type:["item","document-node","node","attribute","document","element","comment","namespace","namespace-node","processing-instruction","text","construction","xs:anyAtomicType","xs:untypedAtomic","xs:duration","xs:time","xs:decimal","xs:float","xs:double","xs:gYearMonth","xs:gYear","xs:gMonthDay","xs:gMonth","xs:gDay","xs:boolean","xs:base64Binary","xs:hexBinary","xs:anyURI","xs:QName","xs:NOTATION","xs:dateTime","xs:dateTimeStamp","xs:date","xs:string","xs:normalizedString","xs:token","xs:language","xs:NMTOKEN","xs:Name","xs:NCName","xs:ID","xs:IDREF","xs:ENTITY","xs:integer","xs:nonPositiveInteger","xs:negativeInteger","xs:long","xs:int","xs:short","xs:byte","xs:nonNegativeInteger","xs:unisignedLong","xs:unsignedInt","xs:unsignedShort","xs:unsignedByte","xs:positiveInteger","xs:yearMonthDuration","xs:dayTimeDuration"], +literal:["eq","ne","lt","le","gt","ge","is","self::","child::","descendant::","descendant-or-self::","attribute::","following::","following-sibling::","parent::","ancestor::","ancestor-or-self::","preceding::","preceding-sibling::","NaN"] +},contains:[{className:"variable",begin:/[$][\w\-:]+/},{className:"built_in", +variants:[{begin:/\barray:/, +end:/(?:append|filter|flatten|fold-(?:left|right)|for-each(?:-pair)?|get|head|insert-before|join|put|remove|reverse|size|sort|subarray|tail)\b/ +},{begin:/\bmap:/, +end:/(?:contains|entry|find|for-each|get|keys|merge|put|remove|size)\b/},{ +begin:/\bmath:/, +end:/(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\b/ +},{begin:/\bop:/,end:/\(/,excludeEnd:!0},{begin:/\bfn:/,end:/\(/,excludeEnd:!0 +},{ +begin:/[^/, +end:/(\/[\w._:-]+>)/,subLanguage:"xml",contains:[{begin:/\{/,end:/\}/, +subLanguage:"xquery"},"self"]}]})})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/yaml.min.js b/src/app/resources/assets/highlight/es/languages/yaml.min.js new file mode 100644 index 0000000..811f9b1 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/yaml.min.js @@ -0,0 +1,25 @@ +/*! `yaml` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{ +const n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={ +className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ +},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable", +variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{ +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={ +end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/, +end:/\}/,contains:[l],illegal:"\\n",relevance:0},r={begin:"\\[",end:"\\]", +contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{ +begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{ +begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$", +relevance:10},{className:"string", +begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ +begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, +relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type", +begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a +},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", +begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", +relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ +className:"number", +begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" +},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,r,s],c=[...b] +;return c.pop(),c.push(i),l.contains=c,{name:"YAML",case_insensitive:!0, +aliases:["yml"],contains:b}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/languages/zephir.min.js b/src/app/resources/assets/highlight/es/languages/zephir.min.js new file mode 100644 index 0000000..128f147 --- /dev/null +++ b/src/app/resources/assets/highlight/es/languages/zephir.min.js @@ -0,0 +1,18 @@ +/*! `zephir` grammar compiled for Highlight.js 11.7.0 */ +var hljsGrammar=(()=>{"use strict";return e=>{const n={className:"string", +contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.APOS_STRING_MODE,{ +illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})] +},a=e.UNDERSCORE_TITLE_MODE,s={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE] +},i="namespace class interface use extends function return abstract final public protected private static deprecated throw try catch Exception echo empty isset instanceof unset let var new const self require if else elseif switch case default do while loop for continue break likely unlikely __LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __TRAIT__ __METHOD__ __NAMESPACE__ array boolean float double integer object resource string char long unsigned bool int uint ulong uchar true false null undefined" +;return{name:"Zephir",aliases:["zep"],keywords:i, +contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(/\/\*/,/\*\//,{contains:[{ +className:"doctag",begin:/@[A-Za-z]+/}]}),{className:"string", +begin:/<<<['"]?\w+['"]?$/,end:/^\w+;/,contains:[e.BACKSLASH_ESCAPE]},{ +begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function", +beginKeywords:"function fn",end:/[;{]/,excludeEnd:!0,illegal:/\$|\[|%/, +contains:[a,{className:"params",begin:/\(/,end:/\)/,keywords:i, +contains:["self",e.C_BLOCK_COMMENT_MODE,n,s]}]},{className:"class", +beginKeywords:"class interface",end:/\{/,excludeEnd:!0,illegal:/[:($"]/, +contains:[{beginKeywords:"extends implements"},a]},{beginKeywords:"namespace", +end:/;/,illegal:/[.']/,contains:[a]},{beginKeywords:"use",end:/;/,contains:[a] +},{begin:/=>/},n,s]}}})();export default hljsGrammar; \ No newline at end of file diff --git a/src/app/resources/assets/highlight/es/package.json b/src/app/resources/assets/highlight/es/package.json new file mode 100644 index 0000000..bb34440 --- /dev/null +++ b/src/app/resources/assets/highlight/es/package.json @@ -0,0 +1 @@ +{ "type": "module" } \ No newline at end of file diff --git a/src/app/resources/assets/highlight/highlight.js b/src/app/resources/assets/highlight/highlight.js new file mode 100644 index 0000000..dd0992d --- /dev/null +++ b/src/app/resources/assets/highlight/highlight.js @@ -0,0 +1,2575 @@ +/*! + Highlight.js v11.7.0 (git: 82688fad18) + (c) 2006-2022 undefined and other contributors + License: BSD-3-Clause + */ +var hljs = (function () { + 'use strict'; + + var deepFreezeEs6 = {exports: {}}; + + function deepFreeze(obj) { + if (obj instanceof Map) { + obj.clear = obj.delete = obj.set = function () { + throw new Error('map is read-only'); + }; + } else if (obj instanceof Set) { + obj.add = obj.clear = obj.delete = function () { + throw new Error('set is read-only'); + }; + } + + // Freeze self + Object.freeze(obj); + + Object.getOwnPropertyNames(obj).forEach(function (name) { + var prop = obj[name]; + + // Freeze prop if it is an object + if (typeof prop == 'object' && !Object.isFrozen(prop)) { + deepFreeze(prop); + } + }); + + return obj; + } + + deepFreezeEs6.exports = deepFreeze; + deepFreezeEs6.exports.default = deepFreeze; + + /** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */ + /** @typedef {import('highlight.js').CompiledMode} CompiledMode */ + /** @implements CallbackResponse */ + + class Response { + /** + * @param {CompiledMode} mode + */ + constructor(mode) { + // eslint-disable-next-line no-undefined + if (mode.data === undefined) mode.data = {}; + + this.data = mode.data; + this.isMatchIgnored = false; + } + + ignoreMatch() { + this.isMatchIgnored = true; + } + } + + /** + * @param {string} value + * @returns {string} + */ + function escapeHTML(value) { + return value + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + } + + /** + * performs a shallow merge of multiple objects into one + * + * @template T + * @param {T} original + * @param {Record[]} objects + * @returns {T} a single new object + */ + function inherit$1(original, ...objects) { + /** @type Record */ + const result = Object.create(null); + + for (const key in original) { + result[key] = original[key]; + } + objects.forEach(function(obj) { + for (const key in obj) { + result[key] = obj[key]; + } + }); + return /** @type {T} */ (result); + } + + /** + * @typedef {object} Renderer + * @property {(text: string) => void} addText + * @property {(node: Node) => void} openNode + * @property {(node: Node) => void} closeNode + * @property {() => string} value + */ + + /** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */ + /** @typedef {{walk: (r: Renderer) => void}} Tree */ + /** */ + + const SPAN_CLOSE = ''; + + /** + * Determines if a node needs to be wrapped in + * + * @param {Node} node */ + const emitsWrappingTags = (node) => { + // rarely we can have a sublanguage where language is undefined + // TODO: track down why + return !!node.scope || (node.sublanguage && node.language); + }; + + /** + * + * @param {string} name + * @param {{prefix:string}} options + */ + const scopeToCSSClass = (name, { prefix }) => { + if (name.includes(".")) { + const pieces = name.split("."); + return [ + `${prefix}${pieces.shift()}`, + ...(pieces.map((x, i) => `${x}${"_".repeat(i + 1)}`)) + ].join(" "); + } + return `${prefix}${name}`; + }; + + /** @type {Renderer} */ + class HTMLRenderer { + /** + * Creates a new HTMLRenderer + * + * @param {Tree} parseTree - the parse tree (must support `walk` API) + * @param {{classPrefix: string}} options + */ + constructor(parseTree, options) { + this.buffer = ""; + this.classPrefix = options.classPrefix; + parseTree.walk(this); + } + + /** + * Adds texts to the output stream + * + * @param {string} text */ + addText(text) { + this.buffer += escapeHTML(text); + } + + /** + * Adds a node open to the output stream (if needed) + * + * @param {Node} node */ + openNode(node) { + if (!emitsWrappingTags(node)) return; + + let className = ""; + if (node.sublanguage) { + className = `language-${node.language}`; + } else { + className = scopeToCSSClass(node.scope, { prefix: this.classPrefix }); + } + this.span(className); + } + + /** + * Adds a node close to the output stream (if needed) + * + * @param {Node} node */ + closeNode(node) { + if (!emitsWrappingTags(node)) return; + + this.buffer += SPAN_CLOSE; + } + + /** + * returns the accumulated buffer + */ + value() { + return this.buffer; + } + + // helpers + + /** + * Builds a span element + * + * @param {string} className */ + span(className) { + this.buffer += ``; + } + } + + /** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} | string} Node */ + /** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} } DataNode */ + /** @typedef {import('highlight.js').Emitter} Emitter */ + /** */ + + /** @returns {DataNode} */ + const newNode = (opts = {}) => { + /** @type DataNode */ + const result = { children: [] }; + Object.assign(result, opts); + return result; + }; + + class TokenTree { + constructor() { + /** @type DataNode */ + this.rootNode = newNode(); + this.stack = [this.rootNode]; + } + + get top() { + return this.stack[this.stack.length - 1]; + } + + get root() { return this.rootNode; } + + /** @param {Node} node */ + add(node) { + this.top.children.push(node); + } + + /** @param {string} scope */ + openNode(scope) { + /** @type Node */ + const node = newNode({ scope }); + this.add(node); + this.stack.push(node); + } + + closeNode() { + if (this.stack.length > 1) { + return this.stack.pop(); + } + // eslint-disable-next-line no-undefined + return undefined; + } + + closeAllNodes() { + while (this.closeNode()); + } + + toJSON() { + return JSON.stringify(this.rootNode, null, 4); + } + + /** + * @typedef { import("./html_renderer").Renderer } Renderer + * @param {Renderer} builder + */ + walk(builder) { + // this does not + return this.constructor._walk(builder, this.rootNode); + // this works + // return TokenTree._walk(builder, this.rootNode); + } + + /** + * @param {Renderer} builder + * @param {Node} node + */ + static _walk(builder, node) { + if (typeof node === "string") { + builder.addText(node); + } else if (node.children) { + builder.openNode(node); + node.children.forEach((child) => this._walk(builder, child)); + builder.closeNode(node); + } + return builder; + } + + /** + * @param {Node} node + */ + static _collapse(node) { + if (typeof node === "string") return; + if (!node.children) return; + + if (node.children.every(el => typeof el === "string")) { + // node.text = node.children.join(""); + // delete node.children; + node.children = [node.children.join("")]; + } else { + node.children.forEach((child) => { + TokenTree._collapse(child); + }); + } + } + } + + /** + Currently this is all private API, but this is the minimal API necessary + that an Emitter must implement to fully support the parser. + + Minimal interface: + + - addKeyword(text, scope) + - addText(text) + - addSublanguage(emitter, subLanguageName) + - finalize() + - openNode(scope) + - closeNode() + - closeAllNodes() + - toHTML() + + */ + + /** + * @implements {Emitter} + */ + class TokenTreeEmitter extends TokenTree { + /** + * @param {*} options + */ + constructor(options) { + super(); + this.options = options; + } + + /** + * @param {string} text + * @param {string} scope + */ + addKeyword(text, scope) { + if (text === "") { return; } + + this.openNode(scope); + this.addText(text); + this.closeNode(); + } + + /** + * @param {string} text + */ + addText(text) { + if (text === "") { return; } + + this.add(text); + } + + /** + * @param {Emitter & {root: DataNode}} emitter + * @param {string} name + */ + addSublanguage(emitter, name) { + /** @type DataNode */ + const node = emitter.root; + node.sublanguage = true; + node.language = name; + this.add(node); + } + + toHTML() { + const renderer = new HTMLRenderer(this, this.options); + return renderer.value(); + } + + finalize() { + return true; + } + } + + /** + * @param {string} value + * @returns {RegExp} + * */ + + /** + * @param {RegExp | string } re + * @returns {string} + */ + function source(re) { + if (!re) return null; + if (typeof re === "string") return re; + + return re.source; + } + + /** + * @param {RegExp | string } re + * @returns {string} + */ + function lookahead(re) { + return concat('(?=', re, ')'); + } + + /** + * @param {RegExp | string } re + * @returns {string} + */ + function anyNumberOfTimes(re) { + return concat('(?:', re, ')*'); + } + + /** + * @param {RegExp | string } re + * @returns {string} + */ + function optional(re) { + return concat('(?:', re, ')?'); + } + + /** + * @param {...(RegExp | string) } args + * @returns {string} + */ + function concat(...args) { + const joined = args.map((x) => source(x)).join(""); + return joined; + } + + /** + * @param { Array } args + * @returns {object} + */ + function stripOptionsFromArgs(args) { + const opts = args[args.length - 1]; + + if (typeof opts === 'object' && opts.constructor === Object) { + args.splice(args.length - 1, 1); + return opts; + } else { + return {}; + } + } + + /** @typedef { {capture?: boolean} } RegexEitherOptions */ + + /** + * Any of the passed expresssions may match + * + * Creates a huge this | this | that | that match + * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args + * @returns {string} + */ + function either(...args) { + /** @type { object & {capture?: boolean} } */ + const opts = stripOptionsFromArgs(args); + const joined = '(' + + (opts.capture ? "" : "?:") + + args.map((x) => source(x)).join("|") + ")"; + return joined; + } + + /** + * @param {RegExp | string} re + * @returns {number} + */ + function countMatchGroups(re) { + return (new RegExp(re.toString() + '|')).exec('').length - 1; + } + + /** + * Does lexeme start with a regular expression match at the beginning + * @param {RegExp} re + * @param {string} lexeme + */ + function startsWith(re, lexeme) { + const match = re && re.exec(lexeme); + return match && match.index === 0; + } + + // BACKREF_RE matches an open parenthesis or backreference. To avoid + // an incorrect parse, it additionally matches the following: + // - [...] elements, where the meaning of parentheses and escapes change + // - other escape sequences, so we do not misparse escape sequences as + // interesting elements + // - non-matching or lookahead parentheses, which do not capture. These + // follow the '(' with a '?'. + const BACKREF_RE = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./; + + // **INTERNAL** Not intended for outside usage + // join logically computes regexps.join(separator), but fixes the + // backreferences so they continue to match. + // it also places each individual regular expression into it's own + // match group, keeping track of the sequencing of those match groups + // is currently an exercise for the caller. :-) + /** + * @param {(string | RegExp)[]} regexps + * @param {{joinWith: string}} opts + * @returns {string} + */ + function _rewriteBackreferences(regexps, { joinWith }) { + let numCaptures = 0; + + return regexps.map((regex) => { + numCaptures += 1; + const offset = numCaptures; + let re = source(regex); + let out = ''; + + while (re.length > 0) { + const match = BACKREF_RE.exec(re); + if (!match) { + out += re; + break; + } + out += re.substring(0, match.index); + re = re.substring(match.index + match[0].length); + if (match[0][0] === '\\' && match[1]) { + // Adjust the backreference. + out += '\\' + String(Number(match[1]) + offset); + } else { + out += match[0]; + if (match[0] === '(') { + numCaptures++; + } + } + } + return out; + }).map(re => `(${re})`).join(joinWith); + } + + /** @typedef {import('highlight.js').Mode} Mode */ + /** @typedef {import('highlight.js').ModeCallback} ModeCallback */ + + // Common regexps + const MATCH_NOTHING_RE = /\b\B/; + const IDENT_RE = '[a-zA-Z]\\w*'; + const UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*'; + const NUMBER_RE = '\\b\\d+(\\.\\d+)?'; + const C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float + const BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b... + const RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~'; + + /** + * @param { Partial & {binary?: string | RegExp} } opts + */ + const SHEBANG = (opts = {}) => { + const beginShebang = /^#![ ]*\//; + if (opts.binary) { + opts.begin = concat( + beginShebang, + /.*\b/, + opts.binary, + /\b.*/); + } + return inherit$1({ + scope: 'meta', + begin: beginShebang, + end: /$/, + relevance: 0, + /** @type {ModeCallback} */ + "on:begin": (m, resp) => { + if (m.index !== 0) resp.ignoreMatch(); + } + }, opts); + }; + + // Common modes + const BACKSLASH_ESCAPE = { + begin: '\\\\[\\s\\S]', relevance: 0 + }; + const APOS_STRING_MODE = { + scope: 'string', + begin: '\'', + end: '\'', + illegal: '\\n', + contains: [BACKSLASH_ESCAPE] + }; + const QUOTE_STRING_MODE = { + scope: 'string', + begin: '"', + end: '"', + illegal: '\\n', + contains: [BACKSLASH_ESCAPE] + }; + const PHRASAL_WORDS_MODE = { + begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ + }; + /** + * Creates a comment mode + * + * @param {string | RegExp} begin + * @param {string | RegExp} end + * @param {Mode | {}} [modeOptions] + * @returns {Partial} + */ + const COMMENT = function(begin, end, modeOptions = {}) { + const mode = inherit$1( + { + scope: 'comment', + begin, + end, + contains: [] + }, + modeOptions + ); + mode.contains.push({ + scope: 'doctag', + // hack to avoid the space from being included. the space is necessary to + // match here to prevent the plain text rule below from gobbling up doctags + begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)', + end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/, + excludeBegin: true, + relevance: 0 + }); + const ENGLISH_WORD = either( + // list of common 1 and 2 letter words in English + "I", + "a", + "is", + "so", + "us", + "to", + "at", + "if", + "in", + "it", + "on", + // note: this is not an exhaustive list of contractions, just popular ones + /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc + /[A-Za-z]+[-][a-z]+/, // `no-way`, etc. + /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences + ); + // looking like plain text, more likely to be a comment + mode.contains.push( + { + // TODO: how to include ", (, ) without breaking grammars that use these for + // comment delimiters? + // begin: /[ ]+([()"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()":]?([.][ ]|[ ]|\))){3}/ + // --- + + // this tries to find sequences of 3 english words in a row (without any + // "programming" type syntax) this gives us a strong signal that we've + // TRULY found a comment - vs perhaps scanning with the wrong language. + // It's possible to find something that LOOKS like the start of the + // comment - but then if there is no readable text - good chance it is a + // false match and not a comment. + // + // for a visual example please see: + // https://github.com/highlightjs/highlight.js/issues/2827 + + begin: concat( + /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */ + '(', + ENGLISH_WORD, + /[.]?[:]?([.][ ]|[ ])/, + '){3}') // look for 3 words in a row + } + ); + return mode; + }; + const C_LINE_COMMENT_MODE = COMMENT('//', '$'); + const C_BLOCK_COMMENT_MODE = COMMENT('/\\*', '\\*/'); + const HASH_COMMENT_MODE = COMMENT('#', '$'); + const NUMBER_MODE = { + scope: 'number', + begin: NUMBER_RE, + relevance: 0 + }; + const C_NUMBER_MODE = { + scope: 'number', + begin: C_NUMBER_RE, + relevance: 0 + }; + const BINARY_NUMBER_MODE = { + scope: 'number', + begin: BINARY_NUMBER_RE, + relevance: 0 + }; + const REGEXP_MODE = { + // this outer rule makes sure we actually have a WHOLE regex and not simply + // an expression such as: + // + // 3 / something + // + // (which will then blow up when regex's `illegal` sees the newline) + begin: /(?=\/[^/\n]*\/)/, + contains: [{ + scope: 'regexp', + begin: /\//, + end: /\/[gimuy]*/, + illegal: /\n/, + contains: [ + BACKSLASH_ESCAPE, + { + begin: /\[/, + end: /\]/, + relevance: 0, + contains: [BACKSLASH_ESCAPE] + } + ] + }] + }; + const TITLE_MODE = { + scope: 'title', + begin: IDENT_RE, + relevance: 0 + }; + const UNDERSCORE_TITLE_MODE = { + scope: 'title', + begin: UNDERSCORE_IDENT_RE, + relevance: 0 + }; + const METHOD_GUARD = { + // excludes method names from keyword processing + begin: '\\.\\s*' + UNDERSCORE_IDENT_RE, + relevance: 0 + }; + + /** + * Adds end same as begin mechanics to a mode + * + * Your mode must include at least a single () match group as that first match + * group is what is used for comparison + * @param {Partial} mode + */ + const END_SAME_AS_BEGIN = function(mode) { + return Object.assign(mode, + { + /** @type {ModeCallback} */ + 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; }, + /** @type {ModeCallback} */ + 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); } + }); + }; + + var MODES = /*#__PURE__*/Object.freeze({ + __proto__: null, + MATCH_NOTHING_RE: MATCH_NOTHING_RE, + IDENT_RE: IDENT_RE, + UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE, + NUMBER_RE: NUMBER_RE, + C_NUMBER_RE: C_NUMBER_RE, + BINARY_NUMBER_RE: BINARY_NUMBER_RE, + RE_STARTERS_RE: RE_STARTERS_RE, + SHEBANG: SHEBANG, + BACKSLASH_ESCAPE: BACKSLASH_ESCAPE, + APOS_STRING_MODE: APOS_STRING_MODE, + QUOTE_STRING_MODE: QUOTE_STRING_MODE, + PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE, + COMMENT: COMMENT, + C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE, + C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE, + HASH_COMMENT_MODE: HASH_COMMENT_MODE, + NUMBER_MODE: NUMBER_MODE, + C_NUMBER_MODE: C_NUMBER_MODE, + BINARY_NUMBER_MODE: BINARY_NUMBER_MODE, + REGEXP_MODE: REGEXP_MODE, + TITLE_MODE: TITLE_MODE, + UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE, + METHOD_GUARD: METHOD_GUARD, + END_SAME_AS_BEGIN: END_SAME_AS_BEGIN + }); + + /** + @typedef {import('highlight.js').CallbackResponse} CallbackResponse + @typedef {import('highlight.js').CompilerExt} CompilerExt + */ + + // Grammar extensions / plugins + // See: https://github.com/highlightjs/highlight.js/issues/2833 + + // Grammar extensions allow "syntactic sugar" to be added to the grammar modes + // without requiring any underlying changes to the compiler internals. + + // `compileMatch` being the perfect small example of now allowing a grammar + // author to write `match` when they desire to match a single expression rather + // than being forced to use `begin`. The extension then just moves `match` into + // `begin` when it runs. Ie, no features have been added, but we've just made + // the experience of writing (and reading grammars) a little bit nicer. + + // ------ + + // TODO: We need negative look-behind support to do this properly + /** + * Skip a match if it has a preceding dot + * + * This is used for `beginKeywords` to prevent matching expressions such as + * `bob.keyword.do()`. The mode compiler automatically wires this up as a + * special _internal_ 'on:begin' callback for modes with `beginKeywords` + * @param {RegExpMatchArray} match + * @param {CallbackResponse} response + */ + function skipIfHasPrecedingDot(match, response) { + const before = match.input[match.index - 1]; + if (before === ".") { + response.ignoreMatch(); + } + } + + /** + * + * @type {CompilerExt} + */ + function scopeClassName(mode, _parent) { + // eslint-disable-next-line no-undefined + if (mode.className !== undefined) { + mode.scope = mode.className; + delete mode.className; + } + } + + /** + * `beginKeywords` syntactic sugar + * @type {CompilerExt} + */ + function beginKeywords(mode, parent) { + if (!parent) return; + if (!mode.beginKeywords) return; + + // for languages with keywords that include non-word characters checking for + // a word boundary is not sufficient, so instead we check for a word boundary + // or whitespace - this does no harm in any case since our keyword engine + // doesn't allow spaces in keywords anyways and we still check for the boundary + // first + mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\.)(?=\\b|\\s)'; + mode.__beforeBegin = skipIfHasPrecedingDot; + mode.keywords = mode.keywords || mode.beginKeywords; + delete mode.beginKeywords; + + // prevents double relevance, the keywords themselves provide + // relevance, the mode doesn't need to double it + // eslint-disable-next-line no-undefined + if (mode.relevance === undefined) mode.relevance = 0; + } + + /** + * Allow `illegal` to contain an array of illegal values + * @type {CompilerExt} + */ + function compileIllegal(mode, _parent) { + if (!Array.isArray(mode.illegal)) return; + + mode.illegal = either(...mode.illegal); + } + + /** + * `match` to match a single expression for readability + * @type {CompilerExt} + */ + function compileMatch(mode, _parent) { + if (!mode.match) return; + if (mode.begin || mode.end) throw new Error("begin & end are not supported with match"); + + mode.begin = mode.match; + delete mode.match; + } + + /** + * provides the default 1 relevance to all modes + * @type {CompilerExt} + */ + function compileRelevance(mode, _parent) { + // eslint-disable-next-line no-undefined + if (mode.relevance === undefined) mode.relevance = 1; + } + + // allow beforeMatch to act as a "qualifier" for the match + // the full match begin must be [beforeMatch][begin] + const beforeMatchExt = (mode, parent) => { + if (!mode.beforeMatch) return; + // starts conflicts with endsParent which we need to make sure the child + // rule is not matched multiple times + if (mode.starts) throw new Error("beforeMatch cannot be used with starts"); + + const originalMode = Object.assign({}, mode); + Object.keys(mode).forEach((key) => { delete mode[key]; }); + + mode.keywords = originalMode.keywords; + mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin)); + mode.starts = { + relevance: 0, + contains: [ + Object.assign(originalMode, { endsParent: true }) + ] + }; + mode.relevance = 0; + + delete originalMode.beforeMatch; + }; + + // keywords that should have no default relevance value + const COMMON_KEYWORDS = [ + 'of', + 'and', + 'for', + 'in', + 'not', + 'or', + 'if', + 'then', + 'parent', // common variable name + 'list', // common variable name + 'value' // common variable name + ]; + + const DEFAULT_KEYWORD_SCOPE = "keyword"; + + /** + * Given raw keywords from a language definition, compile them. + * + * @param {string | Record | Array} rawKeywords + * @param {boolean} caseInsensitive + */ + function compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) { + /** @type {import("highlight.js/private").KeywordDict} */ + const compiledKeywords = Object.create(null); + + // input can be a string of keywords, an array of keywords, or a object with + // named keys representing scopeName (which can then point to a string or array) + if (typeof rawKeywords === 'string') { + compileList(scopeName, rawKeywords.split(" ")); + } else if (Array.isArray(rawKeywords)) { + compileList(scopeName, rawKeywords); + } else { + Object.keys(rawKeywords).forEach(function(scopeName) { + // collapse all our objects back into the parent object + Object.assign( + compiledKeywords, + compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName) + ); + }); + } + return compiledKeywords; + + // --- + + /** + * Compiles an individual list of keywords + * + * Ex: "for if when while|5" + * + * @param {string} scopeName + * @param {Array} keywordList + */ + function compileList(scopeName, keywordList) { + if (caseInsensitive) { + keywordList = keywordList.map(x => x.toLowerCase()); + } + keywordList.forEach(function(keyword) { + const pair = keyword.split('|'); + compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])]; + }); + } + } + + /** + * Returns the proper score for a given keyword + * + * Also takes into account comment keywords, which will be scored 0 UNLESS + * another score has been manually assigned. + * @param {string} keyword + * @param {string} [providedScore] + */ + function scoreForKeyword(keyword, providedScore) { + // manual scores always win over common keywords + // so you can force a score of 1 if you really insist + if (providedScore) { + return Number(providedScore); + } + + return commonKeyword(keyword) ? 0 : 1; + } + + /** + * Determines if a given keyword is common or not + * + * @param {string} keyword */ + function commonKeyword(keyword) { + return COMMON_KEYWORDS.includes(keyword.toLowerCase()); + } + + /* + + For the reasoning behind this please see: + https://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419 + + */ + + /** + * @type {Record} + */ + const seenDeprecations = {}; + + /** + * @param {string} message + */ + const error = (message) => { + console.error(message); + }; + + /** + * @param {string} message + * @param {any} args + */ + const warn = (message, ...args) => { + console.log(`WARN: ${message}`, ...args); + }; + + /** + * @param {string} version + * @param {string} message + */ + const deprecated = (version, message) => { + if (seenDeprecations[`${version}/${message}`]) return; + + console.log(`Deprecated as of ${version}. ${message}`); + seenDeprecations[`${version}/${message}`] = true; + }; + + /* eslint-disable no-throw-literal */ + + /** + @typedef {import('highlight.js').CompiledMode} CompiledMode + */ + + const MultiClassError = new Error(); + + /** + * Renumbers labeled scope names to account for additional inner match + * groups that otherwise would break everything. + * + * Lets say we 3 match scopes: + * + * { 1 => ..., 2 => ..., 3 => ... } + * + * So what we need is a clean match like this: + * + * (a)(b)(c) => [ "a", "b", "c" ] + * + * But this falls apart with inner match groups: + * + * (a)(((b)))(c) => ["a", "b", "b", "b", "c" ] + * + * Our scopes are now "out of alignment" and we're repeating `b` 3 times. + * What needs to happen is the numbers are remapped: + * + * { 1 => ..., 2 => ..., 5 => ... } + * + * We also need to know that the ONLY groups that should be output + * are 1, 2, and 5. This function handles this behavior. + * + * @param {CompiledMode} mode + * @param {Array} regexes + * @param {{key: "beginScope"|"endScope"}} opts + */ + function remapScopeNames(mode, regexes, { key }) { + let offset = 0; + const scopeNames = mode[key]; + /** @type Record */ + const emit = {}; + /** @type Record */ + const positions = {}; + + for (let i = 1; i <= regexes.length; i++) { + positions[i + offset] = scopeNames[i]; + emit[i + offset] = true; + offset += countMatchGroups(regexes[i - 1]); + } + // we use _emit to keep track of which match groups are "top-level" to avoid double + // output from inside match groups + mode[key] = positions; + mode[key]._emit = emit; + mode[key]._multi = true; + } + + /** + * @param {CompiledMode} mode + */ + function beginMultiClass(mode) { + if (!Array.isArray(mode.begin)) return; + + if (mode.skip || mode.excludeBegin || mode.returnBegin) { + error("skip, excludeBegin, returnBegin not compatible with beginScope: {}"); + throw MultiClassError; + } + + if (typeof mode.beginScope !== "object" || mode.beginScope === null) { + error("beginScope must be object"); + throw MultiClassError; + } + + remapScopeNames(mode, mode.begin, { key: "beginScope" }); + mode.begin = _rewriteBackreferences(mode.begin, { joinWith: "" }); + } + + /** + * @param {CompiledMode} mode + */ + function endMultiClass(mode) { + if (!Array.isArray(mode.end)) return; + + if (mode.skip || mode.excludeEnd || mode.returnEnd) { + error("skip, excludeEnd, returnEnd not compatible with endScope: {}"); + throw MultiClassError; + } + + if (typeof mode.endScope !== "object" || mode.endScope === null) { + error("endScope must be object"); + throw MultiClassError; + } + + remapScopeNames(mode, mode.end, { key: "endScope" }); + mode.end = _rewriteBackreferences(mode.end, { joinWith: "" }); + } + + /** + * this exists only to allow `scope: {}` to be used beside `match:` + * Otherwise `beginScope` would necessary and that would look weird + + { + match: [ /def/, /\w+/ ] + scope: { 1: "keyword" , 2: "title" } + } + + * @param {CompiledMode} mode + */ + function scopeSugar(mode) { + if (mode.scope && typeof mode.scope === "object" && mode.scope !== null) { + mode.beginScope = mode.scope; + delete mode.scope; + } + } + + /** + * @param {CompiledMode} mode + */ + function MultiClass(mode) { + scopeSugar(mode); + + if (typeof mode.beginScope === "string") { + mode.beginScope = { _wrap: mode.beginScope }; + } + if (typeof mode.endScope === "string") { + mode.endScope = { _wrap: mode.endScope }; + } + + beginMultiClass(mode); + endMultiClass(mode); + } + + /** + @typedef {import('highlight.js').Mode} Mode + @typedef {import('highlight.js').CompiledMode} CompiledMode + @typedef {import('highlight.js').Language} Language + @typedef {import('highlight.js').HLJSPlugin} HLJSPlugin + @typedef {import('highlight.js').CompiledLanguage} CompiledLanguage + */ + + // compilation + + /** + * Compiles a language definition result + * + * Given the raw result of a language definition (Language), compiles this so + * that it is ready for highlighting code. + * @param {Language} language + * @returns {CompiledLanguage} + */ + function compileLanguage(language) { + /** + * Builds a regex with the case sensitivity of the current language + * + * @param {RegExp | string} value + * @param {boolean} [global] + */ + function langRe(value, global) { + return new RegExp( + source(value), + 'm' + + (language.case_insensitive ? 'i' : '') + + (language.unicodeRegex ? 'u' : '') + + (global ? 'g' : '') + ); + } + + /** + Stores multiple regular expressions and allows you to quickly search for + them all in a string simultaneously - returning the first match. It does + this by creating a huge (a|b|c) regex - each individual item wrapped with () + and joined by `|` - using match groups to track position. When a match is + found checking which position in the array has content allows us to figure + out which of the original regexes / match groups triggered the match. + + The match object itself (the result of `Regex.exec`) is returned but also + enhanced by merging in any meta-data that was registered with the regex. + This is how we keep track of which mode matched, and what type of rule + (`illegal`, `begin`, end, etc). + */ + class MultiRegex { + constructor() { + this.matchIndexes = {}; + // @ts-ignore + this.regexes = []; + this.matchAt = 1; + this.position = 0; + } + + // @ts-ignore + addRule(re, opts) { + opts.position = this.position++; + // @ts-ignore + this.matchIndexes[this.matchAt] = opts; + this.regexes.push([opts, re]); + this.matchAt += countMatchGroups(re) + 1; + } + + compile() { + if (this.regexes.length === 0) { + // avoids the need to check length every time exec is called + // @ts-ignore + this.exec = () => null; + } + const terminators = this.regexes.map(el => el[1]); + this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true); + this.lastIndex = 0; + } + + /** @param {string} s */ + exec(s) { + this.matcherRe.lastIndex = this.lastIndex; + const match = this.matcherRe.exec(s); + if (!match) { return null; } + + // eslint-disable-next-line no-undefined + const i = match.findIndex((el, i) => i > 0 && el !== undefined); + // @ts-ignore + const matchData = this.matchIndexes[i]; + // trim off any earlier non-relevant match groups (ie, the other regex + // match groups that make up the multi-matcher) + match.splice(0, i); + + return Object.assign(match, matchData); + } + } + + /* + Created to solve the key deficiently with MultiRegex - there is no way to + test for multiple matches at a single location. Why would we need to do + that? In the future a more dynamic engine will allow certain matches to be + ignored. An example: if we matched say the 3rd regex in a large group but + decided to ignore it - we'd need to started testing again at the 4th + regex... but MultiRegex itself gives us no real way to do that. + + So what this class creates MultiRegexs on the fly for whatever search + position they are needed. + + NOTE: These additional MultiRegex objects are created dynamically. For most + grammars most of the time we will never actually need anything more than the + first MultiRegex - so this shouldn't have too much overhead. + + Say this is our search group, and we match regex3, but wish to ignore it. + + regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0 + + What we need is a new MultiRegex that only includes the remaining + possibilities: + + regex4 | regex5 ' ie, startAt = 3 + + This class wraps all that complexity up in a simple API... `startAt` decides + where in the array of expressions to start doing the matching. It + auto-increments, so if a match is found at position 2, then startAt will be + set to 3. If the end is reached startAt will return to 0. + + MOST of the time the parser will be setting startAt manually to 0. + */ + class ResumableMultiRegex { + constructor() { + // @ts-ignore + this.rules = []; + // @ts-ignore + this.multiRegexes = []; + this.count = 0; + + this.lastIndex = 0; + this.regexIndex = 0; + } + + // @ts-ignore + getMatcher(index) { + if (this.multiRegexes[index]) return this.multiRegexes[index]; + + const matcher = new MultiRegex(); + this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts)); + matcher.compile(); + this.multiRegexes[index] = matcher; + return matcher; + } + + resumingScanAtSamePosition() { + return this.regexIndex !== 0; + } + + considerAll() { + this.regexIndex = 0; + } + + // @ts-ignore + addRule(re, opts) { + this.rules.push([re, opts]); + if (opts.type === "begin") this.count++; + } + + /** @param {string} s */ + exec(s) { + const m = this.getMatcher(this.regexIndex); + m.lastIndex = this.lastIndex; + let result = m.exec(s); + + // The following is because we have no easy way to say "resume scanning at the + // existing position but also skip the current rule ONLY". What happens is + // all prior rules are also skipped which can result in matching the wrong + // thing. Example of matching "booger": + + // our matcher is [string, "booger", number] + // + // ....booger.... + + // if "booger" is ignored then we'd really need a regex to scan from the + // SAME position for only: [string, number] but ignoring "booger" (if it + // was the first match), a simple resume would scan ahead who knows how + // far looking only for "number", ignoring potential string matches (or + // future "booger" matches that might be valid.) + + // So what we do: We execute two matchers, one resuming at the same + // position, but the second full matcher starting at the position after: + + // /--- resume first regex match here (for [number]) + // |/---- full match here for [string, "booger", number] + // vv + // ....booger.... + + // Which ever results in a match first is then used. So this 3-4 step + // process essentially allows us to say "match at this position, excluding + // a prior rule that was ignored". + // + // 1. Match "booger" first, ignore. Also proves that [string] does non match. + // 2. Resume matching for [number] + // 3. Match at index + 1 for [string, "booger", number] + // 4. If #2 and #3 result in matches, which came first? + if (this.resumingScanAtSamePosition()) { + if (result && result.index === this.lastIndex) ; else { // use the second matcher result + const m2 = this.getMatcher(0); + m2.lastIndex = this.lastIndex + 1; + result = m2.exec(s); + } + } + + if (result) { + this.regexIndex += result.position + 1; + if (this.regexIndex === this.count) { + // wrap-around to considering all matches again + this.considerAll(); + } + } + + return result; + } + } + + /** + * Given a mode, builds a huge ResumableMultiRegex that can be used to walk + * the content and find matches. + * + * @param {CompiledMode} mode + * @returns {ResumableMultiRegex} + */ + function buildModeRegex(mode) { + const mm = new ResumableMultiRegex(); + + mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: "begin" })); + + if (mode.terminatorEnd) { + mm.addRule(mode.terminatorEnd, { type: "end" }); + } + if (mode.illegal) { + mm.addRule(mode.illegal, { type: "illegal" }); + } + + return mm; + } + + /** skip vs abort vs ignore + * + * @skip - The mode is still entered and exited normally (and contains rules apply), + * but all content is held and added to the parent buffer rather than being + * output when the mode ends. Mostly used with `sublanguage` to build up + * a single large buffer than can be parsed by sublanguage. + * + * - The mode begin ands ends normally. + * - Content matched is added to the parent mode buffer. + * - The parser cursor is moved forward normally. + * + * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it + * never matched) but DOES NOT continue to match subsequent `contains` + * modes. Abort is bad/suboptimal because it can result in modes + * farther down not getting applied because an earlier rule eats the + * content but then aborts. + * + * - The mode does not begin. + * - Content matched by `begin` is added to the mode buffer. + * - The parser cursor is moved forward accordingly. + * + * @ignore - Ignores the mode (as if it never matched) and continues to match any + * subsequent `contains` modes. Ignore isn't technically possible with + * the current parser implementation. + * + * - The mode does not begin. + * - Content matched by `begin` is ignored. + * - The parser cursor is not moved forward. + */ + + /** + * Compiles an individual mode + * + * This can raise an error if the mode contains certain detectable known logic + * issues. + * @param {Mode} mode + * @param {CompiledMode | null} [parent] + * @returns {CompiledMode | never} + */ + function compileMode(mode, parent) { + const cmode = /** @type CompiledMode */ (mode); + if (mode.isCompiled) return cmode; + + [ + scopeClassName, + // do this early so compiler extensions generally don't have to worry about + // the distinction between match/begin + compileMatch, + MultiClass, + beforeMatchExt + ].forEach(ext => ext(mode, parent)); + + language.compilerExtensions.forEach(ext => ext(mode, parent)); + + // __beforeBegin is considered private API, internal use only + mode.__beforeBegin = null; + + [ + beginKeywords, + // do this later so compiler extensions that come earlier have access to the + // raw array if they wanted to perhaps manipulate it, etc. + compileIllegal, + // default to 1 relevance if not specified + compileRelevance + ].forEach(ext => ext(mode, parent)); + + mode.isCompiled = true; + + let keywordPattern = null; + if (typeof mode.keywords === "object" && mode.keywords.$pattern) { + // we need a copy because keywords might be compiled multiple times + // so we can't go deleting $pattern from the original on the first + // pass + mode.keywords = Object.assign({}, mode.keywords); + keywordPattern = mode.keywords.$pattern; + delete mode.keywords.$pattern; + } + keywordPattern = keywordPattern || /\w+/; + + if (mode.keywords) { + mode.keywords = compileKeywords(mode.keywords, language.case_insensitive); + } + + cmode.keywordPatternRe = langRe(keywordPattern, true); + + if (parent) { + if (!mode.begin) mode.begin = /\B|\b/; + cmode.beginRe = langRe(cmode.begin); + if (!mode.end && !mode.endsWithParent) mode.end = /\B|\b/; + if (mode.end) cmode.endRe = langRe(cmode.end); + cmode.terminatorEnd = source(cmode.end) || ''; + if (mode.endsWithParent && parent.terminatorEnd) { + cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd; + } + } + if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal)); + if (!mode.contains) mode.contains = []; + + mode.contains = [].concat(...mode.contains.map(function(c) { + return expandOrCloneMode(c === 'self' ? mode : c); + })); + mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); }); + + if (mode.starts) { + compileMode(mode.starts, parent); + } + + cmode.matcher = buildModeRegex(cmode); + return cmode; + } + + if (!language.compilerExtensions) language.compilerExtensions = []; + + // self is not valid at the top-level + if (language.contains && language.contains.includes('self')) { + throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation."); + } + + // we need a null object, which inherit will guarantee + language.classNameAliases = inherit$1(language.classNameAliases || {}); + + return compileMode(/** @type Mode */ (language)); + } + + /** + * Determines if a mode has a dependency on it's parent or not + * + * If a mode does have a parent dependency then often we need to clone it if + * it's used in multiple places so that each copy points to the correct parent, + * where-as modes without a parent can often safely be re-used at the bottom of + * a mode chain. + * + * @param {Mode | null} mode + * @returns {boolean} - is there a dependency on the parent? + * */ + function dependencyOnParent(mode) { + if (!mode) return false; + + return mode.endsWithParent || dependencyOnParent(mode.starts); + } + + /** + * Expands a mode or clones it if necessary + * + * This is necessary for modes with parental dependenceis (see notes on + * `dependencyOnParent`) and for nodes that have `variants` - which must then be + * exploded into their own individual modes at compile time. + * + * @param {Mode} mode + * @returns {Mode | Mode[]} + * */ + function expandOrCloneMode(mode) { + if (mode.variants && !mode.cachedVariants) { + mode.cachedVariants = mode.variants.map(function(variant) { + return inherit$1(mode, { variants: null }, variant); + }); + } + + // EXPAND + // if we have variants then essentially "replace" the mode with the variants + // this happens in compileMode, where this function is called from + if (mode.cachedVariants) { + return mode.cachedVariants; + } + + // CLONE + // if we have dependencies on parents then we need a unique + // instance of ourselves, so we can be reused with many + // different parents without issue + if (dependencyOnParent(mode)) { + return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null }); + } + + if (Object.isFrozen(mode)) { + return inherit$1(mode); + } + + // no special dependency issues, just return ourselves + return mode; + } + + var version = "11.7.0"; + + class HTMLInjectionError extends Error { + constructor(reason, html) { + super(reason); + this.name = "HTMLInjectionError"; + this.html = html; + } + } + + /* + Syntax highlighting with language autodetection. + https://highlightjs.org/ + */ + + /** + @typedef {import('highlight.js').Mode} Mode + @typedef {import('highlight.js').CompiledMode} CompiledMode + @typedef {import('highlight.js').CompiledScope} CompiledScope + @typedef {import('highlight.js').Language} Language + @typedef {import('highlight.js').HLJSApi} HLJSApi + @typedef {import('highlight.js').HLJSPlugin} HLJSPlugin + @typedef {import('highlight.js').PluginEvent} PluginEvent + @typedef {import('highlight.js').HLJSOptions} HLJSOptions + @typedef {import('highlight.js').LanguageFn} LanguageFn + @typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement + @typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext + @typedef {import('highlight.js/private').MatchType} MatchType + @typedef {import('highlight.js/private').KeywordData} KeywordData + @typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch + @typedef {import('highlight.js/private').AnnotatedError} AnnotatedError + @typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult + @typedef {import('highlight.js').HighlightOptions} HighlightOptions + @typedef {import('highlight.js').HighlightResult} HighlightResult + */ + + + const escape = escapeHTML; + const inherit = inherit$1; + const NO_MATCH = Symbol("nomatch"); + const MAX_KEYWORD_HITS = 7; + + /** + * @param {any} hljs - object that is extended (legacy) + * @returns {HLJSApi} + */ + const HLJS = function(hljs) { + // Global internal variables used within the highlight.js library. + /** @type {Record} */ + const languages = Object.create(null); + /** @type {Record} */ + const aliases = Object.create(null); + /** @type {HLJSPlugin[]} */ + const plugins = []; + + // safe/production mode - swallows more errors, tries to keep running + // even if a single syntax or parse hits a fatal error + let SAFE_MODE = true; + const LANGUAGE_NOT_FOUND = "Could not find the language '{}', did you forget to load/include a language module?"; + /** @type {Language} */ + const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] }; + + // Global options used when within external APIs. This is modified when + // calling the `hljs.configure` function. + /** @type HLJSOptions */ + let options = { + ignoreUnescapedHTML: false, + throwUnescapedHTML: false, + noHighlightRe: /^(no-?highlight)$/i, + languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i, + classPrefix: 'hljs-', + cssSelector: 'pre code', + languages: null, + // beta configuration options, subject to change, welcome to discuss + // https://github.com/highlightjs/highlight.js/issues/1086 + __emitter: TokenTreeEmitter + }; + + /* Utility functions */ + + /** + * Tests a language name to see if highlighting should be skipped + * @param {string} languageName + */ + function shouldNotHighlight(languageName) { + return options.noHighlightRe.test(languageName); + } + + /** + * @param {HighlightedHTMLElement} block - the HTML element to determine language for + */ + function blockLanguage(block) { + let classes = block.className + ' '; + + classes += block.parentNode ? block.parentNode.className : ''; + + // language-* takes precedence over non-prefixed class names. + const match = options.languageDetectRe.exec(classes); + if (match) { + const language = getLanguage(match[1]); + if (!language) { + warn(LANGUAGE_NOT_FOUND.replace("{}", match[1])); + warn("Falling back to no-highlight mode for this block.", block); + } + return language ? match[1] : 'no-highlight'; + } + + return classes + .split(/\s+/) + .find((_class) => shouldNotHighlight(_class) || getLanguage(_class)); + } + + /** + * Core highlighting function. + * + * OLD API + * highlight(lang, code, ignoreIllegals, continuation) + * + * NEW API + * highlight(code, {lang, ignoreIllegals}) + * + * @param {string} codeOrLanguageName - the language to use for highlighting + * @param {string | HighlightOptions} optionsOrCode - the code to highlight + * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail + * + * @returns {HighlightResult} Result - an object that represents the result + * @property {string} language - the language name + * @property {number} relevance - the relevance score + * @property {string} value - the highlighted HTML code + * @property {string} code - the original raw code + * @property {CompiledMode} top - top of the current mode stack + * @property {boolean} illegal - indicates whether any illegal matches were found + */ + function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) { + let code = ""; + let languageName = ""; + if (typeof optionsOrCode === "object") { + code = codeOrLanguageName; + ignoreIllegals = optionsOrCode.ignoreIllegals; + languageName = optionsOrCode.language; + } else { + // old API + deprecated("10.7.0", "highlight(lang, code, ...args) has been deprecated."); + deprecated("10.7.0", "Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"); + languageName = codeOrLanguageName; + code = optionsOrCode; + } + + // https://github.com/highlightjs/highlight.js/issues/3149 + // eslint-disable-next-line no-undefined + if (ignoreIllegals === undefined) { ignoreIllegals = true; } + + /** @type {BeforeHighlightContext} */ + const context = { + code, + language: languageName + }; + // the plugin can change the desired language or the code to be highlighted + // just be changing the object it was passed + fire("before:highlight", context); + + // a before plugin can usurp the result completely by providing it's own + // in which case we don't even need to call highlight + const result = context.result + ? context.result + : _highlight(context.language, context.code, ignoreIllegals); + + result.code = context.code; + // the plugin can change anything in result to suite it + fire("after:highlight", result); + + return result; + } + + /** + * private highlight that's used internally and does not fire callbacks + * + * @param {string} languageName - the language to use for highlighting + * @param {string} codeToHighlight - the code to highlight + * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail + * @param {CompiledMode?} [continuation] - current continuation mode, if any + * @returns {HighlightResult} - result of the highlight operation + */ + function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) { + const keywordHits = Object.create(null); + + /** + * Return keyword data if a match is a keyword + * @param {CompiledMode} mode - current mode + * @param {string} matchText - the textual match + * @returns {KeywordData | false} + */ + function keywordData(mode, matchText) { + return mode.keywords[matchText]; + } + + function processKeywords() { + if (!top.keywords) { + emitter.addText(modeBuffer); + return; + } + + let lastIndex = 0; + top.keywordPatternRe.lastIndex = 0; + let match = top.keywordPatternRe.exec(modeBuffer); + let buf = ""; + + while (match) { + buf += modeBuffer.substring(lastIndex, match.index); + const word = language.case_insensitive ? match[0].toLowerCase() : match[0]; + const data = keywordData(top, word); + if (data) { + const [kind, keywordRelevance] = data; + emitter.addText(buf); + buf = ""; + + keywordHits[word] = (keywordHits[word] || 0) + 1; + if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance; + if (kind.startsWith("_")) { + // _ implied for relevance only, do not highlight + // by applying a class name + buf += match[0]; + } else { + const cssClass = language.classNameAliases[kind] || kind; + emitter.addKeyword(match[0], cssClass); + } + } else { + buf += match[0]; + } + lastIndex = top.keywordPatternRe.lastIndex; + match = top.keywordPatternRe.exec(modeBuffer); + } + buf += modeBuffer.substring(lastIndex); + emitter.addText(buf); + } + + function processSubLanguage() { + if (modeBuffer === "") return; + /** @type HighlightResult */ + let result = null; + + if (typeof top.subLanguage === 'string') { + if (!languages[top.subLanguage]) { + emitter.addText(modeBuffer); + return; + } + result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]); + continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top); + } else { + result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null); + } + + // Counting embedded language score towards the host language may be disabled + // with zeroing the containing mode relevance. Use case in point is Markdown that + // allows XML everywhere and makes every XML snippet to have a much larger Markdown + // score. + if (top.relevance > 0) { + relevance += result.relevance; + } + emitter.addSublanguage(result._emitter, result.language); + } + + function processBuffer() { + if (top.subLanguage != null) { + processSubLanguage(); + } else { + processKeywords(); + } + modeBuffer = ''; + } + + /** + * @param {CompiledScope} scope + * @param {RegExpMatchArray} match + */ + function emitMultiClass(scope, match) { + let i = 1; + const max = match.length - 1; + while (i <= max) { + if (!scope._emit[i]) { i++; continue; } + const klass = language.classNameAliases[scope[i]] || scope[i]; + const text = match[i]; + if (klass) { + emitter.addKeyword(text, klass); + } else { + modeBuffer = text; + processKeywords(); + modeBuffer = ""; + } + i++; + } + } + + /** + * @param {CompiledMode} mode - new mode to start + * @param {RegExpMatchArray} match + */ + function startNewMode(mode, match) { + if (mode.scope && typeof mode.scope === "string") { + emitter.openNode(language.classNameAliases[mode.scope] || mode.scope); + } + if (mode.beginScope) { + // beginScope just wraps the begin match itself in a scope + if (mode.beginScope._wrap) { + emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap); + modeBuffer = ""; + } else if (mode.beginScope._multi) { + // at this point modeBuffer should just be the match + emitMultiClass(mode.beginScope, match); + modeBuffer = ""; + } + } + + top = Object.create(mode, { parent: { value: top } }); + return top; + } + + /** + * @param {CompiledMode } mode - the mode to potentially end + * @param {RegExpMatchArray} match - the latest match + * @param {string} matchPlusRemainder - match plus remainder of content + * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode + */ + function endOfMode(mode, match, matchPlusRemainder) { + let matched = startsWith(mode.endRe, matchPlusRemainder); + + if (matched) { + if (mode["on:end"]) { + const resp = new Response(mode); + mode["on:end"](match, resp); + if (resp.isMatchIgnored) matched = false; + } + + if (matched) { + while (mode.endsParent && mode.parent) { + mode = mode.parent; + } + return mode; + } + } + // even if on:end fires an `ignore` it's still possible + // that we might trigger the end node because of a parent mode + if (mode.endsWithParent) { + return endOfMode(mode.parent, match, matchPlusRemainder); + } + } + + /** + * Handle matching but then ignoring a sequence of text + * + * @param {string} lexeme - string containing full match text + */ + function doIgnore(lexeme) { + if (top.matcher.regexIndex === 0) { + // no more regexes to potentially match here, so we move the cursor forward one + // space + modeBuffer += lexeme[0]; + return 1; + } else { + // no need to move the cursor, we still have additional regexes to try and + // match at this very spot + resumeScanAtSamePosition = true; + return 0; + } + } + + /** + * Handle the start of a new potential mode match + * + * @param {EnhancedMatch} match - the current match + * @returns {number} how far to advance the parse cursor + */ + function doBeginMatch(match) { + const lexeme = match[0]; + const newMode = match.rule; + + const resp = new Response(newMode); + // first internal before callbacks, then the public ones + const beforeCallbacks = [newMode.__beforeBegin, newMode["on:begin"]]; + for (const cb of beforeCallbacks) { + if (!cb) continue; + cb(match, resp); + if (resp.isMatchIgnored) return doIgnore(lexeme); + } + + if (newMode.skip) { + modeBuffer += lexeme; + } else { + if (newMode.excludeBegin) { + modeBuffer += lexeme; + } + processBuffer(); + if (!newMode.returnBegin && !newMode.excludeBegin) { + modeBuffer = lexeme; + } + } + startNewMode(newMode, match); + return newMode.returnBegin ? 0 : lexeme.length; + } + + /** + * Handle the potential end of mode + * + * @param {RegExpMatchArray} match - the current match + */ + function doEndMatch(match) { + const lexeme = match[0]; + const matchPlusRemainder = codeToHighlight.substring(match.index); + + const endMode = endOfMode(top, match, matchPlusRemainder); + if (!endMode) { return NO_MATCH; } + + const origin = top; + if (top.endScope && top.endScope._wrap) { + processBuffer(); + emitter.addKeyword(lexeme, top.endScope._wrap); + } else if (top.endScope && top.endScope._multi) { + processBuffer(); + emitMultiClass(top.endScope, match); + } else if (origin.skip) { + modeBuffer += lexeme; + } else { + if (!(origin.returnEnd || origin.excludeEnd)) { + modeBuffer += lexeme; + } + processBuffer(); + if (origin.excludeEnd) { + modeBuffer = lexeme; + } + } + do { + if (top.scope) { + emitter.closeNode(); + } + if (!top.skip && !top.subLanguage) { + relevance += top.relevance; + } + top = top.parent; + } while (top !== endMode.parent); + if (endMode.starts) { + startNewMode(endMode.starts, match); + } + return origin.returnEnd ? 0 : lexeme.length; + } + + function processContinuations() { + const list = []; + for (let current = top; current !== language; current = current.parent) { + if (current.scope) { + list.unshift(current.scope); + } + } + list.forEach(item => emitter.openNode(item)); + } + + /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */ + let lastMatch = {}; + + /** + * Process an individual match + * + * @param {string} textBeforeMatch - text preceding the match (since the last match) + * @param {EnhancedMatch} [match] - the match itself + */ + function processLexeme(textBeforeMatch, match) { + const lexeme = match && match[0]; + + // add non-matched text to the current mode buffer + modeBuffer += textBeforeMatch; + + if (lexeme == null) { + processBuffer(); + return 0; + } + + // we've found a 0 width match and we're stuck, so we need to advance + // this happens when we have badly behaved rules that have optional matchers to the degree that + // sometimes they can end up matching nothing at all + // Ref: https://github.com/highlightjs/highlight.js/issues/2140 + if (lastMatch.type === "begin" && match.type === "end" && lastMatch.index === match.index && lexeme === "") { + // spit the "skipped" character that our regex choked on back into the output sequence + modeBuffer += codeToHighlight.slice(match.index, match.index + 1); + if (!SAFE_MODE) { + /** @type {AnnotatedError} */ + const err = new Error(`0 width match regex (${languageName})`); + err.languageName = languageName; + err.badRule = lastMatch.rule; + throw err; + } + return 1; + } + lastMatch = match; + + if (match.type === "begin") { + return doBeginMatch(match); + } else if (match.type === "illegal" && !ignoreIllegals) { + // illegal match, we do not continue processing + /** @type {AnnotatedError} */ + const err = new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.scope || '') + '"'); + err.mode = top; + throw err; + } else if (match.type === "end") { + const processed = doEndMatch(match); + if (processed !== NO_MATCH) { + return processed; + } + } + + // edge case for when illegal matches $ (end of line) which is technically + // a 0 width match but not a begin/end match so it's not caught by the + // first handler (when ignoreIllegals is true) + if (match.type === "illegal" && lexeme === "") { + // advance so we aren't stuck in an infinite loop + return 1; + } + + // infinite loops are BAD, this is a last ditch catch all. if we have a + // decent number of iterations yet our index (cursor position in our + // parsing) still 3x behind our index then something is very wrong + // so we bail + if (iterations > 100000 && iterations > match.index * 3) { + const err = new Error('potential infinite loop, way more iterations than matches'); + throw err; + } + + /* + Why might be find ourselves here? An potential end match that was + triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH. + (this could be because a callback requests the match be ignored, etc) + + This causes no real harm other than stopping a few times too many. + */ + + modeBuffer += lexeme; + return lexeme.length; + } + + const language = getLanguage(languageName); + if (!language) { + error(LANGUAGE_NOT_FOUND.replace("{}", languageName)); + throw new Error('Unknown language: "' + languageName + '"'); + } + + const md = compileLanguage(language); + let result = ''; + /** @type {CompiledMode} */ + let top = continuation || md; + /** @type Record */ + const continuations = {}; // keep continuations for sub-languages + const emitter = new options.__emitter(options); + processContinuations(); + let modeBuffer = ''; + let relevance = 0; + let index = 0; + let iterations = 0; + let resumeScanAtSamePosition = false; + + try { + top.matcher.considerAll(); + + for (;;) { + iterations++; + if (resumeScanAtSamePosition) { + // only regexes not matched previously will now be + // considered for a potential match + resumeScanAtSamePosition = false; + } else { + top.matcher.considerAll(); + } + top.matcher.lastIndex = index; + + const match = top.matcher.exec(codeToHighlight); + // console.log("match", match[0], match.rule && match.rule.begin) + + if (!match) break; + + const beforeMatch = codeToHighlight.substring(index, match.index); + const processedCount = processLexeme(beforeMatch, match); + index = match.index + processedCount; + } + processLexeme(codeToHighlight.substring(index)); + emitter.closeAllNodes(); + emitter.finalize(); + result = emitter.toHTML(); + + return { + language: languageName, + value: result, + relevance: relevance, + illegal: false, + _emitter: emitter, + _top: top + }; + } catch (err) { + if (err.message && err.message.includes('Illegal')) { + return { + language: languageName, + value: escape(codeToHighlight), + illegal: true, + relevance: 0, + _illegalBy: { + message: err.message, + index: index, + context: codeToHighlight.slice(index - 100, index + 100), + mode: err.mode, + resultSoFar: result + }, + _emitter: emitter + }; + } else if (SAFE_MODE) { + return { + language: languageName, + value: escape(codeToHighlight), + illegal: false, + relevance: 0, + errorRaised: err, + _emitter: emitter, + _top: top + }; + } else { + throw err; + } + } + } + + /** + * returns a valid highlight result, without actually doing any actual work, + * auto highlight starts with this and it's possible for small snippets that + * auto-detection may not find a better match + * @param {string} code + * @returns {HighlightResult} + */ + function justTextHighlightResult(code) { + const result = { + value: escape(code), + illegal: false, + relevance: 0, + _top: PLAINTEXT_LANGUAGE, + _emitter: new options.__emitter(options) + }; + result._emitter.addText(code); + return result; + } + + /** + Highlighting with language detection. Accepts a string with the code to + highlight. Returns an object with the following properties: + + - language (detected language) + - relevance (int) + - value (an HTML string with highlighting markup) + - secondBest (object with the same structure for second-best heuristically + detected language, may be absent) + + @param {string} code + @param {Array} [languageSubset] + @returns {AutoHighlightResult} + */ + function highlightAuto(code, languageSubset) { + languageSubset = languageSubset || options.languages || Object.keys(languages); + const plaintext = justTextHighlightResult(code); + + const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name => + _highlight(name, code, false) + ); + results.unshift(plaintext); // plaintext is always an option + + const sorted = results.sort((a, b) => { + // sort base on relevance + if (a.relevance !== b.relevance) return b.relevance - a.relevance; + + // always award the tie to the base language + // ie if C++ and Arduino are tied, it's more likely to be C++ + if (a.language && b.language) { + if (getLanguage(a.language).supersetOf === b.language) { + return 1; + } else if (getLanguage(b.language).supersetOf === a.language) { + return -1; + } + } + + // otherwise say they are equal, which has the effect of sorting on + // relevance while preserving the original ordering - which is how ties + // have historically been settled, ie the language that comes first always + // wins in the case of a tie + return 0; + }); + + const [best, secondBest] = sorted; + + /** @type {AutoHighlightResult} */ + const result = best; + result.secondBest = secondBest; + + return result; + } + + /** + * Builds new class name for block given the language name + * + * @param {HTMLElement} element + * @param {string} [currentLang] + * @param {string} [resultLang] + */ + function updateClassName(element, currentLang, resultLang) { + const language = (currentLang && aliases[currentLang]) || resultLang; + + element.classList.add("hljs"); + element.classList.add(`language-${language}`); + } + + /** + * Applies highlighting to a DOM node containing code. + * + * @param {HighlightedHTMLElement} element - the HTML element to highlight + */ + function highlightElement(element) { + /** @type HTMLElement */ + let node = null; + const language = blockLanguage(element); + + if (shouldNotHighlight(language)) return; + + fire("before:highlightElement", + { el: element, language: language }); + + // we should be all text, no child nodes (unescaped HTML) - this is possibly + // an HTML injection attack - it's likely too late if this is already in + // production (the code has likely already done its damage by the time + // we're seeing it)... but we yell loudly about this so that hopefully it's + // more likely to be caught in development before making it to production + if (element.children.length > 0) { + if (!options.ignoreUnescapedHTML) { + console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."); + console.warn("https://github.com/highlightjs/highlight.js/wiki/security"); + console.warn("The element with unescaped HTML:"); + console.warn(element); + } + if (options.throwUnescapedHTML) { + const err = new HTMLInjectionError( + "One of your code blocks includes unescaped HTML.", + element.innerHTML + ); + throw err; + } + } + + node = element; + const text = node.textContent; + const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text); + + element.innerHTML = result.value; + updateClassName(element, language, result.language); + element.result = { + language: result.language, + // TODO: remove with version 11.0 + re: result.relevance, + relevance: result.relevance + }; + if (result.secondBest) { + element.secondBest = { + language: result.secondBest.language, + relevance: result.secondBest.relevance + }; + } + + fire("after:highlightElement", { el: element, result, text }); + } + + /** + * Updates highlight.js global options with the passed options + * + * @param {Partial} userOptions + */ + function configure(userOptions) { + options = inherit(options, userOptions); + } + + // TODO: remove v12, deprecated + const initHighlighting = () => { + highlightAll(); + deprecated("10.6.0", "initHighlighting() deprecated. Use highlightAll() now."); + }; + + // TODO: remove v12, deprecated + function initHighlightingOnLoad() { + highlightAll(); + deprecated("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now."); + } + + let wantsHighlight = false; + + /** + * auto-highlights all pre>code elements on the page + */ + function highlightAll() { + // if we are called too early in the loading process + if (document.readyState === "loading") { + wantsHighlight = true; + return; + } + + const blocks = document.querySelectorAll(options.cssSelector); + blocks.forEach(highlightElement); + } + + function boot() { + // if a highlight was requested before DOM was loaded, do now + if (wantsHighlight) highlightAll(); + } + + // make sure we are in the browser environment + if (typeof window !== 'undefined' && window.addEventListener) { + window.addEventListener('DOMContentLoaded', boot, false); + } + + /** + * Register a language grammar module + * + * @param {string} languageName + * @param {LanguageFn} languageDefinition + */ + function registerLanguage(languageName, languageDefinition) { + let lang = null; + try { + lang = languageDefinition(hljs); + } catch (error$1) { + error("Language definition for '{}' could not be registered.".replace("{}", languageName)); + // hard or soft error + if (!SAFE_MODE) { throw error$1; } else { error(error$1); } + // languages that have serious errors are replaced with essentially a + // "plaintext" stand-in so that the code blocks will still get normal + // css classes applied to them - and one bad language won't break the + // entire highlighter + lang = PLAINTEXT_LANGUAGE; + } + // give it a temporary name if it doesn't have one in the meta-data + if (!lang.name) lang.name = languageName; + languages[languageName] = lang; + lang.rawDefinition = languageDefinition.bind(null, hljs); + + if (lang.aliases) { + registerAliases(lang.aliases, { languageName }); + } + } + + /** + * Remove a language grammar module + * + * @param {string} languageName + */ + function unregisterLanguage(languageName) { + delete languages[languageName]; + for (const alias of Object.keys(aliases)) { + if (aliases[alias] === languageName) { + delete aliases[alias]; + } + } + } + + /** + * @returns {string[]} List of language internal names + */ + function listLanguages() { + return Object.keys(languages); + } + + /** + * @param {string} name - name of the language to retrieve + * @returns {Language | undefined} + */ + function getLanguage(name) { + name = (name || '').toLowerCase(); + return languages[name] || languages[aliases[name]]; + } + + /** + * + * @param {string|string[]} aliasList - single alias or list of aliases + * @param {{languageName: string}} opts + */ + function registerAliases(aliasList, { languageName }) { + if (typeof aliasList === 'string') { + aliasList = [aliasList]; + } + aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; }); + } + + /** + * Determines if a given language has auto-detection enabled + * @param {string} name - name of the language + */ + function autoDetection(name) { + const lang = getLanguage(name); + return lang && !lang.disableAutodetect; + } + + /** + * Upgrades the old highlightBlock plugins to the new + * highlightElement API + * @param {HLJSPlugin} plugin + */ + function upgradePluginAPI(plugin) { + // TODO: remove with v12 + if (plugin["before:highlightBlock"] && !plugin["before:highlightElement"]) { + plugin["before:highlightElement"] = (data) => { + plugin["before:highlightBlock"]( + Object.assign({ block: data.el }, data) + ); + }; + } + if (plugin["after:highlightBlock"] && !plugin["after:highlightElement"]) { + plugin["after:highlightElement"] = (data) => { + plugin["after:highlightBlock"]( + Object.assign({ block: data.el }, data) + ); + }; + } + } + + /** + * @param {HLJSPlugin} plugin + */ + function addPlugin(plugin) { + upgradePluginAPI(plugin); + plugins.push(plugin); + } + + /** + * + * @param {PluginEvent} event + * @param {any} args + */ + function fire(event, args) { + const cb = event; + plugins.forEach(function(plugin) { + if (plugin[cb]) { + plugin[cb](args); + } + }); + } + + /** + * DEPRECATED + * @param {HighlightedHTMLElement} el + */ + function deprecateHighlightBlock(el) { + deprecated("10.7.0", "highlightBlock will be removed entirely in v12.0"); + deprecated("10.7.0", "Please use highlightElement now."); + + return highlightElement(el); + } + + /* Interface definition */ + Object.assign(hljs, { + highlight, + highlightAuto, + highlightAll, + highlightElement, + // TODO: Remove with v12 API + highlightBlock: deprecateHighlightBlock, + configure, + initHighlighting, + initHighlightingOnLoad, + registerLanguage, + unregisterLanguage, + listLanguages, + getLanguage, + registerAliases, + autoDetection, + inherit, + addPlugin + }); + + hljs.debugMode = function() { SAFE_MODE = false; }; + hljs.safeMode = function() { SAFE_MODE = true; }; + hljs.versionString = version; + + hljs.regex = { + concat: concat, + lookahead: lookahead, + either: either, + optional: optional, + anyNumberOfTimes: anyNumberOfTimes + }; + + for (const key in MODES) { + // @ts-ignore + if (typeof MODES[key] === "object") { + // @ts-ignore + deepFreezeEs6.exports(MODES[key]); + } + } + + // merge all the modes/regexes into our main object + Object.assign(hljs, MODES); + + return hljs; + }; + + // export an "instance" of the highlighter + var highlight = HLJS({}); + + return highlight; + +})(); +if (typeof exports === 'object' && typeof module !== 'undefined') { module.exports = hljs; } diff --git a/src/app/resources/assets/highlight/highlight.min.js b/src/app/resources/assets/highlight/highlight.min.js new file mode 100644 index 0000000..88e09d3 --- /dev/null +++ b/src/app/resources/assets/highlight/highlight.min.js @@ -0,0 +1,1718 @@ +/*! + Highlight.js v11.7.0 (git: 82688fad18) + (c) 2006-2022 undefined and other contributors + License: BSD-3-Clause + */ +var hljs=function(){"use strict";var e={exports:{}};function t(e){ +return e instanceof Map?e.clear=e.delete=e.set=()=>{ +throw Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=()=>{ +throw Error("set is read-only") +}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((n=>{var i=e[n] +;"object"!=typeof i||Object.isFrozen(i)||t(i)})),e} +e.exports=t,e.exports.default=t;class n{constructor(e){ +void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} +ignoreMatch(){this.isMatchIgnored=!0}}function i(e){ +return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") +}function r(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t] +;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n} +const s=e=>!!e.scope||e.sublanguage&&e.language;class o{constructor(e,t){ +this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){ +this.buffer+=i(e)}openNode(e){if(!s(e))return;let t="" +;t=e.sublanguage?"language-"+e.language:((e,{prefix:t})=>{if(e.includes(".")){ +const n=e.split(".") +;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ") +}return`${t}${e}`})(e.scope,{prefix:this.classPrefix}),this.span(t)} +closeNode(e){s(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ +this.buffer+=``}}const a=(e={})=>{const t={children:[]} +;return Object.assign(t,e),t};class c{constructor(){ +this.rootNode=a(),this.stack=[this.rootNode]}get top(){ +return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ +this.top.children.push(e)}openNode(e){const t=a({scope:e}) +;this.add(t),this.stack.push(t)}closeNode(){ +if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ +for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} +walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){ +return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t), +t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){ +"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ +c._collapse(e)})))}}class l extends c{constructor(e){super(),this.options=e} +addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())} +addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root +;n.sublanguage=!0,n.language=t,this.add(n)}toHTML(){ +return new o(this,this.options).value()}finalize(){return!0}}function g(e){ +return e?"string"==typeof e?e:e.source:null}function d(e){return p("(?=",e,")")} +function u(e){return p("(?:",e,")*")}function h(e){return p("(?:",e,")?")} +function p(...e){return e.map((e=>g(e))).join("")}function f(...e){const t=(e=>{ +const t=e[e.length-1] +;return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{} +})(e);return"("+(t.capture?"":"?:")+e.map((e=>g(e))).join("|")+")"} +function b(e){return RegExp(e.toString()+"|").exec("").length-1} +const m=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ +;function E(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n +;let i=g(e),r="";for(;i.length>0;){const e=m.exec(i);if(!e){r+=i;break} +r+=i.substring(0,e.index), +i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?r+="\\"+(Number(e[1])+t):(r+=e[0], +"("===e[0]&&n++)}return r})).map((e=>`(${e})`)).join(t)} +const x="[a-zA-Z]\\w*",w="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",_="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",O="\\b(0b[01]+)",v={ +begin:"\\\\[\\s\\S]",relevance:0},N={scope:"string",begin:"'",end:"'", +illegal:"\\n",contains:[v]},k={scope:"string",begin:'"',end:'"',illegal:"\\n", +contains:[v]},M=(e,t,n={})=>{const i=r({scope:"comment",begin:e,end:t, +contains:[]},n);i.contains.push({scope:"doctag", +begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", +end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) +;const s=f("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) +;return i.contains.push({begin:p(/[ ]+/,"(",s,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i +},S=M("//","$"),R=M("/\\*","\\*/"),j=M("#","$");var A=Object.freeze({ +__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:x,UNDERSCORE_IDENT_RE:w, +NUMBER_RE:y,C_NUMBER_RE:_,BINARY_NUMBER_RE:O, +RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", +SHEBANG:(e={})=>{const t=/^#![ ]*\// +;return e.binary&&(e.begin=p(t,/.*\b/,e.binary,/\b.*/)),r({scope:"meta",begin:t, +end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)}, +BACKSLASH_ESCAPE:v,APOS_STRING_MODE:N,QUOTE_STRING_MODE:k,PHRASAL_WORDS_MODE:{ +begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ +},COMMENT:M,C_LINE_COMMENT_MODE:S,C_BLOCK_COMMENT_MODE:R,HASH_COMMENT_MODE:j, +NUMBER_MODE:{scope:"number",begin:y,relevance:0},C_NUMBER_MODE:{scope:"number", +begin:_,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:O,relevance:0}, +REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//, +end:/\/[gimuy]*/,illegal:/\n/,contains:[v,{begin:/\[/,end:/\]/,relevance:0, +contains:[v]}]}]},TITLE_MODE:{scope:"title",begin:x,relevance:0}, +UNDERSCORE_TITLE_MODE:{scope:"title",begin:w,relevance:0},METHOD_GUARD:{ +begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{ +"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{ +t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function I(e,t){ +"."===e.input[e.index-1]&&t.ignoreMatch()}function T(e,t){ +void 0!==e.className&&(e.scope=e.className,delete e.className)}function L(e,t){ +t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", +e.__beforeBegin=I,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, +void 0===e.relevance&&(e.relevance=0))}function B(e,t){ +Array.isArray(e.illegal)&&(e.illegal=f(...e.illegal))}function D(e,t){ +if(e.match){ +if(e.begin||e.end)throw Error("begin & end are not supported with match") +;e.begin=e.match,delete e.match}}function H(e,t){ +void 0===e.relevance&&(e.relevance=1)}const P=(e,t)=>{if(!e.beforeMatch)return +;if(e.starts)throw Error("beforeMatch cannot be used with starts") +;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t] +})),e.keywords=n.keywords,e.begin=p(n.beforeMatch,d(n.begin)),e.starts={ +relevance:0,contains:[Object.assign(n,{endsParent:!0})] +},e.relevance=0,delete n.beforeMatch +},C=["of","and","for","in","not","or","if","then","parent","list","value"] +;function $(e,t,n="keyword"){const i=Object.create(null) +;return"string"==typeof e?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach((n=>{ +Object.assign(i,$(e[n],t,n))})),i;function r(e,n){ +t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|") +;i[n[0]]=[e,U(n[0],n[1])]}))}}function U(e,t){ +return t?Number(t):(e=>C.includes(e.toLowerCase()))(e)?0:1}const z={},K=e=>{ +console.error(e)},W=(e,...t)=>{console.log("WARN: "+e,...t)},X=(e,t)=>{ +z[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),z[`${e}/${t}`]=!0) +},G=Error();function Z(e,t,{key:n}){let i=0;const r=e[n],s={},o={} +;for(let e=1;e<=t.length;e++)o[e+i]=r[e],s[e+i]=!0,i+=b(t[e-1]) +;e[n]=o,e[n]._emit=s,e[n]._multi=!0}function F(e){(e=>{ +e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope, +delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={ +_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope +}),(e=>{if(Array.isArray(e.begin)){ +if(e.skip||e.excludeBegin||e.returnBegin)throw K("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), +G +;if("object"!=typeof e.beginScope||null===e.beginScope)throw K("beginScope must be object"), +G;Z(e,e.begin,{key:"beginScope"}),e.begin=E(e.begin,{joinWith:""})}})(e),(e=>{ +if(Array.isArray(e.end)){ +if(e.skip||e.excludeEnd||e.returnEnd)throw K("skip, excludeEnd, returnEnd not compatible with endScope: {}"), +G +;if("object"!=typeof e.endScope||null===e.endScope)throw K("endScope must be object"), +G;Z(e,e.end,{key:"endScope"}),e.end=E(e.end,{joinWith:""})}})(e)}function V(e){ +function t(t,n){ +return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":"")) +}class n{constructor(){ +this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} +addRule(e,t){ +t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]), +this.matchAt+=b(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) +;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(E(e,{joinWith:"|" +}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex +;const t=this.matcherRe.exec(e);if(!t)return null +;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n] +;return t.splice(0,n),Object.assign(t,i)}}class i{constructor(){ +this.rules=[],this.multiRegexes=[], +this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ +if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n +;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))), +t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){ +return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){ +this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){ +const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex +;let n=t.exec(e) +;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{ +const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)} +return n&&(this.regexIndex+=n.position+1, +this.regexIndex===this.count&&this.considerAll()),n}} +if(e.compilerExtensions||(e.compilerExtensions=[]), +e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") +;return e.classNameAliases=r(e.classNameAliases||{}),function n(s,o){const a=s +;if(s.isCompiled)return a +;[T,D,F,P].forEach((e=>e(s,o))),e.compilerExtensions.forEach((e=>e(s,o))), +s.__beforeBegin=null,[L,B,H].forEach((e=>e(s,o))),s.isCompiled=!0;let c=null +;return"object"==typeof s.keywords&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords), +c=s.keywords.$pattern, +delete s.keywords.$pattern),c=c||/\w+/,s.keywords&&(s.keywords=$(s.keywords,e.case_insensitive)), +a.keywordPatternRe=t(c,!0), +o&&(s.begin||(s.begin=/\B|\b/),a.beginRe=t(a.begin),s.end||s.endsWithParent||(s.end=/\B|\b/), +s.end&&(a.endRe=t(a.end)), +a.terminatorEnd=g(a.end)||"",s.endsWithParent&&o.terminatorEnd&&(a.terminatorEnd+=(s.end?"|":"")+o.terminatorEnd)), +s.illegal&&(a.illegalRe=t(s.illegal)), +s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>r(e,{ +variants:null},t)))),e.cachedVariants?e.cachedVariants:q(e)?r(e,{ +starts:e.starts?r(e.starts):null +}):Object.isFrozen(e)?r(e):e))("self"===e?s:e)))),s.contains.forEach((e=>{n(e,a) +})),s.starts&&n(s.starts,o),a.matcher=(e=>{const t=new i +;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin" +}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end" +}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(a),a}(e)}function q(e){ +return!!e&&(e.endsWithParent||q(e.starts))}class J extends Error{ +constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}} +const Y=i,Q=r,ee=Symbol("nomatch");var te=(t=>{ +const i=Object.create(null),r=Object.create(null),s=[];let o=!0 +;const a="Could not find the language '{}', did you forget to load/include a language module?",c={ +disableAutodetect:!0,name:"Plain text",contains:[]};let g={ +ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, +languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", +cssSelector:"pre code",languages:null,__emitter:l};function b(e){ +return g.noHighlightRe.test(e)}function m(e,t,n){let i="",r="" +;"object"==typeof t?(i=e, +n=t.ignoreIllegals,r=t.language):(X("10.7.0","highlight(lang, code, ...args) has been deprecated."), +X("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), +r=e,i=t),void 0===n&&(n=!0);const s={code:i,language:r};k("before:highlight",s) +;const o=s.result?s.result:E(s.language,s.code,n) +;return o.code=s.code,k("after:highlight",o),o}function E(e,t,r,s){ +const c=Object.create(null);function l(){if(!N.keywords)return void M.addText(S) +;let e=0;N.keywordPatternRe.lastIndex=0;let t=N.keywordPatternRe.exec(S),n="" +;for(;t;){n+=S.substring(e,t.index) +;const r=y.case_insensitive?t[0].toLowerCase():t[0],s=(i=r,N.keywords[i]);if(s){ +const[e,i]=s +;if(M.addText(n),n="",c[r]=(c[r]||0)+1,c[r]<=7&&(R+=i),e.startsWith("_"))n+=t[0];else{ +const n=y.classNameAliases[e]||e;M.addKeyword(t[0],n)}}else n+=t[0] +;e=N.keywordPatternRe.lastIndex,t=N.keywordPatternRe.exec(S)}var i +;n+=S.substring(e),M.addText(n)}function d(){null!=N.subLanguage?(()=>{ +if(""===S)return;let e=null;if("string"==typeof N.subLanguage){ +if(!i[N.subLanguage])return void M.addText(S) +;e=E(N.subLanguage,S,!0,k[N.subLanguage]),k[N.subLanguage]=e._top +}else e=x(S,N.subLanguage.length?N.subLanguage:null) +;N.relevance>0&&(R+=e.relevance),M.addSublanguage(e._emitter,e.language) +})():l(),S=""}function u(e,t){let n=1;const i=t.length-1;for(;n<=i;){ +if(!e._emit[n]){n++;continue}const i=y.classNameAliases[e[n]]||e[n],r=t[n] +;i?M.addKeyword(r,i):(S=r,l(),S=""),n++}}function h(e,t){ +return e.scope&&"string"==typeof e.scope&&M.openNode(y.classNameAliases[e.scope]||e.scope), +e.beginScope&&(e.beginScope._wrap?(M.addKeyword(S,y.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), +S=""):e.beginScope._multi&&(u(e.beginScope,t),S="")),N=Object.create(e,{parent:{ +value:N}}),N}function p(e,t,i){let r=((e,t)=>{const n=e&&e.exec(t) +;return n&&0===n.index})(e.endRe,i);if(r){if(e["on:end"]){const i=new n(e) +;e["on:end"](t,i),i.isMatchIgnored&&(r=!1)}if(r){ +for(;e.endsParent&&e.parent;)e=e.parent;return e}} +if(e.endsWithParent)return p(e.parent,t,i)}function f(e){ +return 0===N.matcher.regexIndex?(S+=e[0],1):(I=!0,0)}function b(e){ +const n=e[0],i=t.substring(e.index),r=p(N,e,i);if(!r)return ee;const s=N +;N.endScope&&N.endScope._wrap?(d(), +M.addKeyword(n,N.endScope._wrap)):N.endScope&&N.endScope._multi?(d(), +u(N.endScope,e)):s.skip?S+=n:(s.returnEnd||s.excludeEnd||(S+=n), +d(),s.excludeEnd&&(S=n));do{ +N.scope&&M.closeNode(),N.skip||N.subLanguage||(R+=N.relevance),N=N.parent +}while(N!==r.parent);return r.starts&&h(r.starts,e),s.returnEnd?0:n.length} +let m={};function w(i,s){const a=s&&s[0];if(S+=i,null==a)return d(),0 +;if("begin"===m.type&&"end"===s.type&&m.index===s.index&&""===a){ +if(S+=t.slice(s.index,s.index+1),!o){const t=Error(`0 width match regex (${e})`) +;throw t.languageName=e,t.badRule=m.rule,t}return 1} +if(m=s,"begin"===s.type)return(e=>{ +const t=e[0],i=e.rule,r=new n(i),s=[i.__beforeBegin,i["on:begin"]] +;for(const n of s)if(n&&(n(e,r),r.isMatchIgnored))return f(t) +;return i.skip?S+=t:(i.excludeBegin&&(S+=t), +d(),i.returnBegin||i.excludeBegin||(S=t)),h(i,e),i.returnBegin?0:t.length})(s) +;if("illegal"===s.type&&!r){ +const e=Error('Illegal lexeme "'+a+'" for mode "'+(N.scope||"")+'"') +;throw e.mode=N,e}if("end"===s.type){const e=b(s);if(e!==ee)return e} +if("illegal"===s.type&&""===a)return 1 +;if(A>1e5&&A>3*s.index)throw Error("potential infinite loop, way more iterations than matches") +;return S+=a,a.length}const y=O(e) +;if(!y)throw K(a.replace("{}",e)),Error('Unknown language: "'+e+'"') +;const _=V(y);let v="",N=s||_;const k={},M=new g.__emitter(g);(()=>{const e=[] +;for(let t=N;t!==y;t=t.parent)t.scope&&e.unshift(t.scope) +;e.forEach((e=>M.openNode(e)))})();let S="",R=0,j=0,A=0,I=!1;try{ +for(N.matcher.considerAll();;){ +A++,I?I=!1:N.matcher.considerAll(),N.matcher.lastIndex=j +;const e=N.matcher.exec(t);if(!e)break;const n=w(t.substring(j,e.index),e) +;j=e.index+n} +return w(t.substring(j)),M.closeAllNodes(),M.finalize(),v=M.toHTML(),{ +language:e,value:v,relevance:R,illegal:!1,_emitter:M,_top:N}}catch(n){ +if(n.message&&n.message.includes("Illegal"))return{language:e,value:Y(t), +illegal:!0,relevance:0,_illegalBy:{message:n.message,index:j, +context:t.slice(j-100,j+100),mode:n.mode,resultSoFar:v},_emitter:M};if(o)return{ +language:e,value:Y(t),illegal:!1,relevance:0,errorRaised:n,_emitter:M,_top:N} +;throw n}}function x(e,t){t=t||g.languages||Object.keys(i);const n=(e=>{ +const t={value:Y(e),illegal:!1,relevance:0,_top:c,_emitter:new g.__emitter(g)} +;return t._emitter.addText(e),t})(e),r=t.filter(O).filter(N).map((t=>E(t,e,!1))) +;r.unshift(n);const s=r.sort(((e,t)=>{ +if(e.relevance!==t.relevance)return t.relevance-e.relevance +;if(e.language&&t.language){if(O(e.language).supersetOf===t.language)return 1 +;if(O(t.language).supersetOf===e.language)return-1}return 0})),[o,a]=s,l=o +;return l.secondBest=a,l}function w(e){let t=null;const n=(e=>{ +let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"" +;const n=g.languageDetectRe.exec(t);if(n){const t=O(n[1]) +;return t||(W(a.replace("{}",n[1])), +W("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"} +return t.split(/\s+/).find((e=>b(e)||O(e)))})(e);if(b(n))return +;if(k("before:highlightElement",{el:e,language:n +}),e.children.length>0&&(g.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), +console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), +console.warn("The element with unescaped HTML:"), +console.warn(e)),g.throwUnescapedHTML))throw new J("One of your code blocks includes unescaped HTML.",e.innerHTML) +;t=e;const i=t.textContent,s=n?m(i,{language:n,ignoreIllegals:!0}):x(i) +;e.innerHTML=s.value,((e,t,n)=>{const i=t&&r[t]||n +;e.classList.add("hljs"),e.classList.add("language-"+i) +})(e,n,s.language),e.result={language:s.language,re:s.relevance, +relevance:s.relevance},s.secondBest&&(e.secondBest={ +language:s.secondBest.language,relevance:s.secondBest.relevance +}),k("after:highlightElement",{el:e,result:s,text:i})}let y=!1;function _(){ +"loading"!==document.readyState?document.querySelectorAll(g.cssSelector).forEach(w):y=!0 +}function O(e){return e=(e||"").toLowerCase(),i[e]||i[r[e]]} +function v(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ +r[e.toLowerCase()]=t}))}function N(e){const t=O(e) +;return t&&!t.disableAutodetect}function k(e,t){const n=e;s.forEach((e=>{ +e[n]&&e[n](t)}))} +"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ +y&&_()}),!1),Object.assign(t,{highlight:m,highlightAuto:x,highlightAll:_, +highlightElement:w, +highlightBlock:e=>(X("10.7.0","highlightBlock will be removed entirely in v12.0"), +X("10.7.0","Please use highlightElement now."),w(e)),configure:e=>{g=Q(g,e)}, +initHighlighting:()=>{ +_(),X("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")}, +initHighlightingOnLoad:()=>{ +_(),X("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.") +},registerLanguage:(e,n)=>{let r=null;try{r=n(t)}catch(t){ +if(K("Language definition for '{}' could not be registered.".replace("{}",e)), +!o)throw t;K(t),r=c} +r.name||(r.name=e),i[e]=r,r.rawDefinition=n.bind(null,t),r.aliases&&v(r.aliases,{ +languageName:e})},unregisterLanguage:e=>{delete i[e] +;for(const t of Object.keys(r))r[t]===e&&delete r[t]}, +listLanguages:()=>Object.keys(i),getLanguage:O,registerAliases:v, +autoDetection:N,inherit:Q,addPlugin:e=>{(e=>{ +e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{ +e["before:highlightBlock"](Object.assign({block:t.el},t)) +}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{ +e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),s.push(e)} +}),t.debugMode=()=>{o=!1},t.safeMode=()=>{o=!0 +},t.versionString="11.7.0",t.regex={concat:p,lookahead:d,either:f,optional:h, +anyNumberOfTimes:u};for(const t in A)"object"==typeof A[t]&&e.exports(A[t]) +;return Object.assign(t,A),t})({});return te}() +;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);/*! `xml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a=e.regex,n=a.concat(/[\p{L}_]/u,a.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s={ +className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},t={begin:/\s/, +contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] +},i=e.inherit(t,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{ +className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),r={ +endsWithParent:!0,illegal:/`]+/}]}]}]};return{ +name:"HTML, XML", +aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], +case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[t,l,c,i,{begin:/\[/,end:/\]/,contains:[{ +className:"meta",begin://,contains:[t,i,l,c]}]}] +},e.COMMENT(//,{relevance:10}),{begin://, +relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/, +relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"style"},contains:[r],starts:{ +end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"script"},contains:[r],starts:{ +end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ +className:"tag",begin:/<>|<\/>/},{className:"tag", +begin:a.concat(//,/>/,/\s/)))), +end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:r}]},{ +className:"tag",begin:a.concat(/<\//,a.lookahead(a.concat(n,/>/))),contains:[{ +className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}} +})();hljs.registerLanguage("xml",e)})();/*! `csharp` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={ +keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]), +built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"], +literal:["default","false","null","true"]},a=e.inherit(e.TITLE_MODE,{ +begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{ +begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}] +},t=e.inherit(s,{illegal:/\n/}),r={className:"subst",begin:/\{/,end:/\}/, +keywords:n},l=e.inherit(r,{illegal:/\n/}),c={className:"string",begin:/\$"/, +end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/ +},e.BACKSLASH_ESCAPE,l]},o={className:"string",begin:/\$@"/,end:'"',contains:[{ +begin:/\{\{/},{begin:/\}\}/},{begin:'""'},r]},d=e.inherit(o,{illegal:/\n/, +contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]}) +;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE], +l.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{ +illegal:/\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},a] +},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={ +begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"], +keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0, +contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{ +begin:"\x3c!--|--\x3e"},{begin:""}]}] +}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#", +end:"$",keywords:{ +keyword:"if else elif endif define undef warning error line region endregion pragma checksum" +}},g,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/, +illegal:/[^\s:,]/,contains:[{beginKeywords:"where class" +},a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace", +relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta", +begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{ +className:"string",begin:/"/,end:/"/}]},{ +beginKeywords:"new return throw await else",relevance:0},{className:"function", +begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, +end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{ +beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial", +relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, +contains:[e.TITLE_MODE,E],relevance:0},{match:/\(\)/},{className:"params", +begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0, +contains:[g,i,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})() +;hljs.registerLanguage("csharp",e)})();/*! `sml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"SML (Standard ML)", +aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?", +keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while", +built_in:"array bool char exn int list option order real ref string substring vector unit word", +literal:"true false NONE SOME LESS EQUAL GREATER nil"},illegal:/\/\/|>>/, +contains:[{className:"literal",begin:/\[(\|\|)?\]|\(\)/,relevance:0 +},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol", +begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{ +className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{ +begin:"[a-z_]\\w*'[\\w']*"},e.inherit(e.APOS_STRING_MODE,{className:"string", +relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number", +begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)", +relevance:0},{begin:/[-=]>/}]})})();hljs.registerLanguage("sml",e)})();/*! `php` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const t=e.regex,a=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,a),n=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,a),o={ +scope:"variable",match:"\\$+"+r},c={scope:"subst",variants:[{begin:/\$\w+/},{ +begin:/\{\$/,end:/\}/}]},i=e.inherit(e.APOS_STRING_MODE,{illegal:null +}),s="[ \t\n]",l={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{ +illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(c) +}),i,e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/, +contains:e.QUOTE_STRING_MODE.contains.concat(c)})]},_={scope:"number", +variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{ +begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{ +begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{ +begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?" +}],relevance:0 +},d=["false","null","true"],p=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],b=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],E={ +keyword:p,literal:(e=>{const t=[];return e.forEach((e=>{ +t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase()) +})),t})(d),built_in:b},u=e=>e.map((e=>e.replace(/\|\d+$/,""))),g={variants:[{ +match:[/new/,t.concat(s,"+"),t.concat("(?!",u(b).join("\\b|"),"\\b)"),n],scope:{ +1:"keyword",4:"title.class"}}]},h=t.concat(r,"\\b(?!\\()"),m={variants:[{ +match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),h],scope:{2:"variable.constant" +}},{match:[/::/,/class/],scope:{2:"variable.language"}},{ +match:[n,t.concat(/::/,t.lookahead(/(?!class\b)/)),h],scope:{1:"title.class", +3:"variable.constant"}},{match:[n,t.concat("::",t.lookahead(/(?!class\b)/))], +scope:{1:"title.class"}},{match:[n,/::/,/class/],scope:{1:"title.class", +3:"variable.language"}}]},I={scope:"attr", +match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},f={relevance:0, +begin:/\(/,end:/\)/,keywords:E,contains:[I,o,m,e.C_BLOCK_COMMENT_MODE,l,_,g] +},O={relevance:0, +match:[/\b/,t.concat("(?!fn\\b|function\\b|",u(p).join("\\b|"),"|",u(b).join("\\b|"),"\\b)"),r,t.concat(s,"*"),t.lookahead(/(?=\()/)], +scope:{3:"title.function.invoke"},contains:[f]};f.contains.push(O) +;const v=[I,m,e.C_BLOCK_COMMENT_MODE,l,_,g];return{case_insensitive:!1, +keywords:E,contains:[{begin:t.concat(/#\[\s*/,n),beginScope:"meta",end:/]/, +endScope:"meta",keywords:{literal:d,keyword:["new","array"]},contains:[{ +begin:/\[/,end:/]/,keywords:{literal:d,keyword:["new","array"]}, +contains:["self",...v]},...v,{scope:"meta",match:n}] +},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{ +scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/, +keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE, +contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{ +begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{ +begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},o,O,m,{ +match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},g,{ +scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/, +excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use" +},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params", +begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:E, +contains:["self",o,m,e.C_BLOCK_COMMENT_MODE,l,_]}]},{scope:"class",variants:[{ +beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait", +illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{ +beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ +beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/, +contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{ +beginKeywords:"use",relevance:0,end:";",contains:[{ +match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},l,_]} +}})();hljs.registerLanguage("php",e)})();/*! `typescript` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],t=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],c=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],r=["arguments","this","super","console","window","document","localStorage","module","global"],i=[].concat(c,t,s) +;function o(o){const l=o.regex,d=e,b={begin:/<[A-Za-z0-9\\._:-]+/, +end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ +const a=e[0].length+e.index,t=e.input[a] +;if("<"===t||","===t)return void n.ignoreMatch();let s +;">"===t&&(((e,{after:n})=>{const a="",M={ +match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,l.lookahead(T)], +keywords:"async",className:{1:"keyword",3:"title.function"},contains:[S]} +;return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{ +PARAMS_CONTAINS:v,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/, +contains:[o.SHEBANG({label:"shebang",binary:"node",relevance:5}),{ +label:"use_strict",className:"meta",relevance:10, +begin:/^\s*['"]use (strict|asm)['"]/ +},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,A,p,_,N,{match:/\$\d+/},E,R,{ +className:"attr",begin:d+l.lookahead(":"),relevance:0},M,{ +begin:"("+o.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", +keywords:"return throw case",relevance:0,contains:[N,o.REGEXP_MODE,{ +className:"function",begin:T,returnBegin:!0,end:"\\s*=>",contains:[{ +className:"params",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{ +className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0, +excludeEnd:!0,keywords:g,contains:v}]}]},{begin:/,/,relevance:0},{match:/\s+/, +relevance:0},{variants:[{begin:"<>",end:""},{ +match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:b.begin, +"on:begin":b.isTrulyOpeningTag,end:b.end}],subLanguage:"xml",contains:[{ +begin:b.begin,end:b.end,skip:!0,contains:["self"]}]}]},x,{ +beginKeywords:"while if switch catch for"},{ +begin:"\\b(?!function)"+o.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,label:"func.def",contains:[S,o.inherit(o.TITLE_MODE,{begin:d, +className:"title.function"})]},{match:/\.\.\./,relevance:0},I,{match:"\\$"+d, +relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, +contains:[S]},k,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},w,C,{match:/\$[(.]/}]}}return t=>{ +const s=o(t),c=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],l={ +beginKeywords:"namespace",end:/\{/,excludeEnd:!0, +contains:[s.exports.CLASS_REFERENCE]},d={beginKeywords:"interface",end:/\{/, +excludeEnd:!0,keywords:{keyword:"interface extends",built_in:c}, +contains:[s.exports.CLASS_REFERENCE]},b={$pattern:e, +keyword:n.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]), +literal:a,built_in:i.concat(c),"variable.language":r},g={className:"meta", +begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},u=(e,n,a)=>{ +const t=e.contains.findIndex((e=>e.label===n)) +;if(-1===t)throw Error("can not find mode to replace");e.contains.splice(t,1,a)} +;return Object.assign(s.keywords,b), +s.exports.PARAMS_CONTAINS.push(g),s.contains=s.contains.concat([g,l,d]), +u(s,"shebang",t.SHEBANG()),u(s,"use_strict",{className:"meta",relevance:10, +begin:/^\s*['"]use strict['"]/ +}),s.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(s,{ +name:"TypeScript",aliases:["ts","tsx"]}),s}})() +;hljs.registerLanguage("typescript",e)})();/*! `kotlin` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={ +className:"number",variants:[{ +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ +begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};return e=>{const n={ +keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", +built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing", +literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@" +},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={ +className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string", +variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'", +illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/, +contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={ +className:"meta", +begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?" +},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/, +end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}] +},o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={ +variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/, +contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d], +{name:"Kotlin",aliases:["kt","kts"],keywords:n, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag", +begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword", +begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol", +begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$", +returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://, +keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/, +endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/, +endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0 +},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{ +begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{ +3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0, +illegal:"extends implements",contains:[{ +beginKeywords:"public protected internal private constructor" +},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0, +excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/, +excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env", +end:"$",illegal:"\n"},o]}}})();hljs.registerLanguage("kotlin",e)})();/*! `ruby` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",s=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(s,/(::\w+)*/),t={ +"variable.constant":["__FILE__","__LINE__","__ENCODING__"], +"variable.language":["self","super"], +keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"], +built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"], +literal:["true","false","nil"]},c={className:"doctag",begin:"@[A-Za-z]+"},r={ +begin:"#<",end:">"},b=[e.COMMENT("#","$",{contains:[c] +}),e.COMMENT("^=begin","^=end",{contains:[c],relevance:10 +}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],l={className:"subst",begin:/#\{/, +end:/\}/,keywords:t},d={className:"string",contains:[e.BACKSLASH_ESCAPE,l], +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{ +begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{ +begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//, +end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{ +begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{ +begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ +begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ +begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ +begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)), +contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/, +contains:[e.BACKSLASH_ESCAPE,l]})]}]},o="[0-9](_?[0-9])*",g={className:"number", +relevance:0,variants:[{ +begin:`\\b([1-9](_?[0-9])*|0)(\\.(${o}))?([eE][+-]?(${o})|r)?i?\\b`},{ +begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" +},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ +begin:"\\b0(_?[0-7])+r?i?\\b"}]},_={variants:[{match:/\(\)/},{ +className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0, +keywords:t}]},u=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{ +match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class", +4:"title.class.inherited"},keywords:t},{match:[/(include|extend)\s+/,i],scope:{ +2:"title.class"},keywords:t},{relevance:0,match:[i,/\.new[. (]/],scope:{ +1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},{relevance:0,match:s,scope:"title.class"},{ +match:[/def/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[_]},{ +begin:e.IDENT_RE+"::"},{className:"symbol", +begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", +begin:":(?!\\s)",contains:[d,{begin:a}],relevance:0},g,{className:"variable", +begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ +className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0, +relevance:0,keywords:t},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*", +keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,l], +illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{ +begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[", +end:"\\][a-z]*"}]}].concat(r,b),relevance:0}].concat(r,b) +;l.contains=u,_.contains=u;const m=[{begin:/^\s*=>/,starts:{end:"$",contains:u} +},{className:"meta.prompt", +begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", +starts:{end:"$",keywords:t,contains:u}}];return b.unshift(r),{name:"Ruby", +aliases:["rb","gemspec","podspec","thor","irb"],keywords:t,illegal:/\/\*/, +contains:[e.SHEBANG({binary:"ruby"})].concat(m).concat(b).concat(u)}}})() +;hljs.registerLanguage("ruby",e)})();/*! `yaml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={ +className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ +},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable", +variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{ +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={ +end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/, +end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]", +contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{ +begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{ +begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$", +relevance:10},{className:"string", +begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ +begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, +relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type", +begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a +},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", +begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", +relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ +className:"number", +begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" +},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],r=[...b] +;return r.pop(),r.push(i),l.contains=r,{name:"YAML",case_insensitive:!0, +aliases:["yml"],contains:b}}})();hljs.registerLanguage("yaml",e)})();/*! `cpp` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t=e.regex,a=e.COMMENT("//","$",{ +contains:[{begin:/\\\n/}] +}),n="[a-zA-Z_]\\w*::",r="(?!struct)(decltype\\(auto\\)|"+t.optional(n)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",i={ +className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{ +className:"string",begin:/<.*?>/},a,e.C_BLOCK_COMMENT_MODE]},l={ +className:"title",begin:t.optional(n)+e.IDENT_RE,relevance:0 +},d=t.optional(n)+e.IDENT_RE+"\\s*\\(",u={ +type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"], +keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"], +literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"], +_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"] +},p={className:"function.dispatch",relevance:0,keywords:{ +_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"] +}, +begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/)) +},_=[p,o,i,a,e.C_BLOCK_COMMENT_MODE,c,s],m={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:_.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:_.concat(["self"]),relevance:0}]),relevance:0},g={className:"function", +begin:"("+r+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", +keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[l],relevance:0},{ +begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,c]},{ +relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u, +relevance:0,contains:[a,e.C_BLOCK_COMMENT_MODE,s,c,i,{begin:/\(/,end:/\)/, +keywords:u,relevance:0,contains:["self",a,e.C_BLOCK_COMMENT_MODE,s,c,i]}] +},i,a,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C++", +aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",i]},{begin:e.IDENT_RE+"::",keywords:u},{ +match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/], +className:{1:"keyword",3:"title.class"}}])}}})();hljs.registerLanguage("cpp",e) +})();/*! `python` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,a=/[\p{XID_Start}_]\p{XID_Continue}*/u,i=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],s={ +$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i, +built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], +literal:["__debug__","Ellipsis","False","None","NotImplemented","True"], +type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"] +},t={className:"meta",begin:/^(>>>|\.\.\.) /},r={className:"subst",begin:/\{/, +end:/\}/,keywords:s,illegal:/#/},l={begin:/\{\{/,relevance:0},b={ +className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,t],relevance:10},{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/, +contains:[e.BACKSLASH_ESCAPE,t],relevance:10},{ +begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,t,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/, +end:/"""/,contains:[e.BACKSLASH_ESCAPE,t,l,r]},{begin:/([uU]|[rR])'/,end:/'/, +relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{ +begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/, +end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/, +contains:[e.BACKSLASH_ESCAPE,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,l,r]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},o="[0-9](_?[0-9])*",c=`(\\b(${o}))?\\.(${o})|\\b(${o})\\.`,d="\\b|"+i.join("|"),g={ +className:"number",relevance:0,variants:[{ +begin:`(\\b(${o})|(${c}))[eE][+-]?(${o})[jJ]?(?=${d})`},{begin:`(${c})[jJ]?`},{ +begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{ +begin:`\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${d})` +},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\b(${o})[jJ](?=${d})` +}]},p={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:s, +contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={ +className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/, +end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s, +contains:["self",t,g,b,e.HASH_COMMENT_MODE]}]};return r.contains=[b,g,t],{ +name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:s, +illegal:/(<\/|->|\?)|=>/,contains:[t,g,{begin:/\bself\b/},{beginKeywords:"if", +relevance:0},b,p,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{ +1:"keyword",3:"title.function"},contains:[m]},{variants:[{ +match:[/\bclass/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/\bclass/,/\s+/,a]}], +scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{ +className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[g,m,b]}]}}})() +;hljs.registerLanguage("python",e)})();/*! `python-repl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var a=(()=>{"use strict";return a=>({aliases:["pycon"],contains:[{ +className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"} +},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]})})() +;hljs.registerLanguage("python-repl",a)})();/*! `less` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],r=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],i=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),n=r.concat(i) +;return a=>{const l=(e=>({IMPORTANT:{scope:"meta",begin:"!important"}, +BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number", +begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{ +className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{ +scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/} +}))(a),s=n,d="([\\w-]+|@\\{[\\w-]+\\})",c=[],g=[],b=e=>({className:"string", +begin:"~?"+e+".*?"+e}),m=(e,t,r)=>({className:e,begin:t,relevance:r}),p={ +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},u={ +begin:"\\(",end:"\\)",contains:g,keywords:p,relevance:0} +;g.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,b("'"),b('"'),l.CSS_NUMBER_MODE,{ +begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]", +excludeEnd:!0} +},l.HEXCOLOR,u,m("variable","@@?[\\w-]+",10),m("variable","@\\{[\\w-]+\\}"),m("built_in","~?`[^`]*?`"),{ +className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0 +},l.IMPORTANT,{beginKeywords:"and not"},l.FUNCTION_DISPATCH);const h=g.concat({ +begin:/\{/,end:/\}/,contains:c}),f={beginKeywords:"when",endsWithParent:!0, +contains:[{beginKeywords:"and not"}].concat(g)},k={begin:d+"\\s*:", +returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/ +},l.CSS_VARIABLE,{className:"attribute",begin:"\\b("+o.join("|")+")\\b", +end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:g}}] +},w={className:"keyword", +begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", +starts:{end:"[;{}]",keywords:p,returnEnd:!0,contains:g,relevance:0}},v={ +className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{ +begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:h}},y={variants:[{ +begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0, +returnEnd:!0,illegal:"[<='$\"]",relevance:0, +contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,f,m("keyword","all\\b"),m("variable","@\\{[\\w-]+\\}"),{ +begin:"\\b("+e.join("|")+")\\b",className:"selector-tag" +},l.CSS_NUMBER_MODE,m("selector-tag",d,0),m("selector-id","#"+d),m("selector-class","\\."+d,0),m("selector-tag","&",0),l.ATTRIBUTE_SELECTOR_MODE,{ +className:"selector-pseudo",begin:":("+r.join("|")+")"},{ +className:"selector-pseudo",begin:":(:)?("+i.join("|")+")"},{begin:/\(/, +end:/\)/,relevance:0,contains:h},{begin:"!important"},l.FUNCTION_DISPATCH]},x={ +begin:`[\\w-]+:(:)?(${s.join("|")})`,returnBegin:!0,contains:[y]} +;return c.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,w,v,x,k,y,f,l.FUNCTION_DISPATCH), +{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:c}}})() +;hljs.registerLanguage("less",e)})();/*! `julia` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const r="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",t={$pattern:r, +keyword:["baremodule","begin","break","catch","ccall","const","continue","do","else","elseif","end","export","false","finally","for","function","global","if","import","in","isa","let","local","macro","module","quote","return","true","try","using","where","while"], +literal:["ARGS","C_NULL","DEPOT_PATH","ENDIAN_BOM","ENV","Inf","Inf16","Inf32","Inf64","InsertionSort","LOAD_PATH","MergeSort","NaN","NaN16","NaN32","NaN64","PROGRAM_FILE","QuickSort","RoundDown","RoundFromZero","RoundNearest","RoundNearestTiesAway","RoundNearestTiesUp","RoundToZero","RoundUp","VERSION|0","devnull","false","im","missing","nothing","pi","stderr","stdin","stdout","true","undef","\u03c0","\u212f"], +built_in:["AbstractArray","AbstractChannel","AbstractChar","AbstractDict","AbstractDisplay","AbstractFloat","AbstractIrrational","AbstractMatrix","AbstractRange","AbstractSet","AbstractString","AbstractUnitRange","AbstractVecOrMat","AbstractVector","Any","ArgumentError","Array","AssertionError","BigFloat","BigInt","BitArray","BitMatrix","BitSet","BitVector","Bool","BoundsError","CapturedException","CartesianIndex","CartesianIndices","Cchar","Cdouble","Cfloat","Channel","Char","Cint","Cintmax_t","Clong","Clonglong","Cmd","Colon","Complex","ComplexF16","ComplexF32","ComplexF64","CompositeException","Condition","Cptrdiff_t","Cshort","Csize_t","Cssize_t","Cstring","Cuchar","Cuint","Cuintmax_t","Culong","Culonglong","Cushort","Cvoid","Cwchar_t","Cwstring","DataType","DenseArray","DenseMatrix","DenseVecOrMat","DenseVector","Dict","DimensionMismatch","Dims","DivideError","DomainError","EOFError","Enum","ErrorException","Exception","ExponentialBackOff","Expr","Float16","Float32","Float64","Function","GlobalRef","HTML","IO","IOBuffer","IOContext","IOStream","IdDict","IndexCartesian","IndexLinear","IndexStyle","InexactError","InitError","Int","Int128","Int16","Int32","Int64","Int8","Integer","InterruptException","InvalidStateException","Irrational","KeyError","LinRange","LineNumberNode","LinearIndices","LoadError","MIME","Matrix","Method","MethodError","Missing","MissingException","Module","NTuple","NamedTuple","Nothing","Number","OrdinalRange","OutOfMemoryError","OverflowError","Pair","PartialQuickSort","PermutedDimsArray","Pipe","ProcessFailedException","Ptr","QuoteNode","Rational","RawFD","ReadOnlyMemoryError","Real","ReentrantLock","Ref","Regex","RegexMatch","RoundingMode","SegmentationFault","Set","Signed","Some","StackOverflowError","StepRange","StepRangeLen","StridedArray","StridedMatrix","StridedVecOrMat","StridedVector","String","StringIndexError","SubArray","SubString","SubstitutionString","Symbol","SystemError","Task","TaskFailedException","Text","TextDisplay","Timer","Tuple","Type","TypeError","TypeVar","UInt","UInt128","UInt16","UInt32","UInt64","UInt8","UndefInitializer","UndefKeywordError","UndefRefError","UndefVarError","Union","UnionAll","UnitRange","Unsigned","Val","Vararg","VecElement","VecOrMat","Vector","VersionNumber","WeakKeyDict","WeakRef"] +},n={keywords:t,illegal:/<\//},a={className:"subst",begin:/\$\(/,end:/\)/, +keywords:t},i={className:"variable",begin:"\\$"+r},o={className:"string", +contains:[e.BACKSLASH_ESCAPE,a,i],variants:[{begin:/\w*"""/,end:/"""\w*/, +relevance:10},{begin:/\w*"/,end:/"\w*/}]},s={className:"string", +contains:[e.BACKSLASH_ESCAPE,a,i],begin:"`",end:"`"},l={className:"meta", +begin:"@"+r};return n.name="Julia",n.contains=[{className:"number", +begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/, +relevance:0},{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},o,s,l,{ +className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#", +end:"$"}]},e.HASH_COMMENT_MODE,{className:"keyword", +begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/ +}],a.contains=n.contains,n}})();hljs.registerLanguage("julia",e)})();/*! `graphql` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex;return{name:"GraphQL", +aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,keywords:{ +keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"], +literal:["true","false","null"]}, +contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{ +scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation", +begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/, +end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{ +scope:"symbol",begin:a.concat(/[_A-Za-z][_0-9A-Za-z]*/,a.lookahead(/\s*:/)), +relevance:0}],illegal:[/[;<']/,/BEGIN/]}}})();hljs.registerLanguage("graphql",e) +})();/*! `perl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,t=/[dualxmsipngr]{0,12}/,r={$pattern:/[\w.]+/, +keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0" +},s={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:r},i={begin:/->\{/, +end:/\}/},a={variants:[{begin:/\$\d/},{ +begin:n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])") +},{begin:/[$%@][^\s\w{]/,relevance:0}] +},c=[e.BACKSLASH_ESCAPE,s,a],o=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],g=(e,r,s="\\1")=>{ +const i="\\1"===s?s:n.concat(s,r) +;return n.concat(n.concat("(?:",e,")"),r,/(?:\\.|[^\\\/])*?/,i,/(?:\\.|[^\\\/])*?/,s,t) +},l=(e,r,s)=>n.concat(n.concat("(?:",e,")"),r,/(?:\\.|[^\\\/])*?/,s,t),d=[a,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{ +endsWithParent:!0}),i,{className:"string",contains:c,variants:[{ +begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[", +end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{ +begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">", +relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'", +contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{ +begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number", +begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", +relevance:0},{ +begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*", +keywords:"split return print reverse grep",relevance:0, +contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{ +begin:g("s|tr|y",n.either(...o,{capture:!0}))},{begin:g("s|tr|y","\\(","\\)")},{ +begin:g("s|tr|y","\\[","\\]")},{begin:g("s|tr|y","\\{","\\}")}],relevance:2},{ +className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{ +begin:l("(?:m|qr)?",/\//,/\//)},{begin:l("m|qr",n.either(...o,{capture:!0 +}),/\1/)},{begin:l("m|qr",/\(/,/\)/)},{begin:l("m|qr",/\[/,/\]/)},{ +begin:l("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub", +end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{ +begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$", +subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}] +}];return s.contains=d,i.contains=d,{name:"Perl",aliases:["pl","pm"],keywords:r, +contains:d}}})();hljs.registerLanguage("perl",e)})();/*! `cmake` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"CMake",aliases:["cmake.in"], +case_insensitive:!0,keywords:{ +keyword:"break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined" +},contains:[{className:"variable",begin:/\$\{/,end:/\}/ +},e.COMMENT(/#\[\[/,/]]/),e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE] +})})();hljs.registerLanguage("cmake",e)})();/*! `sql` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const r=e.regex,t=e.COMMENT("--","$"),n=["true","false","unknown"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],i=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],o=i,c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!i.includes(e))),l={ +begin:r.concat(/\b/,r.either(...o),/\s*\(/),relevance:0,keywords:{built_in:o}} +;return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{ +$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:r,when:t}={})=>{const n=t +;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:n(e)?e+"|0":e)) +})(c,{when:e=>e.length<3}),literal:n,type:a, +built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"] +},contains:[{begin:r.either(...s),relevance:0,keywords:{$pattern:/[\w\.]+/, +keyword:c.concat(s),literal:n,type:a}},{className:"type", +begin:r.either("double precision","large object","with timezone","without timezone") +},l,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{ +begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{ +begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"operator", +begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})() +;hljs.registerLanguage("sql",e)})();/*! `makefile` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const i={className:"variable", +variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{var e=(()=>{"use strict" +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],t=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],r=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","module","global"],i=[].concat(r,t,s) +;return o=>{const l=o.regex,b=e,d={begin:/<[A-Za-z0-9\\._:-]+/, +end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ +const a=e[0].length+e.index,t=e.input[a] +;if("<"===t||","===t)return void n.ignoreMatch();let s +;">"===t&&(((e,{after:n})=>{const a="",M={ +match:[/const|var|let/,/\s+/,b,/\s*/,/=\s*/,/(async\s*)?/,l.lookahead(C)], +keywords:"async",className:{1:"keyword",3:"title.function"},contains:[S]} +;return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{ +PARAMS_CONTAINS:p,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/, +contains:[o.SHEBANG({label:"shebang",binary:"node",relevance:5}),{ +label:"use_strict",className:"meta",relevance:10, +begin:/^\s*['"]use (strict|asm)['"]/ +},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,y,N,_,h,{match:/\$\d+/},E,R,{ +className:"attr",begin:b+l.lookahead(":"),relevance:0},M,{ +begin:"("+o.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", +keywords:"return throw case",relevance:0,contains:[h,o.REGEXP_MODE,{ +className:"function",begin:C,returnBegin:!0,end:"\\s*=>",contains:[{ +className:"params",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{ +className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0, +excludeEnd:!0,keywords:g,contains:p}]}]},{begin:/,/,relevance:0},{match:/\s+/, +relevance:0},{variants:[{begin:"<>",end:""},{ +match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:d.begin, +"on:begin":d.isTrulyOpeningTag,end:d.end}],subLanguage:"xml",contains:[{ +begin:d.begin,end:d.end,skip:!0,contains:["self"]}]}]},O,{ +beginKeywords:"while if switch catch for"},{ +begin:"\\b(?!function)"+o.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,label:"func.def",contains:[S,o.inherit(o.TITLE_MODE,{begin:b, +className:"title.function"})]},{match:/\.\.\./,relevance:0},x,{match:"\\$"+b, +relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, +contains:[S]},k,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},w,T,{match:/\$[(.]/}]}}})() +;hljs.registerLanguage("javascript",e)})();/*! `plaintext` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var t=(()=>{"use strict";return t=>({name:"Plain text", +aliases:["text","txt"],disableAutodetect:!0})})() +;hljs.registerLanguage("plaintext",t)})();/*! `bash` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const s=e.regex,t={},n={begin:/\$\{/, +end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{ +className:"variable",variants:[{ +begin:s.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const a={ +className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i={ +begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, +end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(c);const o={begin:/\$?\(\(/, +end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] +},r=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 +}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, +contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ +name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/, +keyword:["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"], +literal:["true","false"], +built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"] +},contains:[r,e.SHEBANG(),l,o,e.HASH_COMMENT_MODE,i,{match:/(\/[a-z._-]+)+/},c,{ +className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}}})() +;hljs.registerLanguage("bash",e)})();/*! `dockerfile` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Dockerfile",aliases:["docker"], +case_insensitive:!0, +keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"], +contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{ +beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell", +starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"{var e=(()=>{"use strict";return e=>{ +const a=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,i=a.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),s=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,t=a.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/) +;return{name:"R",keywords:{$pattern:n, +keyword:"function if in break next repeat else for while", +literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10", +built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm" +},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/, +starts:{end:a.lookahead(a.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)), +endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{ +scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0 +}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}] +}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE], +variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"', +relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{ +1:"operator",2:"number"},match:[s,i]},{scope:{1:"operator",2:"number"}, +match:[/%[^%]*%/,i]},{scope:{1:"punctuation",2:"number"},match:[t,i]},{scope:{ +2:"number"},match:[/[^a-zA-Z0-9._]|^/,i]}]},{scope:{3:"operator"}, +match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:s},{ +match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:t},{begin:"`",end:"`", +contains:[{begin:/\\./}]}]}}})();hljs.registerLanguage("r",e)})();/*! `protobuf` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t={ +match:[/(message|enum|service)\s+/,e.IDENT_RE],scope:{1:"keyword", +2:"title.class"}};return{name:"Protocol Buffers",keywords:{ +keyword:["package","import","option","optional","required","repeated","group","oneof"], +type:["double","float","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","bool","string","bytes"], +literal:["true","false"]}, +contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t,{ +className:"function",beginKeywords:"rpc",end:/[{;]/,excludeEnd:!0, +keywords:"rpc returns"},{begin:/^\s*[A-Z_]+(?=\s*=[^\n]+;$)/}]}}})() +;hljs.registerLanguage("protobuf",e)})();/*! `scss` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],r=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],t=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse() +;return n=>{const a=(e=>({IMPORTANT:{scope:"meta",begin:"!important"}, +BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number", +begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{ +className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{ +scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/} +}))(n),l=t,s=i,d="@[a-z-]+",c={className:"variable", +begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS", +case_insensitive:!0,illegal:"[=/|']", +contains:[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE,a.CSS_NUMBER_MODE,{ +className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{ +className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0 +},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag", +begin:"\\b("+e.join("|")+")\\b",relevance:0},{className:"selector-pseudo", +begin:":("+s.join("|")+")"},{className:"selector-pseudo", +begin:":(:)?("+l.join("|")+")"},c,{begin:/\(/,end:/\)/, +contains:[a.CSS_NUMBER_MODE]},a.CSS_VARIABLE,{className:"attribute", +begin:"\\b("+o.join("|")+")\\b"},{ +begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" +},{begin:/:/,end:/[;}{]/,relevance:0, +contains:[a.BLOCK_COMMENT,c,a.HEXCOLOR,a.CSS_NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,a.IMPORTANT,a.FUNCTION_DISPATCH] +},{begin:"@(page|font-face)",keywords:{$pattern:d,keyword:"@page @font-face"}},{ +begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/, +keyword:"and or not only",attribute:r.join(" ")},contains:[{begin:d, +className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute" +},c,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,a.HEXCOLOR,a.CSS_NUMBER_MODE] +},a.FUNCTION_DISPATCH]}}})();hljs.registerLanguage("scss",e)})();/*! `http` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n="HTTP/(2|1\\.[01])",a={ +className:"attribute", +begin:e.regex.concat("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{ +contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$", +relevance:0}}]}},s=[a,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0} +}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{ +begin:"^(?="+n+" \\d{3})",end:/$/,contains:[{className:"meta",begin:n},{ +className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/, +contains:s}},{begin:"(?=^[A-Z]+ (.*?) "+n+"$)",end:/$/,contains:[{ +className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{ +className:"meta",begin:n},{className:"keyword",begin:"[A-Z]+"}],starts:{ +end:/\b\B/,illegal:/\S/,contains:s}},e.inherit(a,{relevance:0})]}}})() +;hljs.registerLanguage("http",e)})();/*! `php-template` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var n=(()=>{"use strict";return n=>({name:"PHP template", +subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php", +contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{ +begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{illegal:null, +className:null,contains:null,skip:!0}),n.inherit(n.QUOTE_STRING_MODE,{ +illegal:null,className:null,contains:null,skip:!0})]}]})})() +;hljs.registerLanguage("php-template",n)})();/*! `vim` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Vim Script",keywords:{ +$pattern:/[!#@\w]+/, +keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank", +built_in:"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp" +},illegal:/;/,contains:[e.NUMBER_MODE,{className:"string",begin:"'",end:"'", +illegal:"\\n"},{className:"string",begin:/"(\\"|\n\\|[^"\n])*"/ +},e.COMMENT('"',"$"),{className:"variable",begin:/[bwtglsav]:[\w\d_]+/},{ +begin:[/\b(?:function|function!)/,/\s+/,e.IDENT_RE],className:{1:"keyword", +3:"title"},end:"$",relevance:0,contains:[{className:"params",begin:"\\(", +end:"\\)"}]},{className:"symbol",begin:/<[\w-]+>/}]})})() +;hljs.registerLanguage("vim",e)})();/*! `css` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],i=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],r=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],t=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse() +;return n=>{const a=n.regex,l=(e=>({IMPORTANT:{scope:"meta",begin:"!important"}, +BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number", +begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{ +className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{ +scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/} +}))(n),s=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS", +case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"}, +classNameAliases:{keyframePosition:"selector-tag"},contains:[l.BLOCK_COMMENT,{ +begin:/-(webkit|moz|ms|o)-(?=[a-z])/},l.CSS_NUMBER_MODE,{ +className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{ +className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 +},l.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ +begin:":("+r.join("|")+")"},{begin:":(:)?("+t.join("|")+")"}]},l.CSS_VARIABLE,{ +className:"attribute",begin:"\\b("+o.join("|")+")\\b"},{begin:/:/,end:/[;}{]/, +contains:[l.BLOCK_COMMENT,l.HEXCOLOR,l.IMPORTANT,l.CSS_NUMBER_MODE,...s,{ +begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" +},contains:[...s,{className:"string",begin:/[^)]/,endsWithParent:!0, +excludeEnd:!0}]},l.FUNCTION_DISPATCH]},{begin:a.lookahead(/@/),end:"[{;]", +relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/ +},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{ +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:i.join(" ")},contains:[{ +begin:/[a-z-]+(?=:)/,className:"attribute"},...s,l.CSS_NUMBER_MODE]}]},{ +className:"selector-tag",begin:"\\b("+e.join("|")+")\\b"}]}}})() +;hljs.registerLanguage("css",e)})();/*! `swift` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function a(e){return t("(?=",e,")")} +function t(...a){return a.map((a=>e(a))).join("")}function n(...a){const t=(e=>{ +const a=e[e.length-1] +;return"object"==typeof a&&a.constructor===Object?(e.splice(e.length-1,1),a):{} +})(a);return"("+(t.capture?"":"?:")+a.map((a=>e(a))).join("|")+")"} +const i=e=>t(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","distributed","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],p=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],d=n(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),F=n(d,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=t(d,F,"*"),h=n(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=n(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=t(h,f,"*"),y=t(/[A-Z]/,f,"*"),g=["autoclosure",t(/convention\(/,n("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",t(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"] +;return e=>{const d={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{ +contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],A={match:[/\./,n(...s,...u)], +className:{2:"keyword"}},N={match:t(/\./,n(...r)),relevance:0 +},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),D={variants:[{ +className:"keyword", +match:n(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},k={ +$pattern:n(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[A,N,D],_=[{ +match:t(/\./,n(...p)),relevance:0},{className:"built_in", +match:t(/\b/,n(...p),/(?=\()/)}],S={match:/->/,relevance:0},M=[S,{ +className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${F})+`}] +}],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{ +match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{ +match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{ +match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},L=(e="")=>({ +className:"subst",variants:[{match:t(/\\/,e,/[0\\tnr"']/)},{ +match:t(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),O=(e="")=>({className:"subst", +match:t(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),T=(e="")=>({className:"subst", +label:"interpol",begin:t(/\\/,e,/\(/),end:/\)/}),$=(e="")=>({begin:t(e,/"""/), +end:t(/"""/,e),contains:[L(e),O(e),T(e)]}),j=(e="")=>({begin:t(e,/"/), +end:t(/"/,e),contains:[L(e),T(e)]}),P={className:"string", +variants:[$(),$("#"),$("##"),$("###"),j(),j("#"),j("##"),j("###")]},K={ +match:t(/`/,w,/`/)},z=[K,{className:"variable",match:/\$\d+/},{ +className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#(un)?)available/, +className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E, +contains:[...M,I,P]}]}},{className:"keyword",match:t(/@/,n(...g))},{ +className:"meta",match:t(/@/,w)}],U={match:a(/\b[A-Z]/),relevance:0,contains:[{ +className:"type", +match:t(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+") +},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{ +match:/\.\.\./,relevance:0},{match:t(/\s+&\s+/,a(y)),relevance:0}]},Z={ +begin://,keywords:k,contains:[...v,...B,...q,S,U]};U.contains.push(Z) +;const V={begin:/\(/,end:/\)/,relevance:0,keywords:k,contains:["self",{ +match:t(w,/\s*:/),keywords:"_|0",relevance:0 +},...v,...B,..._,...M,I,P,...z,...q,U]},W={begin://,contains:[...v,U] +},G={begin:/\(/,end:/\)/,keywords:k,contains:[{ +begin:n(a(t(w,/\s*:/)),a(t(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0,contains:[{ +className:"keyword",match:/\b_\b/},{className:"params",match:w}] +},...v,...B,...M,I,P,...q,U,V],endsParent:!0,illegal:/["']/},R={ +match:[/func/,/\s+/,n(K.match,w,b)],className:{1:"keyword",3:"title.function"}, +contains:[W,G,d],illegal:[/\[/,/%/]},X={ +match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"}, +contains:[W,G,d],illegal:/\[|%/},H={match:[/operator/,/\s+/,b],className:{ +1:"keyword",3:"title"}},J={begin:[/precedencegroup/,/\s+/,y],className:{ +1:"keyword",3:"title"},contains:[U],keywords:[...l,...o],end:/}/} +;for(const e of P.variants){const a=e.contains.find((e=>"interpol"===e.label)) +;a.keywords=k;const t=[...B,..._,...M,I,P,...z];a.contains=[...t,{begin:/\(/, +end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:k, +contains:[...v,R,X,{beginKeywords:"struct protocol class extension enum actor", +end:"\\{",excludeEnd:!0,keywords:k,contains:[e.inherit(e.TITLE_MODE,{ +className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B] +},H,J,{beginKeywords:"import",end:/$/,contains:[...v],relevance:0 +},...B,..._,...M,I,P,...z,...q,U,V]}}})();hljs.registerLanguage("swift",e)})();/*! `wasm` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{e.regex;const a=e.COMMENT(/\(;/,/;\)/) +;return a.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/, +keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"] +},contains:[e.COMMENT(/;;/,/$/),a,{match:[/(?:offset|align)/,/\s*/,/=/], +className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{ +match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{ +begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword", +3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/, +className:"type"},{className:"keyword", +match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/ +},{className:"number",relevance:0, +match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/ +}]}}})();hljs.registerLanguage("wasm",e)})();/*! `vbnet` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,t=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,s=/\d{1,2}(:\d{1,2}){1,2}/,r={ +className:"literal",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{ +begin:n.concat(/# */,s,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{ +begin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,s),/ *#/)}] +},l=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}] +}),o=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]}) +;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0, +classNameAliases:{label:"symbol"},keywords:{ +keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield", +built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort", +type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort", +literal:"true false nothing"}, +illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{ +className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/, +end:/"/,illegal:/\n/,contains:[{begin:/""/}]},r,{className:"number",relevance:0, +variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/ +},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{ +begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{ +className:"label",begin:/^\w+:/},l,o,{className:"meta", +begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/, +end:/$/,keywords:{ +keyword:"const disable else elseif enable end externalsource if region then"}, +contains:[o]}]}}})();hljs.registerLanguage("vbnet",e)})();/*! `handlebars` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex,n={ +$pattern:/[\w.\/]+/, +built_in:["action","bindattr","collection","component","concat","debugger","each","each-in","get","hash","if","in","input","link-to","loc","log","lookup","mut","outlet","partial","query-params","render","template","textarea","unbound","unless","view","with","yield"] +},t=/\[\]|\[[^\]]+\]/,s=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,i=a.either(/""|"[^"]+"/,/''|'[^']+'/,t,s),r=a.concat(a.optional(/\.|\.\/|\//),i,a.anyNumberOfTimes(a.concat(/(\.|\/)/,i))),l=a.concat("(",t,"|",s,")(?==)"),c={ +begin:r},o=e.inherit(c,{keywords:{$pattern:/[\w.\/]+/, +literal:["true","false","undefined","null"]}}),m={begin:/\(/,end:/\)/},d={ +className:"attr",begin:l,relevance:0,starts:{begin:/=/,end:/=/,starts:{ +contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,o,m]}}},g={ +contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:/as\s+\|/, +keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},d,o,m],returnEnd:!0 +},b=e.inherit(c,{className:"name",keywords:n,starts:e.inherit(g,{end:/\)/})}) +;m.contains=[b];const u=e.inherit(c,{keywords:n,className:"name", +starts:e.inherit(g,{end:/\}\}/})}),h=e.inherit(c,{keywords:n,className:"name" +}),N=e.inherit(c,{className:"name",keywords:n,starts:e.inherit(g,{end:/\}\}/})}) +;return{name:"Handlebars", +aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0, +subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/, +skip:!0},e.COMMENT(/\{\{!--/,/--\}\}/),e.COMMENT(/\{\{!/,/\}\}/),{ +className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[u], +starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{ +className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[h]},{ +className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[u]},{ +className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{ +className:"template-tag",begin:/\{\{(?=else if)/,end:/\}\}/,keywords:"else if" +},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[h]},{ +className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[N]},{ +className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[N]}]}}})() +;hljs.registerLanguage("handlebars",e)})();/*! `haskell` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={ +variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},a={ +className:"meta",begin:/\{-#/,end:/#-\}/},i={className:"meta",begin:"^#",end:"$" +},s={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},l={begin:"\\(", +end:"\\)",illegal:'"',contains:[a,i,{className:"type", +begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{ +begin:"[_a-z][\\w']*"}),n]},t="([0-9a-fA-F]_*)+",c={className:"number", +relevance:0,variants:[{ +match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{ +match:`\\b0[xX]_*(${t})(\\.(${t}))?([pP][+-]?(([0-9]_*)+))?\\b`},{ +match:"\\b0[oO](([0-7]_*)+)\\b"},{match:"\\b0[bB](([01]_*)+)\\b"}]};return{ +name:"Haskell",aliases:["hs"], +keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec", +contains:[{beginKeywords:"module",end:"where",keywords:"module where", +contains:[l,n],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$", +keywords:"import qualified as hiding",contains:[l,n],illegal:"\\W\\.|;"},{ +className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where", +keywords:"class family instance where",contains:[s,l,n]},{className:"class", +begin:"\\b(data|(new)?type)\\b",end:"$", +keywords:"data family type newtype deriving",contains:[a,s,l,{begin:/\{/, +end:/\}/,contains:l.contains},n]},{beginKeywords:"default",end:"$", +contains:[s,l,n]},{beginKeywords:"infix infixl infixr",end:"$", +contains:[e.C_NUMBER_MODE,n]},{begin:"\\bforeign\\b",end:"$", +keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe", +contains:[s,e.QUOTE_STRING_MODE,n]},{className:"meta", +begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$" +},a,i,e.QUOTE_STRING_MODE,c,s,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*" +}),n,{begin:"->|<-"}]}}})();hljs.registerLanguage("haskell",e)})();/*! `markdown` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={begin:/<\/?[A-Za-z_]/, +end:">",subLanguage:"xml",relevance:0},a={variants:[{begin:/\[.+?\]\[.*?\]/, +relevance:0},{ +begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, +relevance:2},{ +begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), +relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ +begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/ +},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, +returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", +excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", +end:"\\]",excludeBegin:!0,excludeEnd:!0}]},i={className:"strong",contains:[], +variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}] +},s={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{ +begin:/_(?![_\s])/,end:/_/,relevance:0}]},c=e.inherit(i,{contains:[] +}),t=e.inherit(s,{contains:[]});i.contains.push(t),s.contains.push(c) +;let g=[n,a];return[i,s,c,t].forEach((e=>{e.contains=e.contains.concat(g) +})),g=g.concat(i,s),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ +className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:g},{ +begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", +contains:g}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", +end:"\\s+",excludeEnd:!0},i,s,{className:"quote",begin:"^>\\s+",contains:g, +end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ +begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ +begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", +contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ +begin:"^[-\\*]{3,}",end:"$"},a,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ +className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ +className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})() +;hljs.registerLanguage("markdown",e)})();/*! `java` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;var e="\\.([0-9](_*[0-9])*)",a="[0-9a-fA-F](_*[0-9a-fA-F])*",n={ +className:"number",variants:[{ +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ +begin:`\\b0[xX]((${a})\\.?|(${a})?\\.(${a}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${a})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};function s(e,a,n){return-1===n?"":e.replace(a,(t=>s(e,a,n-1)))} +return e=>{ +const a=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",i=t+s("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),r={ +keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"], +literal:["false","true","null"], +type:["char","boolean","long","float","int","byte","short","double"], +built_in:["super","this"]},l={className:"meta",begin:"@"+t,contains:[{ +begin:/\(/,end:/\)/,contains:["self"]}]},c={className:"params",begin:/\(/, +end:/\)/,keywords:r,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0} +;return{name:"Java",aliases:["jsp"],keywords:r,illegal:/<\/|#/, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, +relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ +begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/, +className:"string",contains:[e.BACKSLASH_ESCAPE] +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ +match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{ +1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{ +begin:[a.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type", +3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword", +3:"title.class"},contains:[c,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +beginKeywords:"new throw return else",relevance:0},{ +begin:["(?:"+i+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{ +2:"title.function"},keywords:r,contains:[{className:"params",begin:/\(/, +end:/\)/,keywords:r,relevance:0, +contains:[l,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n,l]}}})() +;hljs.registerLanguage("java",e)})();/*! `ini` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,a={className:"number", +relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}] +},s=e.COMMENT();s.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const i={ +className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/ +}]},t={className:"literal",begin:/\bon|off|true|false|yes|no\b/},r={ +className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''", +end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"' +},{begin:"'",end:"'"}]},l={begin:/\[/,end:/\]/,contains:[s,t,i,r,a,"self"], +relevance:0},c=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{ +name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/, +contains:[s,{className:"section",begin:/\[+/,end:/\]+/},{ +begin:n.concat(c,"(\\s*\\.\\s*",c,")*",n.lookahead(/\s*=\s*[^#\s]/)), +className:"attr",starts:{end:/$/,contains:[s,l,t,i,r,a]}}]}}})() +;hljs.registerLanguage("ini",e)})();/*! `arduino` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t={ +type:["boolean","byte","word","String"], +built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"], +_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"], +literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"] +},r=(e=>{const t=e.regex,r=e.COMMENT("//","$",{contains:[{begin:/\\\n/}] +}),n="[a-zA-Z_]\\w*::",a="(?!struct)(decltype\\(auto\\)|"+t.optional(n)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",i={ +className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{ +className:"string",begin:/<.*?>/},r,e.C_BLOCK_COMMENT_MODE]},c={ +className:"title",begin:t.optional(n)+e.IDENT_RE,relevance:0 +},d=t.optional(n)+e.IDENT_RE+"\\s*\\(",u={ +type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"], +keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"], +literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"], +_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"] +},p={className:"function.dispatch",relevance:0,keywords:{ +_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"] +}, +begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/)) +},m=[p,l,i,r,e.C_BLOCK_COMMENT_MODE,o,s],g={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:m.concat(["self"]),relevance:0}]),relevance:0},_={className:"function", +begin:"("+a+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", +keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[c],relevance:0},{ +begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,o]},{ +relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u, +relevance:0,contains:[r,e.C_BLOCK_COMMENT_MODE,s,o,i,{begin:/\(/,end:/\)/, +keywords:u,relevance:0,contains:["self",r,e.C_BLOCK_COMMENT_MODE,s,o,i]}] +},i,r,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C++", +aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",i]},{begin:e.IDENT_RE+"::",keywords:u},{ +match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/], +className:{1:"keyword",3:"title.class"}}])}})(e),n=r.keywords +;return n.type=[...n.type,...t.type], +n.literal=[...n.literal,...t.literal],n.built_in=[...n.built_in,...t.built_in], +n._hints=t._hints,r.name="Arduino",r.aliases=["ino"],r.supersetOf="cpp",r}})() +;hljs.registerLanguage("arduino",e)})();/*! `nginx` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,a={ +className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{\w+\}/},{ +begin:n.concat(/[$@]/,e.UNDERSCORE_IDENT_RE)}]},s={endsWithParent:!0,keywords:{ +$pattern:/[a-z_]{2,}|\/dev\/poll/, +literal:["on","off","yes","no","true","false","none","blocked","debug","info","notice","warn","error","crit","select","break","last","permanent","redirect","kqueue","rtsig","epoll","poll","/dev/poll"] +},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string", +contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/ +}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[a] +},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:"\\s\\^", +end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{ +begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number", +begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{ +className:"number",begin:"\\b\\d+[kKmMgGdshdwy]?\\b",relevance:0},a]};return{ +name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{ +beginKeywords:"upstream location",end:/;|\{/,contains:s.contains,keywords:{ +section:"upstream location"}},{className:"section", +begin:n.concat(e.UNDERSCORE_IDENT_RE+n.lookahead(/\s+\{/)),relevance:0},{ +begin:n.lookahead(e.UNDERSCORE_IDENT_RE+"\\s"),end:";|\\{",contains:[{ +className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:s}],relevance:0}], +illegal:"[^\\s\\}\\{]"}}})();hljs.registerLanguage("nginx",e)})();/*! `x86asm` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var s=(()=>{"use strict";return s=>({name:"Intel x86 Assembly", +case_insensitive:!0,keywords:{$pattern:"[.%]?"+s.IDENT_RE, +keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63", +built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr", +meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__" +},contains:[s.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{ +begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*(\\.[0-9_]*)?(?:[pP](?:[+-]?[0-9_]+)?)?)\\b", +relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{ +begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b" +},{ +begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b" +}]},s.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'" +},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{ +begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{ +begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst", +begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{ +className:"meta",begin:/^\s*\.[\w_-]+/}]})})();hljs.registerLanguage("x86asm",s) +})();/*! `c` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,t=e.COMMENT("//","$",{ +contains:[{begin:/\\\n/}] +}),s="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+n.optional(s)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",r={ +className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{ +match:/\batomic_[a-z]{3,6}\b/}]},i={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(i,{className:"string"}),{ +className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},c={ +className:"title",begin:n.optional(s)+e.IDENT_RE,relevance:0 +},d=n.optional(s)+e.IDENT_RE+"\\s*\\(",u={ +keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"], +type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"], +literal:"true false NULL", +built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr" +},g=[o,r,t,e.C_BLOCK_COMMENT_MODE,l,i],m={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:g.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:g.concat(["self"]),relevance:0}]),relevance:0},p={ +begin:"("+a+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", +keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[e.inherit(c,{ +className:"title.function"})],relevance:0},{relevance:0,match:/,/},{ +className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0, +contains:[t,e.C_BLOCK_COMMENT_MODE,i,l,r,{begin:/\(/,end:/\)/,keywords:u, +relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,i,l,r]}] +},r,t,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C",aliases:["h"],keywords:u, +disableAutodetect:!0,illegal:"=]/,contains:[{ +beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:o, +strings:i,keywords:u}}}})();hljs.registerLanguage("c",e)})();/*! `rust` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t=e.regex,a={ +className:"title.function.invoke",relevance:0, +begin:t.concat(/\b/,/(?!let\b)/,e.IDENT_RE,t.lookahead(/\s*\(/)) +},n="([ui](8|16|32|64|128|size)|f(32|64))?",s=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],r=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"] +;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:r, +keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"], +literal:["true","false","Some","None","Ok","Err"],built_in:s},illegal:""},a]}}})() +;hljs.registerLanguage("rust",e)})();/*! `go` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={ +keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"], +type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"], +literal:["true","false","iota","nil"], +built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"] +};return{name:"Go",aliases:["golang"],keywords:n,illegal:"{var s=(()=>{"use strict";return s=>({name:"Shell Session", +aliases:["console","shellsession"],contains:[{className:"meta.prompt", +begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/, +subLanguage:"bash"}}]})})();hljs.registerLanguage("shell",s)})();/*! `apache` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={className:"number", +begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{ +name:"Apache config",aliases:["apacheconf"],case_insensitive:!0, +contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/, +contains:[n,{className:"number",begin:/:\d{1,5}/ +},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute", +begin:/\w+/,relevance:0,keywords:{ +_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"] +},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"}, +contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable", +begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}] +},n,{className:"number",begin:/\b\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}} +})();hljs.registerLanguage("apache",e)})();/*! `coq` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Coq",keywords:{ +keyword:["_|0","as","at","cofix","else","end","exists","exists2","fix","for","forall","fun","if","IF","in","let","match","mod","Prop","return","Set","then","Type","using","where","with","Abort","About","Add","Admit","Admitted","All","Arguments","Assumptions","Axiom","Back","BackTo","Backtrack","Bind","Blacklist","Canonical","Cd","Check","Class","Classes","Close","Coercion","Coercions","CoFixpoint","CoInductive","Collection","Combined","Compute","Conjecture","Conjectures","Constant","constr","Constraint","Constructors","Context","Corollary","CreateHintDb","Cut","Declare","Defined","Definition","Delimit","Dependencies","Dependent","Derive","Drop","eauto","End","Equality","Eval","Example","Existential","Existentials","Existing","Export","exporting","Extern","Extract","Extraction","Fact","Field","Fields","File","Fixpoint","Focus","for","From","Function","Functional","Generalizable","Global","Goal","Grab","Grammar","Graph","Guarded","Heap","Hint","HintDb","Hints","Hypotheses","Hypothesis","ident","Identity","If","Immediate","Implicit","Import","Include","Inductive","Infix","Info","Initial","Inline","Inspect","Instance","Instances","Intro","Intros","Inversion","Inversion_clear","Language","Left","Lemma","Let","Libraries","Library","Load","LoadPath","Local","Locate","Ltac","ML","Mode","Module","Modules","Monomorphic","Morphism","Next","NoInline","Notation","Obligation","Obligations","Opaque","Open","Optimize","Options","Parameter","Parameters","Parametric","Path","Paths","pattern","Polymorphic","Preterm","Print","Printing","Program","Projections","Proof","Proposition","Pwd","Qed","Quit","Rec","Record","Recursive","Redirect","Relation","Remark","Remove","Require","Reserved","Reset","Resolve","Restart","Rewrite","Right","Ring","Rings","Save","Scheme","Scope","Scopes","Script","Search","SearchAbout","SearchHead","SearchPattern","SearchRewrite","Section","Separate","Set","Setoid","Show","Solve","Sorted","Step","Strategies","Strategy","Structure","SubClass","Table","Tables","Tactic","Term","Test","Theorem","Time","Timeout","Transparent","Type","Typeclasses","Types","Undelimit","Undo","Unfocus","Unfocused","Unfold","Universe","Universes","Unset","Unshelve","using","Variable","Variables","Variant","Verbose","Visibility","where","with"], +built_in:["abstract","absurd","admit","after","apply","as","assert","assumption","at","auto","autorewrite","autounfold","before","bottom","btauto","by","case","case_eq","cbn","cbv","change","classical_left","classical_right","clear","clearbody","cofix","compare","compute","congruence","constr_eq","constructor","contradict","contradiction","cut","cutrewrite","cycle","decide","decompose","dependent","destruct","destruction","dintuition","discriminate","discrR","do","double","dtauto","eapply","eassumption","eauto","ecase","econstructor","edestruct","ediscriminate","eelim","eexact","eexists","einduction","einjection","eleft","elim","elimtype","enough","equality","erewrite","eright","esimplify_eq","esplit","evar","exact","exactly_once","exfalso","exists","f_equal","fail","field","field_simplify","field_simplify_eq","first","firstorder","fix","fold","fourier","functional","generalize","generalizing","gfail","give_up","has_evar","hnf","idtac","in","induction","injection","instantiate","intro","intro_pattern","intros","intuition","inversion","inversion_clear","is_evar","is_var","lapply","lazy","left","lia","lra","move","native_compute","nia","nsatz","omega","once","pattern","pose","progress","proof","psatz","quote","record","red","refine","reflexivity","remember","rename","repeat","replace","revert","revgoals","rewrite","rewrite_strat","right","ring","ring_simplify","rtauto","set","setoid_reflexivity","setoid_replace","setoid_rewrite","setoid_symmetry","setoid_transitivity","shelve","shelve_unifiable","simpl","simple","simplify_eq","solve","specialize","split","split_Rabs","split_Rmult","stepl","stepr","subst","sum","swap","symmetry","tactic","tauto","time","timeout","top","transitivity","trivial","try","tryif","unfold","unify","until","using","vm_compute","with"] +},contains:[e.QUOTE_STRING_MODE,e.COMMENT("\\(\\*","\\*\\)"),e.C_NUMBER_MODE,{ +className:"type",excludeBegin:!0,begin:"\\|\\s*",end:"\\w+"},{begin:/[-=]>/}]}) +})();hljs.registerLanguage("coq",e)})();/*! `objectivec` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={ +$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]} +;return{name:"Objective-C", +aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:{ +"variable.language":["this","super"],$pattern:n, +keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"], +literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"], +built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"], +type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"] +},illegal:"/,end:/$/,illegal:"\\n" +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class", +begin:"("+_.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:_, +contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE, +relevance:0}]}}})();hljs.registerLanguage("objectivec",e)})();/*! `latex` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=[{begin:/\^{6}[0-9a-f]{6}/},{ +begin:/\^{5}[0-9a-f]{5}/},{begin:/\^{4}[0-9a-f]{4}/},{begin:/\^{3}[0-9a-f]{3}/ +},{begin:/\^{2}[0-9a-f]{2}/},{begin:/\^{2}[\u0000-\u007f]/}],a=[{ +className:"keyword",begin:/\\/,relevance:0,contains:[{endsParent:!0, +begin:e.regex.either(...["(?:NeedsTeXFormat|RequirePackage|GetIdInfo)","Provides(?:Expl)?(?:Package|Class|File)","(?:DeclareOption|ProcessOptions)","(?:documentclass|usepackage|input|include)","makeat(?:letter|other)","ExplSyntax(?:On|Off)","(?:new|renew|provide)?command","(?:re)newenvironment","(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand","(?:New|Renew|Provide|Declare)DocumentEnvironment","(?:(?:e|g|x)?def|let)","(?:begin|end)","(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph)","caption","(?:label|(?:eq|page|name)?ref|(?:paren|foot|super)?cite)","(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)","(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)","(?:[Ss]igma|varsigma|tau|[Uu]psilon|[Pp]hi|varphi|chi|[Pp]si|[Oo]mega)","(?:frac|sum|prod|lim|infty|times|sqrt|leq|geq|left|right|middle|[bB]igg?)","(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)"].map((e=>e+"(?![a-zA-Z@:_])"))) +},{endsParent:!0, +begin:RegExp(["(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*","[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}","[qs]__?[a-zA-Z](?:_?[a-zA-Z])+","use(?:_i)?:[a-zA-Z]*","(?:else|fi|or):","(?:if|cs|exp):w","(?:hbox|vbox):n","::[a-zA-Z]_unbraced","::[a-zA-Z:]"].map((e=>e+"(?![a-zA-Z:_])")).join("|")) +},{endsParent:!0,variants:n},{endsParent:!0,relevance:0,variants:[{ +begin:/[a-zA-Z@]+/},{begin:/[^a-zA-Z@]?/}]}]},{className:"params",relevance:0, +begin:/#+\d?/},{variants:n},{className:"built_in",relevance:0,begin:/[$&^_]/},{ +className:"meta",begin:/% ?!(T[eE]X|tex|BIB|bib)/,end:"$",relevance:10 +},e.COMMENT("%","$",{relevance:0})],i={begin:/\{/,end:/\}/,relevance:0, +contains:["self",...a]},t=e.inherit(i,{relevance:0,endsParent:!0, +contains:[i,...a]}),r={begin:/\[/,end:/\]/,endsParent:!0,relevance:0, +contains:[i,...a]},s={begin:/\s+/,relevance:0},c=[t],l=[r],o=(e,n)=>({ +contains:[s],starts:{relevance:0,contains:e,starts:n}}),d=(e,n)=>({ +begin:"\\\\"+e+"(?![a-zA-Z@:_])",keywords:{$pattern:/\\[a-zA-Z]+/,keyword:"\\"+e +},relevance:0,contains:[s],starts:n}),g=(n,a)=>e.inherit({ +begin:"\\\\begin(?=[ \t]*(\\r?\\n[ \t]*)?\\{"+n+"\\})",keywords:{ +$pattern:/\\[a-zA-Z]+/,keyword:"\\begin"},relevance:0 +},o(c,a)),m=(n="string")=>e.END_SAME_AS_BEGIN({className:n,begin:/(.|\r?\n)/, +end:/(.|\r?\n)/,excludeBegin:!0,excludeEnd:!0,endsParent:!0}),b=e=>({ +className:"string",end:"(?=\\\\end\\{"+e+"\\})"}),p=(e="string")=>({relevance:0, +begin:/\{/,starts:{endsParent:!0,contains:[{className:e,end:/(?=\})/, +endsParent:!0,contains:[{begin:/\{/,end:/\}/,relevance:0,contains:["self"]}]}]} +});return{name:"LaTeX",aliases:["tex"], +contains:[...["verb","lstinline"].map((e=>d(e,{contains:[m()]}))),d("mint",o(c,{ +contains:[m()]})),d("mintinline",o(c,{contains:[p(),m()]})),d("url",{ +contains:[p("link"),p("link")]}),d("hyperref",{contains:[p("link")] +}),d("href",o(l,{contains:[p("link")] +})),...[].concat(...["","\\*"].map((e=>[g("verbatim"+e,b("verbatim"+e)),g("filecontents"+e,o(c,b("filecontents"+e))),...["","B","L"].map((n=>g(n+"Verbatim"+e,o(l,b(n+"Verbatim"+e)))))]))),g("minted",o(l,o(c,b("minted")))),...a] +}}})();hljs.registerLanguage("latex",e)})();/*! `pgsql` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var E=(()=>{"use strict";return E=>{ +const T=E.COMMENT("--","$"),N="\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$",A="BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR NAME OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ",R=A.trim().split(" ").map((E=>E.split("|")[0])).join("|"),I="ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP PERCENTILE_CONT PERCENTILE_DISC ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE NUM_NONNULLS NUM_NULLS ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT TRUNC WIDTH_BUCKET RANDOM SETSEED ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR TO_ASCII TO_HEX TRANSLATE OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 TIMEOFDAY TRANSACTION_TIMESTAMP|10 ENUM_FIRST ENUM_LAST ENUM_RANGE AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY INET_MERGE MACADDR8_SET7BIT ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA CURSOR_TO_XML CURSOR_TO_XMLSCHEMA SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA XMLATTRIBUTES TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY CURRVAL LASTVAL NEXTVAL SETVAL COALESCE NULLIF GREATEST LEAST ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY STRING_TO_ARRAY UNNEST ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE GENERATE_SERIES GENERATE_SUBSCRIPTS CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE GIN_CLEAN_PENDING_LIST SUPPRESS_REDUNDANT_UPDATES_TRIGGER LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE GROUPING CAST".split(" ").map((E=>E.split("|")[0])).join("|") +;return{name:"PostgreSQL",aliases:["postgres","postgresql"],supersetOf:"sql", +case_insensitive:!0,keywords:{ +keyword:"ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION INDEX PROCEDURE ASSERTION ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS DEFERRABLE RANGE DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED OF NOTHING NONE EXCLUDE ATTRIBUTE USAGE ROUTINES TRUE FALSE NAN INFINITY ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT OPEN SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ", +built_in:"CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 SQLSTATE SQLERRM|10 SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED INDEX_CORRUPTED " +},illegal:/:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/, +contains:[{className:"keyword",variants:[{begin:/\bTEXT\s*SEARCH\b/},{ +begin:/\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/},{ +begin:/\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/},{ +begin:/\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/},{ +begin:/\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/},{begin:/\bNULLS\s+(FIRST|LAST)\b/},{ +begin:/\bEVENT\s+TRIGGER\b/},{begin:/\b(MAPPING|OR)\s+REPLACE\b/},{ +begin:/\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/},{ +begin:/\b(SHARE|EXCLUSIVE)\s+MODE\b/},{ +begin:/\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/},{ +begin:/\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/ +},{begin:/\bPRESERVE\s+ROWS\b/},{begin:/\bDISCARD\s+PLANS\b/},{ +begin:/\bREFERENCING\s+(OLD|NEW)\b/},{begin:/\bSKIP\s+LOCKED\b/},{ +begin:/\bGROUPING\s+SETS\b/},{ +begin:/\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/},{ +begin:/\b(WITH|WITHOUT)\s+HOLD\b/},{ +begin:/\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/},{ +begin:/\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/},{ +begin:/\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/},{ +begin:/\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/},{begin:/\bIS\s+(NOT\s+)?UNKNOWN\b/ +},{begin:/\bSECURITY\s+LABEL\b/},{begin:/\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/ +},{begin:/\bWITH\s+(NO\s+)?DATA\b/},{begin:/\b(FOREIGN|SET)\s+DATA\b/},{ +begin:/\bSET\s+(CATALOG|CONSTRAINTS)\b/},{begin:/\b(WITH|FOR)\s+ORDINALITY\b/},{ +begin:/\bIS\s+(NOT\s+)?DOCUMENT\b/},{ +begin:/\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/},{ +begin:/\b(STRIP|PRESERVE)\s+WHITESPACE\b/},{ +begin:/\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/},{ +begin:/\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/},{begin:/\bAT\s+TIME\s+ZONE\b/},{ +begin:/\bGRANTED\s+BY\b/},{begin:/\bRETURN\s+(QUERY|NEXT)\b/},{ +begin:/\b(ATTACH|DETACH)\s+PARTITION\b/},{ +begin:/\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/},{ +begin:/\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/ +},{begin:/\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/}]},{ +begin:/\b(FORMAT|FAMILY|VERSION)\s*\(/},{begin:/\bINCLUDE\s*\(/, +keywords:"INCLUDE"},{begin:/\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/ +},{ +begin:/\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/ +},{begin:/\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/,relevance:10},{ +begin:/\bEXTRACT\s*\(/,end:/\bFROM\b/,returnEnd:!0,keywords:{ +type:"CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR TIMEZONE_MINUTE WEEK YEAR" +}},{begin:/\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/,keywords:{keyword:"NAME"}},{ +begin:/\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/,keywords:{ +keyword:"DOCUMENT CONTENT"}},{beginKeywords:"CACHE INCREMENT MAXVALUE MINVALUE", +end:E.C_NUMBER_RE,returnEnd:!0,keywords:"BY CACHE INCREMENT MAXVALUE MINVALUE" +},{className:"type",begin:/\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/},{className:"type", +begin:/\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/ +},{ +begin:/\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/, +keywords:{keyword:"RETURNS", +type:"LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER" +}},{begin:"\\b("+I+")\\s*\\("},{begin:"\\.("+R+")\\b"},{ +begin:"\\b("+R+")\\s+PATH\\b",keywords:{keyword:"PATH", +type:A.replace("PATH ","")}},{className:"type",begin:"\\b("+R+")\\b"},{ +className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{ +className:"string",begin:"(e|E|u&|U&)'",end:"'",contains:[{begin:"\\\\."}], +relevance:10},E.END_SAME_AS_BEGIN({begin:N,end:N,contains:[{ +subLanguage:["pgsql","perl","python","tcl","r","lua","java","php","ruby","bash","scheme","xml","json"], +endsWithParent:!0}]}),{begin:'"',end:'"',contains:[{begin:'""'}] +},E.C_NUMBER_MODE,E.C_BLOCK_COMMENT_MODE,T,{className:"meta",variants:[{ +begin:"%(ROW)?TYPE",relevance:10},{begin:"\\$\\d+"},{begin:"^#\\w",end:"$"}]},{ +className:"symbol",begin:"<<\\s*[a-zA-Z_][a-zA-Z_0-9$]*\\s*>>",relevance:10}]}} +})();hljs.registerLanguage("pgsql",E)})();/*! `llvm` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a=e.regex,n=/([-a-zA-Z$._][\w$.-]*)/,t={className:"variable",variants:[{ +begin:a.concat(/%/,n)},{begin:/%\d+/},{begin:/#\d+/}]},i={className:"title", +variants:[{begin:a.concat(/@/,n)},{begin:/@\d+/},{begin:a.concat(/!/,n)},{ +begin:a.concat(/!\d+/,n)},{begin:/!\d+/}]};return{name:"LLVM IR", +keywords:"begin end true false declare define global constant private linker_private internal available_externally linkonce linkonce_odr weak weak_odr appending dllimport dllexport common default hidden protected extern_weak external thread_local zeroinitializer undef null to tail target triple datalayout volatile nuw nsw nnan ninf nsz arcp fast exact inbounds align addrspace section alias module asm sideeffect gc dbg linker_private_weak attributes blockaddress initialexec localdynamic localexec prefix unnamed_addr ccc fastcc coldcc x86_stdcallcc x86_fastcallcc arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ptx_kernel intel_ocl_bicc msp430_intrcc spir_func spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc cc c signext zeroext inreg sret nounwind noreturn noalias nocapture byval nest readnone readonly inlinehint noinline alwaysinline optsize ssp sspreq noredzone noimplicitfloat naked builtin cold nobuiltin noduplicate nonlazybind optnone returns_twice sanitize_address sanitize_memory sanitize_thread sspstrong uwtable returned type opaque eq ne slt sgt sle sge ult ugt ule uge oeq one olt ogt ole oge ord uno ueq une x acq_rel acquire alignstack atomic catch cleanup filter inteldialect max min monotonic nand personality release seq_cst singlethread umax umin unordered xchg add fadd sub fsub mul fmul udiv sdiv fdiv urem srem frem shl lshr ashr and or xor icmp fcmp phi call trunc zext sext fptrunc fpext uitofp sitofp fptoui fptosi inttoptr ptrtoint bitcast addrspacecast select va_arg ret br switch invoke unwind unreachable indirectbr landingpad resume malloc alloca free load store getelementptr extractelement insertelement shufflevector getresult extractvalue insertvalue atomicrmw cmpxchg fence argmemonly double", +contains:[{className:"type",begin:/\bi\d+(?=\s|\b)/},e.COMMENT(/;\s*$/,null,{ +relevance:0}),e.COMMENT(/;/,/$/),{className:"string",begin:/"/,end:/"/, +contains:[{className:"char.escape",match:/\\\d\d/}]},i,{className:"punctuation", +relevance:0,begin:/,/},{className:"operator",relevance:0,begin:/=/},t,{ +className:"symbol",variants:[{begin:/^\s*[a-z]+:/}],relevance:0},{ +className:"number",variants:[{begin:/[su]?0[xX][KMLHR]?[a-fA-F0-9]+/},{ +begin:/[-+]?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/}],relevance:0}]}}})() +;hljs.registerLanguage("llvm",e)})();/*! `lua` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t="\\[=*\\[",a="\\]=*\\]",n={ +begin:t,end:a,contains:["self"] +},o=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",a,{contains:[n], +relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE, +literal:"true false nil", +keyword:"and break do else elseif end for goto if in local not or repeat return then until while", +built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" +},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)", +contains:[e.inherit(e.TITLE_MODE,{ +begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params", +begin:"\\(",endsWithParent:!0,contains:o}].concat(o) +},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string", +begin:t,end:a,contains:[n],relevance:5}])}}})();hljs.registerLanguage("lua",e) +})();/*! `json` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=["true","false","null"],n={ +scope:"literal",beginKeywords:a.join(" ")};return{name:"JSON",keywords:{ +literal:a},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/, +relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0 +},e.QUOTE_STRING_MODE,n,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE], +illegal:"\\S"}}})();hljs.registerLanguage("json",e)})();/*! `diff` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex;return{name:"Diff", +aliases:["patch"],contains:[{className:"meta",relevance:10, +match:a.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/) +},{className:"comment",variants:[{ +begin:a.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/), +end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{ +className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/, +end:/$/}]}}})();hljs.registerLanguage("diff",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/1c.min.js b/src/app/resources/assets/highlight/languages/1c.min.js new file mode 100644 index 0000000..56eca69 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/1c.min.js @@ -0,0 +1,24 @@ +/*! `1c` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var s=(()=>{"use strict";return s=>{ +const x="[A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_][A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_0-9]+",n="\u0434\u0430\u043b\u0435\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u0435\u0441\u043b\u0438 \u0438 \u0438\u0437 \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0438\u043d\u0430\u0447\u0435\u0435\u0441\u043b\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u0435\u0446\u0435\u0441\u043b\u0438 \u043a\u043e\u043d\u0435\u0446\u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043a\u043e\u043d\u0435\u0446\u0446\u0438\u043a\u043b\u0430 \u043d\u0435 \u043d\u043e\u0432\u044b\u0439 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043f\u0435\u0440\u0435\u043c \u043f\u043e \u043f\u043e\u043a\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0442\u043e\u0433\u0434\u0430 \u0446\u0438\u043a\u043b \u044d\u043a\u0441\u043f\u043e\u0440\u0442 ",e="null \u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u043e\u0436\u044c \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e",o=s.inherit(s.NUMBER_MODE),t={ +className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},a={ +begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number", +begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},m=s.inherit(s.C_LINE_COMMENT_MODE) +;return{name:"1C:Enterprise",case_insensitive:!0,keywords:{$pattern:x,keyword:n, +built_in:"\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0440\u043e\u043a \u0441\u0438\u043c\u0432\u043e\u043b\u0442\u0430\u0431\u0443\u043b\u044f\u0446\u0438\u0438 ansitooem oemtoansi \u0432\u0432\u0435\u0441\u0442\u0438\u0432\u0438\u0434\u0441\u0443\u0431\u043a\u043e\u043d\u0442\u043e \u0432\u0432\u0435\u0441\u0442\u0438\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0432\u0435\u0441\u0442\u0438\u043f\u043b\u0430\u043d\u0441\u0447\u0435\u0442\u043e\u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439\u043f\u043b\u0430\u043d\u0441\u0447\u0435\u0442\u043e\u0432 \u0434\u0430\u0442\u0430\u0433\u043e\u0434 \u0434\u0430\u0442\u0430\u043c\u0435\u0441\u044f\u0446 \u0434\u0430\u0442\u0430\u0447\u0438\u0441\u043b\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0432\u0441\u0442\u0440\u043e\u043a\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438\u0431 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043a\u043e\u0434\u0441\u0438\u043c\u0432 \u043a\u043e\u043d\u0433\u043e\u0434\u0430 \u043a\u043e\u043d\u0435\u0446\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u0431\u0438 \u043a\u043e\u043d\u0435\u0446\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0433\u043e\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u0431\u0438 \u043a\u043e\u043d\u0435\u0446\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u043a\u043e\u043d\u043a\u0432\u0430\u0440\u0442\u0430\u043b\u0430 \u043a\u043e\u043d\u043c\u0435\u0441\u044f\u0446\u0430 \u043a\u043e\u043d\u043d\u0435\u0434\u0435\u043b\u0438 \u043b\u043e\u0433 \u043b\u043e\u043310 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u0441\u0443\u0431\u043a\u043e\u043d\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043d\u0430\u0431\u043e\u0440\u0430\u043f\u0440\u0430\u0432 \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c\u0432\u0438\u0434 \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c\u0441\u0447\u0435\u0442 \u043d\u0430\u0439\u0442\u0438\u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430\u0447\u0430\u043b\u043e\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u0431\u0438 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u043d\u0430\u0447\u0433\u043e\u0434\u0430 \u043d\u0430\u0447\u043a\u0432\u0430\u0440\u0442\u0430\u043b\u0430 \u043d\u0430\u0447\u043c\u0435\u0441\u044f\u0446\u0430 \u043d\u0430\u0447\u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u043e\u043c\u0435\u0440\u0434\u043d\u044f\u0433\u043e\u0434\u0430 \u043d\u043e\u043c\u0435\u0440\u0434\u043d\u044f\u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u043e\u043c\u0435\u0440\u043d\u0435\u0434\u0435\u043b\u0438\u0433\u043e\u0434\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439\u0436\u0443\u0440\u043d\u0430\u043b\u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439\u043f\u043b\u0430\u043d\u0441\u0447\u0435\u0442\u043e\u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439\u044f\u0437\u044b\u043a \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c\u043e\u043a\u043d\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043f\u0435\u0440\u0438\u043e\u0434\u0441\u0442\u0440 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0434\u0430\u0442\u0443\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043e\u0442\u0431\u043e\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043f\u043e\u0437\u0438\u0446\u0438\u044e\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043f\u0443\u0441\u0442\u043e\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0442\u0430 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430\u0432\u0442\u043e\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u043f\u0438\u0441\u044c \u043f\u0443\u0441\u0442\u043e\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u043f\u043e\u0437\u0438\u0446\u0438\u044e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b\u043d\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b\u043f\u043e \u0441\u0438\u043c\u0432 \u0441\u043e\u0437\u0434\u0430\u0442\u044c\u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u0442\u0430\u0442\u0443\u0441\u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0441\u0442\u0440\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u0441\u0442\u0440\u043e\u043a \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u043f\u043e\u0437\u0438\u0446\u0438\u044e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u0447\u0435\u0442\u043f\u043e\u043a\u043e\u0434\u0443 \u0442\u0435\u043a\u0443\u0449\u0435\u0435\u0432\u0440\u0435\u043c\u044f \u0442\u0438\u043f\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0441\u0442\u0440 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0442\u0430\u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0442\u0430\u043f\u043e \u0444\u0438\u043a\u0441\u0448\u0430\u0431\u043b\u043e\u043d \u0448\u0430\u0431\u043b\u043e\u043d acos asin atan base64\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 base64\u0441\u0442\u0440\u043e\u043a\u0430 cos exp log log10 pow sin sqrt tan xml\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 xml\u0441\u0442\u0440\u043e\u043a\u0430 xml\u0442\u0438\u043f xml\u0442\u0438\u043f\u0437\u043d\u0447 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435\u043e\u043a\u043d\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u043b\u0435\u0432\u043e \u0432\u0432\u0435\u0441\u0442\u0438\u0434\u0430\u0442\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0447\u0438\u0441\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u0447\u0442\u0435\u043d\u0438\u044fxml \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u0433 \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0436\u0443\u0440\u043d\u0430\u043b\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443\u043f\u0440\u0430\u0432\u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0433\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0435\u0444\u043e\u0440\u043c\u044b\u0432\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u0442\u0430 \u0434\u0435\u043d\u044c \u0434\u0435\u043d\u044c\u0433\u043e\u0434\u0430 \u0434\u0435\u043d\u044c\u043d\u0435\u0434\u0435\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c\u043c\u0435\u0441\u044f\u0446 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0434\u0430\u043d\u043d\u044b\u0435\u0434\u043b\u044f\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0440\u0430\u0431\u043e\u0442\u0443\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c\u0440\u0430\u0431\u043e\u0442\u0443\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0432\u043d\u0435\u0448\u043d\u044e\u044e\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u0437\u0430\u043a\u0440\u044b\u0442\u044c\u0441\u043f\u0440\u0430\u0432\u043a\u0443 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044cjson \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044cxml \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c\u0434\u0430\u0442\u0443json \u0437\u0430\u043f\u0438\u0441\u044c\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0432\u0434\u0430\u043d\u043d\u044b\u0435\u0444\u043e\u0440\u043c\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0432\u0441\u0442\u0440\u043e\u043a\u0443\u0432\u043d\u0443\u0442\u0440 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0432\u0444\u0430\u0439\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043e\u043a\u0438\u0432\u043d\u0443\u0442\u0440 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0438\u0437\u0444\u0430\u0439\u043b\u0430 \u0438\u0437xml\u0442\u0438\u043f\u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u043c\u043e\u0434\u0435\u043b\u0438xdto \u0438\u043c\u044f\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 \u0438\u043c\u044f\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\u043e\u0431\u043e\u0448\u0438\u0431\u043a\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445\u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u043e\u0434\u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043a\u043e\u0434\u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043d\u0435\u0446\u0433\u043e\u0434\u0430 \u043a\u043e\u043d\u0435\u0446\u0434\u043d\u044f \u043a\u043e\u043d\u0435\u0446\u043a\u0432\u0430\u0440\u0442\u0430\u043b\u0430 \u043a\u043e\u043d\u0435\u0446\u043c\u0435\u0441\u044f\u0446\u0430 \u043a\u043e\u043d\u0435\u0446\u043c\u0438\u043d\u0443\u0442\u044b \u043a\u043e\u043d\u0435\u0446\u043d\u0435\u0434\u0435\u043b\u0438 \u043a\u043e\u043d\u0435\u0446\u0447\u0430\u0441\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0431\u0430\u0437\u044b\u0434\u0430\u043d\u043d\u044b\u0445\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0430\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0430 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0434\u0430\u043d\u043d\u044b\u0435\u0444\u043e\u0440\u043c\u044b \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0444\u0430\u0439\u043b \u043a\u0440\u0430\u0442\u043a\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043e\u0448\u0438\u0431\u043a\u0438 \u043b\u0435\u0432 \u043c\u0430\u043a\u0441 \u043c\u0435\u0441\u0442\u043d\u043e\u0435\u0432\u0440\u0435\u043c\u044f \u043c\u0435\u0441\u044f\u0446 \u043c\u0438\u043d \u043c\u0438\u043d\u0443\u0442\u0430 \u043c\u043e\u043d\u043e\u043f\u043e\u043b\u044c\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c \u043d\u0430\u0439\u0442\u0438 \u043d\u0430\u0439\u0442\u0438\u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435\u0441\u0438\u043c\u0432\u043e\u043b\u044bxml \u043d\u0430\u0439\u0442\u0438\u043e\u043a\u043d\u043e\u043f\u043e\u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0430\u0439\u0442\u0438\u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0435\u043d\u0430\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0439\u0442\u0438\u043f\u043e\u0441\u0441\u044b\u043b\u043a\u0430\u043c \u043d\u0430\u0439\u0442\u0438\u0444\u0430\u0439\u043b\u044b \u043d\u0430\u0447\u0430\u043b\u043e\u0433\u043e\u0434\u0430 \u043d\u0430\u0447\u0430\u043b\u043e\u0434\u043d\u044f \u043d\u0430\u0447\u0430\u043b\u043e\u043a\u0432\u0430\u0440\u0442\u0430\u043b\u0430 \u043d\u0430\u0447\u0430\u043b\u043e\u043c\u0435\u0441\u044f\u0446\u0430 \u043d\u0430\u0447\u0430\u043b\u043e\u043c\u0438\u043d\u0443\u0442\u044b \u043d\u0430\u0447\u0430\u043b\u043e\u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0447\u0430\u043b\u043e\u0447\u0430\u0441\u0430 \u043d\u0430\u0447\u0430\u0442\u044c\u0437\u0430\u043f\u0440\u043e\u0441\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430\u0447\u0430\u0442\u044c\u0437\u0430\u043f\u0443\u0441\u043a\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0447\u0430\u0442\u044c\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u0432\u043d\u0435\u0448\u043d\u0435\u0439\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u0438\u0441\u043a\u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445\u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u0447\u0430\u0442\u044c\u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430\u0447\u0430\u0442\u044c\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445\u0438\u0437\u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u0447\u0430\u0442\u044c\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043d\u0430\u0447\u0430\u0442\u044c\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u043d\u0430\u0447\u0430\u0442\u044c\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430\u0447\u0430\u0442\u044c\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443\u0432\u043d\u0435\u0448\u043d\u0435\u0439\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043d\u0430\u0447\u0430\u0442\u044c\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043d\u0430\u0447\u0430\u0442\u044c\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0435\u0434\u0435\u043b\u044f\u0433\u043e\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u043e\u043c\u0435\u0440\u0441\u0435\u0430\u043d\u0441\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043d\u043e\u043c\u0435\u0440\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043d\u0440\u0435\u0433 \u043d\u0441\u0442\u0440 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044e\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0444\u0430\u0439\u043b\u044b \u043e\u043a\u0440 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043e\u0448\u0438\u0431\u043a\u0438 \u043e\u043f\u043e\u0432\u0435\u0441\u0442\u0438\u0442\u044c \u043e\u043f\u043e\u0432\u0435\u0441\u0442\u0438\u0442\u044c\u043e\u0431\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044c\u0438\u043d\u0434\u0435\u043a\u0441\u0441\u043f\u0440\u0430\u0432\u043a\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\u0441\u043f\u0440\u0430\u0432\u043a\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c\u0441\u043f\u0440\u0430\u0432\u043a\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u044c\u0444\u043e\u0440\u043c\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u044c\u0444\u043e\u0440\u043c\u0443\u043c\u043e\u0434\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c\u0436\u0443\u0440\u043d\u0430\u043b\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u0435\u0440\u0435\u0439\u0442\u0438\u043f\u043e\u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0441\u0441\u044b\u043b\u043a\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c\u0444\u0430\u0439\u043b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0432\u043d\u0435\u0448\u043d\u044e\u044e\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0432\u0432\u043e\u0434\u0434\u0430\u0442\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0432\u0432\u043e\u0434\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0432\u0432\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0432\u0432\u043e\u0434\u0447\u0438\u0441\u043b\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e\u043e\u0431\u043e\u0448\u0438\u0431\u043a\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u043d\u0430\u043a\u0430\u0440\u0442\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0435\u0438\u043c\u044f\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044ccom\u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044cxml\u0442\u0438\u043f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0430\u0434\u0440\u0435\u0441\u043f\u043e\u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443\u0441\u0435\u0430\u043d\u0441\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f\u0441\u043f\u044f\u0449\u0435\u0433\u043e\u0441\u0435\u0430\u043d\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u0437\u0430\u0441\u044b\u043f\u0430\u043d\u0438\u044f\u043f\u0430\u0441\u0441\u0438\u0432\u043d\u043e\u0433\u043e\u0441\u0435\u0430\u043d\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0434\u0430\u043d\u043d\u044b\u0435\u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435\u043a\u043e\u0434\u044b\u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435\u0447\u0430\u0441\u043e\u0432\u044b\u0435\u043f\u043e\u044f\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043e\u0442\u0431\u043e\u0440\u0430\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u0437\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u043c\u044f\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e\u0444\u0430\u0439\u043b\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u043c\u044f\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e\u044d\u043a\u0440\u0430\u043d\u043e\u0432\u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043a\u0440\u0430\u0442\u043a\u0438\u0439\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043c\u0430\u043a\u0435\u0442\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043c\u0430\u0441\u043a\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043b\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043c\u0430\u0441\u043a\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043b\u044b\u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043c\u0430\u0441\u043a\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043b\u044b\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043f\u043e\u0430\u0434\u0440\u0435\u0441\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e\u0434\u043b\u0438\u043d\u0443\u043f\u0430\u0440\u043e\u043b\u0435\u0439\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e\u0441\u0441\u044b\u043b\u043a\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e\u0441\u0441\u044b\u043b\u043a\u0443\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044b\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u0431\u0449\u0438\u0439\u043c\u0430\u043a\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u0431\u0449\u0443\u044e\u0444\u043e\u0440\u043c\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u043a\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e\u043e\u0442\u043c\u0435\u0442\u043a\u0443\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e\u0440\u0435\u0436\u0438\u043c\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445\u043e\u043f\u0446\u0438\u0439\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043f\u043e\u043b\u043d\u043e\u0435\u0438\u043c\u044f\u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445\u0441\u0441\u044b\u043b\u043e\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443\u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438\u043f\u0430\u0440\u043e\u043b\u0435\u0439\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u043f\u0443\u0442\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u043f\u0443\u0442\u0438\u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u043f\u0443\u0442\u0438\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u0435\u0430\u043d\u0441\u044b\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0438\u0444\u043e\u0440\u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u043e\u0441\u0442\u0430\u0432\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430odata \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f\u0431\u0430\u0437\u044b\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0441\u0435\u0430\u043d\u0441\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0444\u0430\u0439\u043b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0444\u0430\u0439\u043b\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0444\u043e\u0440\u043c\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0443\u044e\u043e\u043f\u0446\u0438\u044e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0443\u044e\u043e\u043f\u0446\u0438\u044e\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0447\u0430\u0441\u043e\u0432\u043e\u0439\u043f\u043e\u044f\u0441\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438\u043e\u0441 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c\u0432\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c\u0444\u0430\u0439\u043b \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c\u0444\u0430\u0439\u043b\u044b \u043f\u0440\u0430\u0432 \u043f\u0440\u0430\u0432\u043e\u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043a\u043e\u0434\u0430\u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0430\u0432\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0447\u0430\u0441\u043e\u0432\u043e\u0433\u043e\u043f\u043e\u044f\u0441\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u0442\u044c\u0440\u0430\u0431\u043e\u0442\u0443\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c\u0432\u044b\u0437\u043e\u0432 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044cjson \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044cxml \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c\u0434\u0430\u0442\u0443json \u043f\u0443\u0441\u0442\u0430\u044f\u0441\u0442\u0440\u043e\u043a\u0430 \u0440\u0430\u0431\u043e\u0447\u0438\u0439\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0434\u0430\u043d\u043d\u044b\u0435\u0434\u043b\u044f\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c\u0444\u0430\u0439\u043b \u0440\u0430\u0437\u043e\u0440\u0432\u0430\u0442\u044c\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u0441\u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u0442\u0440\u043e\u043a\u0443 \u0440\u043e\u043b\u044c\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u0430 \u0441\u0438\u0433\u043d\u0430\u043b \u0441\u0438\u043c\u0432\u043e\u043b \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0436\u0443\u0440\u043d\u0430\u043b\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043b\u0435\u0442\u043d\u0435\u0433\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0431\u0443\u0444\u0435\u0440\u044b\u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0437\u0434\u0430\u0442\u044c\u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441\u043e\u0437\u0434\u0430\u0442\u044c\u0444\u0430\u0431\u0440\u0438\u043a\u0443xdto \u0441\u043e\u043a\u0440\u043b \u0441\u043e\u043a\u0440\u043b\u043f \u0441\u043e\u043a\u0440\u043f \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u0440\u0435\u0434 \u0441\u0442\u0440\u0434\u043b\u0438\u043d\u0430 \u0441\u0442\u0440\u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f\u043d\u0430 \u0441\u0442\u0440\u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043d\u0430\u0439\u0442\u0438 \u0441\u0442\u0440\u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f\u0441 \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u0442\u0440\u043e\u043a\u0430\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u0441\u0442\u0440\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0442\u0440\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u0447\u0438\u0441\u043b\u043e\u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u0442\u0440\u0447\u0438\u0441\u043b\u043e\u0441\u0442\u0440\u043e\u043a \u0441\u0442\u0440\u0448\u0430\u0431\u043b\u043e\u043d \u0442\u0435\u043a\u0443\u0449\u0430\u044f\u0434\u0430\u0442\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u044f\u0434\u0430\u0442\u0430\u0441\u0435\u0430\u043d\u0441\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u044f\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0430\u044f\u0434\u0430\u0442\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u044f\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0430\u044f\u0434\u0430\u0442\u0430\u0432\u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e\u0448\u0440\u0438\u0444\u0442\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u043a\u043e\u0434\u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0440\u0435\u0436\u0438\u043c\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u044f\u0437\u044b\u043a \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u044f\u0437\u044b\u043a\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0442\u0438\u043f \u0442\u0438\u043f\u0437\u043d\u0447 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u0430\u043a\u0442\u0438\u0432\u043d\u0430 \u0442\u0440\u0435\u0433 \u0443\u0434\u0430\u043b\u0438\u0442\u044c\u0434\u0430\u043d\u043d\u044b\u0435\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u0443\u0434\u0430\u043b\u0438\u0442\u044c\u0438\u0437\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0443\u0434\u0430\u043b\u0438\u0442\u044c\u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0443\u0434\u0430\u043b\u0438\u0442\u044c\u0444\u0430\u0439\u043b\u044b \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0435\u0432\u0440\u0435\u043c\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443\u0441\u0435\u0430\u043d\u0441\u043e\u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0432\u043d\u0435\u0448\u043d\u044e\u044e\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f\u0441\u043f\u044f\u0449\u0435\u0433\u043e\u0441\u0435\u0430\u043d\u0441\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u0437\u0430\u0441\u044b\u043f\u0430\u043d\u0438\u044f\u043f\u0430\u0441\u0441\u0438\u0432\u043d\u043e\u0433\u043e\u0441\u0435\u0430\u043d\u0441\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0432\u0440\u0435\u043c\u044f\u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043a\u0440\u0430\u0442\u043a\u0438\u0439\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e\u0434\u043b\u0438\u043d\u0443\u043f\u0430\u0440\u043e\u043b\u0435\u0439\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043c\u043e\u043d\u043e\u043f\u043e\u043b\u044c\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e\u0440\u0435\u0436\u0438\u043c\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445\u043e\u043f\u0446\u0438\u0439\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443\u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438\u043f\u0430\u0440\u043e\u043b\u0435\u0439\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0440\u0430\u0431\u043e\u0442\u044b\u0441\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u0441\u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c\u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0438\u0444\u043e\u0440\u043c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u043e\u0441\u0442\u0430\u0432\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430odata \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0447\u0430\u0441\u043e\u0432\u043e\u0439\u043f\u043e\u044f\u0441\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0447\u0430\u0441\u043e\u0432\u043e\u0439\u043f\u043e\u044f\u0441\u0441\u0435\u0430\u043d\u0441\u0430 \u0444\u043e\u0440\u043c\u0430\u0442 \u0446\u0435\u043b \u0447\u0430\u0441 \u0447\u0430\u0441\u043e\u0432\u043e\u0439\u043f\u043e\u044f\u0441 \u0447\u0430\u0441\u043e\u0432\u043e\u0439\u043f\u043e\u044f\u0441\u0441\u0435\u0430\u043d\u0441\u0430 \u0447\u0438\u0441\u043b\u043e \u0447\u0438\u0441\u043b\u043e\u043f\u0440\u043e\u043f\u0438\u0441\u044c\u044e \u044d\u0442\u043e\u0430\u0434\u0440\u0435\u0441\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 ws\u0441\u0441\u044b\u043b\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0430\u043a\u0435\u0442\u043e\u0432\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0441\u0442\u0438\u043b\u0435\u0439 \u0431\u0438\u0437\u043d\u0435\u0441\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0432\u043d\u0435\u0448\u043d\u0438\u0435\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0435\u043e\u0442\u0447\u0435\u0442\u044b \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435\u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0439\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0433\u043b\u0430\u0432\u043d\u044b\u0439\u0441\u0442\u0438\u043b\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0436\u0443\u0440\u043d\u0430\u043b\u044b\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\u043e\u0431\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0440\u0430\u0431\u043e\u0447\u0435\u0439\u0434\u0430\u0442\u044b \u0438\u0441\u0442\u043e\u0440\u0438\u044f\u0440\u0430\u0431\u043e\u0442\u044b\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0438\u043e\u0442\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0440\u0435\u043a\u043b\u0430\u043c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043e\u0442\u0447\u0435\u0442\u044b \u043f\u0430\u043d\u0435\u043b\u044c\u0437\u0430\u0434\u0430\u0447\u043e\u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0441\u0435\u0430\u043d\u0441\u0430 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u044b\u0432\u0438\u0434\u043e\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043f\u043b\u0430\u043d\u044b\u0432\u0438\u0434\u043e\u0432\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u043f\u043b\u0430\u043d\u044b\u043e\u0431\u043c\u0435\u043d\u0430 \u043f\u043b\u0430\u043d\u044b\u0441\u0447\u0435\u0442\u043e\u0432 \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439\u043f\u043e\u0438\u0441\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439\u0431\u0430\u0437\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445\u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0440\u0430\u0431\u043e\u0447\u0430\u044f\u0434\u0430\u0442\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b\u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0438\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b\u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b\u0441\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u0440\u0435\u0433\u043b\u0430\u043c\u0435\u043d\u0442\u043d\u044b\u0435\u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440xdto \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u0433\u0435\u043e\u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0440\u0435\u043a\u043b\u0430\u043c\u044b \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043f\u043e\u0447\u0442\u044b \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0438 \u0444\u0430\u0431\u0440\u0438\u043a\u0430xdto \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435\u043f\u043e\u0442\u043e\u043a\u0438 \u0444\u043e\u043d\u043e\u0432\u044b\u0435\u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432\u043e\u0442\u0447\u0435\u0442\u043e\u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u0434\u0430\u043d\u043d\u044b\u0445\u0444\u043e\u0440\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043e\u0431\u0449\u0438\u0445\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445\u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043e\u0442\u0447\u0435\u0442\u043e\u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a ", +class:"web\u0446\u0432\u0435\u0442\u0430 windows\u0446\u0432\u0435\u0442\u0430 windows\u0448\u0440\u0438\u0444\u0442\u044b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0440\u0430\u043c\u043a\u0438\u0441\u0442\u0438\u043b\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0446\u0432\u0435\u0442\u0430\u0441\u0442\u0438\u043b\u044f \u0448\u0440\u0438\u0444\u0442\u044b\u0441\u0442\u0438\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u0434\u0430\u043d\u043d\u044b\u0445\u0444\u043e\u0440\u043c\u044b\u0432\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0430\u0432\u0442\u043e\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f\u0432\u0444\u043e\u0440\u043c\u0435 \u0430\u0432\u0442\u043e\u0440\u0430\u0437\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\u0441\u0435\u0440\u0438\u0439 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u0438\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0432\u044b\u0441\u043e\u0442\u043e\u0439\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0430\u044f\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430\u0444\u043e\u0440\u043c\u044b \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432\u0438\u0434\u0433\u0440\u0443\u043f\u043f\u044b\u0444\u043e\u0440\u043c\u044b \u0432\u0438\u0434\u0434\u0435\u043a\u043e\u0440\u0430\u0446\u0438\u0438\u0444\u043e\u0440\u043c\u044b \u0432\u0438\u0434\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0444\u043e\u0440\u043c\u044b \u0432\u0438\u0434\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0438\u0434\u043a\u043d\u043e\u043f\u043a\u0438\u0444\u043e\u0440\u043c\u044b \u0432\u0438\u0434\u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f \u0432\u0438\u0434\u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439\u043a\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435 \u0432\u0438\u0434\u043f\u043e\u043b\u044f\u0444\u043e\u0440\u043c\u044b \u0432\u0438\u0434\u0444\u043b\u0430\u0436\u043a\u0430 \u0432\u043b\u0438\u044f\u043d\u0438\u0435\u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043d\u0430\u043f\u0443\u0437\u044b\u0440\u0435\u043a\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430\u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430\u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u0445\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u0444\u043e\u0440\u043c\u044b \u0433\u0440\u0443\u043f\u043f\u044b\u0438\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439\u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043c\u0435\u0436\u0434\u0443\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438\u0444\u043e\u0440\u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0432\u044b\u0432\u043e\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043f\u043e\u043b\u043e\u0441\u044b\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0442\u043e\u0447\u043a\u0438\u0431\u0438\u0440\u0436\u0435\u0432\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0441\u0442\u043e\u0440\u0438\u044f\u0432\u044b\u0431\u043e\u0440\u0430\u043f\u0440\u0438\u0432\u0432\u043e\u0434\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u043e\u0441\u0438\u0442\u043e\u0447\u0435\u043a\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043f\u0443\u0437\u044b\u0440\u044c\u043a\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0433\u0440\u0443\u043f\u043f\u044b\u043a\u043e\u043c\u0430\u043d\u0434 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0441\u0435\u0440\u0438\u0439 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0434\u0435\u0440\u0435\u0432\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0441\u043f\u0438\u0441\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u0442\u0435\u043a\u0441\u0442\u0430\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0434\u0435\u043d\u0434\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u043c\u0435\u0442\u043e\u043a\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u043c\u0435\u0442\u043e\u043a\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0444\u043e\u0440\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0432\u043b\u0435\u0433\u0435\u043d\u0434\u0435\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0433\u0440\u0443\u043f\u043f\u044b\u043a\u043d\u043e\u043f\u043e\u043a \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0448\u043a\u0430\u043b\u044b\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\u0433\u0430\u043d\u0442\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043a\u043d\u043e\u043f\u043a\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043a\u043d\u043e\u043f\u043a\u0438\u0432\u044b\u0431\u043e\u0440\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0439\u0444\u043e\u0440\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0439\u0433\u0440\u0443\u043f\u043f\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u043f\u0443\u0437\u044b\u0440\u044c\u043a\u043e\u0432\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043f\u0430\u043d\u0435\u043b\u0438\u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f\u043f\u0440\u0438\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438\u043f\u043e\u043b\u043e\u0441\u044b\u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0444\u043e\u0440\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u0435\u043a\u0441\u0442\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\u0433\u0430\u043d\u0442\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043e\u0431\u044b\u0447\u043d\u043e\u0439\u0433\u0440\u0443\u043f\u043f\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0444\u0438\u0433\u0443\u0440\u044b\u043a\u043d\u043e\u043f\u043a\u0438 \u043f\u0430\u043b\u0438\u0442\u0440\u0430\u0446\u0432\u0435\u0442\u043e\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0439\u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0434\u0435\u043d\u0434\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\u0433\u0430\u043d\u0442\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0438\u0441\u043a\u0432\u0442\u0430\u0431\u043b\u0438\u0446\u0435\u043f\u0440\u0438\u0432\u0432\u043e\u0434\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0444\u043e\u0440\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438\u043a\u043d\u043e\u043f\u043a\u0438\u0444\u043e\u0440\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439\u043f\u0430\u043d\u0435\u043b\u0438\u0444\u043e\u0440\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439\u043f\u0430\u043d\u0435\u043b\u0438\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0444\u043e\u0440\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043e\u043f\u043e\u0440\u043d\u043e\u0439\u0442\u043e\u0447\u043a\u0438\u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439\u043a\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439\u0448\u043a\u0430\u043b\u044b\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0441\u0442\u0440\u043e\u043a\u0438\u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u0435\u043a\u0441\u0442\u0430\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439\u043b\u0438\u043d\u0438\u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043f\u043e\u0438\u0441\u043a\u043e\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0448\u043a\u0430\u043b\u044b\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0442\u043e\u0447\u0435\u043a\u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439\u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0440\u044f\u0434\u043e\u043a\u0441\u0435\u0440\u0438\u0439\u0432\u043b\u0435\u0433\u0435\u043d\u0434\u0435\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0437\u043c\u0435\u0440\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0448\u043a\u0430\u043b\u044b\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0441\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u0435\u043f\u043e\u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\u0433\u0430\u043d\u0442\u0430 \u0440\u0435\u0436\u0438\u043c\u0430\u0432\u0442\u043e\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u0432\u0432\u043e\u0434\u0430\u0441\u0442\u0440\u043e\u043a\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0435\u0436\u0438\u043c\u0432\u044b\u0431\u043e\u0440\u0430\u043d\u0435\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0434\u0430\u0442\u044b \u0440\u0435\u0436\u0438\u043c\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0441\u0442\u0440\u043e\u043a\u0438\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0435\u0436\u0438\u043c\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0435\u0436\u0438\u043c\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0440\u0435\u0436\u0438\u043c\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0434\u0438\u0430\u043b\u043e\u0433\u0430\u043f\u0435\u0447\u0430\u0442\u0438 \u0440\u0435\u0436\u0438\u043c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0440\u0435\u0436\u0438\u043c\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0440\u0435\u0436\u0438\u043c\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e\u043e\u043a\u043d\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f\u043e\u043a\u043d\u0430\u0444\u043e\u0440\u043c\u044b \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u0441\u0435\u0440\u0438\u0438 \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438\u0441\u0435\u0442\u043a\u0438\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0440\u0435\u0436\u0438\u043c\u043f\u043e\u043b\u0443\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0435\u0436\u0438\u043c\u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0435\u0436\u0438\u043c\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u043d\u0430\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0440\u0435\u0436\u0438\u043c\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0440\u0435\u0436\u0438\u043c\u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u044f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0435\u0436\u0438\u043c\u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u044f\u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0440\u0435\u0436\u0438\u043c\u0441\u043f\u0438\u0441\u043a\u0430\u0437\u0430\u0434\u0430\u0447 \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0435\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u0434\u0430\u043d\u043d\u044b\u0445\u0444\u043e\u0440\u043c\u044b\u0432\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u0442\u0435\u043a\u0441\u0442\u0430\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0448\u043a\u0430\u043b\u044b\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f\u0433\u0440\u0443\u043f\u043f\u0430\u043a\u043e\u043c\u0430\u043d\u0434 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u0442\u0438\u043b\u044c\u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u0442\u0438\u043f\u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0430\u0446\u0438\u0438\u043b\u0438\u043d\u0438\u0438\u0442\u0440\u0435\u043d\u0434\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u0435\u0434\u0438\u043d\u0438\u0446\u044b\u0448\u043a\u0430\u043b\u044b\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0442\u0438\u043f\u0438\u043c\u043f\u043e\u0440\u0442\u0430\u0441\u0435\u0440\u0438\u0439\u0441\u043b\u043e\u044f\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043b\u0438\u043d\u0438\u0438\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043b\u0438\u043d\u0438\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u043c\u0430\u0440\u043a\u0435\u0440\u0430\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043c\u0430\u0440\u043a\u0435\u0440\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u043e\u0431\u043b\u0430\u0441\u0442\u0438\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0441\u0435\u0440\u0438\u0438\u0441\u043b\u043e\u044f\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0442\u043e\u0447\u0435\u0447\u043d\u043e\u0433\u043e\u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0448\u043a\u0430\u043b\u044b\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u0435\u0433\u0435\u043d\u0434\u044b\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043f\u043e\u0438\u0441\u043a\u0430\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0438\u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u0442\u0438\u043f\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u043e\u0432\u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u0442\u0438\u043f\u0440\u0430\u043c\u043a\u0438\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u0441\u0432\u044f\u0437\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\u0433\u0430\u043d\u0442\u0430 \u0442\u0438\u043f\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u043f\u043e\u0441\u0435\u0440\u0438\u044f\u043c\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0442\u043e\u0447\u0435\u043a\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0442\u0438\u043f\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439\u043b\u0438\u043d\u0438\u0438 \u0442\u0438\u043f\u0441\u0442\u043e\u0440\u043e\u043d\u044b\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0442\u0438\u043f\u0444\u043e\u0440\u043c\u044b\u043e\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043f\u0448\u043a\u0430\u043b\u044b\u0440\u0430\u0434\u0430\u0440\u043d\u043e\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0444\u0430\u043a\u0442\u043e\u0440\u043b\u0438\u043d\u0438\u0438\u0442\u0440\u0435\u043d\u0434\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0444\u0438\u0433\u0443\u0440\u0430\u043a\u043d\u043e\u043f\u043a\u0438 \u0444\u0438\u0433\u0443\u0440\u044b\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u0441\u0445\u0435\u043c\u044b \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f\u0432\u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0434\u043d\u044f\u0448\u043a\u0430\u043b\u044b\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0448\u0438\u0440\u0438\u043d\u0430\u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u0445\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u0444\u043e\u0440\u043c\u044b \u0432\u0438\u0434\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f\u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0438\u0438 \u0432\u0438\u0434\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f\u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0432\u0438\u0434\u0441\u0447\u0435\u0442\u0430 \u0432\u0438\u0434\u0442\u043e\u0447\u043a\u0438\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430\u0431\u0438\u0437\u043d\u0435\u0441\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0433\u0440\u0443\u043f\u043f\u0438\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0440\u0435\u0436\u0438\u043c\u0430\u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0441\u0440\u0435\u0437\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u0430\u0432\u0442\u043e\u0432\u0440\u0435\u043c\u044f \u0440\u0435\u0436\u0438\u043c\u0437\u0430\u043f\u0438\u0441\u0438\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0440\u0435\u0436\u0438\u043c\u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0430\u0432\u0442\u043e\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439\u043d\u043e\u043c\u0435\u0440\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0438\u0442\u043e\u0433\u043e\u0432\u043a\u043e\u043b\u043e\u043d\u043e\u043a\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0438\u0442\u043e\u0433\u043e\u0432\u0441\u0442\u0440\u043e\u043a\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u0435\u043a\u0441\u0442\u0430\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0447\u0442\u0435\u043d\u0438\u044f\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u0434\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439\u043f\u0435\u0447\u0430\u0442\u0438 \u0442\u0438\u043f\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043e\u0431\u043b\u0430\u0441\u0442\u0438\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043a\u0443\u0440\u0441\u043e\u0440\u043e\u0432\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043b\u0438\u043d\u0438\u0438\u0440\u0438\u0441\u0443\u043d\u043a\u0430\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043b\u0438\u043d\u0438\u0438\u044f\u0447\u0435\u0439\u043a\u0438\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043b\u0438\u043d\u0438\u0439\u0441\u0432\u043e\u0434\u043d\u043e\u0439\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0442\u0438\u043f\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0442\u0435\u043a\u0441\u0442\u0430\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u0440\u0438\u0441\u0443\u043d\u043a\u0430\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u0443\u0437\u043e\u0440\u0430\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u0444\u0430\u0439\u043b\u0430\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u043f\u0435\u0447\u0430\u0442\u0438 \u0447\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0432\u0440\u0435\u043c\u0435\u043d\u0438\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0442\u0438\u043f\u0444\u0430\u0439\u043b\u0430\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043e\u0431\u0445\u043e\u0434\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0442\u0438\u043f\u0437\u0430\u043f\u0438\u0441\u0438\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432\u0438\u0434\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044f\u043e\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043f\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0442\u0438\u043f\u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f\u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044f\u043e\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043f\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0438\u0442\u043e\u0433\u043e\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u043a\u0444\u0430\u0439\u043b\u0443 \u0440\u0435\u0436\u0438\u043c\u0434\u0438\u0430\u043b\u043e\u0433\u0430\u0432\u044b\u0431\u043e\u0440\u0430\u0444\u0430\u0439\u043b\u0430 \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f\u0444\u0430\u0439\u043b\u0430 \u0442\u0438\u043f\u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f\u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044f\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432\u0438\u0434\u0434\u0430\u043d\u043d\u044b\u0445\u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043c\u0435\u0442\u043e\u0434\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0438\u043f\u0435\u0434\u0438\u043d\u0438\u0446\u044b\u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430\u0432\u0440\u0435\u043c\u0435\u043d\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u0442\u0430\u0431\u043b\u0438\u0446\u044b\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u0438\u0441\u043a\u0430\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0439 \u0442\u0438\u043f\u043a\u043e\u043b\u043e\u043d\u043a\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u0434\u0435\u0440\u0435\u0432\u043e\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0442\u0438\u043f\u043a\u043e\u043b\u043e\u043d\u043a\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0438\u043f\u043a\u043e\u043b\u043e\u043d\u043a\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043e\u0431\u0449\u0430\u044f\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0442\u0438\u043f\u043a\u043e\u043b\u043e\u043d\u043a\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u0438\u0441\u043a\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0439 \u0442\u0438\u043f\u043a\u043e\u043b\u043e\u043d\u043a\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u0438\u0441\u043a\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0442\u0438\u043f\u043a\u043e\u043b\u043e\u043d\u043a\u0438\u043c\u043e\u0434\u0435\u043b\u0438\u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0442\u0438\u043f\u043c\u0435\u0440\u044b\u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0442\u0441\u0435\u0447\u0435\u043d\u0438\u044f\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438 \u0442\u0438\u043f\u043f\u043e\u043b\u044f\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0432\u0430\u043d\u0438\u044f\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0432\u0430\u043d\u0438\u044f\u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f\u0434\u0435\u0440\u0435\u0432\u0430\u0440\u0435\u0448\u0435\u043d\u0438\u0439 ws\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442xpathxs \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0437\u0430\u043f\u0438\u0441\u0438\u0434\u0430\u0442\u044bjson \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e\u0442\u0438\u043f\u0430xs \u0432\u0438\u0434\u0433\u0440\u0443\u043f\u043f\u044b\u043c\u043e\u0434\u0435\u043b\u0438xs \u0432\u0438\u0434\u0444\u0430\u0441\u0435\u0442\u0430xdto \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044fdom \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e\u0442\u0438\u043f\u0430xs \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0433\u043e\u0442\u0438\u043f\u0430xs \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u0441\u0445\u0435\u043c\u044bxs \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043d\u044b\u0435\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438xs \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u0433\u0440\u0443\u043f\u043f\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438xs \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u0438xs \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0438\u043c\u0435\u043dxs \u043c\u0435\u0442\u043e\u0434\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044fxs \u043c\u043e\u0434\u0435\u043b\u044c\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043exs \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0442\u0438\u043f\u0430xml \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438xs \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043f\u0440\u043e\u0431\u0435\u043b\u044c\u043d\u044b\u0445\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432xs \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043exs \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044fxs \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u043e\u0442\u0431\u043e\u0440\u0430\u0443\u0437\u043b\u043e\u0432dom \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0441\u0442\u0440\u043e\u043ajson \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0432\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435dom \u043f\u0440\u043e\u0431\u0435\u043b\u044c\u043d\u044b\u0435\u0441\u0438\u043c\u0432\u043e\u043b\u044bxml \u0442\u0438\u043f\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xml \u0442\u0438\u043f\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044fjson \u0442\u0438\u043f\u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043exml \u0442\u0438\u043f\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044bxs \u0442\u0438\u043f\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438xml \u0442\u0438\u043f\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430domxpath \u0442\u0438\u043f\u0443\u0437\u043b\u0430dom \u0442\u0438\u043f\u0443\u0437\u043b\u0430xml \u0444\u043e\u0440\u043c\u0430xml \u0444\u043e\u0440\u043c\u0430\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044fxs \u0444\u043e\u0440\u043c\u0430\u0442\u0434\u0430\u0442\u044bjson \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432json \u0432\u0438\u0434\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0438\u0442\u043e\u0433\u043e\u0432\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043f\u043e\u043b\u0435\u0439\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043f\u043e\u043b\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u043e\u0432\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0441\u043a\u043e\u0433\u043e\u043e\u0441\u0442\u0430\u0442\u043a\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0432\u044b\u0432\u043e\u0434\u0430\u0442\u0435\u043a\u0441\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0433\u0440\u0443\u043f\u043f\u044b\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u043e\u0442\u0431\u043e\u0440\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u043f\u043e\u043b\u0435\u0439\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043c\u0430\u043a\u0435\u0442\u0430\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043c\u0430\u043a\u0435\u0442\u0430\u043e\u0431\u043b\u0430\u0441\u0442\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0441\u0442\u0430\u0442\u043a\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0442\u0435\u043a\u0441\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0441\u0432\u044f\u0437\u0438\u043d\u0430\u0431\u043e\u0440\u043e\u0432\u0434\u0430\u043d\u043d\u044b\u0445\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043b\u0435\u0433\u0435\u043d\u0434\u044b\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043e\u0442\u0431\u043e\u0440\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0436\u0438\u043c\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0433\u043e\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u0442\u0435\u043a\u0441\u0442\u0430\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u043d\u0435ascii\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0442\u0435\u043a\u0441\u0442\u0430\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u044b \u0441\u0442\u0430\u0442\u0443\u0441\u0440\u0430\u0437\u0431\u043e\u0440\u0430\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438\u0437\u0430\u043f\u0438\u0441\u0438\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438\u0437\u0430\u043f\u0438\u0441\u0438\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0440\u043e\u0432\u0435\u043d\u044c\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0440\u0435\u0436\u0438\u043c\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0440\u0435\u0436\u0438\u043c\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0442\u0438\u043f\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430\u0438\u043c\u0435\u043d\u0444\u0430\u0439\u043b\u043e\u0432\u0432zip\u0444\u0430\u0439\u043b\u0435 \u043c\u0435\u0442\u043e\u0434\u0441\u0436\u0430\u0442\u0438\u044fzip \u043c\u0435\u0442\u043e\u0434\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044fzip \u0440\u0435\u0436\u0438\u043c\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043f\u0443\u0442\u0435\u0439\u0444\u0430\u0439\u043b\u043e\u0432zip \u0440\u0435\u0436\u0438\u043c\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438\u043f\u043e\u0434\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432zip \u0440\u0435\u0436\u0438\u043c\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f\u043f\u0443\u0442\u0435\u0439zip \u0443\u0440\u043e\u0432\u0435\u043d\u044c\u0441\u0436\u0430\u0442\u0438\u044fzip \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0435\u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u043a\u0441\u0442\u0440\u043e\u043a\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0432\u043f\u043e\u0442\u043e\u043a\u0435 \u043f\u043e\u0440\u044f\u0434\u043e\u043a\u0431\u0430\u0439\u0442\u043e\u0432 \u0440\u0435\u0436\u0438\u043c\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0436\u0438\u043c\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445\u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0444\u043e\u043d\u043e\u0432\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u0433\u043e\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044fftp \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u043e\u0440\u044f\u0434\u043a\u0430\u0441\u0445\u0435\u043c\u044b\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0442\u0438\u043f\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u043c\u0438\u0441\u0445\u0435\u043c\u044b\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0442\u0438\u043f\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439\u0442\u043e\u0447\u043a\u0438\u0441\u0445\u0435\u043c\u044b\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0442\u0438\u043f\u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0441\u0445\u0435\u043c\u044b\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0442\u0438\u043f\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439\u0442\u0430\u0431\u043b\u0438\u0446\u044b\u0441\u0445\u0435\u043c\u044b\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0442\u0438\u043f\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0441\u0445\u0435\u043c\u044b\u0437\u0430\u043f\u0440\u043e\u0441\u0430 http\u043c\u0435\u0442\u043e\u0434 \u0430\u0432\u0442\u043e\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043e\u0431\u0449\u0435\u0433\u043e\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u0430\u0432\u0442\u043e\u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u043e\u043c\u0435\u0440\u0430\u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e\u044f\u0437\u044b\u043a\u0430 \u0432\u0438\u0434\u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0432\u0438\u0434\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0442\u0430\u0431\u043b\u0438\u0446\u044b\u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u044c\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0439\u043f\u0440\u0438\u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0431\u0430\u0437\u044b\u043f\u043b\u0430\u043d\u0430\u0432\u0438\u0434\u043e\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e\u0432\u044b\u0431\u043e\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043e\u0431\u0449\u0435\u0433\u043e\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e\u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445\u043e\u0431\u0449\u0435\u0433\u043e\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0435\u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0432\u0438\u0434\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0432\u0438\u0434\u0430\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u043b\u0430\u043d\u0430\u043e\u0431\u043c\u0435\u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0441\u0447\u0435\u0442\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u0433\u0440\u0430\u043d\u0438\u0446\u044b\u043f\u0440\u0438\u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u043d\u043e\u043c\u0435\u0440\u0430\u0431\u0438\u0437\u043d\u0435\u0441\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u043d\u043e\u043c\u0435\u0440\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0441\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439\u043f\u043e\u0438\u0441\u043a\u043f\u0440\u0438\u0432\u0432\u043e\u0434\u0435\u043f\u043e\u0441\u0442\u0440\u043e\u043a\u0435 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u043d\u043e\u0441\u0442\u044c\u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438\u043e\u0431\u0449\u0435\u0433\u043e\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0434\u0430\u043d\u043d\u044b\u0445\u043e\u0431\u0449\u0435\u0433\u043e\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u043e\u0431\u0449\u0435\u0433\u043e\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0435\u0436\u0438\u043c\u0430\u0432\u0442\u043e\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u0438\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0440\u0435\u0436\u0438\u043c\u0437\u0430\u043f\u0438\u0441\u0438\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0440\u0435\u0436\u0438\u043c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u043e\u0434\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0436\u0438\u043c\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445\u0432\u044b\u0437\u043e\u0432\u043e\u0432\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b\u0438\u0432\u043d\u0435\u0448\u043d\u0438\u0445\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0440\u0435\u0436\u0438\u043c\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0441\u0435\u0430\u043d\u0441\u043e\u0432 \u0440\u0435\u0436\u0438\u043c\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f\u0434\u0430\u043d\u043d\u044b\u0445\u0432\u044b\u0431\u043e\u0440\u0430\u043f\u0440\u0438\u0432\u0432\u043e\u0434\u0435\u043f\u043e\u0441\u0442\u0440\u043e\u043a\u0435 \u0440\u0435\u0436\u0438\u043c\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0440\u0435\u0436\u0438\u043c\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0440\u0435\u0436\u0438\u043c\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u0438\u043a\u043e\u0434\u043e\u0432\u043f\u043b\u0430\u043d\u0430\u0432\u0438\u0434\u043e\u0432\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u0441\u0435\u0440\u0438\u0438\u043a\u043e\u0434\u043e\u0432\u043f\u043b\u0430\u043d\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u0441\u0435\u0440\u0438\u0438\u043a\u043e\u0434\u043e\u0432\u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043f\u0440\u0438\u0432\u0432\u043e\u0434\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u0432\u044b\u0431\u043e\u0440\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u043f\u043e\u0438\u0441\u043a\u0430\u0441\u0442\u0440\u043e\u043a\u0438\u043f\u0440\u0438\u0432\u0432\u043e\u0434\u0435\u043f\u043e\u0441\u0442\u0440\u043e\u043a\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u0434\u0430\u043d\u043d\u044b\u0445\u0442\u0430\u0431\u043b\u0438\u0446\u044b\u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043a\u043e\u0434\u0430\u043f\u043b\u0430\u043d\u0430\u0432\u0438\u0434\u043e\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0442\u0438\u043f\u043a\u043e\u0434\u0430\u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u0442\u0438\u043f\u043c\u0430\u043a\u0435\u0442\u0430 \u0442\u0438\u043f\u043d\u043e\u043c\u0435\u0440\u0430\u0431\u0438\u0437\u043d\u0435\u0441\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0442\u0438\u043f\u043d\u043e\u043c\u0435\u0440\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0442\u0438\u043f\u043d\u043e\u043c\u0435\u0440\u0430\u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u0438\u043f\u0444\u043e\u0440\u043c\u044b \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0439 \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0444\u043e\u0440\u043c\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e\u0448\u0440\u0438\u0444\u0442\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439\u0434\u0430\u0442\u044b\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0438\u0434\u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u0438\u0434\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0432\u0438\u0434\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e\u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u0438\u0434\u0440\u0430\u043c\u043a\u0438 \u0432\u0438\u0434\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0446\u0432\u0435\u0442\u0430 \u0432\u0438\u0434\u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0448\u0440\u0438\u0444\u0442\u0430 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u0430\u044f\u0434\u043b\u0438\u043d\u0430 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439\u0437\u043d\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435byteordermark \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445\u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e\u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0432\u0438\u0448\u0430 \u043a\u043e\u0434\u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430\u0434\u0438\u0430\u043b\u043e\u0433\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430xbase \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430\u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u043e\u0438\u0441\u043a\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u0438\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043f\u0430\u043d\u0435\u043b\u0438\u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u0434\u0438\u0430\u043b\u043e\u0433\u0430\u0432\u043e\u043f\u0440\u043e\u0441 \u0440\u0435\u0436\u0438\u043c\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f\u0444\u043e\u0440\u043c\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e\u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044b\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u0432\u044b\u0431\u043e\u0440\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430windows \u0441\u043f\u043e\u0441\u043e\u0431\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0432\u043d\u0435\u0448\u043d\u0435\u0439\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0442\u0438\u043f\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0442\u0438\u043f\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f\u043a\u043b\u0430\u0432\u0438\u0448\u0438enter \u0442\u0438\u043f\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438\u043e\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044b\u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0440\u043e\u0432\u0435\u043d\u044c\u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0445\u0435\u0448\u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0447\u0430\u0441\u0442\u0438\u0434\u0430\u0442\u044b", +type:"com\u043e\u0431\u044a\u0435\u043a\u0442 ftp\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 http\u0437\u0430\u043f\u0440\u043e\u0441 http\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0442\u0432\u0435\u0442 http\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 ws\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f ws\u043f\u0440\u043e\u043a\u0441\u0438 xbase \u0430\u043d\u0430\u043b\u0438\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044fxs \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0444\u0435\u0440\u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435xs \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445\u0447\u0438\u0441\u0435\u043b \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f\u0441\u0445\u0435\u043c\u0430 \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f\u0441\u0445\u0435\u043c\u0430 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u043e\u0434\u0435\u043b\u0438xs \u0434\u0430\u043d\u043d\u044b\u0435\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0435\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0435\u043d\u0434\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430\u0433\u0430\u043d\u0442\u0430 \u0434\u0438\u0430\u043b\u043e\u0433\u0432\u044b\u0431\u043e\u0440\u0430\u0444\u0430\u0439\u043b\u0430 \u0434\u0438\u0430\u043b\u043e\u0433\u0432\u044b\u0431\u043e\u0440\u0430\u0446\u0432\u0435\u0442\u0430 \u0434\u0438\u0430\u043b\u043e\u0433\u0432\u044b\u0431\u043e\u0440\u0430\u0448\u0440\u0438\u0444\u0442\u0430 \u0434\u0438\u0430\u043b\u043e\u0433\u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u0440\u0435\u0433\u043b\u0430\u043c\u0435\u043d\u0442\u043d\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0434\u0438\u0430\u043b\u043e\u0433\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e\u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442dom \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442html \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044fxs \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0435\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u044cdom \u0437\u0430\u043f\u0438\u0441\u044cfastinfoset \u0437\u0430\u043f\u0438\u0441\u044chtml \u0437\u0430\u043f\u0438\u0441\u044cjson \u0437\u0430\u043f\u0438\u0441\u044cxml \u0437\u0430\u043f\u0438\u0441\u044czip\u0444\u0430\u0439\u043b\u0430 \u0437\u0430\u043f\u0438\u0441\u044c\u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u044c\u0442\u0435\u043a\u0441\u0442\u0430 \u0437\u0430\u043f\u0438\u0441\u044c\u0443\u0437\u043b\u043e\u0432dom \u0437\u0430\u043f\u0440\u043e\u0441 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u0435\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435openssl \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043f\u043e\u043b\u0435\u0439\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435\u0442\u0435\u043a\u0441\u0442\u0430 \u0438\u043c\u043f\u043e\u0440\u0442xs \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u0430 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0435\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439\u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043f\u0440\u043e\u043a\u0441\u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\u0434\u043b\u044f\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044fxs \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443\u0437\u043b\u043e\u0432dom \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\u0434\u0430\u0442\u044b \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\u0447\u0438\u0441\u043b\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a\u043c\u0430\u043a\u0435\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043c\u0430\u043a\u0435\u0442\u0430\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0444\u043e\u0440\u043c\u0430\u0442\u043d\u043e\u0439\u0441\u0442\u0440\u043e\u043a\u0438 \u043b\u0438\u043d\u0438\u044f \u043c\u0430\u043a\u0435\u0442\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u043a\u0435\u0442\u043e\u0431\u043b\u0430\u0441\u0442\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u043a\u0435\u0442\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u0441\u043a\u0430xs \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043d\u0430\u0431\u043e\u0440\u0441\u0445\u0435\u043cxml \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438json \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0431\u0445\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430dom \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043d\u043e\u0442\u0430\u0446\u0438\u0438xs \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430xs \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0434\u043e\u0441\u0442\u0443\u043f\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043e\u0442\u043a\u0430\u0437\u0432\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e\u0444\u0430\u0439\u043b\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0442\u0438\u043f\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0433\u0440\u0443\u043f\u043f\u044b\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432xs \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0433\u0440\u0443\u043f\u043f\u044b\u043c\u043e\u0434\u0435\u043b\u0438xs \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u0438xs \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e\u0442\u0438\u043f\u0430xs \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0433\u043e\u0442\u0438\u043f\u0430xs \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u0442\u0438\u043f\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430dom \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044fxpathxs \u043e\u0442\u0431\u043e\u0440\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0445\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0437\u0430\u043f\u0438\u0441\u0438json \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0437\u0430\u043f\u0438\u0441\u0438xml \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\u0447\u0442\u0435\u043d\u0438\u044fxml \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435xs \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043f\u043e\u043b\u0435\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044cdom \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043e\u0442\u0447\u0435\u0442\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043e\u0442\u0447\u0435\u0442\u0430\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u0441\u0445\u0435\u043cxml \u043f\u043e\u0442\u043e\u043a \u043f\u043e\u0442\u043e\u043a\u0432\u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0447\u0442\u0430 \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0435\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435xsl \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043a\u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443xml \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0432\u044b\u0432\u043e\u0434\u0430\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445\u0432\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0432\u044b\u0432\u043e\u0434\u0430\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445\u0432\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u044b\u0439\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0438\u043c\u0435\u043ddom \u0440\u0430\u043c\u043a\u0430 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0440\u0435\u0433\u043b\u0430\u043c\u0435\u043d\u0442\u043d\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0435\u0438\u043c\u044fxml \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0447\u0442\u0435\u043d\u0438\u044f\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0432\u043e\u0434\u043d\u0430\u044f\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u0432\u044f\u0437\u044c\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0432\u044b\u0431\u043e\u0440\u0430 \u0441\u0432\u044f\u0437\u044c\u043f\u043e\u0442\u0438\u043f\u0443 \u0441\u0432\u044f\u0437\u044c\u043f\u043e\u0442\u0438\u043f\u0443\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440xdto \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043a\u043b\u0438\u0435\u043d\u0442\u0430windows \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u0444\u0430\u0439\u043b \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b\u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u044e\u0449\u0438\u0445\u0446\u0435\u043d\u0442\u0440\u043e\u0432windows \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b\u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u044e\u0449\u0438\u0445\u0446\u0435\u043d\u0442\u0440\u043e\u0432\u0444\u0430\u0439\u043b \u0441\u0436\u0430\u0442\u0438\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435\u043a\u043b\u0430\u0432\u0438\u0448 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f\u0434\u0430\u0442\u0430\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439\u043f\u0435\u0440\u0438\u043e\u0434 \u0441\u0445\u0435\u043c\u0430xml \u0441\u0445\u0435\u043c\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u044b\u0439\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0435\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0434\u0430\u043d\u043d\u044b\u0445xml \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0444\u0430\u0431\u0440\u0438\u043a\u0430xdto \u0444\u0430\u0439\u043b \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0439\u043f\u043e\u0442\u043e\u043a \u0444\u0430\u0441\u0435\u0442\u0434\u043b\u0438\u043d\u044bxs \u0444\u0430\u0441\u0435\u0442\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430\u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432\u0434\u0440\u043e\u0431\u043d\u043e\u0439\u0447\u0430\u0441\u0442\u0438xs \u0444\u0430\u0441\u0435\u0442\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044fxs \u0444\u0430\u0441\u0435\u0442\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044fxs \u0444\u0430\u0441\u0435\u0442\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439\u0434\u043b\u0438\u043d\u044bxs \u0444\u0430\u0441\u0435\u0442\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044fxs \u0444\u0430\u0441\u0435\u0442\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0433\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044fxs \u0444\u0430\u0441\u0435\u0442\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439\u0434\u043b\u0438\u043d\u044bxs \u0444\u0430\u0441\u0435\u0442\u043e\u0431\u0440\u0430\u0437\u0446\u0430xs \u0444\u0430\u0441\u0435\u0442\u043e\u0431\u0449\u0435\u0433\u043e\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430\u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432xs \u0444\u0430\u0441\u0435\u0442\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044fxs \u0444\u0430\u0441\u0435\u0442\u043f\u0440\u043e\u0431\u0435\u043b\u044c\u043d\u044b\u0445\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432xs \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0437\u043b\u043e\u0432dom \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f\u0441\u0442\u0440\u043e\u043a\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442xs \u0445\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442 \u0447\u0442\u0435\u043d\u0438\u0435fastinfoset \u0447\u0442\u0435\u043d\u0438\u0435html \u0447\u0442\u0435\u043d\u0438\u0435json \u0447\u0442\u0435\u043d\u0438\u0435xml \u0447\u0442\u0435\u043d\u0438\u0435zip\u0444\u0430\u0439\u043b\u0430 \u0447\u0442\u0435\u043d\u0438\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0442\u0435\u043d\u0438\u0435\u0442\u0435\u043a\u0441\u0442\u0430 \u0447\u0442\u0435\u043d\u0438\u0435\u0443\u0437\u043b\u043e\u0432dom \u0448\u0440\u0438\u0444\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 comsafearray \u0434\u0435\u0440\u0435\u0432\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u043f\u0438\u0441\u043e\u043a\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439\u043c\u0430\u0441\u0441\u0438\u0432 ", +literal:e},contains:[{className:"meta",begin:"#|&",end:"$",keywords:{$pattern:x, +keyword:n+"\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0438\u0437\u0444\u0430\u0439\u043b\u0430 \u0432\u0435\u0431\u043a\u043b\u0438\u0435\u043d\u0442 \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0435\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442 \u043a\u043e\u043d\u0435\u0446\u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0435\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043a\u043b\u0438\u0435\u043d\u0442 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0435\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043d\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0435\u043d\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043d\u0430\u043a\u043b\u0438\u0435\u043d\u0442\u0435\u043d\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043d\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u0441\u043b\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u0442\u043e\u043b\u0441\u0442\u044b\u0439\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0431\u044b\u0447\u043d\u043e\u0435\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u043e\u043b\u0441\u0442\u044b\u0439\u043a\u043b\u0438\u0435\u043d\u0442\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0435\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u043e\u043d\u043a\u0438\u0439\u043a\u043b\u0438\u0435\u043d\u0442 " +},contains:[m]},{className:"function",variants:[{ +begin:"\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430|\u0444\u0443\u043d\u043a\u0446\u0438\u044f", +end:"\\)", +keywords:"\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f" +},{ +begin:"\u043a\u043e\u043d\u0435\u0446\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b|\u043a\u043e\u043d\u0435\u0446\u0444\u0443\u043d\u043a\u0446\u0438\u0438", +keywords:"\u043a\u043e\u043d\u0435\u0446\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043a\u043e\u043d\u0435\u0446\u0444\u0443\u043d\u043a\u0446\u0438\u0438" +}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params", +begin:x,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{$pattern:x, +keyword:"\u0437\u043d\u0430\u0447",literal:e},contains:[o,t,a]},m] +},s.inherit(s.TITLE_MODE,{begin:x})]},m,{className:"symbol",begin:"~",end:";|:", +excludeEnd:!0},o,t,a]}}})();hljs.registerLanguage("1c",s)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/abnf.min.js b/src/app/resources/assets/highlight/languages/abnf.min.js new file mode 100644 index 0000000..b6b9c2f --- /dev/null +++ b/src/app/resources/assets/highlight/languages/abnf.min.js @@ -0,0 +1,11 @@ +/*! `abnf` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex,s=e.COMMENT(/;/,/$/) +;return{name:"Augmented Backus-Naur Form",illegal:/[!@#$^&',?+~`|:]/, +keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"], +contains:[{scope:"operator",match:/=\/?/},{scope:"attribute", +match:a.concat(/^[a-zA-Z][a-zA-Z0-9-]*/,/(?=\s*=)/)},s,{scope:"symbol", +match:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/},{scope:"symbol", +match:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/},{scope:"symbol", +match:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/},{scope:"symbol", +match:/%[si](?=".*")/},e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}})() +;hljs.registerLanguage("abnf",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/accesslog.min.js b/src/app/resources/assets/highlight/languages/accesslog.min.js new file mode 100644 index 0000000..c70e084 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/accesslog.min.js @@ -0,0 +1,13 @@ +/*! `accesslog` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,a=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"] +;return{name:"Apache Access Log",contains:[{className:"number", +begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5},{ +className:"number",begin:/\b\d+\b/,relevance:0},{className:"string", +begin:n.concat(/"/,n.either(...a)),end:/"/,keywords:a,illegal:/\n/,relevance:5, +contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]},{className:"string", +begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string", +begin:/\[/,end:/\]/,illegal:/\n/,relevance:0},{className:"string", +begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3},{ +className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}})() +;hljs.registerLanguage("accesslog",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/actionscript.min.js b/src/app/resources/assets/highlight/languages/actionscript.min.js new file mode 100644 index 0000000..8de3848 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/actionscript.min.js @@ -0,0 +1,17 @@ +/*! `actionscript` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a=e.regex,t=/[a-zA-Z_$][a-zA-Z0-9_$]*/,n=a.concat(t,a.concat("(\\.",t,")*")),s={ +className:"rest_arg",begin:/[.]{3}/,end:t,relevance:10};return{ +name:"ActionScript",aliases:["as"],keywords:{ +keyword:["as","break","case","catch","class","const","continue","default","delete","do","dynamic","each","else","extends","final","finally","for","function","get","if","implements","import","in","include","instanceof","interface","internal","is","namespace","native","new","override","package","private","protected","public","return","set","static","super","switch","this","throw","try","typeof","use","var","void","while","with"], +literal:["true","false","null","undefined"]}, +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{ +match:[/\bpackage/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{ +match:[/\b(?:class|interface|extends|implements)/,/\s+/,t],className:{ +1:"keyword",3:"title.class"}},{className:"meta",beginKeywords:"import include", +end:/;/,keywords:{keyword:"import include"}},{beginKeywords:"function", +end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[e.inherit(e.TITLE_MODE,{ +className:"title.function"}),{className:"params",begin:/\(/,end:/\)/, +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s] +},{begin:a.concat(/:\s*/,/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/)}]},e.METHOD_GUARD], +illegal:/#/}}})();hljs.registerLanguage("actionscript",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/ada.min.js b/src/app/resources/assets/highlight/languages/ada.min.js new file mode 100644 index 0000000..4d80c05 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/ada.min.js @@ -0,0 +1,26 @@ +/*! `ada` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n="[A-Za-z](_?[A-Za-z0-9.])*",s="[]\\{\\}%#'\"",a=e.COMMENT("--","$"),r={ +begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:s,contains:[{ +beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword", +beginKeywords:"not null constant access function procedure in out aliased exception" +},{className:"type",begin:n,endsParent:!0,relevance:0}]};return{name:"Ada", +case_insensitive:!0,keywords:{ +keyword:["abort","else","new","return","abs","elsif","not","reverse","abstract","end","accept","entry","select","access","exception","of","separate","aliased","exit","or","some","all","others","subtype","and","for","out","synchronized","array","function","overriding","at","tagged","generic","package","task","begin","goto","pragma","terminate","body","private","then","if","procedure","type","case","in","protected","constant","interface","is","raise","use","declare","range","delay","limited","record","when","delta","loop","rem","while","digits","renames","with","do","mod","requeue","xor"], +literal:["True","False"]},contains:[a,{className:"string",begin:/"/,end:/"/, +contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{ +className:"number", +begin:"\\b(\\d(_|\\d)*#\\w+(\\.\\w+)?#([eE][-+]?\\d(_|\\d)*)?|\\d(_|\\d)*(\\.\\d(_|\\d)*)?([eE][-+]?\\d(_|\\d)*)?)", +relevance:0},{className:"symbol",begin:"'"+n},{className:"title", +begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?", +end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:s},{ +begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+", +end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)", +keywords:"overriding function procedure with is renames return",returnBegin:!0, +contains:[a,{className:"title", +begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)", +excludeBegin:!0,excludeEnd:!0,illegal:s},r,{className:"type", +begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0, +excludeEnd:!0,endsParent:!0,illegal:s}]},{className:"type", +begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:s +},r]}}})();hljs.registerLanguage("ada",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/angelscript.min.js b/src/app/resources/assets/highlight/languages/angelscript.min.js new file mode 100644 index 0000000..939d07d --- /dev/null +++ b/src/app/resources/assets/highlight/languages/angelscript.min.js @@ -0,0 +1,21 @@ +/*! `angelscript` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={className:"built_in", +begin:"\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)" +},a={className:"symbol",begin:"[a-zA-Z0-9_]+@"},i={className:"keyword", +begin:"<",end:">",contains:[n,a]};return n.contains=[i],a.contains=[i],{ +name:"AngelScript",aliases:["asc"], +keywords:["for","in|0","break","continue","while","do|0","return","if","else","case","switch","namespace","is","cast","or","and","xor","not","get|0","in","inout|10","out","override","set|0","private","public","const","default|0","final","shared","external","mixin|10","enum","typedef","funcdef","this","super","import","from","interface","abstract|0","try","catch","protected","explicit","property"], +illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{ +className:"string",begin:"'",end:"'",illegal:"\\n", +contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"""', +end:'"""'},{className:"string",begin:'"',end:'"',illegal:"\\n", +contains:[e.BACKSLASH_ESCAPE],relevance:0 +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string", +begin:"^\\s*\\[",end:"\\]"},{beginKeywords:"interface namespace",end:/\{/, +illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{ +beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol", +begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol", +begin:"[a-zA-Z0-9_]+"}]}]}]},n,a,{className:"literal", +begin:"\\b(null|true|false)"},{className:"number",relevance:0, +begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)" +}]}}})();hljs.registerLanguage("angelscript",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/apache.min.js b/src/app/resources/assets/highlight/languages/apache.min.js new file mode 100644 index 0000000..fccbc14 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/apache.min.js @@ -0,0 +1,14 @@ +/*! `apache` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={className:"number", +begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{ +name:"Apache config",aliases:["apacheconf"],case_insensitive:!0, +contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/, +contains:[n,{className:"number",begin:/:\d{1,5}/ +},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute", +begin:/\w+/,relevance:0,keywords:{ +_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"] +},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"}, +contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable", +begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}] +},n,{className:"number",begin:/\b\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}} +})();hljs.registerLanguage("apache",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/applescript.min.js b/src/app/resources/assets/highlight/languages/applescript.min.js new file mode 100644 index 0000000..44f3644 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/applescript.min.js @@ -0,0 +1,19 @@ +/*! `applescript` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const t=e.regex,r=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),i={ +className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,r] +},n=e.COMMENT(/--/,/$/),a=[n,e.COMMENT(/\(\*/,/\*\)/,{contains:["self",n] +}),e.HASH_COMMENT_MODE];return{name:"AppleScript",aliases:["osascript"], +keywords:{ +keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without", +literal:"AppleScript false linefeed return pi quote result space tab true", +built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name|0 paragraph paragraphs rest reverse running time version weekday word words year" +},contains:[r,e.C_NUMBER_MODE,{className:"built_in", +begin:t.concat(/\b/,t.either(/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/),/\b/) +},{className:"built_in",begin:/^\s*return\b/},{className:"literal", +begin:/\b(text item delimiters|current application|missing value)\b/},{ +className:"keyword", +begin:t.concat(/\b/,t.either(/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/),/\b/) +},{beginKeywords:"on",illegal:/[${=;\n]/,contains:[e.UNDERSCORE_TITLE_MODE,i] +},...a],illegal:/\/\/|->|=>|\[\[/}}})();hljs.registerLanguage("applescript",e) +})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/arcade.min.js b/src/app/resources/assets/highlight/languages/arcade.min.js new file mode 100644 index 0000000..69160a2 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/arcade.min.js @@ -0,0 +1,27 @@ +/*! `arcade` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n="[A-Za-z_][0-9A-Za-z_]*",a={ +keyword:["if","for","while","var","new","function","do","return","void","else","break"], +literal:["BackSlash","DoubleQuote","false","ForwardSlash","Infinity","NaN","NewLine","null","PI","SingleQuote","Tab","TextFormatting","true","undefined"], +built_in:["Abs","Acos","All","Angle","Any","Area","AreaGeodetic","Array","Asin","Atan","Atan2","Attachments","Average","Back","Bearing","Boolean","Buffer","BufferGeodetic","Ceil","Centroid","Clip","Concatenate","Console","Constrain","Contains","ConvertDirection","Cos","Count","Crosses","Cut","Date","DateAdd","DateDiff","Day","Decode","DefaultValue","Densify","DensifyGeodetic","Dictionary","Difference","Disjoint","Distance","DistanceGeodetic","Distinct","Domain","DomainCode","DomainName","EnvelopeIntersects","Equals","Erase","Exp","Expects","Extent","Feature","FeatureSet","FeatureSetByAssociation","FeatureSetById","FeatureSetByName","FeatureSetByPortalItem","FeatureSetByRelationshipName","Filter","Find","First","Floor","FromCharCode","FromCodePoint","FromJSON","GdbVersion","Generalize","Geometry","GetFeatureSet","GetUser","GroupBy","Guid","Hash","HasKey","Hour","IIf","Includes","IndexOf","Insert","Intersection","Intersects","IsEmpty","IsNan","ISOMonth","ISOWeek","ISOWeekday","ISOYear","IsSelfIntersecting","IsSimple","Left|0","Length","Length3D","LengthGeodetic","Log","Lower","Map","Max","Mean","Mid","Millisecond","Min","Minute","Month","MultiPartToSinglePart","Multipoint","NextSequenceValue","None","Now","Number","Offset|0","OrderBy","Overlaps","Point","Polygon","Polyline","Pop","Portal","Pow","Proper","Push","Random","Reduce","Relate","Replace","Resize","Reverse","Right|0","RingIsClockwise","Rotate","Round","Schema","Second","SetGeometry","Simplify","Sin","Slice","Sort","Splice","Split","Sqrt","Stdev","SubtypeCode","SubtypeName","Subtypes","Sum","SymmetricDifference","Tan","Text","Timestamp","ToCharCode","ToCodePoint","Today","ToHex","ToLocal","Top|0","Touches","ToUTC","TrackAccelerationAt","TrackAccelerationWindow","TrackCurrentAcceleration","TrackCurrentDistance","TrackCurrentSpeed","TrackCurrentTime","TrackDistanceAt","TrackDistanceWindow","TrackDuration","TrackFieldWindow","TrackGeometryWindow","TrackIndex","TrackSpeedAt","TrackSpeedWindow","TrackStartTime","TrackWindow","Trim","TypeOf","Union","Upper","UrlEncode","Variance","Week","Weekday","When","Within","Year"] +},t={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{ +begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},r={ +className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},i={ +className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,r]} +;r.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,t,e.REGEXP_MODE] +;const o=r.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]) +;return{name:"ArcGIS Arcade",case_insensitive:!0,keywords:a, +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{ +className:"symbol", +begin:"\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+" +},t,{begin:/[{,]\s*/,relevance:0,contains:[{begin:n+"\\s*:",returnBegin:!0, +relevance:0,contains:[{className:"attr",begin:n,relevance:0}]}]},{ +begin:"("+e.RE_STARTERS_RE+"|\\b(return)\\b)\\s*",keywords:"return", +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{ +className:"function",begin:"(\\(.*?\\)|"+n+")\\s*=>",returnBegin:!0, +end:"\\s*=>",contains:[{className:"params",variants:[{begin:n},{begin:/\(\s*\)/ +},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:o}]}] +}],relevance:0},{beginKeywords:"function",end:/\{/,excludeEnd:!0, +contains:[e.inherit(e.TITLE_MODE,{className:"title.function",begin:n}),{ +className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:o +}],illegal:/\[|%/},{begin:/\$[(.]/}],illegal:/#(?!!)/}}})() +;hljs.registerLanguage("arcade",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/arduino.min.js b/src/app/resources/assets/highlight/languages/arduino.min.js new file mode 100644 index 0000000..410f130 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/arduino.min.js @@ -0,0 +1,54 @@ +/*! `arduino` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t={ +type:["boolean","byte","word","String"], +built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"], +_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"], +literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"] +},r=(e=>{const t=e.regex,r=e.COMMENT("//","$",{contains:[{begin:/\\\n/}] +}),n="[a-zA-Z_]\\w*::",a="(?!struct)(decltype\\(auto\\)|"+t.optional(n)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",i={ +className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{ +className:"string",begin:/<.*?>/},r,e.C_BLOCK_COMMENT_MODE]},c={ +className:"title",begin:t.optional(n)+e.IDENT_RE,relevance:0 +},d=t.optional(n)+e.IDENT_RE+"\\s*\\(",u={ +type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"], +keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"], +literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"], +_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"] +},p={className:"function.dispatch",relevance:0,keywords:{ +_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"] +}, +begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/)) +},m=[p,l,i,r,e.C_BLOCK_COMMENT_MODE,o,s],g={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:m.concat(["self"]),relevance:0}]),relevance:0},_={className:"function", +begin:"("+a+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", +keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[c],relevance:0},{ +begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,o]},{ +relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u, +relevance:0,contains:[r,e.C_BLOCK_COMMENT_MODE,s,o,i,{begin:/\(/,end:/\)/, +keywords:u,relevance:0,contains:["self",r,e.C_BLOCK_COMMENT_MODE,s,o,i]}] +},i,r,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C++", +aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",i]},{begin:e.IDENT_RE+"::",keywords:u},{ +match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/], +className:{1:"keyword",3:"title.class"}}])}})(e),n=r.keywords +;return n.type=[...n.type,...t.type], +n.literal=[...n.literal,...t.literal],n.built_in=[...n.built_in,...t.built_in], +n._hints=t._hints,r.name="Arduino",r.aliases=["ino"],r.supersetOf="cpp",r}})() +;hljs.registerLanguage("arduino",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/armasm.min.js b/src/app/resources/assets/highlight/languages/armasm.min.js new file mode 100644 index 0000000..d7f371e --- /dev/null +++ b/src/app/resources/assets/highlight/languages/armasm.min.js @@ -0,0 +1,17 @@ +/*! `armasm` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var s=(()=>{"use strict";return s=>{const e={ +variants:[s.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0 +}),s.COMMENT("[;@]","$",{relevance:0 +}),s.C_LINE_COMMENT_MODE,s.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly", +case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+s.IDENT_RE, +meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ", +built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @" +},contains:[{className:"keyword", +begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)" +},e,s.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0 +},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{ +className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+" +},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol", +variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{ +begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}})() +;hljs.registerLanguage("armasm",s)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/asciidoc.min.js b/src/app/resources/assets/highlight/languages/asciidoc.min.js new file mode 100644 index 0000000..21d9463 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/asciidoc.min.js @@ -0,0 +1,35 @@ +/*! `asciidoc` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,a=[{ +className:"strong",begin:/\*{2}([^\n]+?)\*{2}/},{className:"strong", +begin:n.concat(/\*\*/,/((\*(?!\*)|\\[^\n]|[^*\n\\])+\n)+/,/(\*(?!\*)|\\[^\n]|[^*\n\\])*/,/\*\*/), +relevance:0},{className:"strong",begin:/\B\*(\S|\S[^\n]*?\S)\*(?!\w)/},{ +className:"strong",begin:/\*[^\s]([^\n]+\n)+([^\n]+)\*/}],s=[{ +className:"emphasis",begin:/_{2}([^\n]+?)_{2}/},{className:"emphasis", +begin:n.concat(/__/,/((_(?!_)|\\[^\n]|[^_\n\\])+\n)+/,/(_(?!_)|\\[^\n]|[^_\n\\])*/,/__/), +relevance:0},{className:"emphasis",begin:/\b_(\S|\S[^\n]*?\S)_(?!\w)/},{ +className:"emphasis",begin:/_[^\s]([^\n]+\n)+([^\n]+)_/},{className:"emphasis", +begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0 +}],relevance:0}];return{name:"AsciiDoc",aliases:["adoc"], +contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10 +}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{ +begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"section", +relevance:10,variants:[{begin:"^(={1,6})[ \t].+?([ \t]\\1)?$"},{ +begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{className:"meta", +begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"meta", +begin:"^\\[.+?\\]$",relevance:0},{className:"quote",begin:"^_{4,}\\n", +end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n", +end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$", +contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{ +className:"bullet",begin:"^(\\*+|-+|\\.+|[^\\n]+?::)\\s+"},{className:"symbol", +begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{ +begin:/\\[*_`]/},{begin:/\\\\\*{2}[^\n]*?\*{2}/},{begin:/\\\\_{2}[^\n]*_{2}/},{ +begin:/\\\\`{2}[^\n]*`{2}/},{begin:/[:;}][*_`](?![*_`])/},...a,...s,{ +className:"string",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{ +className:"code",begin:/`{2}/,end:/(\n{2}|`{2})/},{className:"code", +begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]", +end:"$",relevance:0},{begin:"^'{3,}[ \\t]*$",relevance:10},{ +begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+?\\[[^[]*?\\]", +returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{ +className:"link",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"string", +begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}] +}}})();hljs.registerLanguage("asciidoc",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/aspectj.min.js b/src/app/resources/assets/highlight/languages/aspectj.min.js new file mode 100644 index 0000000..24384f7 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/aspectj.min.js @@ -0,0 +1,31 @@ +/*! `aspectj` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,t=["false","synchronized","int","abstract","float","private","char","boolean","static","null","if","const","for","true","while","long","throw","strictfp","finally","protected","import","native","final","return","void","enum","else","extends","implements","break","transient","new","catch","instanceof","byte","super","volatile","case","assert","short","package","default","double","public","try","this","switch","continue","throws","privileged","aspectOf","adviceexecution","proceed","cflowbelow","cflow","initialization","preinitialization","staticinitialization","withincode","target","within","execution","getWithinTypeName","handler","thisJoinPoint","thisJoinPointStaticPart","thisEnclosingJoinPointStaticPart","declare","parents","warning","error","soft","precedence","thisAspectInstance"],i=["get","set","args","call"] +;return{name:"AspectJ",keywords:t,illegal:/<\/|#/, +contains:[e.COMMENT(/\/\*\*/,/\*\//,{relevance:0,contains:[{begin:/\w+@/, +relevance:0},{className:"doctag",begin:/@[A-Za-z]+/}] +}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ +className:"class",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0, +illegal:/[:;"\[\]]/,contains:[{ +beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton" +},e.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:t.concat(i), +excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/, +excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/, +contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ +beginKeywords:"pointcut after before around throwing returning",end:/[)]/, +excludeEnd:!1,illegal:/["\[\]]/,contains:[{ +begin:n.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0, +contains:[e.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/, +relevance:0,excludeEnd:!1,keywords:t,illegal:/["\[\]]/,contains:[{ +begin:n.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),keywords:t.concat(i),relevance:0 +},e.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{ +className:"function", +begin:/\w+ +\w+(\.\w+)?\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0, +end:/[{;=]/,keywords:t,excludeEnd:!0,contains:[{ +begin:n.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/, +relevance:0,keywords:t, +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_NUMBER_MODE,{ +className:"meta",begin:/@[A-Za-z]+/}]}}})();hljs.registerLanguage("aspectj",e) +})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/autohotkey.min.js b/src/app/resources/assets/highlight/languages/autohotkey.min.js new file mode 100644 index 0000000..5d51b30 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/autohotkey.min.js @@ -0,0 +1,14 @@ +/*! `autohotkey` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a={begin:"`[\\s\\S]"};return{ +name:"AutoHotkey",case_insensitive:!0,aliases:["ahk"],keywords:{ +keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group", +literal:"true false NOT AND OR", +built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"}, +contains:[a,e.inherit(e.QUOTE_STRING_MODE,{contains:[a]}),e.COMMENT(";","$",{ +relevance:0}),e.C_BLOCK_COMMENT_MODE,{className:"number",begin:e.NUMBER_RE, +relevance:0},{className:"variable",begin:"%[a-zA-Z0-9#_$@]+%"},{ +className:"built_in",begin:"^\\s*\\w+\\s*(,|%)"},{className:"title",variants:[{ +begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{ +className:"meta",begin:"^\\s*#\\w+",end:"$",relevance:0},{className:"built_in", +begin:"A_[a-zA-Z0-9]+"},{begin:",\\s*,"}]}}})() +;hljs.registerLanguage("autohotkey",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/autoit.min.js b/src/app/resources/assets/highlight/languages/autoit.min.js new file mode 100644 index 0000000..3e5d0bd --- /dev/null +++ b/src/app/resources/assets/highlight/languages/autoit.min.js @@ -0,0 +1,21 @@ +/*! `autoit` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t={variants:[e.COMMENT(";","$",{ +relevance:0 +}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},r={ +begin:"\\$[A-z0-9_]+"},i={className:"string",variants:[{begin:/"/,end:/"/, +contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/, +relevance:0}]}]},n={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{ +name:"AutoIt",case_insensitive:!0,illegal:/\/\*/,keywords:{ +keyword:"ByRef Case Const ContinueCase ContinueLoop Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With", +built_in:"Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive", +literal:"True False And Null Not Or Default"},contains:[t,r,i,n,{ +className:"meta",begin:"#",end:"$",keywords:{ +keyword:["EndRegion","forcedef","forceref","ignorefunc","include","include-once","NoTrayIcon","OnAutoItStartRegister","pragma","Region","RequireAdmin","Tidy_Off","Tidy_On","Tidy_Parameters"] +},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",keywords:{ +keyword:"include"},end:"$",contains:[i,{className:"string",variants:[{begin:"<", +end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/, +end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},i,t]},{className:"symbol", +begin:"@[A-z0-9_]+"},{beginKeywords:"Func",end:"$",illegal:"\\$|\\[|%", +contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{className:"title.function"}),{ +className:"params",begin:"\\(",end:"\\)",contains:[r,i,n]}]}]}}})() +;hljs.registerLanguage("autoit",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/avrasm.min.js b/src/app/resources/assets/highlight/languages/avrasm.min.js new file mode 100644 index 0000000..afcd45b --- /dev/null +++ b/src/app/resources/assets/highlight/languages/avrasm.min.js @@ -0,0 +1,12 @@ +/*! `avrasm` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var r=(()=>{"use strict";return r=>({name:"AVR Assembly", +case_insensitive:!0,keywords:{$pattern:"\\.?"+r.IDENT_RE, +keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr", +built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf", +meta:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set" +},contains:[r.C_BLOCK_COMMENT_MODE,r.COMMENT(";","$",{relevance:0 +}),r.C_NUMBER_MODE,r.BINARY_NUMBER_MODE,{className:"number", +begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},r.QUOTE_STRING_MODE,{className:"string", +begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"symbol", +begin:"^[A-Za-z0-9_.$]+:"},{className:"meta",begin:"#",end:"$"},{ +className:"subst",begin:"@[0-9]+"}]})})();hljs.registerLanguage("avrasm",r)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/awk.min.js b/src/app/resources/assets/highlight/languages/awk.min.js new file mode 100644 index 0000000..d2db1e0 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/awk.min.js @@ -0,0 +1,11 @@ +/*! `awk` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Awk",keywords:{ +keyword:"BEGIN END if else while do for in break continue delete next nextfile function func exit|10" +},contains:[{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{ +begin:/\$\{(.*?)\}/}]},{className:"string",contains:[e.BACKSLASH_ESCAPE], +variants:[{begin:/(u|b)?r?'''/,end:/'''/,relevance:10},{begin:/(u|b)?r?"""/, +end:/"""/,relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{ +begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{ +begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]})})() +;hljs.registerLanguage("awk",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/axapta.min.js b/src/app/resources/assets/highlight/languages/axapta.min.js new file mode 100644 index 0000000..74b2489 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/axapta.min.js @@ -0,0 +1,11 @@ +/*! `axapta` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t=e.UNDERSCORE_IDENT_RE,s={ +keyword:["abstract","as","asc","avg","break","breakpoint","by","byref","case","catch","changecompany","class","client","client","common","const","continue","count","crosscompany","delegate","delete_from","desc","display","div","do","edit","else","eventhandler","exists","extends","final","finally","firstfast","firstonly","firstonly1","firstonly10","firstonly100","firstonly1000","flush","for","forceliterals","forcenestedloop","forceplaceholders","forceselectorder","forupdate","from","generateonly","group","hint","if","implements","in","index","insert_recordset","interface","internal","is","join","like","maxof","minof","mod","namespace","new","next","nofetch","notexists","optimisticlock","order","outer","pessimisticlock","print","private","protected","public","readonly","repeatableread","retry","return","reverse","select","server","setting","static","sum","super","switch","this","throw","try","ttsabort","ttsbegin","ttscommit","unchecked","update_recordset","using","validtimestate","void","where","while"], +built_in:["anytype","boolean","byte","char","container","date","double","enum","guid","int","int64","long","real","short","str","utcdatetime","var"], +literal:["default","false","null","true"]},r={variants:[{ +match:[/(class|interface)\s+/,t,/\s+(extends|implements)\s+/,t]},{ +match:[/class\s+/,t]}],scope:{2:"title.class",4:"title.class.inherited"}, +keywords:s};return{name:"X++",aliases:["x++"],keywords:s, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{ +className:"meta",begin:"#",end:"$"},r]}}})();hljs.registerLanguage("axapta",e) +})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/bash.min.js b/src/app/resources/assets/highlight/languages/bash.min.js new file mode 100644 index 0000000..830cc97 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/bash.min.js @@ -0,0 +1,20 @@ +/*! `bash` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const s=e.regex,t={},n={begin:/\$\{/, +end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{ +className:"variable",variants:[{ +begin:s.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const a={ +className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i={ +begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, +end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(c);const o={begin:/\$?\(\(/, +end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] +},r=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 +}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, +contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ +name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/, +keyword:["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"], +literal:["true","false"], +built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"] +},contains:[r,e.SHEBANG(),l,o,e.HASH_COMMENT_MODE,i,{match:/(\/[a-z._-]+)+/},c,{ +className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}}})() +;hljs.registerLanguage("bash",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/basic.min.js b/src/app/resources/assets/highlight/languages/basic.min.js new file mode 100644 index 0000000..3edc06c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/basic.min.js @@ -0,0 +1,10 @@ +/*! `basic` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var E=(()=>{"use strict";return E=>({name:"BASIC",case_insensitive:!0, +illegal:"^.",keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_$%!#]*", +keyword:["ABS","ASC","AND","ATN","AUTO|0","BEEP","BLOAD|10","BSAVE|10","CALL","CALLS","CDBL","CHAIN","CHDIR","CHR$|10","CINT","CIRCLE","CLEAR","CLOSE","CLS","COLOR","COM","COMMON","CONT","COS","CSNG","CSRLIN","CVD","CVI","CVS","DATA","DATE$","DEFDBL","DEFINT","DEFSNG","DEFSTR","DEF|0","SEG","USR","DELETE","DIM","DRAW","EDIT","END","ENVIRON","ENVIRON$","EOF","EQV","ERASE","ERDEV","ERDEV$","ERL","ERR","ERROR","EXP","FIELD","FILES","FIX","FOR|0","FRE","GET","GOSUB|10","GOTO","HEX$","IF","THEN","ELSE|0","INKEY$","INP","INPUT","INPUT#","INPUT$","INSTR","IMP","INT","IOCTL","IOCTL$","KEY","ON","OFF","LIST","KILL","LEFT$","LEN","LET","LINE","LLIST","LOAD","LOC","LOCATE","LOF","LOG","LPRINT","USING","LSET","MERGE","MID$","MKDIR","MKD$","MKI$","MKS$","MOD","NAME","NEW","NEXT","NOISE","NOT","OCT$","ON","OR","PEN","PLAY","STRIG","OPEN","OPTION","BASE","OUT","PAINT","PALETTE","PCOPY","PEEK","PMAP","POINT","POKE","POS","PRINT","PRINT]","PSET","PRESET","PUT","RANDOMIZE","READ","REM","RENUM","RESET|0","RESTORE","RESUME","RETURN|0","RIGHT$","RMDIR","RND","RSET","RUN","SAVE","SCREEN","SGN","SHELL","SIN","SOUND","SPACE$","SPC","SQR","STEP","STICK","STOP","STR$","STRING$","SWAP","SYSTEM","TAB","TAN","TIME$","TIMER","TROFF","TRON","TO","USR","VAL","VARPTR","VARPTR$","VIEW","WAIT","WHILE","WEND","WIDTH","WINDOW","WRITE","XOR"] +},contains:[E.QUOTE_STRING_MODE,E.COMMENT("REM","$",{relevance:10 +}),E.COMMENT("'","$",{relevance:0}),{className:"symbol",begin:"^[0-9]+ ", +relevance:10},{className:"number",begin:"\\b\\d+(\\.\\d+)?([edED]\\d+)?[#!]?", +relevance:0},{className:"number",begin:"(&[hH][0-9a-fA-F]{1,4})"},{ +className:"number",begin:"(&[oO][0-7]{1,6})"}]})})() +;hljs.registerLanguage("basic",E)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/bnf.min.js b/src/app/resources/assets/highlight/languages/bnf.min.js new file mode 100644 index 0000000..6deb554 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/bnf.min.js @@ -0,0 +1,6 @@ +/*! `bnf` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Backus\u2013Naur Form", +contains:[{className:"attribute",begin://},{begin:/::=/,end:/$/, +contains:[{begin:// +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +}]})})();hljs.registerLanguage("bnf",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/brainfuck.min.js b/src/app/resources/assets/highlight/languages/brainfuck.min.js new file mode 100644 index 0000000..dc8079c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/brainfuck.min.js @@ -0,0 +1,8 @@ +/*! `brainfuck` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={className:"literal", +begin:/[+-]+/,relevance:0};return{name:"Brainfuck",aliases:["bf"], +contains:[e.COMMENT(/[^\[\]\.,\+\-<> \r\n]/,/[\[\]\.,\+\-<> \r\n]/,{contains:[{ +match:/[ ]+[^\[\]\.,\+\-<> \r\n]/,relevance:0}],returnEnd:!0,relevance:0}),{ +className:"title",begin:"[\\[\\]]",relevance:0},{className:"string", +begin:"[\\.,]",relevance:0},{begin:/(?=\+\+|--)/,contains:[n]},n]}}})() +;hljs.registerLanguage("brainfuck",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/c.min.js b/src/app/resources/assets/highlight/languages/c.min.js new file mode 100644 index 0000000..d128de4 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/c.min.js @@ -0,0 +1,41 @@ +/*! `c` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,t=e.COMMENT("//","$",{ +contains:[{begin:/\\\n/}] +}),s="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+n.optional(s)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",r={ +className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{ +match:/\batomic_[a-z]{3,6}\b/}]},i={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(i,{className:"string"}),{ +className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},c={ +className:"title",begin:n.optional(s)+e.IDENT_RE,relevance:0 +},d=n.optional(s)+e.IDENT_RE+"\\s*\\(",u={ +keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"], +type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"], +literal:"true false NULL", +built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr" +},g=[o,r,t,e.C_BLOCK_COMMENT_MODE,l,i],m={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:g.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:g.concat(["self"]),relevance:0}]),relevance:0},p={ +begin:"("+a+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", +keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[e.inherit(c,{ +className:"title.function"})],relevance:0},{relevance:0,match:/,/},{ +className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0, +contains:[t,e.C_BLOCK_COMMENT_MODE,i,l,r,{begin:/\(/,end:/\)/,keywords:u, +relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,i,l,r]}] +},r,t,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C",aliases:["h"],keywords:u, +disableAutodetect:!0,illegal:"=]/,contains:[{ +beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:o, +strings:i,keywords:u}}}})();hljs.registerLanguage("c",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/cal.min.js b/src/app/resources/assets/highlight/languages/cal.min.js new file mode 100644 index 0000000..16b0899 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/cal.min.js @@ -0,0 +1,15 @@ +/*! `cal` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,a=["div","mod","in","and","or","not","xor","asserterror","begin","case","do","downto","else","end","exit","for","local","if","of","repeat","then","to","until","while","with","var"],r=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{ +relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],t={className:"string", +begin:/'/,end:/'/,contains:[{begin:/''/}]},s={className:"string",begin:/(#\d+)+/ +},i={match:[/procedure/,/\s+/,/[a-zA-Z_][\w@]*/,/\s*/],scope:{1:"keyword", +3:"title.function"},contains:[{className:"params",begin:/\(/,end:/\)/, +keywords:a,contains:[t,s,e.NUMBER_MODE]},...r]},o={ +match:[/OBJECT/,/\s+/,n.either("Table","Form","Report","Dataport","Codeunit","XMLport","MenuSuite","Page","Query"),/\s+/,/\d+/,/\s+(?=[^\s])/,/.*/,/$/], +relevance:3,scope:{1:"keyword",3:"type",5:"number",7:"title"}};return{ +name:"C/AL",case_insensitive:!0,keywords:{keyword:a,literal:"false true"}, +illegal:/\/\*/,contains:[{match:/[\w]+(?=\=)/,scope:"attribute",relevance:0 +},t,s,{className:"number",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},{ +className:"string",begin:'"',end:'"'},e.NUMBER_MODE,o,i]}}})() +;hljs.registerLanguage("cal",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/capnproto.min.js b/src/app/resources/assets/highlight/languages/capnproto.min.js new file mode 100644 index 0000000..c18b38c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/capnproto.min.js @@ -0,0 +1,11 @@ +/*! `capnproto` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var t=(()=>{"use strict";return t=>{const n={variants:[{ +match:[/(struct|enum|interface)/,/\s+/,t.IDENT_RE]},{ +match:[/extends/,/\s*\(/,t.IDENT_RE,/\s*\)/]}],scope:{1:"keyword", +3:"title.class"}};return{name:"Cap\u2019n Proto",aliases:["capnp"],keywords:{ +keyword:["struct","enum","interface","union","group","import","using","const","annotation","extends","in","of","on","as","with","from","fixed"], +type:["Void","Bool","Int8","Int16","Int32","Int64","UInt8","UInt16","UInt32","UInt64","Float32","Float64","Text","Data","AnyPointer","AnyStruct","Capability","List"], +literal:["true","false"]}, +contains:[t.QUOTE_STRING_MODE,t.NUMBER_MODE,t.HASH_COMMENT_MODE,{ +className:"meta",begin:/@0x[\w\d]{16};/,illegal:/\n/},{className:"symbol", +begin:/@\d+\b/},n]}}})();hljs.registerLanguage("capnproto",t)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/ceylon.min.js b/src/app/resources/assets/highlight/languages/ceylon.min.js new file mode 100644 index 0000000..29924f3 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/ceylon.min.js @@ -0,0 +1,15 @@ +/*! `ceylon` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a=["assembly","module","package","import","alias","class","interface","object","given","value","assign","void","function","new","of","extends","satisfies","abstracts","in","out","return","break","continue","throw","assert","dynamic","if","else","switch","case","for","while","try","catch","finally","then","let","this","outer","super","is","exists","nonempty"],s={ +className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:a, +relevance:10},n=[{className:"string",begin:'"""',end:'"""',relevance:10},{ +className:"string",begin:'"',end:'"',contains:[s]},{className:"string", +begin:"'",end:"'"},{className:"number", +begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?", +relevance:0}];return s.contains=n,{name:"Ceylon",keywords:{ +keyword:a.concat(["shared","abstract","formal","default","actual","variable","late","native","deprecated","final","sealed","annotation","suppressWarnings","small"]), +meta:["doc","by","license","see","throws","tagged"]}, +illegal:"\\$[^01]|#[^0-9a-fA-F]", +contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),{ +className:"meta",begin:'@[a-z]\\w*(?::"[^"]*")?'}].concat(n)}}})() +;hljs.registerLanguage("ceylon",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/clean.min.js b/src/app/resources/assets/highlight/languages/clean.min.js new file mode 100644 index 0000000..0949394 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/clean.min.js @@ -0,0 +1,8 @@ +/*! `clean` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Clean",aliases:["icl","dcl"], +keywords:{ +keyword:["if","let","in","with","where","case","of","class","instance","otherwise","implementation","definition","system","module","from","import","qualified","as","special","code","inline","foreign","export","ccall","stdcall","generic","derive","infix","infixl","infixr"], +built_in:"Int Real Char Bool",literal:"True False"}, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{ +begin:"->|<-[|:]?|#!?|>>=|\\{\\||\\|\\}|:==|=:|<>"}]})})() +;hljs.registerLanguage("clean",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/clojure-repl.min.js b/src/app/resources/assets/highlight/languages/clojure-repl.min.js new file mode 100644 index 0000000..913cfd5 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/clojure-repl.min.js @@ -0,0 +1,4 @@ +/*! `clojure-repl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Clojure REPL",contains:[{ +className:"meta.prompt",begin:/^([\w.-]+|\s*#_)?=>/,starts:{end:/$/, +subLanguage:"clojure"}}]})})();hljs.registerLanguage("clojure-repl",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/clojure.min.js b/src/app/resources/assets/highlight/languages/clojure.min.js new file mode 100644 index 0000000..c661db8 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/clojure.min.js @@ -0,0 +1,25 @@ +/*! `clojure` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const t="a-zA-Z_\\-!.?+*=<>&'",n="[#]?["+t+"]["+t+"0-9/;:$#]*",a="def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord",r={ +$pattern:n, +built_in:a+" cond apply if-not if-let if not not= =|0 <|0 >|0 <=|0 >=|0 ==|0 +|0 /|0 *|0 -|0 rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy first rest cons cast coll last butlast sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize" +},s={begin:n,relevance:0},o={scope:"number",relevance:0,variants:[{ +match:/[-+]?0[xX][0-9a-fA-F]+N?/},{match:/[-+]?0[0-7]+N?/},{ +match:/[-+]?[1-9][0-9]?[rR][0-9a-zA-Z]+N?/},{match:/[-+]?[0-9]+\/[0-9]+N?/},{ +match:/[-+]?[0-9]+((\.[0-9]*([eE][+-]?[0-9]+)?M?)|([eE][+-]?[0-9]+M?|M))/},{ +match:/[-+]?([1-9][0-9]*|0)N?/}]},c={scope:"character",variants:[{ +match:/\\o[0-3]?[0-7]{1,2}/},{match:/\\u[0-9a-fA-F]{4}/},{ +match:/\\(newline|space|tab|formfeed|backspace|return)/},{match:/\\\S/, +relevance:0}]},i={scope:"regex",begin:/#"/,end:/"/,contains:[e.BACKSLASH_ESCAPE] +},d=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),l={scope:"punctuation", +match:/,/,relevance:0},m=e.COMMENT(";","$",{relevance:0}),p={ +className:"literal",begin:/\b(true|false|nil)\b/},u={ +begin:"\\[|(#::?"+n+")?\\{",end:"[\\]\\}]",relevance:0},f={className:"symbol", +begin:"[:]{1,2}"+n},h={begin:"\\(",end:"\\)"},y={endsWithParent:!0,relevance:0 +},g={keywords:r,className:"name",begin:n,relevance:0,starts:y +},b=[l,h,c,i,d,m,f,u,o,p,s],v={beginKeywords:a,keywords:{$pattern:n,keyword:a}, +end:'(\\[|#|\\d|"|:|\\{|\\)|\\(|$)',contains:[{className:"title",begin:n, +relevance:0,excludeEnd:!0,endsParent:!0}].concat(b)} +;return h.contains=[v,g,y],y.contains=b,u.contains=b,{name:"Clojure", +aliases:["clj","edn"],illegal:/\S/,contains:[l,h,c,i,d,m,f,u,o,p]}}})() +;hljs.registerLanguage("clojure",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/cmake.min.js b/src/app/resources/assets/highlight/languages/cmake.min.js new file mode 100644 index 0000000..bc442a6 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/cmake.min.js @@ -0,0 +1,7 @@ +/*! `cmake` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"CMake",aliases:["cmake.in"], +case_insensitive:!0,keywords:{ +keyword:"break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined" +},contains:[{className:"variable",begin:/\$\{/,end:/\}/ +},e.COMMENT(/#\[\[/,/]]/),e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE] +})})();hljs.registerLanguage("cmake",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/coffeescript.min.js b/src/app/resources/assets/highlight/languages/coffeescript.min.js new file mode 100644 index 0000000..1b0cb47 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/coffeescript.min.js @@ -0,0 +1,29 @@ +/*! `coffeescript` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],r=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) +;return t=>{const a={ +keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((i=["var","const","let","function","static"], +e=>!i.includes(e))),literal:n.concat(["yes","no","on","off"]), +built_in:r.concat(["npm","print"])};var i;const s="[A-Za-z$_][0-9A-Za-z$_]*",o={ +className:"subst",begin:/#\{/,end:/\}/,keywords:a +},c=[t.BINARY_NUMBER_MODE,t.inherit(t.C_NUMBER_MODE,{starts:{end:"(\\s*/)?", +relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/, +contains:[t.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[t.BACKSLASH_ESCAPE] +},{begin:/"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,o]},{begin:/"/,end:/"/, +contains:[t.BACKSLASH_ESCAPE,o]}]},{className:"regexp",variants:[{begin:"///", +end:"///",contains:[o,t.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)", +relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+s +},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{ +begin:"```",end:"```"},{begin:"`",end:"`"}]}];o.contains=c +;const l=t.inherit(t.TITLE_MODE,{begin:s}),d="(\\(.*\\)\\s*)?\\B[-=]>",g={ +className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/, +end:/\)/,keywords:a,contains:["self"].concat(c)}]},u={variants:[{ +match:[/class\s+/,s,/\s+extends\s+/,s]},{match:[/class\s+/,s]}],scope:{ +2:"title.class",4:"title.class.inherited"},keywords:a};return{ +name:"CoffeeScript",aliases:["coffee","cson","iced"],keywords:a,illegal:/\/\*/, +contains:[...c,t.COMMENT("###","###"),t.HASH_COMMENT_MODE,{className:"function", +begin:"^\\s*"+s+"\\s*=\\s*"+d,end:"[-=]>",returnBegin:!0,contains:[l,g]},{ +begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:d, +end:"[-=]>",returnBegin:!0,contains:[g]}]},u,{begin:s+":",end:":", +returnBegin:!0,returnEnd:!0,relevance:0}]}}})() +;hljs.registerLanguage("coffeescript",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/coq.min.js b/src/app/resources/assets/highlight/languages/coq.min.js new file mode 100644 index 0000000..d74b4bb --- /dev/null +++ b/src/app/resources/assets/highlight/languages/coq.min.js @@ -0,0 +1,7 @@ +/*! `coq` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Coq",keywords:{ +keyword:["_|0","as","at","cofix","else","end","exists","exists2","fix","for","forall","fun","if","IF","in","let","match","mod","Prop","return","Set","then","Type","using","where","with","Abort","About","Add","Admit","Admitted","All","Arguments","Assumptions","Axiom","Back","BackTo","Backtrack","Bind","Blacklist","Canonical","Cd","Check","Class","Classes","Close","Coercion","Coercions","CoFixpoint","CoInductive","Collection","Combined","Compute","Conjecture","Conjectures","Constant","constr","Constraint","Constructors","Context","Corollary","CreateHintDb","Cut","Declare","Defined","Definition","Delimit","Dependencies","Dependent","Derive","Drop","eauto","End","Equality","Eval","Example","Existential","Existentials","Existing","Export","exporting","Extern","Extract","Extraction","Fact","Field","Fields","File","Fixpoint","Focus","for","From","Function","Functional","Generalizable","Global","Goal","Grab","Grammar","Graph","Guarded","Heap","Hint","HintDb","Hints","Hypotheses","Hypothesis","ident","Identity","If","Immediate","Implicit","Import","Include","Inductive","Infix","Info","Initial","Inline","Inspect","Instance","Instances","Intro","Intros","Inversion","Inversion_clear","Language","Left","Lemma","Let","Libraries","Library","Load","LoadPath","Local","Locate","Ltac","ML","Mode","Module","Modules","Monomorphic","Morphism","Next","NoInline","Notation","Obligation","Obligations","Opaque","Open","Optimize","Options","Parameter","Parameters","Parametric","Path","Paths","pattern","Polymorphic","Preterm","Print","Printing","Program","Projections","Proof","Proposition","Pwd","Qed","Quit","Rec","Record","Recursive","Redirect","Relation","Remark","Remove","Require","Reserved","Reset","Resolve","Restart","Rewrite","Right","Ring","Rings","Save","Scheme","Scope","Scopes","Script","Search","SearchAbout","SearchHead","SearchPattern","SearchRewrite","Section","Separate","Set","Setoid","Show","Solve","Sorted","Step","Strategies","Strategy","Structure","SubClass","Table","Tables","Tactic","Term","Test","Theorem","Time","Timeout","Transparent","Type","Typeclasses","Types","Undelimit","Undo","Unfocus","Unfocused","Unfold","Universe","Universes","Unset","Unshelve","using","Variable","Variables","Variant","Verbose","Visibility","where","with"], +built_in:["abstract","absurd","admit","after","apply","as","assert","assumption","at","auto","autorewrite","autounfold","before","bottom","btauto","by","case","case_eq","cbn","cbv","change","classical_left","classical_right","clear","clearbody","cofix","compare","compute","congruence","constr_eq","constructor","contradict","contradiction","cut","cutrewrite","cycle","decide","decompose","dependent","destruct","destruction","dintuition","discriminate","discrR","do","double","dtauto","eapply","eassumption","eauto","ecase","econstructor","edestruct","ediscriminate","eelim","eexact","eexists","einduction","einjection","eleft","elim","elimtype","enough","equality","erewrite","eright","esimplify_eq","esplit","evar","exact","exactly_once","exfalso","exists","f_equal","fail","field","field_simplify","field_simplify_eq","first","firstorder","fix","fold","fourier","functional","generalize","generalizing","gfail","give_up","has_evar","hnf","idtac","in","induction","injection","instantiate","intro","intro_pattern","intros","intuition","inversion","inversion_clear","is_evar","is_var","lapply","lazy","left","lia","lra","move","native_compute","nia","nsatz","omega","once","pattern","pose","progress","proof","psatz","quote","record","red","refine","reflexivity","remember","rename","repeat","replace","revert","revgoals","rewrite","rewrite_strat","right","ring","ring_simplify","rtauto","set","setoid_reflexivity","setoid_replace","setoid_rewrite","setoid_symmetry","setoid_transitivity","shelve","shelve_unifiable","simpl","simple","simplify_eq","solve","specialize","split","split_Rabs","split_Rmult","stepl","stepr","subst","sum","swap","symmetry","tactic","tauto","time","timeout","top","transitivity","trivial","try","tryif","unfold","unify","until","using","vm_compute","with"] +},contains:[e.QUOTE_STRING_MODE,e.COMMENT("\\(\\*","\\*\\)"),e.C_NUMBER_MODE,{ +className:"type",excludeBegin:!0,begin:"\\|\\s*",end:"\\w+"},{begin:/[-=]>/}]}) +})();hljs.registerLanguage("coq",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/cos.min.js b/src/app/resources/assets/highlight/languages/cos.min.js new file mode 100644 index 0000000..d58090e --- /dev/null +++ b/src/app/resources/assets/highlight/languages/cos.min.js @@ -0,0 +1,15 @@ +/*! `cos` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Cach\xe9 Object Script", +case_insensitive:!0,aliases:["cls"], +keywords:"property parameter class classmethod clientmethod extends as break catch close continue do d|0 else elseif for goto halt hang h|0 if job j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 tcommit throw trollback try tstart use view while write w|0 xecute x|0 zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit zsync ascii", +contains:[{className:"number",begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)",relevance:0},{ +className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""', +relevance:0}]}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{ +className:"comment",begin:/;/,end:"$",relevance:0},{className:"built_in", +begin:/(?:\$\$?|\.\.)\^?[a-zA-Z]+/},{className:"built_in", +begin:/\$\$\$[a-zA-Z]+/},{className:"built_in",begin:/%[a-z]+(?:\.[a-z]+)*/},{ +className:"symbol",begin:/\^%?[a-zA-Z][\w]*/},{className:"keyword", +begin:/##class|##super|#define|#dim/},{begin:/&sql\(/,end:/\)/,excludeBegin:!0, +excludeEnd:!0,subLanguage:"sql"},{begin:/&(js|jscript|javascript)/, +excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"},{begin:/&html<\s*\s*>/,subLanguage:"xml"}]})})();hljs.registerLanguage("cos",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/cpp.min.js b/src/app/resources/assets/highlight/languages/cpp.min.js new file mode 100644 index 0000000..62cda91 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/cpp.min.js @@ -0,0 +1,47 @@ +/*! `cpp` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t=e.regex,a=e.COMMENT("//","$",{ +contains:[{begin:/\\\n/}] +}),n="[a-zA-Z_]\\w*::",r="(?!struct)(decltype\\(auto\\)|"+t.optional(n)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",i={ +className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{ +className:"string",begin:/<.*?>/},a,e.C_BLOCK_COMMENT_MODE]},l={ +className:"title",begin:t.optional(n)+e.IDENT_RE,relevance:0 +},d=t.optional(n)+e.IDENT_RE+"\\s*\\(",u={ +type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"], +keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"], +literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"], +_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"] +},p={className:"function.dispatch",relevance:0,keywords:{ +_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"] +}, +begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/)) +},_=[p,o,i,a,e.C_BLOCK_COMMENT_MODE,c,s],m={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:_.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:_.concat(["self"]),relevance:0}]),relevance:0},g={className:"function", +begin:"("+r+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", +keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[l],relevance:0},{ +begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,c]},{ +relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u, +relevance:0,contains:[a,e.C_BLOCK_COMMENT_MODE,s,c,i,{begin:/\(/,end:/\)/, +keywords:u,relevance:0,contains:["self",a,e.C_BLOCK_COMMENT_MODE,s,c,i]}] +},i,a,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C++", +aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",i]},{begin:e.IDENT_RE+"::",keywords:u},{ +match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/], +className:{1:"keyword",3:"title.class"}}])}}})();hljs.registerLanguage("cpp",e) +})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/crmsh.min.js b/src/app/resources/assets/highlight/languages/crmsh.min.js new file mode 100644 index 0000000..afddc50 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/crmsh.min.js @@ -0,0 +1,19 @@ +/*! `crmsh` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const t="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml" +;return{name:"crmsh",aliases:["crm","pcmk"],case_insensitive:!0,keywords:{ +keyword:"params meta operations op rule attributes utilization read write deny defined not_defined in_range date spec in ref reference attribute type xpath version and or lt gt tag lte gte eq ne \\ number string", +literal:"Master Started Slave Stopped start promote demote stop monitor true false" +},contains:[e.HASH_COMMENT_MODE,{beginKeywords:"node",starts:{ +end:"\\s*([\\w_-]+:)?",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*"}} +},{beginKeywords:"primitive rsc_template",starts:{className:"title", +end:"\\s*[\\$\\w_][\\w_-]*",starts:{end:"\\s*@?[\\w_][\\w_\\.:-]*"}}},{ +begin:"\\b("+t.split(" ").join("|")+")\\s+",keywords:t,starts:{ +className:"title",end:"[\\$\\w_][\\w_-]*"}},{ +beginKeywords:"property rsc_defaults op_defaults",starts:{className:"title", +end:"\\s*([\\w_-]+:)?"}},e.QUOTE_STRING_MODE,{className:"meta", +begin:"(ocf|systemd|service|lsb):[\\w_:-]+",relevance:0},{className:"number", +begin:"\\b\\d+(\\.\\d+)?(ms|s|h|m)?",relevance:0},{className:"literal", +begin:"[-]?(infinity|inf)",relevance:0},{className:"attr", +begin:/([A-Za-z$_#][\w_-]+)=/,relevance:0},{className:"tag",begin:"",relevance:0}]}}})();hljs.registerLanguage("crmsh",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/crystal.min.js b/src/app/resources/assets/highlight/languages/crystal.min.js new file mode 100644 index 0000000..f543012 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/crystal.min.js @@ -0,0 +1,48 @@ +/*! `crystal` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n="(_?[ui](8|16|32|64|128))?",i="[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?",s="[A-Za-z_]\\w*(::\\w+)*(\\?|!)?",a={ +$pattern:"[a-zA-Z_]\\w*[!?=]?", +keyword:"abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield __DIR__ __END_LINE__ __FILE__ __LINE__", +literal:"false nil true"},t={className:"subst",begin:/#\{/,end:/\}/,keywords:a +},c={className:"template-variable",variants:[{begin:"\\{\\{",end:"\\}\\}"},{ +begin:"\\{%",end:"%\\}"}],keywords:a};function r(e,n){const i=[{begin:e,end:n}] +;return i[0].contains=i,i}const l={className:"string", +contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ +},{begin:/`/,end:/`/},{begin:"%[Qwi]?\\(",end:"\\)",contains:r("\\(","\\)")},{ +begin:"%[Qwi]?\\[",end:"\\]",contains:r("\\[","\\]")},{begin:"%[Qwi]?\\{", +end:/\}/,contains:r(/\{/,/\}/)},{begin:"%[Qwi]?<",end:">",contains:r("<",">")},{ +begin:"%[Qwi]?\\|",end:"\\|"},{begin:/<<-\w+$/,end:/^\s*\w+$/}],relevance:0},b={ +className:"string",variants:[{begin:"%q\\(",end:"\\)",contains:r("\\(","\\)")},{ +begin:"%q\\[",end:"\\]",contains:r("\\[","\\]")},{begin:"%q\\{",end:/\}/, +contains:r(/\{/,/\}/)},{begin:"%q<",end:">",contains:r("<",">")},{begin:"%q\\|", +end:"\\|"},{begin:/<<-'\w+'$/,end:/^\s*\w+$/}],relevance:0},o={ +begin:"(?!%\\})("+e.RE_STARTERS_RE+"|\\n|\\b(case|if|select|unless|until|when|while)\\b)\\s*", +keywords:"case if select unless until when while",contains:[{className:"regexp", +contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:"//[a-z]*",relevance:0},{ +begin:"/(?!\\/)",end:"/[a-z]*"}]}],relevance:0},g=[c,l,b,{className:"regexp", +contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:"%r\\(",end:"\\)", +contains:r("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:r("\\[","\\]")},{ +begin:"%r\\{",end:/\}/,contains:r(/\{/,/\}/)},{begin:"%r<",end:">", +contains:r("<",">")},{begin:"%r\\|",end:"\\|"}],relevance:0},o,{ +className:"meta",begin:"@\\[",end:"\\]", +contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"string"})]},{ +className:"variable", +begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])" +},e.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct", +end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{ +begin:s}),{begin:"<"}]},{className:"class",beginKeywords:"lib enum union", +end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{ +begin:s})]},{beginKeywords:"annotation",end:"$|;",illegal:/=/, +contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:s})],relevance:2},{ +className:"function",beginKeywords:"def",end:/\B\b/, +contains:[e.inherit(e.TITLE_MODE,{begin:i,endsParent:!0})]},{ +className:"function",beginKeywords:"fun macro",end:/\B\b/, +contains:[e.inherit(e.TITLE_MODE,{begin:i,endsParent:!0})],relevance:2},{ +className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{ +className:"symbol",begin:":",contains:[l,{begin:i}],relevance:0},{ +className:"number",variants:[{begin:"\\b0b([01_]+)"+n},{begin:"\\b0o([0-7_]+)"+n +},{begin:"\\b0x([A-Fa-f0-9_]+)"+n},{ +begin:"\\b([1-9][0-9_]*[0-9]|[0-9])(\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?(_?f(32|64))?(?!_)" +},{begin:"\\b([1-9][0-9_]*|0)"+n}],relevance:0}] +;return t.contains=g,c.contains=g.slice(1),{name:"Crystal",aliases:["cr"], +keywords:a,contains:g}}})();hljs.registerLanguage("crystal",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/csharp.min.js b/src/app/resources/assets/highlight/languages/csharp.min.js new file mode 100644 index 0000000..b5565ec --- /dev/null +++ b/src/app/resources/assets/highlight/languages/csharp.min.js @@ -0,0 +1,47 @@ +/*! `csharp` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={ +keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]), +built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"], +literal:["default","false","null","true"]},a=e.inherit(e.TITLE_MODE,{ +begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{ +begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}] +},t=e.inherit(s,{illegal:/\n/}),r={className:"subst",begin:/\{/,end:/\}/, +keywords:n},l=e.inherit(r,{illegal:/\n/}),c={className:"string",begin:/\$"/, +end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/ +},e.BACKSLASH_ESCAPE,l]},o={className:"string",begin:/\$@"/,end:'"',contains:[{ +begin:/\{\{/},{begin:/\}\}/},{begin:'""'},r]},d=e.inherit(o,{illegal:/\n/, +contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]}) +;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE], +l.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{ +illegal:/\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},a] +},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={ +begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"], +keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0, +contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{ +begin:"\x3c!--|--\x3e"},{begin:""}]}] +}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#", +end:"$",keywords:{ +keyword:"if else elif endif define undef warning error line region endregion pragma checksum" +}},g,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/, +illegal:/[^\s:,]/,contains:[{beginKeywords:"where class" +},a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace", +relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta", +begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{ +className:"string",begin:/"/,end:/"/}]},{ +beginKeywords:"new return throw await else",relevance:0},{className:"function", +begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, +end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{ +beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial", +relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, +contains:[e.TITLE_MODE,E],relevance:0},{match:/\(\)/},{className:"params", +begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0, +contains:[g,i,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})() +;hljs.registerLanguage("csharp",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/csp.min.js b/src/app/resources/assets/highlight/languages/csp.min.js new file mode 100644 index 0000000..5468adc --- /dev/null +++ b/src/app/resources/assets/highlight/languages/csp.min.js @@ -0,0 +1,7 @@ +/*! `csp` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var s=(()=>{"use strict";return s=>({name:"CSP",case_insensitive:!1, +keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_-]*", +keyword:["base-uri","child-src","connect-src","default-src","font-src","form-action","frame-ancestors","frame-src","img-src","manifest-src","media-src","object-src","plugin-types","report-uri","sandbox","script-src","style-src","trusted-types","unsafe-hashes","worker-src"] +},contains:[{className:"string",begin:"'",end:"'"},{className:"attribute", +begin:"^Content",end:":",excludeEnd:!0}]})})();hljs.registerLanguage("csp",s) +})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/css.min.js b/src/app/resources/assets/highlight/languages/css.min.js new file mode 100644 index 0000000..b8b4cbc --- /dev/null +++ b/src/app/resources/assets/highlight/languages/css.min.js @@ -0,0 +1,31 @@ +/*! `css` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],i=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],r=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],t=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse() +;return n=>{const a=n.regex,l=(e=>({IMPORTANT:{scope:"meta",begin:"!important"}, +BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number", +begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{ +className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{ +scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/} +}))(n),s=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS", +case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"}, +classNameAliases:{keyframePosition:"selector-tag"},contains:[l.BLOCK_COMMENT,{ +begin:/-(webkit|moz|ms|o)-(?=[a-z])/},l.CSS_NUMBER_MODE,{ +className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{ +className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 +},l.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ +begin:":("+r.join("|")+")"},{begin:":(:)?("+t.join("|")+")"}]},l.CSS_VARIABLE,{ +className:"attribute",begin:"\\b("+o.join("|")+")\\b"},{begin:/:/,end:/[;}{]/, +contains:[l.BLOCK_COMMENT,l.HEXCOLOR,l.IMPORTANT,l.CSS_NUMBER_MODE,...s,{ +begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" +},contains:[...s,{className:"string",begin:/[^)]/,endsWithParent:!0, +excludeEnd:!0}]},l.FUNCTION_DISPATCH]},{begin:a.lookahead(/@/),end:"[{;]", +relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/ +},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{ +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:i.join(" ")},contains:[{ +begin:/[a-z-]+(?=:)/,className:"attribute"},...s,l.CSS_NUMBER_MODE]}]},{ +className:"selector-tag",begin:"\\b("+e.join("|")+")\\b"}]}}})() +;hljs.registerLanguage("css",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/d.min.js b/src/app/resources/assets/highlight/languages/d.min.js new file mode 100644 index 0000000..243dedd --- /dev/null +++ b/src/app/resources/assets/highlight/languages/d.min.js @@ -0,0 +1,20 @@ +/*! `d` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a={ +$pattern:e.UNDERSCORE_IDENT_RE, +keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__", +built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring", +literal:"false null true" +},d="((0|[1-9][\\d_]*)|0[bB][01_]+|0[xX]([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))",n="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",t={ +className:"number",begin:"\\b"+d+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},_={ +className:"number", +begin:"\\b(((0[xX](([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)\\.([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)|\\.?([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))[pP][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))|((0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(\\.\\d*|([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)))|\\d+\\.(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)|\\.(0|[1-9][\\d_]*)([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))?))([fF]|L|i|[fF]i|Li)?|"+d+"(i|[fF]i|Li))", +relevance:0},r={className:"string",begin:"'("+n+"|.)",end:"'",illegal:"."},i={ +className:"string",begin:'"',contains:[{begin:n,relevance:0}],end:'"[cwd]?' +},s=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{ +name:"D",keywords:a,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,{ +className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},i,{ +className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},{className:"string", +begin:"`",end:"`[cwd]?"},{className:"string",begin:'q"\\{',end:'\\}"'},_,t,r,{ +className:"meta",begin:"^#!",end:"$",relevance:5},{className:"meta", +begin:"#(line)",end:"$",relevance:5},{className:"keyword", +begin:"@[a-zA-Z_][a-zA-Z_\\d]*"}]}}})();hljs.registerLanguage("d",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/dart.min.js b/src/app/resources/assets/highlight/languages/dart.min.js new file mode 100644 index 0000000..914360b --- /dev/null +++ b/src/app/resources/assets/highlight/languages/dart.min.js @@ -0,0 +1,22 @@ +/*! `dart` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={className:"subst",variants:[{ +begin:"\\$[A-Za-z0-9_]+"}]},a={className:"subst",variants:[{begin:/\$\{/, +end:/\}/}],keywords:"true false null this is new super"},t={className:"string", +variants:[{begin:"r'''",end:"'''"},{begin:'r"""',end:'"""'},{begin:"r'",end:"'", +illegal:"\\n"},{begin:'r"',end:'"',illegal:"\\n"},{begin:"'''",end:"'''", +contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:'"""',end:'"""', +contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:"'",end:"'",illegal:"\\n", +contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:'"',end:'"',illegal:"\\n", +contains:[e.BACKSLASH_ESCAPE,n,a]}]};a.contains=[e.C_NUMBER_MODE,t] +;const i=["Comparable","DateTime","Duration","Function","Iterable","Iterator","List","Map","Match","Object","Pattern","RegExp","Set","Stopwatch","String","StringBuffer","StringSink","Symbol","Type","Uri","bool","double","int","num","Element","ElementList"],r=i.map((e=>e+"?")) +;return{name:"Dart",keywords:{ +keyword:["abstract","as","assert","async","await","break","case","catch","class","const","continue","covariant","default","deferred","do","dynamic","else","enum","export","extends","extension","external","factory","false","final","finally","for","Function","get","hide","if","implements","import","in","inferface","is","late","library","mixin","new","null","on","operator","part","required","rethrow","return","set","show","static","super","switch","sync","this","throw","true","try","typedef","var","void","while","with","yield"], +built_in:i.concat(r).concat(["Never","Null","dynamic","print","document","querySelector","querySelectorAll","window"]), +$pattern:/[A-Za-z][A-Za-z0-9_]*\??/}, +contains:[t,e.COMMENT(/\/\*\*(?!\/)/,/\*\//,{subLanguage:"markdown",relevance:0 +}),e.COMMENT(/\/{3,} ?/,/$/,{contains:[{subLanguage:"markdown",begin:".", +end:"$",relevance:0}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{ +className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0, +contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE] +},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{begin:"=>"}]}}})() +;hljs.registerLanguage("dart",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/delphi.min.js b/src/app/resources/assets/highlight/languages/delphi.min.js new file mode 100644 index 0000000..adff60c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/delphi.min.js @@ -0,0 +1,17 @@ +/*! `delphi` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const r=["exports","register","file","shl","array","record","property","for","mod","while","set","ally","label","uses","raise","not","stored","class","safecall","var","interface","or","private","static","exit","index","inherited","to","else","stdcall","override","shr","asm","far","resourcestring","finalization","packed","virtual","out","and","protected","library","do","xorwrite","goto","near","function","end","div","overload","object","unit","begin","string","on","inline","repeat","until","destructor","write","message","program","with","read","initialization","except","default","nil","if","case","cdecl","in","downto","threadvar","of","try","pascal","const","external","constructor","type","public","then","implementation","finally","published","procedure","absolute","reintroduce","operator","as","is","abstract","alias","assembler","bitpacked","break","continue","cppdecl","cvar","enumerator","experimental","platform","deprecated","unimplemented","dynamic","export","far16","forward","generic","helper","implements","interrupt","iochecks","local","name","nodefault","noreturn","nostackframe","oldfpccall","otherwise","saveregisters","softfloat","specialize","strict","unaligned","varargs"],a=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{ +relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],t={className:"meta", +variants:[{begin:/\{\$/,end:/\}/},{begin:/\(\*\$/,end:/\*\)/}]},n={ +className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},i={ +className:"string",begin:/(#\d+)+/},s={begin:e.IDENT_RE+"\\s*=\\s*class\\s*\\(", +returnBegin:!0,contains:[e.TITLE_MODE]},c={className:"function", +beginKeywords:"function constructor destructor procedure",end:/[:;]/, +keywords:"function constructor|10 destructor|10 procedure|10", +contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:r, +contains:[n,i,t].concat(a)},t].concat(a)};return{name:"Delphi", +aliases:["dpr","dfm","pas","pascal"],case_insensitive:!0,keywords:r, +illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[n,i,e.NUMBER_MODE,{ +className:"number",relevance:0,variants:[{begin:"\\$[0-9A-Fa-f]+"},{ +begin:"&[0-7]+"},{begin:"%[01]+"}]},s,c,t].concat(a)}}})() +;hljs.registerLanguage("delphi",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/diff.min.js b/src/app/resources/assets/highlight/languages/diff.min.js new file mode 100644 index 0000000..75c3c22 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/diff.min.js @@ -0,0 +1,9 @@ +/*! `diff` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex;return{name:"Diff", +aliases:["patch"],contains:[{className:"meta",relevance:10, +match:a.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/) +},{className:"comment",variants:[{ +begin:a.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/), +end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{ +className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/, +end:/$/}]}}})();hljs.registerLanguage("diff",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/django.min.js b/src/app/resources/assets/highlight/languages/django.min.js new file mode 100644 index 0000000..141fd90 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/django.min.js @@ -0,0 +1,13 @@ +/*! `django` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t={begin:/\|[A-Za-z]+:?/, +keywords:{ +name:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone" +},contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE]};return{name:"Django", +aliases:["jinja"],case_insensitive:!0,subLanguage:"xml", +contains:[e.COMMENT(/\{%\s*comment\s*%\}/,/\{%\s*endcomment\s*%\}/),e.COMMENT(/\{#/,/#\}/),{ +className:"template-tag",begin:/\{%/,end:/%\}/,contains:[{className:"name", +begin:/\w+/,keywords:{ +name:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim" +},starts:{endsWithParent:!0,keywords:"in by as",contains:[t],relevance:0}}]},{ +className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[t]}]}}})() +;hljs.registerLanguage("django",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/dns.min.js b/src/app/resources/assets/highlight/languages/dns.min.js new file mode 100644 index 0000000..537a2a7 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/dns.min.js @@ -0,0 +1,11 @@ +/*! `dns` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var d=(()=>{"use strict";return d=>({name:"DNS Zone", +aliases:["bind","zone"], +keywords:["IN","A","AAAA","AFSDB","APL","CAA","CDNSKEY","CDS","CERT","CNAME","DHCID","DLV","DNAME","DNSKEY","DS","HIP","IPSECKEY","KEY","KX","LOC","MX","NAPTR","NS","NSEC","NSEC3","NSEC3PARAM","PTR","RRSIG","RP","SIG","SOA","SRV","SSHFP","TA","TKEY","TLSA","TSIG","TXT"], +contains:[d.COMMENT(";","$",{relevance:0}),{className:"meta", +begin:/^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/},{className:"number", +begin:"((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b" +},{className:"number", +begin:"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b" +},d.inherit(d.NUMBER_MODE,{begin:/\b\d+[dhwm]?/})]})})() +;hljs.registerLanguage("dns",d)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/dockerfile.min.js b/src/app/resources/assets/highlight/languages/dockerfile.min.js new file mode 100644 index 0000000..7edf14c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/dockerfile.min.js @@ -0,0 +1,8 @@ +/*! `dockerfile` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Dockerfile",aliases:["docker"], +case_insensitive:!0, +keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"], +contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{ +beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell", +starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"{var e=(()=>{"use strict";return e=>{const r=e.COMMENT(/^\s*@?rem\b/,/$/,{ +relevance:10});return{name:"Batch file (DOS)",aliases:["bat","cmd"], +case_insensitive:!0,illegal:/\/\*/,keywords:{ +keyword:["if","else","goto","for","in","do","call","exit","not","exist","errorlevel","defined","equ","neq","lss","leq","gtr","geq"], +built_in:["prn","nul","lpt3","lpt2","lpt1","con","com4","com3","com2","com1","aux","shift","cd","dir","echo","setlocal","endlocal","set","pause","copy","append","assoc","at","attrib","break","cacls","cd","chcp","chdir","chkdsk","chkntfs","cls","cmd","color","comp","compact","convert","date","dir","diskcomp","diskcopy","doskey","erase","fs","find","findstr","format","ftype","graftabl","help","keyb","label","md","mkdir","mode","more","move","path","pause","print","popd","pushd","promt","rd","recover","rem","rename","replace","restore","rmdir","shift","sort","start","subst","time","title","tree","type","ver","verify","vol","ping","net","ipconfig","taskkill","xcopy","ren","del"] +},contains:[{className:"variable",begin:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{ +className:"function",begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)", +end:"goto:eof",contains:[e.inherit(e.TITLE_MODE,{ +begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),r]},{ +className:"number",begin:"\\b\\d+",relevance:0},r]}}})() +;hljs.registerLanguage("dos",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/dsconfig.min.js b/src/app/resources/assets/highlight/languages/dsconfig.min.js new file mode 100644 index 0000000..33ae980 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/dsconfig.min.js @@ -0,0 +1,9 @@ +/*! `dsconfig` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({keywords:"dsconfig",contains:[{ +className:"keyword",begin:"^dsconfig",end:/\s/,excludeEnd:!0,relevance:10},{ +className:"built_in",begin:/(list|create|get|set|delete)-(\w+)/,end:/\s/, +excludeEnd:!0,illegal:"!@#$%^&*()",relevance:10},{className:"built_in", +begin:/--(\w+)/,end:/\s/,excludeEnd:!0},{className:"string",begin:/"/,end:/"/},{ +className:"string",begin:/'/,end:/'/},{className:"string",begin:/[\w\-?]+:\w+/, +end:/\W/,relevance:0},{className:"string",begin:/\w+(\-\w+)*/,end:/(?=\W)/, +relevance:0},e.HASH_COMMENT_MODE]})})();hljs.registerLanguage("dsconfig",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/dts.min.js b/src/app/resources/assets/highlight/languages/dts.min.js new file mode 100644 index 0000000..36d09df --- /dev/null +++ b/src/app/resources/assets/highlight/languages/dts.min.js @@ -0,0 +1,22 @@ +/*! `dts` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a={className:"string", +variants:[e.inherit(e.QUOTE_STRING_MODE,{begin:'((u8?|U)|L)?"'}),{ +begin:'(u8?|U)?R"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{begin:"'\\\\?.", +end:"'",illegal:"."}]},n={className:"number",variants:[{ +begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},{begin:e.C_NUMBER_RE}], +relevance:0},s={className:"meta",begin:"#",end:"$",keywords:{ +keyword:"if else elif endif define undef ifdef ifndef"},contains:[{begin:/\\\n/, +relevance:0},{beginKeywords:"include",end:"$",keywords:{keyword:"include"}, +contains:[e.inherit(a,{className:"string"}),{className:"string",begin:"<", +end:">",illegal:"\\n"}]},a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},i={ +className:"variable",begin:/&[a-z\d_]*\b/};return{name:"Device Tree",contains:[{ +className:"title.class",begin:/^\/(?=\s*\{)/,relevance:10},i,{ +className:"keyword",begin:"/[a-z][a-z\\d-]*/"},{className:"symbol", +begin:"^\\s*[a-zA-Z_][a-zA-Z\\d_]*:"},{className:"title.class", +begin:/[a-zA-Z_][a-zA-Z\d_@-]*(?=\s\{)/,relevance:.2},{relevance:0, +match:[/[a-z][a-z-,]+/,/\s*/,/=/],scope:{1:"attr",3:"operator"}},{ +match:/[a-z][a-z-,]+(?=;)/,relevance:0,scope:"attr"},{className:"params", +relevance:0,begin:"<",end:">",contains:[n,i] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,a,s,{scope:"punctuation", +relevance:0,match:/\};|[;{}]/},{begin:e.IDENT_RE+"::",keywords:""}]}}})() +;hljs.registerLanguage("dts",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/dust.min.js b/src/app/resources/assets/highlight/languages/dust.min.js new file mode 100644 index 0000000..2f85e8d --- /dev/null +++ b/src/app/resources/assets/highlight/languages/dust.min.js @@ -0,0 +1,8 @@ +/*! `dust` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Dust",aliases:["dst"], +case_insensitive:!0,subLanguage:"xml",contains:[{className:"template-tag", +begin:/\{[#\/]/,end:/\}/,illegal:/;/,contains:[{className:"name", +begin:/[a-zA-Z\.-]+/,starts:{endsWithParent:!0,relevance:0, +contains:[e.QUOTE_STRING_MODE]}}]},{className:"template-variable",begin:/\{/, +end:/\}/,illegal:/;/,keywords:"if eq ne lt lte gt gte select default math sep"}] +})})();hljs.registerLanguage("dust",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/ebnf.min.js b/src/app/resources/assets/highlight/languages/ebnf.min.js new file mode 100644 index 0000000..3ff1f07 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/ebnf.min.js @@ -0,0 +1,7 @@ +/*! `ebnf` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=e.COMMENT(/\(\*/,/\*\)/) +;return{name:"Extended Backus-Naur Form",illegal:/\S/,contains:[a,{ +className:"attribute",begin:/^[ ]*[a-zA-Z]+([\s_-]+[a-zA-Z]+)*/},{begin:/=/, +end:/[.;]/,contains:[a,{className:"meta",begin:/\?.*\?/},{className:"string", +variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"`",end:"`"}]}]}]}}})() +;hljs.registerLanguage("ebnf",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/elixir.min.js b/src/app/resources/assets/highlight/languages/elixir.min.js new file mode 100644 index 0000000..3357af8 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/elixir.min.js @@ -0,0 +1,34 @@ +/*! `elixir` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,a="[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?",i={$pattern:a, +keyword:["after","alias","and","case","catch","cond","defstruct","defguard","do","else","end","fn","for","if","import","in","not","or","quote","raise","receive","require","reraise","rescue","try","unless","unquote","unquote_splicing","use","when","with|0"], +literal:["false","nil","true"]},s={className:"subst",begin:/#\{/,end:/\}/, +keywords:i},c={match:/\\[\s\S]/,scope:"char.escape",relevance:0},r=[{begin:/"/, +end:/"/},{begin:/'/,end:/'/},{begin:/\//,end:/\//},{begin:/\|/,end:/\|/},{ +begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/},{begin:/\{/,end:/\}/},{begin://}],t=e=>({scope:"char.escape",begin:n.concat(/\\/,e),relevance:0}),d={ +className:"string",begin:"~[a-z](?=[/|([{<\"'])", +contains:r.map((n=>e.inherit(n,{contains:[t(n.end),c,s]})))},o={ +className:"string",begin:"~[A-Z](?=[/|([{<\"'])", +contains:r.map((n=>e.inherit(n,{contains:[t(n.end)]})))},b={className:"regex", +variants:[{begin:"~r(?=[/|([{<\"'])",contains:r.map((a=>e.inherit(a,{ +end:n.concat(a.end,/[uismxfU]{0,7}/),contains:[t(a.end),c,s]})))},{ +begin:"~R(?=[/|([{<\"'])",contains:r.map((a=>e.inherit(a,{ +end:n.concat(a.end,/[uismxfU]{0,7}/),contains:[t(a.end)]})))}]},g={ +className:"string",contains:[e.BACKSLASH_ESCAPE,s],variants:[{begin:/"""/, +end:/"""/},{begin:/'''/,end:/'''/},{begin:/~S"""/,end:/"""/,contains:[]},{ +begin:/~S"/,end:/"/,contains:[]},{begin:/~S'''/,end:/'''/,contains:[]},{ +begin:/~S'/,end:/'/,contains:[]},{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},l={ +className:"function",beginKeywords:"def defp defmacro defmacrop",end:/\B\b/, +contains:[e.inherit(e.TITLE_MODE,{begin:a,endsParent:!0})]},m=e.inherit(l,{ +className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord", +end:/\bdo\b|$|;/}),u=[g,b,o,d,e.HASH_COMMENT_MODE,m,l,{begin:"::"},{ +className:"symbol",begin:":(?![\\s:])",contains:[g,{ +begin:"[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?" +}],relevance:0},{className:"symbol",begin:a+":(?!:)",relevance:0},{ +className:"title.class",begin:/(\b[A-Z][a-zA-Z0-9_]+)/,relevance:0},{ +className:"number", +begin:"(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[0-9][0-9_]*(\\.[0-9_]+([eE][-+]?[0-9]+)?)?)", +relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))"}] +;return s.contains=u,{name:"Elixir",aliases:["ex","exs"],keywords:i,contains:u}} +})();hljs.registerLanguage("elixir",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/elm.min.js b/src/app/resources/assets/highlight/languages/elm.min.js new file mode 100644 index 0000000..01b3329 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/elm.min.js @@ -0,0 +1,18 @@ +/*! `elm` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={ +variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},i={ +className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},s={begin:"\\(",end:"\\)", +illegal:'"',contains:[{className:"type", +begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},n]};return{name:"Elm", +keywords:["let","in","if","then","else","case","of","where","module","import","exposing","type","alias","as","infix","infixl","infixr","port","effect","command","subscription"], +contains:[{beginKeywords:"port effect module",end:"exposing", +keywords:"port effect module where command subscription exposing", +contains:[s,n],illegal:"\\W\\.|;"},{begin:"import",end:"$", +keywords:"import as exposing",contains:[s,n],illegal:"\\W\\.|;"},{begin:"type", +end:"$",keywords:"type alias",contains:[i,s,{begin:/\{/,end:/\}/, +contains:s.contains},n]},{beginKeywords:"infix infixl infixr",end:"$", +contains:[e.C_NUMBER_MODE,n]},{begin:"port",end:"$",keywords:"port",contains:[n] +},{className:"string",begin:"'\\\\?.",end:"'",illegal:"." +},e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,i,e.inherit(e.TITLE_MODE,{ +begin:"^[_a-z][\\w']*"}),n,{begin:"->|<-"}],illegal:/;/}}})() +;hljs.registerLanguage("elm",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/erb.min.js b/src/app/resources/assets/highlight/languages/erb.min.js new file mode 100644 index 0000000..913c414 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/erb.min.js @@ -0,0 +1,5 @@ +/*! `erb` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"ERB",subLanguage:"xml", +contains:[e.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>", +subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]})})() +;hljs.registerLanguage("erb",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/erlang-repl.min.js b/src/app/resources/assets/highlight/languages/erlang-repl.min.js new file mode 100644 index 0000000..703421e --- /dev/null +++ b/src/app/resources/assets/highlight/languages/erlang-repl.min.js @@ -0,0 +1,13 @@ +/*! `erlang-repl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex;return{ +name:"Erlang REPL",keywords:{built_in:"spawn spawn_link self", +keyword:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor" +},contains:[{className:"meta.prompt",begin:"^[0-9]+> ",relevance:10 +},e.COMMENT("%","$"),{className:"number", +begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)", +relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ +begin:n.concat(/\?(::)?/,/([A-Z]\w*)/,/((::)[A-Z]\w*)*/)},{begin:"->"},{ +begin:"ok"},{begin:"!"},{ +begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)", +relevance:0},{begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}})() +;hljs.registerLanguage("erlang-repl",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/erlang.min.js b/src/app/resources/assets/highlight/languages/erlang.min.js new file mode 100644 index 0000000..a21b6e2 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/erlang.min.js @@ -0,0 +1,27 @@ +/*! `erlang` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n="[a-z'][a-zA-Z0-9_']*",r="("+n+":"+n+"|"+n+")",a={ +keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor", +literal:"false true"},i=e.COMMENT("%","$"),s={className:"number", +begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)", +relevance:0},c={begin:"fun\\s+"+n+"/\\d+"},t={begin:r+"\\(",end:"\\)", +returnBegin:!0,relevance:0,contains:[{begin:r,relevance:0},{begin:"\\(", +end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},d={begin:/\{/,end:/\}/, +relevance:0},o={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},l={ +begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},b={begin:"#"+e.UNDERSCORE_IDENT_RE, +relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE, +relevance:0},{begin:/\{/,end:/\}/,relevance:0}]},g={ +beginKeywords:"fun receive if try case",end:"end",keywords:a} +;g.contains=[i,c,e.inherit(e.APOS_STRING_MODE,{className:"" +}),g,t,e.QUOTE_STRING_MODE,s,d,o,l,b] +;const E=[i,c,g,t,e.QUOTE_STRING_MODE,s,d,o,l,b] +;t.contains[1].contains=E,d.contains=E,b.contains[1].contains=E;const u={ +className:"params",begin:"\\(",end:"\\)",contains:E};return{name:"Erlang", +aliases:["erl"],keywords:a,illegal:"(",returnBegin:!0, +illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[u,e.inherit(e.TITLE_MODE,{begin:n})], +starts:{end:";|\\.",keywords:a,contains:E}},i,{begin:"^-",end:"\\.",relevance:0, +excludeEnd:!0,returnBegin:!0,keywords:{$pattern:"-"+e.IDENT_RE, +keyword:["-module","-record","-undef","-export","-ifdef","-ifndef","-author","-copyright","-doc","-vsn","-import","-include","-include_lib","-compile","-define","-else","-endif","-file","-behaviour","-behavior","-spec"].map((e=>e+"|1.5")).join(" ") +},contains:[u]},s,e.QUOTE_STRING_MODE,b,o,l,d,{begin:/\.$/}]}}})() +;hljs.registerLanguage("erlang",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/excel.min.js b/src/app/resources/assets/highlight/languages/excel.min.js new file mode 100644 index 0000000..22bfe54 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/excel.min.js @@ -0,0 +1,10 @@ +/*! `excel` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var E=(()=>{"use strict";return E=>({name:"Excel formulae", +aliases:["xlsx","xls"],case_insensitive:!0,keywords:{$pattern:/[a-zA-Z][\w\.]*/, +built_in:["ABS","ACCRINT","ACCRINTM","ACOS","ACOSH","ACOT","ACOTH","AGGREGATE","ADDRESS","AMORDEGRC","AMORLINC","AND","ARABIC","AREAS","ASC","ASIN","ASINH","ATAN","ATAN2","ATANH","AVEDEV","AVERAGE","AVERAGEA","AVERAGEIF","AVERAGEIFS","BAHTTEXT","BASE","BESSELI","BESSELJ","BESSELK","BESSELY","BETADIST","BETA.DIST","BETAINV","BETA.INV","BIN2DEC","BIN2HEX","BIN2OCT","BINOMDIST","BINOM.DIST","BINOM.DIST.RANGE","BINOM.INV","BITAND","BITLSHIFT","BITOR","BITRSHIFT","BITXOR","CALL","CEILING","CEILING.MATH","CEILING.PRECISE","CELL","CHAR","CHIDIST","CHIINV","CHITEST","CHISQ.DIST","CHISQ.DIST.RT","CHISQ.INV","CHISQ.INV.RT","CHISQ.TEST","CHOOSE","CLEAN","CODE","COLUMN","COLUMNS","COMBIN","COMBINA","COMPLEX","CONCAT","CONCATENATE","CONFIDENCE","CONFIDENCE.NORM","CONFIDENCE.T","CONVERT","CORREL","COS","COSH","COT","COTH","COUNT","COUNTA","COUNTBLANK","COUNTIF","COUNTIFS","COUPDAYBS","COUPDAYS","COUPDAYSNC","COUPNCD","COUPNUM","COUPPCD","COVAR","COVARIANCE.P","COVARIANCE.S","CRITBINOM","CSC","CSCH","CUBEKPIMEMBER","CUBEMEMBER","CUBEMEMBERPROPERTY","CUBERANKEDMEMBER","CUBESET","CUBESETCOUNT","CUBEVALUE","CUMIPMT","CUMPRINC","DATE","DATEDIF","DATEVALUE","DAVERAGE","DAY","DAYS","DAYS360","DB","DBCS","DCOUNT","DCOUNTA","DDB","DEC2BIN","DEC2HEX","DEC2OCT","DECIMAL","DEGREES","DELTA","DEVSQ","DGET","DISC","DMAX","DMIN","DOLLAR","DOLLARDE","DOLLARFR","DPRODUCT","DSTDEV","DSTDEVP","DSUM","DURATION","DVAR","DVARP","EDATE","EFFECT","ENCODEURL","EOMONTH","ERF","ERF.PRECISE","ERFC","ERFC.PRECISE","ERROR.TYPE","EUROCONVERT","EVEN","EXACT","EXP","EXPON.DIST","EXPONDIST","FACT","FACTDOUBLE","FALSE|0","F.DIST","FDIST","F.DIST.RT","FILTERXML","FIND","FINDB","F.INV","F.INV.RT","FINV","FISHER","FISHERINV","FIXED","FLOOR","FLOOR.MATH","FLOOR.PRECISE","FORECAST","FORECAST.ETS","FORECAST.ETS.CONFINT","FORECAST.ETS.SEASONALITY","FORECAST.ETS.STAT","FORECAST.LINEAR","FORMULATEXT","FREQUENCY","F.TEST","FTEST","FV","FVSCHEDULE","GAMMA","GAMMA.DIST","GAMMADIST","GAMMA.INV","GAMMAINV","GAMMALN","GAMMALN.PRECISE","GAUSS","GCD","GEOMEAN","GESTEP","GETPIVOTDATA","GROWTH","HARMEAN","HEX2BIN","HEX2DEC","HEX2OCT","HLOOKUP","HOUR","HYPERLINK","HYPGEOM.DIST","HYPGEOMDIST","IF","IFERROR","IFNA","IFS","IMABS","IMAGINARY","IMARGUMENT","IMCONJUGATE","IMCOS","IMCOSH","IMCOT","IMCSC","IMCSCH","IMDIV","IMEXP","IMLN","IMLOG10","IMLOG2","IMPOWER","IMPRODUCT","IMREAL","IMSEC","IMSECH","IMSIN","IMSINH","IMSQRT","IMSUB","IMSUM","IMTAN","INDEX","INDIRECT","INFO","INT","INTERCEPT","INTRATE","IPMT","IRR","ISBLANK","ISERR","ISERROR","ISEVEN","ISFORMULA","ISLOGICAL","ISNA","ISNONTEXT","ISNUMBER","ISODD","ISREF","ISTEXT","ISO.CEILING","ISOWEEKNUM","ISPMT","JIS","KURT","LARGE","LCM","LEFT","LEFTB","LEN","LENB","LINEST","LN","LOG","LOG10","LOGEST","LOGINV","LOGNORM.DIST","LOGNORMDIST","LOGNORM.INV","LOOKUP","LOWER","MATCH","MAX","MAXA","MAXIFS","MDETERM","MDURATION","MEDIAN","MID","MIDBs","MIN","MINIFS","MINA","MINUTE","MINVERSE","MIRR","MMULT","MOD","MODE","MODE.MULT","MODE.SNGL","MONTH","MROUND","MULTINOMIAL","MUNIT","N","NA","NEGBINOM.DIST","NEGBINOMDIST","NETWORKDAYS","NETWORKDAYS.INTL","NOMINAL","NORM.DIST","NORMDIST","NORMINV","NORM.INV","NORM.S.DIST","NORMSDIST","NORM.S.INV","NORMSINV","NOT","NOW","NPER","NPV","NUMBERVALUE","OCT2BIN","OCT2DEC","OCT2HEX","ODD","ODDFPRICE","ODDFYIELD","ODDLPRICE","ODDLYIELD","OFFSET","OR","PDURATION","PEARSON","PERCENTILE.EXC","PERCENTILE.INC","PERCENTILE","PERCENTRANK.EXC","PERCENTRANK.INC","PERCENTRANK","PERMUT","PERMUTATIONA","PHI","PHONETIC","PI","PMT","POISSON.DIST","POISSON","POWER","PPMT","PRICE","PRICEDISC","PRICEMAT","PROB","PRODUCT","PROPER","PV","QUARTILE","QUARTILE.EXC","QUARTILE.INC","QUOTIENT","RADIANS","RAND","RANDBETWEEN","RANK.AVG","RANK.EQ","RANK","RATE","RECEIVED","REGISTER.ID","REPLACE","REPLACEB","REPT","RIGHT","RIGHTB","ROMAN","ROUND","ROUNDDOWN","ROUNDUP","ROW","ROWS","RRI","RSQ","RTD","SEARCH","SEARCHB","SEC","SECH","SECOND","SERIESSUM","SHEET","SHEETS","SIGN","SIN","SINH","SKEW","SKEW.P","SLN","SLOPE","SMALL","SQL.REQUEST","SQRT","SQRTPI","STANDARDIZE","STDEV","STDEV.P","STDEV.S","STDEVA","STDEVP","STDEVPA","STEYX","SUBSTITUTE","SUBTOTAL","SUM","SUMIF","SUMIFS","SUMPRODUCT","SUMSQ","SUMX2MY2","SUMX2PY2","SUMXMY2","SWITCH","SYD","T","TAN","TANH","TBILLEQ","TBILLPRICE","TBILLYIELD","T.DIST","T.DIST.2T","T.DIST.RT","TDIST","TEXT","TEXTJOIN","TIME","TIMEVALUE","T.INV","T.INV.2T","TINV","TODAY","TRANSPOSE","TREND","TRIM","TRIMMEAN","TRUE|0","TRUNC","T.TEST","TTEST","TYPE","UNICHAR","UNICODE","UPPER","VALUE","VAR","VAR.P","VAR.S","VARA","VARP","VARPA","VDB","VLOOKUP","WEBSERVICE","WEEKDAY","WEEKNUM","WEIBULL","WEIBULL.DIST","WORKDAY","WORKDAY.INTL","XIRR","XNPV","XOR","YEAR","YEARFRAC","YIELD","YIELDDISC","YIELDMAT","Z.TEST","ZTEST"] +},contains:[{begin:/^=/,end:/[^=]/,returnEnd:!0,illegal:/=/,relevance:10},{ +className:"symbol",begin:/\b[A-Z]{1,2}\d+\b/,end:/[^\d]/,excludeEnd:!0, +relevance:0},{className:"symbol",begin:/[A-Z]{0,2}\d*:[A-Z]{0,2}\d*/,relevance:0 +},E.BACKSLASH_ESCAPE,E.QUOTE_STRING_MODE,{className:"number", +begin:E.NUMBER_RE+"(%)?",relevance:0},E.COMMENT(/\bN\(/,/\)/,{excludeBegin:!0, +excludeEnd:!0,illegal:/\n/})]})})();hljs.registerLanguage("excel",E)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/fix.min.js b/src/app/resources/assets/highlight/languages/fix.min.js new file mode 100644 index 0000000..55a368a --- /dev/null +++ b/src/app/resources/assets/highlight/languages/fix.min.js @@ -0,0 +1,7 @@ +/*! `fix` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"FIX",contains:[{ +begin:/[^\u2401\u0001]+/,end:/[\u2401\u0001]/,excludeEnd:!0,returnBegin:!0, +returnEnd:!1,contains:[{begin:/([^\u2401\u0001=]+)/,end:/=([^\u2401\u0001=]+)/, +returnEnd:!0,returnBegin:!1,className:"attr"},{begin:/=/,end:/([\u2401\u0001])/, +excludeEnd:!0,excludeBegin:!0,className:"string"}]}],case_insensitive:!0})})() +;hljs.registerLanguage("fix",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/flix.min.js b/src/app/resources/assets/highlight/languages/flix.min.js new file mode 100644 index 0000000..f2a4923 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/flix.min.js @@ -0,0 +1,10 @@ +/*! `flix` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Flix",keywords:{ +keyword:["case","class","def","else","enum","if","impl","import","in","lat","rel","index","let","match","namespace","switch","type","yield","with"], +literal:["true","false"]}, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string", +begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},{className:"string",variants:[{begin:'"', +end:'"'}]},{className:"function",beginKeywords:"def",end:/[:={\[(\n;]/, +excludeEnd:!0,contains:[{className:"title",relevance:0, +begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/ +}]},e.C_NUMBER_MODE]})})();hljs.registerLanguage("flix",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/fortran.min.js b/src/app/resources/assets/highlight/languages/fortran.min.js new file mode 100644 index 0000000..4193ccd --- /dev/null +++ b/src/app/resources/assets/highlight/languages/fortran.min.js @@ -0,0 +1,16 @@ +/*! `fortran` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,a={ +variants:[e.COMMENT("!","$",{relevance:0}),e.COMMENT("^C[ ]","$",{relevance:0 +}),e.COMMENT("^C$","$",{relevance:0})] +},t=/(_[a-z_\d]+)?/,i=/([de][+-]?\d+)?/,c={className:"number",variants:[{ +begin:n.concat(/\b\d+/,/\.(\d*)/,i,t)},{begin:n.concat(/\b\d+/,i,t)},{ +begin:n.concat(/\.\d+/,i,t)}],relevance:0},o={className:"function", +beginKeywords:"subroutine function program",illegal:"[${=\\n]", +contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]} +;return{name:"Fortran",case_insensitive:!0,aliases:["f90","f95"],keywords:{ +keyword:["kind","do","concurrent","local","shared","while","private","call","intrinsic","where","elsewhere","type","endtype","endmodule","endselect","endinterface","end","enddo","endif","if","forall","endforall","only","contains","default","return","stop","then","block","endblock","endassociate","public","subroutine|10","function","program",".and.",".or.",".not.",".le.",".eq.",".ge.",".gt.",".lt.","goto","save","else","use","module","select","case","access","blank","direct","exist","file","fmt","form","formatted","iostat","name","named","nextrec","number","opened","rec","recl","sequential","status","unformatted","unit","continue","format","pause","cycle","exit","c_null_char","c_alert","c_backspace","c_form_feed","flush","wait","decimal","round","iomsg","synchronous","nopass","non_overridable","pass","protected","volatile","abstract","extends","import","non_intrinsic","value","deferred","generic","final","enumerator","class","associate","bind","enum","c_int","c_short","c_long","c_long_long","c_signed_char","c_size_t","c_int8_t","c_int16_t","c_int32_t","c_int64_t","c_int_least8_t","c_int_least16_t","c_int_least32_t","c_int_least64_t","c_int_fast8_t","c_int_fast16_t","c_int_fast32_t","c_int_fast64_t","c_intmax_t","C_intptr_t","c_float","c_double","c_long_double","c_float_complex","c_double_complex","c_long_double_complex","c_bool","c_char","c_null_ptr","c_null_funptr","c_new_line","c_carriage_return","c_horizontal_tab","c_vertical_tab","iso_c_binding","c_loc","c_funloc","c_associated","c_f_pointer","c_ptr","c_funptr","iso_fortran_env","character_storage_size","error_unit","file_storage_size","input_unit","iostat_end","iostat_eor","numeric_storage_size","output_unit","c_f_procpointer","ieee_arithmetic","ieee_support_underflow_control","ieee_get_underflow_mode","ieee_set_underflow_mode","newunit","contiguous","recursive","pad","position","action","delim","readwrite","eor","advance","nml","interface","procedure","namelist","include","sequence","elemental","pure","impure","integer","real","character","complex","logical","codimension","dimension","allocatable|10","parameter","external","implicit|10","none","double","precision","assign","intent","optional","pointer","target","in","out","common","equivalence","data"], +literal:[".False.",".True."], +built_in:["alog","alog10","amax0","amax1","amin0","amin1","amod","cabs","ccos","cexp","clog","csin","csqrt","dabs","dacos","dasin","datan","datan2","dcos","dcosh","ddim","dexp","dint","dlog","dlog10","dmax1","dmin1","dmod","dnint","dsign","dsin","dsinh","dsqrt","dtan","dtanh","float","iabs","idim","idint","idnint","ifix","isign","max0","max1","min0","min1","sngl","algama","cdabs","cdcos","cdexp","cdlog","cdsin","cdsqrt","cqabs","cqcos","cqexp","cqlog","cqsin","cqsqrt","dcmplx","dconjg","derf","derfc","dfloat","dgamma","dimag","dlgama","iqint","qabs","qacos","qasin","qatan","qatan2","qcmplx","qconjg","qcos","qcosh","qdim","qerf","qerfc","qexp","qgamma","qimag","qlgama","qlog","qlog10","qmax1","qmin1","qmod","qnint","qsign","qsin","qsinh","qsqrt","qtan","qtanh","abs","acos","aimag","aint","anint","asin","atan","atan2","char","cmplx","conjg","cos","cosh","exp","ichar","index","int","log","log10","max","min","nint","sign","sin","sinh","sqrt","tan","tanh","print","write","dim","lge","lgt","lle","llt","mod","nullify","allocate","deallocate","adjustl","adjustr","all","allocated","any","associated","bit_size","btest","ceiling","count","cshift","date_and_time","digits","dot_product","eoshift","epsilon","exponent","floor","fraction","huge","iand","ibclr","ibits","ibset","ieor","ior","ishft","ishftc","lbound","len_trim","matmul","maxexponent","maxloc","maxval","merge","minexponent","minloc","minval","modulo","mvbits","nearest","pack","present","product","radix","random_number","random_seed","range","repeat","reshape","rrspacing","scale","scan","selected_int_kind","selected_real_kind","set_exponent","shape","size","spacing","spread","sum","system_clock","tiny","transpose","trim","ubound","unpack","verify","achar","iachar","transfer","dble","entry","dprod","cpu_time","command_argument_count","get_command","get_command_argument","get_environment_variable","is_iostat_end","ieee_arithmetic","ieee_support_underflow_control","ieee_get_underflow_mode","ieee_set_underflow_mode","is_iostat_eor","move_alloc","new_line","selected_char_kind","same_type_as","extends_type_of","acosh","asinh","atanh","bessel_j0","bessel_j1","bessel_jn","bessel_y0","bessel_y1","bessel_yn","erf","erfc","erfc_scaled","gamma","log_gamma","hypot","norm2","atomic_define","atomic_ref","execute_command_line","leadz","trailz","storage_size","merge_bits","bge","bgt","ble","blt","dshiftl","dshiftr","findloc","iall","iany","iparity","image_index","lcobound","ucobound","maskl","maskr","num_images","parity","popcnt","poppar","shifta","shiftl","shiftr","this_image","sync","change","team","co_broadcast","co_max","co_min","co_sum","co_reduce"] +},illegal:/\/\*/,contains:[{className:"string",relevance:0, +variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},o,{begin:/^C\s*=(?!=)/, +relevance:0},a,c]}}})();hljs.registerLanguage("fortran",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/fsharp.min.js b/src/app/resources/assets/highlight/languages/fsharp.min.js new file mode 100644 index 0000000..dbbd5eb --- /dev/null +++ b/src/app/resources/assets/highlight/languages/fsharp.min.js @@ -0,0 +1,47 @@ +/*! `fsharp` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";function e(e){ +return RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function n(e){ +return e?"string"==typeof e?e:e.source:null}function t(e){return i("(?=",e,")")} +function i(...e){return e.map((e=>n(e))).join("")}function a(...e){const t=(e=>{ +const n=e[e.length-1] +;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{} +})(e);return"("+(t.capture?"":"?:")+e.map((e=>n(e))).join("|")+")"}return n=>{ +const r={scope:"keyword",match:/\b(yield|return|let|do|match|use)!/ +},o=["bool","byte","sbyte","int8","int16","int32","uint8","uint16","uint32","int","uint","int64","uint64","nativeint","unativeint","decimal","float","double","float32","single","char","string","unit","bigint","option","voption","list","array","seq","byref","exn","inref","nativeptr","obj","outref","voidptr","Result"],s={ +keyword:["abstract","and","as","assert","base","begin","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","extern","finally","fixed","for","fun","function","global","if","in","inherit","inline","interface","internal","lazy","let","match","member","module","mutable","namespace","new","of","open","or","override","private","public","rec","return","static","struct","then","to","try","type","upcast","use","val","void","when","while","with","yield"], +literal:["true","false","null","Some","None","Ok","Error","infinity","infinityf","nan","nanf"], +built_in:["not","ref","raise","reraise","dict","readOnlyDict","set","get","enum","sizeof","typeof","typedefof","nameof","nullArg","invalidArg","invalidOp","id","fst","snd","ignore","lock","using","box","unbox","tryUnbox","printf","printfn","sprintf","eprintf","eprintfn","fprintf","fprintfn","failwith","failwithf"], +"variable.constant":["__LINE__","__SOURCE_DIRECTORY__","__SOURCE_FILE__"]},c={ +variants:[n.COMMENT(/\(\*(?!\))/,/\*\)/,{contains:["self"] +}),n.C_LINE_COMMENT_MODE]},l={scope:"variable",begin:/``/,end:/``/ +},u=/\B('|\^)/,p={scope:"symbol",variants:[{match:i(u,/``.*?``/)},{ +match:i(u,n.UNDERSCORE_IDENT_RE)}],relevance:0},f=({includeEqual:n})=>{let r +;r=n?"!%&*+-/<=>@^|~?":"!%&*+-/<>@^|~?" +;const o=i("[",...Array.from(r).map(e),"]"),s=a(o,/\./),c=i(s,t(s)),l=a(i(c,s,"*"),i(o,"+")) +;return{scope:"operator",match:a(l,/:\?>/,/:\?/,/:>/,/:=/,/::?/,/\$/), +relevance:0}},d=f({includeEqual:!0}),b=f({includeEqual:!1}),g=(e,r)=>({ +begin:i(e,t(i(/\s*/,a(/\w/,/'/,/\^/,/#/,/``/,/\(/,/{\|/)))),beginScope:r, +end:t(a(/\n/,/=/)),relevance:0,keywords:n.inherit(s,{type:o}), +contains:[c,p,n.inherit(l,{scope:null}),b] +}),m=g(/:/,"operator"),h=g(/\bof\b/,"keyword"),y={ +begin:[/(^|\s+)/,/type/,/\s+/,/[a-zA-Z_](\w|')*/],beginScope:{2:"keyword", +4:"title.class"},end:t(/\(|=|$/),keywords:s,contains:[c,n.inherit(l,{scope:null +}),p,{scope:"operator",match:/<|>/},m]},E={scope:"computation-expression", +match:/\b[_a-z]\w*(?=\s*\{)/},_={ +begin:[/^\s*/,i(/#/,a("if","else","endif","line","nowarn","light","r","i","I","load","time","help","quit")),/\b/], +beginScope:{2:"meta"},end:t(/\s|$/)},v={ +variants:[n.BINARY_NUMBER_MODE,n.C_NUMBER_MODE]},w={scope:"string",begin:/"/, +end:/"/,contains:[n.BACKSLASH_ESCAPE]},A={scope:"string",begin:/@"/,end:/"/, +contains:[{match:/""/},n.BACKSLASH_ESCAPE]},S={scope:"string",begin:/"""/, +end:/"""/,relevance:2},C={scope:"subst",begin:/\{/,end:/\}/,keywords:s},O={ +scope:"string",begin:/\$"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/ +},n.BACKSLASH_ESCAPE,C]},R={scope:"string",begin:/(\$@|@\$)"/,end:/"/, +contains:[{match:/\{\{/},{match:/\}\}/},{match:/""/},n.BACKSLASH_ESCAPE,C]},k={ +scope:"string",begin:/\$"""/,end:/"""/,contains:[{match:/\{\{/},{match:/\}\}/ +},C],relevance:2},x={scope:"string", +match:i(/'/,a(/[^\\']/,/\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8})/),/'/) +};return C.contains=[R,O,A,w,x,r,c,l,m,E,_,v,p,d],{name:"F#", +aliases:["fs","f#"],keywords:s,illegal:/\/\*/,classNameAliases:{ +"computation-expression":"keyword"},contains:[r,{variants:[k,R,O,S,A,w,x] +},c,l,y,{scope:"meta",begin:/\[\]/,relevance:2,contains:[l,S,A,w,x,v] +},h,m,E,_,v,p,d]}}})();hljs.registerLanguage("fsharp",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/gams.min.js b/src/app/resources/assets/highlight/languages/gams.min.js new file mode 100644 index 0000000..81c599a --- /dev/null +++ b/src/app/resources/assets/highlight/languages/gams.min.js @@ -0,0 +1,28 @@ +/*! `gams` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex,n={ +keyword:"abort acronym acronyms alias all and assign binary card diag display else eq file files for free ge gt if integer le loop lt maximizing minimizing model models ne negative no not option options or ord positive prod put putpage puttl repeat sameas semicont semiint smax smin solve sos1 sos2 sum system table then until using while xor yes", +literal:"eps inf na", +built_in:"abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact floor frac gamma gammaReg log logBeta logGamma log10 log2 mapVal max min mod ncpCM ncpF ncpVUpow ncpVUsin normal pi poly power randBinomial randLinear randTriangle round rPower sigmoid sign signPower sin sinh slexp sllog10 slrec sqexp sqlog10 sqr sqrec sqrt tan tanh trunc uniform uniformInt vcPower bool_and bool_eqv bool_imp bool_not bool_or bool_xor ifThen rel_eq rel_ge rel_gt rel_le rel_lt rel_ne gday gdow ghour gleap gmillisec gminute gmonth gsecond gyear jdate jnow jstart jtime errorLevel execError gamsRelease gamsVersion handleCollect handleDelete handleStatus handleSubmit heapFree heapLimit heapSize jobHandle jobKill jobStatus jobTerminate licenseLevel licenseStatus maxExecError sleep timeClose timeComp timeElapsed timeExec timeStart" +},i={className:"symbol",variants:[{begin:/=[lgenxc]=/},{begin:/\$/}]},s={ +className:"comment",variants:[{begin:"'",end:"'"},{begin:'"',end:'"'}], +illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},o={begin:"/",end:"/",keywords:n, +contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE] +},t=/[a-z0-9&#*=?@\\><:,()$[\]_.{}!+%^-]+/,r={ +begin:/[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/,excludeBegin:!0,end:"$", +endsWithParent:!0,contains:[s,o,{className:"comment", +begin:a.concat(t,a.anyNumberOfTimes(a.concat(/[ ]+/,t))),relevance:0}]};return{ +name:"GAMS",aliases:["gms"],case_insensitive:!0,keywords:n, +contains:[e.COMMENT(/^\$ontext/,/^\$offtext/),{className:"meta", +begin:"^\\$[a-z0-9]+",end:"$",returnBegin:!0,contains:[{className:"keyword", +begin:"^\\$[a-z0-9]+"}] +},e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{ +beginKeywords:"set sets parameter parameters variable variables scalar scalars equation equations", +end:";", +contains:[e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,o,r] +},{beginKeywords:"table",end:";",returnBegin:!0,contains:[{ +beginKeywords:"table",end:"$",contains:[r] +},e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE] +},{className:"function",begin:/^[a-z][a-z0-9_,\-+' ()$]+\.{2}/,returnBegin:!0, +contains:[{className:"title",begin:/^[a-z0-9_]+/},{className:"params", +begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0},i]},e.C_NUMBER_MODE,i]}}})() +;hljs.registerLanguage("gams",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/gauss.min.js b/src/app/resources/assets/highlight/languages/gauss.min.js new file mode 100644 index 0000000..222554f --- /dev/null +++ b/src/app/resources/assets/highlight/languages/gauss.min.js @@ -0,0 +1,36 @@ +/*! `gauss` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t={ +keyword:"bool break call callexe checkinterrupt clear clearg closeall cls comlog compile continue create debug declare delete disable dlibrary dllcall do dos ed edit else elseif enable end endfor endif endp endo errorlog errorlogat expr external fn for format goto gosub graph if keyword let lib library line load loadarray loadexe loadf loadk loadm loadp loads loadx local locate loopnextindex lprint lpwidth lshow matrix msym ndpclex new open output outwidth plot plotsym pop prcsn print printdos proc push retp return rndcon rndmod rndmult rndseed run save saveall screen scroll setarray show sparse stop string struct system trace trap threadfor threadendfor threadbegin threadjoin threadstat threadend until use while winprint ne ge le gt lt and xor or not eq eqv", +built_in:"abs acf aconcat aeye amax amean AmericanBinomCall AmericanBinomCall_Greeks AmericanBinomCall_ImpVol AmericanBinomPut AmericanBinomPut_Greeks AmericanBinomPut_ImpVol AmericanBSCall AmericanBSCall_Greeks AmericanBSCall_ImpVol AmericanBSPut AmericanBSPut_Greeks AmericanBSPut_ImpVol amin amult annotationGetDefaults annotationSetBkd annotationSetFont annotationSetLineColor annotationSetLineStyle annotationSetLineThickness annualTradingDays arccos arcsin areshape arrayalloc arrayindex arrayinit arraytomat asciiload asclabel astd astds asum atan atan2 atranspose axmargin balance band bandchol bandcholsol bandltsol bandrv bandsolpd bar base10 begwind besselj bessely beta box boxcox cdfBeta cdfBetaInv cdfBinomial cdfBinomialInv cdfBvn cdfBvn2 cdfBvn2e cdfCauchy cdfCauchyInv cdfChic cdfChii cdfChinc cdfChincInv cdfExp cdfExpInv cdfFc cdfFnc cdfFncInv cdfGam cdfGenPareto cdfHyperGeo cdfLaplace cdfLaplaceInv cdfLogistic cdfLogisticInv cdfmControlCreate cdfMvn cdfMvn2e cdfMvnce cdfMvne cdfMvt2e cdfMvtce cdfMvte cdfN cdfN2 cdfNc cdfNegBinomial cdfNegBinomialInv cdfNi cdfPoisson cdfPoissonInv cdfRayleigh cdfRayleighInv cdfTc cdfTci cdfTnc cdfTvn cdfWeibull cdfWeibullInv cdir ceil ChangeDir chdir chiBarSquare chol choldn cholsol cholup chrs close code cols colsf combinate combinated complex con cond conj cons ConScore contour conv convertsatostr convertstrtosa corrm corrms corrvc corrx corrxs cos cosh counts countwts crossprd crout croutp csrcol csrlin csvReadM csvReadSA cumprodc cumsumc curve cvtos datacreate datacreatecomplex datalist dataload dataloop dataopen datasave date datestr datestring datestrymd dayinyr dayofweek dbAddDatabase dbClose dbCommit dbCreateQuery dbExecQuery dbGetConnectOptions dbGetDatabaseName dbGetDriverName dbGetDrivers dbGetHostName dbGetLastErrorNum dbGetLastErrorText dbGetNumericalPrecPolicy dbGetPassword dbGetPort dbGetTableHeaders dbGetTables dbGetUserName dbHasFeature dbIsDriverAvailable dbIsOpen dbIsOpenError dbOpen dbQueryBindValue dbQueryClear dbQueryCols dbQueryExecPrepared dbQueryFetchAllM dbQueryFetchAllSA dbQueryFetchOneM dbQueryFetchOneSA dbQueryFinish dbQueryGetBoundValue dbQueryGetBoundValues dbQueryGetField dbQueryGetLastErrorNum dbQueryGetLastErrorText dbQueryGetLastInsertID dbQueryGetLastQuery dbQueryGetPosition dbQueryIsActive dbQueryIsForwardOnly dbQueryIsNull dbQueryIsSelect dbQueryIsValid dbQueryPrepare dbQueryRows dbQuerySeek dbQuerySeekFirst dbQuerySeekLast dbQuerySeekNext dbQuerySeekPrevious dbQuerySetForwardOnly dbRemoveDatabase dbRollback dbSetConnectOptions dbSetDatabaseName dbSetHostName dbSetNumericalPrecPolicy dbSetPort dbSetUserName dbTransaction DeleteFile delif delrows denseToSp denseToSpRE denToZero design det detl dfft dffti diag diagrv digamma doswin DOSWinCloseall DOSWinOpen dotfeq dotfeqmt dotfge dotfgemt dotfgt dotfgtmt dotfle dotflemt dotflt dotfltmt dotfne dotfnemt draw drop dsCreate dstat dstatmt dstatmtControlCreate dtdate dtday dttime dttodtv dttostr dttoutc dtvnormal dtvtodt dtvtoutc dummy dummybr dummydn eig eigh eighv eigv elapsedTradingDays endwind envget eof eqSolve eqSolvemt eqSolvemtControlCreate eqSolvemtOutCreate eqSolveset erf erfc erfccplx erfcplx error etdays ethsec etstr EuropeanBinomCall EuropeanBinomCall_Greeks EuropeanBinomCall_ImpVol EuropeanBinomPut EuropeanBinomPut_Greeks EuropeanBinomPut_ImpVol EuropeanBSCall EuropeanBSCall_Greeks EuropeanBSCall_ImpVol EuropeanBSPut EuropeanBSPut_Greeks EuropeanBSPut_ImpVol exctsmpl exec execbg exp extern eye fcheckerr fclearerr feq feqmt fflush fft ffti fftm fftmi fftn fge fgemt fgets fgetsa fgetsat fgetst fgt fgtmt fileinfo filesa fle flemt floor flt fltmt fmod fne fnemt fonts fopen formatcv formatnv fputs fputst fseek fstrerror ftell ftocv ftos ftostrC gamma gammacplx gammaii gausset gdaAppend gdaCreate gdaDStat gdaDStatMat gdaGetIndex gdaGetName gdaGetNames gdaGetOrders gdaGetType gdaGetTypes gdaGetVarInfo gdaIsCplx gdaLoad gdaPack gdaRead gdaReadByIndex gdaReadSome gdaReadSparse gdaReadStruct gdaReportVarInfo gdaSave gdaUpdate gdaUpdateAndPack gdaVars gdaWrite gdaWrite32 gdaWriteSome getarray getdims getf getGAUSShome getmatrix getmatrix4D getname getnamef getNextTradingDay getNextWeekDay getnr getorders getpath getPreviousTradingDay getPreviousWeekDay getRow getscalar3D getscalar4D getTrRow getwind glm gradcplx gradMT gradMTm gradMTT gradMTTm gradp graphprt graphset hasimag header headermt hess hessMT hessMTg hessMTgw hessMTm hessMTmw hessMTT hessMTTg hessMTTgw hessMTTm hessMTw hessp hist histf histp hsec imag indcv indexcat indices indices2 indicesf indicesfn indnv indsav integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 inthpControlCreate intquad1 intquad2 intquad3 intrleav intrleavsa intrsect intsimp inv invpd invswp iscplx iscplxf isden isinfnanmiss ismiss key keyav keyw lag lag1 lagn lapEighb lapEighi lapEighvb lapEighvi lapgEig lapgEigh lapgEighv lapgEigv lapgSchur lapgSvdcst lapgSvds lapgSvdst lapSvdcusv lapSvds lapSvdusv ldlp ldlsol linSolve listwise ln lncdfbvn lncdfbvn2 lncdfmvn lncdfn lncdfn2 lncdfnc lnfact lngammacplx lnpdfmvn lnpdfmvt lnpdfn lnpdft loadd loadstruct loadwind loess loessmt loessmtControlCreate log loglog logx logy lower lowmat lowmat1 ltrisol lu lusol machEpsilon make makevars makewind margin matalloc matinit mattoarray maxbytes maxc maxindc maxv maxvec mbesselei mbesselei0 mbesselei1 mbesseli mbesseli0 mbesseli1 meanc median mergeby mergevar minc minindc minv miss missex missrv moment momentd movingave movingaveExpwgt movingaveWgt nextindex nextn nextnevn nextwind ntos null null1 numCombinations ols olsmt olsmtControlCreate olsqr olsqr2 olsqrmt ones optn optnevn orth outtyp pacf packedToSp packr parse pause pdfCauchy pdfChi pdfExp pdfGenPareto pdfHyperGeo pdfLaplace pdfLogistic pdfn pdfPoisson pdfRayleigh pdfWeibull pi pinv pinvmt plotAddArrow plotAddBar plotAddBox plotAddHist plotAddHistF plotAddHistP plotAddPolar plotAddScatter plotAddShape plotAddTextbox plotAddTS plotAddXY plotArea plotBar plotBox plotClearLayout plotContour plotCustomLayout plotGetDefaults plotHist plotHistF plotHistP plotLayout plotLogLog plotLogX plotLogY plotOpenWindow plotPolar plotSave plotScatter plotSetAxesPen plotSetBar plotSetBarFill plotSetBarStacked plotSetBkdColor plotSetFill plotSetGrid plotSetLegend plotSetLineColor plotSetLineStyle plotSetLineSymbol plotSetLineThickness plotSetNewWindow plotSetTitle plotSetWhichYAxis plotSetXAxisShow plotSetXLabel plotSetXRange plotSetXTicInterval plotSetXTicLabel plotSetYAxisShow plotSetYLabel plotSetYRange plotSetZAxisShow plotSetZLabel plotSurface plotTS plotXY polar polychar polyeval polygamma polyint polymake polymat polymroot polymult polyroot pqgwin previousindex princomp printfm printfmt prodc psi putarray putf putvals pvCreate pvGetIndex pvGetParNames pvGetParVector pvLength pvList pvPack pvPacki pvPackm pvPackmi pvPacks pvPacksi pvPacksm pvPacksmi pvPutParVector pvTest pvUnpack QNewton QNewtonmt QNewtonmtControlCreate QNewtonmtOutCreate QNewtonSet QProg QProgmt QProgmtInCreate qqr qqre qqrep qr qre qrep qrsol qrtsol qtyr qtyre qtyrep quantile quantiled qyr qyre qyrep qz rank rankindx readr real reclassify reclassifyCuts recode recserar recsercp recserrc rerun rescale reshape rets rev rfft rffti rfftip rfftn rfftnp rfftp rndBernoulli rndBeta rndBinomial rndCauchy rndChiSquare rndCon rndCreateState rndExp rndGamma rndGeo rndGumbel rndHyperGeo rndi rndKMbeta rndKMgam rndKMi rndKMn rndKMnb rndKMp rndKMu rndKMvm rndLaplace rndLCbeta rndLCgam rndLCi rndLCn rndLCnb rndLCp rndLCu rndLCvm rndLogNorm rndMTu rndMVn rndMVt rndn rndnb rndNegBinomial rndp rndPoisson rndRayleigh rndStateSkip rndu rndvm rndWeibull rndWishart rotater round rows rowsf rref sampleData satostrC saved saveStruct savewind scale scale3d scalerr scalinfnanmiss scalmiss schtoc schur searchsourcepath seekr select selif seqa seqm setdif setdifsa setvars setvwrmode setwind shell shiftr sin singleindex sinh sleep solpd sortc sortcc sortd sorthc sorthcc sortind sortindc sortmc sortr sortrc spBiconjGradSol spChol spConjGradSol spCreate spDenseSubmat spDiagRvMat spEigv spEye spLDL spline spLU spNumNZE spOnes spreadSheetReadM spreadSheetReadSA spreadSheetWrite spScale spSubmat spToDense spTrTDense spTScalar spZeros sqpSolve sqpSolveMT sqpSolveMTControlCreate sqpSolveMTlagrangeCreate sqpSolveMToutCreate sqpSolveSet sqrt statements stdc stdsc stocv stof strcombine strindx strlen strput strrindx strsect strsplit strsplitPad strtodt strtof strtofcplx strtriml strtrimr strtrunc strtruncl strtruncpad strtruncr submat subscat substute subvec sumc sumr surface svd svd1 svd2 svdcusv svds svdusv sysstate tab tan tanh tempname time timedt timestr timeutc title tkf2eps tkf2ps tocart todaydt toeplitz token topolar trapchk trigamma trimr trunc type typecv typef union unionsa uniqindx uniqindxsa unique uniquesa upmat upmat1 upper utctodt utctodtv utrisol vals varCovMS varCovXS varget vargetl varmall varmares varput varputl vartypef vcm vcms vcx vcxs vec vech vecr vector vget view viewxyz vlist vnamecv volume vput vread vtypecv wait waitc walkindex where window writer xlabel xlsGetSheetCount xlsGetSheetSize xlsGetSheetTypes xlsMakeRange xlsReadM xlsReadSA xlsWrite xlsWriteM xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics cdfEmpirical dot h5create h5open h5read h5readAttribute h5write h5writeAttribute ldl plotAddErrorBar plotAddSurface plotCDFEmpirical plotSetColormap plotSetContourLabels plotSetLegendFont plotSetTextInterpreter plotSetXTicCount plotSetYTicCount plotSetZLevels powerm strjoin sylvester strtrim", +literal:"DB_AFTER_LAST_ROW DB_ALL_TABLES DB_BATCH_OPERATIONS DB_BEFORE_FIRST_ROW DB_BLOB DB_EVENT_NOTIFICATIONS DB_FINISH_QUERY DB_HIGH_PRECISION DB_LAST_INSERT_ID DB_LOW_PRECISION_DOUBLE DB_LOW_PRECISION_INT32 DB_LOW_PRECISION_INT64 DB_LOW_PRECISION_NUMBERS DB_MULTIPLE_RESULT_SETS DB_NAMED_PLACEHOLDERS DB_POSITIONAL_PLACEHOLDERS DB_PREPARED_QUERIES DB_QUERY_SIZE DB_SIMPLE_LOCKING DB_SYSTEM_TABLES DB_TABLES DB_TRANSACTIONS DB_UNICODE DB_VIEWS __STDIN __STDOUT __STDERR __FILE_DIR" +},a=e.COMMENT("@","@"),r={className:"meta",begin:"#",end:"$",keywords:{ +keyword:"define definecs|10 undef ifdef ifndef iflight ifdllcall ifmac ifos2win ifunix else endif lineson linesoff srcfile srcline" +},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$", +keywords:{keyword:"include"},contains:[{className:"string",begin:'"',end:'"', +illegal:"\\n"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a]},n={ +begin:/\bstruct\s+/,end:/\s/,keywords:"struct",contains:[{className:"type", +begin:e.UNDERSCORE_IDENT_RE,relevance:0}]},s=[{className:"params",begin:/\(/, +end:/\)/,excludeBegin:!0,excludeEnd:!0,endsWithParent:!0,relevance:0,contains:[{ +className:"literal",begin:/\.\.\./},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,a,n] +}],o={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},d=(t,r,n)=>{ +const d=e.inherit({className:"function",beginKeywords:t,end:r,excludeEnd:!0, +contains:[].concat(s)},n||{}) +;return d.contains.push(o),d.contains.push(e.C_NUMBER_MODE), +d.contains.push(e.C_BLOCK_COMMENT_MODE),d.contains.push(a),d},l={ +className:"built_in",begin:"\\b("+t.built_in.split(" ").join("|")+")\\b"},i={ +className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE],relevance:0 +},c={begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,keywords:t, +relevance:0,contains:[{beginKeywords:t.keyword},l,{className:"built_in", +begin:e.UNDERSCORE_IDENT_RE,relevance:0}]},p={begin:/\(/,end:/\)/,relevance:0, +keywords:{built_in:t.built_in,literal:t.literal}, +contains:[e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,a,l,c,i,"self"]} +;return c.contains.push(p),{name:"GAUSS",aliases:["gss"],case_insensitive:!0, +keywords:t,illegal:/(\{[%#]|[%#]\}| <- )/, +contains:[e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r,{ +className:"keyword", +begin:/\bexternal (matrix|string|array|sparse matrix|struct|proc|keyword|fn)/ +},d("proc keyword",";"),d("fn","="),{beginKeywords:"for threadfor",end:/;/, +relevance:0,contains:[e.C_BLOCK_COMMENT_MODE,a,p]},{variants:[{ +begin:e.UNDERSCORE_IDENT_RE+"\\."+e.UNDERSCORE_IDENT_RE},{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*="}],relevance:0},c,n]}}})() +;hljs.registerLanguage("gauss",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/gcode.min.js b/src/app/resources/assets/highlight/languages/gcode.min.js new file mode 100644 index 0000000..765e866 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/gcode.min.js @@ -0,0 +1,16 @@ +/*! `gcode` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=e.inherit(e.C_NUMBER_MODE,{ +begin:"([-+]?((\\.\\d+)|(\\d+)(\\.\\d*)?))|"+e.C_NUMBER_RE +}),n=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(/\(/,/\)/),a,e.inherit(e.APOS_STRING_MODE,{ +illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"name", +begin:"([G])([0-9]+\\.?[0-9]?)"},{className:"name", +begin:"([M])([0-9]+\\.?[0-9]?)"},{className:"attr",begin:"(VC|VS|#)", +end:"(\\d+)"},{className:"attr",begin:"(VZOFX|VZOFY|VZOFZ)"},{ +className:"built_in", +begin:"(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)",contains:[a], +end:"\\]"},{className:"symbol",variants:[{begin:"N",end:"\\d+",illegal:"\\W"}]}] +;return{name:"G-code (ISO 6983)",aliases:["nc"],case_insensitive:!0,keywords:{ +$pattern:"[A-Z_][A-Z0-9_.]*", +keyword:"IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR" +},contains:[{className:"meta",begin:"%"},{className:"meta",begin:"([O])([0-9]+)" +}].concat(n)}}})();hljs.registerLanguage("gcode",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/gherkin.min.js b/src/app/resources/assets/highlight/languages/gherkin.min.js new file mode 100644 index 0000000..6eaafbd --- /dev/null +++ b/src/app/resources/assets/highlight/languages/gherkin.min.js @@ -0,0 +1,8 @@ +/*! `gherkin` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Gherkin",aliases:["feature"], +keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When", +contains:[{className:"symbol",begin:"\\*",relevance:0},{className:"meta", +begin:"@[^@\\s]+"},{begin:"\\|",end:"\\|\\w*$",contains:[{className:"string", +begin:"[^|]+"}]},{className:"variable",begin:"<",end:">"},e.HASH_COMMENT_MODE,{ +className:"string",begin:'"""',end:'"""'},e.QUOTE_STRING_MODE]})})() +;hljs.registerLanguage("gherkin",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/glsl.min.js b/src/app/resources/assets/highlight/languages/glsl.min.js new file mode 100644 index 0000000..23f9dd5 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/glsl.min.js @@ -0,0 +1,8 @@ +/*! `glsl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"GLSL",keywords:{ +keyword:"break continue discard do else for if return while switch case default attribute binding buffer ccw centroid centroid varying coherent column_major const cw depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip triangles triangles_adjacency uniform varying vertices volatile writeonly", +type:"atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void", +built_in:"gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow", +literal:"true false"},illegal:'"', +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{ +className:"meta",begin:"#",end:"$"}]})})();hljs.registerLanguage("glsl",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/gml.min.js b/src/app/resources/assets/highlight/languages/gml.min.js new file mode 100644 index 0000000..b832988 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/gml.min.js @@ -0,0 +1,11 @@ +/*! `gml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"GML",case_insensitive:!1, +keywords:{ +keyword:["#endregion","#macro","#region","and","begin","break","case","constructor","continue","default","delete","div","do","else","end","enum","exit","for","function","globalvar","if","mod","not","or","repeat","return","switch","then","until","var","while","with","xor"], +built_in:["abs","achievement_available","achievement_event","achievement_get_challenges","achievement_get_info","achievement_get_pic","achievement_increment","achievement_load_friends","achievement_load_leaderboard","achievement_load_progress","achievement_login","achievement_login_status","achievement_logout","achievement_post","achievement_post_score","achievement_reset","achievement_send_challenge","achievement_show","achievement_show_achievements","achievement_show_challenge_notifications","achievement_show_leaderboards","action_inherited","action_kill_object","ads_disable","ads_enable","ads_engagement_active","ads_engagement_available","ads_engagement_launch","ads_event","ads_event_preload","ads_get_display_height","ads_get_display_width","ads_interstitial_available","ads_interstitial_display","ads_move","ads_set_reward_callback","ads_setup","alarm_get","alarm_set","analytics_event","analytics_event_ext","angle_difference","ansi_char","application_get_position","application_surface_draw_enable","application_surface_enable","application_surface_is_enabled","arccos","arcsin","arctan","arctan2","array_copy","array_create","array_delete","array_equals","array_height_2d","array_insert","array_length","array_length_1d","array_length_2d","array_pop","array_push","array_resize","array_sort","asset_get_index","asset_get_type","audio_channel_num","audio_create_buffer_sound","audio_create_play_queue","audio_create_stream","audio_create_sync_group","audio_debug","audio_destroy_stream","audio_destroy_sync_group","audio_emitter_create","audio_emitter_exists","audio_emitter_falloff","audio_emitter_free","audio_emitter_gain","audio_emitter_get_gain","audio_emitter_get_listener_mask","audio_emitter_get_pitch","audio_emitter_get_vx","audio_emitter_get_vy","audio_emitter_get_vz","audio_emitter_get_x","audio_emitter_get_y","audio_emitter_get_z","audio_emitter_pitch","audio_emitter_position","audio_emitter_set_listener_mask","audio_emitter_velocity","audio_exists","audio_falloff_set_model","audio_free_buffer_sound","audio_free_play_queue","audio_get_listener_count","audio_get_listener_info","audio_get_listener_mask","audio_get_master_gain","audio_get_name","audio_get_recorder_count","audio_get_recorder_info","audio_get_type","audio_group_is_loaded","audio_group_load","audio_group_load_progress","audio_group_name","audio_group_set_gain","audio_group_stop_all","audio_group_unload","audio_is_paused","audio_is_playing","audio_listener_get_data","audio_listener_orientation","audio_listener_position","audio_listener_set_orientation","audio_listener_set_position","audio_listener_set_velocity","audio_listener_velocity","audio_master_gain","audio_music_gain","audio_music_is_playing","audio_pause_all","audio_pause_music","audio_pause_sound","audio_pause_sync_group","audio_play_in_sync_group","audio_play_music","audio_play_sound","audio_play_sound_at","audio_play_sound_on","audio_queue_sound","audio_resume_all","audio_resume_music","audio_resume_sound","audio_resume_sync_group","audio_set_listener_mask","audio_set_master_gain","audio_sound_gain","audio_sound_get_gain","audio_sound_get_listener_mask","audio_sound_get_pitch","audio_sound_get_track_position","audio_sound_length","audio_sound_pitch","audio_sound_set_listener_mask","audio_sound_set_track_position","audio_start_recording","audio_start_sync_group","audio_stop_all","audio_stop_music","audio_stop_recording","audio_stop_sound","audio_stop_sync_group","audio_sync_group_debug","audio_sync_group_get_track_pos","audio_sync_group_is_playing","audio_system","background_get_height","background_get_width","base64_decode","base64_encode","browser_input_capture","buffer_async_group_begin","buffer_async_group_end","buffer_async_group_option","buffer_base64_decode","buffer_base64_decode_ext","buffer_base64_encode","buffer_copy","buffer_copy_from_vertex_buffer","buffer_create","buffer_create_from_vertex_buffer","buffer_create_from_vertex_buffer_ext","buffer_delete","buffer_exists","buffer_fill","buffer_get_address","buffer_get_alignment","buffer_get_size","buffer_get_surface","buffer_get_type","buffer_load","buffer_load_async","buffer_load_ext","buffer_load_partial","buffer_md5","buffer_peek","buffer_poke","buffer_read","buffer_resize","buffer_save","buffer_save_async","buffer_save_ext","buffer_seek","buffer_set_surface","buffer_sha1","buffer_sizeof","buffer_tell","buffer_write","camera_apply","camera_create","camera_create_view","camera_destroy","camera_get_active","camera_get_begin_script","camera_get_default","camera_get_end_script","camera_get_proj_mat","camera_get_update_script","camera_get_view_angle","camera_get_view_border_x","camera_get_view_border_y","camera_get_view_height","camera_get_view_mat","camera_get_view_speed_x","camera_get_view_speed_y","camera_get_view_target","camera_get_view_width","camera_get_view_x","camera_get_view_y","camera_set_begin_script","camera_set_default","camera_set_end_script","camera_set_proj_mat","camera_set_update_script","camera_set_view_angle","camera_set_view_border","camera_set_view_mat","camera_set_view_pos","camera_set_view_size","camera_set_view_speed","camera_set_view_target","ceil","choose","chr","clamp","clickable_add","clickable_add_ext","clickable_change","clickable_change_ext","clickable_delete","clickable_exists","clickable_set_style","clipboard_get_text","clipboard_has_text","clipboard_set_text","cloud_file_save","cloud_string_save","cloud_synchronise","code_is_compiled","collision_circle","collision_circle_list","collision_ellipse","collision_ellipse_list","collision_line","collision_line_list","collision_point","collision_point_list","collision_rectangle","collision_rectangle_list","color_get_blue","color_get_green","color_get_hue","color_get_red","color_get_saturation","color_get_value","colour_get_blue","colour_get_green","colour_get_hue","colour_get_red","colour_get_saturation","colour_get_value","cos","darccos","darcsin","darctan","darctan2","date_compare_date","date_compare_datetime","date_compare_time","date_create_datetime","date_current_datetime","date_date_of","date_date_string","date_datetime_string","date_day_span","date_days_in_month","date_days_in_year","date_get_day","date_get_day_of_year","date_get_hour","date_get_hour_of_year","date_get_minute","date_get_minute_of_year","date_get_month","date_get_second","date_get_second_of_year","date_get_timezone","date_get_week","date_get_weekday","date_get_year","date_hour_span","date_inc_day","date_inc_hour","date_inc_minute","date_inc_month","date_inc_second","date_inc_week","date_inc_year","date_is_today","date_leap_year","date_minute_span","date_month_span","date_second_span","date_set_timezone","date_time_of","date_time_string","date_valid_datetime","date_week_span","date_year_span","dcos","debug_event","debug_get_callstack","degtorad","device_get_tilt_x","device_get_tilt_y","device_get_tilt_z","device_is_keypad_open","device_mouse_check_button","device_mouse_check_button_pressed","device_mouse_check_button_released","device_mouse_dbclick_enable","device_mouse_raw_x","device_mouse_raw_y","device_mouse_x","device_mouse_x_to_gui","device_mouse_y","device_mouse_y_to_gui","directory_create","directory_destroy","directory_exists","display_get_dpi_x","display_get_dpi_y","display_get_gui_height","display_get_gui_width","display_get_height","display_get_orientation","display_get_sleep_margin","display_get_timing_method","display_get_width","display_mouse_get_x","display_mouse_get_y","display_mouse_set","display_reset","display_set_gui_maximise","display_set_gui_maximize","display_set_gui_size","display_set_sleep_margin","display_set_timing_method","display_set_ui_visibility","distance_to_object","distance_to_point","dot_product","dot_product_3d","dot_product_3d_normalised","dot_product_3d_normalized","dot_product_normalised","dot_product_normalized","draw_arrow","draw_background","draw_background_ext","draw_background_part_ext","draw_background_tiled","draw_button","draw_circle","draw_circle_color","draw_circle_colour","draw_clear","draw_clear_alpha","draw_ellipse","draw_ellipse_color","draw_ellipse_colour","draw_enable_alphablend","draw_enable_drawevent","draw_enable_swf_aa","draw_flush","draw_get_alpha","draw_get_color","draw_get_colour","draw_get_lighting","draw_get_swf_aa_level","draw_getpixel","draw_getpixel_ext","draw_healthbar","draw_highscore","draw_light_define_ambient","draw_light_define_direction","draw_light_define_point","draw_light_enable","draw_light_get","draw_light_get_ambient","draw_line","draw_line_color","draw_line_colour","draw_line_width","draw_line_width_color","draw_line_width_colour","draw_path","draw_point","draw_point_color","draw_point_colour","draw_primitive_begin","draw_primitive_begin_texture","draw_primitive_end","draw_rectangle","draw_rectangle_color","draw_rectangle_colour","draw_roundrect","draw_roundrect_color","draw_roundrect_color_ext","draw_roundrect_colour","draw_roundrect_colour_ext","draw_roundrect_ext","draw_self","draw_set_alpha","draw_set_alpha_test","draw_set_alpha_test_ref_value","draw_set_blend_mode","draw_set_blend_mode_ext","draw_set_circle_precision","draw_set_color","draw_set_color_write_enable","draw_set_colour","draw_set_font","draw_set_halign","draw_set_lighting","draw_set_swf_aa_level","draw_set_valign","draw_skeleton","draw_skeleton_collision","draw_skeleton_instance","draw_skeleton_time","draw_sprite","draw_sprite_ext","draw_sprite_general","draw_sprite_part","draw_sprite_part_ext","draw_sprite_pos","draw_sprite_stretched","draw_sprite_stretched_ext","draw_sprite_tiled","draw_sprite_tiled_ext","draw_surface","draw_surface_ext","draw_surface_general","draw_surface_part","draw_surface_part_ext","draw_surface_stretched","draw_surface_stretched_ext","draw_surface_tiled","draw_surface_tiled_ext","draw_text","draw_text_color","draw_text_colour","draw_text_ext","draw_text_ext_color","draw_text_ext_colour","draw_text_ext_transformed","draw_text_ext_transformed_color","draw_text_ext_transformed_colour","draw_text_transformed","draw_text_transformed_color","draw_text_transformed_colour","draw_texture_flush","draw_tile","draw_tilemap","draw_triangle","draw_triangle_color","draw_triangle_colour","draw_vertex","draw_vertex_color","draw_vertex_colour","draw_vertex_texture","draw_vertex_texture_color","draw_vertex_texture_colour","ds_exists","ds_grid_add","ds_grid_add_disk","ds_grid_add_grid_region","ds_grid_add_region","ds_grid_clear","ds_grid_copy","ds_grid_create","ds_grid_destroy","ds_grid_get","ds_grid_get_disk_max","ds_grid_get_disk_mean","ds_grid_get_disk_min","ds_grid_get_disk_sum","ds_grid_get_max","ds_grid_get_mean","ds_grid_get_min","ds_grid_get_sum","ds_grid_height","ds_grid_multiply","ds_grid_multiply_disk","ds_grid_multiply_grid_region","ds_grid_multiply_region","ds_grid_read","ds_grid_resize","ds_grid_set","ds_grid_set_disk","ds_grid_set_grid_region","ds_grid_set_region","ds_grid_shuffle","ds_grid_sort","ds_grid_value_disk_exists","ds_grid_value_disk_x","ds_grid_value_disk_y","ds_grid_value_exists","ds_grid_value_x","ds_grid_value_y","ds_grid_width","ds_grid_write","ds_list_add","ds_list_clear","ds_list_copy","ds_list_create","ds_list_delete","ds_list_destroy","ds_list_empty","ds_list_find_index","ds_list_find_value","ds_list_insert","ds_list_mark_as_list","ds_list_mark_as_map","ds_list_read","ds_list_replace","ds_list_set","ds_list_shuffle","ds_list_size","ds_list_sort","ds_list_write","ds_map_add","ds_map_add_list","ds_map_add_map","ds_map_clear","ds_map_copy","ds_map_create","ds_map_delete","ds_map_destroy","ds_map_empty","ds_map_exists","ds_map_find_first","ds_map_find_last","ds_map_find_next","ds_map_find_previous","ds_map_find_value","ds_map_read","ds_map_replace","ds_map_replace_list","ds_map_replace_map","ds_map_secure_load","ds_map_secure_load_buffer","ds_map_secure_save","ds_map_secure_save_buffer","ds_map_set","ds_map_size","ds_map_write","ds_priority_add","ds_priority_change_priority","ds_priority_clear","ds_priority_copy","ds_priority_create","ds_priority_delete_max","ds_priority_delete_min","ds_priority_delete_value","ds_priority_destroy","ds_priority_empty","ds_priority_find_max","ds_priority_find_min","ds_priority_find_priority","ds_priority_read","ds_priority_size","ds_priority_write","ds_queue_clear","ds_queue_copy","ds_queue_create","ds_queue_dequeue","ds_queue_destroy","ds_queue_empty","ds_queue_enqueue","ds_queue_head","ds_queue_read","ds_queue_size","ds_queue_tail","ds_queue_write","ds_set_precision","ds_stack_clear","ds_stack_copy","ds_stack_create","ds_stack_destroy","ds_stack_empty","ds_stack_pop","ds_stack_push","ds_stack_read","ds_stack_size","ds_stack_top","ds_stack_write","dsin","dtan","effect_clear","effect_create_above","effect_create_below","environment_get_variable","event_inherited","event_perform","event_perform_object","event_user","exp","external_call","external_define","external_free","facebook_accesstoken","facebook_check_permission","facebook_dialog","facebook_graph_request","facebook_init","facebook_launch_offerwall","facebook_login","facebook_logout","facebook_post_message","facebook_request_publish_permissions","facebook_request_read_permissions","facebook_send_invite","facebook_status","facebook_user_id","file_attributes","file_bin_close","file_bin_open","file_bin_position","file_bin_read_byte","file_bin_rewrite","file_bin_seek","file_bin_size","file_bin_write_byte","file_copy","file_delete","file_exists","file_find_close","file_find_first","file_find_next","file_rename","file_text_close","file_text_eof","file_text_eoln","file_text_open_append","file_text_open_from_string","file_text_open_read","file_text_open_write","file_text_read_real","file_text_read_string","file_text_readln","file_text_write_real","file_text_write_string","file_text_writeln","filename_change_ext","filename_dir","filename_drive","filename_ext","filename_name","filename_path","floor","font_add","font_add_enable_aa","font_add_get_enable_aa","font_add_sprite","font_add_sprite_ext","font_delete","font_exists","font_get_bold","font_get_first","font_get_fontname","font_get_italic","font_get_last","font_get_name","font_get_size","font_get_texture","font_get_uvs","font_replace","font_replace_sprite","font_replace_sprite_ext","font_set_cache_size","font_texture_page_size","frac","game_end","game_get_speed","game_load","game_load_buffer","game_restart","game_save","game_save_buffer","game_set_speed","gamepad_axis_count","gamepad_axis_value","gamepad_button_check","gamepad_button_check_pressed","gamepad_button_check_released","gamepad_button_count","gamepad_button_value","gamepad_get_axis_deadzone","gamepad_get_button_threshold","gamepad_get_description","gamepad_get_device_count","gamepad_is_connected","gamepad_is_supported","gamepad_set_axis_deadzone","gamepad_set_button_threshold","gamepad_set_color","gamepad_set_colour","gamepad_set_vibration","gesture_double_tap_distance","gesture_double_tap_time","gesture_drag_distance","gesture_drag_time","gesture_flick_speed","gesture_get_double_tap_distance","gesture_get_double_tap_time","gesture_get_drag_distance","gesture_get_drag_time","gesture_get_flick_speed","gesture_get_pinch_angle_away","gesture_get_pinch_angle_towards","gesture_get_pinch_distance","gesture_get_rotate_angle","gesture_get_rotate_time","gesture_get_tap_count","gesture_pinch_angle_away","gesture_pinch_angle_towards","gesture_pinch_distance","gesture_rotate_angle","gesture_rotate_time","gesture_tap_count","get_integer","get_integer_async","get_login_async","get_open_filename","get_open_filename_ext","get_save_filename","get_save_filename_ext","get_string","get_string_async","get_timer","gml_pragma","gml_release_mode","gpu_get_alphatestenable","gpu_get_alphatestfunc","gpu_get_alphatestref","gpu_get_blendenable","gpu_get_blendmode","gpu_get_blendmode_dest","gpu_get_blendmode_destalpha","gpu_get_blendmode_ext","gpu_get_blendmode_ext_sepalpha","gpu_get_blendmode_src","gpu_get_blendmode_srcalpha","gpu_get_colorwriteenable","gpu_get_colourwriteenable","gpu_get_cullmode","gpu_get_fog","gpu_get_lightingenable","gpu_get_state","gpu_get_tex_filter","gpu_get_tex_filter_ext","gpu_get_tex_max_aniso","gpu_get_tex_max_aniso_ext","gpu_get_tex_max_mip","gpu_get_tex_max_mip_ext","gpu_get_tex_min_mip","gpu_get_tex_min_mip_ext","gpu_get_tex_mip_bias","gpu_get_tex_mip_bias_ext","gpu_get_tex_mip_enable","gpu_get_tex_mip_enable_ext","gpu_get_tex_mip_filter","gpu_get_tex_mip_filter_ext","gpu_get_tex_repeat","gpu_get_tex_repeat_ext","gpu_get_texfilter","gpu_get_texfilter_ext","gpu_get_texrepeat","gpu_get_texrepeat_ext","gpu_get_zfunc","gpu_get_ztestenable","gpu_get_zwriteenable","gpu_pop_state","gpu_push_state","gpu_set_alphatestenable","gpu_set_alphatestfunc","gpu_set_alphatestref","gpu_set_blendenable","gpu_set_blendmode","gpu_set_blendmode_ext","gpu_set_blendmode_ext_sepalpha","gpu_set_colorwriteenable","gpu_set_colourwriteenable","gpu_set_cullmode","gpu_set_fog","gpu_set_lightingenable","gpu_set_state","gpu_set_tex_filter","gpu_set_tex_filter_ext","gpu_set_tex_max_aniso","gpu_set_tex_max_aniso_ext","gpu_set_tex_max_mip","gpu_set_tex_max_mip_ext","gpu_set_tex_min_mip","gpu_set_tex_min_mip_ext","gpu_set_tex_mip_bias","gpu_set_tex_mip_bias_ext","gpu_set_tex_mip_enable","gpu_set_tex_mip_enable_ext","gpu_set_tex_mip_filter","gpu_set_tex_mip_filter_ext","gpu_set_tex_repeat","gpu_set_tex_repeat_ext","gpu_set_texfilter","gpu_set_texfilter_ext","gpu_set_texrepeat","gpu_set_texrepeat_ext","gpu_set_zfunc","gpu_set_ztestenable","gpu_set_zwriteenable","highscore_add","highscore_clear","highscore_name","highscore_value","http_get","http_get_file","http_post_string","http_request","iap_acquire","iap_activate","iap_consume","iap_enumerate_products","iap_product_details","iap_purchase_details","iap_restore_all","iap_status","ini_close","ini_key_delete","ini_key_exists","ini_open","ini_open_from_string","ini_read_real","ini_read_string","ini_section_delete","ini_section_exists","ini_write_real","ini_write_string","instance_activate_all","instance_activate_layer","instance_activate_object","instance_activate_region","instance_change","instance_copy","instance_create","instance_create_depth","instance_create_layer","instance_deactivate_all","instance_deactivate_layer","instance_deactivate_object","instance_deactivate_region","instance_destroy","instance_exists","instance_find","instance_furthest","instance_id_get","instance_nearest","instance_number","instance_place","instance_place_list","instance_position","instance_position_list","int64","io_clear","irandom","irandom_range","is_array","is_bool","is_infinity","is_int32","is_int64","is_matrix","is_method","is_nan","is_numeric","is_ptr","is_real","is_string","is_struct","is_undefined","is_vec3","is_vec4","json_decode","json_encode","keyboard_check","keyboard_check_direct","keyboard_check_pressed","keyboard_check_released","keyboard_clear","keyboard_get_map","keyboard_get_numlock","keyboard_key_press","keyboard_key_release","keyboard_set_map","keyboard_set_numlock","keyboard_unset_map","keyboard_virtual_height","keyboard_virtual_hide","keyboard_virtual_show","keyboard_virtual_status","layer_add_instance","layer_background_alpha","layer_background_blend","layer_background_change","layer_background_create","layer_background_destroy","layer_background_exists","layer_background_get_alpha","layer_background_get_blend","layer_background_get_htiled","layer_background_get_id","layer_background_get_index","layer_background_get_speed","layer_background_get_sprite","layer_background_get_stretch","layer_background_get_visible","layer_background_get_vtiled","layer_background_get_xscale","layer_background_get_yscale","layer_background_htiled","layer_background_index","layer_background_speed","layer_background_sprite","layer_background_stretch","layer_background_visible","layer_background_vtiled","layer_background_xscale","layer_background_yscale","layer_create","layer_depth","layer_destroy","layer_destroy_instances","layer_element_move","layer_exists","layer_force_draw_depth","layer_get_all","layer_get_all_elements","layer_get_depth","layer_get_element_layer","layer_get_element_type","layer_get_forced_depth","layer_get_hspeed","layer_get_id","layer_get_id_at_depth","layer_get_name","layer_get_script_begin","layer_get_script_end","layer_get_shader","layer_get_target_room","layer_get_visible","layer_get_vspeed","layer_get_x","layer_get_y","layer_has_instance","layer_hspeed","layer_instance_get_instance","layer_is_draw_depth_forced","layer_reset_target_room","layer_script_begin","layer_script_end","layer_set_target_room","layer_set_visible","layer_shader","layer_sprite_alpha","layer_sprite_angle","layer_sprite_blend","layer_sprite_change","layer_sprite_create","layer_sprite_destroy","layer_sprite_exists","layer_sprite_get_alpha","layer_sprite_get_angle","layer_sprite_get_blend","layer_sprite_get_id","layer_sprite_get_index","layer_sprite_get_speed","layer_sprite_get_sprite","layer_sprite_get_x","layer_sprite_get_xscale","layer_sprite_get_y","layer_sprite_get_yscale","layer_sprite_index","layer_sprite_speed","layer_sprite_x","layer_sprite_xscale","layer_sprite_y","layer_sprite_yscale","layer_tile_alpha","layer_tile_blend","layer_tile_change","layer_tile_create","layer_tile_destroy","layer_tile_exists","layer_tile_get_alpha","layer_tile_get_blend","layer_tile_get_region","layer_tile_get_sprite","layer_tile_get_visible","layer_tile_get_x","layer_tile_get_xscale","layer_tile_get_y","layer_tile_get_yscale","layer_tile_region","layer_tile_visible","layer_tile_x","layer_tile_xscale","layer_tile_y","layer_tile_yscale","layer_tilemap_create","layer_tilemap_destroy","layer_tilemap_exists","layer_tilemap_get_id","layer_vspeed","layer_x","layer_y","lengthdir_x","lengthdir_y","lerp","ln","load_csv","log10","log2","logn","make_color_hsv","make_color_rgb","make_colour_hsv","make_colour_rgb","math_get_epsilon","math_set_epsilon","matrix_build","matrix_build_identity","matrix_build_lookat","matrix_build_projection_ortho","matrix_build_projection_perspective","matrix_build_projection_perspective_fov","matrix_get","matrix_multiply","matrix_set","matrix_stack_clear","matrix_stack_is_empty","matrix_stack_multiply","matrix_stack_pop","matrix_stack_push","matrix_stack_set","matrix_stack_top","matrix_transform_vertex","max","md5_file","md5_string_unicode","md5_string_utf8","mean","median","merge_color","merge_colour","min","motion_add","motion_set","mouse_check_button","mouse_check_button_pressed","mouse_check_button_released","mouse_clear","mouse_wheel_down","mouse_wheel_up","move_bounce_all","move_bounce_solid","move_contact_all","move_contact_solid","move_outside_all","move_outside_solid","move_random","move_snap","move_towards_point","move_wrap","mp_grid_add_cell","mp_grid_add_instances","mp_grid_add_rectangle","mp_grid_clear_all","mp_grid_clear_cell","mp_grid_clear_rectangle","mp_grid_create","mp_grid_destroy","mp_grid_draw","mp_grid_get_cell","mp_grid_path","mp_grid_to_ds_grid","mp_linear_path","mp_linear_path_object","mp_linear_step","mp_linear_step_object","mp_potential_path","mp_potential_path_object","mp_potential_settings","mp_potential_step","mp_potential_step_object","network_connect","network_connect_raw","network_create_server","network_create_server_raw","network_create_socket","network_create_socket_ext","network_destroy","network_resolve","network_send_broadcast","network_send_packet","network_send_raw","network_send_udp","network_send_udp_raw","network_set_config","network_set_timeout","object_exists","object_get_depth","object_get_mask","object_get_name","object_get_parent","object_get_persistent","object_get_physics","object_get_solid","object_get_sprite","object_get_visible","object_is_ancestor","object_set_mask","object_set_persistent","object_set_solid","object_set_sprite","object_set_visible","ord","os_get_config","os_get_info","os_get_language","os_get_region","os_is_network_connected","os_is_paused","os_lock_orientation","os_powersave_enable","parameter_count","parameter_string","part_emitter_burst","part_emitter_clear","part_emitter_create","part_emitter_destroy","part_emitter_destroy_all","part_emitter_exists","part_emitter_region","part_emitter_stream","part_particles_clear","part_particles_count","part_particles_create","part_particles_create_color","part_particles_create_colour","part_system_automatic_draw","part_system_automatic_update","part_system_clear","part_system_create","part_system_create_layer","part_system_depth","part_system_destroy","part_system_draw_order","part_system_drawit","part_system_exists","part_system_get_layer","part_system_layer","part_system_position","part_system_update","part_type_alpha1","part_type_alpha2","part_type_alpha3","part_type_blend","part_type_clear","part_type_color1","part_type_color2","part_type_color3","part_type_color_hsv","part_type_color_mix","part_type_color_rgb","part_type_colour1","part_type_colour2","part_type_colour3","part_type_colour_hsv","part_type_colour_mix","part_type_colour_rgb","part_type_create","part_type_death","part_type_destroy","part_type_direction","part_type_exists","part_type_gravity","part_type_life","part_type_orientation","part_type_scale","part_type_shape","part_type_size","part_type_speed","part_type_sprite","part_type_step","path_add","path_add_point","path_append","path_assign","path_change_point","path_clear_points","path_delete","path_delete_point","path_duplicate","path_end","path_exists","path_flip","path_get_closed","path_get_kind","path_get_length","path_get_name","path_get_number","path_get_point_speed","path_get_point_x","path_get_point_y","path_get_precision","path_get_speed","path_get_time","path_get_x","path_get_y","path_insert_point","path_mirror","path_rescale","path_reverse","path_rotate","path_set_closed","path_set_kind","path_set_precision","path_shift","path_start","physics_apply_angular_impulse","physics_apply_force","physics_apply_impulse","physics_apply_local_force","physics_apply_local_impulse","physics_apply_torque","physics_draw_debug","physics_fixture_add_point","physics_fixture_bind","physics_fixture_bind_ext","physics_fixture_create","physics_fixture_delete","physics_fixture_set_angular_damping","physics_fixture_set_awake","physics_fixture_set_box_shape","physics_fixture_set_chain_shape","physics_fixture_set_circle_shape","physics_fixture_set_collision_group","physics_fixture_set_density","physics_fixture_set_edge_shape","physics_fixture_set_friction","physics_fixture_set_kinematic","physics_fixture_set_linear_damping","physics_fixture_set_polygon_shape","physics_fixture_set_restitution","physics_fixture_set_sensor","physics_get_density","physics_get_friction","physics_get_restitution","physics_joint_delete","physics_joint_distance_create","physics_joint_enable_motor","physics_joint_friction_create","physics_joint_gear_create","physics_joint_get_value","physics_joint_prismatic_create","physics_joint_pulley_create","physics_joint_revolute_create","physics_joint_rope_create","physics_joint_set_value","physics_joint_weld_create","physics_joint_wheel_create","physics_mass_properties","physics_particle_count","physics_particle_create","physics_particle_delete","physics_particle_delete_region_box","physics_particle_delete_region_circle","physics_particle_delete_region_poly","physics_particle_draw","physics_particle_draw_ext","physics_particle_get_damping","physics_particle_get_data","physics_particle_get_data_particle","physics_particle_get_density","physics_particle_get_gravity_scale","physics_particle_get_group_flags","physics_particle_get_max_count","physics_particle_get_radius","physics_particle_group_add_point","physics_particle_group_begin","physics_particle_group_box","physics_particle_group_circle","physics_particle_group_count","physics_particle_group_delete","physics_particle_group_end","physics_particle_group_get_ang_vel","physics_particle_group_get_angle","physics_particle_group_get_centre_x","physics_particle_group_get_centre_y","physics_particle_group_get_data","physics_particle_group_get_inertia","physics_particle_group_get_mass","physics_particle_group_get_vel_x","physics_particle_group_get_vel_y","physics_particle_group_get_x","physics_particle_group_get_y","physics_particle_group_join","physics_particle_group_polygon","physics_particle_set_category_flags","physics_particle_set_damping","physics_particle_set_density","physics_particle_set_flags","physics_particle_set_gravity_scale","physics_particle_set_group_flags","physics_particle_set_max_count","physics_particle_set_radius","physics_pause_enable","physics_remove_fixture","physics_set_density","physics_set_friction","physics_set_restitution","physics_test_overlap","physics_world_create","physics_world_draw_debug","physics_world_gravity","physics_world_update_iterations","physics_world_update_speed","place_empty","place_free","place_meeting","place_snapped","point_direction","point_distance","point_distance_3d","point_in_circle","point_in_rectangle","point_in_triangle","position_change","position_destroy","position_empty","position_meeting","power","ptr","push_cancel_local_notification","push_get_first_local_notification","push_get_next_local_notification","push_local_notification","radtodeg","random","random_get_seed","random_range","random_set_seed","randomise","randomize","real","rectangle_in_circle","rectangle_in_rectangle","rectangle_in_triangle","room_add","room_assign","room_duplicate","room_exists","room_get_camera","room_get_name","room_get_viewport","room_goto","room_goto_next","room_goto_previous","room_instance_add","room_instance_clear","room_next","room_previous","room_restart","room_set_background_color","room_set_background_colour","room_set_camera","room_set_height","room_set_persistent","room_set_view","room_set_view_enabled","room_set_viewport","room_set_width","round","screen_save","screen_save_part","script_execute","script_exists","script_get_name","sha1_file","sha1_string_unicode","sha1_string_utf8","shader_current","shader_enable_corner_id","shader_get_name","shader_get_sampler_index","shader_get_uniform","shader_is_compiled","shader_reset","shader_set","shader_set_uniform_f","shader_set_uniform_f_array","shader_set_uniform_i","shader_set_uniform_i_array","shader_set_uniform_matrix","shader_set_uniform_matrix_array","shaders_are_supported","shop_leave_rating","show_debug_message","show_debug_overlay","show_error","show_message","show_message_async","show_question","show_question_async","sign","sin","skeleton_animation_clear","skeleton_animation_get","skeleton_animation_get_duration","skeleton_animation_get_ext","skeleton_animation_get_frame","skeleton_animation_get_frames","skeleton_animation_list","skeleton_animation_mix","skeleton_animation_set","skeleton_animation_set_ext","skeleton_animation_set_frame","skeleton_attachment_create","skeleton_attachment_get","skeleton_attachment_set","skeleton_bone_data_get","skeleton_bone_data_set","skeleton_bone_state_get","skeleton_bone_state_set","skeleton_collision_draw_set","skeleton_get_bounds","skeleton_get_minmax","skeleton_get_num_bounds","skeleton_skin_get","skeleton_skin_list","skeleton_skin_set","skeleton_slot_data","sprite_add","sprite_add_from_surface","sprite_assign","sprite_collision_mask","sprite_create_from_surface","sprite_delete","sprite_duplicate","sprite_exists","sprite_flush","sprite_flush_multi","sprite_get_bbox_bottom","sprite_get_bbox_left","sprite_get_bbox_right","sprite_get_bbox_top","sprite_get_height","sprite_get_name","sprite_get_number","sprite_get_speed","sprite_get_speed_type","sprite_get_texture","sprite_get_tpe","sprite_get_uvs","sprite_get_width","sprite_get_xoffset","sprite_get_yoffset","sprite_merge","sprite_prefetch","sprite_prefetch_multi","sprite_replace","sprite_save","sprite_save_strip","sprite_set_alpha_from_sprite","sprite_set_cache_size","sprite_set_cache_size_ext","sprite_set_offset","sprite_set_speed","sqr","sqrt","steam_activate_overlay","steam_activate_overlay_browser","steam_activate_overlay_store","steam_activate_overlay_user","steam_available_languages","steam_clear_achievement","steam_create_leaderboard","steam_current_game_language","steam_download_friends_scores","steam_download_scores","steam_download_scores_around_user","steam_file_delete","steam_file_exists","steam_file_persisted","steam_file_read","steam_file_share","steam_file_size","steam_file_write","steam_file_write_file","steam_get_achievement","steam_get_app_id","steam_get_persona_name","steam_get_quota_free","steam_get_quota_total","steam_get_stat_avg_rate","steam_get_stat_float","steam_get_stat_int","steam_get_user_account_id","steam_get_user_persona_name","steam_get_user_steam_id","steam_initialised","steam_is_cloud_enabled_for_account","steam_is_cloud_enabled_for_app","steam_is_overlay_activated","steam_is_overlay_enabled","steam_is_screenshot_requested","steam_is_user_logged_on","steam_reset_all_stats","steam_reset_all_stats_achievements","steam_send_screenshot","steam_set_achievement","steam_set_stat_avg_rate","steam_set_stat_float","steam_set_stat_int","steam_stats_ready","steam_ugc_create_item","steam_ugc_create_query_all","steam_ugc_create_query_all_ex","steam_ugc_create_query_user","steam_ugc_create_query_user_ex","steam_ugc_download","steam_ugc_get_item_install_info","steam_ugc_get_item_update_info","steam_ugc_get_item_update_progress","steam_ugc_get_subscribed_items","steam_ugc_num_subscribed_items","steam_ugc_query_add_excluded_tag","steam_ugc_query_add_required_tag","steam_ugc_query_set_allow_cached_response","steam_ugc_query_set_cloud_filename_filter","steam_ugc_query_set_match_any_tag","steam_ugc_query_set_ranked_by_trend_days","steam_ugc_query_set_return_long_description","steam_ugc_query_set_return_total_only","steam_ugc_query_set_search_text","steam_ugc_request_item_details","steam_ugc_send_query","steam_ugc_set_item_content","steam_ugc_set_item_description","steam_ugc_set_item_preview","steam_ugc_set_item_tags","steam_ugc_set_item_title","steam_ugc_set_item_visibility","steam_ugc_start_item_update","steam_ugc_submit_item_update","steam_ugc_subscribe_item","steam_ugc_unsubscribe_item","steam_upload_score","steam_upload_score_buffer","steam_upload_score_buffer_ext","steam_upload_score_ext","steam_user_installed_dlc","steam_user_owns_dlc","string","string_byte_at","string_byte_length","string_char_at","string_copy","string_count","string_delete","string_digits","string_format","string_hash_to_newline","string_height","string_height_ext","string_insert","string_length","string_letters","string_lettersdigits","string_lower","string_ord_at","string_pos","string_repeat","string_replace","string_replace_all","string_set_byte_at","string_upper","string_width","string_width_ext","surface_copy","surface_copy_part","surface_create","surface_create_ext","surface_depth_disable","surface_exists","surface_free","surface_get_depth_disable","surface_get_height","surface_get_texture","surface_get_width","surface_getpixel","surface_getpixel_ext","surface_reset_target","surface_resize","surface_save","surface_save_part","surface_set_target","surface_set_target_ext","tan","texture_get_height","texture_get_texel_height","texture_get_texel_width","texture_get_uvs","texture_get_width","texture_global_scale","texture_set_stage","tile_get_empty","tile_get_flip","tile_get_index","tile_get_mirror","tile_get_rotate","tile_set_empty","tile_set_flip","tile_set_index","tile_set_mirror","tile_set_rotate","tilemap_clear","tilemap_get","tilemap_get_at_pixel","tilemap_get_cell_x_at_pixel","tilemap_get_cell_y_at_pixel","tilemap_get_frame","tilemap_get_global_mask","tilemap_get_height","tilemap_get_mask","tilemap_get_tile_height","tilemap_get_tile_width","tilemap_get_tileset","tilemap_get_width","tilemap_get_x","tilemap_get_y","tilemap_set","tilemap_set_at_pixel","tilemap_set_global_mask","tilemap_set_mask","tilemap_tileset","tilemap_x","tilemap_y","timeline_add","timeline_clear","timeline_delete","timeline_exists","timeline_get_name","timeline_max_moment","timeline_moment_add_script","timeline_moment_clear","timeline_size","typeof","url_get_domain","url_open","url_open_ext","url_open_full","variable_global_exists","variable_global_get","variable_global_set","variable_instance_exists","variable_instance_get","variable_instance_get_names","variable_instance_set","variable_struct_exists","variable_struct_get","variable_struct_get_names","variable_struct_names_count","variable_struct_remove","variable_struct_set","vertex_argb","vertex_begin","vertex_color","vertex_colour","vertex_create_buffer","vertex_create_buffer_ext","vertex_create_buffer_from_buffer","vertex_create_buffer_from_buffer_ext","vertex_delete_buffer","vertex_end","vertex_float1","vertex_float2","vertex_float3","vertex_float4","vertex_format_add_color","vertex_format_add_colour","vertex_format_add_custom","vertex_format_add_normal","vertex_format_add_position","vertex_format_add_position_3d","vertex_format_add_texcoord","vertex_format_add_textcoord","vertex_format_begin","vertex_format_delete","vertex_format_end","vertex_freeze","vertex_get_buffer_size","vertex_get_number","vertex_normal","vertex_position","vertex_position_3d","vertex_submit","vertex_texcoord","vertex_ubyte4","view_get_camera","view_get_hport","view_get_surface_id","view_get_visible","view_get_wport","view_get_xport","view_get_yport","view_set_camera","view_set_hport","view_set_surface_id","view_set_visible","view_set_wport","view_set_xport","view_set_yport","virtual_key_add","virtual_key_delete","virtual_key_hide","virtual_key_show","win8_appbar_add_element","win8_appbar_enable","win8_appbar_remove_element","win8_device_touchscreen_available","win8_license_initialize_sandbox","win8_license_trial_version","win8_livetile_badge_clear","win8_livetile_badge_notification","win8_livetile_notification_begin","win8_livetile_notification_end","win8_livetile_notification_expiry","win8_livetile_notification_image_add","win8_livetile_notification_secondary_begin","win8_livetile_notification_tag","win8_livetile_notification_text_add","win8_livetile_queue_enable","win8_livetile_tile_clear","win8_livetile_tile_notification","win8_search_add_suggestions","win8_search_disable","win8_search_enable","win8_secondarytile_badge_notification","win8_secondarytile_delete","win8_secondarytile_pin","win8_settingscharm_add_entry","win8_settingscharm_add_html_entry","win8_settingscharm_add_xaml_entry","win8_settingscharm_get_xaml_property","win8_settingscharm_remove_entry","win8_settingscharm_set_xaml_property","win8_share_file","win8_share_image","win8_share_screenshot","win8_share_text","win8_share_url","window_center","window_device","window_get_caption","window_get_color","window_get_colour","window_get_cursor","window_get_fullscreen","window_get_height","window_get_visible_rects","window_get_width","window_get_x","window_get_y","window_handle","window_has_focus","window_mouse_get_x","window_mouse_get_y","window_mouse_set","window_set_caption","window_set_color","window_set_colour","window_set_cursor","window_set_fullscreen","window_set_max_height","window_set_max_width","window_set_min_height","window_set_min_width","window_set_position","window_set_rectangle","window_set_size","window_view_mouse_get_x","window_view_mouse_get_y","window_views_mouse_get_x","window_views_mouse_get_y","winphone_license_trial_version","winphone_tile_back_content","winphone_tile_back_content_wide","winphone_tile_back_image","winphone_tile_back_image_wide","winphone_tile_back_title","winphone_tile_background_color","winphone_tile_background_colour","winphone_tile_count","winphone_tile_cycle_images","winphone_tile_front_image","winphone_tile_front_image_small","winphone_tile_front_image_wide","winphone_tile_icon_image","winphone_tile_small_background_image","winphone_tile_small_icon_image","winphone_tile_title","winphone_tile_wide_content","zip_unzip"], +literal:["all","false","noone","pointer_invalid","pointer_null","true","undefined"], +symbol:["ANSI_CHARSET","ARABIC_CHARSET","BALTIC_CHARSET","CHINESEBIG5_CHARSET","DEFAULT_CHARSET","EASTEUROPE_CHARSET","GB2312_CHARSET","GM_build_date","GM_runtime_version","GM_version","GREEK_CHARSET","HANGEUL_CHARSET","HEBREW_CHARSET","JOHAB_CHARSET","MAC_CHARSET","OEM_CHARSET","RUSSIAN_CHARSET","SHIFTJIS_CHARSET","SYMBOL_CHARSET","THAI_CHARSET","TURKISH_CHARSET","VIETNAMESE_CHARSET","achievement_achievement_info","achievement_filter_all_players","achievement_filter_favorites_only","achievement_filter_friends_only","achievement_friends_info","achievement_leaderboard_info","achievement_our_info","achievement_pic_loaded","achievement_show_achievement","achievement_show_bank","achievement_show_friend_picker","achievement_show_leaderboard","achievement_show_profile","achievement_show_purchase_prompt","achievement_show_ui","achievement_type_achievement_challenge","achievement_type_score_challenge","asset_font","asset_object","asset_path","asset_room","asset_script","asset_shader","asset_sound","asset_sprite","asset_tiles","asset_timeline","asset_unknown","audio_3d","audio_falloff_exponent_distance","audio_falloff_exponent_distance_clamped","audio_falloff_inverse_distance","audio_falloff_inverse_distance_clamped","audio_falloff_linear_distance","audio_falloff_linear_distance_clamped","audio_falloff_none","audio_mono","audio_new_system","audio_old_system","audio_stereo","bm_add","bm_complex","bm_dest_alpha","bm_dest_color","bm_dest_colour","bm_inv_dest_alpha","bm_inv_dest_color","bm_inv_dest_colour","bm_inv_src_alpha","bm_inv_src_color","bm_inv_src_colour","bm_max","bm_normal","bm_one","bm_src_alpha","bm_src_alpha_sat","bm_src_color","bm_src_colour","bm_subtract","bm_zero","browser_chrome","browser_edge","browser_firefox","browser_ie","browser_ie_mobile","browser_not_a_browser","browser_opera","browser_safari","browser_safari_mobile","browser_tizen","browser_unknown","browser_windows_store","buffer_bool","buffer_f16","buffer_f32","buffer_f64","buffer_fast","buffer_fixed","buffer_generalerror","buffer_grow","buffer_invalidtype","buffer_network","buffer_outofbounds","buffer_outofspace","buffer_s16","buffer_s32","buffer_s8","buffer_seek_end","buffer_seek_relative","buffer_seek_start","buffer_string","buffer_surface_copy","buffer_text","buffer_u16","buffer_u32","buffer_u64","buffer_u8","buffer_vbuffer","buffer_wrap","button_type","c_aqua","c_black","c_blue","c_dkgray","c_fuchsia","c_gray","c_green","c_lime","c_ltgray","c_maroon","c_navy","c_olive","c_orange","c_purple","c_red","c_silver","c_teal","c_white","c_yellow","cmpfunc_always","cmpfunc_equal","cmpfunc_greater","cmpfunc_greaterequal","cmpfunc_less","cmpfunc_lessequal","cmpfunc_never","cmpfunc_notequal","cr_appstart","cr_arrow","cr_beam","cr_cross","cr_default","cr_drag","cr_handpoint","cr_hourglass","cr_none","cr_size_all","cr_size_nesw","cr_size_ns","cr_size_nwse","cr_size_we","cr_uparrow","cull_clockwise","cull_counterclockwise","cull_noculling","device_emulator","device_ios_ipad","device_ios_ipad_retina","device_ios_iphone","device_ios_iphone5","device_ios_iphone6","device_ios_iphone6plus","device_ios_iphone_retina","device_ios_unknown","device_tablet","display_landscape","display_landscape_flipped","display_portrait","display_portrait_flipped","dll_cdecl","dll_stdcall","ds_type_grid","ds_type_list","ds_type_map","ds_type_priority","ds_type_queue","ds_type_stack","ef_cloud","ef_ellipse","ef_explosion","ef_firework","ef_flare","ef_rain","ef_ring","ef_smoke","ef_smokeup","ef_snow","ef_spark","ef_star","ev_alarm","ev_animation_end","ev_boundary","ev_cleanup","ev_close_button","ev_collision","ev_create","ev_destroy","ev_draw","ev_draw_begin","ev_draw_end","ev_draw_post","ev_draw_pre","ev_end_of_path","ev_game_end","ev_game_start","ev_gesture","ev_gesture_double_tap","ev_gesture_drag_end","ev_gesture_drag_start","ev_gesture_dragging","ev_gesture_flick","ev_gesture_pinch_end","ev_gesture_pinch_in","ev_gesture_pinch_out","ev_gesture_pinch_start","ev_gesture_rotate_end","ev_gesture_rotate_start","ev_gesture_rotating","ev_gesture_tap","ev_global_gesture_double_tap","ev_global_gesture_drag_end","ev_global_gesture_drag_start","ev_global_gesture_dragging","ev_global_gesture_flick","ev_global_gesture_pinch_end","ev_global_gesture_pinch_in","ev_global_gesture_pinch_out","ev_global_gesture_pinch_start","ev_global_gesture_rotate_end","ev_global_gesture_rotate_start","ev_global_gesture_rotating","ev_global_gesture_tap","ev_global_left_button","ev_global_left_press","ev_global_left_release","ev_global_middle_button","ev_global_middle_press","ev_global_middle_release","ev_global_right_button","ev_global_right_press","ev_global_right_release","ev_gui","ev_gui_begin","ev_gui_end","ev_joystick1_button1","ev_joystick1_button2","ev_joystick1_button3","ev_joystick1_button4","ev_joystick1_button5","ev_joystick1_button6","ev_joystick1_button7","ev_joystick1_button8","ev_joystick1_down","ev_joystick1_left","ev_joystick1_right","ev_joystick1_up","ev_joystick2_button1","ev_joystick2_button2","ev_joystick2_button3","ev_joystick2_button4","ev_joystick2_button5","ev_joystick2_button6","ev_joystick2_button7","ev_joystick2_button8","ev_joystick2_down","ev_joystick2_left","ev_joystick2_right","ev_joystick2_up","ev_keyboard","ev_keypress","ev_keyrelease","ev_left_button","ev_left_press","ev_left_release","ev_middle_button","ev_middle_press","ev_middle_release","ev_mouse","ev_mouse_enter","ev_mouse_leave","ev_mouse_wheel_down","ev_mouse_wheel_up","ev_no_button","ev_no_more_health","ev_no_more_lives","ev_other","ev_outside","ev_right_button","ev_right_press","ev_right_release","ev_room_end","ev_room_start","ev_step","ev_step_begin","ev_step_end","ev_step_normal","ev_trigger","ev_user0","ev_user1","ev_user2","ev_user3","ev_user4","ev_user5","ev_user6","ev_user7","ev_user8","ev_user9","ev_user10","ev_user11","ev_user12","ev_user13","ev_user14","ev_user15","fa_archive","fa_bottom","fa_center","fa_directory","fa_hidden","fa_left","fa_middle","fa_readonly","fa_right","fa_sysfile","fa_top","fa_volumeid","fb_login_default","fb_login_fallback_to_webview","fb_login_forcing_safari","fb_login_forcing_webview","fb_login_no_fallback_to_webview","fb_login_use_system_account","gamespeed_fps","gamespeed_microseconds","ge_lose","global","gp_axislh","gp_axislv","gp_axisrh","gp_axisrv","gp_face1","gp_face2","gp_face3","gp_face4","gp_padd","gp_padl","gp_padr","gp_padu","gp_select","gp_shoulderl","gp_shoulderlb","gp_shoulderr","gp_shoulderrb","gp_start","gp_stickl","gp_stickr","iap_available","iap_canceled","iap_ev_consume","iap_ev_product","iap_ev_purchase","iap_ev_restore","iap_ev_storeload","iap_failed","iap_purchased","iap_refunded","iap_status_available","iap_status_loading","iap_status_processing","iap_status_restoring","iap_status_unavailable","iap_status_uninitialised","iap_storeload_failed","iap_storeload_ok","iap_unavailable","input_type","kbv_autocapitalize_characters","kbv_autocapitalize_none","kbv_autocapitalize_sentences","kbv_autocapitalize_words","kbv_returnkey_continue","kbv_returnkey_default","kbv_returnkey_done","kbv_returnkey_emergency","kbv_returnkey_go","kbv_returnkey_google","kbv_returnkey_join","kbv_returnkey_next","kbv_returnkey_route","kbv_returnkey_search","kbv_returnkey_send","kbv_returnkey_yahoo","kbv_type_ascii","kbv_type_default","kbv_type_email","kbv_type_numbers","kbv_type_phone","kbv_type_phone_name","kbv_type_url","layerelementtype_background","layerelementtype_instance","layerelementtype_oldtilemap","layerelementtype_particlesystem","layerelementtype_sprite","layerelementtype_tile","layerelementtype_tilemap","layerelementtype_undefined","lb_disp_none","lb_disp_numeric","lb_disp_time_ms","lb_disp_time_sec","lb_sort_ascending","lb_sort_descending","lb_sort_none","leaderboard_type_number","leaderboard_type_time_mins_secs","lighttype_dir","lighttype_point","local","matrix_projection","matrix_view","matrix_world","mb_any","mb_left","mb_middle","mb_none","mb_right","mip_markedonly","mip_off","mip_on","network_config_connect_timeout","network_config_disable_reliable_udp","network_config_enable_reliable_udp","network_config_use_non_blocking_socket","network_socket_bluetooth","network_socket_tcp","network_socket_udp","network_type_connect","network_type_data","network_type_disconnect","network_type_non_blocking_connect","of_challen","of_challenge_tie","of_challenge_win","os_3ds","os_android","os_bb10","os_ios","os_linux","os_macosx","os_ps3","os_ps4","os_psvita","os_switch","os_symbian","os_tizen","os_tvos","os_unknown","os_uwp","os_wiiu","os_win32","os_win8native","os_windows","os_winphone","os_xbox360","os_xboxone","other","ov_achievements","ov_community","ov_friends","ov_gamegroup","ov_players","ov_settings","path_action_continue","path_action_restart","path_action_reverse","path_action_stop","phy_debug_render_aabb","phy_debug_render_collision_pairs","phy_debug_render_coms","phy_debug_render_core_shapes","phy_debug_render_joints","phy_debug_render_obb","phy_debug_render_shapes","phy_joint_anchor_1_x","phy_joint_anchor_1_y","phy_joint_anchor_2_x","phy_joint_anchor_2_y","phy_joint_angle","phy_joint_angle_limits","phy_joint_damping_ratio","phy_joint_frequency","phy_joint_length_1","phy_joint_length_2","phy_joint_lower_angle_limit","phy_joint_max_force","phy_joint_max_length","phy_joint_max_motor_force","phy_joint_max_motor_torque","phy_joint_max_torque","phy_joint_motor_force","phy_joint_motor_speed","phy_joint_motor_torque","phy_joint_reaction_force_x","phy_joint_reaction_force_y","phy_joint_reaction_torque","phy_joint_speed","phy_joint_translation","phy_joint_upper_angle_limit","phy_particle_data_flag_category","phy_particle_data_flag_color","phy_particle_data_flag_colour","phy_particle_data_flag_position","phy_particle_data_flag_typeflags","phy_particle_data_flag_velocity","phy_particle_flag_colormixing","phy_particle_flag_colourmixing","phy_particle_flag_elastic","phy_particle_flag_powder","phy_particle_flag_spring","phy_particle_flag_tensile","phy_particle_flag_viscous","phy_particle_flag_wall","phy_particle_flag_water","phy_particle_flag_zombie","phy_particle_group_flag_rigid","phy_particle_group_flag_solid","pi","pr_linelist","pr_linestrip","pr_pointlist","pr_trianglefan","pr_trianglelist","pr_trianglestrip","ps_distr_gaussian","ps_distr_invgaussian","ps_distr_linear","ps_shape_diamond","ps_shape_ellipse","ps_shape_line","ps_shape_rectangle","pt_shape_circle","pt_shape_cloud","pt_shape_disk","pt_shape_explosion","pt_shape_flare","pt_shape_line","pt_shape_pixel","pt_shape_ring","pt_shape_smoke","pt_shape_snow","pt_shape_spark","pt_shape_sphere","pt_shape_square","pt_shape_star","spritespeed_framespergameframe","spritespeed_framespersecond","text_type","tf_anisotropic","tf_linear","tf_point","tile_flip","tile_index_mask","tile_mirror","tile_rotate","timezone_local","timezone_utc","tm_countvsyncs","tm_sleep","ty_real","ty_string","ugc_filetype_community","ugc_filetype_microtrans","ugc_list_Favorited","ugc_list_Followed","ugc_list_Published","ugc_list_Subscribed","ugc_list_UsedOrPlayed","ugc_list_VotedDown","ugc_list_VotedOn","ugc_list_VotedUp","ugc_list_WillVoteLater","ugc_match_AllGuides","ugc_match_Artwork","ugc_match_Collections","ugc_match_ControllerBindings","ugc_match_IntegratedGuides","ugc_match_Items","ugc_match_Items_Mtx","ugc_match_Items_ReadyToUse","ugc_match_Screenshots","ugc_match_UsableInGame","ugc_match_Videos","ugc_match_WebGuides","ugc_query_AcceptedForGameRankedByAcceptanceDate","ugc_query_CreatedByFollowedUsersRankedByPublicationDate","ugc_query_CreatedByFriendsRankedByPublicationDate","ugc_query_FavoritedByFriendsRankedByPublicationDate","ugc_query_NotYetRated","ugc_query_RankedByNumTimesReported","ugc_query_RankedByPublicationDate","ugc_query_RankedByTextSearch","ugc_query_RankedByTotalVotesAsc","ugc_query_RankedByTrend","ugc_query_RankedByVote","ugc_query_RankedByVotesUp","ugc_result_success","ugc_sortorder_CreationOrderAsc","ugc_sortorder_CreationOrderDesc","ugc_sortorder_ForModeration","ugc_sortorder_LastUpdatedDesc","ugc_sortorder_SubscriptionDateDesc","ugc_sortorder_TitleAsc","ugc_sortorder_VoteScoreDesc","ugc_visibility_friends_only","ugc_visibility_private","ugc_visibility_public","vertex_type_color","vertex_type_colour","vertex_type_float1","vertex_type_float2","vertex_type_float3","vertex_type_float4","vertex_type_ubyte4","vertex_usage_binormal","vertex_usage_blendindices","vertex_usage_blendweight","vertex_usage_color","vertex_usage_colour","vertex_usage_depth","vertex_usage_fog","vertex_usage_normal","vertex_usage_position","vertex_usage_psize","vertex_usage_sample","vertex_usage_tangent","vertex_usage_texcoord","vertex_usage_textcoord","vk_add","vk_alt","vk_anykey","vk_backspace","vk_control","vk_decimal","vk_delete","vk_divide","vk_down","vk_end","vk_enter","vk_escape","vk_f1","vk_f2","vk_f3","vk_f4","vk_f5","vk_f6","vk_f7","vk_f8","vk_f9","vk_f10","vk_f11","vk_f12","vk_home","vk_insert","vk_lalt","vk_lcontrol","vk_left","vk_lshift","vk_multiply","vk_nokey","vk_numpad0","vk_numpad1","vk_numpad2","vk_numpad3","vk_numpad4","vk_numpad5","vk_numpad6","vk_numpad7","vk_numpad8","vk_numpad9","vk_pagedown","vk_pageup","vk_pause","vk_printscreen","vk_ralt","vk_rcontrol","vk_return","vk_right","vk_rshift","vk_shift","vk_space","vk_subtract","vk_tab","vk_up"], +"variable.language":["alarm","application_surface","argument","argument0","argument1","argument2","argument3","argument4","argument5","argument6","argument7","argument8","argument9","argument10","argument11","argument12","argument13","argument14","argument15","argument_count","argument_relative","async_load","background_color","background_colour","background_showcolor","background_showcolour","bbox_bottom","bbox_left","bbox_right","bbox_top","browser_height","browser_width","caption_health","caption_lives","caption_score","current_day","current_hour","current_minute","current_month","current_second","current_time","current_weekday","current_year","cursor_sprite","debug_mode","delta_time","depth","direction","display_aa","error_last","error_occurred","event_action","event_data","event_number","event_object","event_type","fps","fps_real","friction","game_display_name","game_id","game_project_name","game_save_id","gamemaker_pro","gamemaker_registered","gamemaker_version","gravity","gravity_direction","health","hspeed","iap_data","id|0","image_alpha","image_angle","image_blend","image_index","image_number","image_speed","image_xscale","image_yscale","instance_count","instance_id","keyboard_key","keyboard_lastchar","keyboard_lastkey","keyboard_string","layer","lives","mask_index","mouse_button","mouse_lastbutton","mouse_x","mouse_y","object_index","os_browser","os_device","os_type","os_version","path_endaction","path_index","path_orientation","path_position","path_positionprevious","path_scale","path_speed","persistent","phy_active","phy_angular_damping","phy_angular_velocity","phy_bullet","phy_col_normal_x","phy_col_normal_y","phy_collision_points","phy_collision_x","phy_collision_y","phy_com_x","phy_com_y","phy_dynamic","phy_fixed_rotation","phy_inertia","phy_kinematic","phy_linear_damping","phy_linear_velocity_x","phy_linear_velocity_y","phy_mass","phy_position_x","phy_position_xprevious","phy_position_y","phy_position_yprevious","phy_rotation","phy_sleeping","phy_speed","phy_speed_x","phy_speed_y","program_directory","room","room_caption","room_first","room_height","room_last","room_persistent","room_speed","room_width","score","self","show_health","show_lives","show_score","solid","speed","sprite_height","sprite_index","sprite_width","sprite_xoffset","sprite_yoffset","temp_directory","timeline_index","timeline_loop","timeline_position","timeline_running","timeline_speed","view_angle","view_camera","view_current","view_enabled","view_hborder","view_hport","view_hspeed","view_hview","view_object","view_surface_id","view_vborder","view_visible","view_vspeed","view_wport","view_wview","view_xport","view_xview","view_yport","view_yview","visible","vspeed","webgl_enabled","working_directory","xprevious","xstart","x|0","yprevious","ystart","y|0"] +}, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE] +})})();hljs.registerLanguage("gml",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/go.min.js b/src/app/resources/assets/highlight/languages/go.min.js new file mode 100644 index 0000000..db9fdfe --- /dev/null +++ b/src/app/resources/assets/highlight/languages/go.min.js @@ -0,0 +1,14 @@ +/*! `go` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={ +keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"], +type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"], +literal:["true","false","iota","nil"], +built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"] +};return{name:"Go",aliases:["golang"],keywords:n,illegal:"{var e=(()=>{"use strict";return e=>({name:"Golo",keywords:{ +keyword:["println","readln","print","import","module","function","local","return","let","var","while","for","foreach","times","in","case","when","match","with","break","continue","augment","augmentation","each","find","filter","reduce","if","then","else","otherwise","try","catch","finally","raise","throw","orIfNull","DynamicObject|10","DynamicVariable","struct","Observable","map","set","vector","list","array"], +literal:["true","false","null"]}, +contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{ +className:"meta",begin:"@[A-Za-z]+"}]})})();hljs.registerLanguage("golo",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/gradle.min.js b/src/app/resources/assets/highlight/languages/gradle.min.js new file mode 100644 index 0000000..bcb78e1 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/gradle.min.js @@ -0,0 +1,5 @@ +/*! `gradle` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Gradle",case_insensitive:!0, +keywords:["task","project","allprojects","subprojects","artifacts","buildscript","configurations","dependencies","repositories","sourceSets","description","delete","from","into","include","exclude","source","classpath","destinationDir","includes","options","sourceCompatibility","targetCompatibility","group","flatDir","doLast","doFirst","flatten","todir","fromdir","ant","def","abstract","break","case","catch","continue","default","do","else","extends","final","finally","for","if","implements","instanceof","native","new","private","protected","public","return","static","switch","synchronized","throw","throws","transient","try","volatile","while","strictfp","package","import","false","null","super","this","true","antlrtask","checkstyle","codenarc","copy","boolean","byte","char","class","double","float","int","interface","long","short","void","compile","runTime","file","fileTree","abs","any","append","asList","asWritable","call","collect","compareTo","count","div","dump","each","eachByte","eachFile","eachLine","every","find","findAll","flatten","getAt","getErr","getIn","getOut","getText","grep","immutable","inject","inspect","intersect","invokeMethods","isCase","join","leftShift","minus","multiply","newInputStream","newOutputStream","newPrintWriter","newReader","newWriter","next","plus","pop","power","previous","print","println","push","putAt","read","readBytes","readLines","reverse","reverseEach","round","size","sort","splitEachLine","step","subMap","times","toInteger","toList","tokenize","upto","waitForOrKill","withPrintWriter","withReader","withStream","withWriter","withWriterAppend","write","writeLine"], +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.REGEXP_MODE] +})})();hljs.registerLanguage("gradle",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/graphql.min.js b/src/app/resources/assets/highlight/languages/graphql.min.js new file mode 100644 index 0000000..9feb813 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/graphql.min.js @@ -0,0 +1,12 @@ +/*! `graphql` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex;return{name:"GraphQL", +aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,keywords:{ +keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"], +literal:["true","false","null"]}, +contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{ +scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation", +begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/, +end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{ +scope:"symbol",begin:a.concat(/[_A-Za-z][_0-9A-Za-z]*/,a.lookahead(/\s*:/)), +relevance:0}],illegal:[/[;<']/,/BEGIN/]}}})();hljs.registerLanguage("graphql",e) +})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/groovy.min.js b/src/app/resources/assets/highlight/languages/groovy.min.js new file mode 100644 index 0000000..6ad22da --- /dev/null +++ b/src/app/resources/assets/highlight/languages/groovy.min.js @@ -0,0 +1,21 @@ +/*! `groovy` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";function e(e,a={}){return a.variants=e,a} +return a=>{ +const n=a.regex,t="[A-Za-z0-9_$]+",r=e([a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.COMMENT("/\\*\\*","\\*/",{ +relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag", +begin:"@[A-Za-z]+"}]})]),s={className:"regexp",begin:/~?\/[^\/\n]+\//, +contains:[a.BACKSLASH_ESCAPE] +},i=e([a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]),l=e([{begin:/"""/,end:/"""/},{ +begin:/'''/,end:/'''/},{begin:"\\$/",end:"/\\$",relevance:10 +},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE],{className:"string"}),c={ +match:[/(class|interface|trait|enum|extends|implements)/,/\s+/,a.UNDERSCORE_IDENT_RE], +scope:{1:"keyword",3:"title.class"}};return{name:"Groovy",keywords:{ +"variable.language":"this super",literal:"true false null", +type:["byte","short","char","int","long","boolean","float","double","void"], +keyword:["def","as","in","assert","trait","abstract","static","volatile","transient","public","private","protected","synchronized","final","class","interface","enum","if","else","for","while","switch","case","break","default","continue","throw","throws","try","catch","finally","implements","extends","new","import","package","return","instanceof"] +},contains:[a.SHEBANG({binary:"groovy",relevance:10}),r,l,s,i,c,{ +className:"meta",begin:"@[A-Za-z]+",relevance:0},{className:"attr", +begin:t+"[ \t]*:",relevance:0},{begin:/\?/,end:/:/,relevance:0, +contains:[r,l,s,i,"self"]},{className:"symbol", +begin:"^[ \t]*"+n.lookahead(t+":"),excludeBegin:!0,end:t+":",relevance:0}], +illegal:/#|<\//}}})();hljs.registerLanguage("groovy",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/haml.min.js b/src/app/resources/assets/highlight/languages/haml.min.js new file mode 100644 index 0000000..793ad32 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/haml.min.js @@ -0,0 +1,18 @@ +/*! `haml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"HAML",case_insensitive:!0, +contains:[{className:"meta", +begin:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$", +relevance:10},e.COMMENT("^\\s*(!=#|=#|-#|/).*$",null,{relevance:0}),{ +begin:"^\\s*(-|=|!=)(?!#)",end:/$/,subLanguage:"ruby",excludeBegin:!0, +excludeEnd:!0},{className:"tag",begin:"^\\s*%",contains:[{ +className:"selector-tag",begin:"\\w+"},{className:"selector-id",begin:"#[\\w-]+" +},{className:"selector-class",begin:"\\.[\\w-]+"},{begin:/\{\s*/,end:/\s*\}/, +contains:[{begin:":\\w+\\s*=>",end:",\\s+",returnBegin:!0,endsWithParent:!0, +contains:[{className:"attr",begin:":\\w+" +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]},{ +begin:"\\(\\s*",end:"\\s*\\)",excludeEnd:!0,contains:[{begin:"\\w+\\s*=", +end:"\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attr", +begin:"\\w+",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+", +relevance:0}]}]}]},{begin:"^\\s*[=~]\\s*"},{begin:/#\{/,end:/\}/, +subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]})})() +;hljs.registerLanguage("haml",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/handlebars.min.js b/src/app/resources/assets/highlight/languages/handlebars.min.js new file mode 100644 index 0000000..a196d2f --- /dev/null +++ b/src/app/resources/assets/highlight/languages/handlebars.min.js @@ -0,0 +1,29 @@ +/*! `handlebars` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex,n={ +$pattern:/[\w.\/]+/, +built_in:["action","bindattr","collection","component","concat","debugger","each","each-in","get","hash","if","in","input","link-to","loc","log","lookup","mut","outlet","partial","query-params","render","template","textarea","unbound","unless","view","with","yield"] +},t=/\[\]|\[[^\]]+\]/,s=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,i=a.either(/""|"[^"]+"/,/''|'[^']+'/,t,s),r=a.concat(a.optional(/\.|\.\/|\//),i,a.anyNumberOfTimes(a.concat(/(\.|\/)/,i))),l=a.concat("(",t,"|",s,")(?==)"),c={ +begin:r},o=e.inherit(c,{keywords:{$pattern:/[\w.\/]+/, +literal:["true","false","undefined","null"]}}),m={begin:/\(/,end:/\)/},d={ +className:"attr",begin:l,relevance:0,starts:{begin:/=/,end:/=/,starts:{ +contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,o,m]}}},g={ +contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:/as\s+\|/, +keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},d,o,m],returnEnd:!0 +},b=e.inherit(c,{className:"name",keywords:n,starts:e.inherit(g,{end:/\)/})}) +;m.contains=[b];const u=e.inherit(c,{keywords:n,className:"name", +starts:e.inherit(g,{end:/\}\}/})}),h=e.inherit(c,{keywords:n,className:"name" +}),N=e.inherit(c,{className:"name",keywords:n,starts:e.inherit(g,{end:/\}\}/})}) +;return{name:"Handlebars", +aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0, +subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/, +skip:!0},e.COMMENT(/\{\{!--/,/--\}\}/),e.COMMENT(/\{\{!/,/\}\}/),{ +className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[u], +starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{ +className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[h]},{ +className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[u]},{ +className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{ +className:"template-tag",begin:/\{\{(?=else if)/,end:/\}\}/,keywords:"else if" +},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[h]},{ +className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[N]},{ +className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[N]}]}}})() +;hljs.registerLanguage("handlebars",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/haskell.min.js b/src/app/resources/assets/highlight/languages/haskell.min.js new file mode 100644 index 0000000..34eed3f --- /dev/null +++ b/src/app/resources/assets/highlight/languages/haskell.min.js @@ -0,0 +1,29 @@ +/*! `haskell` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={ +variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},a={ +className:"meta",begin:/\{-#/,end:/#-\}/},i={className:"meta",begin:"^#",end:"$" +},s={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},l={begin:"\\(", +end:"\\)",illegal:'"',contains:[a,i,{className:"type", +begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{ +begin:"[_a-z][\\w']*"}),n]},t="([0-9a-fA-F]_*)+",c={className:"number", +relevance:0,variants:[{ +match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{ +match:`\\b0[xX]_*(${t})(\\.(${t}))?([pP][+-]?(([0-9]_*)+))?\\b`},{ +match:"\\b0[oO](([0-7]_*)+)\\b"},{match:"\\b0[bB](([01]_*)+)\\b"}]};return{ +name:"Haskell",aliases:["hs"], +keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec", +contains:[{beginKeywords:"module",end:"where",keywords:"module where", +contains:[l,n],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$", +keywords:"import qualified as hiding",contains:[l,n],illegal:"\\W\\.|;"},{ +className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where", +keywords:"class family instance where",contains:[s,l,n]},{className:"class", +begin:"\\b(data|(new)?type)\\b",end:"$", +keywords:"data family type newtype deriving",contains:[a,s,l,{begin:/\{/, +end:/\}/,contains:l.contains},n]},{beginKeywords:"default",end:"$", +contains:[s,l,n]},{beginKeywords:"infix infixl infixr",end:"$", +contains:[e.C_NUMBER_MODE,n]},{begin:"\\bforeign\\b",end:"$", +keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe", +contains:[s,e.QUOTE_STRING_MODE,n]},{className:"meta", +begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$" +},a,i,e.QUOTE_STRING_MODE,c,s,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*" +}),n,{begin:"->|<-"}]}}})();hljs.registerLanguage("haskell",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/haxe.min.js b/src/app/resources/assets/highlight/languages/haxe.min.js new file mode 100644 index 0000000..edff4bb --- /dev/null +++ b/src/app/resources/assets/highlight/languages/haxe.min.js @@ -0,0 +1,26 @@ +/*! `haxe` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Haxe",aliases:["hx"],keywords:{ +keyword:"break case cast catch continue default do dynamic else enum extern for function here if import in inline never new override package private get set public return static super switch this throw trace try typedef untyped using var while Int Float String Bool Dynamic Void Array ", +built_in:"trace this",literal:"true false null _"},contains:[{ +className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{ +className:"subst",begin:"\\$\\{",end:"\\}"},{className:"subst",begin:"\\$", +end:/\W\}/}] +},e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{ +className:"meta",begin:"@:",end:"$"},{className:"meta",begin:"#",end:"$", +keywords:{keyword:"if else elseif end error"}},{className:"type", +begin:":[ \t]*",end:"[^A-Za-z0-9_ \t\\->]",excludeBegin:!0,excludeEnd:!0, +relevance:0},{className:"type",begin:":[ \t]*",end:"\\W",excludeBegin:!0, +excludeEnd:!0},{className:"type",begin:"new *",end:"\\W",excludeBegin:!0, +excludeEnd:!0},{className:"class",beginKeywords:"enum",end:"\\{", +contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"abstract", +end:"[\\{$]",contains:[{className:"type",begin:"\\(",end:"\\)",excludeBegin:!0, +excludeEnd:!0},{className:"type",begin:"from +",end:"\\W",excludeBegin:!0, +excludeEnd:!0},{className:"type",begin:"to +",end:"\\W",excludeBegin:!0, +excludeEnd:!0},e.TITLE_MODE],keywords:{keyword:"abstract from to"}},{ +className:"class",begin:"\\b(class|interface) +",end:"[\\{$]",excludeEnd:!0, +keywords:"class interface",contains:[{className:"keyword", +begin:"\\b(extends|implements) +",keywords:"extends implements",contains:[{ +className:"type",begin:e.IDENT_RE,relevance:0}]},e.TITLE_MODE]},{ +className:"function",beginKeywords:"function",end:"\\(",excludeEnd:!0, +illegal:"\\S",contains:[e.TITLE_MODE]}],illegal:/<\//})})() +;hljs.registerLanguage("haxe",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/hsp.min.js b/src/app/resources/assets/highlight/languages/hsp.min.js new file mode 100644 index 0000000..afbd131 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/hsp.min.js @@ -0,0 +1,14 @@ +/*! `hsp` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"HSP",case_insensitive:!0, +keywords:{$pattern:/[\w._]+/, +keyword:"goto gosub return break repeat loop continue wait await dim sdim foreach dimtype dup dupptr end stop newmod delmod mref run exgoto on mcall assert logmes newlab resume yield onexit onerror onkey onclick oncmd exist delete mkdir chdir dirlist bload bsave bcopy memfile if else poke wpoke lpoke getstr chdpm memexpand memcpy memset notesel noteadd notedel noteload notesave randomize noteunsel noteget split strrep setease button chgdisp exec dialog mmload mmplay mmstop mci pset pget syscolor mes print title pos circle cls font sysfont objsize picload color palcolor palette redraw width gsel gcopy gzoom gmode bmpsave hsvcolor getkey listbox chkbox combox input mesbox buffer screen bgscr mouse objsel groll line clrobj boxf objprm objmode stick grect grotate gsquare gradf objimage objskip objenable celload celdiv celput newcom querycom delcom cnvstow comres axobj winobj sendmsg comevent comevarg sarrayconv callfunc cnvwtos comevdisp libptr system hspstat hspver stat cnt err strsize looplev sublev iparam wparam lparam refstr refdval int rnd strlen length length2 length3 length4 vartype gettime peek wpeek lpeek varptr varuse noteinfo instr abs limit getease str strmid strf getpath strtrim sin cos tan atan sqrt double absf expf logf limitf powf geteasef mousex mousey mousew hwnd hinstance hdc ginfo objinfo dirinfo sysinfo thismod __hspver__ __hsp30__ __date__ __time__ __line__ __file__ _debug __hspdef__ and or xor not screen_normal screen_palette screen_hide screen_fixedsize screen_tool screen_frame gmode_gdi gmode_mem gmode_rgb0 gmode_alpha gmode_rgb0alpha gmode_add gmode_sub gmode_pixela ginfo_mx ginfo_my ginfo_act ginfo_sel ginfo_wx1 ginfo_wy1 ginfo_wx2 ginfo_wy2 ginfo_vx ginfo_vy ginfo_sizex ginfo_sizey ginfo_winx ginfo_winy ginfo_mesx ginfo_mesy ginfo_r ginfo_g ginfo_b ginfo_paluse ginfo_dispx ginfo_dispy ginfo_cx ginfo_cy ginfo_intid ginfo_newid ginfo_sx ginfo_sy objinfo_mode objinfo_bmscr objinfo_hwnd notemax notesize dir_cur dir_exe dir_win dir_sys dir_cmdline dir_desktop dir_mydoc dir_tv font_normal font_bold font_italic font_underline font_strikeout font_antialias objmode_normal objmode_guifont objmode_usefont gsquare_grad msgothic msmincho do until while wend for next _break _continue switch case default swbreak swend ddim ldim alloc m_pi rad2deg deg2rad ease_linear ease_quad_in ease_quad_out ease_quad_inout ease_cubic_in ease_cubic_out ease_cubic_inout ease_quartic_in ease_quartic_out ease_quartic_inout ease_bounce_in ease_bounce_out ease_bounce_inout ease_shake_in ease_shake_out ease_shake_inout ease_loop" +}, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{ +className:"string",begin:/\{"/,end:/"\}/,contains:[e.BACKSLASH_ESCAPE] +},e.COMMENT(";","$",{relevance:0}),{className:"meta",begin:"#",end:"$", +keywords:{ +keyword:"addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib" +},contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"string" +}),e.NUMBER_MODE,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE] +},{className:"symbol",begin:"^\\*(\\w+|@)"},e.NUMBER_MODE,e.C_NUMBER_MODE]})})() +;hljs.registerLanguage("hsp",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/http.min.js b/src/app/resources/assets/highlight/languages/http.min.js new file mode 100644 index 0000000..0e1a81a --- /dev/null +++ b/src/app/resources/assets/highlight/languages/http.min.js @@ -0,0 +1,14 @@ +/*! `http` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n="HTTP/(2|1\\.[01])",a={ +className:"attribute", +begin:e.regex.concat("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{ +contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$", +relevance:0}}]}},s=[a,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0} +}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{ +begin:"^(?="+n+" \\d{3})",end:/$/,contains:[{className:"meta",begin:n},{ +className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/, +contains:s}},{begin:"(?=^[A-Z]+ (.*?) "+n+"$)",end:/$/,contains:[{ +className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{ +className:"meta",begin:n},{className:"keyword",begin:"[A-Z]+"}],starts:{ +end:/\b\B/,illegal:/\S/,contains:s}},e.inherit(a,{relevance:0})]}}})() +;hljs.registerLanguage("http",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/hy.min.js b/src/app/resources/assets/highlight/languages/hy.min.js new file mode 100644 index 0000000..5ccbfbd --- /dev/null +++ b/src/app/resources/assets/highlight/languages/hy.min.js @@ -0,0 +1,16 @@ +/*! `hy` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a="a-zA-Z_\\-!.?+*=<>&#'",t="["+a+"]["+a+"0-9/;:]*",i={$pattern:t, +built_in:"!= % %= & &= * ** **= *= *map + += , --build-class-- --import-- -= . / // //= /= < << <<= <= = > >= >> >>= @ @= ^ ^= abs accumulate all and any ap-compose ap-dotimes ap-each ap-each-while ap-filter ap-first ap-if ap-last ap-map ap-map-when ap-pipe ap-reduce ap-reject apply as-> ascii assert assoc bin break butlast callable calling-module-name car case cdr chain chr coll? combinations compile compress cond cons cons? continue count curry cut cycle dec def default-method defclass defmacro defmacro-alias defmacro/g! defmain defmethod defmulti defn defn-alias defnc defnr defreader defseq del delattr delete-route dict-comp dir disassemble dispatch-reader-macro distinct divmod do doto drop drop-last drop-while empty? end-sequence eval eval-and-compile eval-when-compile even? every? except exec filter first flatten float? fn fnc fnr for for* format fraction genexpr gensym get getattr global globals group-by hasattr hash hex id identity if if* if-not if-python2 import in inc input instance? integer integer-char? integer? interleave interpose is is-coll is-cons is-empty is-even is-every is-float is-instance is-integer is-integer-char is-iterable is-iterator is-keyword is-neg is-none is-not is-numeric is-odd is-pos is-string is-symbol is-zero isinstance islice issubclass iter iterable? iterate iterator? keyword keyword? lambda last len let lif lif-not list* list-comp locals loop macro-error macroexpand macroexpand-1 macroexpand-all map max merge-with method-decorator min multi-decorator multicombinations name neg? next none? nonlocal not not-in not? nth numeric? oct odd? open or ord partition permutations pos? post-route postwalk pow prewalk print product profile/calls profile/cpu put-route quasiquote quote raise range read read-str recursive-replace reduce remove repeat repeatedly repr require rest round route route-with-methods rwm second seq set-comp setattr setv some sorted string string? sum switch symbol? take take-nth take-while tee try unless unquote unquote-splicing vars walk when while with with* with-decorator with-gensyms xi xor yield yield-from zero? zip zip-longest | |= ~" +},r={begin:t,relevance:0},n={className:"number",begin:"[-+]?\\d+(\\.\\d+)?", +relevance:0},s=e.inherit(e.QUOTE_STRING_MODE,{illegal:null +}),o=e.COMMENT(";","$",{relevance:0}),l={className:"literal", +begin:/\b([Tt]rue|[Ff]alse|nil|None)\b/},c={begin:"[\\[\\{]",end:"[\\]\\}]", +relevance:0},d={className:"comment",begin:"\\^"+t +},m=e.COMMENT("\\^\\{","\\}"),p={className:"symbol",begin:"[:]{1,2}"+t},u={ +begin:"\\(",end:"\\)"},f={endsWithParent:!0,relevance:0},g={className:"name", +relevance:0,keywords:i,begin:t,starts:f},h=[u,s,d,m,o,p,c,n,l,r] +;return u.contains=[e.COMMENT("comment",""),g,f],f.contains=h,c.contains=h,{ +name:"Hy",aliases:["hylang"],illegal:/\S/, +contains:[e.SHEBANG(),u,s,d,m,o,p,c,n,l]}}})();hljs.registerLanguage("hy",e) +})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/inform7.min.js b/src/app/resources/assets/highlight/languages/inform7.min.js new file mode 100644 index 0000000..426bcb5 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/inform7.min.js @@ -0,0 +1,11 @@ +/*! `inform7` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Inform 7",aliases:["i7"], +case_insensitive:!0,keywords:{ +keyword:"thing room person man woman animal container supporter backdrop door scenery open closed locked inside gender is are say understand kind of rule" +},contains:[{className:"string",begin:'"',end:'"',relevance:0,contains:[{ +className:"subst",begin:"\\[",end:"\\]"}]},{className:"section", +begin:/^(Volume|Book|Part|Chapter|Section|Table)\b/,end:"$"},{ +begin:/^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/, +end:":",contains:[{begin:"\\(This",end:"\\)"}]},{className:"comment", +begin:"\\[",end:"\\]",contains:["self"]}]})})() +;hljs.registerLanguage("inform7",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/ini.min.js b/src/app/resources/assets/highlight/languages/ini.min.js new file mode 100644 index 0000000..f882618 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/ini.min.js @@ -0,0 +1,15 @@ +/*! `ini` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,a={className:"number", +relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}] +},s=e.COMMENT();s.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const i={ +className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/ +}]},t={className:"literal",begin:/\bon|off|true|false|yes|no\b/},r={ +className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''", +end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"' +},{begin:"'",end:"'"}]},l={begin:/\[/,end:/\]/,contains:[s,t,i,r,a,"self"], +relevance:0},c=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{ +name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/, +contains:[s,{className:"section",begin:/\[+/,end:/\]+/},{ +begin:n.concat(c,"(\\s*\\.\\s*",c,")*",n.lookahead(/\s*=\s*[^#\s]/)), +className:"attr",starts:{end:/$/,contains:[s,l,t,i,r,a]}}]}}})() +;hljs.registerLanguage("ini",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/irpf90.min.js b/src/app/resources/assets/highlight/languages/irpf90.min.js new file mode 100644 index 0000000..ce3157c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/irpf90.min.js @@ -0,0 +1,15 @@ +/*! `irpf90` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,t=/(_[a-z_\d]+)?/,a=/([de][+-]?\d+)?/,i={className:"number", +variants:[{begin:n.concat(/\b\d+/,/\.(\d*)/,a,t)},{begin:n.concat(/\b\d+/,a,t) +},{begin:n.concat(/\.\d+/,a,t)}],relevance:0};return{name:"IRPF90", +case_insensitive:!0,keywords:{literal:".False. .True.", +keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read", +built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image IRP_ALIGN irp_here" +},illegal:/\/\*/,contains:[e.inherit(e.APOS_STRING_MODE,{className:"string", +relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{className:"string",relevance:0}),{ +className:"function",beginKeywords:"subroutine function program", +illegal:"[${=\\n]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params", +begin:"\\(",end:"\\)"}]},e.COMMENT("!","$",{relevance:0 +}),e.COMMENT("begin_doc","end_doc",{relevance:10}),i]}}})() +;hljs.registerLanguage("irpf90",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/isbl.min.js b/src/app/resources/assets/highlight/languages/isbl.min.js new file mode 100644 index 0000000..dccb42c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/isbl.min.js @@ -0,0 +1,25 @@ +/*! `isbl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var S=(()=>{"use strict";return S=>{ +const E="[A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_!][A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_0-9]*",_={ +className:"number",begin:S.NUMBER_RE,relevance:0},T={className:"string", +variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]},R={className:"doctag", +begin:"\\b(?:TODO|DONE|BEGIN|END|STUB|CHG|FIXME|NOTE|BUG|XXX)\\b",relevance:0 +},O={variants:[{className:"comment",begin:"//",end:"$",relevance:0, +contains:[S.PHRASAL_WORDS_MODE,R]},{className:"comment",begin:"/\\*",end:"\\*/", +relevance:0,contains:[S.PHRASAL_WORDS_MODE,R]}]},C={$pattern:E, +keyword:"and \u0438 else \u0438\u043d\u0430\u0447\u0435 endexcept endfinally endforeach \u043a\u043e\u043d\u0435\u0446\u0432\u0441\u0435 endif \u043a\u043e\u043d\u0435\u0446\u0435\u0441\u043b\u0438 endwhile \u043a\u043e\u043d\u0435\u0446\u043f\u043e\u043a\u0430 except exitfor finally foreach \u0432\u0441\u0435 if \u0435\u0441\u043b\u0438 in \u0432 not \u043d\u0435 or \u0438\u043b\u0438 try while \u043f\u043e\u043a\u0430 ", +built_in:"SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT SYSRES_CONST_ACCES_RIGHT_TYPE_FULL SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE SYSRES_CONST_ACCESS_NO_ACCESS_VIEW SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW SYSRES_CONST_ACCESS_RIGHTS_VIEW_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_TYPE_CHANGE SYSRES_CONST_ACCESS_TYPE_CHANGE_CODE SYSRES_CONST_ACCESS_TYPE_EXISTS SYSRES_CONST_ACCESS_TYPE_EXISTS_CODE SYSRES_CONST_ACCESS_TYPE_FULL SYSRES_CONST_ACCESS_TYPE_FULL_CODE SYSRES_CONST_ACCESS_TYPE_VIEW SYSRES_CONST_ACCESS_TYPE_VIEW_CODE SYSRES_CONST_ACTION_TYPE_ABORT SYSRES_CONST_ACTION_TYPE_ACCEPT SYSRES_CONST_ACTION_TYPE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ADD_ATTACHMENT SYSRES_CONST_ACTION_TYPE_CHANGE_CARD SYSRES_CONST_ACTION_TYPE_CHANGE_KIND SYSRES_CONST_ACTION_TYPE_CHANGE_STORAGE SYSRES_CONST_ACTION_TYPE_CONTINUE SYSRES_CONST_ACTION_TYPE_COPY SYSRES_CONST_ACTION_TYPE_CREATE SYSRES_CONST_ACTION_TYPE_CREATE_VERSION SYSRES_CONST_ACTION_TYPE_DELETE SYSRES_CONST_ACTION_TYPE_DELETE_ATTACHMENT SYSRES_CONST_ACTION_TYPE_DELETE_VERSION SYSRES_CONST_ACTION_TYPE_DISABLE_DELEGATE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ENABLE_DELEGATE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE_AND_PASSWORD SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_PASSWORD SYSRES_CONST_ACTION_TYPE_EXPORT_WITH_LOCK SYSRES_CONST_ACTION_TYPE_EXPORT_WITHOUT_LOCK SYSRES_CONST_ACTION_TYPE_IMPORT_WITH_UNLOCK SYSRES_CONST_ACTION_TYPE_IMPORT_WITHOUT_UNLOCK SYSRES_CONST_ACTION_TYPE_LIFE_CYCLE_STAGE SYSRES_CONST_ACTION_TYPE_LOCK SYSRES_CONST_ACTION_TYPE_LOCK_FOR_SERVER SYSRES_CONST_ACTION_TYPE_LOCK_MODIFY SYSRES_CONST_ACTION_TYPE_MARK_AS_READED SYSRES_CONST_ACTION_TYPE_MARK_AS_UNREADED SYSRES_CONST_ACTION_TYPE_MODIFY SYSRES_CONST_ACTION_TYPE_MODIFY_CARD SYSRES_CONST_ACTION_TYPE_MOVE_TO_ARCHIVE SYSRES_CONST_ACTION_TYPE_OFF_ENCRYPTION SYSRES_CONST_ACTION_TYPE_PASSWORD_CHANGE SYSRES_CONST_ACTION_TYPE_PERFORM SYSRES_CONST_ACTION_TYPE_RECOVER_FROM_LOCAL_COPY SYSRES_CONST_ACTION_TYPE_RESTART SYSRES_CONST_ACTION_TYPE_RESTORE_FROM_ARCHIVE SYSRES_CONST_ACTION_TYPE_REVISION SYSRES_CONST_ACTION_TYPE_SEND_BY_MAIL SYSRES_CONST_ACTION_TYPE_SIGN SYSRES_CONST_ACTION_TYPE_START SYSRES_CONST_ACTION_TYPE_UNLOCK SYSRES_CONST_ACTION_TYPE_UNLOCK_FROM_SERVER SYSRES_CONST_ACTION_TYPE_VERSION_STATE SYSRES_CONST_ACTION_TYPE_VERSION_VISIBILITY SYSRES_CONST_ACTION_TYPE_VIEW SYSRES_CONST_ACTION_TYPE_VIEW_SHADOW_COPY SYSRES_CONST_ACTION_TYPE_WORKFLOW_DESCRIPTION_MODIFY SYSRES_CONST_ACTION_TYPE_WRITE_HISTORY SYSRES_CONST_ACTIVE_VERSION_STATE_PICK_VALUE SYSRES_CONST_ADD_REFERENCE_MODE_NAME SYSRES_CONST_ADDITION_REQUISITE_CODE SYSRES_CONST_ADDITIONAL_PARAMS_REQUISITE_CODE SYSRES_CONST_ADITIONAL_JOB_END_DATE_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_READ_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_START_DATE_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_STATE_REQUISITE_NAME SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE_ACTION SYSRES_CONST_ALL_ACCEPT_CONDITION_RUS SYSRES_CONST_ALL_USERS_GROUP SYSRES_CONST_ALL_USERS_GROUP_NAME SYSRES_CONST_ALL_USERS_SERVER_GROUP_NAME SYSRES_CONST_ALLOWED_ACCESS_TYPE_CODE SYSRES_CONST_ALLOWED_ACCESS_TYPE_NAME SYSRES_CONST_APP_VIEWER_TYPE_REQUISITE_CODE SYSRES_CONST_APPROVING_SIGNATURE_NAME SYSRES_CONST_APPROVING_SIGNATURE_REQUISITE_CODE SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE_CODE SYSRES_CONST_ATTACH_TYPE_COMPONENT_TOKEN SYSRES_CONST_ATTACH_TYPE_DOC SYSRES_CONST_ATTACH_TYPE_EDOC SYSRES_CONST_ATTACH_TYPE_FOLDER SYSRES_CONST_ATTACH_TYPE_JOB SYSRES_CONST_ATTACH_TYPE_REFERENCE SYSRES_CONST_ATTACH_TYPE_TASK SYSRES_CONST_AUTH_ENCODED_PASSWORD SYSRES_CONST_AUTH_ENCODED_PASSWORD_CODE SYSRES_CONST_AUTH_NOVELL SYSRES_CONST_AUTH_PASSWORD SYSRES_CONST_AUTH_PASSWORD_CODE SYSRES_CONST_AUTH_WINDOWS SYSRES_CONST_AUTHENTICATING_SIGNATURE_NAME SYSRES_CONST_AUTHENTICATING_SIGNATURE_REQUISITE_CODE SYSRES_CONST_AUTO_ENUM_METHOD_FLAG SYSRES_CONST_AUTO_NUMERATION_CODE SYSRES_CONST_AUTO_STRONG_ENUM_METHOD_FLAG SYSRES_CONST_AUTOTEXT_NAME_REQUISITE_CODE SYSRES_CONST_AUTOTEXT_TEXT_REQUISITE_CODE SYSRES_CONST_AUTOTEXT_USAGE_ALL SYSRES_CONST_AUTOTEXT_USAGE_ALL_CODE SYSRES_CONST_AUTOTEXT_USAGE_SIGN SYSRES_CONST_AUTOTEXT_USAGE_SIGN_CODE SYSRES_CONST_AUTOTEXT_USAGE_WORK SYSRES_CONST_AUTOTEXT_USAGE_WORK_CODE SYSRES_CONST_AUTOTEXT_USE_ANYWHERE_CODE SYSRES_CONST_AUTOTEXT_USE_ON_SIGNING_CODE SYSRES_CONST_AUTOTEXT_USE_ON_WORK_CODE SYSRES_CONST_BEGIN_DATE_REQUISITE_CODE SYSRES_CONST_BLACK_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_BLUE_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_BTN_PART SYSRES_CONST_CALCULATED_ROLE_TYPE_CODE SYSRES_CONST_CALL_TYPE_VARIABLE_BUTTON_VALUE SYSRES_CONST_CALL_TYPE_VARIABLE_PROGRAM_VALUE SYSRES_CONST_CANCEL_MESSAGE_FUNCTION_RESULT SYSRES_CONST_CARD_PART SYSRES_CONST_CARD_REFERENCE_MODE_NAME SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_ENCRYPT_VALUE SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_AND_ENCRYPT_VALUE SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_VALUE SYSRES_CONST_CHECK_PARAM_VALUE_DATE_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_FLOAT_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_INTEGER_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_PICK_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_REEFRENCE_PARAM_TYPE SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_FEMININE SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_CODE_COMPONENT_TYPE_ADMIN SYSRES_CONST_CODE_COMPONENT_TYPE_DEVELOPER SYSRES_CONST_CODE_COMPONENT_TYPE_DOCS SYSRES_CONST_CODE_COMPONENT_TYPE_EDOC_CARDS SYSRES_CONST_CODE_COMPONENT_TYPE_EXTERNAL_EXECUTABLE SYSRES_CONST_CODE_COMPONENT_TYPE_OTHER SYSRES_CONST_CODE_COMPONENT_TYPE_REFERENCE SYSRES_CONST_CODE_COMPONENT_TYPE_REPORT SYSRES_CONST_CODE_COMPONENT_TYPE_SCRIPT SYSRES_CONST_CODE_COMPONENT_TYPE_URL SYSRES_CONST_CODE_REQUISITE_ACCESS SYSRES_CONST_CODE_REQUISITE_CODE SYSRES_CONST_CODE_REQUISITE_COMPONENT SYSRES_CONST_CODE_REQUISITE_DESCRIPTION SYSRES_CONST_CODE_REQUISITE_EXCLUDE_COMPONENT SYSRES_CONST_CODE_REQUISITE_RECORD SYSRES_CONST_COMMENT_REQ_CODE SYSRES_CONST_COMMON_SETTINGS_REQUISITE_CODE SYSRES_CONST_COMP_CODE_GRD SYSRES_CONST_COMPONENT_GROUP_TYPE_REQUISITE_CODE SYSRES_CONST_COMPONENT_TYPE_ADMIN_COMPONENTS SYSRES_CONST_COMPONENT_TYPE_DEVELOPER_COMPONENTS SYSRES_CONST_COMPONENT_TYPE_DOCS SYSRES_CONST_COMPONENT_TYPE_EDOC_CARDS SYSRES_CONST_COMPONENT_TYPE_EDOCS SYSRES_CONST_COMPONENT_TYPE_EXTERNAL_EXECUTABLE SYSRES_CONST_COMPONENT_TYPE_OTHER SYSRES_CONST_COMPONENT_TYPE_REFERENCE_TYPES SYSRES_CONST_COMPONENT_TYPE_REFERENCES SYSRES_CONST_COMPONENT_TYPE_REPORTS SYSRES_CONST_COMPONENT_TYPE_SCRIPTS SYSRES_CONST_COMPONENT_TYPE_URL SYSRES_CONST_COMPONENTS_REMOTE_SERVERS_VIEW_CODE SYSRES_CONST_CONDITION_BLOCK_DESCRIPTION SYSRES_CONST_CONST_FIRM_STATUS_COMMON SYSRES_CONST_CONST_FIRM_STATUS_INDIVIDUAL SYSRES_CONST_CONST_NEGATIVE_VALUE SYSRES_CONST_CONST_POSITIVE_VALUE SYSRES_CONST_CONST_SERVER_STATUS_DONT_REPLICATE SYSRES_CONST_CONST_SERVER_STATUS_REPLICATE SYSRES_CONST_CONTENTS_REQUISITE_CODE SYSRES_CONST_DATA_TYPE_BOOLEAN SYSRES_CONST_DATA_TYPE_DATE SYSRES_CONST_DATA_TYPE_FLOAT SYSRES_CONST_DATA_TYPE_INTEGER SYSRES_CONST_DATA_TYPE_PICK SYSRES_CONST_DATA_TYPE_REFERENCE SYSRES_CONST_DATA_TYPE_STRING SYSRES_CONST_DATA_TYPE_TEXT SYSRES_CONST_DATA_TYPE_VARIANT SYSRES_CONST_DATE_CLOSE_REQ_CODE SYSRES_CONST_DATE_FORMAT_DATE_ONLY_CHAR SYSRES_CONST_DATE_OPEN_REQ_CODE SYSRES_CONST_DATE_REQUISITE SYSRES_CONST_DATE_REQUISITE_CODE SYSRES_CONST_DATE_REQUISITE_NAME SYSRES_CONST_DATE_REQUISITE_TYPE SYSRES_CONST_DATE_TYPE_CHAR SYSRES_CONST_DATETIME_FORMAT_VALUE SYSRES_CONST_DEA_ACCESS_RIGHTS_ACTION_CODE SYSRES_CONST_DESCRIPTION_LOCALIZE_ID_REQUISITE_CODE SYSRES_CONST_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_DET1_PART SYSRES_CONST_DET2_PART SYSRES_CONST_DET3_PART SYSRES_CONST_DET4_PART SYSRES_CONST_DET5_PART SYSRES_CONST_DET6_PART SYSRES_CONST_DETAIL_DATASET_KEY_REQUISITE_CODE SYSRES_CONST_DETAIL_PICK_REQUISITE_CODE SYSRES_CONST_DETAIL_REQ_CODE SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_CODE SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_NAME SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_CODE SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_NAME SYSRES_CONST_DOCUMENT_STORAGES_CODE SYSRES_CONST_DOCUMENT_TEMPLATES_TYPE_NAME SYSRES_CONST_DOUBLE_REQUISITE_CODE SYSRES_CONST_EDITOR_CLOSE_FILE_OBSERV_TYPE_CODE SYSRES_CONST_EDITOR_CLOSE_PROCESS_OBSERV_TYPE_CODE SYSRES_CONST_EDITOR_TYPE_REQUISITE_CODE SYSRES_CONST_EDITORS_APPLICATION_NAME_REQUISITE_CODE SYSRES_CONST_EDITORS_CREATE_SEVERAL_PROCESSES_REQUISITE_CODE SYSRES_CONST_EDITORS_EXTENSION_REQUISITE_CODE SYSRES_CONST_EDITORS_OBSERVER_BY_PROCESS_TYPE SYSRES_CONST_EDITORS_REFERENCE_CODE SYSRES_CONST_EDITORS_REPLACE_SPEC_CHARS_REQUISITE_CODE SYSRES_CONST_EDITORS_USE_PLUGINS_REQUISITE_CODE SYSRES_CONST_EDITORS_VIEW_DOCUMENT_OPENED_TO_EDIT_CODE SYSRES_CONST_EDOC_CARD_TYPE_REQUISITE_CODE SYSRES_CONST_EDOC_CARD_TYPES_LINK_REQUISITE_CODE SYSRES_CONST_EDOC_CERTIFICATE_AND_PASSWORD_ENCODE_CODE SYSRES_CONST_EDOC_CERTIFICATE_ENCODE_CODE SYSRES_CONST_EDOC_DATE_REQUISITE_CODE SYSRES_CONST_EDOC_KIND_REFERENCE_CODE SYSRES_CONST_EDOC_KINDS_BY_TEMPLATE_ACTION_CODE SYSRES_CONST_EDOC_MANAGE_ACCESS_CODE SYSRES_CONST_EDOC_NONE_ENCODE_CODE SYSRES_CONST_EDOC_NUMBER_REQUISITE_CODE SYSRES_CONST_EDOC_PASSWORD_ENCODE_CODE SYSRES_CONST_EDOC_READONLY_ACCESS_CODE SYSRES_CONST_EDOC_SHELL_LIFE_TYPE_VIEW_VALUE SYSRES_CONST_EDOC_SIZE_RESTRICTION_PRIORITY_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_CHECK_ACCESS_RIGHTS_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_COMPUTER_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_DATABASE_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_EDIT_IN_STORAGE_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_LOCAL_PATH_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_SHARED_SOURCE_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_TEMPLATE_REQUISITE_CODE SYSRES_CONST_EDOC_TYPES_REFERENCE_CODE SYSRES_CONST_EDOC_VERSION_ACTIVE_STAGE_CODE SYSRES_CONST_EDOC_VERSION_DESIGN_STAGE_CODE SYSRES_CONST_EDOC_VERSION_OBSOLETE_STAGE_CODE SYSRES_CONST_EDOC_WRITE_ACCES_CODE SYSRES_CONST_EDOCUMENT_CARD_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE SYSRES_CONST_ENCODE_CERTIFICATE_TYPE_CODE SYSRES_CONST_END_DATE_REQUISITE_CODE SYSRES_CONST_ENUMERATION_TYPE_REQUISITE_CODE SYSRES_CONST_EXECUTE_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_EXECUTIVE_FILE_STORAGE_TYPE SYSRES_CONST_EXIST_CONST SYSRES_CONST_EXIST_VALUE SYSRES_CONST_EXPORT_LOCK_TYPE_ASK SYSRES_CONST_EXPORT_LOCK_TYPE_WITH_LOCK SYSRES_CONST_EXPORT_LOCK_TYPE_WITHOUT_LOCK SYSRES_CONST_EXPORT_VERSION_TYPE_ASK SYSRES_CONST_EXPORT_VERSION_TYPE_LAST SYSRES_CONST_EXPORT_VERSION_TYPE_LAST_ACTIVE SYSRES_CONST_EXTENSION_REQUISITE_CODE SYSRES_CONST_FILTER_NAME_REQUISITE_CODE SYSRES_CONST_FILTER_REQUISITE_CODE SYSRES_CONST_FILTER_TYPE_COMMON_CODE SYSRES_CONST_FILTER_TYPE_COMMON_NAME SYSRES_CONST_FILTER_TYPE_USER_CODE SYSRES_CONST_FILTER_TYPE_USER_NAME SYSRES_CONST_FILTER_VALUE_REQUISITE_NAME SYSRES_CONST_FLOAT_NUMBER_FORMAT_CHAR SYSRES_CONST_FLOAT_REQUISITE_TYPE SYSRES_CONST_FOLDER_AUTHOR_VALUE SYSRES_CONST_FOLDER_KIND_ANY_OBJECTS SYSRES_CONST_FOLDER_KIND_COMPONENTS SYSRES_CONST_FOLDER_KIND_EDOCS SYSRES_CONST_FOLDER_KIND_JOBS SYSRES_CONST_FOLDER_KIND_TASKS SYSRES_CONST_FOLDER_TYPE_COMMON SYSRES_CONST_FOLDER_TYPE_COMPONENT SYSRES_CONST_FOLDER_TYPE_FAVORITES SYSRES_CONST_FOLDER_TYPE_INBOX SYSRES_CONST_FOLDER_TYPE_OUTBOX SYSRES_CONST_FOLDER_TYPE_QUICK_LAUNCH SYSRES_CONST_FOLDER_TYPE_SEARCH SYSRES_CONST_FOLDER_TYPE_SHORTCUTS SYSRES_CONST_FOLDER_TYPE_USER SYSRES_CONST_FROM_DICTIONARY_ENUM_METHOD_FLAG SYSRES_CONST_FULL_SUBSTITUTE_TYPE SYSRES_CONST_FULL_SUBSTITUTE_TYPE_CODE SYSRES_CONST_FUNCTION_CANCEL_RESULT SYSRES_CONST_FUNCTION_CATEGORY_SYSTEM SYSRES_CONST_FUNCTION_CATEGORY_USER SYSRES_CONST_FUNCTION_FAILURE_RESULT SYSRES_CONST_FUNCTION_SAVE_RESULT SYSRES_CONST_GENERATED_REQUISITE SYSRES_CONST_GREEN_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_GROUP_ACCOUNT_TYPE_VALUE_CODE SYSRES_CONST_GROUP_CATEGORY_NORMAL_CODE SYSRES_CONST_GROUP_CATEGORY_NORMAL_NAME SYSRES_CONST_GROUP_CATEGORY_SERVICE_CODE SYSRES_CONST_GROUP_CATEGORY_SERVICE_NAME SYSRES_CONST_GROUP_COMMON_CATEGORY_FIELD_VALUE SYSRES_CONST_GROUP_FULL_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_RIGHTS_T_REQUISITE_CODE SYSRES_CONST_GROUP_SERVER_CODES_REQUISITE_CODE SYSRES_CONST_GROUP_SERVER_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_SERVICE_CATEGORY_FIELD_VALUE SYSRES_CONST_GROUP_USER_REQUISITE_CODE SYSRES_CONST_GROUPS_REFERENCE_CODE SYSRES_CONST_GROUPS_REQUISITE_CODE SYSRES_CONST_HIDDEN_MODE_NAME SYSRES_CONST_HIGH_LVL_REQUISITE_CODE SYSRES_CONST_HISTORY_ACTION_CREATE_CODE SYSRES_CONST_HISTORY_ACTION_DELETE_CODE SYSRES_CONST_HISTORY_ACTION_EDIT_CODE SYSRES_CONST_HOUR_CHAR SYSRES_CONST_ID_REQUISITE_CODE SYSRES_CONST_IDSPS_REQUISITE_CODE SYSRES_CONST_IMAGE_MODE_COLOR SYSRES_CONST_IMAGE_MODE_GREYSCALE SYSRES_CONST_IMAGE_MODE_MONOCHROME SYSRES_CONST_IMPORTANCE_HIGH SYSRES_CONST_IMPORTANCE_LOW SYSRES_CONST_IMPORTANCE_NORMAL SYSRES_CONST_IN_DESIGN_VERSION_STATE_PICK_VALUE SYSRES_CONST_INCOMING_WORK_RULE_TYPE_CODE SYSRES_CONST_INT_REQUISITE SYSRES_CONST_INT_REQUISITE_TYPE SYSRES_CONST_INTEGER_NUMBER_FORMAT_CHAR SYSRES_CONST_INTEGER_TYPE_CHAR SYSRES_CONST_IS_GENERATED_REQUISITE_NEGATIVE_VALUE SYSRES_CONST_IS_PUBLIC_ROLE_REQUISITE_CODE SYSRES_CONST_IS_REMOTE_USER_NEGATIVE_VALUE SYSRES_CONST_IS_REMOTE_USER_POSITIVE_VALUE SYSRES_CONST_IS_STORED_REQUISITE_NEGATIVE_VALUE SYSRES_CONST_IS_STORED_REQUISITE_STORED_VALUE SYSRES_CONST_ITALIC_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_JOB_BLOCK_DESCRIPTION SYSRES_CONST_JOB_KIND_CONTROL_JOB SYSRES_CONST_JOB_KIND_JOB SYSRES_CONST_JOB_KIND_NOTICE SYSRES_CONST_JOB_STATE_ABORTED SYSRES_CONST_JOB_STATE_COMPLETE SYSRES_CONST_JOB_STATE_WORKING SYSRES_CONST_KIND_REQUISITE_CODE SYSRES_CONST_KIND_REQUISITE_NAME SYSRES_CONST_KINDS_CREATE_SHADOW_COPIES_REQUISITE_CODE SYSRES_CONST_KINDS_DEFAULT_EDOC_LIFE_STAGE_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALL_TEPLATES_ALLOWED_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALLOW_LIFE_CYCLE_STAGE_CHANGING_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALLOW_MULTIPLE_ACTIVE_VERSIONS_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_SHARE_ACCES_RIGHTS_BY_DEFAULT_CODE SYSRES_CONST_KINDS_EDOC_TEMPLATE_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_TYPE_REQUISITE_CODE SYSRES_CONST_KINDS_SIGNERS_REQUISITES_CODE SYSRES_CONST_KOD_INPUT_TYPE SYSRES_CONST_LAST_UPDATE_DATE_REQUISITE_CODE SYSRES_CONST_LIFE_CYCLE_START_STAGE_REQUISITE_CODE SYSRES_CONST_LILAC_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_LINK_OBJECT_KIND_COMPONENT SYSRES_CONST_LINK_OBJECT_KIND_DOCUMENT SYSRES_CONST_LINK_OBJECT_KIND_EDOC SYSRES_CONST_LINK_OBJECT_KIND_FOLDER SYSRES_CONST_LINK_OBJECT_KIND_JOB SYSRES_CONST_LINK_OBJECT_KIND_REFERENCE SYSRES_CONST_LINK_OBJECT_KIND_TASK SYSRES_CONST_LINK_REF_TYPE_REQUISITE_CODE SYSRES_CONST_LIST_REFERENCE_MODE_NAME SYSRES_CONST_LOCALIZATION_DICTIONARY_MAIN_VIEW_CODE SYSRES_CONST_MAIN_VIEW_CODE SYSRES_CONST_MANUAL_ENUM_METHOD_FLAG SYSRES_CONST_MASTER_COMP_TYPE_REQUISITE_CODE SYSRES_CONST_MASTER_TABLE_REC_ID_REQUISITE_CODE SYSRES_CONST_MAXIMIZED_MODE_NAME SYSRES_CONST_ME_VALUE SYSRES_CONST_MESSAGE_ATTENTION_CAPTION SYSRES_CONST_MESSAGE_CONFIRMATION_CAPTION SYSRES_CONST_MESSAGE_ERROR_CAPTION SYSRES_CONST_MESSAGE_INFORMATION_CAPTION SYSRES_CONST_MINIMIZED_MODE_NAME SYSRES_CONST_MINUTE_CHAR SYSRES_CONST_MODULE_REQUISITE_CODE SYSRES_CONST_MONITORING_BLOCK_DESCRIPTION SYSRES_CONST_MONTH_FORMAT_VALUE SYSRES_CONST_NAME_LOCALIZE_ID_REQUISITE_CODE SYSRES_CONST_NAME_REQUISITE_CODE SYSRES_CONST_NAME_SINGULAR_REQUISITE_CODE SYSRES_CONST_NAMEAN_INPUT_TYPE SYSRES_CONST_NEGATIVE_PICK_VALUE SYSRES_CONST_NEGATIVE_VALUE SYSRES_CONST_NO SYSRES_CONST_NO_PICK_VALUE SYSRES_CONST_NO_SIGNATURE_REQUISITE_CODE SYSRES_CONST_NO_VALUE SYSRES_CONST_NONE_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_NORMAL_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_NORMAL_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_NORMAL_MODE_NAME SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_CODE SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_NAME SYSRES_CONST_NOTE_REQUISITE_CODE SYSRES_CONST_NOTICE_BLOCK_DESCRIPTION SYSRES_CONST_NUM_REQUISITE SYSRES_CONST_NUM_STR_REQUISITE_CODE SYSRES_CONST_NUMERATION_AUTO_NOT_STRONG SYSRES_CONST_NUMERATION_AUTO_STRONG SYSRES_CONST_NUMERATION_FROM_DICTONARY SYSRES_CONST_NUMERATION_MANUAL SYSRES_CONST_NUMERIC_TYPE_CHAR SYSRES_CONST_NUMREQ_REQUISITE_CODE SYSRES_CONST_OBSOLETE_VERSION_STATE_PICK_VALUE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_CODE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_FEMININE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_OPTIONAL_FORM_COMP_REQCODE_PREFIX SYSRES_CONST_ORANGE_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_ORIGINALREF_REQUISITE_CODE SYSRES_CONST_OURFIRM_REF_CODE SYSRES_CONST_OURFIRM_REQUISITE_CODE SYSRES_CONST_OURFIRM_VAR SYSRES_CONST_OUTGOING_WORK_RULE_TYPE_CODE SYSRES_CONST_PICK_NEGATIVE_RESULT SYSRES_CONST_PICK_POSITIVE_RESULT SYSRES_CONST_PICK_REQUISITE SYSRES_CONST_PICK_REQUISITE_TYPE SYSRES_CONST_PICK_TYPE_CHAR SYSRES_CONST_PLAN_STATUS_REQUISITE_CODE SYSRES_CONST_PLATFORM_VERSION_COMMENT SYSRES_CONST_PLUGINS_SETTINGS_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_POSITIVE_PICK_VALUE SYSRES_CONST_POWER_TO_CREATE_ACTION_CODE SYSRES_CONST_POWER_TO_SIGN_ACTION_CODE SYSRES_CONST_PRIORITY_REQUISITE_CODE SYSRES_CONST_QUALIFIED_TASK_TYPE SYSRES_CONST_QUALIFIED_TASK_TYPE_CODE SYSRES_CONST_RECSTAT_REQUISITE_CODE SYSRES_CONST_RED_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_REF_ID_T_REF_TYPE_REQUISITE_CODE SYSRES_CONST_REF_REQUISITE SYSRES_CONST_REF_REQUISITE_TYPE SYSRES_CONST_REF_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE SYSRES_CONST_REFERENCE_RECORD_HISTORY_CREATE_ACTION_CODE SYSRES_CONST_REFERENCE_RECORD_HISTORY_DELETE_ACTION_CODE SYSRES_CONST_REFERENCE_RECORD_HISTORY_MODIFY_ACTION_CODE SYSRES_CONST_REFERENCE_TYPE_CHAR SYSRES_CONST_REFERENCE_TYPE_REQUISITE_NAME SYSRES_CONST_REFERENCES_ADD_PARAMS_REQUISITE_CODE SYSRES_CONST_REFERENCES_DISPLAY_REQUISITE_REQUISITE_CODE SYSRES_CONST_REMOTE_SERVER_STATUS_WORKING SYSRES_CONST_REMOTE_SERVER_TYPE_MAIN SYSRES_CONST_REMOTE_SERVER_TYPE_SECONDARY SYSRES_CONST_REMOTE_USER_FLAG_VALUE_CODE SYSRES_CONST_REPORT_APP_EDITOR_INTERNAL SYSRES_CONST_REPORT_BASE_REPORT_ID_REQUISITE_CODE SYSRES_CONST_REPORT_BASE_REPORT_REQUISITE_CODE SYSRES_CONST_REPORT_SCRIPT_REQUISITE_CODE SYSRES_CONST_REPORT_TEMPLATE_REQUISITE_CODE SYSRES_CONST_REPORT_VIEWER_CODE_REQUISITE_CODE SYSRES_CONST_REQ_ALLOW_COMPONENT_DEFAULT_VALUE SYSRES_CONST_REQ_ALLOW_RECORD_DEFAULT_VALUE SYSRES_CONST_REQ_ALLOW_SERVER_COMPONENT_DEFAULT_VALUE SYSRES_CONST_REQ_MODE_AVAILABLE_CODE SYSRES_CONST_REQ_MODE_EDIT_CODE SYSRES_CONST_REQ_MODE_HIDDEN_CODE SYSRES_CONST_REQ_MODE_NOT_AVAILABLE_CODE SYSRES_CONST_REQ_MODE_VIEW_CODE SYSRES_CONST_REQ_NUMBER_REQUISITE_CODE SYSRES_CONST_REQ_SECTION_VALUE SYSRES_CONST_REQ_TYPE_VALUE SYSRES_CONST_REQUISITE_FORMAT_BY_UNIT SYSRES_CONST_REQUISITE_FORMAT_DATE_FULL SYSRES_CONST_REQUISITE_FORMAT_DATE_TIME SYSRES_CONST_REQUISITE_FORMAT_LEFT SYSRES_CONST_REQUISITE_FORMAT_RIGHT SYSRES_CONST_REQUISITE_FORMAT_WITHOUT_UNIT SYSRES_CONST_REQUISITE_NUMBER_REQUISITE_CODE SYSRES_CONST_REQUISITE_SECTION_ACTIONS SYSRES_CONST_REQUISITE_SECTION_BUTTON SYSRES_CONST_REQUISITE_SECTION_BUTTONS SYSRES_CONST_REQUISITE_SECTION_CARD SYSRES_CONST_REQUISITE_SECTION_TABLE SYSRES_CONST_REQUISITE_SECTION_TABLE10 SYSRES_CONST_REQUISITE_SECTION_TABLE11 SYSRES_CONST_REQUISITE_SECTION_TABLE12 SYSRES_CONST_REQUISITE_SECTION_TABLE13 SYSRES_CONST_REQUISITE_SECTION_TABLE14 SYSRES_CONST_REQUISITE_SECTION_TABLE15 SYSRES_CONST_REQUISITE_SECTION_TABLE16 SYSRES_CONST_REQUISITE_SECTION_TABLE17 SYSRES_CONST_REQUISITE_SECTION_TABLE18 SYSRES_CONST_REQUISITE_SECTION_TABLE19 SYSRES_CONST_REQUISITE_SECTION_TABLE2 SYSRES_CONST_REQUISITE_SECTION_TABLE20 SYSRES_CONST_REQUISITE_SECTION_TABLE21 SYSRES_CONST_REQUISITE_SECTION_TABLE22 SYSRES_CONST_REQUISITE_SECTION_TABLE23 SYSRES_CONST_REQUISITE_SECTION_TABLE24 SYSRES_CONST_REQUISITE_SECTION_TABLE3 SYSRES_CONST_REQUISITE_SECTION_TABLE4 SYSRES_CONST_REQUISITE_SECTION_TABLE5 SYSRES_CONST_REQUISITE_SECTION_TABLE6 SYSRES_CONST_REQUISITE_SECTION_TABLE7 SYSRES_CONST_REQUISITE_SECTION_TABLE8 SYSRES_CONST_REQUISITE_SECTION_TABLE9 SYSRES_CONST_REQUISITES_PSEUDOREFERENCE_REQUISITE_NUMBER_REQUISITE_CODE SYSRES_CONST_RIGHT_ALIGNMENT_CODE SYSRES_CONST_ROLES_REFERENCE_CODE SYSRES_CONST_ROUTE_STEP_AFTER_RUS SYSRES_CONST_ROUTE_STEP_AND_CONDITION_RUS SYSRES_CONST_ROUTE_STEP_OR_CONDITION_RUS SYSRES_CONST_ROUTE_TYPE_COMPLEX SYSRES_CONST_ROUTE_TYPE_PARALLEL SYSRES_CONST_ROUTE_TYPE_SERIAL SYSRES_CONST_SBDATASETDESC_NEGATIVE_VALUE SYSRES_CONST_SBDATASETDESC_POSITIVE_VALUE SYSRES_CONST_SBVIEWSDESC_POSITIVE_VALUE SYSRES_CONST_SCRIPT_BLOCK_DESCRIPTION SYSRES_CONST_SEARCH_BY_TEXT_REQUISITE_CODE SYSRES_CONST_SEARCHES_COMPONENT_CONTENT SYSRES_CONST_SEARCHES_CRITERIA_ACTION_NAME SYSRES_CONST_SEARCHES_EDOC_CONTENT SYSRES_CONST_SEARCHES_FOLDER_CONTENT SYSRES_CONST_SEARCHES_JOB_CONTENT SYSRES_CONST_SEARCHES_REFERENCE_CODE SYSRES_CONST_SEARCHES_TASK_CONTENT SYSRES_CONST_SECOND_CHAR SYSRES_CONST_SECTION_REQUISITE_ACTIONS_VALUE SYSRES_CONST_SECTION_REQUISITE_CARD_VALUE SYSRES_CONST_SECTION_REQUISITE_CODE SYSRES_CONST_SECTION_REQUISITE_DETAIL_1_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_2_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_3_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_4_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_5_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_6_VALUE SYSRES_CONST_SELECT_REFERENCE_MODE_NAME SYSRES_CONST_SELECT_TYPE_SELECTABLE SYSRES_CONST_SELECT_TYPE_SELECTABLE_ONLY_CHILD SYSRES_CONST_SELECT_TYPE_SELECTABLE_WITH_CHILD SYSRES_CONST_SELECT_TYPE_UNSLECTABLE SYSRES_CONST_SERVER_TYPE_MAIN SYSRES_CONST_SERVICE_USER_CATEGORY_FIELD_VALUE SYSRES_CONST_SETTINGS_USER_REQUISITE_CODE SYSRES_CONST_SIGNATURE_AND_ENCODE_CERTIFICATE_TYPE_CODE SYSRES_CONST_SIGNATURE_CERTIFICATE_TYPE_CODE SYSRES_CONST_SINGULAR_TITLE_REQUISITE_CODE SYSRES_CONST_SQL_SERVER_AUTHENTIFICATION_FLAG_VALUE_CODE SYSRES_CONST_SQL_SERVER_ENCODE_AUTHENTIFICATION_FLAG_VALUE_CODE SYSRES_CONST_STANDART_ROUTE_REFERENCE_CODE SYSRES_CONST_STANDART_ROUTE_REFERENCE_COMMENT_REQUISITE_CODE SYSRES_CONST_STANDART_ROUTES_GROUPS_REFERENCE_CODE SYSRES_CONST_STATE_REQ_NAME SYSRES_CONST_STATE_REQUISITE_ACTIVE_VALUE SYSRES_CONST_STATE_REQUISITE_CLOSED_VALUE SYSRES_CONST_STATE_REQUISITE_CODE SYSRES_CONST_STATIC_ROLE_TYPE_CODE SYSRES_CONST_STATUS_PLAN_DEFAULT_VALUE SYSRES_CONST_STATUS_VALUE_AUTOCLEANING SYSRES_CONST_STATUS_VALUE_BLUE_SQUARE SYSRES_CONST_STATUS_VALUE_COMPLETE SYSRES_CONST_STATUS_VALUE_GREEN_SQUARE SYSRES_CONST_STATUS_VALUE_ORANGE_SQUARE SYSRES_CONST_STATUS_VALUE_PURPLE_SQUARE SYSRES_CONST_STATUS_VALUE_RED_SQUARE SYSRES_CONST_STATUS_VALUE_SUSPEND SYSRES_CONST_STATUS_VALUE_YELLOW_SQUARE SYSRES_CONST_STDROUTE_SHOW_TO_USERS_REQUISITE_CODE SYSRES_CONST_STORAGE_TYPE_FILE SYSRES_CONST_STORAGE_TYPE_SQL_SERVER SYSRES_CONST_STR_REQUISITE SYSRES_CONST_STRIKEOUT_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_STRING_FORMAT_LEFT_ALIGN_CHAR SYSRES_CONST_STRING_FORMAT_RIGHT_ALIGN_CHAR SYSRES_CONST_STRING_REQUISITE_CODE SYSRES_CONST_STRING_REQUISITE_TYPE SYSRES_CONST_STRING_TYPE_CHAR SYSRES_CONST_SUBSTITUTES_PSEUDOREFERENCE_CODE SYSRES_CONST_SUBTASK_BLOCK_DESCRIPTION SYSRES_CONST_SYSTEM_SETTING_CURRENT_USER_PARAM_VALUE SYSRES_CONST_SYSTEM_SETTING_EMPTY_VALUE_PARAM_VALUE SYSRES_CONST_SYSTEM_VERSION_COMMENT SYSRES_CONST_TASK_ACCESS_TYPE_ALL SYSRES_CONST_TASK_ACCESS_TYPE_ALL_MEMBERS SYSRES_CONST_TASK_ACCESS_TYPE_MANUAL SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION_AND_PASSWORD SYSRES_CONST_TASK_ENCODE_TYPE_NONE SYSRES_CONST_TASK_ENCODE_TYPE_PASSWORD SYSRES_CONST_TASK_ROUTE_ALL_CONDITION SYSRES_CONST_TASK_ROUTE_AND_CONDITION SYSRES_CONST_TASK_ROUTE_OR_CONDITION SYSRES_CONST_TASK_STATE_ABORTED SYSRES_CONST_TASK_STATE_COMPLETE SYSRES_CONST_TASK_STATE_CONTINUED SYSRES_CONST_TASK_STATE_CONTROL SYSRES_CONST_TASK_STATE_INIT SYSRES_CONST_TASK_STATE_WORKING SYSRES_CONST_TASK_TITLE SYSRES_CONST_TASK_TYPES_GROUPS_REFERENCE_CODE SYSRES_CONST_TASK_TYPES_REFERENCE_CODE SYSRES_CONST_TEMPLATES_REFERENCE_CODE SYSRES_CONST_TEST_DATE_REQUISITE_NAME SYSRES_CONST_TEST_DEV_DATABASE_NAME SYSRES_CONST_TEST_DEV_SYSTEM_CODE SYSRES_CONST_TEST_EDMS_DATABASE_NAME SYSRES_CONST_TEST_EDMS_MAIN_CODE SYSRES_CONST_TEST_EDMS_MAIN_DB_NAME SYSRES_CONST_TEST_EDMS_SECOND_CODE SYSRES_CONST_TEST_EDMS_SECOND_DB_NAME SYSRES_CONST_TEST_EDMS_SYSTEM_CODE SYSRES_CONST_TEST_NUMERIC_REQUISITE_NAME SYSRES_CONST_TEXT_REQUISITE SYSRES_CONST_TEXT_REQUISITE_CODE SYSRES_CONST_TEXT_REQUISITE_TYPE SYSRES_CONST_TEXT_TYPE_CHAR SYSRES_CONST_TYPE_CODE_REQUISITE_CODE SYSRES_CONST_TYPE_REQUISITE_CODE SYSRES_CONST_UNDEFINED_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_UNITS_SECTION_ID_REQUISITE_CODE SYSRES_CONST_UNITS_SECTION_REQUISITE_CODE SYSRES_CONST_UNOPERATING_RECORD_FLAG_VALUE_CODE SYSRES_CONST_UNSTORED_DATA_REQUISITE_CODE SYSRES_CONST_UNSTORED_DATA_REQUISITE_NAME SYSRES_CONST_USE_ACCESS_TYPE_CODE SYSRES_CONST_USE_ACCESS_TYPE_NAME SYSRES_CONST_USER_ACCOUNT_TYPE_VALUE_CODE SYSRES_CONST_USER_ADDITIONAL_INFORMATION_REQUISITE_CODE SYSRES_CONST_USER_AND_GROUP_ID_FROM_PSEUDOREFERENCE_REQUISITE_CODE SYSRES_CONST_USER_CATEGORY_NORMAL SYSRES_CONST_USER_CERTIFICATE_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_STATE_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_SUBJECT_NAME_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_THUMBPRINT_REQUISITE_CODE SYSRES_CONST_USER_COMMON_CATEGORY SYSRES_CONST_USER_COMMON_CATEGORY_CODE SYSRES_CONST_USER_FULL_NAME_REQUISITE_CODE SYSRES_CONST_USER_GROUP_TYPE_REQUISITE_CODE SYSRES_CONST_USER_LOGIN_REQUISITE_CODE SYSRES_CONST_USER_REMOTE_CONTROLLER_REQUISITE_CODE SYSRES_CONST_USER_REMOTE_SYSTEM_REQUISITE_CODE SYSRES_CONST_USER_RIGHTS_T_REQUISITE_CODE SYSRES_CONST_USER_SERVER_NAME_REQUISITE_CODE SYSRES_CONST_USER_SERVICE_CATEGORY SYSRES_CONST_USER_SERVICE_CATEGORY_CODE SYSRES_CONST_USER_STATUS_ADMINISTRATOR_CODE SYSRES_CONST_USER_STATUS_ADMINISTRATOR_NAME SYSRES_CONST_USER_STATUS_DEVELOPER_CODE SYSRES_CONST_USER_STATUS_DEVELOPER_NAME SYSRES_CONST_USER_STATUS_DISABLED_CODE SYSRES_CONST_USER_STATUS_DISABLED_NAME SYSRES_CONST_USER_STATUS_SYSTEM_DEVELOPER_CODE SYSRES_CONST_USER_STATUS_USER_CODE SYSRES_CONST_USER_STATUS_USER_NAME SYSRES_CONST_USER_STATUS_USER_NAME_DEPRECATED SYSRES_CONST_USER_TYPE_FIELD_VALUE_USER SYSRES_CONST_USER_TYPE_REQUISITE_CODE SYSRES_CONST_USERS_CONTROLLER_REQUISITE_CODE SYSRES_CONST_USERS_IS_MAIN_SERVER_REQUISITE_CODE SYSRES_CONST_USERS_REFERENCE_CODE SYSRES_CONST_USERS_REGISTRATION_CERTIFICATES_ACTION_NAME SYSRES_CONST_USERS_REQUISITE_CODE SYSRES_CONST_USERS_SYSTEM_REQUISITE_CODE SYSRES_CONST_USERS_USER_ACCESS_RIGHTS_TYPR_REQUISITE_CODE SYSRES_CONST_USERS_USER_AUTHENTICATION_REQUISITE_CODE SYSRES_CONST_USERS_USER_COMPONENT_REQUISITE_CODE SYSRES_CONST_USERS_USER_GROUP_REQUISITE_CODE SYSRES_CONST_USERS_VIEW_CERTIFICATES_ACTION_NAME SYSRES_CONST_VIEW_DEFAULT_CODE SYSRES_CONST_VIEW_DEFAULT_NAME SYSRES_CONST_VIEWER_REQUISITE_CODE SYSRES_CONST_WAITING_BLOCK_DESCRIPTION SYSRES_CONST_WIZARD_FORM_LABEL_TEST_STRING SYSRES_CONST_WIZARD_QUERY_PARAM_HEIGHT_ETALON_STRING SYSRES_CONST_WIZARD_REFERENCE_COMMENT_REQUISITE_CODE SYSRES_CONST_WORK_RULES_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_WORK_TIME_CALENDAR_REFERENCE_CODE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE_RUS SYSRES_CONST_WORK_WORKFLOW_SOFT_ROUTE_TYPE_VALUE_CODE_RUS SYSRES_CONST_WORKFLOW_ROUTE_TYPR_HARD SYSRES_CONST_WORKFLOW_ROUTE_TYPR_SOFT SYSRES_CONST_XML_ENCODING SYSRES_CONST_XREC_STAT_REQUISITE_CODE SYSRES_CONST_XRECID_FIELD_NAME SYSRES_CONST_YES SYSRES_CONST_YES_NO_2_REQUISITE_CODE SYSRES_CONST_YES_NO_REQUISITE_CODE SYSRES_CONST_YES_NO_T_REF_TYPE_REQUISITE_CODE SYSRES_CONST_YES_PICK_VALUE SYSRES_CONST_YES_VALUE CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE ADMINISTRATORS_GROUP_NAME CUSTOMIZERS_GROUP_NAME DEVELOPERS_GROUP_NAME SERVICE_USERS_GROUP_NAME DECISION_BLOCK_FIRST_OPERAND_PROPERTY DECISION_BLOCK_NAME_PROPERTY DECISION_BLOCK_OPERATION_PROPERTY DECISION_BLOCK_RESULT_TYPE_PROPERTY DECISION_BLOCK_SECOND_OPERAND_PROPERTY ANY_FILE_EXTENTION COMPRESSED_DOCUMENT_EXTENSION EXTENDED_DOCUMENT_EXTENSION SHORT_COMPRESSED_DOCUMENT_EXTENSION SHORT_EXTENDED_DOCUMENT_EXTENSION JOB_BLOCK_ABORT_DEADLINE_PROPERTY JOB_BLOCK_AFTER_FINISH_EVENT JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT JOB_BLOCK_ATTACHMENT_PROPERTY JOB_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY JOB_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY JOB_BLOCK_BEFORE_QUERY_PARAMETERS_EVENT JOB_BLOCK_BEFORE_START_EVENT JOB_BLOCK_CREATED_JOBS_PROPERTY JOB_BLOCK_DEADLINE_PROPERTY JOB_BLOCK_EXECUTION_RESULTS_PROPERTY JOB_BLOCK_IS_PARALLEL_PROPERTY JOB_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY JOB_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY JOB_BLOCK_JOB_TEXT_PROPERTY JOB_BLOCK_NAME_PROPERTY JOB_BLOCK_NEED_SIGN_ON_PERFORM_PROPERTY JOB_BLOCK_PERFORMER_PROPERTY JOB_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY JOB_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY JOB_BLOCK_SUBJECT_PROPERTY ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE smHidden smMaximized smMinimized smNormal wmNo wmYes COMPONENT_TOKEN_LINK_KIND DOCUMENT_LINK_KIND EDOCUMENT_LINK_KIND FOLDER_LINK_KIND JOB_LINK_KIND REFERENCE_LINK_KIND TASK_LINK_KIND COMPONENT_TOKEN_LOCK_TYPE EDOCUMENT_VERSION_LOCK_TYPE MONITOR_BLOCK_AFTER_FINISH_EVENT MONITOR_BLOCK_BEFORE_START_EVENT MONITOR_BLOCK_DEADLINE_PROPERTY MONITOR_BLOCK_INTERVAL_PROPERTY MONITOR_BLOCK_INTERVAL_TYPE_PROPERTY MONITOR_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY MONITOR_BLOCK_NAME_PROPERTY MONITOR_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY NOTICE_BLOCK_AFTER_FINISH_EVENT NOTICE_BLOCK_ATTACHMENT_PROPERTY NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY NOTICE_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY NOTICE_BLOCK_BEFORE_START_EVENT NOTICE_BLOCK_CREATED_NOTICES_PROPERTY NOTICE_BLOCK_DEADLINE_PROPERTY NOTICE_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY NOTICE_BLOCK_NAME_PROPERTY NOTICE_BLOCK_NOTICE_TEXT_PROPERTY NOTICE_BLOCK_PERFORMER_PROPERTY NOTICE_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY NOTICE_BLOCK_SUBJECT_PROPERTY dseAfterCancel dseAfterClose dseAfterDelete dseAfterDeleteOutOfTransaction dseAfterInsert dseAfterOpen dseAfterScroll dseAfterUpdate dseAfterUpdateOutOfTransaction dseBeforeCancel dseBeforeClose dseBeforeDelete dseBeforeDetailUpdate dseBeforeInsert dseBeforeOpen dseBeforeUpdate dseOnAnyRequisiteChange dseOnCloseRecord dseOnDeleteError dseOnOpenRecord dseOnPrepareUpdate dseOnUpdateError dseOnUpdateRatifiedRecord dseOnValidDelete dseOnValidUpdate reOnChange reOnChangeValues SELECTION_BEGIN_ROUTE_EVENT SELECTION_END_ROUTE_EVENT CURRENT_PERIOD_IS_REQUIRED PREVIOUS_CARD_TYPE_NAME SHOW_RECORD_PROPERTIES_FORM ACCESS_RIGHTS_SETTING_DIALOG_CODE ADMINISTRATOR_USER_CODE ANALYTIC_REPORT_TYPE asrtHideLocal asrtHideRemote CALCULATED_ROLE_TYPE_CODE COMPONENTS_REFERENCE_DEVELOPER_VIEW_CODE DCTS_TEST_PROTOCOLS_FOLDER_PATH E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED_BY_USER E_EDOC_VERSION_ALREDY_SIGNED E_EDOC_VERSION_ALREDY_SIGNED_BY_USER EDOC_TYPES_CODE_REQUISITE_FIELD_NAME EDOCUMENTS_ALIAS_NAME FILES_FOLDER_PATH FILTER_OPERANDS_DELIMITER FILTER_OPERATIONS_DELIMITER FORMCARD_NAME FORMLIST_NAME GET_EXTENDED_DOCUMENT_EXTENSION_CREATION_MODE GET_EXTENDED_DOCUMENT_EXTENSION_IMPORT_MODE INTEGRATED_REPORT_TYPE IS_BUILDER_APPLICATION_ROLE IS_BUILDER_APPLICATION_ROLE2 IS_BUILDER_USERS ISBSYSDEV LOG_FOLDER_PATH mbCancel mbNo mbNoToAll mbOK mbYes mbYesToAll MEMORY_DATASET_DESRIPTIONS_FILENAME mrNo mrNoToAll mrYes mrYesToAll MULTIPLE_SELECT_DIALOG_CODE NONOPERATING_RECORD_FLAG_FEMININE NONOPERATING_RECORD_FLAG_MASCULINE OPERATING_RECORD_FLAG_FEMININE OPERATING_RECORD_FLAG_MASCULINE PROFILING_SETTINGS_COMMON_SETTINGS_CODE_VALUE PROGRAM_INITIATED_LOOKUP_ACTION ratDelete ratEdit ratInsert REPORT_TYPE REQUIRED_PICK_VALUES_VARIABLE rmCard rmList SBRTE_PROGID_DEV SBRTE_PROGID_RELEASE STATIC_ROLE_TYPE_CODE SUPPRESS_EMPTY_TEMPLATE_CREATION SYSTEM_USER_CODE UPDATE_DIALOG_DATASET USED_IN_OBJECT_HINT_PARAM USER_INITIATED_LOOKUP_ACTION USER_NAME_FORMAT USER_SELECTION_RESTRICTIONS WORKFLOW_TEST_PROTOCOLS_FOLDER_PATH ELS_SUBTYPE_CONTROL_NAME ELS_FOLDER_KIND_CONTROL_NAME REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME PRIVILEGE_COMPONENT_FULL_ACCESS PRIVILEGE_DEVELOPMENT_EXPORT PRIVILEGE_DEVELOPMENT_IMPORT PRIVILEGE_DOCUMENT_DELETE PRIVILEGE_ESD PRIVILEGE_FOLDER_DELETE PRIVILEGE_MANAGE_ACCESS_RIGHTS PRIVILEGE_MANAGE_REPLICATION PRIVILEGE_MANAGE_SESSION_SERVER PRIVILEGE_OBJECT_FULL_ACCESS PRIVILEGE_OBJECT_VIEW PRIVILEGE_RESERVE_LICENSE PRIVILEGE_SYSTEM_CUSTOMIZE PRIVILEGE_SYSTEM_DEVELOP PRIVILEGE_SYSTEM_INSTALL PRIVILEGE_TASK_DELETE PRIVILEGE_USER_PLUGIN_SETTINGS_CUSTOMIZE PRIVILEGES_PSEUDOREFERENCE_CODE ACCESS_TYPES_PSEUDOREFERENCE_CODE ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE ALL_REPLICATE_COMPONENTS_PSEUDOREFERENCE_CODE AVAILABLE_DEVELOPERS_COMPONENTS_PSEUDOREFERENCE_CODE COMPONENTS_PSEUDOREFERENCE_CODE FILTRATER_SETTINGS_CONFLICTS_PSEUDOREFERENCE_CODE GROUPS_PSEUDOREFERENCE_CODE RECEIVE_PROTOCOL_PSEUDOREFERENCE_CODE REFERENCE_REQUISITE_PSEUDOREFERENCE_CODE REFERENCE_REQUISITES_PSEUDOREFERENCE_CODE REFTYPES_PSEUDOREFERENCE_CODE REPLICATION_SEANCES_DIARY_PSEUDOREFERENCE_CODE SEND_PROTOCOL_PSEUDOREFERENCE_CODE SUBSTITUTES_PSEUDOREFERENCE_CODE SYSTEM_SETTINGS_PSEUDOREFERENCE_CODE UNITS_PSEUDOREFERENCE_CODE USERS_PSEUDOREFERENCE_CODE VIEWERS_PSEUDOREFERENCE_CODE CERTIFICATE_TYPE_ENCRYPT CERTIFICATE_TYPE_SIGN CERTIFICATE_TYPE_SIGN_AND_ENCRYPT STORAGE_TYPE_FILE STORAGE_TYPE_NAS_CIFS STORAGE_TYPE_SAPERION STORAGE_TYPE_SQL_SERVER COMPTYPE2_REQUISITE_DOCUMENTS_VALUE COMPTYPE2_REQUISITE_TASKS_VALUE COMPTYPE2_REQUISITE_FOLDERS_VALUE COMPTYPE2_REQUISITE_REFERENCES_VALUE SYSREQ_CODE SYSREQ_COMPTYPE2 SYSREQ_CONST_AVAILABLE_FOR_WEB SYSREQ_CONST_COMMON_CODE SYSREQ_CONST_COMMON_VALUE SYSREQ_CONST_FIRM_CODE SYSREQ_CONST_FIRM_STATUS SYSREQ_CONST_FIRM_VALUE SYSREQ_CONST_SERVER_STATUS SYSREQ_CONTENTS SYSREQ_DATE_OPEN SYSREQ_DATE_CLOSE SYSREQ_DESCRIPTION SYSREQ_DESCRIPTION_LOCALIZE_ID SYSREQ_DOUBLE SYSREQ_EDOC_ACCESS_TYPE SYSREQ_EDOC_AUTHOR SYSREQ_EDOC_CREATED SYSREQ_EDOC_DELEGATE_RIGHTS_REQUISITE_CODE SYSREQ_EDOC_EDITOR SYSREQ_EDOC_ENCODE_TYPE SYSREQ_EDOC_ENCRYPTION_PLUGIN_NAME SYSREQ_EDOC_ENCRYPTION_PLUGIN_VERSION SYSREQ_EDOC_EXPORT_DATE SYSREQ_EDOC_EXPORTER SYSREQ_EDOC_KIND SYSREQ_EDOC_LIFE_STAGE_NAME SYSREQ_EDOC_LOCKED_FOR_SERVER_CODE SYSREQ_EDOC_MODIFIED SYSREQ_EDOC_NAME SYSREQ_EDOC_NOTE SYSREQ_EDOC_QUALIFIED_ID SYSREQ_EDOC_SESSION_KEY SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_NAME SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_VERSION SYSREQ_EDOC_SIGNATURE_TYPE SYSREQ_EDOC_SIGNED SYSREQ_EDOC_STORAGE SYSREQ_EDOC_STORAGES_ARCHIVE_STORAGE SYSREQ_EDOC_STORAGES_CHECK_RIGHTS SYSREQ_EDOC_STORAGES_COMPUTER_NAME SYSREQ_EDOC_STORAGES_EDIT_IN_STORAGE SYSREQ_EDOC_STORAGES_EXECUTIVE_STORAGE SYSREQ_EDOC_STORAGES_FUNCTION SYSREQ_EDOC_STORAGES_INITIALIZED SYSREQ_EDOC_STORAGES_LOCAL_PATH SYSREQ_EDOC_STORAGES_SAPERION_DATABASE_NAME SYSREQ_EDOC_STORAGES_SEARCH_BY_TEXT SYSREQ_EDOC_STORAGES_SERVER_NAME SYSREQ_EDOC_STORAGES_SHARED_SOURCE_NAME SYSREQ_EDOC_STORAGES_TYPE SYSREQ_EDOC_TEXT_MODIFIED SYSREQ_EDOC_TYPE_ACT_CODE SYSREQ_EDOC_TYPE_ACT_DESCRIPTION SYSREQ_EDOC_TYPE_ACT_DESCRIPTION_LOCALIZE_ID SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE_EXISTS SYSREQ_EDOC_TYPE_ACT_SECTION SYSREQ_EDOC_TYPE_ADD_PARAMS SYSREQ_EDOC_TYPE_COMMENT SYSREQ_EDOC_TYPE_EVENT_TEXT SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID SYSREQ_EDOC_TYPE_NAME_LOCALIZE_ID SYSREQ_EDOC_TYPE_NUMERATION_METHOD SYSREQ_EDOC_TYPE_PSEUDO_REQUISITE_CODE SYSREQ_EDOC_TYPE_REQ_CODE SYSREQ_EDOC_TYPE_REQ_DESCRIPTION SYSREQ_EDOC_TYPE_REQ_DESCRIPTION_LOCALIZE_ID SYSREQ_EDOC_TYPE_REQ_IS_LEADING SYSREQ_EDOC_TYPE_REQ_IS_REQUIRED SYSREQ_EDOC_TYPE_REQ_NUMBER SYSREQ_EDOC_TYPE_REQ_ON_CHANGE SYSREQ_EDOC_TYPE_REQ_ON_CHANGE_EXISTS SYSREQ_EDOC_TYPE_REQ_ON_SELECT SYSREQ_EDOC_TYPE_REQ_ON_SELECT_KIND SYSREQ_EDOC_TYPE_REQ_SECTION SYSREQ_EDOC_TYPE_VIEW_CARD SYSREQ_EDOC_TYPE_VIEW_CODE SYSREQ_EDOC_TYPE_VIEW_COMMENT SYSREQ_EDOC_TYPE_VIEW_IS_MAIN SYSREQ_EDOC_TYPE_VIEW_NAME SYSREQ_EDOC_TYPE_VIEW_NAME_LOCALIZE_ID SYSREQ_EDOC_VERSION_AUTHOR SYSREQ_EDOC_VERSION_CRC SYSREQ_EDOC_VERSION_DATA SYSREQ_EDOC_VERSION_EDITOR SYSREQ_EDOC_VERSION_EXPORT_DATE SYSREQ_EDOC_VERSION_EXPORTER SYSREQ_EDOC_VERSION_HIDDEN SYSREQ_EDOC_VERSION_LIFE_STAGE SYSREQ_EDOC_VERSION_MODIFIED SYSREQ_EDOC_VERSION_NOTE SYSREQ_EDOC_VERSION_SIGNATURE_TYPE SYSREQ_EDOC_VERSION_SIGNED SYSREQ_EDOC_VERSION_SIZE SYSREQ_EDOC_VERSION_SOURCE SYSREQ_EDOC_VERSION_TEXT_MODIFIED SYSREQ_EDOCKIND_DEFAULT_VERSION_STATE_CODE SYSREQ_FOLDER_KIND SYSREQ_FUNC_CATEGORY SYSREQ_FUNC_COMMENT SYSREQ_FUNC_GROUP SYSREQ_FUNC_GROUP_COMMENT SYSREQ_FUNC_GROUP_NUMBER SYSREQ_FUNC_HELP SYSREQ_FUNC_PARAM_DEF_VALUE SYSREQ_FUNC_PARAM_IDENT SYSREQ_FUNC_PARAM_NUMBER SYSREQ_FUNC_PARAM_TYPE SYSREQ_FUNC_TEXT SYSREQ_GROUP_CATEGORY SYSREQ_ID SYSREQ_LAST_UPDATE SYSREQ_LEADER_REFERENCE SYSREQ_LINE_NUMBER SYSREQ_MAIN_RECORD_ID SYSREQ_NAME SYSREQ_NAME_LOCALIZE_ID SYSREQ_NOTE SYSREQ_ORIGINAL_RECORD SYSREQ_OUR_FIRM SYSREQ_PROFILING_SETTINGS_BATCH_LOGING SYSREQ_PROFILING_SETTINGS_BATCH_SIZE SYSREQ_PROFILING_SETTINGS_PROFILING_ENABLED SYSREQ_PROFILING_SETTINGS_SQL_PROFILING_ENABLED SYSREQ_PROFILING_SETTINGS_START_LOGGED SYSREQ_RECORD_STATUS SYSREQ_REF_REQ_FIELD_NAME SYSREQ_REF_REQ_FORMAT SYSREQ_REF_REQ_GENERATED SYSREQ_REF_REQ_LENGTH SYSREQ_REF_REQ_PRECISION SYSREQ_REF_REQ_REFERENCE SYSREQ_REF_REQ_SECTION SYSREQ_REF_REQ_STORED SYSREQ_REF_REQ_TOKENS SYSREQ_REF_REQ_TYPE SYSREQ_REF_REQ_VIEW SYSREQ_REF_TYPE_ACT_CODE SYSREQ_REF_TYPE_ACT_DESCRIPTION SYSREQ_REF_TYPE_ACT_DESCRIPTION_LOCALIZE_ID SYSREQ_REF_TYPE_ACT_ON_EXECUTE SYSREQ_REF_TYPE_ACT_ON_EXECUTE_EXISTS SYSREQ_REF_TYPE_ACT_SECTION SYSREQ_REF_TYPE_ADD_PARAMS SYSREQ_REF_TYPE_COMMENT SYSREQ_REF_TYPE_COMMON_SETTINGS SYSREQ_REF_TYPE_DISPLAY_REQUISITE_NAME SYSREQ_REF_TYPE_EVENT_TEXT SYSREQ_REF_TYPE_MAIN_LEADING_REF SYSREQ_REF_TYPE_NAME_IN_SINGULAR SYSREQ_REF_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID SYSREQ_REF_TYPE_NAME_LOCALIZE_ID SYSREQ_REF_TYPE_NUMERATION_METHOD SYSREQ_REF_TYPE_REQ_CODE SYSREQ_REF_TYPE_REQ_DESCRIPTION SYSREQ_REF_TYPE_REQ_DESCRIPTION_LOCALIZE_ID SYSREQ_REF_TYPE_REQ_IS_CONTROL SYSREQ_REF_TYPE_REQ_IS_FILTER SYSREQ_REF_TYPE_REQ_IS_LEADING SYSREQ_REF_TYPE_REQ_IS_REQUIRED SYSREQ_REF_TYPE_REQ_NUMBER SYSREQ_REF_TYPE_REQ_ON_CHANGE SYSREQ_REF_TYPE_REQ_ON_CHANGE_EXISTS SYSREQ_REF_TYPE_REQ_ON_SELECT SYSREQ_REF_TYPE_REQ_ON_SELECT_KIND SYSREQ_REF_TYPE_REQ_SECTION SYSREQ_REF_TYPE_VIEW_CARD SYSREQ_REF_TYPE_VIEW_CODE SYSREQ_REF_TYPE_VIEW_COMMENT SYSREQ_REF_TYPE_VIEW_IS_MAIN SYSREQ_REF_TYPE_VIEW_NAME SYSREQ_REF_TYPE_VIEW_NAME_LOCALIZE_ID SYSREQ_REFERENCE_TYPE_ID SYSREQ_STATE SYSREQ_STAT\u0415 SYSREQ_SYSTEM_SETTINGS_VALUE SYSREQ_TYPE SYSREQ_UNIT SYSREQ_UNIT_ID SYSREQ_USER_GROUPS_GROUP_FULL_NAME SYSREQ_USER_GROUPS_GROUP_NAME SYSREQ_USER_GROUPS_GROUP_SERVER_NAME SYSREQ_USERS_ACCESS_RIGHTS SYSREQ_USERS_AUTHENTICATION SYSREQ_USERS_CATEGORY SYSREQ_USERS_COMPONENT SYSREQ_USERS_COMPONENT_USER_IS_PUBLIC SYSREQ_USERS_DOMAIN SYSREQ_USERS_FULL_USER_NAME SYSREQ_USERS_GROUP SYSREQ_USERS_IS_MAIN_SERVER SYSREQ_USERS_LOGIN SYSREQ_USERS_REFERENCE_USER_IS_PUBLIC SYSREQ_USERS_STATUS SYSREQ_USERS_USER_CERTIFICATE SYSREQ_USERS_USER_CERTIFICATE_INFO SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_NAME SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_VERSION SYSREQ_USERS_USER_CERTIFICATE_STATE SYSREQ_USERS_USER_CERTIFICATE_SUBJECT_NAME SYSREQ_USERS_USER_CERTIFICATE_THUMBPRINT SYSREQ_USERS_USER_DEFAULT_CERTIFICATE SYSREQ_USERS_USER_DESCRIPTION SYSREQ_USERS_USER_GLOBAL_NAME SYSREQ_USERS_USER_LOGIN SYSREQ_USERS_USER_MAIN_SERVER SYSREQ_USERS_USER_TYPE SYSREQ_WORK_RULES_FOLDER_ID RESULT_VAR_NAME RESULT_VAR_NAME_ENG AUTO_NUMERATION_RULE_ID CANT_CHANGE_ID_REQUISITE_RULE_ID CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID CHECK_CHANGING_REFERENCE_RECORD_USE_RULE_ID CHECK_CODE_REQUISITE_RULE_ID CHECK_DELETING_REFERENCE_RECORD_USE_RULE_ID CHECK_FILTRATER_CHANGES_RULE_ID CHECK_RECORD_INTERVAL_RULE_ID CHECK_REFERENCE_INTERVAL_RULE_ID CHECK_REQUIRED_DATA_FULLNESS_RULE_ID CHECK_REQUIRED_REQUISITES_FULLNESS_RULE_ID MAKE_RECORD_UNRATIFIED_RULE_ID RESTORE_AUTO_NUMERATION_RULE_ID SET_FIRM_CONTEXT_FROM_RECORD_RULE_ID SET_FIRST_RECORD_IN_LIST_FORM_RULE_ID SET_IDSPS_VALUE_RULE_ID SET_NEXT_CODE_VALUE_RULE_ID SET_OURFIRM_BOUNDS_RULE_ID SET_OURFIRM_REQUISITE_RULE_ID SCRIPT_BLOCK_AFTER_FINISH_EVENT SCRIPT_BLOCK_BEFORE_START_EVENT SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY SCRIPT_BLOCK_NAME_PROPERTY SCRIPT_BLOCK_SCRIPT_PROPERTY SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY SUBTASK_BLOCK_AFTER_FINISH_EVENT SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT SUBTASK_BLOCK_ATTACHMENTS_PROPERTY SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY SUBTASK_BLOCK_BEFORE_START_EVENT SUBTASK_BLOCK_CREATED_TASK_PROPERTY SUBTASK_BLOCK_CREATION_EVENT SUBTASK_BLOCK_DEADLINE_PROPERTY SUBTASK_BLOCK_IMPORTANCE_PROPERTY SUBTASK_BLOCK_INITIATOR_PROPERTY SUBTASK_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY SUBTASK_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY SUBTASK_BLOCK_JOBS_TYPE_PROPERTY SUBTASK_BLOCK_NAME_PROPERTY SUBTASK_BLOCK_PARALLEL_ROUTE_PROPERTY SUBTASK_BLOCK_PERFORMERS_PROPERTY SUBTASK_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY SUBTASK_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY SUBTASK_BLOCK_REQUIRE_SIGN_PROPERTY SUBTASK_BLOCK_STANDARD_ROUTE_PROPERTY SUBTASK_BLOCK_START_EVENT SUBTASK_BLOCK_STEP_CONTROL_PROPERTY SUBTASK_BLOCK_SUBJECT_PROPERTY SUBTASK_BLOCK_TASK_CONTROL_PROPERTY SUBTASK_BLOCK_TEXT_PROPERTY SUBTASK_BLOCK_UNLOCK_ATTACHMENTS_ON_STOP_PROPERTY SUBTASK_BLOCK_USE_STANDARD_ROUTE_PROPERTY SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY SYSCOMP_CONTROL_JOBS SYSCOMP_FOLDERS SYSCOMP_JOBS SYSCOMP_NOTICES SYSCOMP_TASKS SYSDLG_CREATE_EDOCUMENT SYSDLG_CREATE_EDOCUMENT_VERSION SYSDLG_CURRENT_PERIOD SYSDLG_EDIT_FUNCTION_HELP SYSDLG_EDOCUMENT_KINDS_FOR_TEMPLATE SYSDLG_EXPORT_MULTIPLE_EDOCUMENTS SYSDLG_EXPORT_SINGLE_EDOCUMENT SYSDLG_IMPORT_EDOCUMENT SYSDLG_MULTIPLE_SELECT SYSDLG_SETUP_ACCESS_RIGHTS SYSDLG_SETUP_DEFAULT_RIGHTS SYSDLG_SETUP_FILTER_CONDITION SYSDLG_SETUP_SIGN_RIGHTS SYSDLG_SETUP_TASK_OBSERVERS SYSDLG_SETUP_TASK_ROUTE SYSDLG_SETUP_USERS_LIST SYSDLG_SIGN_EDOCUMENT SYSDLG_SIGN_MULTIPLE_EDOCUMENTS SYSREF_ACCESS_RIGHTS_TYPES SYSREF_ADMINISTRATION_HISTORY SYSREF_ALL_AVAILABLE_COMPONENTS SYSREF_ALL_AVAILABLE_PRIVILEGES SYSREF_ALL_REPLICATING_COMPONENTS SYSREF_AVAILABLE_DEVELOPERS_COMPONENTS SYSREF_CALENDAR_EVENTS SYSREF_COMPONENT_TOKEN_HISTORY SYSREF_COMPONENT_TOKENS SYSREF_COMPONENTS SYSREF_CONSTANTS SYSREF_DATA_RECEIVE_PROTOCOL SYSREF_DATA_SEND_PROTOCOL SYSREF_DIALOGS SYSREF_DIALOGS_REQUISITES SYSREF_EDITORS SYSREF_EDOC_CARDS SYSREF_EDOC_TYPES SYSREF_EDOCUMENT_CARD_REQUISITES SYSREF_EDOCUMENT_CARD_TYPES SYSREF_EDOCUMENT_CARD_TYPES_REFERENCE SYSREF_EDOCUMENT_CARDS SYSREF_EDOCUMENT_HISTORY SYSREF_EDOCUMENT_KINDS SYSREF_EDOCUMENT_REQUISITES SYSREF_EDOCUMENT_SIGNATURES SYSREF_EDOCUMENT_TEMPLATES SYSREF_EDOCUMENT_TEXT_STORAGES SYSREF_EDOCUMENT_VIEWS SYSREF_FILTERER_SETUP_CONFLICTS SYSREF_FILTRATER_SETTING_CONFLICTS SYSREF_FOLDER_HISTORY SYSREF_FOLDERS SYSREF_FUNCTION_GROUPS SYSREF_FUNCTION_PARAMS SYSREF_FUNCTIONS SYSREF_JOB_HISTORY SYSREF_LINKS SYSREF_LOCALIZATION_DICTIONARY SYSREF_LOCALIZATION_LANGUAGES SYSREF_MODULES SYSREF_PRIVILEGES SYSREF_RECORD_HISTORY SYSREF_REFERENCE_REQUISITES SYSREF_REFERENCE_TYPE_VIEWS SYSREF_REFERENCE_TYPES SYSREF_REFERENCES SYSREF_REFERENCES_REQUISITES SYSREF_REMOTE_SERVERS SYSREF_REPLICATION_SESSIONS_LOG SYSREF_REPLICATION_SESSIONS_PROTOCOL SYSREF_REPORTS SYSREF_ROLES SYSREF_ROUTE_BLOCK_GROUPS SYSREF_ROUTE_BLOCKS SYSREF_SCRIPTS SYSREF_SEARCHES SYSREF_SERVER_EVENTS SYSREF_SERVER_EVENTS_HISTORY SYSREF_STANDARD_ROUTE_GROUPS SYSREF_STANDARD_ROUTES SYSREF_STATUSES SYSREF_SYSTEM_SETTINGS SYSREF_TASK_HISTORY SYSREF_TASK_KIND_GROUPS SYSREF_TASK_KINDS SYSREF_TASK_RIGHTS SYSREF_TASK_SIGNATURES SYSREF_TASKS SYSREF_UNITS SYSREF_USER_GROUPS SYSREF_USER_GROUPS_REFERENCE SYSREF_USER_SUBSTITUTION SYSREF_USERS SYSREF_USERS_REFERENCE SYSREF_VIEWERS SYSREF_WORKING_TIME_CALENDARS ACCESS_RIGHTS_TABLE_NAME EDMS_ACCESS_TABLE_NAME EDOC_TYPES_TABLE_NAME TEST_DEV_DB_NAME TEST_DEV_SYSTEM_CODE TEST_EDMS_DB_NAME TEST_EDMS_MAIN_CODE TEST_EDMS_MAIN_DB_NAME TEST_EDMS_SECOND_CODE TEST_EDMS_SECOND_DB_NAME TEST_EDMS_SYSTEM_CODE TEST_ISB5_MAIN_CODE TEST_ISB5_SECOND_CODE TEST_SQL_SERVER_2005_NAME TEST_SQL_SERVER_NAME ATTENTION_CAPTION cbsCommandLinks cbsDefault CONFIRMATION_CAPTION ERROR_CAPTION INFORMATION_CAPTION mrCancel mrOk EDOC_VERSION_ACTIVE_STAGE_CODE EDOC_VERSION_DESIGN_STAGE_CODE EDOC_VERSION_OBSOLETE_STAGE_CODE cpDataEnciphermentEnabled cpDigitalSignatureEnabled cpID cpIssuer cpPluginVersion cpSerial cpSubjectName cpSubjSimpleName cpValidFromDate cpValidToDate ISBL_SYNTAX NO_SYNTAX XML_SYNTAX WAIT_BLOCK_AFTER_FINISH_EVENT WAIT_BLOCK_BEFORE_START_EVENT WAIT_BLOCK_DEADLINE_PROPERTY WAIT_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY WAIT_BLOCK_NAME_PROPERTY WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY SYSRES_COMMON SYSRES_CONST SYSRES_MBFUNC SYSRES_SBDATA SYSRES_SBGUI SYSRES_SBINTF SYSRES_SBREFDSC SYSRES_SQLERRORS SYSRES_SYSCOMP atUser atGroup atRole aemEnabledAlways aemDisabledAlways aemEnabledOnBrowse aemEnabledOnEdit aemDisabledOnBrowseEmpty apBegin apEnd alLeft alRight asmNever asmNoButCustomize asmAsLastTime asmYesButCustomize asmAlways cirCommon cirRevoked ctSignature ctEncode ctSignatureEncode clbUnchecked clbChecked clbGrayed ceISB ceAlways ceNever ctDocument ctReference ctScript ctUnknown ctReport ctDialog ctFunction ctFolder ctEDocument ctTask ctJob ctNotice ctControlJob cfInternal cfDisplay ciUnspecified ciWrite ciRead ckFolder ckEDocument ckTask ckJob ckComponentToken ckAny ckReference ckScript ckReport ckDialog ctISBLEditor ctBevel ctButton ctCheckListBox ctComboBox ctComboEdit ctGrid ctDBCheckBox ctDBComboBox ctDBEdit ctDBEllipsis ctDBMemo ctDBNavigator ctDBRadioGroup ctDBStatusLabel ctEdit ctGroupBox ctInplaceHint ctMemo ctPanel ctListBox ctRadioButton ctRichEdit ctTabSheet ctWebBrowser ctImage ctHyperLink ctLabel ctDBMultiEllipsis ctRibbon ctRichView ctInnerPanel ctPanelGroup ctBitButton cctDate cctInteger cctNumeric cctPick cctReference cctString cctText cltInternal cltPrimary cltGUI dseBeforeOpen dseAfterOpen dseBeforeClose dseAfterClose dseOnValidDelete dseBeforeDelete dseAfterDelete dseAfterDeleteOutOfTransaction dseOnDeleteError dseBeforeInsert dseAfterInsert dseOnValidUpdate dseBeforeUpdate dseOnUpdateRatifiedRecord dseAfterUpdate dseAfterUpdateOutOfTransaction dseOnUpdateError dseAfterScroll dseOnOpenRecord dseOnCloseRecord dseBeforeCancel dseAfterCancel dseOnUpdateDeadlockError dseBeforeDetailUpdate dseOnPrepareUpdate dseOnAnyRequisiteChange dssEdit dssInsert dssBrowse dssInActive dftDate dftShortDate dftDateTime dftTimeStamp dotDays dotHours dotMinutes dotSeconds dtkndLocal dtkndUTC arNone arView arEdit arFull ddaView ddaEdit emLock emEdit emSign emExportWithLock emImportWithUnlock emChangeVersionNote emOpenForModify emChangeLifeStage emDelete emCreateVersion emImport emUnlockExportedWithLock emStart emAbort emReInit emMarkAsReaded emMarkAsUnreaded emPerform emAccept emResume emChangeRights emEditRoute emEditObserver emRecoveryFromLocalCopy emChangeWorkAccessType emChangeEncodeTypeToCertificate emChangeEncodeTypeToPassword emChangeEncodeTypeToNone emChangeEncodeTypeToCertificatePassword emChangeStandardRoute emGetText emOpenForView emMoveToStorage emCreateObject emChangeVersionHidden emDeleteVersion emChangeLifeCycleStage emApprovingSign emExport emContinue emLockFromEdit emUnLockForEdit emLockForServer emUnlockFromServer emDelegateAccessRights emReEncode ecotFile ecotProcess eaGet eaCopy eaCreate eaCreateStandardRoute edltAll edltNothing edltQuery essmText essmCard esvtLast esvtLastActive esvtSpecified edsfExecutive edsfArchive edstSQLServer edstFile edvstNone edvstEDocumentVersionCopy edvstFile edvstTemplate edvstScannedFile vsDefault vsDesign vsActive vsObsolete etNone etCertificate etPassword etCertificatePassword ecException ecWarning ecInformation estAll estApprovingOnly evtLast evtLastActive evtQuery fdtString fdtNumeric fdtInteger fdtDate fdtText fdtUnknown fdtWideString fdtLargeInteger ftInbox ftOutbox ftFavorites ftCommonFolder ftUserFolder ftComponents ftQuickLaunch ftShortcuts ftSearch grhAuto grhX1 grhX2 grhX3 hltText hltRTF hltHTML iffBMP iffJPEG iffMultiPageTIFF iffSinglePageTIFF iffTIFF iffPNG im8bGrayscale im24bRGB im1bMonochrome itBMP itJPEG itWMF itPNG ikhInformation ikhWarning ikhError ikhNoIcon icUnknown icScript icFunction icIntegratedReport icAnalyticReport icDataSetEventHandler icActionHandler icFormEventHandler icLookUpEventHandler icRequisiteChangeEventHandler icBeforeSearchEventHandler icRoleCalculation icSelectRouteEventHandler icBlockPropertyCalculation icBlockQueryParamsEventHandler icChangeSearchResultEventHandler icBlockEventHandler icSubTaskInitEventHandler icEDocDataSetEventHandler icEDocLookUpEventHandler icEDocActionHandler icEDocFormEventHandler icEDocRequisiteChangeEventHandler icStructuredConversionRule icStructuredConversionEventBefore icStructuredConversionEventAfter icWizardEventHandler icWizardFinishEventHandler icWizardStepEventHandler icWizardStepFinishEventHandler icWizardActionEnableEventHandler icWizardActionExecuteEventHandler icCreateJobsHandler icCreateNoticesHandler icBeforeLookUpEventHandler icAfterLookUpEventHandler icTaskAbortEventHandler icWorkflowBlockActionHandler icDialogDataSetEventHandler icDialogActionHandler icDialogLookUpEventHandler icDialogRequisiteChangeEventHandler icDialogFormEventHandler icDialogValidCloseEventHandler icBlockFormEventHandler icTaskFormEventHandler icReferenceMethod icEDocMethod icDialogMethod icProcessMessageHandler isShow isHide isByUserSettings jkJob jkNotice jkControlJob jtInner jtLeft jtRight jtFull jtCross lbpAbove lbpBelow lbpLeft lbpRight eltPerConnection eltPerUser sfcUndefined sfcBlack sfcGreen sfcRed sfcBlue sfcOrange sfcLilac sfsItalic sfsStrikeout sfsNormal ldctStandardRoute ldctWizard ldctScript ldctFunction ldctRouteBlock ldctIntegratedReport ldctAnalyticReport ldctReferenceType ldctEDocumentType ldctDialog ldctServerEvents mrcrtNone mrcrtUser mrcrtMaximal mrcrtCustom vtEqual vtGreaterOrEqual vtLessOrEqual vtRange rdYesterday rdToday rdTomorrow rdThisWeek rdThisMonth rdThisYear rdNextMonth rdNextWeek rdLastWeek rdLastMonth rdWindow rdFile rdPrinter rdtString rdtNumeric rdtInteger rdtDate rdtReference rdtAccount rdtText rdtPick rdtUnknown rdtLargeInteger rdtDocument reOnChange reOnChangeValues ttGlobal ttLocal ttUser ttSystem ssmBrowse ssmSelect ssmMultiSelect ssmBrowseModal smSelect smLike smCard stNone stAuthenticating stApproving sctString sctStream sstAnsiSort sstNaturalSort svtEqual svtContain soatString soatNumeric soatInteger soatDatetime soatReferenceRecord soatText soatPick soatBoolean soatEDocument soatAccount soatIntegerCollection soatNumericCollection soatStringCollection soatPickCollection soatDatetimeCollection soatBooleanCollection soatReferenceRecordCollection soatEDocumentCollection soatAccountCollection soatContents soatUnknown tarAbortByUser tarAbortByWorkflowException tvtAllWords tvtExactPhrase tvtAnyWord usNone usCompleted usRedSquare usBlueSquare usYellowSquare usGreenSquare usOrangeSquare usPurpleSquare usFollowUp utUnknown utUser utDeveloper utAdministrator utSystemDeveloper utDisconnected btAnd btDetailAnd btOr btNotOr btOnly vmView vmSelect vmNavigation vsmSingle vsmMultiple vsmMultipleCheck vsmNoSelection wfatPrevious wfatNext wfatCancel wfatFinish wfepUndefined wfepText3 wfepText6 wfepText9 wfepSpinEdit wfepDropDown wfepRadioGroup wfepFlag wfepText12 wfepText15 wfepText18 wfepText21 wfepText24 wfepText27 wfepText30 wfepRadioGroupColumn1 wfepRadioGroupColumn2 wfepRadioGroupColumn3 wfetQueryParameter wfetText wfetDelimiter wfetLabel wptString wptInteger wptNumeric wptBoolean wptDateTime wptPick wptText wptUser wptUserList wptEDocumentInfo wptEDocumentInfoList wptReferenceRecordInfo wptReferenceRecordInfoList wptFolderInfo wptTaskInfo wptContents wptFileName wptDate wsrComplete wsrGoNext wsrGoPrevious wsrCustom wsrCancel wsrGoFinal wstForm wstEDocument wstTaskCard wstReferenceRecordCard wstFinal waAll waPerformers waManual wsbStart wsbFinish wsbNotice wsbStep wsbDecision wsbWait wsbMonitor wsbScript wsbConnector wsbSubTask wsbLifeCycleStage wsbPause wdtInteger wdtFloat wdtString wdtPick wdtDateTime wdtBoolean wdtTask wdtJob wdtFolder wdtEDocument wdtReferenceRecord wdtUser wdtGroup wdtRole wdtIntegerCollection wdtFloatCollection wdtStringCollection wdtPickCollection wdtDateTimeCollection wdtBooleanCollection wdtTaskCollection wdtJobCollection wdtFolderCollection wdtEDocumentCollection wdtReferenceRecordCollection wdtUserCollection wdtGroupCollection wdtRoleCollection wdtContents wdtUserList wdtSearchDescription wdtDeadLine wdtPickSet wdtAccountCollection wiLow wiNormal wiHigh wrtSoft wrtHard wsInit wsRunning wsDone wsControlled wsAborted wsContinued wtmFull wtmFromCurrent wtmOnlyCurrent ", +class:"AltState Application CallType ComponentTokens CreatedJobs CreatedNotices ControlState DialogResult Dialogs EDocuments EDocumentVersionSource Folders GlobalIDs Job Jobs InputValue LookUpReference LookUpRequisiteNames LookUpSearch Object ParentComponent Processes References Requisite ReportName Reports Result Scripts Searches SelectedAttachments SelectedItems SelectMode Sender ServerEvents ServiceFactory ShiftState SubTask SystemDialogs Tasks Wizard Wizards Work \u0412\u044b\u0437\u043e\u0432\u0421\u043f\u043e\u0441\u043e\u0431 \u0418\u043c\u044f\u041e\u0442\u0447\u0435\u0442\u0430 \u0420\u0435\u043a\u0432\u0417\u043d\u0430\u0447 ", +literal:"null true false nil "},I={begin:"\\.\\s*"+S.UNDERSCORE_IDENT_RE, +keywords:C,relevance:0},N={className:"type", +begin:":[ \\t]*(IApplication|IAccessRights|IAccountRepository|IAccountSelectionRestrictions|IAction|IActionList|IAdministrationHistoryDescription|IAnchors|IApplication|IArchiveInfo|IAttachment|IAttachmentList|ICheckListBox|ICheckPointedList|IColumn|IComponent|IComponentDescription|IComponentToken|IComponentTokenFactory|IComponentTokenInfo|ICompRecordInfo|IConnection|IContents|IControl|IControlJob|IControlJobInfo|IControlList|ICrypto|ICrypto2|ICustomJob|ICustomJobInfo|ICustomListBox|ICustomObjectWizardStep|ICustomWork|ICustomWorkInfo|IDataSet|IDataSetAccessInfo|IDataSigner|IDateCriterion|IDateRequisite|IDateRequisiteDescription|IDateValue|IDeaAccessRights|IDeaObjectInfo|IDevelopmentComponentLock|IDialog|IDialogFactory|IDialogPickRequisiteItems|IDialogsFactory|IDICSFactory|IDocRequisite|IDocumentInfo|IDualListDialog|IECertificate|IECertificateInfo|IECertificates|IEditControl|IEditorForm|IEdmsExplorer|IEdmsObject|IEdmsObjectDescription|IEdmsObjectFactory|IEdmsObjectInfo|IEDocument|IEDocumentAccessRights|IEDocumentDescription|IEDocumentEditor|IEDocumentFactory|IEDocumentInfo|IEDocumentStorage|IEDocumentVersion|IEDocumentVersionListDialog|IEDocumentVersionSource|IEDocumentWizardStep|IEDocVerSignature|IEDocVersionState|IEnabledMode|IEncodeProvider|IEncrypter|IEvent|IEventList|IException|IExternalEvents|IExternalHandler|IFactory|IField|IFileDialog|IFolder|IFolderDescription|IFolderDialog|IFolderFactory|IFolderInfo|IForEach|IForm|IFormTitle|IFormWizardStep|IGlobalIDFactory|IGlobalIDInfo|IGrid|IHasher|IHistoryDescription|IHyperLinkControl|IImageButton|IImageControl|IInnerPanel|IInplaceHint|IIntegerCriterion|IIntegerList|IIntegerRequisite|IIntegerValue|IISBLEditorForm|IJob|IJobDescription|IJobFactory|IJobForm|IJobInfo|ILabelControl|ILargeIntegerCriterion|ILargeIntegerRequisite|ILargeIntegerValue|ILicenseInfo|ILifeCycleStage|IList|IListBox|ILocalIDInfo|ILocalization|ILock|IMemoryDataSet|IMessagingFactory|IMetadataRepository|INotice|INoticeInfo|INumericCriterion|INumericRequisite|INumericValue|IObject|IObjectDescription|IObjectImporter|IObjectInfo|IObserver|IPanelGroup|IPickCriterion|IPickProperty|IPickRequisite|IPickRequisiteDescription|IPickRequisiteItem|IPickRequisiteItems|IPickValue|IPrivilege|IPrivilegeList|IProcess|IProcessFactory|IProcessMessage|IProgress|IProperty|IPropertyChangeEvent|IQuery|IReference|IReferenceCriterion|IReferenceEnabledMode|IReferenceFactory|IReferenceHistoryDescription|IReferenceInfo|IReferenceRecordCardWizardStep|IReferenceRequisiteDescription|IReferencesFactory|IReferenceValue|IRefRequisite|IReport|IReportFactory|IRequisite|IRequisiteDescription|IRequisiteDescriptionList|IRequisiteFactory|IRichEdit|IRouteStep|IRule|IRuleList|ISchemeBlock|IScript|IScriptFactory|ISearchCriteria|ISearchCriterion|ISearchDescription|ISearchFactory|ISearchFolderInfo|ISearchForObjectDescription|ISearchResultRestrictions|ISecuredContext|ISelectDialog|IServerEvent|IServerEventFactory|IServiceDialog|IServiceFactory|ISignature|ISignProvider|ISignProvider2|ISignProvider3|ISimpleCriterion|IStringCriterion|IStringList|IStringRequisite|IStringRequisiteDescription|IStringValue|ISystemDialogsFactory|ISystemInfo|ITabSheet|ITask|ITaskAbortReasonInfo|ITaskCardWizardStep|ITaskDescription|ITaskFactory|ITaskInfo|ITaskRoute|ITextCriterion|ITextRequisite|ITextValue|ITreeListSelectDialog|IUser|IUserList|IValue|IView|IWebBrowserControl|IWizard|IWizardAction|IWizardFactory|IWizardFormElement|IWizardParam|IWizardPickParam|IWizardReferenceParam|IWizardStep|IWorkAccessRights|IWorkDescription|IWorkflowAskableParam|IWorkflowAskableParams|IWorkflowBlock|IWorkflowBlockResult|IWorkflowEnabledMode|IWorkflowParam|IWorkflowPickParam|IWorkflowReferenceParam|IWorkState|IWorkTreeCustomNode|IWorkTreeJobNode|IWorkTreeTaskNode|IXMLEditorForm|SBCrypto)", +end:"[ \\t]*=",excludeEnd:!0},A={className:"variable",keywords:C,begin:E, +relevance:0,contains:[N,I] +},e="[A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_][A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_0-9]*\\(" +;return{name:"ISBL",case_insensitive:!0,keywords:C, +illegal:"\\$|\\?|%|,|;$|~|#|@|{var e=(()=>{"use strict" +;var e="\\.([0-9](_*[0-9])*)",a="[0-9a-fA-F](_*[0-9a-fA-F])*",n={ +className:"number",variants:[{ +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ +begin:`\\b0[xX]((${a})\\.?|(${a})?\\.(${a}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${a})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};function s(e,a,n){return-1===n?"":e.replace(a,(t=>s(e,a,n-1)))} +return e=>{ +const a=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",i=t+s("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),r={ +keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"], +literal:["false","true","null"], +type:["char","boolean","long","float","int","byte","short","double"], +built_in:["super","this"]},l={className:"meta",begin:"@"+t,contains:[{ +begin:/\(/,end:/\)/,contains:["self"]}]},c={className:"params",begin:/\(/, +end:/\)/,keywords:r,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0} +;return{name:"Java",aliases:["jsp"],keywords:r,illegal:/<\/|#/, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, +relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ +begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/, +className:"string",contains:[e.BACKSLASH_ESCAPE] +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ +match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{ +1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{ +begin:[a.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type", +3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword", +3:"title.class"},contains:[c,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +beginKeywords:"new throw return else",relevance:0},{ +begin:["(?:"+i+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{ +2:"title.function"},keywords:r,contains:[{className:"params",begin:/\(/, +end:/\)/,keywords:r,relevance:0, +contains:[l,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n,l]}}})() +;hljs.registerLanguage("java",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/javascript.min.js b/src/app/resources/assets/highlight/languages/javascript.min.js new file mode 100644 index 0000000..430fb6b --- /dev/null +++ b/src/app/resources/assets/highlight/languages/javascript.min.js @@ -0,0 +1,78 @@ +/*! `javascript` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],t=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],r=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","module","global"],i=[].concat(r,t,s) +;return o=>{const l=o.regex,b=e,d={begin:/<[A-Za-z0-9\\._:-]+/, +end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ +const a=e[0].length+e.index,t=e.input[a] +;if("<"===t||","===t)return void n.ignoreMatch();let s +;">"===t&&(((e,{after:n})=>{const a="",M={ +match:[/const|var|let/,/\s+/,b,/\s*/,/=\s*/,/(async\s*)?/,l.lookahead(C)], +keywords:"async",className:{1:"keyword",3:"title.function"},contains:[S]} +;return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{ +PARAMS_CONTAINS:p,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/, +contains:[o.SHEBANG({label:"shebang",binary:"node",relevance:5}),{ +label:"use_strict",className:"meta",relevance:10, +begin:/^\s*['"]use (strict|asm)['"]/ +},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,y,N,_,h,{match:/\$\d+/},E,R,{ +className:"attr",begin:b+l.lookahead(":"),relevance:0},M,{ +begin:"("+o.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", +keywords:"return throw case",relevance:0,contains:[h,o.REGEXP_MODE,{ +className:"function",begin:C,returnBegin:!0,end:"\\s*=>",contains:[{ +className:"params",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{ +className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0, +excludeEnd:!0,keywords:g,contains:p}]}]},{begin:/,/,relevance:0},{match:/\s+/, +relevance:0},{variants:[{begin:"<>",end:""},{ +match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:d.begin, +"on:begin":d.isTrulyOpeningTag,end:d.end}],subLanguage:"xml",contains:[{ +begin:d.begin,end:d.end,skip:!0,contains:["self"]}]}]},O,{ +beginKeywords:"while if switch catch for"},{ +begin:"\\b(?!function)"+o.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,label:"func.def",contains:[S,o.inherit(o.TITLE_MODE,{begin:b, +className:"title.function"})]},{match:/\.\.\./,relevance:0},x,{match:"\\$"+b, +relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, +contains:[S]},k,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},w,T,{match:/\$[(.]/}]}}})() +;hljs.registerLanguage("javascript",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/jboss-cli.min.js b/src/app/resources/assets/highlight/languages/jboss-cli.min.js new file mode 100644 index 0000000..32c4fc1 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/jboss-cli.min.js @@ -0,0 +1,10 @@ +/*! `jboss-cli` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"JBoss CLI", +aliases:["wildfly-cli"],keywords:{$pattern:"[a-z-]+", +keyword:"alias batch cd clear command connect connection-factory connection-info data-source deploy deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias undeploy unset version xa-data-source", +literal:"true false"},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,{ +className:"params",begin:/--[\w\-=\/]+/},{className:"function", +begin:/:[\w\-.]+/,relevance:0},{className:"string",begin:/\B([\/.])[\w\-.\/=]+/ +},{className:"params",begin:/\(/,end:/\)/,contains:[{begin:/[\w-]+ *=/, +returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/[\w-]+/}]}], +relevance:0}]})})();hljs.registerLanguage("jboss-cli",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/json.min.js b/src/app/resources/assets/highlight/languages/json.min.js new file mode 100644 index 0000000..98da95b --- /dev/null +++ b/src/app/resources/assets/highlight/languages/json.min.js @@ -0,0 +1,7 @@ +/*! `json` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=["true","false","null"],n={ +scope:"literal",beginKeywords:a.join(" ")};return{name:"JSON",keywords:{ +literal:a},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/, +relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0 +},e.QUOTE_STRING_MODE,n,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE], +illegal:"\\S"}}})();hljs.registerLanguage("json",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/julia-repl.min.js b/src/app/resources/assets/highlight/languages/julia-repl.min.js new file mode 100644 index 0000000..b843128 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/julia-repl.min.js @@ -0,0 +1,5 @@ +/*! `julia-repl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var a=(()=>{"use strict";return a=>({name:"Julia REPL",contains:[{ +className:"meta.prompt",begin:/^julia>/,relevance:10,starts:{end:/^(?![ ]{6})/, +subLanguage:"julia"}}],aliases:["jldoctest"]})})() +;hljs.registerLanguage("julia-repl",a)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/julia.min.js b/src/app/resources/assets/highlight/languages/julia.min.js new file mode 100644 index 0000000..c30352c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/julia.min.js @@ -0,0 +1,18 @@ +/*! `julia` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const r="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",t={$pattern:r, +keyword:["baremodule","begin","break","catch","ccall","const","continue","do","else","elseif","end","export","false","finally","for","function","global","if","import","in","isa","let","local","macro","module","quote","return","true","try","using","where","while"], +literal:["ARGS","C_NULL","DEPOT_PATH","ENDIAN_BOM","ENV","Inf","Inf16","Inf32","Inf64","InsertionSort","LOAD_PATH","MergeSort","NaN","NaN16","NaN32","NaN64","PROGRAM_FILE","QuickSort","RoundDown","RoundFromZero","RoundNearest","RoundNearestTiesAway","RoundNearestTiesUp","RoundToZero","RoundUp","VERSION|0","devnull","false","im","missing","nothing","pi","stderr","stdin","stdout","true","undef","\u03c0","\u212f"], +built_in:["AbstractArray","AbstractChannel","AbstractChar","AbstractDict","AbstractDisplay","AbstractFloat","AbstractIrrational","AbstractMatrix","AbstractRange","AbstractSet","AbstractString","AbstractUnitRange","AbstractVecOrMat","AbstractVector","Any","ArgumentError","Array","AssertionError","BigFloat","BigInt","BitArray","BitMatrix","BitSet","BitVector","Bool","BoundsError","CapturedException","CartesianIndex","CartesianIndices","Cchar","Cdouble","Cfloat","Channel","Char","Cint","Cintmax_t","Clong","Clonglong","Cmd","Colon","Complex","ComplexF16","ComplexF32","ComplexF64","CompositeException","Condition","Cptrdiff_t","Cshort","Csize_t","Cssize_t","Cstring","Cuchar","Cuint","Cuintmax_t","Culong","Culonglong","Cushort","Cvoid","Cwchar_t","Cwstring","DataType","DenseArray","DenseMatrix","DenseVecOrMat","DenseVector","Dict","DimensionMismatch","Dims","DivideError","DomainError","EOFError","Enum","ErrorException","Exception","ExponentialBackOff","Expr","Float16","Float32","Float64","Function","GlobalRef","HTML","IO","IOBuffer","IOContext","IOStream","IdDict","IndexCartesian","IndexLinear","IndexStyle","InexactError","InitError","Int","Int128","Int16","Int32","Int64","Int8","Integer","InterruptException","InvalidStateException","Irrational","KeyError","LinRange","LineNumberNode","LinearIndices","LoadError","MIME","Matrix","Method","MethodError","Missing","MissingException","Module","NTuple","NamedTuple","Nothing","Number","OrdinalRange","OutOfMemoryError","OverflowError","Pair","PartialQuickSort","PermutedDimsArray","Pipe","ProcessFailedException","Ptr","QuoteNode","Rational","RawFD","ReadOnlyMemoryError","Real","ReentrantLock","Ref","Regex","RegexMatch","RoundingMode","SegmentationFault","Set","Signed","Some","StackOverflowError","StepRange","StepRangeLen","StridedArray","StridedMatrix","StridedVecOrMat","StridedVector","String","StringIndexError","SubArray","SubString","SubstitutionString","Symbol","SystemError","Task","TaskFailedException","Text","TextDisplay","Timer","Tuple","Type","TypeError","TypeVar","UInt","UInt128","UInt16","UInt32","UInt64","UInt8","UndefInitializer","UndefKeywordError","UndefRefError","UndefVarError","Union","UnionAll","UnitRange","Unsigned","Val","Vararg","VecElement","VecOrMat","Vector","VersionNumber","WeakKeyDict","WeakRef"] +},n={keywords:t,illegal:/<\//},a={className:"subst",begin:/\$\(/,end:/\)/, +keywords:t},i={className:"variable",begin:"\\$"+r},o={className:"string", +contains:[e.BACKSLASH_ESCAPE,a,i],variants:[{begin:/\w*"""/,end:/"""\w*/, +relevance:10},{begin:/\w*"/,end:/"\w*/}]},s={className:"string", +contains:[e.BACKSLASH_ESCAPE,a,i],begin:"`",end:"`"},l={className:"meta", +begin:"@"+r};return n.name="Julia",n.contains=[{className:"number", +begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/, +relevance:0},{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},o,s,l,{ +className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#", +end:"$"}]},e.HASH_COMMENT_MODE,{className:"keyword", +begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/ +}],a.contains=n.contains,n}})();hljs.registerLanguage("julia",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/kotlin.min.js b/src/app/resources/assets/highlight/languages/kotlin.min.js new file mode 100644 index 0000000..ae14931 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/kotlin.min.js @@ -0,0 +1,46 @@ +/*! `kotlin` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={ +className:"number",variants:[{ +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ +begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};return e=>{const n={ +keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", +built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing", +literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@" +},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={ +className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string", +variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'", +illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/, +contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={ +className:"meta", +begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?" +},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/, +end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}] +},o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={ +variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/, +contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d], +{name:"Kotlin",aliases:["kt","kts"],keywords:n, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag", +begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword", +begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol", +begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$", +returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://, +keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/, +endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/, +endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0 +},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{ +begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{ +3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0, +illegal:"extends implements",contains:[{ +beginKeywords:"public protected internal private constructor" +},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0, +excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/, +excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env", +end:"$",illegal:"\n"},o]}}})();hljs.registerLanguage("kotlin",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/lasso.min.js b/src/app/resources/assets/highlight/languages/lasso.min.js new file mode 100644 index 0000000..84df0eb --- /dev/null +++ b/src/app/resources/assets/highlight/languages/lasso.min.js @@ -0,0 +1,29 @@ +/*! `lasso` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a="<\\?(lasso(script)?|=)",n="\\]|\\?>",r={ +$pattern:"[a-zA-Z_][\\w.]*|&[lg]t;", +literal:"true false none minimal full all void and or not bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft", +built_in:"array date decimal duration integer map pair string tag xml null boolean bytes keyword list locale queue set stack staticarray local var variable global data self inherited currentcapture givenblock", +keyword:"cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else fail_if fail_ifnot fail if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome" +},t=e.COMMENT("\x3c!--","--\x3e",{relevance:0}),s={className:"meta", +begin:"\\[noprocess\\]",starts:{end:"\\[/noprocess\\]",returnEnd:!0,contains:[t] +}},i={className:"meta",begin:"\\[/noprocess|"+a +},l=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.inherit(e.C_NUMBER_MODE,{ +begin:e.C_NUMBER_RE+"|(-?infinity|NaN)\\b"}),e.inherit(e.APOS_STRING_MODE,{ +illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{ +className:"string",begin:"`",end:"`"},{variants:[{begin:"[#$][a-zA-Z_][\\w.]*" +},{begin:"#",end:"\\d+",illegal:"\\W"}]},{className:"type",begin:"::\\s*", +end:"[a-zA-Z_][\\w.]*",illegal:"\\W"},{className:"params",variants:[{ +begin:"-(?!infinity)[a-zA-Z_][\\w.]*",relevance:0},{begin:"(\\.\\.\\.)"}]},{ +begin:/(->|\.)\s*/,relevance:0,contains:[{className:"symbol", +begin:"'[a-zA-Z_][\\w.]*'"}]},{className:"class",beginKeywords:"define", +returnEnd:!0,end:"\\(|=>",contains:[e.inherit(e.TITLE_MODE,{ +begin:"[a-zA-Z_][\\w.]*(=(?!>))?|[-+*/%](?!>)"})]}];return{name:"Lasso", +aliases:["ls","lassoscript"],case_insensitive:!0,keywords:r,contains:[{ +className:"meta",begin:n,relevance:0,starts:{end:"\\[|"+a,returnEnd:!0, +relevance:0,contains:[t]}},s,i,{className:"meta",begin:"\\[no_square_brackets", +starts:{end:"\\[/no_square_brackets\\]",keywords:r,contains:[{className:"meta", +begin:n,relevance:0,starts:{end:"\\[noprocess\\]|"+a,returnEnd:!0,contains:[t]} +},s,i].concat(l)}},{className:"meta",begin:"\\[",relevance:0},{className:"meta", +begin:"^#!",end:"lasso9$",relevance:10}].concat(l)}}})() +;hljs.registerLanguage("lasso",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/latex.min.js b/src/app/resources/assets/highlight/languages/latex.min.js new file mode 100644 index 0000000..ae0ae45 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/latex.min.js @@ -0,0 +1,33 @@ +/*! `latex` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=[{begin:/\^{6}[0-9a-f]{6}/},{ +begin:/\^{5}[0-9a-f]{5}/},{begin:/\^{4}[0-9a-f]{4}/},{begin:/\^{3}[0-9a-f]{3}/ +},{begin:/\^{2}[0-9a-f]{2}/},{begin:/\^{2}[\u0000-\u007f]/}],a=[{ +className:"keyword",begin:/\\/,relevance:0,contains:[{endsParent:!0, +begin:e.regex.either(...["(?:NeedsTeXFormat|RequirePackage|GetIdInfo)","Provides(?:Expl)?(?:Package|Class|File)","(?:DeclareOption|ProcessOptions)","(?:documentclass|usepackage|input|include)","makeat(?:letter|other)","ExplSyntax(?:On|Off)","(?:new|renew|provide)?command","(?:re)newenvironment","(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand","(?:New|Renew|Provide|Declare)DocumentEnvironment","(?:(?:e|g|x)?def|let)","(?:begin|end)","(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph)","caption","(?:label|(?:eq|page|name)?ref|(?:paren|foot|super)?cite)","(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)","(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)","(?:[Ss]igma|varsigma|tau|[Uu]psilon|[Pp]hi|varphi|chi|[Pp]si|[Oo]mega)","(?:frac|sum|prod|lim|infty|times|sqrt|leq|geq|left|right|middle|[bB]igg?)","(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)"].map((e=>e+"(?![a-zA-Z@:_])"))) +},{endsParent:!0, +begin:RegExp(["(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*","[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}","[qs]__?[a-zA-Z](?:_?[a-zA-Z])+","use(?:_i)?:[a-zA-Z]*","(?:else|fi|or):","(?:if|cs|exp):w","(?:hbox|vbox):n","::[a-zA-Z]_unbraced","::[a-zA-Z:]"].map((e=>e+"(?![a-zA-Z:_])")).join("|")) +},{endsParent:!0,variants:n},{endsParent:!0,relevance:0,variants:[{ +begin:/[a-zA-Z@]+/},{begin:/[^a-zA-Z@]?/}]}]},{className:"params",relevance:0, +begin:/#+\d?/},{variants:n},{className:"built_in",relevance:0,begin:/[$&^_]/},{ +className:"meta",begin:/% ?!(T[eE]X|tex|BIB|bib)/,end:"$",relevance:10 +},e.COMMENT("%","$",{relevance:0})],i={begin:/\{/,end:/\}/,relevance:0, +contains:["self",...a]},t=e.inherit(i,{relevance:0,endsParent:!0, +contains:[i,...a]}),r={begin:/\[/,end:/\]/,endsParent:!0,relevance:0, +contains:[i,...a]},s={begin:/\s+/,relevance:0},c=[t],l=[r],o=(e,n)=>({ +contains:[s],starts:{relevance:0,contains:e,starts:n}}),d=(e,n)=>({ +begin:"\\\\"+e+"(?![a-zA-Z@:_])",keywords:{$pattern:/\\[a-zA-Z]+/,keyword:"\\"+e +},relevance:0,contains:[s],starts:n}),g=(n,a)=>e.inherit({ +begin:"\\\\begin(?=[ \t]*(\\r?\\n[ \t]*)?\\{"+n+"\\})",keywords:{ +$pattern:/\\[a-zA-Z]+/,keyword:"\\begin"},relevance:0 +},o(c,a)),m=(n="string")=>e.END_SAME_AS_BEGIN({className:n,begin:/(.|\r?\n)/, +end:/(.|\r?\n)/,excludeBegin:!0,excludeEnd:!0,endsParent:!0}),b=e=>({ +className:"string",end:"(?=\\\\end\\{"+e+"\\})"}),p=(e="string")=>({relevance:0, +begin:/\{/,starts:{endsParent:!0,contains:[{className:e,end:/(?=\})/, +endsParent:!0,contains:[{begin:/\{/,end:/\}/,relevance:0,contains:["self"]}]}]} +});return{name:"LaTeX",aliases:["tex"], +contains:[...["verb","lstinline"].map((e=>d(e,{contains:[m()]}))),d("mint",o(c,{ +contains:[m()]})),d("mintinline",o(c,{contains:[p(),m()]})),d("url",{ +contains:[p("link"),p("link")]}),d("hyperref",{contains:[p("link")] +}),d("href",o(l,{contains:[p("link")] +})),...[].concat(...["","\\*"].map((e=>[g("verbatim"+e,b("verbatim"+e)),g("filecontents"+e,o(c,b("filecontents"+e))),...["","B","L"].map((n=>g(n+"Verbatim"+e,o(l,b(n+"Verbatim"+e)))))]))),g("minted",o(l,o(c,b("minted")))),...a] +}}})();hljs.registerLanguage("latex",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/ldif.min.js b/src/app/resources/assets/highlight/languages/ldif.min.js new file mode 100644 index 0000000..1468337 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/ldif.min.js @@ -0,0 +1,5 @@ +/*! `ldif` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var a=(()=>{"use strict";return a=>({name:"LDIF",contains:[{ +className:"attribute",match:"^dn(?=:)",relevance:10},{className:"attribute", +match:"^\\w+(?=:)"},{className:"literal",match:"^-"},a.HASH_COMMENT_MODE]})})() +;hljs.registerLanguage("ldif",a)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/leaf.min.js b/src/app/resources/assets/highlight/languages/leaf.min.js new file mode 100644 index 0000000..bcef2cd --- /dev/null +++ b/src/app/resources/assets/highlight/languages/leaf.min.js @@ -0,0 +1,8 @@ +/*! `leaf` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Leaf",contains:[{ +className:"function",begin:"#+[A-Za-z_0-9]*\\(",end:/ \{/,returnBegin:!0, +excludeEnd:!0,contains:[{className:"keyword",begin:"#+"},{className:"title", +begin:"[A-Za-z_][A-Za-z_0-9]*"},{className:"params",begin:"\\(",end:"\\)", +endsParent:!0,contains:[{className:"string",begin:'"',end:'"'},{ +className:"variable",begin:"[A-Za-z_][A-Za-z_0-9]*"}]}]}]})})() +;hljs.registerLanguage("leaf",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/less.min.js b/src/app/resources/assets/highlight/languages/less.min.js new file mode 100644 index 0000000..608b52a --- /dev/null +++ b/src/app/resources/assets/highlight/languages/less.min.js @@ -0,0 +1,44 @@ +/*! `less` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],r=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],i=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),n=r.concat(i) +;return a=>{const l=(e=>({IMPORTANT:{scope:"meta",begin:"!important"}, +BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number", +begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{ +className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{ +scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/} +}))(a),s=n,d="([\\w-]+|@\\{[\\w-]+\\})",c=[],g=[],b=e=>({className:"string", +begin:"~?"+e+".*?"+e}),m=(e,t,r)=>({className:e,begin:t,relevance:r}),p={ +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},u={ +begin:"\\(",end:"\\)",contains:g,keywords:p,relevance:0} +;g.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,b("'"),b('"'),l.CSS_NUMBER_MODE,{ +begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]", +excludeEnd:!0} +},l.HEXCOLOR,u,m("variable","@@?[\\w-]+",10),m("variable","@\\{[\\w-]+\\}"),m("built_in","~?`[^`]*?`"),{ +className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0 +},l.IMPORTANT,{beginKeywords:"and not"},l.FUNCTION_DISPATCH);const h=g.concat({ +begin:/\{/,end:/\}/,contains:c}),f={beginKeywords:"when",endsWithParent:!0, +contains:[{beginKeywords:"and not"}].concat(g)},k={begin:d+"\\s*:", +returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/ +},l.CSS_VARIABLE,{className:"attribute",begin:"\\b("+o.join("|")+")\\b", +end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:g}}] +},w={className:"keyword", +begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", +starts:{end:"[;{}]",keywords:p,returnEnd:!0,contains:g,relevance:0}},v={ +className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{ +begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:h}},y={variants:[{ +begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0, +returnEnd:!0,illegal:"[<='$\"]",relevance:0, +contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,f,m("keyword","all\\b"),m("variable","@\\{[\\w-]+\\}"),{ +begin:"\\b("+e.join("|")+")\\b",className:"selector-tag" +},l.CSS_NUMBER_MODE,m("selector-tag",d,0),m("selector-id","#"+d),m("selector-class","\\."+d,0),m("selector-tag","&",0),l.ATTRIBUTE_SELECTOR_MODE,{ +className:"selector-pseudo",begin:":("+r.join("|")+")"},{ +className:"selector-pseudo",begin:":(:)?("+i.join("|")+")"},{begin:/\(/, +end:/\)/,relevance:0,contains:h},{begin:"!important"},l.FUNCTION_DISPATCH]},x={ +begin:`[\\w-]+:(:)?(${s.join("|")})`,returnBegin:!0,contains:[y]} +;return c.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,w,v,x,k,y,f,l.FUNCTION_DISPATCH), +{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:c}}})() +;hljs.registerLanguage("less",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/lisp.min.js b/src/app/resources/assets/highlight/languages/lisp.min.js new file mode 100644 index 0000000..68d2320 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/lisp.min.js @@ -0,0 +1,17 @@ +/*! `lisp` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n="[a-zA-Z_\\-+\\*\\/<=>&#][a-zA-Z0-9_\\-+*\\/<=>&#!]*",a="\\|[^]*?\\|",i="(-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|-)?\\d+)?",s={ +className:"literal",begin:"\\b(t{1}|nil)\\b"},l={className:"number",variants:[{ +begin:i,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{ +begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{ +begin:"#(c|C)\\("+i+" +"+i,end:"\\)"}]},b=e.inherit(e.QUOTE_STRING_MODE,{ +illegal:null}),g=e.COMMENT(";","$",{relevance:0}),r={begin:"\\*",end:"\\*"},t={ +className:"symbol",begin:"[:&]"+n},c={begin:n,relevance:0},d={begin:a},o={ +contains:[l,b,r,t,{begin:"\\(",end:"\\)",contains:["self",s,b,l,c]},c], +variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{ +name:"quote"}},{begin:"'"+a}]},v={variants:[{begin:"'"+n},{ +begin:"#'"+n+"(::"+n+")*"}]},m={begin:"\\(\\s*",end:"\\)"},u={endsWithParent:!0, +relevance:0};return m.contains=[{className:"name",variants:[{begin:n,relevance:0 +},{begin:a}]},u],u.contains=[o,v,m,s,l,b,g,r,t,d,c],{name:"Lisp",illegal:/\S/, +contains:[l,e.SHEBANG(),s,b,g,o,v,m,c]}}})();hljs.registerLanguage("lisp",e) +})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/livecodeserver.min.js b/src/app/resources/assets/highlight/languages/livecodeserver.min.js new file mode 100644 index 0000000..4664c0a --- /dev/null +++ b/src/app/resources/assets/highlight/languages/livecodeserver.min.js @@ -0,0 +1,21 @@ +/*! `livecodeserver` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const r={className:"variable", +variants:[{begin:"\\b([gtps][A-Z]{1}[a-zA-Z0-9]*)(\\[.+\\])?(?:\\s*?)"},{ +begin:"\\$_[A-Z]+"}],relevance:0 +},t=[e.C_BLOCK_COMMENT_MODE,e.HASH_COMMENT_MODE,e.COMMENT("--","$"),e.COMMENT("[^:]//","$")],a=e.inherit(e.TITLE_MODE,{ +variants:[{begin:"\\b_*rig[A-Z][A-Za-z0-9_\\-]*"},{begin:"\\b_[a-z0-9\\-]+"}] +}),o=e.inherit(e.TITLE_MODE,{begin:"\\b([A-Za-z0-9_\\-]+)\\b"});return{ +name:"LiveCode",case_insensitive:!1,keywords:{ +keyword:"$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph after byte bytes english the until http forever descending using line real8 with seventh for stdout finally element word words fourth before black ninth sixth characters chars stderr uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat end repeat URL in try into switch to words https token binfile each tenth as ticks tick system real4 by dateItems without char character ascending eighth whole dateTime numeric short first ftp integer abbreviated abbr abbrev private case while if div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys", +literal:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK", +built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress constantNames cos date dateFormat decompress difference directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge messageAuthenticationCode messageDigest millisec millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetDriver libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load extension loadedExtensions multiply socket prepare process post seek rel relative read from process rename replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop subtract symmetric union unload vectorDotProduct wait write" +},contains:[r,{className:"keyword",begin:"\\bend\\sif\\b"},{ +className:"function",beginKeywords:"function",end:"$", +contains:[r,o,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,a] +},{className:"function",begin:"\\bend\\s+",end:"$",keywords:"end", +contains:[o,a],relevance:0},{beginKeywords:"command on",end:"$", +contains:[r,o,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,a] +},{className:"meta",variants:[{begin:"<\\?(rev|lc|livecode)",relevance:10},{ +begin:"<\\?"},{begin:"\\?>"}] +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,a].concat(t), +illegal:";$|^\\[|^=|&|\\{"}}})();hljs.registerLanguage("livecodeserver",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/livescript.min.js b/src/app/resources/assets/highlight/languages/livescript.min.js new file mode 100644 index 0000000..4e16392 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/livescript.min.js @@ -0,0 +1,35 @@ +/*! `livescript` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) +;return t=>{const r={ +keyword:e.concat(["then","unless","until","loop","of","by","when","and","or","is","isnt","not","it","that","otherwise","from","to","til","fallthrough","case","enum","native","list","map","__hasProp","__extends","__slice","__bind","__indexOf"]), +literal:n.concat(["yes","no","on","off","it","that","void"]), +built_in:a.concat(["npm","print"]) +},s="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",i=t.inherit(t.TITLE_MODE,{ +begin:s}),o={className:"subst",begin:/#\{/,end:/\}/,keywords:r},c={ +className:"subst",begin:/#[A-Za-z$_]/,end:/(?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/, +keywords:r},l=[t.BINARY_NUMBER_MODE,{className:"number", +begin:"(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)", +relevance:0,starts:{end:"(\\s*/)?",relevance:0}},{className:"string",variants:[{ +begin:/'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/, +contains:[t.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/, +contains:[t.BACKSLASH_ESCAPE,o,c]},{begin:/"/,end:/"/, +contains:[t.BACKSLASH_ESCAPE,o,c]},{begin:/\\/,end:/(\s|$)/,excludeEnd:!0}]},{ +className:"regexp",variants:[{begin:"//",end:"//[gim]*", +contains:[o,t.HASH_COMMENT_MODE]},{ +begin:/\/(?![ *])(\\.|[^\\\n])*?\/[gim]*(?=\W)/}]},{begin:"@"+s},{begin:"``", +end:"``",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];o.contains=l +;const d={className:"params",begin:"\\(",returnBegin:!0,contains:[{begin:/\(/, +end:/\)/,keywords:r,contains:["self"].concat(l)}]},g={variants:[{ +match:[/class\s+/,s,/\s+extends\s+/,s]},{match:[/class\s+/,s]}],scope:{ +2:"title.class",4:"title.class.inherited"},keywords:r};return{name:"LiveScript", +aliases:["ls"],keywords:r,illegal:/\/\*/, +contains:l.concat([t.COMMENT("\\/\\*","\\*\\/"),t.HASH_COMMENT_MODE,{ +begin:"(#=>|=>|\\|>>|-?->|!->)"},{className:"function",contains:[i,d], +returnBegin:!0,variants:[{ +begin:"("+s+"\\s*(?:=|:=)\\s*)?(\\(.*\\)\\s*)?\\B->\\*?",end:"->\\*?"},{ +begin:"("+s+"\\s*(?:=|:=)\\s*)?!?(\\(.*\\)\\s*)?\\B[-~]{1,2}>\\*?", +end:"[-~]{1,2}>\\*?"},{ +begin:"("+s+"\\s*(?:=|:=)\\s*)?(\\(.*\\)\\s*)?\\B!?[-~]{1,2}>\\*?", +end:"!?[-~]{1,2}>\\*?"}]},g,{begin:s+":",end:":",returnBegin:!0,returnEnd:!0, +relevance:0}])}}})();hljs.registerLanguage("livescript",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/llvm.min.js b/src/app/resources/assets/highlight/languages/llvm.min.js new file mode 100644 index 0000000..b3dc931 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/llvm.min.js @@ -0,0 +1,15 @@ +/*! `llvm` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a=e.regex,n=/([-a-zA-Z$._][\w$.-]*)/,t={className:"variable",variants:[{ +begin:a.concat(/%/,n)},{begin:/%\d+/},{begin:/#\d+/}]},i={className:"title", +variants:[{begin:a.concat(/@/,n)},{begin:/@\d+/},{begin:a.concat(/!/,n)},{ +begin:a.concat(/!\d+/,n)},{begin:/!\d+/}]};return{name:"LLVM IR", +keywords:"begin end true false declare define global constant private linker_private internal available_externally linkonce linkonce_odr weak weak_odr appending dllimport dllexport common default hidden protected extern_weak external thread_local zeroinitializer undef null to tail target triple datalayout volatile nuw nsw nnan ninf nsz arcp fast exact inbounds align addrspace section alias module asm sideeffect gc dbg linker_private_weak attributes blockaddress initialexec localdynamic localexec prefix unnamed_addr ccc fastcc coldcc x86_stdcallcc x86_fastcallcc arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ptx_kernel intel_ocl_bicc msp430_intrcc spir_func spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc cc c signext zeroext inreg sret nounwind noreturn noalias nocapture byval nest readnone readonly inlinehint noinline alwaysinline optsize ssp sspreq noredzone noimplicitfloat naked builtin cold nobuiltin noduplicate nonlazybind optnone returns_twice sanitize_address sanitize_memory sanitize_thread sspstrong uwtable returned type opaque eq ne slt sgt sle sge ult ugt ule uge oeq one olt ogt ole oge ord uno ueq une x acq_rel acquire alignstack atomic catch cleanup filter inteldialect max min monotonic nand personality release seq_cst singlethread umax umin unordered xchg add fadd sub fsub mul fmul udiv sdiv fdiv urem srem frem shl lshr ashr and or xor icmp fcmp phi call trunc zext sext fptrunc fpext uitofp sitofp fptoui fptosi inttoptr ptrtoint bitcast addrspacecast select va_arg ret br switch invoke unwind unreachable indirectbr landingpad resume malloc alloca free load store getelementptr extractelement insertelement shufflevector getresult extractvalue insertvalue atomicrmw cmpxchg fence argmemonly double", +contains:[{className:"type",begin:/\bi\d+(?=\s|\b)/},e.COMMENT(/;\s*$/,null,{ +relevance:0}),e.COMMENT(/;/,/$/),{className:"string",begin:/"/,end:/"/, +contains:[{className:"char.escape",match:/\\\d\d/}]},i,{className:"punctuation", +relevance:0,begin:/,/},{className:"operator",relevance:0,begin:/=/},t,{ +className:"symbol",variants:[{begin:/^\s*[a-z]+:/}],relevance:0},{ +className:"number",variants:[{begin:/[su]?0[xX][KMLHR]?[a-fA-F0-9]+/},{ +begin:/[-+]?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/}],relevance:0}]}}})() +;hljs.registerLanguage("llvm",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/lsl.min.js b/src/app/resources/assets/highlight/languages/lsl.min.js new file mode 100644 index 0000000..486de5c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/lsl.min.js @@ -0,0 +1,19 @@ +/*! `lsl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var E=(()=>{"use strict";return E=>{const T={className:"number", +relevance:0,begin:E.C_NUMBER_RE};return{name:"LSL (Linden Scripting Language)", +illegal:":",contains:[{className:"string",begin:'"',end:'"',contains:[{ +className:"subst",begin:/\\[tn"\\]/}]},{className:"comment", +variants:[E.COMMENT("//","$"),E.COMMENT("/\\*","\\*/")],relevance:0},T,{ +className:"section",variants:[{begin:"\\b(state|default)\\b"},{ +begin:"\\b(state_(entry|exit)|touch(_(start|end))?|(land_)?collision(_(start|end))?|timer|listen|(no_)?sensor|control|(not_)?at_(rot_)?target|money|email|experience_permissions(_denied)?|run_time_permissions|changed|attach|dataserver|moving_(start|end)|link_message|(on|object)_rez|remote_data|http_re(sponse|quest)|path_update|transaction_result)\\b" +}]},{className:"built_in", +begin:"\\b(ll(AgentInExperience|(Create|DataSize|Delete|KeyCount|Keys|Read|Update)KeyValue|GetExperience(Details|ErrorMessage)|ReturnObjectsBy(ID|Owner)|Json(2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(Mag|Norm|Dist)|Rot(Between|2(Euler|Fwd|Left|Up))|(Euler|Axes)2Rot|Whisper|(Region|Owner)?Say|Shout|Listen(Control|Remove)?|Sensor(Repeat|Remove)?|Detected(Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|([GS]et)(AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(Scale|Offset|Rotate)Texture|(Rot)?Target(Remove)?|(Stop)?MoveToTarget|Apply(Rotational)?Impulse|Set(KeyframedMotion|ContentType|RegionPos|(Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(Queueing|Radius)|Vehicle(Type|(Float|Vector|Rotation)Param)|(Touch|Sit)?Text|Camera(Eye|At)Offset|PrimitiveParams|ClickAction|Link(Alpha|Color|PrimitiveParams(Fast)?|Texture(Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get((Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(PrimitiveParams|Number(OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(Details|PermMask|PrimCount)|Parcel(MaxPrims|Details|Prim(Count|Owners))|Attached(List)?|(SPMax|Free|Used)Memory|Region(Name|TimeDilation|FPS|Corner|AgentCount)|Root(Position|Rotation)|UnixTime|(Parcel|Region)Flags|(Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(Prims|NotecardLines|Sides)|Animation(List)?|(Camera|Local)(Pos|Rot)|Vel|Accel|Omega|Time(stamp|OfDay)|(Object|CenterOf)?Mass|MassMKS|Energy|Owner|(Owner)?Key|SunDirection|Texture(Offset|Scale|Rot)|Inventory(Number|Name|Key|Type|Creator|PermMask)|Permissions(Key)?|StartParameter|List(Length|EntryType)|Date|Agent(Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(Name|State))|(Get|Reset|GetAndReset)Time|PlaySound(Slave)?|LoopSound(Master|Slave)?|(Trigger|Stop|Preload)Sound|((Get|Delete)Sub|Insert)String|To(Upper|Lower)|Give(InventoryList|Money)|RezObject|(Stop)?LookAt|Sleep|CollisionFilter|(Take|Release)Controls|DetachFromAvatar|AttachToAvatar(Temp)?|InstantMessage|(GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(Length|Trim)|(Start|Stop)Animation|TargetOmega|Request(Experience)?Permissions|(Create|Break)Link|BreakAllLinks|(Give|Remove)Inventory|Water|PassTouches|Request(Agent|Inventory)Data|TeleportAgent(Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(Axis|Angle)|A(cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(CSV|Integer|Json|Float|String|Key|Vector|Rot|List(Strided)?)|DeleteSubList|List(Statistics|Sort|Randomize|(Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(Slope|Normal|Contour)|GroundRepel|(Set|Remove)VehicleFlags|SitOnLink|(AvatarOn)?(Link)?SitTarget|Script(Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(Integer|String)ToBase64|XorBase64|Log(10)?|Base64To(String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(Load|Release|(E|Une)scape)URL|ParcelMedia(CommandList|Query)|ModPow|MapDestination|(RemoveFrom|AddTo|Reset)Land(Pass|Ban)List|(Set|Clear)CameraParams|HTTP(Request|Response)|TextBox|DetectedTouch(UV|Face|Pos|(N|Bin)ormal|ST)|(MD5|SHA1|DumpList2)String|Request(Secure)?URL|Clear(Prim|Link)Media|(Link)?ParticleSystem|(Get|Request)(Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\\b" +},{className:"literal",variants:[{ +begin:"\\b(PI|TWO_PI|PI_BY_TWO|DEG_TO_RAD|RAD_TO_DEG|SQRT2)\\b"},{ +begin:"\\b(XP_ERROR_(EXPERIENCES_DISABLED|EXPERIENCE_(DISABLED|SUSPENDED)|INVALID_(EXPERIENCE|PARAMETERS)|KEY_NOT_FOUND|MATURITY_EXCEEDED|NONE|NOT_(FOUND|PERMITTED(_LAND)?)|NO_EXPERIENCE|QUOTA_EXCEEDED|RETRY_UPDATE|STORAGE_EXCEPTION|STORE_DISABLED|THROTTLED|UNKNOWN_ERROR)|JSON_APPEND|STATUS_(PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(_OBJECT)?|(DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(_(BY_(LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(PARCEL(_OWNER)?|REGION)))?|CAMERA_(PITCH|DISTANCE|BEHINDNESS_(ANGLE|LAG)|(FOCUS|POSITION)(_(THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(ROOT|SET|ALL_(OTHERS|CHILDREN)|THIS)|ACTIVE|PASS(IVE|_(ALWAYS|IF_NOT_HANDLED|NEVER))|SCRIPTED|CONTROL_(FWD|BACK|(ROT_)?(LEFT|RIGHT)|UP|DOWN|(ML_)?LBUTTON)|PERMISSION_(RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(_START)?|TELEPORT|MEDIA)|OBJECT_(CLICK_ACTION|HOVER_HEIGHT|LAST_OWNER_ID|(PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_(ATTACHED|ON_REZ)|NAME|DESC|POS|PRIM_(COUNT|EQUIVALENCE)|RETURN_(PARCEL(_OWNER)?|REGION)|REZZER_KEY|ROO?T|VELOCITY|OMEGA|OWNER|GROUP(_TAG)?|CREATOR|ATTACHED_(POINT|SLOTS_AVAILABLE)|RENDER_WEIGHT|(BODY_SHAPE|PATHFINDING)_TYPE|(RUNNING|TOTAL)_SCRIPT_COUNT|TOTAL_INVENTORY_COUNT|SCRIPT_(MEMORY|TIME))|TYPE_(INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(DEBUG|PUBLIC)_CHANNEL|ATTACH_(AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](SHOULDER|HAND|FOOT|EAR|EYE|[UL](ARM|LEG)|HIP)|(LEFT|RIGHT)_PEC|HUD_(CENTER_[12]|TOP_(RIGHT|CENTER|LEFT)|BOTTOM(_(RIGHT|LEFT))?)|[LR]HAND_RING1|TAIL_(BASE|TIP)|[LR]WING|FACE_(JAW|[LR]EAR|[LR]EYE|TOUNGE)|GROIN|HIND_[LR]FOOT)|LAND_(LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(ONLINE|NAME|BORN|SIM_(POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(ON_FILE|USED)|REMOTE_DATA_(CHANNEL|REQUEST|REPLY)|PSYS_(PART_(BF_(ZERO|ONE(_MINUS_(DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(START|END)_(COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(RIBBON|WIND|INTERP_(COLOR|SCALE)|BOUNCE|FOLLOW_(SRC|VELOCITY)|TARGET_(POS|LINEAR)|EMISSIVE)_MASK)|SRC_(MAX_AGE|PATTERN|ANGLE_(BEGIN|END)|BURST_(RATE|PART_COUNT|RADIUS|SPEED_(MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(DROP|EXPLODE|ANGLE(_CONE(_EMPTY)?)?)))|VEHICLE_(REFERENCE_FRAME|TYPE_(NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(LINEAR|ANGULAR)_(FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(LINEAR|ANGULAR)_(DEFLECTION_(EFFICIENCY|TIMESCALE)|MOTOR_(DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(EFFICIENCY|TIMESCALE)|BANKING_(EFFICIENCY|MIX|TIMESCALE)|FLAG_(NO_DEFLECTION_UP|LIMIT_(ROLL_ONLY|MOTOR_UP)|HOVER_((WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(ALLOW_UNSIT|ALPHA_MODE(_(BLEND|EMISSIVE|MASK|NONE))?|NORMAL|SPECULAR|TYPE(_(BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(_(STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(NONE|LOW|MEDIUM|HIGH)|BUMP_(NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(DEFAULT|PLANAR)|SCRIPTED_SIT_ONLY|SCULPT_(TYPE_(SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(MIRROR|INVERT))|PHYSICS(_(SHAPE_(CONVEX|NONE|PRIM|TYPE)))?|(POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIT_TARGET|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(ALT_IMAGE_ENABLE|CONTROLS|(CURRENT|HOME)_URL|AUTO_(LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(WIDTH|HEIGHT)_PIXELS|WHITELIST(_ENABLE)?|PERMS_(INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(STANDARD|MINI)|PERM_(NONE|OWNER|GROUP|ANYONE)|MAX_(URL_LENGTH|WHITELIST_(SIZE|COUNT)|(WIDTH|HEIGHT)_PIXELS)))|MASK_(BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(MEDIA_COMMAND_(STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(ALLOW_(FLY|(GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(GROUP_)?OBJECTS)|USE_(ACCESS_(GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(GROUP|ALL)_OBJECT_ENTRY)|COUNT_(TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(HIDE|DEFAULT)|REGION_FLAG_(ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(METHOD|MIMETYPE|BODY_(MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|SIT_(INVALID_(AGENT|LINK_OBJECT)|NO(T_EXPERIENCE|_(ACCESS|EXPERIENCE_PERMISSION|SIT_TARGET)))|STRING_(TRIM(_(HEAD|TAIL))?)|CLICK_ACTION_(NONE|TOUCH|SIT|BUY|PAY|OPEN(_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(NONE|SCRIPT_MEMORY)|RC_(DATA_FLAGS|DETECT_PHANTOM|GET_(LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(TYPES|AGENTS|(NON)?PHYSICAL|LAND))|RCERR_(CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(ALLOWED_(AGENT|GROUP)_(ADD|REMOVE)|BANNED_AGENT_(ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(COMMAND|CMD_(PLAY|STOP|PAUSE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(CMD_((SMOOTH_)?STOP|JUMP)|DESIRED_(TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(_([ABCD]|NONE))?|MAX_(DECEL|TURN_RADIUS|(ACCEL|SPEED)))|PURSUIT_(OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(EVADE_(HIDDEN|SPOTTED)|FAILURE_(DYNAMIC_PATHFINDING_DISABLED|INVALID_(GOAL|START)|NO_(NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(PARCEL_)?UNREACHABLE)|(GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(_(FAST|NONE|SLOW))?|CONTENT_TYPE_(ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(RADIUS|STATIC)|(PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\\b" +},{begin:"\\b(FALSE|TRUE)\\b"},{begin:"\\b(ZERO_ROTATION)\\b"},{ +begin:"\\b(EOF|JSON_(ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(GRANTED|DENIED))\\b" +},{begin:"\\b(ZERO_VECTOR|TOUCH_INVALID_(TEXCOORD|VECTOR))\\b"}]},{ +className:"type", +begin:"\\b(integer|float|string|key|vector|quaternion|rotation|list)\\b"}]}}})() +;hljs.registerLanguage("lsl",E)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/lua.min.js b/src/app/resources/assets/highlight/languages/lua.min.js new file mode 100644 index 0000000..6c172fb --- /dev/null +++ b/src/app/resources/assets/highlight/languages/lua.min.js @@ -0,0 +1,15 @@ +/*! `lua` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t="\\[=*\\[",a="\\]=*\\]",n={ +begin:t,end:a,contains:["self"] +},o=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",a,{contains:[n], +relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE, +literal:"true false nil", +keyword:"and break do else elseif end for goto if in local not or repeat return then until while", +built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" +},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)", +contains:[e.inherit(e.TITLE_MODE,{ +begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params", +begin:"\\(",endsWithParent:!0,contains:o}].concat(o) +},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string", +begin:t,end:a,contains:[n],relevance:5}])}}})();hljs.registerLanguage("lua",e) +})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/makefile.min.js b/src/app/resources/assets/highlight/languages/makefile.min.js new file mode 100644 index 0000000..0ab6076 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/makefile.min.js @@ -0,0 +1,14 @@ +/*! `makefile` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const i={className:"variable", +variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{var e=(()=>{"use strict";return e=>{const n={begin:/<\/?[A-Za-z_]/, +end:">",subLanguage:"xml",relevance:0},a={variants:[{begin:/\[.+?\]\[.*?\]/, +relevance:0},{ +begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, +relevance:2},{ +begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), +relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ +begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/ +},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, +returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", +excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", +end:"\\]",excludeBegin:!0,excludeEnd:!0}]},i={className:"strong",contains:[], +variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}] +},s={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{ +begin:/_(?![_\s])/,end:/_/,relevance:0}]},c=e.inherit(i,{contains:[] +}),t=e.inherit(s,{contains:[]});i.contains.push(t),s.contains.push(c) +;let g=[n,a];return[i,s,c,t].forEach((e=>{e.contains=e.contains.concat(g) +})),g=g.concat(i,s),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ +className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:g},{ +begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", +contains:g}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", +end:"\\s+",excludeEnd:!0},i,s,{className:"quote",begin:"^>\\s+",contains:g, +end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ +begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ +begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", +contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ +begin:"^[-\\*]{3,}",end:"$"},a,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ +className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ +className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})() +;hljs.registerLanguage("markdown",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/mathematica.min.js b/src/app/resources/assets/highlight/languages/mathematica.min.js new file mode 100644 index 0000000..09d2e1d --- /dev/null +++ b/src/app/resources/assets/highlight/languages/mathematica.min.js @@ -0,0 +1,21 @@ +/*! `mathematica` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e=["AASTriangle","AbelianGroup","Abort","AbortKernels","AbortProtect","AbortScheduledTask","Above","Abs","AbsArg","AbsArgPlot","Absolute","AbsoluteCorrelation","AbsoluteCorrelationFunction","AbsoluteCurrentValue","AbsoluteDashing","AbsoluteFileName","AbsoluteOptions","AbsolutePointSize","AbsoluteThickness","AbsoluteTime","AbsoluteTiming","AcceptanceThreshold","AccountingForm","Accumulate","Accuracy","AccuracyGoal","ActionDelay","ActionMenu","ActionMenuBox","ActionMenuBoxOptions","Activate","Active","ActiveClassification","ActiveClassificationObject","ActiveItem","ActivePrediction","ActivePredictionObject","ActiveStyle","AcyclicGraphQ","AddOnHelpPath","AddSides","AddTo","AddToSearchIndex","AddUsers","AdjacencyGraph","AdjacencyList","AdjacencyMatrix","AdjacentMeshCells","AdjustmentBox","AdjustmentBoxOptions","AdjustTimeSeriesForecast","AdministrativeDivisionData","AffineHalfSpace","AffineSpace","AffineStateSpaceModel","AffineTransform","After","AggregatedEntityClass","AggregationLayer","AircraftData","AirportData","AirPressureData","AirTemperatureData","AiryAi","AiryAiPrime","AiryAiZero","AiryBi","AiryBiPrime","AiryBiZero","AlgebraicIntegerQ","AlgebraicNumber","AlgebraicNumberDenominator","AlgebraicNumberNorm","AlgebraicNumberPolynomial","AlgebraicNumberTrace","AlgebraicRules","AlgebraicRulesData","Algebraics","AlgebraicUnitQ","Alignment","AlignmentMarker","AlignmentPoint","All","AllowAdultContent","AllowedCloudExtraParameters","AllowedCloudParameterExtensions","AllowedDimensions","AllowedFrequencyRange","AllowedHeads","AllowGroupClose","AllowIncomplete","AllowInlineCells","AllowKernelInitialization","AllowLooseGrammar","AllowReverseGroupClose","AllowScriptLevelChange","AllowVersionUpdate","AllTrue","Alphabet","AlphabeticOrder","AlphabeticSort","AlphaChannel","AlternateImage","AlternatingFactorial","AlternatingGroup","AlternativeHypothesis","Alternatives","AltitudeMethod","AmbientLight","AmbiguityFunction","AmbiguityList","Analytic","AnatomyData","AnatomyForm","AnatomyPlot3D","AnatomySkinStyle","AnatomyStyling","AnchoredSearch","And","AndersonDarlingTest","AngerJ","AngleBisector","AngleBracket","AnglePath","AnglePath3D","AngleVector","AngularGauge","Animate","AnimationCycleOffset","AnimationCycleRepetitions","AnimationDirection","AnimationDisplayTime","AnimationRate","AnimationRepetitions","AnimationRunning","AnimationRunTime","AnimationTimeIndex","Animator","AnimatorBox","AnimatorBoxOptions","AnimatorElements","Annotate","Annotation","AnnotationDelete","AnnotationKeys","AnnotationRules","AnnotationValue","Annuity","AnnuityDue","Annulus","AnomalyDetection","AnomalyDetector","AnomalyDetectorFunction","Anonymous","Antialiasing","AntihermitianMatrixQ","Antisymmetric","AntisymmetricMatrixQ","Antonyms","AnyOrder","AnySubset","AnyTrue","Apart","ApartSquareFree","APIFunction","Appearance","AppearanceElements","AppearanceRules","AppellF1","Append","AppendCheck","AppendLayer","AppendTo","Apply","ApplySides","ArcCos","ArcCosh","ArcCot","ArcCoth","ArcCsc","ArcCsch","ArcCurvature","ARCHProcess","ArcLength","ArcSec","ArcSech","ArcSin","ArcSinDistribution","ArcSinh","ArcTan","ArcTanh","Area","Arg","ArgMax","ArgMin","ArgumentCountQ","ARIMAProcess","ArithmeticGeometricMean","ARMAProcess","Around","AroundReplace","ARProcess","Array","ArrayComponents","ArrayDepth","ArrayFilter","ArrayFlatten","ArrayMesh","ArrayPad","ArrayPlot","ArrayQ","ArrayResample","ArrayReshape","ArrayRules","Arrays","Arrow","Arrow3DBox","ArrowBox","Arrowheads","ASATriangle","Ask","AskAppend","AskConfirm","AskDisplay","AskedQ","AskedValue","AskFunction","AskState","AskTemplateDisplay","AspectRatio","AspectRatioFixed","Assert","AssociateTo","Association","AssociationFormat","AssociationMap","AssociationQ","AssociationThread","AssumeDeterministic","Assuming","Assumptions","AstronomicalData","Asymptotic","AsymptoticDSolveValue","AsymptoticEqual","AsymptoticEquivalent","AsymptoticGreater","AsymptoticGreaterEqual","AsymptoticIntegrate","AsymptoticLess","AsymptoticLessEqual","AsymptoticOutputTracker","AsymptoticProduct","AsymptoticRSolveValue","AsymptoticSolve","AsymptoticSum","Asynchronous","AsynchronousTaskObject","AsynchronousTasks","Atom","AtomCoordinates","AtomCount","AtomDiagramCoordinates","AtomList","AtomQ","AttentionLayer","Attributes","Audio","AudioAmplify","AudioAnnotate","AudioAnnotationLookup","AudioBlockMap","AudioCapture","AudioChannelAssignment","AudioChannelCombine","AudioChannelMix","AudioChannels","AudioChannelSeparate","AudioData","AudioDelay","AudioDelete","AudioDevice","AudioDistance","AudioEncoding","AudioFade","AudioFrequencyShift","AudioGenerator","AudioIdentify","AudioInputDevice","AudioInsert","AudioInstanceQ","AudioIntervals","AudioJoin","AudioLabel","AudioLength","AudioLocalMeasurements","AudioLooping","AudioLoudness","AudioMeasurements","AudioNormalize","AudioOutputDevice","AudioOverlay","AudioPad","AudioPan","AudioPartition","AudioPause","AudioPitchShift","AudioPlay","AudioPlot","AudioQ","AudioRecord","AudioReplace","AudioResample","AudioReverb","AudioReverse","AudioSampleRate","AudioSpectralMap","AudioSpectralTransformation","AudioSplit","AudioStop","AudioStream","AudioStreams","AudioTimeStretch","AudioTracks","AudioTrim","AudioType","AugmentedPolyhedron","AugmentedSymmetricPolynomial","Authenticate","Authentication","AuthenticationDialog","AutoAction","Autocomplete","AutocompletionFunction","AutoCopy","AutocorrelationTest","AutoDelete","AutoEvaluateEvents","AutoGeneratedPackage","AutoIndent","AutoIndentSpacings","AutoItalicWords","AutoloadPath","AutoMatch","Automatic","AutomaticImageSize","AutoMultiplicationSymbol","AutoNumberFormatting","AutoOpenNotebooks","AutoOpenPalettes","AutoQuoteCharacters","AutoRefreshed","AutoRemove","AutorunSequencing","AutoScaling","AutoScroll","AutoSpacing","AutoStyleOptions","AutoStyleWords","AutoSubmitting","Axes","AxesEdge","AxesLabel","AxesOrigin","AxesStyle","AxiomaticTheory","Axis","BabyMonsterGroupB","Back","Background","BackgroundAppearance","BackgroundTasksSettings","Backslash","Backsubstitution","Backward","Ball","Band","BandpassFilter","BandstopFilter","BarabasiAlbertGraphDistribution","BarChart","BarChart3D","BarcodeImage","BarcodeRecognize","BaringhausHenzeTest","BarLegend","BarlowProschanImportance","BarnesG","BarOrigin","BarSpacing","BartlettHannWindow","BartlettWindow","BaseDecode","BaseEncode","BaseForm","Baseline","BaselinePosition","BaseStyle","BasicRecurrentLayer","BatchNormalizationLayer","BatchSize","BatesDistribution","BattleLemarieWavelet","BayesianMaximization","BayesianMaximizationObject","BayesianMinimization","BayesianMinimizationObject","Because","BeckmannDistribution","Beep","Before","Begin","BeginDialogPacket","BeginFrontEndInteractionPacket","BeginPackage","BellB","BellY","Below","BenfordDistribution","BeniniDistribution","BenktanderGibratDistribution","BenktanderWeibullDistribution","BernoulliB","BernoulliDistribution","BernoulliGraphDistribution","BernoulliProcess","BernsteinBasis","BesselFilterModel","BesselI","BesselJ","BesselJZero","BesselK","BesselY","BesselYZero","Beta","BetaBinomialDistribution","BetaDistribution","BetaNegativeBinomialDistribution","BetaPrimeDistribution","BetaRegularized","Between","BetweennessCentrality","BeveledPolyhedron","BezierCurve","BezierCurve3DBox","BezierCurve3DBoxOptions","BezierCurveBox","BezierCurveBoxOptions","BezierFunction","BilateralFilter","Binarize","BinaryDeserialize","BinaryDistance","BinaryFormat","BinaryImageQ","BinaryRead","BinaryReadList","BinarySerialize","BinaryWrite","BinCounts","BinLists","Binomial","BinomialDistribution","BinomialProcess","BinormalDistribution","BiorthogonalSplineWavelet","BipartiteGraphQ","BiquadraticFilterModel","BirnbaumImportance","BirnbaumSaundersDistribution","BitAnd","BitClear","BitGet","BitLength","BitNot","BitOr","BitSet","BitShiftLeft","BitShiftRight","BitXor","BiweightLocation","BiweightMidvariance","Black","BlackmanHarrisWindow","BlackmanNuttallWindow","BlackmanWindow","Blank","BlankForm","BlankNullSequence","BlankSequence","Blend","Block","BlockchainAddressData","BlockchainBase","BlockchainBlockData","BlockchainContractValue","BlockchainData","BlockchainGet","BlockchainKeyEncode","BlockchainPut","BlockchainTokenData","BlockchainTransaction","BlockchainTransactionData","BlockchainTransactionSign","BlockchainTransactionSubmit","BlockMap","BlockRandom","BlomqvistBeta","BlomqvistBetaTest","Blue","Blur","BodePlot","BohmanWindow","Bold","Bond","BondCount","BondList","BondQ","Bookmarks","Boole","BooleanConsecutiveFunction","BooleanConvert","BooleanCountingFunction","BooleanFunction","BooleanGraph","BooleanMaxterms","BooleanMinimize","BooleanMinterms","BooleanQ","BooleanRegion","Booleans","BooleanStrings","BooleanTable","BooleanVariables","BorderDimensions","BorelTannerDistribution","Bottom","BottomHatTransform","BoundaryDiscretizeGraphics","BoundaryDiscretizeRegion","BoundaryMesh","BoundaryMeshRegion","BoundaryMeshRegionQ","BoundaryStyle","BoundedRegionQ","BoundingRegion","Bounds","Box","BoxBaselineShift","BoxData","BoxDimensions","Boxed","Boxes","BoxForm","BoxFormFormatTypes","BoxFrame","BoxID","BoxMargins","BoxMatrix","BoxObject","BoxRatios","BoxRotation","BoxRotationPoint","BoxStyle","BoxWhiskerChart","Bra","BracketingBar","BraKet","BrayCurtisDistance","BreadthFirstScan","Break","BridgeData","BrightnessEqualize","BroadcastStationData","Brown","BrownForsytheTest","BrownianBridgeProcess","BrowserCategory","BSplineBasis","BSplineCurve","BSplineCurve3DBox","BSplineCurve3DBoxOptions","BSplineCurveBox","BSplineCurveBoxOptions","BSplineFunction","BSplineSurface","BSplineSurface3DBox","BSplineSurface3DBoxOptions","BubbleChart","BubbleChart3D","BubbleScale","BubbleSizes","BuildingData","BulletGauge","BusinessDayQ","ButterflyGraph","ButterworthFilterModel","Button","ButtonBar","ButtonBox","ButtonBoxOptions","ButtonCell","ButtonContents","ButtonData","ButtonEvaluator","ButtonExpandable","ButtonFrame","ButtonFunction","ButtonMargins","ButtonMinHeight","ButtonNote","ButtonNotebook","ButtonSource","ButtonStyle","ButtonStyleMenuListing","Byte","ByteArray","ByteArrayFormat","ByteArrayQ","ByteArrayToString","ByteCount","ByteOrdering","C","CachedValue","CacheGraphics","CachePersistence","CalendarConvert","CalendarData","CalendarType","Callout","CalloutMarker","CalloutStyle","CallPacket","CanberraDistance","Cancel","CancelButton","CandlestickChart","CanonicalGraph","CanonicalizePolygon","CanonicalizePolyhedron","CanonicalName","CanonicalWarpingCorrespondence","CanonicalWarpingDistance","CantorMesh","CantorStaircase","Cap","CapForm","CapitalDifferentialD","Capitalize","CapsuleShape","CaptureRunning","CardinalBSplineBasis","CarlemanLinearize","CarmichaelLambda","CaseOrdering","Cases","CaseSensitive","Cashflow","Casoratian","Catalan","CatalanNumber","Catch","CategoricalDistribution","Catenate","CatenateLayer","CauchyDistribution","CauchyWindow","CayleyGraph","CDF","CDFDeploy","CDFInformation","CDFWavelet","Ceiling","CelestialSystem","Cell","CellAutoOverwrite","CellBaseline","CellBoundingBox","CellBracketOptions","CellChangeTimes","CellContents","CellContext","CellDingbat","CellDynamicExpression","CellEditDuplicate","CellElementsBoundingBox","CellElementSpacings","CellEpilog","CellEvaluationDuplicate","CellEvaluationFunction","CellEvaluationLanguage","CellEventActions","CellFrame","CellFrameColor","CellFrameLabelMargins","CellFrameLabels","CellFrameMargins","CellGroup","CellGroupData","CellGrouping","CellGroupingRules","CellHorizontalScrolling","CellID","CellLabel","CellLabelAutoDelete","CellLabelMargins","CellLabelPositioning","CellLabelStyle","CellLabelTemplate","CellMargins","CellObject","CellOpen","CellPrint","CellProlog","Cells","CellSize","CellStyle","CellTags","CellularAutomaton","CensoredDistribution","Censoring","Center","CenterArray","CenterDot","CentralFeature","CentralMoment","CentralMomentGeneratingFunction","Cepstrogram","CepstrogramArray","CepstrumArray","CForm","ChampernowneNumber","ChangeOptions","ChannelBase","ChannelBrokerAction","ChannelDatabin","ChannelHistoryLength","ChannelListen","ChannelListener","ChannelListeners","ChannelListenerWait","ChannelObject","ChannelPreSendFunction","ChannelReceiverFunction","ChannelSend","ChannelSubscribers","ChanVeseBinarize","Character","CharacterCounts","CharacterEncoding","CharacterEncodingsPath","CharacteristicFunction","CharacteristicPolynomial","CharacterName","CharacterNormalize","CharacterRange","Characters","ChartBaseStyle","ChartElementData","ChartElementDataFunction","ChartElementFunction","ChartElements","ChartLabels","ChartLayout","ChartLegends","ChartStyle","Chebyshev1FilterModel","Chebyshev2FilterModel","ChebyshevDistance","ChebyshevT","ChebyshevU","Check","CheckAbort","CheckAll","Checkbox","CheckboxBar","CheckboxBox","CheckboxBoxOptions","ChemicalData","ChessboardDistance","ChiDistribution","ChineseRemainder","ChiSquareDistribution","ChoiceButtons","ChoiceDialog","CholeskyDecomposition","Chop","ChromaticityPlot","ChromaticityPlot3D","ChromaticPolynomial","Circle","CircleBox","CircleDot","CircleMinus","CirclePlus","CirclePoints","CircleThrough","CircleTimes","CirculantGraph","CircularOrthogonalMatrixDistribution","CircularQuaternionMatrixDistribution","CircularRealMatrixDistribution","CircularSymplecticMatrixDistribution","CircularUnitaryMatrixDistribution","Circumsphere","CityData","ClassifierFunction","ClassifierInformation","ClassifierMeasurements","ClassifierMeasurementsObject","Classify","ClassPriors","Clear","ClearAll","ClearAttributes","ClearCookies","ClearPermissions","ClearSystemCache","ClebschGordan","ClickPane","Clip","ClipboardNotebook","ClipFill","ClippingStyle","ClipPlanes","ClipPlanesStyle","ClipRange","Clock","ClockGauge","ClockwiseContourIntegral","Close","Closed","CloseKernels","ClosenessCentrality","Closing","ClosingAutoSave","ClosingEvent","ClosingSaveDialog","CloudAccountData","CloudBase","CloudConnect","CloudConnections","CloudDeploy","CloudDirectory","CloudDisconnect","CloudEvaluate","CloudExport","CloudExpression","CloudExpressions","CloudFunction","CloudGet","CloudImport","CloudLoggingData","CloudObject","CloudObjectInformation","CloudObjectInformationData","CloudObjectNameFormat","CloudObjects","CloudObjectURLType","CloudPublish","CloudPut","CloudRenderingMethod","CloudSave","CloudShare","CloudSubmit","CloudSymbol","CloudUnshare","CloudUserID","ClusterClassify","ClusterDissimilarityFunction","ClusteringComponents","ClusteringTree","CMYKColor","Coarse","CodeAssistOptions","Coefficient","CoefficientArrays","CoefficientDomain","CoefficientList","CoefficientRules","CoifletWavelet","Collect","Colon","ColonForm","ColorBalance","ColorCombine","ColorConvert","ColorCoverage","ColorData","ColorDataFunction","ColorDetect","ColorDistance","ColorFunction","ColorFunctionScaling","Colorize","ColorNegate","ColorOutput","ColorProfileData","ColorQ","ColorQuantize","ColorReplace","ColorRules","ColorSelectorSettings","ColorSeparate","ColorSetter","ColorSetterBox","ColorSetterBoxOptions","ColorSlider","ColorsNear","ColorSpace","ColorToneMapping","Column","ColumnAlignments","ColumnBackgrounds","ColumnForm","ColumnLines","ColumnsEqual","ColumnSpacings","ColumnWidths","CombinedEntityClass","CombinerFunction","CometData","CommonDefaultFormatTypes","Commonest","CommonestFilter","CommonName","CommonUnits","CommunityBoundaryStyle","CommunityGraphPlot","CommunityLabels","CommunityRegionStyle","CompanyData","CompatibleUnitQ","CompilationOptions","CompilationTarget","Compile","Compiled","CompiledCodeFunction","CompiledFunction","CompilerOptions","Complement","ComplementedEntityClass","CompleteGraph","CompleteGraphQ","CompleteKaryTree","CompletionsListPacket","Complex","ComplexContourPlot","Complexes","ComplexExpand","ComplexInfinity","ComplexityFunction","ComplexListPlot","ComplexPlot","ComplexPlot3D","ComplexRegionPlot","ComplexStreamPlot","ComplexVectorPlot","ComponentMeasurements","ComponentwiseContextMenu","Compose","ComposeList","ComposeSeries","CompositeQ","Composition","CompoundElement","CompoundExpression","CompoundPoissonDistribution","CompoundPoissonProcess","CompoundRenewalProcess","Compress","CompressedData","CompressionLevel","ComputeUncertainty","Condition","ConditionalExpression","Conditioned","Cone","ConeBox","ConfidenceLevel","ConfidenceRange","ConfidenceTransform","ConfigurationPath","ConformAudio","ConformImages","Congruent","ConicHullRegion","ConicHullRegion3DBox","ConicHullRegionBox","ConicOptimization","Conjugate","ConjugateTranspose","Conjunction","Connect","ConnectedComponents","ConnectedGraphComponents","ConnectedGraphQ","ConnectedMeshComponents","ConnectedMoleculeComponents","ConnectedMoleculeQ","ConnectionSettings","ConnectLibraryCallbackFunction","ConnectSystemModelComponents","ConnesWindow","ConoverTest","ConsoleMessage","ConsoleMessagePacket","Constant","ConstantArray","ConstantArrayLayer","ConstantImage","ConstantPlusLayer","ConstantRegionQ","Constants","ConstantTimesLayer","ConstellationData","ConstrainedMax","ConstrainedMin","Construct","Containing","ContainsAll","ContainsAny","ContainsExactly","ContainsNone","ContainsOnly","ContentFieldOptions","ContentLocationFunction","ContentObject","ContentPadding","ContentsBoundingBox","ContentSelectable","ContentSize","Context","ContextMenu","Contexts","ContextToFileName","Continuation","Continue","ContinuedFraction","ContinuedFractionK","ContinuousAction","ContinuousMarkovProcess","ContinuousTask","ContinuousTimeModelQ","ContinuousWaveletData","ContinuousWaveletTransform","ContourDetect","ContourGraphics","ContourIntegral","ContourLabels","ContourLines","ContourPlot","ContourPlot3D","Contours","ContourShading","ContourSmoothing","ContourStyle","ContraharmonicMean","ContrastiveLossLayer","Control","ControlActive","ControlAlignment","ControlGroupContentsBox","ControllabilityGramian","ControllabilityMatrix","ControllableDecomposition","ControllableModelQ","ControllerDuration","ControllerInformation","ControllerInformationData","ControllerLinking","ControllerManipulate","ControllerMethod","ControllerPath","ControllerState","ControlPlacement","ControlsRendering","ControlType","Convergents","ConversionOptions","ConversionRules","ConvertToBitmapPacket","ConvertToPostScript","ConvertToPostScriptPacket","ConvexHullMesh","ConvexPolygonQ","ConvexPolyhedronQ","ConvolutionLayer","Convolve","ConwayGroupCo1","ConwayGroupCo2","ConwayGroupCo3","CookieFunction","Cookies","CoordinateBoundingBox","CoordinateBoundingBoxArray","CoordinateBounds","CoordinateBoundsArray","CoordinateChartData","CoordinatesToolOptions","CoordinateTransform","CoordinateTransformData","CoprimeQ","Coproduct","CopulaDistribution","Copyable","CopyDatabin","CopyDirectory","CopyFile","CopyTag","CopyToClipboard","CornerFilter","CornerNeighbors","Correlation","CorrelationDistance","CorrelationFunction","CorrelationTest","Cos","Cosh","CoshIntegral","CosineDistance","CosineWindow","CosIntegral","Cot","Coth","Count","CountDistinct","CountDistinctBy","CounterAssignments","CounterBox","CounterBoxOptions","CounterClockwiseContourIntegral","CounterEvaluator","CounterFunction","CounterIncrements","CounterStyle","CounterStyleMenuListing","CountRoots","CountryData","Counts","CountsBy","Covariance","CovarianceEstimatorFunction","CovarianceFunction","CoxianDistribution","CoxIngersollRossProcess","CoxModel","CoxModelFit","CramerVonMisesTest","CreateArchive","CreateCellID","CreateChannel","CreateCloudExpression","CreateDatabin","CreateDataStructure","CreateDataSystemModel","CreateDialog","CreateDirectory","CreateDocument","CreateFile","CreateIntermediateDirectories","CreateManagedLibraryExpression","CreateNotebook","CreatePacletArchive","CreatePalette","CreatePalettePacket","CreatePermissionsGroup","CreateScheduledTask","CreateSearchIndex","CreateSystemModel","CreateTemporary","CreateUUID","CreateWindow","CriterionFunction","CriticalityFailureImportance","CriticalitySuccessImportance","CriticalSection","Cross","CrossEntropyLossLayer","CrossingCount","CrossingDetect","CrossingPolygon","CrossMatrix","Csc","Csch","CTCLossLayer","Cube","CubeRoot","Cubics","Cuboid","CuboidBox","Cumulant","CumulantGeneratingFunction","Cup","CupCap","Curl","CurlyDoubleQuote","CurlyQuote","CurrencyConvert","CurrentDate","CurrentImage","CurrentlySpeakingPacket","CurrentNotebookImage","CurrentScreenImage","CurrentValue","Curry","CurryApplied","CurvatureFlowFilter","CurveClosed","Cyan","CycleGraph","CycleIndexPolynomial","Cycles","CyclicGroup","Cyclotomic","Cylinder","CylinderBox","CylindricalDecomposition","D","DagumDistribution","DamData","DamerauLevenshteinDistance","DampingFactor","Darker","Dashed","Dashing","DatabaseConnect","DatabaseDisconnect","DatabaseReference","Databin","DatabinAdd","DatabinRemove","Databins","DatabinUpload","DataCompression","DataDistribution","DataRange","DataReversed","Dataset","DatasetDisplayPanel","DataStructure","DataStructureQ","Date","DateBounds","Dated","DateDelimiters","DateDifference","DatedUnit","DateFormat","DateFunction","DateHistogram","DateInterval","DateList","DateListLogPlot","DateListPlot","DateListStepPlot","DateObject","DateObjectQ","DateOverlapsQ","DatePattern","DatePlus","DateRange","DateReduction","DateString","DateTicksFormat","DateValue","DateWithinQ","DaubechiesWavelet","DavisDistribution","DawsonF","DayCount","DayCountConvention","DayHemisphere","DaylightQ","DayMatchQ","DayName","DayNightTerminator","DayPlus","DayRange","DayRound","DeBruijnGraph","DeBruijnSequence","Debug","DebugTag","Decapitalize","Decimal","DecimalForm","DeclareKnownSymbols","DeclarePackage","Decompose","DeconvolutionLayer","Decrement","Decrypt","DecryptFile","DedekindEta","DeepSpaceProbeData","Default","DefaultAxesStyle","DefaultBaseStyle","DefaultBoxStyle","DefaultButton","DefaultColor","DefaultControlPlacement","DefaultDuplicateCellStyle","DefaultDuration","DefaultElement","DefaultFaceGridsStyle","DefaultFieldHintStyle","DefaultFont","DefaultFontProperties","DefaultFormatType","DefaultFormatTypeForStyle","DefaultFrameStyle","DefaultFrameTicksStyle","DefaultGridLinesStyle","DefaultInlineFormatType","DefaultInputFormatType","DefaultLabelStyle","DefaultMenuStyle","DefaultNaturalLanguage","DefaultNewCellStyle","DefaultNewInlineCellStyle","DefaultNotebook","DefaultOptions","DefaultOutputFormatType","DefaultPrintPrecision","DefaultStyle","DefaultStyleDefinitions","DefaultTextFormatType","DefaultTextInlineFormatType","DefaultTicksStyle","DefaultTooltipStyle","DefaultValue","DefaultValues","Defer","DefineExternal","DefineInputStreamMethod","DefineOutputStreamMethod","DefineResourceFunction","Definition","Degree","DegreeCentrality","DegreeGraphDistribution","DegreeLexicographic","DegreeReverseLexicographic","DEigensystem","DEigenvalues","Deinitialization","Del","DelaunayMesh","Delayed","Deletable","Delete","DeleteAnomalies","DeleteBorderComponents","DeleteCases","DeleteChannel","DeleteCloudExpression","DeleteContents","DeleteDirectory","DeleteDuplicates","DeleteDuplicatesBy","DeleteFile","DeleteMissing","DeleteObject","DeletePermissionsKey","DeleteSearchIndex","DeleteSmallComponents","DeleteStopwords","DeleteWithContents","DeletionWarning","DelimitedArray","DelimitedSequence","Delimiter","DelimiterFlashTime","DelimiterMatching","Delimiters","DeliveryFunction","Dendrogram","Denominator","DensityGraphics","DensityHistogram","DensityPlot","DensityPlot3D","DependentVariables","Deploy","Deployed","Depth","DepthFirstScan","Derivative","DerivativeFilter","DerivedKey","DescriptorStateSpace","DesignMatrix","DestroyAfterEvaluation","Det","DeviceClose","DeviceConfigure","DeviceExecute","DeviceExecuteAsynchronous","DeviceObject","DeviceOpen","DeviceOpenQ","DeviceRead","DeviceReadBuffer","DeviceReadLatest","DeviceReadList","DeviceReadTimeSeries","Devices","DeviceStreams","DeviceWrite","DeviceWriteBuffer","DGaussianWavelet","DiacriticalPositioning","Diagonal","DiagonalizableMatrixQ","DiagonalMatrix","DiagonalMatrixQ","Dialog","DialogIndent","DialogInput","DialogLevel","DialogNotebook","DialogProlog","DialogReturn","DialogSymbols","Diamond","DiamondMatrix","DiceDissimilarity","DictionaryLookup","DictionaryWordQ","DifferenceDelta","DifferenceOrder","DifferenceQuotient","DifferenceRoot","DifferenceRootReduce","Differences","DifferentialD","DifferentialRoot","DifferentialRootReduce","DifferentiatorFilter","DigitalSignature","DigitBlock","DigitBlockMinimum","DigitCharacter","DigitCount","DigitQ","DihedralAngle","DihedralGroup","Dilation","DimensionalCombinations","DimensionalMeshComponents","DimensionReduce","DimensionReducerFunction","DimensionReduction","Dimensions","DiracComb","DiracDelta","DirectedEdge","DirectedEdges","DirectedGraph","DirectedGraphQ","DirectedInfinity","Direction","Directive","Directory","DirectoryName","DirectoryQ","DirectoryStack","DirichletBeta","DirichletCharacter","DirichletCondition","DirichletConvolve","DirichletDistribution","DirichletEta","DirichletL","DirichletLambda","DirichletTransform","DirichletWindow","DisableConsolePrintPacket","DisableFormatting","DiscreteAsymptotic","DiscreteChirpZTransform","DiscreteConvolve","DiscreteDelta","DiscreteHadamardTransform","DiscreteIndicator","DiscreteLimit","DiscreteLQEstimatorGains","DiscreteLQRegulatorGains","DiscreteLyapunovSolve","DiscreteMarkovProcess","DiscreteMaxLimit","DiscreteMinLimit","DiscretePlot","DiscretePlot3D","DiscreteRatio","DiscreteRiccatiSolve","DiscreteShift","DiscreteTimeModelQ","DiscreteUniformDistribution","DiscreteVariables","DiscreteWaveletData","DiscreteWaveletPacketTransform","DiscreteWaveletTransform","DiscretizeGraphics","DiscretizeRegion","Discriminant","DisjointQ","Disjunction","Disk","DiskBox","DiskMatrix","DiskSegment","Dispatch","DispatchQ","DispersionEstimatorFunction","Display","DisplayAllSteps","DisplayEndPacket","DisplayFlushImagePacket","DisplayForm","DisplayFunction","DisplayPacket","DisplayRules","DisplaySetSizePacket","DisplayString","DisplayTemporary","DisplayWith","DisplayWithRef","DisplayWithVariable","DistanceFunction","DistanceMatrix","DistanceTransform","Distribute","Distributed","DistributedContexts","DistributeDefinitions","DistributionChart","DistributionDomain","DistributionFitTest","DistributionParameterAssumptions","DistributionParameterQ","Dithering","Div","Divergence","Divide","DivideBy","Dividers","DivideSides","Divisible","Divisors","DivisorSigma","DivisorSum","DMSList","DMSString","Do","DockedCells","DocumentGenerator","DocumentGeneratorInformation","DocumentGeneratorInformationData","DocumentGenerators","DocumentNotebook","DocumentWeightingRules","Dodecahedron","DomainRegistrationInformation","DominantColors","DOSTextFormat","Dot","DotDashed","DotEqual","DotLayer","DotPlusLayer","Dotted","DoubleBracketingBar","DoubleContourIntegral","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DoublyInfinite","Down","DownArrow","DownArrowBar","DownArrowUpArrow","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","Downsample","DownTee","DownTeeArrow","DownValues","DragAndDrop","DrawEdges","DrawFrontFaces","DrawHighlighted","Drop","DropoutLayer","DSolve","DSolveValue","Dt","DualLinearProgramming","DualPolyhedron","DualSystemsModel","DumpGet","DumpSave","DuplicateFreeQ","Duration","Dynamic","DynamicBox","DynamicBoxOptions","DynamicEvaluationTimeout","DynamicGeoGraphics","DynamicImage","DynamicLocation","DynamicModule","DynamicModuleBox","DynamicModuleBoxOptions","DynamicModuleParent","DynamicModuleValues","DynamicName","DynamicNamespace","DynamicReference","DynamicSetting","DynamicUpdating","DynamicWrapper","DynamicWrapperBox","DynamicWrapperBoxOptions","E","EarthImpactData","EarthquakeData","EccentricityCentrality","Echo","EchoFunction","EclipseType","EdgeAdd","EdgeBetweennessCentrality","EdgeCapacity","EdgeCapForm","EdgeColor","EdgeConnectivity","EdgeContract","EdgeCost","EdgeCount","EdgeCoverQ","EdgeCycleMatrix","EdgeDashing","EdgeDelete","EdgeDetect","EdgeForm","EdgeIndex","EdgeJoinForm","EdgeLabeling","EdgeLabels","EdgeLabelStyle","EdgeList","EdgeOpacity","EdgeQ","EdgeRenderingFunction","EdgeRules","EdgeShapeFunction","EdgeStyle","EdgeTaggedGraph","EdgeTaggedGraphQ","EdgeTags","EdgeThickness","EdgeWeight","EdgeWeightedGraphQ","Editable","EditButtonSettings","EditCellTagsSettings","EditDistance","EffectiveInterest","Eigensystem","Eigenvalues","EigenvectorCentrality","Eigenvectors","Element","ElementData","ElementwiseLayer","ElidedForms","Eliminate","EliminationOrder","Ellipsoid","EllipticE","EllipticExp","EllipticExpPrime","EllipticF","EllipticFilterModel","EllipticK","EllipticLog","EllipticNomeQ","EllipticPi","EllipticReducedHalfPeriods","EllipticTheta","EllipticThetaPrime","EmbedCode","EmbeddedHTML","EmbeddedService","EmbeddingLayer","EmbeddingObject","EmitSound","EmphasizeSyntaxErrors","EmpiricalDistribution","Empty","EmptyGraphQ","EmptyRegion","EnableConsolePrintPacket","Enabled","Encode","Encrypt","EncryptedObject","EncryptFile","End","EndAdd","EndDialogPacket","EndFrontEndInteractionPacket","EndOfBuffer","EndOfFile","EndOfLine","EndOfString","EndPackage","EngineEnvironment","EngineeringForm","Enter","EnterExpressionPacket","EnterTextPacket","Entity","EntityClass","EntityClassList","EntityCopies","EntityFunction","EntityGroup","EntityInstance","EntityList","EntityPrefetch","EntityProperties","EntityProperty","EntityPropertyClass","EntityRegister","EntityStore","EntityStores","EntityTypeName","EntityUnregister","EntityValue","Entropy","EntropyFilter","Environment","Epilog","EpilogFunction","Equal","EqualColumns","EqualRows","EqualTilde","EqualTo","EquatedTo","Equilibrium","EquirippleFilterKernel","Equivalent","Erf","Erfc","Erfi","ErlangB","ErlangC","ErlangDistribution","Erosion","ErrorBox","ErrorBoxOptions","ErrorNorm","ErrorPacket","ErrorsDialogSettings","EscapeRadius","EstimatedBackground","EstimatedDistribution","EstimatedProcess","EstimatorGains","EstimatorRegulator","EuclideanDistance","EulerAngles","EulerCharacteristic","EulerE","EulerGamma","EulerianGraphQ","EulerMatrix","EulerPhi","Evaluatable","Evaluate","Evaluated","EvaluatePacket","EvaluateScheduledTask","EvaluationBox","EvaluationCell","EvaluationCompletionAction","EvaluationData","EvaluationElements","EvaluationEnvironment","EvaluationMode","EvaluationMonitor","EvaluationNotebook","EvaluationObject","EvaluationOrder","Evaluator","EvaluatorNames","EvenQ","EventData","EventEvaluator","EventHandler","EventHandlerTag","EventLabels","EventSeries","ExactBlackmanWindow","ExactNumberQ","ExactRootIsolation","ExampleData","Except","ExcludedForms","ExcludedLines","ExcludedPhysicalQuantities","ExcludePods","Exclusions","ExclusionsStyle","Exists","Exit","ExitDialog","ExoplanetData","Exp","Expand","ExpandAll","ExpandDenominator","ExpandFileName","ExpandNumerator","Expectation","ExpectationE","ExpectedValue","ExpGammaDistribution","ExpIntegralE","ExpIntegralEi","ExpirationDate","Exponent","ExponentFunction","ExponentialDistribution","ExponentialFamily","ExponentialGeneratingFunction","ExponentialMovingAverage","ExponentialPowerDistribution","ExponentPosition","ExponentStep","Export","ExportAutoReplacements","ExportByteArray","ExportForm","ExportPacket","ExportString","Expression","ExpressionCell","ExpressionGraph","ExpressionPacket","ExpressionUUID","ExpToTrig","ExtendedEntityClass","ExtendedGCD","Extension","ExtentElementFunction","ExtentMarkers","ExtentSize","ExternalBundle","ExternalCall","ExternalDataCharacterEncoding","ExternalEvaluate","ExternalFunction","ExternalFunctionName","ExternalIdentifier","ExternalObject","ExternalOptions","ExternalSessionObject","ExternalSessions","ExternalStorageBase","ExternalStorageDownload","ExternalStorageGet","ExternalStorageObject","ExternalStoragePut","ExternalStorageUpload","ExternalTypeSignature","ExternalValue","Extract","ExtractArchive","ExtractLayer","ExtractPacletArchive","ExtremeValueDistribution","FaceAlign","FaceForm","FaceGrids","FaceGridsStyle","FacialFeatures","Factor","FactorComplete","Factorial","Factorial2","FactorialMoment","FactorialMomentGeneratingFunction","FactorialPower","FactorInteger","FactorList","FactorSquareFree","FactorSquareFreeList","FactorTerms","FactorTermsList","Fail","Failure","FailureAction","FailureDistribution","FailureQ","False","FareySequence","FARIMAProcess","FeatureDistance","FeatureExtract","FeatureExtraction","FeatureExtractor","FeatureExtractorFunction","FeatureNames","FeatureNearest","FeatureSpacePlot","FeatureSpacePlot3D","FeatureTypes","FEDisableConsolePrintPacket","FeedbackLinearize","FeedbackSector","FeedbackSectorStyle","FeedbackType","FEEnableConsolePrintPacket","FetalGrowthData","Fibonacci","Fibonorial","FieldCompletionFunction","FieldHint","FieldHintStyle","FieldMasked","FieldSize","File","FileBaseName","FileByteCount","FileConvert","FileDate","FileExistsQ","FileExtension","FileFormat","FileHandler","FileHash","FileInformation","FileName","FileNameDepth","FileNameDialogSettings","FileNameDrop","FileNameForms","FileNameJoin","FileNames","FileNameSetter","FileNameSplit","FileNameTake","FilePrint","FileSize","FileSystemMap","FileSystemScan","FileTemplate","FileTemplateApply","FileType","FilledCurve","FilledCurveBox","FilledCurveBoxOptions","Filling","FillingStyle","FillingTransform","FilteredEntityClass","FilterRules","FinancialBond","FinancialData","FinancialDerivative","FinancialIndicator","Find","FindAnomalies","FindArgMax","FindArgMin","FindChannels","FindClique","FindClusters","FindCookies","FindCurvePath","FindCycle","FindDevices","FindDistribution","FindDistributionParameters","FindDivisions","FindEdgeCover","FindEdgeCut","FindEdgeIndependentPaths","FindEquationalProof","FindEulerianCycle","FindExternalEvaluators","FindFaces","FindFile","FindFit","FindFormula","FindFundamentalCycles","FindGeneratingFunction","FindGeoLocation","FindGeometricConjectures","FindGeometricTransform","FindGraphCommunities","FindGraphIsomorphism","FindGraphPartition","FindHamiltonianCycle","FindHamiltonianPath","FindHiddenMarkovStates","FindImageText","FindIndependentEdgeSet","FindIndependentVertexSet","FindInstance","FindIntegerNullVector","FindKClan","FindKClique","FindKClub","FindKPlex","FindLibrary","FindLinearRecurrence","FindList","FindMatchingColor","FindMaximum","FindMaximumCut","FindMaximumFlow","FindMaxValue","FindMeshDefects","FindMinimum","FindMinimumCostFlow","FindMinimumCut","FindMinValue","FindMoleculeSubstructure","FindPath","FindPeaks","FindPermutation","FindPostmanTour","FindProcessParameters","FindRepeat","FindRoot","FindSequenceFunction","FindSettings","FindShortestPath","FindShortestTour","FindSpanningTree","FindSystemModelEquilibrium","FindTextualAnswer","FindThreshold","FindTransientRepeat","FindVertexCover","FindVertexCut","FindVertexIndependentPaths","Fine","FinishDynamic","FiniteAbelianGroupCount","FiniteGroupCount","FiniteGroupData","First","FirstCase","FirstPassageTimeDistribution","FirstPosition","FischerGroupFi22","FischerGroupFi23","FischerGroupFi24Prime","FisherHypergeometricDistribution","FisherRatioTest","FisherZDistribution","Fit","FitAll","FitRegularization","FittedModel","FixedOrder","FixedPoint","FixedPointList","FlashSelection","Flat","Flatten","FlattenAt","FlattenLayer","FlatTopWindow","FlipView","Floor","FlowPolynomial","FlushPrintOutputPacket","Fold","FoldList","FoldPair","FoldPairList","FollowRedirects","Font","FontColor","FontFamily","FontForm","FontName","FontOpacity","FontPostScriptName","FontProperties","FontReencoding","FontSize","FontSlant","FontSubstitutions","FontTracking","FontVariations","FontWeight","For","ForAll","ForceVersionInstall","Format","FormatRules","FormatType","FormatTypeAutoConvert","FormatValues","FormBox","FormBoxOptions","FormControl","FormFunction","FormLayoutFunction","FormObject","FormPage","FormTheme","FormulaData","FormulaLookup","FortranForm","Forward","ForwardBackward","Fourier","FourierCoefficient","FourierCosCoefficient","FourierCosSeries","FourierCosTransform","FourierDCT","FourierDCTFilter","FourierDCTMatrix","FourierDST","FourierDSTMatrix","FourierMatrix","FourierParameters","FourierSequenceTransform","FourierSeries","FourierSinCoefficient","FourierSinSeries","FourierSinTransform","FourierTransform","FourierTrigSeries","FractionalBrownianMotionProcess","FractionalGaussianNoiseProcess","FractionalPart","FractionBox","FractionBoxOptions","FractionLine","Frame","FrameBox","FrameBoxOptions","Framed","FrameInset","FrameLabel","Frameless","FrameMargins","FrameRate","FrameStyle","FrameTicks","FrameTicksStyle","FRatioDistribution","FrechetDistribution","FreeQ","FrenetSerretSystem","FrequencySamplingFilterKernel","FresnelC","FresnelF","FresnelG","FresnelS","Friday","FrobeniusNumber","FrobeniusSolve","FromAbsoluteTime","FromCharacterCode","FromCoefficientRules","FromContinuedFraction","FromDate","FromDigits","FromDMS","FromEntity","FromJulianDate","FromLetterNumber","FromPolarCoordinates","FromRomanNumeral","FromSphericalCoordinates","FromUnixTime","Front","FrontEndDynamicExpression","FrontEndEventActions","FrontEndExecute","FrontEndObject","FrontEndResource","FrontEndResourceString","FrontEndStackSize","FrontEndToken","FrontEndTokenExecute","FrontEndValueCache","FrontEndVersion","FrontFaceColor","FrontFaceOpacity","Full","FullAxes","FullDefinition","FullForm","FullGraphics","FullInformationOutputRegulator","FullOptions","FullRegion","FullSimplify","Function","FunctionCompile","FunctionCompileExport","FunctionCompileExportByteArray","FunctionCompileExportLibrary","FunctionCompileExportString","FunctionDomain","FunctionExpand","FunctionInterpolation","FunctionPeriod","FunctionRange","FunctionSpace","FussellVeselyImportance","GaborFilter","GaborMatrix","GaborWavelet","GainMargins","GainPhaseMargins","GalaxyData","GalleryView","Gamma","GammaDistribution","GammaRegularized","GapPenalty","GARCHProcess","GatedRecurrentLayer","Gather","GatherBy","GaugeFaceElementFunction","GaugeFaceStyle","GaugeFrameElementFunction","GaugeFrameSize","GaugeFrameStyle","GaugeLabels","GaugeMarkers","GaugeStyle","GaussianFilter","GaussianIntegers","GaussianMatrix","GaussianOrthogonalMatrixDistribution","GaussianSymplecticMatrixDistribution","GaussianUnitaryMatrixDistribution","GaussianWindow","GCD","GegenbauerC","General","GeneralizedLinearModelFit","GenerateAsymmetricKeyPair","GenerateConditions","GeneratedCell","GeneratedDocumentBinding","GenerateDerivedKey","GenerateDigitalSignature","GenerateDocument","GeneratedParameters","GeneratedQuantityMagnitudes","GenerateFileSignature","GenerateHTTPResponse","GenerateSecuredAuthenticationKey","GenerateSymmetricKey","GeneratingFunction","GeneratorDescription","GeneratorHistoryLength","GeneratorOutputType","Generic","GenericCylindricalDecomposition","GenomeData","GenomeLookup","GeoAntipode","GeoArea","GeoArraySize","GeoBackground","GeoBoundingBox","GeoBounds","GeoBoundsRegion","GeoBubbleChart","GeoCenter","GeoCircle","GeoContourPlot","GeoDensityPlot","GeodesicClosing","GeodesicDilation","GeodesicErosion","GeodesicOpening","GeoDestination","GeodesyData","GeoDirection","GeoDisk","GeoDisplacement","GeoDistance","GeoDistanceList","GeoElevationData","GeoEntities","GeoGraphics","GeogravityModelData","GeoGridDirectionDifference","GeoGridLines","GeoGridLinesStyle","GeoGridPosition","GeoGridRange","GeoGridRangePadding","GeoGridUnitArea","GeoGridUnitDistance","GeoGridVector","GeoGroup","GeoHemisphere","GeoHemisphereBoundary","GeoHistogram","GeoIdentify","GeoImage","GeoLabels","GeoLength","GeoListPlot","GeoLocation","GeologicalPeriodData","GeomagneticModelData","GeoMarker","GeometricAssertion","GeometricBrownianMotionProcess","GeometricDistribution","GeometricMean","GeometricMeanFilter","GeometricOptimization","GeometricScene","GeometricTransformation","GeometricTransformation3DBox","GeometricTransformation3DBoxOptions","GeometricTransformationBox","GeometricTransformationBoxOptions","GeoModel","GeoNearest","GeoPath","GeoPosition","GeoPositionENU","GeoPositionXYZ","GeoProjection","GeoProjectionData","GeoRange","GeoRangePadding","GeoRegionValuePlot","GeoResolution","GeoScaleBar","GeoServer","GeoSmoothHistogram","GeoStreamPlot","GeoStyling","GeoStylingImageFunction","GeoVariant","GeoVector","GeoVectorENU","GeoVectorPlot","GeoVectorXYZ","GeoVisibleRegion","GeoVisibleRegionBoundary","GeoWithinQ","GeoZoomLevel","GestureHandler","GestureHandlerTag","Get","GetBoundingBoxSizePacket","GetContext","GetEnvironment","GetFileName","GetFrontEndOptionsDataPacket","GetLinebreakInformationPacket","GetMenusPacket","GetPageBreakInformationPacket","Glaisher","GlobalClusteringCoefficient","GlobalPreferences","GlobalSession","Glow","GoldenAngle","GoldenRatio","GompertzMakehamDistribution","GoochShading","GoodmanKruskalGamma","GoodmanKruskalGammaTest","Goto","Grad","Gradient","GradientFilter","GradientOrientationFilter","GrammarApply","GrammarRules","GrammarToken","Graph","Graph3D","GraphAssortativity","GraphAutomorphismGroup","GraphCenter","GraphComplement","GraphData","GraphDensity","GraphDiameter","GraphDifference","GraphDisjointUnion","GraphDistance","GraphDistanceMatrix","GraphElementData","GraphEmbedding","GraphHighlight","GraphHighlightStyle","GraphHub","Graphics","Graphics3D","Graphics3DBox","Graphics3DBoxOptions","GraphicsArray","GraphicsBaseline","GraphicsBox","GraphicsBoxOptions","GraphicsColor","GraphicsColumn","GraphicsComplex","GraphicsComplex3DBox","GraphicsComplex3DBoxOptions","GraphicsComplexBox","GraphicsComplexBoxOptions","GraphicsContents","GraphicsData","GraphicsGrid","GraphicsGridBox","GraphicsGroup","GraphicsGroup3DBox","GraphicsGroup3DBoxOptions","GraphicsGroupBox","GraphicsGroupBoxOptions","GraphicsGrouping","GraphicsHighlightColor","GraphicsRow","GraphicsSpacing","GraphicsStyle","GraphIntersection","GraphLayout","GraphLinkEfficiency","GraphPeriphery","GraphPlot","GraphPlot3D","GraphPower","GraphPropertyDistribution","GraphQ","GraphRadius","GraphReciprocity","GraphRoot","GraphStyle","GraphUnion","Gray","GrayLevel","Greater","GreaterEqual","GreaterEqualLess","GreaterEqualThan","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterThan","GreaterTilde","Green","GreenFunction","Grid","GridBaseline","GridBox","GridBoxAlignment","GridBoxBackground","GridBoxDividers","GridBoxFrame","GridBoxItemSize","GridBoxItemStyle","GridBoxOptions","GridBoxSpacings","GridCreationSettings","GridDefaultElement","GridElementStyleOptions","GridFrame","GridFrameMargins","GridGraph","GridLines","GridLinesStyle","GroebnerBasis","GroupActionBase","GroupBy","GroupCentralizer","GroupElementFromWord","GroupElementPosition","GroupElementQ","GroupElements","GroupElementToWord","GroupGenerators","Groupings","GroupMultiplicationTable","GroupOrbits","GroupOrder","GroupPageBreakWithin","GroupSetwiseStabilizer","GroupStabilizer","GroupStabilizerChain","GroupTogetherGrouping","GroupTogetherNestedGrouping","GrowCutComponents","Gudermannian","GuidedFilter","GumbelDistribution","HaarWavelet","HadamardMatrix","HalfLine","HalfNormalDistribution","HalfPlane","HalfSpace","HalftoneShading","HamiltonianGraphQ","HammingDistance","HammingWindow","HandlerFunctions","HandlerFunctionsKeys","HankelH1","HankelH2","HankelMatrix","HankelTransform","HannPoissonWindow","HannWindow","HaradaNortonGroupHN","HararyGraph","HarmonicMean","HarmonicMeanFilter","HarmonicNumber","Hash","HatchFilling","HatchShading","Haversine","HazardFunction","Head","HeadCompose","HeaderAlignment","HeaderBackground","HeaderDisplayFunction","HeaderLines","HeaderSize","HeaderStyle","Heads","HeavisideLambda","HeavisidePi","HeavisideTheta","HeldGroupHe","HeldPart","HelpBrowserLookup","HelpBrowserNotebook","HelpBrowserSettings","Here","HermiteDecomposition","HermiteH","HermitianMatrixQ","HessenbergDecomposition","Hessian","HeunB","HeunBPrime","HeunC","HeunCPrime","HeunD","HeunDPrime","HeunG","HeunGPrime","HeunT","HeunTPrime","HexadecimalCharacter","Hexahedron","HexahedronBox","HexahedronBoxOptions","HiddenItems","HiddenMarkovProcess","HiddenSurface","Highlighted","HighlightGraph","HighlightImage","HighlightMesh","HighpassFilter","HigmanSimsGroupHS","HilbertCurve","HilbertFilter","HilbertMatrix","Histogram","Histogram3D","HistogramDistribution","HistogramList","HistogramTransform","HistogramTransformInterpolation","HistoricalPeriodData","HitMissTransform","HITSCentrality","HjorthDistribution","HodgeDual","HoeffdingD","HoeffdingDTest","Hold","HoldAll","HoldAllComplete","HoldComplete","HoldFirst","HoldForm","HoldPattern","HoldRest","HolidayCalendar","HomeDirectory","HomePage","Horizontal","HorizontalForm","HorizontalGauge","HorizontalScrollPosition","HornerForm","HostLookup","HotellingTSquareDistribution","HoytDistribution","HTMLSave","HTTPErrorResponse","HTTPRedirect","HTTPRequest","HTTPRequestData","HTTPResponse","Hue","HumanGrowthData","HumpDownHump","HumpEqual","HurwitzLerchPhi","HurwitzZeta","HyperbolicDistribution","HypercubeGraph","HyperexponentialDistribution","Hyperfactorial","Hypergeometric0F1","Hypergeometric0F1Regularized","Hypergeometric1F1","Hypergeometric1F1Regularized","Hypergeometric2F1","Hypergeometric2F1Regularized","HypergeometricDistribution","HypergeometricPFQ","HypergeometricPFQRegularized","HypergeometricU","Hyperlink","HyperlinkAction","HyperlinkCreationSettings","Hyperplane","Hyphenation","HyphenationOptions","HypoexponentialDistribution","HypothesisTestData","I","IconData","Iconize","IconizedObject","IconRules","Icosahedron","Identity","IdentityMatrix","If","IgnoreCase","IgnoreDiacritics","IgnorePunctuation","IgnoreSpellCheck","IgnoringInactive","Im","Image","Image3D","Image3DProjection","Image3DSlices","ImageAccumulate","ImageAdd","ImageAdjust","ImageAlign","ImageApply","ImageApplyIndexed","ImageAspectRatio","ImageAssemble","ImageAugmentationLayer","ImageBoundingBoxes","ImageCache","ImageCacheValid","ImageCapture","ImageCaptureFunction","ImageCases","ImageChannels","ImageClip","ImageCollage","ImageColorSpace","ImageCompose","ImageContainsQ","ImageContents","ImageConvolve","ImageCooccurrence","ImageCorners","ImageCorrelate","ImageCorrespondingPoints","ImageCrop","ImageData","ImageDeconvolve","ImageDemosaic","ImageDifference","ImageDimensions","ImageDisplacements","ImageDistance","ImageEffect","ImageExposureCombine","ImageFeatureTrack","ImageFileApply","ImageFileFilter","ImageFileScan","ImageFilter","ImageFocusCombine","ImageForestingComponents","ImageFormattingWidth","ImageForwardTransformation","ImageGraphics","ImageHistogram","ImageIdentify","ImageInstanceQ","ImageKeypoints","ImageLabels","ImageLegends","ImageLevels","ImageLines","ImageMargins","ImageMarker","ImageMarkers","ImageMeasurements","ImageMesh","ImageMultiply","ImageOffset","ImagePad","ImagePadding","ImagePartition","ImagePeriodogram","ImagePerspectiveTransformation","ImagePosition","ImagePreviewFunction","ImagePyramid","ImagePyramidApply","ImageQ","ImageRangeCache","ImageRecolor","ImageReflect","ImageRegion","ImageResize","ImageResolution","ImageRestyle","ImageRotate","ImageRotated","ImageSaliencyFilter","ImageScaled","ImageScan","ImageSize","ImageSizeAction","ImageSizeCache","ImageSizeMultipliers","ImageSizeRaw","ImageSubtract","ImageTake","ImageTransformation","ImageTrim","ImageType","ImageValue","ImageValuePositions","ImagingDevice","ImplicitRegion","Implies","Import","ImportAutoReplacements","ImportByteArray","ImportOptions","ImportString","ImprovementImportance","In","Inactivate","Inactive","IncidenceGraph","IncidenceList","IncidenceMatrix","IncludeAromaticBonds","IncludeConstantBasis","IncludeDefinitions","IncludeDirectories","IncludeFileExtension","IncludeGeneratorTasks","IncludeHydrogens","IncludeInflections","IncludeMetaInformation","IncludePods","IncludeQuantities","IncludeRelatedTables","IncludeSingularTerm","IncludeWindowTimes","Increment","IndefiniteMatrixQ","Indent","IndentingNewlineSpacings","IndentMaxFraction","IndependenceTest","IndependentEdgeSetQ","IndependentPhysicalQuantity","IndependentUnit","IndependentUnitDimension","IndependentVertexSetQ","Indeterminate","IndeterminateThreshold","IndexCreationOptions","Indexed","IndexEdgeTaggedGraph","IndexGraph","IndexTag","Inequality","InexactNumberQ","InexactNumbers","InfiniteFuture","InfiniteLine","InfinitePast","InfinitePlane","Infinity","Infix","InflationAdjust","InflationMethod","Information","InformationData","InformationDataGrid","Inherited","InheritScope","InhomogeneousPoissonProcess","InitialEvaluationHistory","Initialization","InitializationCell","InitializationCellEvaluation","InitializationCellWarning","InitializationObjects","InitializationValue","Initialize","InitialSeeding","InlineCounterAssignments","InlineCounterIncrements","InlineRules","Inner","InnerPolygon","InnerPolyhedron","Inpaint","Input","InputAliases","InputAssumptions","InputAutoReplacements","InputField","InputFieldBox","InputFieldBoxOptions","InputForm","InputGrouping","InputNamePacket","InputNotebook","InputPacket","InputSettings","InputStream","InputString","InputStringPacket","InputToBoxFormPacket","Insert","InsertionFunction","InsertionPointObject","InsertLinebreaks","InsertResults","Inset","Inset3DBox","Inset3DBoxOptions","InsetBox","InsetBoxOptions","Insphere","Install","InstallService","InstanceNormalizationLayer","InString","Integer","IntegerDigits","IntegerExponent","IntegerLength","IntegerName","IntegerPart","IntegerPartitions","IntegerQ","IntegerReverse","Integers","IntegerString","Integral","Integrate","Interactive","InteractiveTradingChart","Interlaced","Interleaving","InternallyBalancedDecomposition","InterpolatingFunction","InterpolatingPolynomial","Interpolation","InterpolationOrder","InterpolationPoints","InterpolationPrecision","Interpretation","InterpretationBox","InterpretationBoxOptions","InterpretationFunction","Interpreter","InterpretTemplate","InterquartileRange","Interrupt","InterruptSettings","IntersectedEntityClass","IntersectingQ","Intersection","Interval","IntervalIntersection","IntervalMarkers","IntervalMarkersStyle","IntervalMemberQ","IntervalSlider","IntervalUnion","Into","Inverse","InverseBetaRegularized","InverseCDF","InverseChiSquareDistribution","InverseContinuousWaveletTransform","InverseDistanceTransform","InverseEllipticNomeQ","InverseErf","InverseErfc","InverseFourier","InverseFourierCosTransform","InverseFourierSequenceTransform","InverseFourierSinTransform","InverseFourierTransform","InverseFunction","InverseFunctions","InverseGammaDistribution","InverseGammaRegularized","InverseGaussianDistribution","InverseGudermannian","InverseHankelTransform","InverseHaversine","InverseImagePyramid","InverseJacobiCD","InverseJacobiCN","InverseJacobiCS","InverseJacobiDC","InverseJacobiDN","InverseJacobiDS","InverseJacobiNC","InverseJacobiND","InverseJacobiNS","InverseJacobiSC","InverseJacobiSD","InverseJacobiSN","InverseLaplaceTransform","InverseMellinTransform","InversePermutation","InverseRadon","InverseRadonTransform","InverseSeries","InverseShortTimeFourier","InverseSpectrogram","InverseSurvivalFunction","InverseTransformedRegion","InverseWaveletTransform","InverseWeierstrassP","InverseWishartMatrixDistribution","InverseZTransform","Invisible","InvisibleApplication","InvisibleTimes","IPAddress","IrreduciblePolynomialQ","IslandData","IsolatingInterval","IsomorphicGraphQ","IsotopeData","Italic","Item","ItemAspectRatio","ItemBox","ItemBoxOptions","ItemDisplayFunction","ItemSize","ItemStyle","ItoProcess","JaccardDissimilarity","JacobiAmplitude","Jacobian","JacobiCD","JacobiCN","JacobiCS","JacobiDC","JacobiDN","JacobiDS","JacobiNC","JacobiND","JacobiNS","JacobiP","JacobiSC","JacobiSD","JacobiSN","JacobiSymbol","JacobiZeta","JankoGroupJ1","JankoGroupJ2","JankoGroupJ3","JankoGroupJ4","JarqueBeraALMTest","JohnsonDistribution","Join","JoinAcross","Joined","JoinedCurve","JoinedCurveBox","JoinedCurveBoxOptions","JoinForm","JordanDecomposition","JordanModelDecomposition","JulianDate","JuliaSetBoettcher","JuliaSetIterationCount","JuliaSetPlot","JuliaSetPoints","K","KagiChart","KaiserBesselWindow","KaiserWindow","KalmanEstimator","KalmanFilter","KarhunenLoeveDecomposition","KaryTree","KatzCentrality","KCoreComponents","KDistribution","KEdgeConnectedComponents","KEdgeConnectedGraphQ","KeepExistingVersion","KelvinBei","KelvinBer","KelvinKei","KelvinKer","KendallTau","KendallTauTest","KernelExecute","KernelFunction","KernelMixtureDistribution","KernelObject","Kernels","Ket","Key","KeyCollisionFunction","KeyComplement","KeyDrop","KeyDropFrom","KeyExistsQ","KeyFreeQ","KeyIntersection","KeyMap","KeyMemberQ","KeypointStrength","Keys","KeySelect","KeySort","KeySortBy","KeyTake","KeyUnion","KeyValueMap","KeyValuePattern","Khinchin","KillProcess","KirchhoffGraph","KirchhoffMatrix","KleinInvariantJ","KnapsackSolve","KnightTourGraph","KnotData","KnownUnitQ","KochCurve","KolmogorovSmirnovTest","KroneckerDelta","KroneckerModelDecomposition","KroneckerProduct","KroneckerSymbol","KuiperTest","KumaraswamyDistribution","Kurtosis","KuwaharaFilter","KVertexConnectedComponents","KVertexConnectedGraphQ","LABColor","Label","Labeled","LabeledSlider","LabelingFunction","LabelingSize","LabelStyle","LabelVisibility","LaguerreL","LakeData","LambdaComponents","LambertW","LaminaData","LanczosWindow","LandauDistribution","Language","LanguageCategory","LanguageData","LanguageIdentify","LanguageOptions","LaplaceDistribution","LaplaceTransform","Laplacian","LaplacianFilter","LaplacianGaussianFilter","Large","Larger","Last","Latitude","LatitudeLongitude","LatticeData","LatticeReduce","Launch","LaunchKernels","LayeredGraphPlot","LayerSizeFunction","LayoutInformation","LCHColor","LCM","LeaderSize","LeafCount","LeapYearQ","LearnDistribution","LearnedDistribution","LearningRate","LearningRateMultipliers","LeastSquares","LeastSquaresFilterKernel","Left","LeftArrow","LeftArrowBar","LeftArrowRightArrow","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftRightArrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","LegendAppearance","Legended","LegendFunction","LegendLabel","LegendLayout","LegendMargins","LegendMarkers","LegendMarkerSize","LegendreP","LegendreQ","LegendreType","Length","LengthWhile","LerchPhi","Less","LessEqual","LessEqualGreater","LessEqualThan","LessFullEqual","LessGreater","LessLess","LessSlantEqual","LessThan","LessTilde","LetterCharacter","LetterCounts","LetterNumber","LetterQ","Level","LeveneTest","LeviCivitaTensor","LevyDistribution","Lexicographic","LibraryDataType","LibraryFunction","LibraryFunctionError","LibraryFunctionInformation","LibraryFunctionLoad","LibraryFunctionUnload","LibraryLoad","LibraryUnload","LicenseID","LiftingFilterData","LiftingWaveletTransform","LightBlue","LightBrown","LightCyan","Lighter","LightGray","LightGreen","Lighting","LightingAngle","LightMagenta","LightOrange","LightPink","LightPurple","LightRed","LightSources","LightYellow","Likelihood","Limit","LimitsPositioning","LimitsPositioningTokens","LindleyDistribution","Line","Line3DBox","Line3DBoxOptions","LinearFilter","LinearFractionalOptimization","LinearFractionalTransform","LinearGradientImage","LinearizingTransformationData","LinearLayer","LinearModelFit","LinearOffsetFunction","LinearOptimization","LinearProgramming","LinearRecurrence","LinearSolve","LinearSolveFunction","LineBox","LineBoxOptions","LineBreak","LinebreakAdjustments","LineBreakChart","LinebreakSemicolonWeighting","LineBreakWithin","LineColor","LineGraph","LineIndent","LineIndentMaxFraction","LineIntegralConvolutionPlot","LineIntegralConvolutionScale","LineLegend","LineOpacity","LineSpacing","LineWrapParts","LinkActivate","LinkClose","LinkConnect","LinkConnectedQ","LinkCreate","LinkError","LinkFlush","LinkFunction","LinkHost","LinkInterrupt","LinkLaunch","LinkMode","LinkObject","LinkOpen","LinkOptions","LinkPatterns","LinkProtocol","LinkRankCentrality","LinkRead","LinkReadHeld","LinkReadyQ","Links","LinkService","LinkWrite","LinkWriteHeld","LiouvilleLambda","List","Listable","ListAnimate","ListContourPlot","ListContourPlot3D","ListConvolve","ListCorrelate","ListCurvePathPlot","ListDeconvolve","ListDensityPlot","ListDensityPlot3D","Listen","ListFormat","ListFourierSequenceTransform","ListInterpolation","ListLineIntegralConvolutionPlot","ListLinePlot","ListLogLinearPlot","ListLogLogPlot","ListLogPlot","ListPicker","ListPickerBox","ListPickerBoxBackground","ListPickerBoxOptions","ListPlay","ListPlot","ListPlot3D","ListPointPlot3D","ListPolarPlot","ListQ","ListSliceContourPlot3D","ListSliceDensityPlot3D","ListSliceVectorPlot3D","ListStepPlot","ListStreamDensityPlot","ListStreamPlot","ListSurfacePlot3D","ListVectorDensityPlot","ListVectorPlot","ListVectorPlot3D","ListZTransform","Literal","LiteralSearch","LocalAdaptiveBinarize","LocalCache","LocalClusteringCoefficient","LocalizeDefinitions","LocalizeVariables","LocalObject","LocalObjects","LocalResponseNormalizationLayer","LocalSubmit","LocalSymbol","LocalTime","LocalTimeZone","LocationEquivalenceTest","LocationTest","Locator","LocatorAutoCreate","LocatorBox","LocatorBoxOptions","LocatorCentering","LocatorPane","LocatorPaneBox","LocatorPaneBoxOptions","LocatorRegion","Locked","Log","Log10","Log2","LogBarnesG","LogGamma","LogGammaDistribution","LogicalExpand","LogIntegral","LogisticDistribution","LogisticSigmoid","LogitModelFit","LogLikelihood","LogLinearPlot","LogLogisticDistribution","LogLogPlot","LogMultinormalDistribution","LogNormalDistribution","LogPlot","LogRankTest","LogSeriesDistribution","LongEqual","Longest","LongestCommonSequence","LongestCommonSequencePositions","LongestCommonSubsequence","LongestCommonSubsequencePositions","LongestMatch","LongestOrderedSequence","LongForm","Longitude","LongLeftArrow","LongLeftRightArrow","LongRightArrow","LongShortTermMemoryLayer","Lookup","Loopback","LoopFreeGraphQ","Looping","LossFunction","LowerCaseQ","LowerLeftArrow","LowerRightArrow","LowerTriangularize","LowerTriangularMatrixQ","LowpassFilter","LQEstimatorGains","LQGRegulator","LQOutputRegulatorGains","LQRegulatorGains","LUBackSubstitution","LucasL","LuccioSamiComponents","LUDecomposition","LunarEclipse","LUVColor","LyapunovSolve","LyonsGroupLy","MachineID","MachineName","MachineNumberQ","MachinePrecision","MacintoshSystemPageSetup","Magenta","Magnification","Magnify","MailAddressValidation","MailExecute","MailFolder","MailItem","MailReceiverFunction","MailResponseFunction","MailSearch","MailServerConnect","MailServerConnection","MailSettings","MainSolve","MaintainDynamicCaches","Majority","MakeBoxes","MakeExpression","MakeRules","ManagedLibraryExpressionID","ManagedLibraryExpressionQ","MandelbrotSetBoettcher","MandelbrotSetDistance","MandelbrotSetIterationCount","MandelbrotSetMemberQ","MandelbrotSetPlot","MangoldtLambda","ManhattanDistance","Manipulate","Manipulator","MannedSpaceMissionData","MannWhitneyTest","MantissaExponent","Manual","Map","MapAll","MapAt","MapIndexed","MAProcess","MapThread","MarchenkoPasturDistribution","MarcumQ","MardiaCombinedTest","MardiaKurtosisTest","MardiaSkewnessTest","MarginalDistribution","MarkovProcessProperties","Masking","MatchingDissimilarity","MatchLocalNameQ","MatchLocalNames","MatchQ","Material","MathematicalFunctionData","MathematicaNotation","MathieuC","MathieuCharacteristicA","MathieuCharacteristicB","MathieuCharacteristicExponent","MathieuCPrime","MathieuGroupM11","MathieuGroupM12","MathieuGroupM22","MathieuGroupM23","MathieuGroupM24","MathieuS","MathieuSPrime","MathMLForm","MathMLText","Matrices","MatrixExp","MatrixForm","MatrixFunction","MatrixLog","MatrixNormalDistribution","MatrixPlot","MatrixPower","MatrixPropertyDistribution","MatrixQ","MatrixRank","MatrixTDistribution","Max","MaxBend","MaxCellMeasure","MaxColorDistance","MaxDate","MaxDetect","MaxDuration","MaxExtraBandwidths","MaxExtraConditions","MaxFeatureDisplacement","MaxFeatures","MaxFilter","MaximalBy","Maximize","MaxItems","MaxIterations","MaxLimit","MaxMemoryUsed","MaxMixtureKernels","MaxOverlapFraction","MaxPlotPoints","MaxPoints","MaxRecursion","MaxStableDistribution","MaxStepFraction","MaxSteps","MaxStepSize","MaxTrainingRounds","MaxValue","MaxwellDistribution","MaxWordGap","McLaughlinGroupMcL","Mean","MeanAbsoluteLossLayer","MeanAround","MeanClusteringCoefficient","MeanDegreeConnectivity","MeanDeviation","MeanFilter","MeanGraphDistance","MeanNeighborDegree","MeanShift","MeanShiftFilter","MeanSquaredLossLayer","Median","MedianDeviation","MedianFilter","MedicalTestData","Medium","MeijerG","MeijerGReduce","MeixnerDistribution","MellinConvolve","MellinTransform","MemberQ","MemoryAvailable","MemoryConstrained","MemoryConstraint","MemoryInUse","MengerMesh","Menu","MenuAppearance","MenuCommandKey","MenuEvaluator","MenuItem","MenuList","MenuPacket","MenuSortingValue","MenuStyle","MenuView","Merge","MergeDifferences","MergingFunction","MersennePrimeExponent","MersennePrimeExponentQ","Mesh","MeshCellCentroid","MeshCellCount","MeshCellHighlight","MeshCellIndex","MeshCellLabel","MeshCellMarker","MeshCellMeasure","MeshCellQuality","MeshCells","MeshCellShapeFunction","MeshCellStyle","MeshConnectivityGraph","MeshCoordinates","MeshFunctions","MeshPrimitives","MeshQualityGoal","MeshRange","MeshRefinementFunction","MeshRegion","MeshRegionQ","MeshShading","MeshStyle","Message","MessageDialog","MessageList","MessageName","MessageObject","MessageOptions","MessagePacket","Messages","MessagesNotebook","MetaCharacters","MetaInformation","MeteorShowerData","Method","MethodOptions","MexicanHatWavelet","MeyerWavelet","Midpoint","Min","MinColorDistance","MinDate","MinDetect","MineralData","MinFilter","MinimalBy","MinimalPolynomial","MinimalStateSpaceModel","Minimize","MinimumTimeIncrement","MinIntervalSize","MinkowskiQuestionMark","MinLimit","MinMax","MinorPlanetData","Minors","MinRecursion","MinSize","MinStableDistribution","Minus","MinusPlus","MinValue","Missing","MissingBehavior","MissingDataMethod","MissingDataRules","MissingQ","MissingString","MissingStyle","MissingValuePattern","MittagLefflerE","MixedFractionParts","MixedGraphQ","MixedMagnitude","MixedRadix","MixedRadixQuantity","MixedUnit","MixtureDistribution","Mod","Modal","Mode","Modular","ModularInverse","ModularLambda","Module","Modulus","MoebiusMu","Molecule","MoleculeContainsQ","MoleculeEquivalentQ","MoleculeGraph","MoleculeModify","MoleculePattern","MoleculePlot","MoleculePlot3D","MoleculeProperty","MoleculeQ","MoleculeRecognize","MoleculeValue","Moment","Momentary","MomentConvert","MomentEvaluate","MomentGeneratingFunction","MomentOfInertia","Monday","Monitor","MonomialList","MonomialOrder","MonsterGroupM","MoonPhase","MoonPosition","MorletWavelet","MorphologicalBinarize","MorphologicalBranchPoints","MorphologicalComponents","MorphologicalEulerNumber","MorphologicalGraph","MorphologicalPerimeter","MorphologicalTransform","MortalityData","Most","MountainData","MouseAnnotation","MouseAppearance","MouseAppearanceTag","MouseButtons","Mouseover","MousePointerNote","MousePosition","MovieData","MovingAverage","MovingMap","MovingMedian","MoyalDistribution","Multicolumn","MultiedgeStyle","MultigraphQ","MultilaunchWarning","MultiLetterItalics","MultiLetterStyle","MultilineFunction","Multinomial","MultinomialDistribution","MultinormalDistribution","MultiplicativeOrder","Multiplicity","MultiplySides","Multiselection","MultivariateHypergeometricDistribution","MultivariatePoissonDistribution","MultivariateTDistribution","N","NakagamiDistribution","NameQ","Names","NamespaceBox","NamespaceBoxOptions","Nand","NArgMax","NArgMin","NBernoulliB","NBodySimulation","NBodySimulationData","NCache","NDEigensystem","NDEigenvalues","NDSolve","NDSolveValue","Nearest","NearestFunction","NearestMeshCells","NearestNeighborGraph","NearestTo","NebulaData","NeedCurrentFrontEndPackagePacket","NeedCurrentFrontEndSymbolsPacket","NeedlemanWunschSimilarity","Needs","Negative","NegativeBinomialDistribution","NegativeDefiniteMatrixQ","NegativeIntegers","NegativeMultinomialDistribution","NegativeRationals","NegativeReals","NegativeSemidefiniteMatrixQ","NeighborhoodData","NeighborhoodGraph","Nest","NestedGreaterGreater","NestedLessLess","NestedScriptRules","NestGraph","NestList","NestWhile","NestWhileList","NetAppend","NetBidirectionalOperator","NetChain","NetDecoder","NetDelete","NetDrop","NetEncoder","NetEvaluationMode","NetExtract","NetFlatten","NetFoldOperator","NetGANOperator","NetGraph","NetInformation","NetInitialize","NetInsert","NetInsertSharedArrays","NetJoin","NetMapOperator","NetMapThreadOperator","NetMeasurements","NetModel","NetNestOperator","NetPairEmbeddingOperator","NetPort","NetPortGradient","NetPrepend","NetRename","NetReplace","NetReplacePart","NetSharedArray","NetStateObject","NetTake","NetTrain","NetTrainResultsObject","NetworkPacketCapture","NetworkPacketRecording","NetworkPacketRecordingDuring","NetworkPacketTrace","NeumannValue","NevilleThetaC","NevilleThetaD","NevilleThetaN","NevilleThetaS","NewPrimitiveStyle","NExpectation","Next","NextCell","NextDate","NextPrime","NextScheduledTaskTime","NHoldAll","NHoldFirst","NHoldRest","NicholsGridLines","NicholsPlot","NightHemisphere","NIntegrate","NMaximize","NMaxValue","NMinimize","NMinValue","NominalVariables","NonAssociative","NoncentralBetaDistribution","NoncentralChiSquareDistribution","NoncentralFRatioDistribution","NoncentralStudentTDistribution","NonCommutativeMultiply","NonConstants","NondimensionalizationTransform","None","NoneTrue","NonlinearModelFit","NonlinearStateSpaceModel","NonlocalMeansFilter","NonNegative","NonNegativeIntegers","NonNegativeRationals","NonNegativeReals","NonPositive","NonPositiveIntegers","NonPositiveRationals","NonPositiveReals","Nor","NorlundB","Norm","Normal","NormalDistribution","NormalGrouping","NormalizationLayer","Normalize","Normalized","NormalizedSquaredEuclideanDistance","NormalMatrixQ","NormalsFunction","NormFunction","Not","NotCongruent","NotCupCap","NotDoubleVerticalBar","Notebook","NotebookApply","NotebookAutoSave","NotebookClose","NotebookConvertSettings","NotebookCreate","NotebookCreateReturnObject","NotebookDefault","NotebookDelete","NotebookDirectory","NotebookDynamicExpression","NotebookEvaluate","NotebookEventActions","NotebookFileName","NotebookFind","NotebookFindReturnObject","NotebookGet","NotebookGetLayoutInformationPacket","NotebookGetMisspellingsPacket","NotebookImport","NotebookInformation","NotebookInterfaceObject","NotebookLocate","NotebookObject","NotebookOpen","NotebookOpenReturnObject","NotebookPath","NotebookPrint","NotebookPut","NotebookPutReturnObject","NotebookRead","NotebookResetGeneratedCells","Notebooks","NotebookSave","NotebookSaveAs","NotebookSelection","NotebookSetupLayoutInformationPacket","NotebooksMenu","NotebookTemplate","NotebookWrite","NotElement","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","Nothing","NotHumpDownHump","NotHumpEqual","NotificationFunction","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessFullEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotPrecedesTilde","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","Now","NoWhitespace","NProbability","NProduct","NProductFactors","NRoots","NSolve","NSum","NSumTerms","NuclearExplosionData","NuclearReactorData","Null","NullRecords","NullSpace","NullWords","Number","NumberCompose","NumberDecompose","NumberExpand","NumberFieldClassNumber","NumberFieldDiscriminant","NumberFieldFundamentalUnits","NumberFieldIntegralBasis","NumberFieldNormRepresentatives","NumberFieldRegulator","NumberFieldRootsOfUnity","NumberFieldSignature","NumberForm","NumberFormat","NumberLinePlot","NumberMarks","NumberMultiplier","NumberPadding","NumberPoint","NumberQ","NumberSeparator","NumberSigns","NumberString","Numerator","NumeratorDenominator","NumericalOrder","NumericalSort","NumericArray","NumericArrayQ","NumericArrayType","NumericFunction","NumericQ","NuttallWindow","NValues","NyquistGridLines","NyquistPlot","O","ObservabilityGramian","ObservabilityMatrix","ObservableDecomposition","ObservableModelQ","OceanData","Octahedron","OddQ","Off","Offset","OLEData","On","ONanGroupON","Once","OneIdentity","Opacity","OpacityFunction","OpacityFunctionScaling","Open","OpenAppend","Opener","OpenerBox","OpenerBoxOptions","OpenerView","OpenFunctionInspectorPacket","Opening","OpenRead","OpenSpecialOptions","OpenTemporary","OpenWrite","Operate","OperatingSystem","OperatorApplied","OptimumFlowData","Optional","OptionalElement","OptionInspectorSettings","OptionQ","Options","OptionsPacket","OptionsPattern","OptionValue","OptionValueBox","OptionValueBoxOptions","Or","Orange","Order","OrderDistribution","OrderedQ","Ordering","OrderingBy","OrderingLayer","Orderless","OrderlessPatternSequence","OrnsteinUhlenbeckProcess","Orthogonalize","OrthogonalMatrixQ","Out","Outer","OuterPolygon","OuterPolyhedron","OutputAutoOverwrite","OutputControllabilityMatrix","OutputControllableModelQ","OutputForm","OutputFormData","OutputGrouping","OutputMathEditExpression","OutputNamePacket","OutputResponse","OutputSizeLimit","OutputStream","Over","OverBar","OverDot","Overflow","OverHat","Overlaps","Overlay","OverlayBox","OverlayBoxOptions","Overscript","OverscriptBox","OverscriptBoxOptions","OverTilde","OverVector","OverwriteTarget","OwenT","OwnValues","Package","PackingMethod","PackPaclet","PacletDataRebuild","PacletDirectoryAdd","PacletDirectoryLoad","PacletDirectoryRemove","PacletDirectoryUnload","PacletDisable","PacletEnable","PacletFind","PacletFindRemote","PacletInformation","PacletInstall","PacletInstallSubmit","PacletNewerQ","PacletObject","PacletObjectQ","PacletSite","PacletSiteObject","PacletSiteRegister","PacletSites","PacletSiteUnregister","PacletSiteUpdate","PacletUninstall","PacletUpdate","PaddedForm","Padding","PaddingLayer","PaddingSize","PadeApproximant","PadLeft","PadRight","PageBreakAbove","PageBreakBelow","PageBreakWithin","PageFooterLines","PageFooters","PageHeaderLines","PageHeaders","PageHeight","PageRankCentrality","PageTheme","PageWidth","Pagination","PairedBarChart","PairedHistogram","PairedSmoothHistogram","PairedTTest","PairedZTest","PaletteNotebook","PalettePath","PalindromeQ","Pane","PaneBox","PaneBoxOptions","Panel","PanelBox","PanelBoxOptions","Paneled","PaneSelector","PaneSelectorBox","PaneSelectorBoxOptions","PaperWidth","ParabolicCylinderD","ParagraphIndent","ParagraphSpacing","ParallelArray","ParallelCombine","ParallelDo","Parallelepiped","ParallelEvaluate","Parallelization","Parallelize","ParallelMap","ParallelNeeds","Parallelogram","ParallelProduct","ParallelSubmit","ParallelSum","ParallelTable","ParallelTry","Parameter","ParameterEstimator","ParameterMixtureDistribution","ParameterVariables","ParametricFunction","ParametricNDSolve","ParametricNDSolveValue","ParametricPlot","ParametricPlot3D","ParametricRampLayer","ParametricRegion","ParentBox","ParentCell","ParentConnect","ParentDirectory","ParentForm","Parenthesize","ParentList","ParentNotebook","ParetoDistribution","ParetoPickandsDistribution","ParkData","Part","PartBehavior","PartialCorrelationFunction","PartialD","ParticleAcceleratorData","ParticleData","Partition","PartitionGranularity","PartitionsP","PartitionsQ","PartLayer","PartOfSpeech","PartProtection","ParzenWindow","PascalDistribution","PassEventsDown","PassEventsUp","Paste","PasteAutoQuoteCharacters","PasteBoxFormInlineCells","PasteButton","Path","PathGraph","PathGraphQ","Pattern","PatternFilling","PatternSequence","PatternTest","PauliMatrix","PaulWavelet","Pause","PausedTime","PDF","PeakDetect","PeanoCurve","PearsonChiSquareTest","PearsonCorrelationTest","PearsonDistribution","PercentForm","PerfectNumber","PerfectNumberQ","PerformanceGoal","Perimeter","PeriodicBoundaryCondition","PeriodicInterpolation","Periodogram","PeriodogramArray","Permanent","Permissions","PermissionsGroup","PermissionsGroupMemberQ","PermissionsGroups","PermissionsKey","PermissionsKeys","PermutationCycles","PermutationCyclesQ","PermutationGroup","PermutationLength","PermutationList","PermutationListQ","PermutationMax","PermutationMin","PermutationOrder","PermutationPower","PermutationProduct","PermutationReplace","Permutations","PermutationSupport","Permute","PeronaMalikFilter","Perpendicular","PerpendicularBisector","PersistenceLocation","PersistenceTime","PersistentObject","PersistentObjects","PersistentValue","PersonData","PERTDistribution","PetersenGraph","PhaseMargins","PhaseRange","PhysicalSystemData","Pi","Pick","PIDData","PIDDerivativeFilter","PIDFeedforward","PIDTune","Piecewise","PiecewiseExpand","PieChart","PieChart3D","PillaiTrace","PillaiTraceTest","PingTime","Pink","PitchRecognize","Pivoting","PixelConstrained","PixelValue","PixelValuePositions","Placed","Placeholder","PlaceholderReplace","Plain","PlanarAngle","PlanarGraph","PlanarGraphQ","PlanckRadiationLaw","PlaneCurveData","PlanetaryMoonData","PlanetData","PlantData","Play","PlayRange","Plot","Plot3D","Plot3Matrix","PlotDivision","PlotJoined","PlotLabel","PlotLabels","PlotLayout","PlotLegends","PlotMarkers","PlotPoints","PlotRange","PlotRangeClipping","PlotRangeClipPlanesStyle","PlotRangePadding","PlotRegion","PlotStyle","PlotTheme","Pluralize","Plus","PlusMinus","Pochhammer","PodStates","PodWidth","Point","Point3DBox","Point3DBoxOptions","PointBox","PointBoxOptions","PointFigureChart","PointLegend","PointSize","PoissonConsulDistribution","PoissonDistribution","PoissonProcess","PoissonWindow","PolarAxes","PolarAxesOrigin","PolarGridLines","PolarPlot","PolarTicks","PoleZeroMarkers","PolyaAeppliDistribution","PolyGamma","Polygon","Polygon3DBox","Polygon3DBoxOptions","PolygonalNumber","PolygonAngle","PolygonBox","PolygonBoxOptions","PolygonCoordinates","PolygonDecomposition","PolygonHoleScale","PolygonIntersections","PolygonScale","Polyhedron","PolyhedronAngle","PolyhedronCoordinates","PolyhedronData","PolyhedronDecomposition","PolyhedronGenus","PolyLog","PolynomialExtendedGCD","PolynomialForm","PolynomialGCD","PolynomialLCM","PolynomialMod","PolynomialQ","PolynomialQuotient","PolynomialQuotientRemainder","PolynomialReduce","PolynomialRemainder","Polynomials","PoolingLayer","PopupMenu","PopupMenuBox","PopupMenuBoxOptions","PopupView","PopupWindow","Position","PositionIndex","Positive","PositiveDefiniteMatrixQ","PositiveIntegers","PositiveRationals","PositiveReals","PositiveSemidefiniteMatrixQ","PossibleZeroQ","Postfix","PostScript","Power","PowerDistribution","PowerExpand","PowerMod","PowerModList","PowerRange","PowerSpectralDensity","PowersRepresentations","PowerSymmetricPolynomial","Precedence","PrecedenceForm","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","Precision","PrecisionGoal","PreDecrement","Predict","PredictionRoot","PredictorFunction","PredictorInformation","PredictorMeasurements","PredictorMeasurementsObject","PreemptProtect","PreferencesPath","Prefix","PreIncrement","Prepend","PrependLayer","PrependTo","PreprocessingRules","PreserveColor","PreserveImageOptions","Previous","PreviousCell","PreviousDate","PriceGraphDistribution","PrimaryPlaceholder","Prime","PrimeNu","PrimeOmega","PrimePi","PrimePowerQ","PrimeQ","Primes","PrimeZetaP","PrimitivePolynomialQ","PrimitiveRoot","PrimitiveRootList","PrincipalComponents","PrincipalValue","Print","PrintableASCIIQ","PrintAction","PrintForm","PrintingCopies","PrintingOptions","PrintingPageRange","PrintingStartingPageNumber","PrintingStyleEnvironment","Printout3D","Printout3DPreviewer","PrintPrecision","PrintTemporary","Prism","PrismBox","PrismBoxOptions","PrivateCellOptions","PrivateEvaluationOptions","PrivateFontOptions","PrivateFrontEndOptions","PrivateKey","PrivateNotebookOptions","PrivatePaths","Probability","ProbabilityDistribution","ProbabilityPlot","ProbabilityPr","ProbabilityScalePlot","ProbitModelFit","ProcessConnection","ProcessDirectory","ProcessEnvironment","Processes","ProcessEstimator","ProcessInformation","ProcessObject","ProcessParameterAssumptions","ProcessParameterQ","ProcessStateDomain","ProcessStatus","ProcessTimeDomain","Product","ProductDistribution","ProductLog","ProgressIndicator","ProgressIndicatorBox","ProgressIndicatorBoxOptions","Projection","Prolog","PromptForm","ProofObject","Properties","Property","PropertyList","PropertyValue","Proportion","Proportional","Protect","Protected","ProteinData","Pruning","PseudoInverse","PsychrometricPropertyData","PublicKey","PublisherID","PulsarData","PunctuationCharacter","Purple","Put","PutAppend","Pyramid","PyramidBox","PyramidBoxOptions","QBinomial","QFactorial","QGamma","QHypergeometricPFQ","QnDispersion","QPochhammer","QPolyGamma","QRDecomposition","QuadraticIrrationalQ","QuadraticOptimization","Quantile","QuantilePlot","Quantity","QuantityArray","QuantityDistribution","QuantityForm","QuantityMagnitude","QuantityQ","QuantityUnit","QuantityVariable","QuantityVariableCanonicalUnit","QuantityVariableDimensions","QuantityVariableIdentifier","QuantityVariablePhysicalQuantity","Quartics","QuartileDeviation","Quartiles","QuartileSkewness","Query","QueueingNetworkProcess","QueueingProcess","QueueProperties","Quiet","Quit","Quotient","QuotientRemainder","RadialGradientImage","RadialityCentrality","RadicalBox","RadicalBoxOptions","RadioButton","RadioButtonBar","RadioButtonBox","RadioButtonBoxOptions","Radon","RadonTransform","RamanujanTau","RamanujanTauL","RamanujanTauTheta","RamanujanTauZ","Ramp","Random","RandomChoice","RandomColor","RandomComplex","RandomEntity","RandomFunction","RandomGeoPosition","RandomGraph","RandomImage","RandomInstance","RandomInteger","RandomPermutation","RandomPoint","RandomPolygon","RandomPolyhedron","RandomPrime","RandomReal","RandomSample","RandomSeed","RandomSeeding","RandomVariate","RandomWalkProcess","RandomWord","Range","RangeFilter","RangeSpecification","RankedMax","RankedMin","RarerProbability","Raster","Raster3D","Raster3DBox","Raster3DBoxOptions","RasterArray","RasterBox","RasterBoxOptions","Rasterize","RasterSize","Rational","RationalFunctions","Rationalize","Rationals","Ratios","RawArray","RawBoxes","RawData","RawMedium","RayleighDistribution","Re","Read","ReadByteArray","ReadLine","ReadList","ReadProtected","ReadString","Real","RealAbs","RealBlockDiagonalForm","RealDigits","RealExponent","Reals","RealSign","Reap","RebuildPacletData","RecognitionPrior","RecognitionThreshold","Record","RecordLists","RecordSeparators","Rectangle","RectangleBox","RectangleBoxOptions","RectangleChart","RectangleChart3D","RectangularRepeatingElement","RecurrenceFilter","RecurrenceTable","RecurringDigitsForm","Red","Reduce","RefBox","ReferenceLineStyle","ReferenceMarkers","ReferenceMarkerStyle","Refine","ReflectionMatrix","ReflectionTransform","Refresh","RefreshRate","Region","RegionBinarize","RegionBoundary","RegionBoundaryStyle","RegionBounds","RegionCentroid","RegionDifference","RegionDimension","RegionDisjoint","RegionDistance","RegionDistanceFunction","RegionEmbeddingDimension","RegionEqual","RegionFillingStyle","RegionFunction","RegionImage","RegionIntersection","RegionMeasure","RegionMember","RegionMemberFunction","RegionMoment","RegionNearest","RegionNearestFunction","RegionPlot","RegionPlot3D","RegionProduct","RegionQ","RegionResize","RegionSize","RegionSymmetricDifference","RegionUnion","RegionWithin","RegisterExternalEvaluator","RegularExpression","Regularization","RegularlySampledQ","RegularPolygon","ReIm","ReImLabels","ReImPlot","ReImStyle","Reinstall","RelationalDatabase","RelationGraph","Release","ReleaseHold","ReliabilityDistribution","ReliefImage","ReliefPlot","RemoteAuthorizationCaching","RemoteConnect","RemoteConnectionObject","RemoteFile","RemoteRun","RemoteRunProcess","Remove","RemoveAlphaChannel","RemoveAsynchronousTask","RemoveAudioStream","RemoveBackground","RemoveChannelListener","RemoveChannelSubscribers","Removed","RemoveDiacritics","RemoveInputStreamMethod","RemoveOutputStreamMethod","RemoveProperty","RemoveScheduledTask","RemoveUsers","RemoveVideoStream","RenameDirectory","RenameFile","RenderAll","RenderingOptions","RenewalProcess","RenkoChart","RepairMesh","Repeated","RepeatedNull","RepeatedString","RepeatedTiming","RepeatingElement","Replace","ReplaceAll","ReplaceHeldPart","ReplaceImageValue","ReplaceList","ReplacePart","ReplacePixelValue","ReplaceRepeated","ReplicateLayer","RequiredPhysicalQuantities","Resampling","ResamplingAlgorithmData","ResamplingMethod","Rescale","RescalingTransform","ResetDirectory","ResetMenusPacket","ResetScheduledTask","ReshapeLayer","Residue","ResizeLayer","Resolve","ResourceAcquire","ResourceData","ResourceFunction","ResourceObject","ResourceRegister","ResourceRemove","ResourceSearch","ResourceSubmissionObject","ResourceSubmit","ResourceSystemBase","ResourceSystemPath","ResourceUpdate","ResourceVersion","ResponseForm","Rest","RestartInterval","Restricted","Resultant","ResumePacket","Return","ReturnEntersInput","ReturnExpressionPacket","ReturnInputFormPacket","ReturnPacket","ReturnReceiptFunction","ReturnTextPacket","Reverse","ReverseApplied","ReverseBiorthogonalSplineWavelet","ReverseElement","ReverseEquilibrium","ReverseGraph","ReverseSort","ReverseSortBy","ReverseUpEquilibrium","RevolutionAxis","RevolutionPlot3D","RGBColor","RiccatiSolve","RiceDistribution","RidgeFilter","RiemannR","RiemannSiegelTheta","RiemannSiegelZ","RiemannXi","Riffle","Right","RightArrow","RightArrowBar","RightArrowLeftArrow","RightComposition","RightCosetRepresentative","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightTee","RightTeeArrow","RightTeeVector","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","RiskAchievementImportance","RiskReductionImportance","RogersTanimotoDissimilarity","RollPitchYawAngles","RollPitchYawMatrix","RomanNumeral","Root","RootApproximant","RootIntervals","RootLocusPlot","RootMeanSquare","RootOfUnityQ","RootReduce","Roots","RootSum","Rotate","RotateLabel","RotateLeft","RotateRight","RotationAction","RotationBox","RotationBoxOptions","RotationMatrix","RotationTransform","Round","RoundImplies","RoundingRadius","Row","RowAlignments","RowBackgrounds","RowBox","RowHeights","RowLines","RowMinHeight","RowReduce","RowsEqual","RowSpacings","RSolve","RSolveValue","RudinShapiro","RudvalisGroupRu","Rule","RuleCondition","RuleDelayed","RuleForm","RulePlot","RulerUnits","Run","RunProcess","RunScheduledTask","RunThrough","RuntimeAttributes","RuntimeOptions","RussellRaoDissimilarity","SameQ","SameTest","SameTestProperties","SampledEntityClass","SampleDepth","SampledSoundFunction","SampledSoundList","SampleRate","SamplingPeriod","SARIMAProcess","SARMAProcess","SASTriangle","SatelliteData","SatisfiabilityCount","SatisfiabilityInstances","SatisfiableQ","Saturday","Save","Saveable","SaveAutoDelete","SaveConnection","SaveDefinitions","SavitzkyGolayMatrix","SawtoothWave","Scale","Scaled","ScaleDivisions","ScaledMousePosition","ScaleOrigin","ScalePadding","ScaleRanges","ScaleRangeStyle","ScalingFunctions","ScalingMatrix","ScalingTransform","Scan","ScheduledTask","ScheduledTaskActiveQ","ScheduledTaskInformation","ScheduledTaskInformationData","ScheduledTaskObject","ScheduledTasks","SchurDecomposition","ScientificForm","ScientificNotationThreshold","ScorerGi","ScorerGiPrime","ScorerHi","ScorerHiPrime","ScreenRectangle","ScreenStyleEnvironment","ScriptBaselineShifts","ScriptForm","ScriptLevel","ScriptMinSize","ScriptRules","ScriptSizeMultipliers","Scrollbars","ScrollingOptions","ScrollPosition","SearchAdjustment","SearchIndexObject","SearchIndices","SearchQueryString","SearchResultObject","Sec","Sech","SechDistribution","SecondOrderConeOptimization","SectionGrouping","SectorChart","SectorChart3D","SectorOrigin","SectorSpacing","SecuredAuthenticationKey","SecuredAuthenticationKeys","SeedRandom","Select","Selectable","SelectComponents","SelectedCells","SelectedNotebook","SelectFirst","Selection","SelectionAnimate","SelectionCell","SelectionCellCreateCell","SelectionCellDefaultStyle","SelectionCellParentStyle","SelectionCreateCell","SelectionDebuggerTag","SelectionDuplicateCell","SelectionEvaluate","SelectionEvaluateCreateCell","SelectionMove","SelectionPlaceholder","SelectionSetStyle","SelectWithContents","SelfLoops","SelfLoopStyle","SemanticImport","SemanticImportString","SemanticInterpretation","SemialgebraicComponentInstances","SemidefiniteOptimization","SendMail","SendMessage","Sequence","SequenceAlignment","SequenceAttentionLayer","SequenceCases","SequenceCount","SequenceFold","SequenceFoldList","SequenceForm","SequenceHold","SequenceLastLayer","SequenceMostLayer","SequencePosition","SequencePredict","SequencePredictorFunction","SequenceReplace","SequenceRestLayer","SequenceReverseLayer","SequenceSplit","Series","SeriesCoefficient","SeriesData","SeriesTermGoal","ServiceConnect","ServiceDisconnect","ServiceExecute","ServiceObject","ServiceRequest","ServiceResponse","ServiceSubmit","SessionSubmit","SessionTime","Set","SetAccuracy","SetAlphaChannel","SetAttributes","Setbacks","SetBoxFormNamesPacket","SetCloudDirectory","SetCookies","SetDelayed","SetDirectory","SetEnvironment","SetEvaluationNotebook","SetFileDate","SetFileLoadingContext","SetNotebookStatusLine","SetOptions","SetOptionsPacket","SetPermissions","SetPrecision","SetProperty","SetSecuredAuthenticationKey","SetSelectedNotebook","SetSharedFunction","SetSharedVariable","SetSpeechParametersPacket","SetStreamPosition","SetSystemModel","SetSystemOptions","Setter","SetterBar","SetterBox","SetterBoxOptions","Setting","SetUsers","SetValue","Shading","Shallow","ShannonWavelet","ShapiroWilkTest","Share","SharingList","Sharpen","ShearingMatrix","ShearingTransform","ShellRegion","ShenCastanMatrix","ShiftedGompertzDistribution","ShiftRegisterSequence","Short","ShortDownArrow","Shortest","ShortestMatch","ShortestPathFunction","ShortLeftArrow","ShortRightArrow","ShortTimeFourier","ShortTimeFourierData","ShortUpArrow","Show","ShowAutoConvert","ShowAutoSpellCheck","ShowAutoStyles","ShowCellBracket","ShowCellLabel","ShowCellTags","ShowClosedCellArea","ShowCodeAssist","ShowContents","ShowControls","ShowCursorTracker","ShowGroupOpenCloseIcon","ShowGroupOpener","ShowInvisibleCharacters","ShowPageBreaks","ShowPredictiveInterface","ShowSelection","ShowShortBoxForm","ShowSpecialCharacters","ShowStringCharacters","ShowSyntaxStyles","ShrinkingDelay","ShrinkWrapBoundingBox","SiderealTime","SiegelTheta","SiegelTukeyTest","SierpinskiCurve","SierpinskiMesh","Sign","Signature","SignedRankTest","SignedRegionDistance","SignificanceLevel","SignPadding","SignTest","SimilarityRules","SimpleGraph","SimpleGraphQ","SimplePolygonQ","SimplePolyhedronQ","Simplex","Simplify","Sin","Sinc","SinghMaddalaDistribution","SingleEvaluation","SingleLetterItalics","SingleLetterStyle","SingularValueDecomposition","SingularValueList","SingularValuePlot","SingularValues","Sinh","SinhIntegral","SinIntegral","SixJSymbol","Skeleton","SkeletonTransform","SkellamDistribution","Skewness","SkewNormalDistribution","SkinStyle","Skip","SliceContourPlot3D","SliceDensityPlot3D","SliceDistribution","SliceVectorPlot3D","Slider","Slider2D","Slider2DBox","Slider2DBoxOptions","SliderBox","SliderBoxOptions","SlideView","Slot","SlotSequence","Small","SmallCircle","Smaller","SmithDecomposition","SmithDelayCompensator","SmithWatermanSimilarity","SmoothDensityHistogram","SmoothHistogram","SmoothHistogram3D","SmoothKernelDistribution","SnDispersion","Snippet","SnubPolyhedron","SocialMediaData","Socket","SocketConnect","SocketListen","SocketListener","SocketObject","SocketOpen","SocketReadMessage","SocketReadyQ","Sockets","SocketWaitAll","SocketWaitNext","SoftmaxLayer","SokalSneathDissimilarity","SolarEclipse","SolarSystemFeatureData","SolidAngle","SolidData","SolidRegionQ","Solve","SolveAlways","SolveDelayed","Sort","SortBy","SortedBy","SortedEntityClass","Sound","SoundAndGraphics","SoundNote","SoundVolume","SourceLink","Sow","Space","SpaceCurveData","SpaceForm","Spacer","Spacings","Span","SpanAdjustments","SpanCharacterRounding","SpanFromAbove","SpanFromBoth","SpanFromLeft","SpanLineThickness","SpanMaxSize","SpanMinSize","SpanningCharacters","SpanSymmetric","SparseArray","SpatialGraphDistribution","SpatialMedian","SpatialTransformationLayer","Speak","SpeakerMatchQ","SpeakTextPacket","SpearmanRankTest","SpearmanRho","SpeciesData","SpecificityGoal","SpectralLineData","Spectrogram","SpectrogramArray","Specularity","SpeechCases","SpeechInterpreter","SpeechRecognize","SpeechSynthesize","SpellingCorrection","SpellingCorrectionList","SpellingDictionaries","SpellingDictionariesPath","SpellingOptions","SpellingSuggestionsPacket","Sphere","SphereBox","SpherePoints","SphericalBesselJ","SphericalBesselY","SphericalHankelH1","SphericalHankelH2","SphericalHarmonicY","SphericalPlot3D","SphericalRegion","SphericalShell","SpheroidalEigenvalue","SpheroidalJoiningFactor","SpheroidalPS","SpheroidalPSPrime","SpheroidalQS","SpheroidalQSPrime","SpheroidalRadialFactor","SpheroidalS1","SpheroidalS1Prime","SpheroidalS2","SpheroidalS2Prime","Splice","SplicedDistribution","SplineClosed","SplineDegree","SplineKnots","SplineWeights","Split","SplitBy","SpokenString","Sqrt","SqrtBox","SqrtBoxOptions","Square","SquaredEuclideanDistance","SquareFreeQ","SquareIntersection","SquareMatrixQ","SquareRepeatingElement","SquaresR","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","SquareWave","SSSTriangle","StabilityMargins","StabilityMarginsStyle","StableDistribution","Stack","StackBegin","StackComplete","StackedDateListPlot","StackedListPlot","StackInhibit","StadiumShape","StandardAtmosphereData","StandardDeviation","StandardDeviationFilter","StandardForm","Standardize","Standardized","StandardOceanData","StandbyDistribution","Star","StarClusterData","StarData","StarGraph","StartAsynchronousTask","StartExternalSession","StartingStepSize","StartOfLine","StartOfString","StartProcess","StartScheduledTask","StartupSound","StartWebSession","StateDimensions","StateFeedbackGains","StateOutputEstimator","StateResponse","StateSpaceModel","StateSpaceRealization","StateSpaceTransform","StateTransformationLinearize","StationaryDistribution","StationaryWaveletPacketTransform","StationaryWaveletTransform","StatusArea","StatusCentrality","StepMonitor","StereochemistryElements","StieltjesGamma","StippleShading","StirlingS1","StirlingS2","StopAsynchronousTask","StoppingPowerData","StopScheduledTask","StrataVariables","StratonovichProcess","StreamColorFunction","StreamColorFunctionScaling","StreamDensityPlot","StreamMarkers","StreamPlot","StreamPoints","StreamPosition","Streams","StreamScale","StreamStyle","String","StringBreak","StringByteCount","StringCases","StringContainsQ","StringCount","StringDelete","StringDrop","StringEndsQ","StringExpression","StringExtract","StringForm","StringFormat","StringFreeQ","StringInsert","StringJoin","StringLength","StringMatchQ","StringPadLeft","StringPadRight","StringPart","StringPartition","StringPosition","StringQ","StringRepeat","StringReplace","StringReplaceList","StringReplacePart","StringReverse","StringRiffle","StringRotateLeft","StringRotateRight","StringSkeleton","StringSplit","StringStartsQ","StringTake","StringTemplate","StringToByteArray","StringToStream","StringTrim","StripBoxes","StripOnInput","StripWrapperBoxes","StrokeForm","StructuralImportance","StructuredArray","StructuredArrayHeadQ","StructuredSelection","StruveH","StruveL","Stub","StudentTDistribution","Style","StyleBox","StyleBoxAutoDelete","StyleData","StyleDefinitions","StyleForm","StyleHints","StyleKeyMapping","StyleMenuListing","StyleNameDialogSettings","StyleNames","StylePrint","StyleSheetPath","Subdivide","Subfactorial","Subgraph","SubMinus","SubPlus","SubresultantPolynomialRemainders","SubresultantPolynomials","Subresultants","Subscript","SubscriptBox","SubscriptBoxOptions","Subscripted","Subsequences","Subset","SubsetCases","SubsetCount","SubsetEqual","SubsetMap","SubsetPosition","SubsetQ","SubsetReplace","Subsets","SubStar","SubstitutionSystem","Subsuperscript","SubsuperscriptBox","SubsuperscriptBoxOptions","SubtitleEncoding","SubtitleTracks","Subtract","SubtractFrom","SubtractSides","SubValues","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","Success","SuchThat","Sum","SumConvergence","SummationLayer","Sunday","SunPosition","Sunrise","Sunset","SuperDagger","SuperMinus","SupernovaData","SuperPlus","Superscript","SuperscriptBox","SuperscriptBoxOptions","Superset","SupersetEqual","SuperStar","Surd","SurdForm","SurfaceAppearance","SurfaceArea","SurfaceColor","SurfaceData","SurfaceGraphics","SurvivalDistribution","SurvivalFunction","SurvivalModel","SurvivalModelFit","SuspendPacket","SuzukiDistribution","SuzukiGroupSuz","SwatchLegend","Switch","Symbol","SymbolName","SymletWavelet","Symmetric","SymmetricGroup","SymmetricKey","SymmetricMatrixQ","SymmetricPolynomial","SymmetricReduction","Symmetrize","SymmetrizedArray","SymmetrizedArrayRules","SymmetrizedDependentComponents","SymmetrizedIndependentComponents","SymmetrizedReplacePart","SynchronousInitialization","SynchronousUpdating","Synonyms","Syntax","SyntaxForm","SyntaxInformation","SyntaxLength","SyntaxPacket","SyntaxQ","SynthesizeMissingValues","SystemCredential","SystemCredentialData","SystemCredentialKey","SystemCredentialKeys","SystemCredentialStoreObject","SystemDialogInput","SystemException","SystemGet","SystemHelpPath","SystemInformation","SystemInformationData","SystemInstall","SystemModel","SystemModeler","SystemModelExamples","SystemModelLinearize","SystemModelParametricSimulate","SystemModelPlot","SystemModelProgressReporting","SystemModelReliability","SystemModels","SystemModelSimulate","SystemModelSimulateSensitivity","SystemModelSimulationData","SystemOpen","SystemOptions","SystemProcessData","SystemProcesses","SystemsConnectionsModel","SystemsModelDelay","SystemsModelDelayApproximate","SystemsModelDelete","SystemsModelDimensions","SystemsModelExtract","SystemsModelFeedbackConnect","SystemsModelLabels","SystemsModelLinearity","SystemsModelMerge","SystemsModelOrder","SystemsModelParallelConnect","SystemsModelSeriesConnect","SystemsModelStateFeedbackConnect","SystemsModelVectorRelativeOrders","SystemStub","SystemTest","Tab","TabFilling","Table","TableAlignments","TableDepth","TableDirections","TableForm","TableHeadings","TableSpacing","TableView","TableViewBox","TableViewBoxBackground","TableViewBoxItemSize","TableViewBoxOptions","TabSpacings","TabView","TabViewBox","TabViewBoxOptions","TagBox","TagBoxNote","TagBoxOptions","TaggingRules","TagSet","TagSetDelayed","TagStyle","TagUnset","Take","TakeDrop","TakeLargest","TakeLargestBy","TakeList","TakeSmallest","TakeSmallestBy","TakeWhile","Tally","Tan","Tanh","TargetDevice","TargetFunctions","TargetSystem","TargetUnits","TaskAbort","TaskExecute","TaskObject","TaskRemove","TaskResume","Tasks","TaskSuspend","TaskWait","TautologyQ","TelegraphProcess","TemplateApply","TemplateArgBox","TemplateBox","TemplateBoxOptions","TemplateEvaluate","TemplateExpression","TemplateIf","TemplateObject","TemplateSequence","TemplateSlot","TemplateSlotSequence","TemplateUnevaluated","TemplateVerbatim","TemplateWith","TemporalData","TemporalRegularity","Temporary","TemporaryVariable","TensorContract","TensorDimensions","TensorExpand","TensorProduct","TensorQ","TensorRank","TensorReduce","TensorSymmetry","TensorTranspose","TensorWedge","TestID","TestReport","TestReportObject","TestResultObject","Tetrahedron","TetrahedronBox","TetrahedronBoxOptions","TeXForm","TeXSave","Text","Text3DBox","Text3DBoxOptions","TextAlignment","TextBand","TextBoundingBox","TextBox","TextCases","TextCell","TextClipboardType","TextContents","TextData","TextElement","TextForm","TextGrid","TextJustification","TextLine","TextPacket","TextParagraph","TextPosition","TextRecognize","TextSearch","TextSearchReport","TextSentences","TextString","TextStructure","TextStyle","TextTranslation","Texture","TextureCoordinateFunction","TextureCoordinateScaling","TextWords","Therefore","ThermodynamicData","ThermometerGauge","Thick","Thickness","Thin","Thinning","ThisLink","ThompsonGroupTh","Thread","ThreadingLayer","ThreeJSymbol","Threshold","Through","Throw","ThueMorse","Thumbnail","Thursday","Ticks","TicksStyle","TideData","Tilde","TildeEqual","TildeFullEqual","TildeTilde","TimeConstrained","TimeConstraint","TimeDirection","TimeFormat","TimeGoal","TimelinePlot","TimeObject","TimeObjectQ","TimeRemaining","Times","TimesBy","TimeSeries","TimeSeriesAggregate","TimeSeriesForecast","TimeSeriesInsert","TimeSeriesInvertibility","TimeSeriesMap","TimeSeriesMapThread","TimeSeriesModel","TimeSeriesModelFit","TimeSeriesResample","TimeSeriesRescale","TimeSeriesShift","TimeSeriesThread","TimeSeriesWindow","TimeUsed","TimeValue","TimeWarpingCorrespondence","TimeWarpingDistance","TimeZone","TimeZoneConvert","TimeZoneOffset","Timing","Tiny","TitleGrouping","TitsGroupT","ToBoxes","ToCharacterCode","ToColor","ToContinuousTimeModel","ToDate","Today","ToDiscreteTimeModel","ToEntity","ToeplitzMatrix","ToExpression","ToFileName","Together","Toggle","ToggleFalse","Toggler","TogglerBar","TogglerBox","TogglerBoxOptions","ToHeldExpression","ToInvertibleTimeSeries","TokenWords","Tolerance","ToLowerCase","Tomorrow","ToNumberField","TooBig","Tooltip","TooltipBox","TooltipBoxOptions","TooltipDelay","TooltipStyle","ToonShading","Top","TopHatTransform","ToPolarCoordinates","TopologicalSort","ToRadicals","ToRules","ToSphericalCoordinates","ToString","Total","TotalHeight","TotalLayer","TotalVariationFilter","TotalWidth","TouchPosition","TouchscreenAutoZoom","TouchscreenControlPlacement","ToUpperCase","Tr","Trace","TraceAbove","TraceAction","TraceBackward","TraceDepth","TraceDialog","TraceForward","TraceInternal","TraceLevel","TraceOff","TraceOn","TraceOriginal","TracePrint","TraceScan","TrackedSymbols","TrackingFunction","TracyWidomDistribution","TradingChart","TraditionalForm","TraditionalFunctionNotation","TraditionalNotation","TraditionalOrder","TrainingProgressCheckpointing","TrainingProgressFunction","TrainingProgressMeasurements","TrainingProgressReporting","TrainingStoppingCriterion","TrainingUpdateSchedule","TransferFunctionCancel","TransferFunctionExpand","TransferFunctionFactor","TransferFunctionModel","TransferFunctionPoles","TransferFunctionTransform","TransferFunctionZeros","TransformationClass","TransformationFunction","TransformationFunctions","TransformationMatrix","TransformedDistribution","TransformedField","TransformedProcess","TransformedRegion","TransitionDirection","TransitionDuration","TransitionEffect","TransitiveClosureGraph","TransitiveReductionGraph","Translate","TranslationOptions","TranslationTransform","Transliterate","Transparent","TransparentColor","Transpose","TransposeLayer","TrapSelection","TravelDirections","TravelDirectionsData","TravelDistance","TravelDistanceList","TravelMethod","TravelTime","TreeForm","TreeGraph","TreeGraphQ","TreePlot","TrendStyle","Triangle","TriangleCenter","TriangleConstruct","TriangleMeasurement","TriangleWave","TriangularDistribution","TriangulateMesh","Trig","TrigExpand","TrigFactor","TrigFactorList","Trigger","TrigReduce","TrigToExp","TrimmedMean","TrimmedVariance","TropicalStormData","True","TrueQ","TruncatedDistribution","TruncatedPolyhedron","TsallisQExponentialDistribution","TsallisQGaussianDistribution","TTest","Tube","TubeBezierCurveBox","TubeBezierCurveBoxOptions","TubeBox","TubeBoxOptions","TubeBSplineCurveBox","TubeBSplineCurveBoxOptions","Tuesday","TukeyLambdaDistribution","TukeyWindow","TunnelData","Tuples","TuranGraph","TuringMachine","TuttePolynomial","TwoWayRule","Typed","TypeSpecifier","UnateQ","Uncompress","UnconstrainedParameters","Undefined","UnderBar","Underflow","Underlined","Underoverscript","UnderoverscriptBox","UnderoverscriptBoxOptions","Underscript","UnderscriptBox","UnderscriptBoxOptions","UnderseaFeatureData","UndirectedEdge","UndirectedGraph","UndirectedGraphQ","UndoOptions","UndoTrackedVariables","Unequal","UnequalTo","Unevaluated","UniformDistribution","UniformGraphDistribution","UniformPolyhedron","UniformSumDistribution","Uninstall","Union","UnionedEntityClass","UnionPlus","Unique","UnitaryMatrixQ","UnitBox","UnitConvert","UnitDimensions","Unitize","UnitRootTest","UnitSimplify","UnitStep","UnitSystem","UnitTriangle","UnitVector","UnitVectorLayer","UnityDimensions","UniverseModelData","UniversityData","UnixTime","Unprotect","UnregisterExternalEvaluator","UnsameQ","UnsavedVariables","Unset","UnsetShared","UntrackedVariables","Up","UpArrow","UpArrowBar","UpArrowDownArrow","Update","UpdateDynamicObjects","UpdateDynamicObjectsSynchronous","UpdateInterval","UpdatePacletSites","UpdateSearchIndex","UpDownArrow","UpEquilibrium","UpperCaseQ","UpperLeftArrow","UpperRightArrow","UpperTriangularize","UpperTriangularMatrixQ","Upsample","UpSet","UpSetDelayed","UpTee","UpTeeArrow","UpTo","UpValues","URL","URLBuild","URLDecode","URLDispatcher","URLDownload","URLDownloadSubmit","URLEncode","URLExecute","URLExpand","URLFetch","URLFetchAsynchronous","URLParse","URLQueryDecode","URLQueryEncode","URLRead","URLResponseTime","URLSave","URLSaveAsynchronous","URLShorten","URLSubmit","UseGraphicsRange","UserDefinedWavelet","Using","UsingFrontEnd","UtilityFunction","V2Get","ValenceErrorHandling","ValidationLength","ValidationSet","Value","ValueBox","ValueBoxOptions","ValueDimensions","ValueForm","ValuePreprocessingFunction","ValueQ","Values","ValuesData","Variables","Variance","VarianceEquivalenceTest","VarianceEstimatorFunction","VarianceGammaDistribution","VarianceTest","VectorAngle","VectorAround","VectorAspectRatio","VectorColorFunction","VectorColorFunctionScaling","VectorDensityPlot","VectorGlyphData","VectorGreater","VectorGreaterEqual","VectorLess","VectorLessEqual","VectorMarkers","VectorPlot","VectorPlot3D","VectorPoints","VectorQ","VectorRange","Vectors","VectorScale","VectorScaling","VectorSizes","VectorStyle","Vee","Verbatim","Verbose","VerboseConvertToPostScriptPacket","VerificationTest","VerifyConvergence","VerifyDerivedKey","VerifyDigitalSignature","VerifyFileSignature","VerifyInterpretation","VerifySecurityCertificates","VerifySolutions","VerifyTestAssumptions","Version","VersionedPreferences","VersionNumber","VertexAdd","VertexCapacity","VertexColors","VertexComponent","VertexConnectivity","VertexContract","VertexCoordinateRules","VertexCoordinates","VertexCorrelationSimilarity","VertexCosineSimilarity","VertexCount","VertexCoverQ","VertexDataCoordinates","VertexDegree","VertexDelete","VertexDiceSimilarity","VertexEccentricity","VertexInComponent","VertexInDegree","VertexIndex","VertexJaccardSimilarity","VertexLabeling","VertexLabels","VertexLabelStyle","VertexList","VertexNormals","VertexOutComponent","VertexOutDegree","VertexQ","VertexRenderingFunction","VertexReplace","VertexShape","VertexShapeFunction","VertexSize","VertexStyle","VertexTextureCoordinates","VertexWeight","VertexWeightedGraphQ","Vertical","VerticalBar","VerticalForm","VerticalGauge","VerticalSeparator","VerticalSlider","VerticalTilde","Video","VideoEncoding","VideoExtractFrames","VideoFrameList","VideoFrameMap","VideoPause","VideoPlay","VideoQ","VideoStop","VideoStream","VideoStreams","VideoTimeSeries","VideoTracks","VideoTrim","ViewAngle","ViewCenter","ViewMatrix","ViewPoint","ViewPointSelectorSettings","ViewPort","ViewProjection","ViewRange","ViewVector","ViewVertical","VirtualGroupData","Visible","VisibleCell","VoiceStyleData","VoigtDistribution","VolcanoData","Volume","VonMisesDistribution","VoronoiMesh","WaitAll","WaitAsynchronousTask","WaitNext","WaitUntil","WakebyDistribution","WalleniusHypergeometricDistribution","WaringYuleDistribution","WarpingCorrespondence","WarpingDistance","WatershedComponents","WatsonUSquareTest","WattsStrogatzGraphDistribution","WaveletBestBasis","WaveletFilterCoefficients","WaveletImagePlot","WaveletListPlot","WaveletMapIndexed","WaveletMatrixPlot","WaveletPhi","WaveletPsi","WaveletScale","WaveletScalogram","WaveletThreshold","WeaklyConnectedComponents","WeaklyConnectedGraphComponents","WeaklyConnectedGraphQ","WeakStationarity","WeatherData","WeatherForecastData","WebAudioSearch","WebElementObject","WeberE","WebExecute","WebImage","WebImageSearch","WebSearch","WebSessionObject","WebSessions","WebWindowObject","Wedge","Wednesday","WeibullDistribution","WeierstrassE1","WeierstrassE2","WeierstrassE3","WeierstrassEta1","WeierstrassEta2","WeierstrassEta3","WeierstrassHalfPeriods","WeierstrassHalfPeriodW1","WeierstrassHalfPeriodW2","WeierstrassHalfPeriodW3","WeierstrassInvariantG2","WeierstrassInvariantG3","WeierstrassInvariants","WeierstrassP","WeierstrassPPrime","WeierstrassSigma","WeierstrassZeta","WeightedAdjacencyGraph","WeightedAdjacencyMatrix","WeightedData","WeightedGraphQ","Weights","WelchWindow","WheelGraph","WhenEvent","Which","While","White","WhiteNoiseProcess","WhitePoint","Whitespace","WhitespaceCharacter","WhittakerM","WhittakerW","WienerFilter","WienerProcess","WignerD","WignerSemicircleDistribution","WikidataData","WikidataSearch","WikipediaData","WikipediaSearch","WilksW","WilksWTest","WindDirectionData","WindingCount","WindingPolygon","WindowClickSelect","WindowElements","WindowFloating","WindowFrame","WindowFrameElements","WindowMargins","WindowMovable","WindowOpacity","WindowPersistentStyles","WindowSelected","WindowSize","WindowStatusArea","WindowTitle","WindowToolbars","WindowWidth","WindSpeedData","WindVectorData","WinsorizedMean","WinsorizedVariance","WishartMatrixDistribution","With","WolframAlpha","WolframAlphaDate","WolframAlphaQuantity","WolframAlphaResult","WolframLanguageData","Word","WordBoundary","WordCharacter","WordCloud","WordCount","WordCounts","WordData","WordDefinition","WordFrequency","WordFrequencyData","WordList","WordOrientation","WordSearch","WordSelectionFunction","WordSeparators","WordSpacings","WordStem","WordTranslation","WorkingPrecision","WrapAround","Write","WriteLine","WriteString","Wronskian","XMLElement","XMLObject","XMLTemplate","Xnor","Xor","XYZColor","Yellow","Yesterday","YuleDissimilarity","ZernikeR","ZeroSymmetric","ZeroTest","ZeroWidthTimes","Zeta","ZetaZero","ZIPCodeData","ZipfDistribution","ZoomCenter","ZoomFactor","ZTest","ZTransform","$Aborted","$ActivationGroupID","$ActivationKey","$ActivationUserRegistered","$AddOnsDirectory","$AllowDataUpdates","$AllowExternalChannelFunctions","$AllowInternet","$AssertFunction","$Assumptions","$AsynchronousTask","$AudioDecoders","$AudioEncoders","$AudioInputDevices","$AudioOutputDevices","$BaseDirectory","$BasePacletsDirectory","$BatchInput","$BatchOutput","$BlockchainBase","$BoxForms","$ByteOrdering","$CacheBaseDirectory","$Canceled","$ChannelBase","$CharacterEncoding","$CharacterEncodings","$CloudAccountName","$CloudBase","$CloudConnected","$CloudConnection","$CloudCreditsAvailable","$CloudEvaluation","$CloudExpressionBase","$CloudObjectNameFormat","$CloudObjectURLType","$CloudRootDirectory","$CloudSymbolBase","$CloudUserID","$CloudUserUUID","$CloudVersion","$CloudVersionNumber","$CloudWolframEngineVersionNumber","$CommandLine","$CompilationTarget","$ConditionHold","$ConfiguredKernels","$Context","$ContextPath","$ControlActiveSetting","$Cookies","$CookieStore","$CreationDate","$CurrentLink","$CurrentTask","$CurrentWebSession","$DataStructures","$DateStringFormat","$DefaultAudioInputDevice","$DefaultAudioOutputDevice","$DefaultFont","$DefaultFrontEnd","$DefaultImagingDevice","$DefaultLocalBase","$DefaultMailbox","$DefaultNetworkInterface","$DefaultPath","$DefaultProxyRules","$DefaultSystemCredentialStore","$Display","$DisplayFunction","$DistributedContexts","$DynamicEvaluation","$Echo","$EmbedCodeEnvironments","$EmbeddableServices","$EntityStores","$Epilog","$EvaluationCloudBase","$EvaluationCloudObject","$EvaluationEnvironment","$ExportFormats","$ExternalIdentifierTypes","$ExternalStorageBase","$Failed","$FinancialDataSource","$FontFamilies","$FormatType","$FrontEnd","$FrontEndSession","$GeoEntityTypes","$GeoLocation","$GeoLocationCity","$GeoLocationCountry","$GeoLocationPrecision","$GeoLocationSource","$HistoryLength","$HomeDirectory","$HTMLExportRules","$HTTPCookies","$HTTPRequest","$IgnoreEOF","$ImageFormattingWidth","$ImageResolution","$ImagingDevice","$ImagingDevices","$ImportFormats","$IncomingMailSettings","$InitialDirectory","$Initialization","$InitializationContexts","$Input","$InputFileName","$InputStreamMethods","$Inspector","$InstallationDate","$InstallationDirectory","$InterfaceEnvironment","$InterpreterTypes","$IterationLimit","$KernelCount","$KernelID","$Language","$LaunchDirectory","$LibraryPath","$LicenseExpirationDate","$LicenseID","$LicenseProcesses","$LicenseServer","$LicenseSubprocesses","$LicenseType","$Line","$Linked","$LinkSupported","$LoadedFiles","$LocalBase","$LocalSymbolBase","$MachineAddresses","$MachineDomain","$MachineDomains","$MachineEpsilon","$MachineID","$MachineName","$MachinePrecision","$MachineType","$MaxExtraPrecision","$MaxLicenseProcesses","$MaxLicenseSubprocesses","$MaxMachineNumber","$MaxNumber","$MaxPiecewiseCases","$MaxPrecision","$MaxRootDegree","$MessageGroups","$MessageList","$MessagePrePrint","$Messages","$MinMachineNumber","$MinNumber","$MinorReleaseNumber","$MinPrecision","$MobilePhone","$ModuleNumber","$NetworkConnected","$NetworkInterfaces","$NetworkLicense","$NewMessage","$NewSymbol","$NotebookInlineStorageLimit","$Notebooks","$NoValue","$NumberMarks","$Off","$OperatingSystem","$Output","$OutputForms","$OutputSizeLimit","$OutputStreamMethods","$Packages","$ParentLink","$ParentProcessID","$PasswordFile","$PatchLevelID","$Path","$PathnameSeparator","$PerformanceGoal","$Permissions","$PermissionsGroupBase","$PersistenceBase","$PersistencePath","$PipeSupported","$PlotTheme","$Post","$Pre","$PreferencesDirectory","$PreInitialization","$PrePrint","$PreRead","$PrintForms","$PrintLiteral","$Printout3DPreviewer","$ProcessID","$ProcessorCount","$ProcessorType","$ProductInformation","$ProgramName","$PublisherID","$RandomState","$RecursionLimit","$RegisteredDeviceClasses","$RegisteredUserName","$ReleaseNumber","$RequesterAddress","$RequesterWolframID","$RequesterWolframUUID","$RootDirectory","$ScheduledTask","$ScriptCommandLine","$ScriptInputString","$SecuredAuthenticationKeyTokens","$ServiceCreditsAvailable","$Services","$SessionID","$SetParentLink","$SharedFunctions","$SharedVariables","$SoundDisplay","$SoundDisplayFunction","$SourceLink","$SSHAuthentication","$SubtitleDecoders","$SubtitleEncoders","$SummaryBoxDataSizeLimit","$SuppressInputFormHeads","$SynchronousEvaluation","$SyntaxHandler","$System","$SystemCharacterEncoding","$SystemCredentialStore","$SystemID","$SystemMemory","$SystemShell","$SystemTimeZone","$SystemWordLength","$TemplatePath","$TemporaryDirectory","$TemporaryPrefix","$TestFileName","$TextStyle","$TimedOut","$TimeUnit","$TimeZone","$TimeZoneEntity","$TopDirectory","$TraceOff","$TraceOn","$TracePattern","$TracePostAction","$TracePreAction","$UnitSystem","$Urgent","$UserAddOnsDirectory","$UserAgentLanguages","$UserAgentMachine","$UserAgentName","$UserAgentOperatingSystem","$UserAgentString","$UserAgentVersion","$UserBaseDirectory","$UserBasePacletsDirectory","$UserDocumentsDirectory","$Username","$UserName","$UserURLBase","$Version","$VersionNumber","$VideoDecoders","$VideoEncoders","$VoiceStyles","$WolframDocumentsDirectory","$WolframID","$WolframUUID"] +;return t=>{ +const i=t.regex,o=i.either(i.concat(/([2-9]|[1-2]\d|[3][0-5])\^\^/,/(\w*\.\w+|\w+\.\w*|\w+)/),/(\d*\.\d+|\d+\.\d*|\d+)/),a=i.either(/``[+-]?(\d*\.\d+|\d+\.\d*|\d+)/,/`([+-]?(\d*\.\d+|\d+\.\d*|\d+))?/),n={ +className:"number",relevance:0, +begin:i.concat(o,i.optional(a),i.optional(/\*\^[+-]?\d+/)) +},r=/[a-zA-Z$][a-zA-Z0-9$]*/,l=new Set(e),s={variants:[{ +className:"builtin-symbol",begin:r,"on:begin":(e,t)=>{ +l.has(e[0])||t.ignoreMatch()}},{className:"symbol",relevance:0,begin:r}]},c={ +className:"message-name",relevance:0,begin:i.concat("::",r)};return{ +name:"Mathematica",aliases:["mma","wl"],classNameAliases:{brace:"punctuation", +pattern:"type",slot:"type",symbol:"variable","named-character":"variable", +"builtin-symbol":"built_in","message-name":"string"}, +contains:[t.COMMENT(/\(\*/,/\*\)/,{contains:["self"]}),{className:"pattern", +relevance:0,begin:/([a-zA-Z$][a-zA-Z0-9$]*)?_+([a-zA-Z$][a-zA-Z0-9$]*)?/},{ +className:"slot",relevance:0,begin:/#[a-zA-Z$][a-zA-Z0-9$]*|#+[0-9]?/},c,s,{ +className:"named-character",begin:/\\\[[$a-zA-Z][$a-zA-Z0-9]+\]/ +},t.QUOTE_STRING_MODE,n,{className:"operator",relevance:0, +begin:/[+\-*/,;.:@~=><&|_`'^?!%]+/},{className:"brace",relevance:0, +begin:/[[\](){}]/}]}}})();hljs.registerLanguage("mathematica",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/matlab.min.js b/src/app/resources/assets/highlight/languages/matlab.min.js new file mode 100644 index 0000000..2574c12 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/matlab.min.js @@ -0,0 +1,15 @@ +/*! `matlab` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a={relevance:0,contains:[{ +begin:"('|\\.')+"}]};return{name:"Matlab",keywords:{ +keyword:"arguments break case catch classdef continue else elseif end enumeration events for function global if methods otherwise parfor persistent properties return spmd switch try while", +built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i|0 inf nan isnan isinf isfinite j|0 why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun legend intersect ismember procrustes hold num2cell " +},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function", +beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{ +className:"params",variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}]}] +},{className:"built_in",begin:/true|false/,relevance:0,starts:a},{ +begin:"[a-zA-Z][a-zA-Z_0-9]*('|\\.')+",relevance:0},{className:"number", +begin:e.C_NUMBER_RE,relevance:0,starts:a},{className:"string",begin:"'",end:"'", +contains:[{begin:"''"}]},{begin:/\]|\}|\)/,relevance:0,starts:a},{ +className:"string",begin:'"',end:'"',contains:[{begin:'""'}],starts:a +},e.COMMENT("^\\s*%\\{\\s*$","^\\s*%\\}\\s*$"),e.COMMENT("%","$")]}}})() +;hljs.registerLanguage("matlab",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/maxima.min.js b/src/app/resources/assets/highlight/languages/maxima.min.js new file mode 100644 index 0000000..2340d1a --- /dev/null +++ b/src/app/resources/assets/highlight/languages/maxima.min.js @@ -0,0 +1,12 @@ +/*! `maxima` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Maxima",keywords:{ +$pattern:"[A-Za-z_%][0-9A-Za-z_%]*", +keyword:"if then else elseif for thru do while unless step in and or not", +literal:"true false unknown inf minf ind und %e %i %pi %phi %gamma", +built_in:" abasep abs absint absolute_real_time acos acosh acot acoth acsc acsch activate addcol add_edge add_edges addmatrices addrow add_vertex add_vertices adjacency_matrix adjoin adjoint af agd airy airy_ai airy_bi airy_dai airy_dbi algsys alg_type alias allroots alphacharp alphanumericp amortization %and annuity_fv annuity_pv antid antidiff AntiDifference append appendfile apply apply1 apply2 applyb1 apropos args arit_amortization arithmetic arithsum array arrayapply arrayinfo arraymake arraysetapply ascii asec asech asin asinh askinteger asksign assoc assoc_legendre_p assoc_legendre_q assume assume_external_byte_order asympa at atan atan2 atanh atensimp atom atvalue augcoefmatrix augmented_lagrangian_method av average_degree backtrace bars barsplot barsplot_description base64 base64_decode bashindices batch batchload bc2 bdvac belln benefit_cost bern bernpoly bernstein_approx bernstein_expand bernstein_poly bessel bessel_i bessel_j bessel_k bessel_simplify bessel_y beta beta_incomplete beta_incomplete_generalized beta_incomplete_regularized bezout bfallroots bffac bf_find_root bf_fmin_cobyla bfhzeta bfloat bfloatp bfpsi bfpsi0 bfzeta biconnected_components bimetric binomial bipartition block blockmatrixp bode_gain bode_phase bothcoef box boxplot boxplot_description break bug_report build_info|10 buildq build_sample burn cabs canform canten cardinality carg cartan cartesian_product catch cauchy_matrix cbffac cdf_bernoulli cdf_beta cdf_binomial cdf_cauchy cdf_chi2 cdf_continuous_uniform cdf_discrete_uniform cdf_exp cdf_f cdf_gamma cdf_general_finite_discrete cdf_geometric cdf_gumbel cdf_hypergeometric cdf_laplace cdf_logistic cdf_lognormal cdf_negative_binomial cdf_noncentral_chi2 cdf_noncentral_student_t cdf_normal cdf_pareto cdf_poisson cdf_rank_sum cdf_rayleigh cdf_signed_rank cdf_student_t cdf_weibull cdisplay ceiling central_moment cequal cequalignore cf cfdisrep cfexpand cgeodesic cgreaterp cgreaterpignore changename changevar chaosgame charat charfun charfun2 charlist charp charpoly chdir chebyshev_t chebyshev_u checkdiv check_overlaps chinese cholesky christof chromatic_index chromatic_number cint circulant_graph clear_edge_weight clear_rules clear_vertex_label clebsch_gordan clebsch_graph clessp clesspignore close closefile cmetric coeff coefmatrix cograd col collapse collectterms columnop columnspace columnswap columnvector combination combine comp2pui compare compfile compile compile_file complement_graph complete_bipartite_graph complete_graph complex_number_p components compose_functions concan concat conjugate conmetderiv connected_components connect_vertices cons constant constantp constituent constvalue cont2part content continuous_freq contortion contour_plot contract contract_edge contragrad contrib_ode convert coord copy copy_file copy_graph copylist copymatrix cor cos cosh cot coth cov cov1 covdiff covect covers crc24sum create_graph create_list csc csch csetup cspline ctaylor ct_coordsys ctransform ctranspose cube_graph cuboctahedron_graph cunlisp cv cycle_digraph cycle_graph cylindrical days360 dblint deactivate declare declare_constvalue declare_dimensions declare_fundamental_dimensions declare_fundamental_units declare_qty declare_translated declare_unit_conversion declare_units declare_weights decsym defcon define define_alt_display define_variable defint defmatch defrule defstruct deftaylor degree_sequence del delete deleten delta demo demoivre denom depends derivdegree derivlist describe desolve determinant dfloat dgauss_a dgauss_b dgeev dgemm dgeqrf dgesv dgesvd diag diagmatrix diag_matrix diagmatrixp diameter diff digitcharp dimacs_export dimacs_import dimension dimensionless dimensions dimensions_as_list direct directory discrete_freq disjoin disjointp disolate disp dispcon dispform dispfun dispJordan display disprule dispterms distrib divide divisors divsum dkummer_m dkummer_u dlange dodecahedron_graph dotproduct dotsimp dpart draw draw2d draw3d drawdf draw_file draw_graph dscalar echelon edge_coloring edge_connectivity edges eigens_by_jacobi eigenvalues eigenvectors eighth einstein eivals eivects elapsed_real_time elapsed_run_time ele2comp ele2polynome ele2pui elem elementp elevation_grid elim elim_allbut eliminate eliminate_using ellipse elliptic_e elliptic_ec elliptic_eu elliptic_f elliptic_kc elliptic_pi ematrix empty_graph emptyp endcons entermatrix entertensor entier equal equalp equiv_classes erf erfc erf_generalized erfi errcatch error errormsg errors euler ev eval_string evenp every evolution evolution2d evundiff example exp expand expandwrt expandwrt_factored expint expintegral_chi expintegral_ci expintegral_e expintegral_e1 expintegral_ei expintegral_e_simplify expintegral_li expintegral_shi expintegral_si explicit explose exponentialize express expt exsec extdiff extract_linear_equations extremal_subset ezgcd %f f90 facsum factcomb factor factorfacsum factorial factorout factorsum facts fast_central_elements fast_linsolve fasttimes featurep fernfale fft fib fibtophi fifth filename_merge file_search file_type fillarray findde find_root find_root_abs find_root_error find_root_rel first fix flatten flength float floatnump floor flower_snark flush flush1deriv flushd flushnd flush_output fmin_cobyla forget fortran fourcos fourexpand fourier fourier_elim fourint fourintcos fourintsin foursimp foursin fourth fposition frame_bracket freeof freshline fresnel_c fresnel_s from_adjacency_matrix frucht_graph full_listify fullmap fullmapl fullratsimp fullratsubst fullsetify funcsolve fundamental_dimensions fundamental_units fundef funmake funp fv g0 g1 gamma gamma_greek gamma_incomplete gamma_incomplete_generalized gamma_incomplete_regularized gauss gauss_a gauss_b gaussprob gcd gcdex gcdivide gcfac gcfactor gd generalized_lambert_w genfact gen_laguerre genmatrix gensym geo_amortization geo_annuity_fv geo_annuity_pv geomap geometric geometric_mean geosum get getcurrentdirectory get_edge_weight getenv get_lu_factors get_output_stream_string get_pixel get_plot_option get_tex_environment get_tex_environment_default get_vertex_label gfactor gfactorsum ggf girth global_variances gn gnuplot_close gnuplot_replot gnuplot_reset gnuplot_restart gnuplot_start go Gosper GosperSum gr2d gr3d gradef gramschmidt graph6_decode graph6_encode graph6_export graph6_import graph_center graph_charpoly graph_eigenvalues graph_flow graph_order graph_periphery graph_product graph_size graph_union great_rhombicosidodecahedron_graph great_rhombicuboctahedron_graph grid_graph grind grobner_basis grotzch_graph hamilton_cycle hamilton_path hankel hankel_1 hankel_2 harmonic harmonic_mean hav heawood_graph hermite hessian hgfred hilbertmap hilbert_matrix hipow histogram histogram_description hodge horner hypergeometric i0 i1 %ibes ic1 ic2 ic_convert ichr1 ichr2 icosahedron_graph icosidodecahedron_graph icurvature ident identfor identity idiff idim idummy ieqn %if ifactors iframes ifs igcdex igeodesic_coords ilt image imagpart imetric implicit implicit_derivative implicit_plot indexed_tensor indices induced_subgraph inferencep inference_result infix info_display init_atensor init_ctensor in_neighbors innerproduct inpart inprod inrt integerp integer_partitions integrate intersect intersection intervalp intopois intosum invariant1 invariant2 inverse_fft inverse_jacobi_cd inverse_jacobi_cn inverse_jacobi_cs inverse_jacobi_dc inverse_jacobi_dn inverse_jacobi_ds inverse_jacobi_nc inverse_jacobi_nd inverse_jacobi_ns inverse_jacobi_sc inverse_jacobi_sd inverse_jacobi_sn invert invert_by_adjoint invert_by_lu inv_mod irr is is_biconnected is_bipartite is_connected is_digraph is_edge_in_graph is_graph is_graph_or_digraph ishow is_isomorphic isolate isomorphism is_planar isqrt isreal_p is_sconnected is_tree is_vertex_in_graph items_inference %j j0 j1 jacobi jacobian jacobi_cd jacobi_cn jacobi_cs jacobi_dc jacobi_dn jacobi_ds jacobi_nc jacobi_nd jacobi_ns jacobi_p jacobi_sc jacobi_sd jacobi_sn JF jn join jordan julia julia_set julia_sin %k kdels kdelta kill killcontext kostka kron_delta kronecker_product kummer_m kummer_u kurtosis kurtosis_bernoulli kurtosis_beta kurtosis_binomial kurtosis_chi2 kurtosis_continuous_uniform kurtosis_discrete_uniform kurtosis_exp kurtosis_f kurtosis_gamma kurtosis_general_finite_discrete kurtosis_geometric kurtosis_gumbel kurtosis_hypergeometric kurtosis_laplace kurtosis_logistic kurtosis_lognormal kurtosis_negative_binomial kurtosis_noncentral_chi2 kurtosis_noncentral_student_t kurtosis_normal kurtosis_pareto kurtosis_poisson kurtosis_rayleigh kurtosis_student_t kurtosis_weibull label labels lagrange laguerre lambda lambert_w laplace laplacian_matrix last lbfgs lc2kdt lcharp lc_l lcm lc_u ldefint ldisp ldisplay legendre_p legendre_q leinstein length let letrules letsimp levi_civita lfreeof lgtreillis lhs li liediff limit Lindstedt linear linearinterpol linear_program linear_regression line_graph linsolve listarray list_correlations listify list_matrix_entries list_nc_monomials listoftens listofvars listp lmax lmin load loadfile local locate_matrix_entry log logcontract log_gamma lopow lorentz_gauge lowercasep lpart lratsubst lreduce lriemann lsquares_estimates lsquares_estimates_approximate lsquares_estimates_exact lsquares_mse lsquares_residual_mse lsquares_residuals lsum ltreillis lu_backsub lucas lu_factor %m macroexpand macroexpand1 make_array makebox makefact makegamma make_graph make_level_picture makelist makeOrders make_poly_continent make_poly_country make_polygon make_random_state make_rgb_picture makeset make_string_input_stream make_string_output_stream make_transform mandelbrot mandelbrot_set map mapatom maplist matchdeclare matchfix mat_cond mat_fullunblocker mat_function mathml_display mat_norm matrix matrixmap matrixp matrix_size mattrace mat_trace mat_unblocker max max_clique max_degree max_flow maximize_lp max_independent_set max_matching maybe md5sum mean mean_bernoulli mean_beta mean_binomial mean_chi2 mean_continuous_uniform mean_deviation mean_discrete_uniform mean_exp mean_f mean_gamma mean_general_finite_discrete mean_geometric mean_gumbel mean_hypergeometric mean_laplace mean_logistic mean_lognormal mean_negative_binomial mean_noncentral_chi2 mean_noncentral_student_t mean_normal mean_pareto mean_poisson mean_rayleigh mean_student_t mean_weibull median median_deviation member mesh metricexpandall mgf1_sha1 min min_degree min_edge_cut minfactorial minimalPoly minimize_lp minimum_spanning_tree minor minpack_lsquares minpack_solve min_vertex_cover min_vertex_cut mkdir mnewton mod mode_declare mode_identity ModeMatrix moebius mon2schur mono monomial_dimensions multibernstein_poly multi_display_for_texinfo multi_elem multinomial multinomial_coeff multi_orbit multiplot_mode multi_pui multsym multthru mycielski_graph nary natural_unit nc_degree ncexpt ncharpoly negative_picture neighbors new newcontext newdet new_graph newline newton new_variable next_prime nicedummies niceindices ninth nofix nonarray noncentral_moment nonmetricity nonnegintegerp nonscalarp nonzeroandfreeof notequal nounify nptetrad npv nroots nterms ntermst nthroot nullity nullspace num numbered_boundaries numberp number_to_octets num_distinct_partitions numerval numfactor num_partitions nusum nzeta nzetai nzetar octets_to_number octets_to_oid odd_girth oddp ode2 ode_check odelin oid_to_octets op opena opena_binary openr openr_binary openw openw_binary operatorp opsubst optimize %or orbit orbits ordergreat ordergreatp orderless orderlessp orthogonal_complement orthopoly_recur orthopoly_weight outermap out_neighbors outofpois pade parabolic_cylinder_d parametric parametric_surface parg parGosper parse_string parse_timedate part part2cont partfrac partition partition_set partpol path_digraph path_graph pathname_directory pathname_name pathname_type pdf_bernoulli pdf_beta pdf_binomial pdf_cauchy pdf_chi2 pdf_continuous_uniform pdf_discrete_uniform pdf_exp pdf_f pdf_gamma pdf_general_finite_discrete pdf_geometric pdf_gumbel pdf_hypergeometric pdf_laplace pdf_logistic pdf_lognormal pdf_negative_binomial pdf_noncentral_chi2 pdf_noncentral_student_t pdf_normal pdf_pareto pdf_poisson pdf_rank_sum pdf_rayleigh pdf_signed_rank pdf_student_t pdf_weibull pearson_skewness permanent permut permutation permutations petersen_graph petrov pickapart picture_equalp picturep piechart piechart_description planar_embedding playback plog plot2d plot3d plotdf ploteq plsquares pochhammer points poisdiff poisexpt poisint poismap poisplus poissimp poissubst poistimes poistrim polar polarform polartorect polar_to_xy poly_add poly_buchberger poly_buchberger_criterion poly_colon_ideal poly_content polydecomp poly_depends_p poly_elimination_ideal poly_exact_divide poly_expand poly_expt poly_gcd polygon poly_grobner poly_grobner_equal poly_grobner_member poly_grobner_subsetp poly_ideal_intersection poly_ideal_polysaturation poly_ideal_polysaturation1 poly_ideal_saturation poly_ideal_saturation1 poly_lcm poly_minimization polymod poly_multiply polynome2ele polynomialp poly_normal_form poly_normalize poly_normalize_list poly_polysaturation_extension poly_primitive_part poly_pseudo_divide poly_reduced_grobner poly_reduction poly_saturation_extension poly_s_polynomial poly_subtract polytocompanion pop postfix potential power_mod powerseries powerset prefix prev_prime primep primes principal_components print printf printfile print_graph printpois printprops prodrac product properties propvars psi psubst ptriangularize pui pui2comp pui2ele pui2polynome pui_direct puireduc push put pv qput qrange qty quad_control quad_qag quad_qagi quad_qagp quad_qags quad_qawc quad_qawf quad_qawo quad_qaws quadrilateral quantile quantile_bernoulli quantile_beta quantile_binomial quantile_cauchy quantile_chi2 quantile_continuous_uniform quantile_discrete_uniform quantile_exp quantile_f quantile_gamma quantile_general_finite_discrete quantile_geometric quantile_gumbel quantile_hypergeometric quantile_laplace quantile_logistic quantile_lognormal quantile_negative_binomial quantile_noncentral_chi2 quantile_noncentral_student_t quantile_normal quantile_pareto quantile_poisson quantile_rayleigh quantile_student_t quantile_weibull quartile_skewness quit qunit quotient racah_v racah_w radcan radius random random_bernoulli random_beta random_binomial random_bipartite_graph random_cauchy random_chi2 random_continuous_uniform random_digraph random_discrete_uniform random_exp random_f random_gamma random_general_finite_discrete random_geometric random_graph random_graph1 random_gumbel random_hypergeometric random_laplace random_logistic random_lognormal random_negative_binomial random_network random_noncentral_chi2 random_noncentral_student_t random_normal random_pareto random_permutation random_poisson random_rayleigh random_regular_graph random_student_t random_tournament random_tree random_weibull range rank rat ratcoef ratdenom ratdiff ratdisrep ratexpand ratinterpol rational rationalize ratnumer ratnump ratp ratsimp ratsubst ratvars ratweight read read_array read_binary_array read_binary_list read_binary_matrix readbyte readchar read_hashed_array readline read_list read_matrix read_nested_list readonly read_xpm real_imagpart_to_conjugate realpart realroots rearray rectangle rectform rectform_log_if_constant recttopolar rediff reduce_consts reduce_order region region_boundaries region_boundaries_plus rem remainder remarray rembox remcomps remcon remcoord remfun remfunction remlet remove remove_constvalue remove_dimensions remove_edge remove_fundamental_dimensions remove_fundamental_units remove_plot_option remove_vertex rempart remrule remsym remvalue rename rename_file reset reset_displays residue resolvante resolvante_alternee1 resolvante_bipartite resolvante_diedrale resolvante_klein resolvante_klein3 resolvante_produit_sym resolvante_unitaire resolvante_vierer rest resultant return reveal reverse revert revert2 rgb2level rhs ricci riemann rinvariant risch rk rmdir rncombine romberg room rootscontract round row rowop rowswap rreduce run_testsuite %s save saving scalarp scaled_bessel_i scaled_bessel_i0 scaled_bessel_i1 scalefactors scanmap scatterplot scatterplot_description scene schur2comp sconcat scopy scsimp scurvature sdowncase sec sech second sequal sequalignore set_alt_display setdifference set_draw_defaults set_edge_weight setelmx setequalp setify setp set_partitions set_plot_option set_prompt set_random_state set_tex_environment set_tex_environment_default setunits setup_autoload set_up_dot_simplifications set_vertex_label seventh sexplode sf sha1sum sha256sum shortest_path shortest_weighted_path show showcomps showratvars sierpinskiale sierpinskimap sign signum similaritytransform simp_inequality simplify_sum simplode simpmetderiv simtran sin sinh sinsert sinvertcase sixth skewness skewness_bernoulli skewness_beta skewness_binomial skewness_chi2 skewness_continuous_uniform skewness_discrete_uniform skewness_exp skewness_f skewness_gamma skewness_general_finite_discrete skewness_geometric skewness_gumbel skewness_hypergeometric skewness_laplace skewness_logistic skewness_lognormal skewness_negative_binomial skewness_noncentral_chi2 skewness_noncentral_student_t skewness_normal skewness_pareto skewness_poisson skewness_rayleigh skewness_student_t skewness_weibull slength smake small_rhombicosidodecahedron_graph small_rhombicuboctahedron_graph smax smin smismatch snowmap snub_cube_graph snub_dodecahedron_graph solve solve_rec solve_rec_rat some somrac sort sparse6_decode sparse6_encode sparse6_export sparse6_import specint spherical spherical_bessel_j spherical_bessel_y spherical_hankel1 spherical_hankel2 spherical_harmonic spherical_to_xyz splice split sposition sprint sqfr sqrt sqrtdenest sremove sremovefirst sreverse ssearch ssort sstatus ssubst ssubstfirst staircase standardize standardize_inverse_trig starplot starplot_description status std std1 std_bernoulli std_beta std_binomial std_chi2 std_continuous_uniform std_discrete_uniform std_exp std_f std_gamma std_general_finite_discrete std_geometric std_gumbel std_hypergeometric std_laplace std_logistic std_lognormal std_negative_binomial std_noncentral_chi2 std_noncentral_student_t std_normal std_pareto std_poisson std_rayleigh std_student_t std_weibull stemplot stirling stirling1 stirling2 strim striml strimr string stringout stringp strong_components struve_h struve_l sublis sublist sublist_indices submatrix subsample subset subsetp subst substinpart subst_parallel substpart substring subvar subvarp sum sumcontract summand_to_rec supcase supcontext symbolp symmdifference symmetricp system take_channel take_inference tan tanh taylor taylorinfo taylorp taylor_simplifier taytorat tcl_output tcontract tellrat tellsimp tellsimpafter tentex tenth test_mean test_means_difference test_normality test_proportion test_proportions_difference test_rank_sum test_sign test_signed_rank test_variance test_variance_ratio tex tex1 tex_display texput %th third throw time timedate timer timer_info tldefint tlimit todd_coxeter toeplitz tokens to_lisp topological_sort to_poly to_poly_solve totaldisrep totalfourier totient tpartpol trace tracematrix trace_options transform_sample translate translate_file transpose treefale tree_reduce treillis treinat triangle triangularize trigexpand trigrat trigreduce trigsimp trunc truncate truncated_cube_graph truncated_dodecahedron_graph truncated_icosahedron_graph truncated_tetrahedron_graph tr_warnings_get tube tutte_graph ueivects uforget ultraspherical underlying_graph undiff union unique uniteigenvectors unitp units unit_step unitvector unorder unsum untellrat untimer untrace uppercasep uricci uriemann uvect vandermonde_matrix var var1 var_bernoulli var_beta var_binomial var_chi2 var_continuous_uniform var_discrete_uniform var_exp var_f var_gamma var_general_finite_discrete var_geometric var_gumbel var_hypergeometric var_laplace var_logistic var_lognormal var_negative_binomial var_noncentral_chi2 var_noncentral_student_t var_normal var_pareto var_poisson var_rayleigh var_student_t var_weibull vector vectorpotential vectorsimp verbify vers vertex_coloring vertex_connectivity vertex_degree vertex_distance vertex_eccentricity vertex_in_degree vertex_out_degree vertices vertices_to_cycle vertices_to_path %w weyl wheel_graph wiener_index wigner_3j wigner_6j wigner_9j with_stdout write_binary_data writebyte write_data writefile wronskian xreduce xthru %y Zeilberger zeroequiv zerofor zeromatrix zeromatrixp zeta zgeev zheev zlange zn_add_table zn_carmichael_lambda zn_characteristic_factors zn_determinant zn_factor_generators zn_invert_by_lu zn_log zn_mult_table absboxchar activecontexts adapt_depth additive adim aform algebraic algepsilon algexact aliases allbut all_dotsimp_denoms allocation allsym alphabetic animation antisymmetric arrays askexp assume_pos assume_pos_pred assumescalar asymbol atomgrad atrig1 axes axis_3d axis_bottom axis_left axis_right axis_top azimuth background background_color backsubst berlefact bernstein_explicit besselexpand beta_args_sum_to_integer beta_expand bftorat bftrunc bindtest border boundaries_array box boxchar breakup %c capping cauchysum cbrange cbtics center cflength cframe_flag cnonmet_flag color color_bar color_bar_tics colorbox columns commutative complex cone context contexts contour contour_levels cosnpiflag ctaypov ctaypt ctayswitch ctayvar ct_coords ctorsion_flag ctrgsimp cube current_let_rule_package cylinder data_file_name debugmode decreasing default_let_rule_package delay dependencies derivabbrev derivsubst detout diagmetric diff dim dimensions dispflag display2d|10 display_format_internal distribute_over doallmxops domain domxexpt domxmxops domxnctimes dontfactor doscmxops doscmxplus dot0nscsimp dot0simp dot1simp dotassoc dotconstrules dotdistrib dotexptsimp dotident dotscrules draw_graph_program draw_realpart edge_color edge_coloring edge_partition edge_type edge_width %edispflag elevation %emode endphi endtheta engineering_format_floats enhanced3d %enumer epsilon_lp erfflag erf_representation errormsg error_size error_syms error_type %e_to_numlog eval even evenfun evflag evfun ev_point expandwrt_denom expintexpand expintrep expon expop exptdispflag exptisolate exptsubst facexpand facsum_combine factlim factorflag factorial_expand factors_only fb feature features file_name file_output_append file_search_demo file_search_lisp file_search_maxima|10 file_search_tests file_search_usage file_type_lisp file_type_maxima|10 fill_color fill_density filled_func fixed_vertices flipflag float2bf font font_size fortindent fortspaces fpprec fpprintprec functions gamma_expand gammalim gdet genindex gensumnum GGFCFMAX GGFINFINITY globalsolve gnuplot_command gnuplot_curve_styles gnuplot_curve_titles gnuplot_default_term_command gnuplot_dumb_term_command gnuplot_file_args gnuplot_file_name gnuplot_out_file gnuplot_pdf_term_command gnuplot_pm3d gnuplot_png_term_command gnuplot_postamble gnuplot_preamble gnuplot_ps_term_command gnuplot_svg_term_command gnuplot_term gnuplot_view_args Gosper_in_Zeilberger gradefs grid grid2d grind halfangles head_angle head_both head_length head_type height hypergeometric_representation %iargs ibase icc1 icc2 icounter idummyx ieqnprint ifb ifc1 ifc2 ifg ifgi ifr iframe_bracket_form ifri igeowedge_flag ikt1 ikt2 imaginary inchar increasing infeval infinity inflag infolists inm inmc1 inmc2 intanalysis integer integervalued integrate_use_rootsof integration_constant integration_constant_counter interpolate_color intfaclim ip_grid ip_grid_in irrational isolate_wrt_times iterations itr julia_parameter %k1 %k2 keepfloat key key_pos kinvariant kt label label_alignment label_orientation labels lassociative lbfgs_ncorrections lbfgs_nfeval_max leftjust legend letrat let_rule_packages lfg lg lhospitallim limsubst linear linear_solver linechar linel|10 linenum line_type linewidth line_width linsolve_params linsolvewarn lispdisp listarith listconstvars listdummyvars lmxchar load_pathname loadprint logabs logarc logcb logconcoeffp logexpand lognegint logsimp logx logx_secondary logy logy_secondary logz lriem m1pbranch macroexpansion macros mainvar manual_demo maperror mapprint matrix_element_add matrix_element_mult matrix_element_transpose maxapplydepth maxapplyheight maxima_tempdir|10 maxima_userdir|10 maxnegex MAX_ORD maxposex maxpsifracdenom maxpsifracnum maxpsinegint maxpsiposint maxtayorder mesh_lines_color method mod_big_prime mode_check_errorp mode_checkp mode_check_warnp mod_test mod_threshold modular_linear_solver modulus multiplicative multiplicities myoptions nary negdistrib negsumdispflag newline newtonepsilon newtonmaxiter nextlayerfactor niceindicespref nm nmc noeval nolabels nonegative_lp noninteger nonscalar noun noundisp nouns np npi nticks ntrig numer numer_pbranch obase odd oddfun opacity opproperties opsubst optimprefix optionset orientation origin orthopoly_returns_intervals outative outchar packagefile palette partswitch pdf_file pfeformat phiresolution %piargs piece pivot_count_sx pivot_max_sx plot_format plot_options plot_realpart png_file pochhammer_max_index points pointsize point_size points_joined point_type poislim poisson poly_coefficient_ring poly_elimination_order polyfactor poly_grobner_algorithm poly_grobner_debug poly_monomial_order poly_primary_elimination_order poly_return_term_list poly_secondary_elimination_order poly_top_reduction_only posfun position powerdisp pred prederror primep_number_of_tests product_use_gamma program programmode promote_float_to_bigfloat prompt proportional_axes props psexpand ps_file radexpand radius radsubstflag rassociative ratalgdenom ratchristof ratdenomdivide rateinstein ratepsilon ratfac rational ratmx ratprint ratriemann ratsimpexpons ratvarswitch ratweights ratweyl ratwtlvl real realonly redraw refcheck resolution restart resultant ric riem rmxchar %rnum_list rombergabs rombergit rombergmin rombergtol rootsconmode rootsepsilon run_viewer same_xy same_xyz savedef savefactors scalar scalarmatrixp scale scale_lp setcheck setcheckbreak setval show_edge_color show_edges show_edge_type show_edge_width show_id show_label showtime show_vertex_color show_vertex_size show_vertex_type show_vertices show_weight simp simplified_output simplify_products simpproduct simpsum sinnpiflag solvedecomposes solveexplicit solvefactors solvenullwarn solveradcan solvetrigwarn space sparse sphere spring_embedding_depth sqrtdispflag stardisp startphi starttheta stats_numer stringdisp structures style sublis_apply_lambda subnumsimp sumexpand sumsplitfact surface surface_hide svg_file symmetric tab taylordepth taylor_logexpand taylor_order_coefficients taylor_truncate_polynomials tensorkill terminal testsuite_files thetaresolution timer_devalue title tlimswitch tr track transcompile transform transform_xy translate_fast_arrays transparent transrun tr_array_as_ref tr_bound_function_applyp tr_file_tty_messagesp tr_float_can_branch_complex tr_function_call_default trigexpandplus trigexpandtimes triginverses trigsign trivial_solutions tr_numer tr_optimize_max_loop tr_semicompile tr_state_vars tr_warn_bad_function_calls tr_warn_fexpr tr_warn_meval tr_warn_mode tr_warn_undeclared tr_warn_undefined_variable tstep ttyoff tube_extremes ufg ug %unitexpand unit_vectors uric uriem use_fast_arrays user_preamble usersetunits values vect_cross verbose vertex_color vertex_coloring vertex_partition vertex_size vertex_type view warnings weyl width windowname windowtitle wired_surface wireframe xaxis xaxis_color xaxis_secondary xaxis_type xaxis_width xlabel xlabel_secondary xlength xrange xrange_secondary xtics xtics_axis xtics_rotate xtics_rotate_secondary xtics_secondary xtics_secondary_axis xu_grid x_voxel xy_file xyplane xy_scale yaxis yaxis_color yaxis_secondary yaxis_type yaxis_width ylabel ylabel_secondary ylength yrange yrange_secondary ytics ytics_axis ytics_rotate ytics_rotate_secondary ytics_secondary ytics_secondary_axis yv_grid y_voxel yx_ratio zaxis zaxis_color zaxis_type zaxis_width zeroa zerob zerobern zeta%pi zlabel zlabel_rotate zlength zmin zn_primroot_limit zn_primroot_pretest", +symbol:"_ __ %|0 %%|0"},contains:[{className:"comment",begin:"/\\*",end:"\\*/", +contains:["self"]},e.QUOTE_STRING_MODE,{className:"number",relevance:0, +variants:[{begin:"\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Ee][-+]?\\d+\\b"},{ +begin:"\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Bb][-+]?\\d+\\b",relevance:10},{ +begin:"\\b(\\.\\d+|\\d+\\.\\d+)\\b"},{begin:"\\b(\\d+|0[0-9A-Za-z]+)\\.?\\b"}] +}],illegal:/@/})})();hljs.registerLanguage("maxima",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/mel.min.js b/src/app/resources/assets/highlight/languages/mel.min.js new file mode 100644 index 0000000..f63bbd7 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/mel.min.js @@ -0,0 +1,8 @@ +/*! `mel` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"MEL", +keywords:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform", +illegal:"{var e=(()=>{"use strict";return e=>{ +const i=e.COMMENT("%","$"),n=e.inherit(e.APOS_STRING_MODE,{relevance:0 +}),r=e.inherit(e.QUOTE_STRING_MODE,{relevance:0}) +;return r.contains=r.contains.slice(),r.contains.push({className:"subst", +begin:"\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]", +relevance:0}),{name:"Mercury",aliases:["m","moo"],keywords:{ +keyword:"module use_module import_module include_module end_module initialise mutable initialize finalize finalise interface implementation pred mode func type inst solver any_pred any_func is semidet det nondet multi erroneous failure cc_nondet cc_multi typeclass instance where pragma promise external trace atomic or_else require_complete_switch require_det require_semidet require_multi require_nondet require_cc_multi require_cc_nondet require_erroneous require_failure", +meta:"inline no_inline type_spec source_file fact_table obsolete memo loop_check minimal_model terminates does_not_terminate check_termination promise_equivalent_clauses foreign_proc foreign_decl foreign_code foreign_type foreign_import_module foreign_export_enum foreign_export foreign_enum may_call_mercury will_not_call_mercury thread_safe not_thread_safe maybe_thread_safe promise_pure promise_semipure tabled_for_io local untrailed trailed attach_to_io_state can_pass_as_mercury_type stable will_not_throw_exception may_modify_trail will_not_modify_trail may_duplicate may_not_duplicate affects_liveness does_not_affect_liveness doesnt_affect_liveness no_sharing unknown_sharing sharing", +built_in:"some all not if then else true fail false try catch catch_any semidet_true semidet_false semidet_fail impure_true impure semipure" +},contains:[{className:"built_in",variants:[{begin:"<=>"},{begin:"<=", +relevance:0},{begin:"=>",relevance:0},{begin:"/\\\\"},{begin:"\\\\/"}]},{ +className:"built_in",variants:[{begin:":-\\|--\x3e"},{begin:"=",relevance:0}] +},i,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"0'.\\|0[box][0-9a-fA-F]*" +},e.NUMBER_MODE,n,r,{begin:/:-/},{begin:/\.$/}]}}})() +;hljs.registerLanguage("mercury",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/mipsasm.min.js b/src/app/resources/assets/highlight/languages/mipsasm.min.js new file mode 100644 index 0000000..2a880c3 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/mipsasm.min.js @@ -0,0 +1,15 @@ +/*! `mipsasm` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"MIPS Assembly", +case_insensitive:!0,aliases:["mips"],keywords:{$pattern:"\\.?"+e.IDENT_RE, +meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .ltorg ", +built_in:"$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 k0 k1 gp sp fp ra $f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 $f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt " +},contains:[{className:"keyword", +begin:"\\b(addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\\.hb)?|jr(\\.hb)?|lbu?|lhu?|ll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|move|msubu?|mthi|mtlo|mul|multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|srlv?|subu?|sw[lr]?|xori?|wsbh|abs\\.[sd]|add\\.[sd]|alnv.ps|bc1[ft]l?|c\\.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\\.[sd]|(ceil|floor|round|trunc)\\.[lw]\\.[sd]|cfc1|cvt\\.d\\.[lsw]|cvt\\.l\\.[dsw]|cvt\\.ps\\.s|cvt\\.s\\.[dlw]|cvt\\.s\\.p[lu]|cvt\\.w\\.[dls]|div\\.[ds]|ldx?c1|luxc1|lwx?c1|madd\\.[sd]|mfc1|mov[fntz]?\\.[ds]|msub\\.[sd]|mth?c1|mul\\.[ds]|neg\\.[ds]|nmadd\\.[ds]|nmsub\\.[ds]|p[lu][lu]\\.ps|recip\\.fmt|r?sqrt\\.[ds]|sdx?c1|sub\\.[ds]|suxc1|swx?c1|break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|tlti?u?|tnei?|wait|wrpgpr)", +end:"\\s" +},e.COMMENT("[;#](?!\\s*$)","$"),e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,{ +className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title", +begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{ +begin:"0x[0-9a-f]+"},{begin:"\\b-?\\d+"}],relevance:0},{className:"symbol", +variants:[{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^\\s*[0-9]+:"},{ +begin:"[0-9]+[bf]"}],relevance:0}],illegal:/\//})})() +;hljs.registerLanguage("mipsasm",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/mizar.min.js b/src/app/resources/assets/highlight/languages/mizar.min.js new file mode 100644 index 0000000..3e240cf --- /dev/null +++ b/src/app/resources/assets/highlight/languages/mizar.min.js @@ -0,0 +1,4 @@ +/*! `mizar` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Mizar", +keywords:"environ vocabularies notations constructors definitions registrations theorems schemes requirements begin end definition registration cluster existence pred func defpred deffunc theorem proof let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from be being by means equals implies iff redefine define now not or attr is mode suppose per cases set thesis contradiction scheme reserve struct correctness compatibility coherence symmetry assymetry reflexivity irreflexivity connectedness uniqueness commutativity idempotence involutiveness projectivity", +contains:[e.COMMENT("::","$")]})})();hljs.registerLanguage("mizar",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/mojolicious.min.js b/src/app/resources/assets/highlight/languages/mojolicious.min.js new file mode 100644 index 0000000..0388f5c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/mojolicious.min.js @@ -0,0 +1,6 @@ +/*! `mojolicious` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Mojolicious",subLanguage:"xml", +contains:[{className:"meta",begin:"^__(END|DATA)__$"},{ +begin:"^\\s*%{1,2}={0,2}",end:"$",subLanguage:"perl"},{begin:"<%{1,2}={0,2}", +end:"={0,1}%>",subLanguage:"perl",excludeBegin:!0,excludeEnd:!0}]})})() +;hljs.registerLanguage("mojolicious",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/monkey.min.js b/src/app/resources/assets/highlight/languages/monkey.min.js new file mode 100644 index 0000000..e025e12 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/monkey.min.js @@ -0,0 +1,17 @@ +/*! `monkey` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={className:"number", +relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},e.NUMBER_MODE]},a={variants:[{ +match:[/(function|method)/,/\s+/,e.UNDERSCORE_IDENT_RE]}],scope:{1:"keyword", +3:"title.function"}},t={variants:[{ +match:[/(class|interface|extends|implements)/,/\s+/,e.UNDERSCORE_IDENT_RE]}], +scope:{1:"keyword",3:"title.class"}};return{name:"Monkey",case_insensitive:!0, +keywords:{ +keyword:["public","private","property","continue","exit","extern","new","try","catch","eachin","not","abstract","final","select","case","default","const","local","global","field","end","if","then","else","elseif","endif","while","wend","repeat","until","forever","for","to","step","next","return","module","inline","throw","import","and","or","shl","shr","mod"], +built_in:["DebugLog","DebugStop","Error","Print","ACos","ACosr","ASin","ASinr","ATan","ATan2","ATan2r","ATanr","Abs","Abs","Ceil","Clamp","Clamp","Cos","Cosr","Exp","Floor","Log","Max","Max","Min","Min","Pow","Sgn","Sgn","Sin","Sinr","Sqrt","Tan","Tanr","Seed","PI","HALFPI","TWOPI"], +literal:["true","false","null"]},illegal:/\/\*/, +contains:[e.COMMENT("#rem","#end"),e.COMMENT("'","$",{relevance:0}),a,t,{ +className:"variable.language",begin:/\b(self|super)\b/},{className:"meta", +begin:/\s*#/,end:"$",keywords:{keyword:"if else elseif endif end then"}},{ +match:[/^\s*/,/strict\b/],scope:{2:"meta"}},{beginKeywords:"alias",end:"=", +contains:[e.UNDERSCORE_TITLE_MODE]},e.QUOTE_STRING_MODE,n]}}})() +;hljs.registerLanguage("monkey",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/moonscript.min.js b/src/app/resources/assets/highlight/languages/moonscript.min.js new file mode 100644 index 0000000..2e4b2e7 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/moonscript.min.js @@ -0,0 +1,23 @@ +/*! `moonscript` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={ +keyword:"if then not for in while do return else elseif break continue switch and or unless when class extends super local import export from using", +literal:"true false nil", +built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table" +},s="[A-Za-z$_][0-9A-Za-z$_]*",a={className:"subst",begin:/#\{/,end:/\}/, +keywords:n},t=[e.inherit(e.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0} +}),{className:"string",variants:[{begin:/'/,end:/'/, +contains:[e.BACKSLASH_ESCAPE]},{begin:/"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,a]}]},{className:"built_in",begin:"@__"+e.IDENT_RE +},{begin:"@"+e.IDENT_RE},{begin:e.IDENT_RE+"\\\\"+e.IDENT_RE}];a.contains=t +;const i=e.inherit(e.TITLE_MODE,{begin:s}),r="(\\(.*\\)\\s*)?\\B[-=]>",l={ +className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/, +end:/\)/,keywords:n,contains:["self"].concat(t)}]};return{name:"MoonScript", +aliases:["moon"],keywords:n,illegal:/\/\*/, +contains:t.concat([e.COMMENT("--","$"),{className:"function", +begin:"^\\s*"+s+"\\s*=\\s*"+r,end:"[-=]>",returnBegin:!0,contains:[i,l]},{ +begin:/[\(,:=]\s*/,relevance:0,contains:[{className:"function",begin:r, +end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class", +beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{ +beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[i]},i] +},{className:"name",begin:s+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0 +}])}}})();hljs.registerLanguage("moonscript",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/n1ql.min.js b/src/app/resources/assets/highlight/languages/n1ql.min.js new file mode 100644 index 0000000..51ec4bf --- /dev/null +++ b/src/app/resources/assets/highlight/languages/n1ql.min.js @@ -0,0 +1,13 @@ +/*! `n1ql` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"N1QL",case_insensitive:!0, +contains:[{ +beginKeywords:"build create index delete drop explain infer|10 insert merge prepare select update upsert|10", +end:/;/,keywords:{ +keyword:["all","alter","analyze","and","any","array","as","asc","begin","between","binary","boolean","break","bucket","build","by","call","case","cast","cluster","collate","collection","commit","connect","continue","correlate","cover","create","database","dataset","datastore","declare","decrement","delete","derived","desc","describe","distinct","do","drop","each","element","else","end","every","except","exclude","execute","exists","explain","fetch","first","flatten","for","force","from","function","grant","group","gsi","having","if","ignore","ilike","in","include","increment","index","infer","inline","inner","insert","intersect","into","is","join","key","keys","keyspace","known","last","left","let","letting","like","limit","lsm","map","mapping","matched","materialized","merge","minus","namespace","nest","not","number","object","offset","on","option","or","order","outer","over","parse","partition","password","path","pool","prepare","primary","private","privilege","procedure","public","raw","realm","reduce","rename","return","returning","revoke","right","role","rollback","satisfies","schema","select","self","semi","set","show","some","start","statistics","string","system","then","to","transaction","trigger","truncate","under","union","unique","unknown","unnest","unset","update","upsert","use","user","using","validate","value","valued","values","via","view","when","where","while","with","within","work","xor"], +literal:["true","false","null","missing|5"], +built_in:["array_agg","array_append","array_concat","array_contains","array_count","array_distinct","array_ifnull","array_length","array_max","array_min","array_position","array_prepend","array_put","array_range","array_remove","array_repeat","array_replace","array_reverse","array_sort","array_sum","avg","count","max","min","sum","greatest","least","ifmissing","ifmissingornull","ifnull","missingif","nullif","ifinf","ifnan","ifnanorinf","naninf","neginfif","posinfif","clock_millis","clock_str","date_add_millis","date_add_str","date_diff_millis","date_diff_str","date_part_millis","date_part_str","date_trunc_millis","date_trunc_str","duration_to_str","millis","str_to_millis","millis_to_str","millis_to_utc","millis_to_zone_name","now_millis","now_str","str_to_duration","str_to_utc","str_to_zone_name","decode_json","encode_json","encoded_size","poly_length","base64","base64_encode","base64_decode","meta","uuid","abs","acos","asin","atan","atan2","ceil","cos","degrees","e","exp","ln","log","floor","pi","power","radians","random","round","sign","sin","sqrt","tan","trunc","object_length","object_names","object_pairs","object_inner_pairs","object_values","object_inner_values","object_add","object_put","object_remove","object_unwrap","regexp_contains","regexp_like","regexp_position","regexp_replace","contains","initcap","length","lower","ltrim","position","repeat","replace","rtrim","split","substr","title","trim","upper","isarray","isatom","isboolean","isnumber","isobject","isstring","type","toarray","toatom","toboolean","tonumber","toobject","tostring"] +},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE] +},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{ +className:"symbol",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE] +},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE]})})() +;hljs.registerLanguage("n1ql",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/nestedtext.min.js b/src/app/resources/assets/highlight/languages/nestedtext.min.js new file mode 100644 index 0000000..2b99844 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/nestedtext.min.js @@ -0,0 +1,9 @@ +/*! `nestedtext` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var t=(()=>{"use strict";return t=>({name:"Nested Text",aliases:["nt"], +contains:[t.inherit(t.HASH_COMMENT_MODE,{begin:/^\s*(?=#)/,excludeBegin:!0}),{ +variants:[{match:[/^\s*/,/-/,/[ ]/,/.*$/]},{match:[/^\s*/,/-$/]}],className:{ +2:"bullet",4:"string"}},{match:[/^\s*/,/>/,/[ ]/,/.*$/],className:{ +2:"punctuation",4:"string"}},{match:[/^\s*(?=\S)/,/[^:]+/,/:\s*/,/$/], +className:{2:"attribute",3:"punctuation"}},{ +match:[/^\s*(?=\S)/,/[^:]*[^: ]/,/[ ]*:/,/[ ]/,/.*$/],className:{2:"attribute", +3:"punctuation",5:"string"}}]})})();hljs.registerLanguage("nestedtext",t)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/nginx.min.js b/src/app/resources/assets/highlight/languages/nginx.min.js new file mode 100644 index 0000000..f7e0220 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/nginx.min.js @@ -0,0 +1,21 @@ +/*! `nginx` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,a={ +className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{\w+\}/},{ +begin:n.concat(/[$@]/,e.UNDERSCORE_IDENT_RE)}]},s={endsWithParent:!0,keywords:{ +$pattern:/[a-z_]{2,}|\/dev\/poll/, +literal:["on","off","yes","no","true","false","none","blocked","debug","info","notice","warn","error","crit","select","break","last","permanent","redirect","kqueue","rtsig","epoll","poll","/dev/poll"] +},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string", +contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/ +}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[a] +},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:"\\s\\^", +end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{ +begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number", +begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{ +className:"number",begin:"\\b\\d+[kKmMgGdshdwy]?\\b",relevance:0},a]};return{ +name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{ +beginKeywords:"upstream location",end:/;|\{/,contains:s.contains,keywords:{ +section:"upstream location"}},{className:"section", +begin:n.concat(e.UNDERSCORE_IDENT_RE+n.lookahead(/\s+\{/)),relevance:0},{ +begin:n.lookahead(e.UNDERSCORE_IDENT_RE+"\\s"),end:";|\\{",contains:[{ +className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:s}],relevance:0}], +illegal:"[^\\s\\}\\{]"}}})();hljs.registerLanguage("nginx",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/nim.min.js b/src/app/resources/assets/highlight/languages/nim.min.js new file mode 100644 index 0000000..7a573c9 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/nim.min.js @@ -0,0 +1,15 @@ +/*! `nim` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Nim",keywords:{ +keyword:["addr","and","as","asm","bind","block","break","case","cast","const","continue","converter","discard","distinct","div","do","elif","else","end","enum","except","export","finally","for","from","func","generic","guarded","if","import","in","include","interface","is","isnot","iterator","let","macro","method","mixin","mod","nil","not","notin","object","of","or","out","proc","ptr","raise","ref","return","shared","shl","shr","static","template","try","tuple","type","using","var","when","while","with","without","xor","yield"], +literal:["true","false"], +type:["int","int8","int16","int32","int64","uint","uint8","uint16","uint32","uint64","float","float32","float64","bool","char","string","cstring","pointer","expr","stmt","void","auto","any","range","array","openarray","varargs","seq","set","clong","culong","cchar","cschar","cshort","cint","csize","clonglong","cfloat","cdouble","clongdouble","cuchar","cushort","cuint","culonglong","cstringarray","semistatic"], +built_in:["stdin","stdout","stderr","result"]},contains:[{className:"meta", +begin:/\{\./,end:/\.\}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/, +end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/, +end:/"""/},e.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/, +relevance:0},{className:"number",relevance:0,variants:[{ +begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},{ +begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},{ +begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},{ +begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}]},e.HASH_COMMENT_MODE]})})() +;hljs.registerLanguage("nim",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/nix.min.js b/src/app/resources/assets/highlight/languages/nix.min.js new file mode 100644 index 0000000..afab9f8 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/nix.min.js @@ -0,0 +1,13 @@ +/*! `nix` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={ +keyword:["rec","with","let","in","inherit","assert","if","else","then"], +literal:["true","false","or","and","null"], +built_in:["import","abort","baseNameOf","dirOf","isNull","builtins","map","removeAttrs","throw","toString","derivation"] +},s={className:"subst",begin:/\$\{/,end:/\}/,keywords:n},a={className:"string", +contains:[{className:"char.escape",begin:/''\$/},s],variants:[{begin:"''", +end:"''"},{begin:'"',end:'"'}] +},i=[e.NUMBER_MODE,e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{ +begin:/[a-zA-Z0-9-_]+(\s*=)/,returnBegin:!0,relevance:0,contains:[{ +className:"attr",begin:/\S+/,relevance:.2}]}];return s.contains=i,{name:"Nix", +aliases:["nixos"],keywords:n,contains:i}}})();hljs.registerLanguage("nix",e) +})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/node-repl.min.js b/src/app/resources/assets/highlight/languages/node-repl.min.js new file mode 100644 index 0000000..7c1c8ed --- /dev/null +++ b/src/app/resources/assets/highlight/languages/node-repl.min.js @@ -0,0 +1,5 @@ +/*! `node-repl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var a=(()=>{"use strict";return a=>({name:"Node REPL",contains:[{ +className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$", +subLanguage:"javascript"}},variants:[{begin:/^>(?=[ ]|$)/},{ +begin:/^\.\.\.(?=[ ]|$)/}]}]})})();hljs.registerLanguage("node-repl",a)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/nsis.min.js b/src/app/resources/assets/highlight/languages/nsis.min.js new file mode 100644 index 0000000..8d7cc56 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/nsis.min.js @@ -0,0 +1,23 @@ +/*! `nsis` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t=e.regex,n={ +className:"variable.constant", +begin:t.concat(/\$/,t.either("ADMINTOOLS","APPDATA","CDBURN_AREA","CMDLINE","COMMONFILES32","COMMONFILES64","COMMONFILES","COOKIES","DESKTOP","DOCUMENTS","EXEDIR","EXEFILE","EXEPATH","FAVORITES","FONTS","HISTORY","HWNDPARENT","INSTDIR","INTERNET_CACHE","LANGUAGE","LOCALAPPDATA","MUSIC","NETHOOD","OUTDIR","PICTURES","PLUGINSDIR","PRINTHOOD","PROFILE","PROGRAMFILES32","PROGRAMFILES64","PROGRAMFILES","QUICKLAUNCH","RECENT","RESOURCES_LOCALIZED","RESOURCES","SENDTO","SMPROGRAMS","SMSTARTUP","STARTMENU","SYSDIR","TEMP","TEMPLATES","VIDEOS","WINDIR")) +},i={className:"variable",begin:/\$+\{[\!\w.:-]+\}/},r={className:"variable", +begin:/\$+\w[\w\.]*/,illegal:/\(\)\{\}/},a={className:"variable", +begin:/\$+\([\w^.:!-]+\)/},l={className:"params", +begin:t.either("ARCHIVE","FILE_ATTRIBUTE_ARCHIVE","FILE_ATTRIBUTE_NORMAL","FILE_ATTRIBUTE_OFFLINE","FILE_ATTRIBUTE_READONLY","FILE_ATTRIBUTE_SYSTEM","FILE_ATTRIBUTE_TEMPORARY","HKCR","HKCU","HKDD","HKEY_CLASSES_ROOT","HKEY_CURRENT_CONFIG","HKEY_CURRENT_USER","HKEY_DYN_DATA","HKEY_LOCAL_MACHINE","HKEY_PERFORMANCE_DATA","HKEY_USERS","HKLM","HKPD","HKU","IDABORT","IDCANCEL","IDIGNORE","IDNO","IDOK","IDRETRY","IDYES","MB_ABORTRETRYIGNORE","MB_DEFBUTTON1","MB_DEFBUTTON2","MB_DEFBUTTON3","MB_DEFBUTTON4","MB_ICONEXCLAMATION","MB_ICONINFORMATION","MB_ICONQUESTION","MB_ICONSTOP","MB_OK","MB_OKCANCEL","MB_RETRYCANCEL","MB_RIGHT","MB_RTLREADING","MB_SETFOREGROUND","MB_TOPMOST","MB_USERICON","MB_YESNO","NORMAL","OFFLINE","READONLY","SHCTX","SHELL_CONTEXT","SYSTEM|TEMPORARY") +},s={className:"keyword", +begin:t.concat(/!/,t.either("addincludedir","addplugindir","appendfile","cd","define","delfile","echo","else","endif","error","execute","finalize","getdllversion","gettlbversion","if","ifdef","ifmacrodef","ifmacrondef","ifndef","include","insertmacro","macro","macroend","makensis","packhdr","searchparse","searchreplace","system","tempfile","undef","uninstfinalize","verbose","warning")) +},o={className:"string",variants:[{begin:'"',end:'"'},{begin:"'",end:"'"},{ +begin:"`",end:"`"}],illegal:/\n/,contains:[{className:"char.escape", +begin:/\$(\\[nrt]|\$)/},n,i,r,a]},S={ +match:[/Function/,/\s+/,t.concat(/(\.)?/,e.IDENT_RE)],scope:{1:"keyword", +3:"title.function"}};return{name:"NSIS",case_insensitive:!0,keywords:{ +keyword:["Abort","AddBrandingImage","AddSize","AllowRootDirInstall","AllowSkipFiles","AutoCloseWindow","BGFont","BGGradient","BrandingText","BringToFront","Call","CallInstDLL","Caption","ChangeUI","CheckBitmap","ClearErrors","CompletedText","ComponentText","CopyFiles","CRCCheck","CreateDirectory","CreateFont","CreateShortCut","Delete","DeleteINISec","DeleteINIStr","DeleteRegKey","DeleteRegValue","DetailPrint","DetailsButtonText","DirText","DirVar","DirVerify","EnableWindow","EnumRegKey","EnumRegValue","Exch","Exec","ExecShell","ExecShellWait","ExecWait","ExpandEnvStrings","File","FileBufSize","FileClose","FileErrorText","FileOpen","FileRead","FileReadByte","FileReadUTF16LE","FileReadWord","FileWriteUTF16LE","FileSeek","FileWrite","FileWriteByte","FileWriteWord","FindClose","FindFirst","FindNext","FindWindow","FlushINI","GetCurInstType","GetCurrentAddress","GetDlgItem","GetDLLVersion","GetDLLVersionLocal","GetErrorLevel","GetFileTime","GetFileTimeLocal","GetFullPathName","GetFunctionAddress","GetInstDirError","GetKnownFolderPath","GetLabelAddress","GetTempFileName","GetWinVer","Goto","HideWindow","Icon","IfAbort","IfErrors","IfFileExists","IfRebootFlag","IfRtlLanguage","IfShellVarContextAll","IfSilent","InitPluginsDir","InstallButtonText","InstallColors","InstallDir","InstallDirRegKey","InstProgressFlags","InstType","InstTypeGetText","InstTypeSetText","Int64Cmp","Int64CmpU","Int64Fmt","IntCmp","IntCmpU","IntFmt","IntOp","IntPtrCmp","IntPtrCmpU","IntPtrOp","IsWindow","LangString","LicenseBkColor","LicenseData","LicenseForceSelection","LicenseLangString","LicenseText","LoadAndSetImage","LoadLanguageFile","LockWindow","LogSet","LogText","ManifestDPIAware","ManifestLongPathAware","ManifestMaxVersionTested","ManifestSupportedOS","MessageBox","MiscButtonText","Name|0","Nop","OutFile","Page","PageCallbacks","PEAddResource","PEDllCharacteristics","PERemoveResource","PESubsysVer","Pop","Push","Quit","ReadEnvStr","ReadINIStr","ReadRegDWORD","ReadRegStr","Reboot","RegDLL","Rename","RequestExecutionLevel","ReserveFile","Return","RMDir","SearchPath","SectionGetFlags","SectionGetInstTypes","SectionGetSize","SectionGetText","SectionIn","SectionSetFlags","SectionSetInstTypes","SectionSetSize","SectionSetText","SendMessage","SetAutoClose","SetBrandingImage","SetCompress","SetCompressor","SetCompressorDictSize","SetCtlColors","SetCurInstType","SetDatablockOptimize","SetDateSave","SetDetailsPrint","SetDetailsView","SetErrorLevel","SetErrors","SetFileAttributes","SetFont","SetOutPath","SetOverwrite","SetRebootFlag","SetRegView","SetShellVarContext","SetSilent","ShowInstDetails","ShowUninstDetails","ShowWindow","SilentInstall","SilentUnInstall","Sleep","SpaceTexts","StrCmp","StrCmpS","StrCpy","StrLen","SubCaption","Unicode","UninstallButtonText","UninstallCaption","UninstallIcon","UninstallSubCaption","UninstallText","UninstPage","UnRegDLL","Var","VIAddVersionKey","VIFileVersion","VIProductVersion","WindowIcon","WriteINIStr","WriteRegBin","WriteRegDWORD","WriteRegExpandStr","WriteRegMultiStr","WriteRegNone","WriteRegStr","WriteUninstaller","XPStyle"], +literal:["admin","all","auto","both","bottom","bzip2","colored","components","current","custom","directory","false","force","hide","highest","ifdiff","ifnewer","instfiles","lastused","leave","left","license","listonly","lzma","nevershow","none","normal","notset","off","on","open","print","right","show","silent","silentlog","smooth","textonly","top","true","try","un.components","un.custom","un.directory","un.instfiles","un.license","uninstConfirm","user","Win10","Win7","Win8","WinVista","zlib"] +},contains:[e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{ +relevance:0}),{match:[/Var/,/\s+/,/(?:\/GLOBAL\s+)?/,/[A-Za-z][\w.]*/],scope:{ +1:"keyword",3:"params",4:"variable"}},S,{ +beginKeywords:"Function PageEx Section SectionGroup FunctionEnd SectionEnd" +},o,s,i,r,a,l,{className:"title.function",begin:/\w+::\w+/},e.NUMBER_MODE]}}})() +;hljs.registerLanguage("nsis",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/objectivec.min.js b/src/app/resources/assets/highlight/languages/objectivec.min.js new file mode 100644 index 0000000..f97c132 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/objectivec.min.js @@ -0,0 +1,23 @@ +/*! `objectivec` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={ +$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]} +;return{name:"Objective-C", +aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:{ +"variable.language":["this","super"],$pattern:n, +keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"], +literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"], +built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"], +type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"] +},illegal:"/,end:/$/,illegal:"\\n" +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class", +begin:"("+_.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:_, +contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE, +relevance:0}]}}})();hljs.registerLanguage("objectivec",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/ocaml.min.js b/src/app/resources/assets/highlight/languages/ocaml.min.js new file mode 100644 index 0000000..2570461 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/ocaml.min.js @@ -0,0 +1,14 @@ +/*! `ocaml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"OCaml",aliases:["ml"], +keywords:{$pattern:"[a-z_]\\w*!?", +keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value", +built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref", +literal:"true false"},illegal:/\/\/|>>/,contains:[{className:"literal", +begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},e.COMMENT("\\(\\*","\\*\\)",{ +contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{ +className:"type",begin:"`[A-Z][\\w']*"},{className:"type", +begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*",relevance:0 +},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0 +}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number", +begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)", +relevance:0},{begin:/->/}]})})();hljs.registerLanguage("ocaml",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/openscad.min.js b/src/app/resources/assets/highlight/languages/openscad.min.js new file mode 100644 index 0000000..0f1cfa3 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/openscad.min.js @@ -0,0 +1,15 @@ +/*! `openscad` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={className:"keyword", +begin:"\\$(f[asn]|t|vp[rtd]|children)"},r={className:"number", +begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0 +},s=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),a={className:"function", +beginKeywords:"module function",end:/=|\{/,contains:[{className:"params", +begin:"\\(",end:"\\)",contains:["self",r,s,n,{className:"literal", +begin:"false|true|PI|undef"}]},e.UNDERSCORE_TITLE_MODE]};return{name:"OpenSCAD", +aliases:["scad"],keywords:{ +keyword:"function module include use for intersection_for if else \\%", +literal:"false true PI undef", +built_in:"circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign" +},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,{className:"meta", +keywords:{keyword:"include use"},begin:"include|use <",end:">"},s,n,{ +begin:"[*!#%]",relevance:0},a]}}})();hljs.registerLanguage("openscad",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/oxygene.min.js b/src/app/resources/assets/highlight/languages/oxygene.min.js new file mode 100644 index 0000000..c83cde6 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/oxygene.min.js @@ -0,0 +1,13 @@ +/*! `oxygene` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t={$pattern:/\.?\w+/, +keyword:"abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained" +},r=e.COMMENT(/\{/,/\}/,{relevance:0}),n=e.COMMENT("\\(\\*","\\*\\)",{ +relevance:10}),a={className:"string",begin:"'",end:"'",contains:[{begin:"''"}] +},i={className:"string",begin:"(#\\d+)+"},s={ +beginKeywords:"function constructor destructor procedure method",end:"[:;]", +keywords:"function constructor|10 destructor|10 procedure|10 method|10", +contains:[e.inherit(e.TITLE_MODE,{scope:"title.function"}),{className:"params", +begin:"\\(",end:"\\)",keywords:t,contains:[a,i]},r,n]};return{name:"Oxygene", +case_insensitive:!0,keywords:t,illegal:'("|\\$[G-Zg-z]|\\/\\*||->)', +contains:[r,n,e.C_LINE_COMMENT_MODE,a,i,e.NUMBER_MODE,s,{scope:"punctuation", +match:/;/,relevance:0}]}}})();hljs.registerLanguage("oxygene",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/parser3.min.js b/src/app/resources/assets/highlight/languages/parser3.min.js new file mode 100644 index 0000000..4ba93c5 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/parser3.min.js @@ -0,0 +1,10 @@ +/*! `parser3` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=e.COMMENT(/\{/,/\}/,{ +contains:["self"]});return{name:"Parser3",subLanguage:"xml",relevance:0, +contains:[e.COMMENT("^#","$"),e.COMMENT(/\^rem\{/,/\}/,{relevance:10, +contains:[a]}),{className:"meta",begin:"^@(?:BASE|USE|CLASS|OPTIONS)$", +relevance:10},{className:"title", +begin:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{ +className:"variable",begin:/\$\{?[\w\-.:]+\}?/},{className:"keyword", +begin:/\^[\w\-.:]+/},{className:"number",begin:"\\^#[0-9a-fA-F]+" +},e.C_NUMBER_MODE]}}})();hljs.registerLanguage("parser3",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/perl.min.js b/src/app/resources/assets/highlight/languages/perl.min.js new file mode 100644 index 0000000..e9bd43c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/perl.min.js @@ -0,0 +1,36 @@ +/*! `perl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,t=/[dualxmsipngr]{0,12}/,r={$pattern:/[\w.]+/, +keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0" +},s={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:r},i={begin:/->\{/, +end:/\}/},a={variants:[{begin:/\$\d/},{ +begin:n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])") +},{begin:/[$%@][^\s\w{]/,relevance:0}] +},c=[e.BACKSLASH_ESCAPE,s,a],o=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],g=(e,r,s="\\1")=>{ +const i="\\1"===s?s:n.concat(s,r) +;return n.concat(n.concat("(?:",e,")"),r,/(?:\\.|[^\\\/])*?/,i,/(?:\\.|[^\\\/])*?/,s,t) +},l=(e,r,s)=>n.concat(n.concat("(?:",e,")"),r,/(?:\\.|[^\\\/])*?/,s,t),d=[a,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{ +endsWithParent:!0}),i,{className:"string",contains:c,variants:[{ +begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[", +end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{ +begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">", +relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'", +contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{ +begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number", +begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", +relevance:0},{ +begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*", +keywords:"split return print reverse grep",relevance:0, +contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{ +begin:g("s|tr|y",n.either(...o,{capture:!0}))},{begin:g("s|tr|y","\\(","\\)")},{ +begin:g("s|tr|y","\\[","\\]")},{begin:g("s|tr|y","\\{","\\}")}],relevance:2},{ +className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{ +begin:l("(?:m|qr)?",/\//,/\//)},{begin:l("m|qr",n.either(...o,{capture:!0 +}),/\1/)},{begin:l("m|qr",/\(/,/\)/)},{begin:l("m|qr",/\[/,/\]/)},{ +begin:l("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub", +end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{ +begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$", +subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}] +}];return s.contains=d,i.contains=d,{name:"Perl",aliases:["pl","pm"],keywords:r, +contains:d}}})();hljs.registerLanguage("perl",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/pf.min.js b/src/app/resources/assets/highlight/languages/pf.min.js new file mode 100644 index 0000000..5f7cc4b --- /dev/null +++ b/src/app/resources/assets/highlight/languages/pf.min.js @@ -0,0 +1,10 @@ +/*! `pf` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var t=(()=>{"use strict";return t=>({name:"Packet Filter config", +aliases:["pf.conf"],keywords:{$pattern:/[a-z0-9_<>-]+/, +built_in:"block match pass load anchor|5 antispoof|10 set table", +keyword:"in out log quick on rdomain inet inet6 proto from port os to route allow-opts divert-packet divert-reply divert-to flags group icmp-type icmp6-type label once probability recieved-on rtable prio queue tos tag tagged user keep fragment for os drop af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin source-hash static-port dup-to reply-to route-to parent bandwidth default min max qlimit block-policy debug fingerprints hostid limit loginterface optimization reassemble ruleset-optimization basic none profile skip state-defaults state-policy timeout const counters persist no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy source-track global rule max-src-nodes max-src-states max-src-conn max-src-conn-rate overload flush scrub|5 max-mss min-ttl no-df|10 random-id", +literal:"all any no-route self urpf-failed egress|5 unknown"}, +contains:[t.HASH_COMMENT_MODE,t.NUMBER_MODE,t.QUOTE_STRING_MODE,{ +className:"variable",begin:/\$[\w\d#@][\w\d_]*/,relevance:0},{ +className:"variable",begin:/<(?!\/)/,end:/>/}]})})() +;hljs.registerLanguage("pf",t)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/pgsql.min.js b/src/app/resources/assets/highlight/languages/pgsql.min.js new file mode 100644 index 0000000..62f504c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/pgsql.min.js @@ -0,0 +1,69 @@ +/*! `pgsql` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var E=(()=>{"use strict";return E=>{ +const T=E.COMMENT("--","$"),N="\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$",A="BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR NAME OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ",R=A.trim().split(" ").map((E=>E.split("|")[0])).join("|"),I="ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP PERCENTILE_CONT PERCENTILE_DISC ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE NUM_NONNULLS NUM_NULLS ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT TRUNC WIDTH_BUCKET RANDOM SETSEED ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR TO_ASCII TO_HEX TRANSLATE OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 TIMEOFDAY TRANSACTION_TIMESTAMP|10 ENUM_FIRST ENUM_LAST ENUM_RANGE AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY INET_MERGE MACADDR8_SET7BIT ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA CURSOR_TO_XML CURSOR_TO_XMLSCHEMA SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA XMLATTRIBUTES TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY CURRVAL LASTVAL NEXTVAL SETVAL COALESCE NULLIF GREATEST LEAST ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY STRING_TO_ARRAY UNNEST ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE GENERATE_SERIES GENERATE_SUBSCRIPTS CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE GIN_CLEAN_PENDING_LIST SUPPRESS_REDUNDANT_UPDATES_TRIGGER LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE GROUPING CAST".split(" ").map((E=>E.split("|")[0])).join("|") +;return{name:"PostgreSQL",aliases:["postgres","postgresql"],supersetOf:"sql", +case_insensitive:!0,keywords:{ +keyword:"ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION INDEX PROCEDURE ASSERTION ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS DEFERRABLE RANGE DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED OF NOTHING NONE EXCLUDE ATTRIBUTE USAGE ROUTINES TRUE FALSE NAN INFINITY ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT OPEN SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ", +built_in:"CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 SQLSTATE SQLERRM|10 SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED INDEX_CORRUPTED " +},illegal:/:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/, +contains:[{className:"keyword",variants:[{begin:/\bTEXT\s*SEARCH\b/},{ +begin:/\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/},{ +begin:/\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/},{ +begin:/\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/},{ +begin:/\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/},{begin:/\bNULLS\s+(FIRST|LAST)\b/},{ +begin:/\bEVENT\s+TRIGGER\b/},{begin:/\b(MAPPING|OR)\s+REPLACE\b/},{ +begin:/\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/},{ +begin:/\b(SHARE|EXCLUSIVE)\s+MODE\b/},{ +begin:/\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/},{ +begin:/\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/ +},{begin:/\bPRESERVE\s+ROWS\b/},{begin:/\bDISCARD\s+PLANS\b/},{ +begin:/\bREFERENCING\s+(OLD|NEW)\b/},{begin:/\bSKIP\s+LOCKED\b/},{ +begin:/\bGROUPING\s+SETS\b/},{ +begin:/\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/},{ +begin:/\b(WITH|WITHOUT)\s+HOLD\b/},{ +begin:/\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/},{ +begin:/\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/},{ +begin:/\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/},{ +begin:/\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/},{begin:/\bIS\s+(NOT\s+)?UNKNOWN\b/ +},{begin:/\bSECURITY\s+LABEL\b/},{begin:/\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/ +},{begin:/\bWITH\s+(NO\s+)?DATA\b/},{begin:/\b(FOREIGN|SET)\s+DATA\b/},{ +begin:/\bSET\s+(CATALOG|CONSTRAINTS)\b/},{begin:/\b(WITH|FOR)\s+ORDINALITY\b/},{ +begin:/\bIS\s+(NOT\s+)?DOCUMENT\b/},{ +begin:/\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/},{ +begin:/\b(STRIP|PRESERVE)\s+WHITESPACE\b/},{ +begin:/\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/},{ +begin:/\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/},{begin:/\bAT\s+TIME\s+ZONE\b/},{ +begin:/\bGRANTED\s+BY\b/},{begin:/\bRETURN\s+(QUERY|NEXT)\b/},{ +begin:/\b(ATTACH|DETACH)\s+PARTITION\b/},{ +begin:/\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/},{ +begin:/\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/ +},{begin:/\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/}]},{ +begin:/\b(FORMAT|FAMILY|VERSION)\s*\(/},{begin:/\bINCLUDE\s*\(/, +keywords:"INCLUDE"},{begin:/\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/ +},{ +begin:/\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/ +},{begin:/\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/,relevance:10},{ +begin:/\bEXTRACT\s*\(/,end:/\bFROM\b/,returnEnd:!0,keywords:{ +type:"CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR TIMEZONE_MINUTE WEEK YEAR" +}},{begin:/\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/,keywords:{keyword:"NAME"}},{ +begin:/\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/,keywords:{ +keyword:"DOCUMENT CONTENT"}},{beginKeywords:"CACHE INCREMENT MAXVALUE MINVALUE", +end:E.C_NUMBER_RE,returnEnd:!0,keywords:"BY CACHE INCREMENT MAXVALUE MINVALUE" +},{className:"type",begin:/\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/},{className:"type", +begin:/\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/ +},{ +begin:/\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/, +keywords:{keyword:"RETURNS", +type:"LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER" +}},{begin:"\\b("+I+")\\s*\\("},{begin:"\\.("+R+")\\b"},{ +begin:"\\b("+R+")\\s+PATH\\b",keywords:{keyword:"PATH", +type:A.replace("PATH ","")}},{className:"type",begin:"\\b("+R+")\\b"},{ +className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{ +className:"string",begin:"(e|E|u&|U&)'",end:"'",contains:[{begin:"\\\\."}], +relevance:10},E.END_SAME_AS_BEGIN({begin:N,end:N,contains:[{ +subLanguage:["pgsql","perl","python","tcl","r","lua","java","php","ruby","bash","scheme","xml","json"], +endsWithParent:!0}]}),{begin:'"',end:'"',contains:[{begin:'""'}] +},E.C_NUMBER_MODE,E.C_BLOCK_COMMENT_MODE,T,{className:"meta",variants:[{ +begin:"%(ROW)?TYPE",relevance:10},{begin:"\\$\\d+"},{begin:"^#\\w",end:"$"}]},{ +className:"symbol",begin:"<<\\s*[a-zA-Z_][a-zA-Z_0-9$]*\\s*>>",relevance:10}]}} +})();hljs.registerLanguage("pgsql",E)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/php-template.min.js b/src/app/resources/assets/highlight/languages/php-template.min.js new file mode 100644 index 0000000..6a0b703 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/php-template.min.js @@ -0,0 +1,8 @@ +/*! `php-template` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var n=(()=>{"use strict";return n=>({name:"PHP template", +subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php", +contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{ +begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{illegal:null, +className:null,contains:null,skip:!0}),n.inherit(n.QUOTE_STRING_MODE,{ +illegal:null,className:null,contains:null,skip:!0})]}]})})() +;hljs.registerLanguage("php-template",n)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/php.min.js b/src/app/resources/assets/highlight/languages/php.min.js new file mode 100644 index 0000000..7bfc840 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/php.min.js @@ -0,0 +1,56 @@ +/*! `php` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const t=e.regex,a=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,a),n=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,a),o={ +scope:"variable",match:"\\$+"+r},c={scope:"subst",variants:[{begin:/\$\w+/},{ +begin:/\{\$/,end:/\}/}]},i=e.inherit(e.APOS_STRING_MODE,{illegal:null +}),s="[ \t\n]",l={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{ +illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(c) +}),i,e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/, +contains:e.QUOTE_STRING_MODE.contains.concat(c)})]},_={scope:"number", +variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{ +begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{ +begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{ +begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?" +}],relevance:0 +},d=["false","null","true"],p=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],b=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],E={ +keyword:p,literal:(e=>{const t=[];return e.forEach((e=>{ +t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase()) +})),t})(d),built_in:b},u=e=>e.map((e=>e.replace(/\|\d+$/,""))),g={variants:[{ +match:[/new/,t.concat(s,"+"),t.concat("(?!",u(b).join("\\b|"),"\\b)"),n],scope:{ +1:"keyword",4:"title.class"}}]},h=t.concat(r,"\\b(?!\\()"),m={variants:[{ +match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),h],scope:{2:"variable.constant" +}},{match:[/::/,/class/],scope:{2:"variable.language"}},{ +match:[n,t.concat(/::/,t.lookahead(/(?!class\b)/)),h],scope:{1:"title.class", +3:"variable.constant"}},{match:[n,t.concat("::",t.lookahead(/(?!class\b)/))], +scope:{1:"title.class"}},{match:[n,/::/,/class/],scope:{1:"title.class", +3:"variable.language"}}]},I={scope:"attr", +match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},f={relevance:0, +begin:/\(/,end:/\)/,keywords:E,contains:[I,o,m,e.C_BLOCK_COMMENT_MODE,l,_,g] +},O={relevance:0, +match:[/\b/,t.concat("(?!fn\\b|function\\b|",u(p).join("\\b|"),"|",u(b).join("\\b|"),"\\b)"),r,t.concat(s,"*"),t.lookahead(/(?=\()/)], +scope:{3:"title.function.invoke"},contains:[f]};f.contains.push(O) +;const v=[I,m,e.C_BLOCK_COMMENT_MODE,l,_,g];return{case_insensitive:!1, +keywords:E,contains:[{begin:t.concat(/#\[\s*/,n),beginScope:"meta",end:/]/, +endScope:"meta",keywords:{literal:d,keyword:["new","array"]},contains:[{ +begin:/\[/,end:/]/,keywords:{literal:d,keyword:["new","array"]}, +contains:["self",...v]},...v,{scope:"meta",match:n}] +},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{ +scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/, +keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE, +contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{ +begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{ +begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},o,O,m,{ +match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},g,{ +scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/, +excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use" +},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params", +begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:E, +contains:["self",o,m,e.C_BLOCK_COMMENT_MODE,l,_]}]},{scope:"class",variants:[{ +beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait", +illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{ +beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ +beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/, +contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{ +beginKeywords:"use",relevance:0,end:";",contains:[{ +match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},l,_]} +}})();hljs.registerLanguage("php",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/plaintext.min.js b/src/app/resources/assets/highlight/languages/plaintext.min.js new file mode 100644 index 0000000..010b0d7 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/plaintext.min.js @@ -0,0 +1,4 @@ +/*! `plaintext` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var t=(()=>{"use strict";return t=>({name:"Plain text", +aliases:["text","txt"],disableAutodetect:!0})})() +;hljs.registerLanguage("plaintext",t)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/pony.min.js b/src/app/resources/assets/highlight/languages/pony.min.js new file mode 100644 index 0000000..23f01bd --- /dev/null +++ b/src/app/resources/assets/highlight/languages/pony.min.js @@ -0,0 +1,12 @@ +/*! `pony` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Pony",keywords:{ +keyword:"actor addressof and as be break class compile_error compile_intrinsic consume continue delegate digestof do else elseif embed end error for fun if ifdef in interface is isnt lambda let match new not object or primitive recover repeat return struct then trait try type until use var where while with xor", +meta:"iso val tag trn box ref",literal:"this false true"},contains:[{ +className:"type",begin:"\\b_?[A-Z][\\w]*",relevance:0},{className:"string", +begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"', +contains:[e.BACKSLASH_ESCAPE]},{className:"string",begin:"'",end:"'", +contains:[e.BACKSLASH_ESCAPE],relevance:0},{begin:e.IDENT_RE+"'",relevance:0},{ +className:"number", +begin:"(-?)(\\b0[xX][a-fA-F0-9]+|\\b0[bB][01]+|(\\b\\d+(_\\d+)?(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", +relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]})})() +;hljs.registerLanguage("pony",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/powershell.min.js b/src/app/resources/assets/highlight/languages/powershell.min.js new file mode 100644 index 0000000..2ebdb6b --- /dev/null +++ b/src/app/resources/assets/highlight/languages/powershell.min.js @@ -0,0 +1,39 @@ +/*! `powershell` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={$pattern:/-?[A-z\.\-]+\b/, +keyword:"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter", +built_in:"ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write" +},s={begin:"`[\\s\\S]",relevance:0},i={className:"variable",variants:[{ +begin:/\$\B/},{className:"keyword",begin:/\$this/},{begin:/\$[\w\d][\w\d_:]*/}] +},a={className:"string",variants:[{begin:/"/,end:/"/},{begin:/@"/,end:/^"@/}], +contains:[s,i,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},t={ +className:"string",variants:[{begin:/'/,end:/'/},{begin:/@'/,end:/^'@/}] +},r=e.inherit(e.COMMENT(null,null),{variants:[{begin:/#/,end:/$/},{begin:/<#/, +end:/#>/}],contains:[{className:"doctag",variants:[{ +begin:/\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/ +},{ +begin:/\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/ +}]}]}),c={className:"class",beginKeywords:"class enum",end:/\s*[{]/, +excludeEnd:!0,relevance:0,contains:[e.TITLE_MODE]},l={className:"function", +begin:/function\s+/,end:/\s*\{|$/,excludeEnd:!0,returnBegin:!0,relevance:0, +contains:[{begin:"function",relevance:0,className:"keyword"},{className:"title", +begin:/\w[\w\d]*((-)[\w\d]+)*/,relevance:0},{begin:/\(/,end:/\)/, +className:"params",relevance:0,contains:[i]}]},o={begin:/using\s/,end:/$/, +returnBegin:!0,contains:[a,t,{className:"keyword", +begin:/(using|assembly|command|module|namespace|type)/}]},p={ +className:"function",begin:/\[.*\]\s*[\w]+[ ]??\(/,end:/$/,returnBegin:!0, +relevance:0,contains:[{className:"keyword", +begin:"(".concat(n.keyword.toString().replace(/\s/g,"|"),")\\b"),endsParent:!0, +relevance:0},e.inherit(e.TITLE_MODE,{endsParent:!0})] +},g=[p,r,s,e.NUMBER_MODE,a,t,{className:"built_in",variants:[{ +begin:"(Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where)+(-)[\\w\\d]+" +}]},i,{className:"literal",begin:/\$(null|true|false)\b/},{ +className:"selector-tag",begin:/@\B/,relevance:0}],m={begin:/\[/,end:/\]/, +excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[].concat("self",g,{ +begin:"(string|char|byte|int|long|bool|decimal|single|double|DateTime|xml|array|hashtable|void)", +className:"built_in",relevance:0},{className:"type",begin:/[\.\w\d]+/, +relevance:0})};return p.contains.unshift(m),{name:"PowerShell", +aliases:["pwsh","ps","ps1"],case_insensitive:!0,keywords:n, +contains:g.concat(c,l,o,{variants:[{className:"operator", +begin:"(-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor)\\b" +},{className:"literal",begin:/(-){1,2}[\w\d-]+/,relevance:0}]},m)}}})() +;hljs.registerLanguage("powershell",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/processing.min.js b/src/app/resources/assets/highlight/languages/processing.min.js new file mode 100644 index 0000000..4c32b88 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/processing.min.js @@ -0,0 +1,18 @@ +/*! `processing` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const t=e.regex,a=["displayHeight","displayWidth","mouseY","mouseX","mousePressed","pmouseX","pmouseY","key","keyCode","pixels","focused","frameCount","frameRate","height","width","size","createGraphics","beginDraw","createShape","loadShape","PShape","arc","ellipse","line","point","quad","rect","triangle","bezier","bezierDetail","bezierPoint","bezierTangent","curve","curveDetail","curvePoint","curveTangent","curveTightness","shape","shapeMode","beginContour","beginShape","bezierVertex","curveVertex","endContour","endShape","quadraticVertex","vertex","ellipseMode","noSmooth","rectMode","smooth","strokeCap","strokeJoin","strokeWeight","mouseClicked","mouseDragged","mouseMoved","mousePressed","mouseReleased","mouseWheel","keyPressed","keyPressedkeyReleased","keyTyped","print","println","save","saveFrame","day","hour","millis","minute","month","second","year","background","clear","colorMode","fill","noFill","noStroke","stroke","alpha","blue","brightness","color","green","hue","lerpColor","red","saturation","modelX","modelY","modelZ","screenX","screenY","screenZ","ambient","emissive","shininess","specular","add","createImage","beginCamera","camera","endCamera","frustum","ortho","perspective","printCamera","printProjection","cursor","frameRate","noCursor","exit","loop","noLoop","popStyle","pushStyle","redraw","binary","boolean","byte","char","float","hex","int","str","unbinary","unhex","join","match","matchAll","nf","nfc","nfp","nfs","split","splitTokens","trim","append","arrayCopy","concat","expand","reverse","shorten","sort","splice","subset","box","sphere","sphereDetail","createInput","createReader","loadBytes","loadJSONArray","loadJSONObject","loadStrings","loadTable","loadXML","open","parseXML","saveTable","selectFolder","selectInput","beginRaw","beginRecord","createOutput","createWriter","endRaw","endRecord","PrintWritersaveBytes","saveJSONArray","saveJSONObject","saveStream","saveStrings","saveXML","selectOutput","popMatrix","printMatrix","pushMatrix","resetMatrix","rotate","rotateX","rotateY","rotateZ","scale","shearX","shearY","translate","ambientLight","directionalLight","lightFalloff","lights","lightSpecular","noLights","normal","pointLight","spotLight","image","imageMode","loadImage","noTint","requestImage","tint","texture","textureMode","textureWrap","blend","copy","filter","get","loadPixels","set","updatePixels","blendMode","loadShader","PShaderresetShader","shader","createFont","loadFont","text","textFont","textAlign","textLeading","textMode","textSize","textWidth","textAscent","textDescent","abs","ceil","constrain","dist","exp","floor","lerp","log","mag","map","max","min","norm","pow","round","sq","sqrt","acos","asin","atan","atan2","cos","degrees","radians","sin","tan","noise","noiseDetail","noiseSeed","random","randomGaussian","randomSeed"],r=e.IDENT_RE,s={ +variants:[{match:t.concat(t.either(...a),t.lookahead(/\s*\(/)), +className:"built_in"},{relevance:0, +match:t.concat(/\b(?!for|if|while)/,r,t.lookahead(/\s*\(/)), +className:"title.function"}]},o={match:[/new\s+/,r],className:{1:"keyword", +2:"class.title"}},i={relevance:0,match:[/\./,r],className:{2:"property"}},n={ +variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,r]},{ +match:[/class/,/\s+/,r]}],className:{1:"keyword",3:"title.class",5:"keyword", +7:"title.class.inherited"}};return{name:"Processing",aliases:["pde"],keywords:{ +keyword:["abstract","assert","break","case","catch","const","continue","default","else","enum","final","finally","for","if","import","instanceof","long","native","new","package","private","private","protected","protected","public","public","return","static","strictfp","switch","synchronized","throw","throws","transient","try","void","volatile","while"], +literal:"P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI null true false", +title:"setup draw",variable:"super this", +built_in:[...a,"BufferedReader","PVector","PFont","PImage","PGraphics","HashMap","String","Array","FloatDict","ArrayList","FloatList","IntDict","IntList","JSONArray","JSONObject","Object","StringDict","StringList","Table","TableRow","XML"], +type:["boolean","byte","char","color","double","float","int","long","short"]}, +contains:[n,o,s,i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE] +}}})();hljs.registerLanguage("processing",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/profile.min.js b/src/app/resources/assets/highlight/languages/profile.min.js new file mode 100644 index 0000000..27ce04f --- /dev/null +++ b/src/app/resources/assets/highlight/languages/profile.min.js @@ -0,0 +1,9 @@ +/*! `profile` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Python profiler", +contains:[e.C_NUMBER_MODE,{begin:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}", +end:":",excludeEnd:!0},{begin:"(ncalls|tottime|cumtime)",end:"$", +keywords:"ncalls tottime|10 cumtime|10 filename",relevance:10},{ +begin:"function calls",end:"$",contains:[e.C_NUMBER_MODE],relevance:10 +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\(", +end:"\\)$",excludeBegin:!0,excludeEnd:!0,relevance:0}]})})() +;hljs.registerLanguage("profile",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/prolog.min.js b/src/app/resources/assets/highlight/languages/prolog.min.js new file mode 100644 index 0000000..8e60123 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/prolog.min.js @@ -0,0 +1,11 @@ +/*! `prolog` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var n=(()=>{"use strict";return n=>{const e={begin:/\(/,end:/\)/, +relevance:0},a={begin:/\[/,end:/\]/},s={className:"comment",begin:/%/,end:/$/, +contains:[n.PHRASAL_WORDS_MODE]},i={className:"string",begin:/`/,end:/`/, +contains:[n.BACKSLASH_ESCAPE]},g=[{begin:/[a-z][A-Za-z0-9_]*/,relevance:0},{ +className:"symbol",variants:[{begin:/[A-Z][a-zA-Z0-9_]*/},{ +begin:/_[A-Za-z0-9_]*/}],relevance:0},e,{begin:/:-/ +},a,s,n.C_BLOCK_COMMENT_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,i,{ +className:"string",begin:/0'(\\'|.)/},{className:"string",begin:/0'\\s/ +},n.C_NUMBER_MODE];return e.contains=g,a.contains=g,{name:"Prolog", +contains:g.concat([{begin:/\.$/}])}}})();hljs.registerLanguage("prolog",n)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/properties.min.js b/src/app/resources/assets/highlight/languages/properties.min.js new file mode 100644 index 0000000..04d44d8 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/properties.min.js @@ -0,0 +1,11 @@ +/*! `properties` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const t="[ \\t\\f]*",n="([^\\\\:= \\t\\f\\n]|\\\\.)+";return{name:".properties", +disableAutodetect:!0,case_insensitive:!0,illegal:/\S/, +contains:[e.COMMENT("^\\s*[!#]","$"),{returnBegin:!0,variants:[{ +begin:n+"[ \\t\\f]*[:=][ \\t\\f]*"},{begin:n+"[ \\t\\f]+"}],contains:[{ +className:"attr",begin:n,endsParent:!0}],starts:{ +end:"([ \\t\\f]*[:=][ \\t\\f]*|[ \\t\\f]+)",relevance:0,starts:{ +className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\\\"},{ +begin:"\\\\\\n"}]}}},{className:"attr",begin:n+t+"$"}]}}})() +;hljs.registerLanguage("properties",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/protobuf.min.js b/src/app/resources/assets/highlight/languages/protobuf.min.js new file mode 100644 index 0000000..3c9dcae --- /dev/null +++ b/src/app/resources/assets/highlight/languages/protobuf.min.js @@ -0,0 +1,11 @@ +/*! `protobuf` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t={ +match:[/(message|enum|service)\s+/,e.IDENT_RE],scope:{1:"keyword", +2:"title.class"}};return{name:"Protocol Buffers",keywords:{ +keyword:["package","import","option","optional","required","repeated","group","oneof"], +type:["double","float","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","bool","string","bytes"], +literal:["true","false"]}, +contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t,{ +className:"function",beginKeywords:"rpc",end:/[{;]/,excludeEnd:!0, +keywords:"rpc returns"},{begin:/^\s*[A-Z_]+(?=\s*=[^\n]+;$)/}]}}})() +;hljs.registerLanguage("protobuf",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/puppet.min.js b/src/app/resources/assets/highlight/languages/puppet.min.js new file mode 100644 index 0000000..fcb8d5d --- /dev/null +++ b/src/app/resources/assets/highlight/languages/puppet.min.js @@ -0,0 +1,18 @@ +/*! `puppet` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const s=e.COMMENT("#","$"),r="([A-Za-z_]|::)(\\w|::)*",a=e.inherit(e.TITLE_MODE,{ +begin:r}),n={className:"variable",begin:"\\$"+r},i={className:"string", +contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ +}]};return{name:"Puppet",aliases:["pp"],contains:[s,n,i,{beginKeywords:"class", +end:"\\{|;",illegal:/=/,contains:[a,s]},{beginKeywords:"define",end:/\{/, +contains:[{className:"section",begin:e.IDENT_RE,endsParent:!0}]},{ +begin:e.IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\S/,contains:[{ +className:"keyword",begin:e.IDENT_RE,relevance:.2},{begin:/\{/,end:/\}/, +keywords:{ +keyword:"and case default else elsif false if in import enherits node or true undef unless main settings $string ", +literal:"alias audit before loglevel noop require subscribe tag owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check en_address ip_address realname command environment hour monute month monthday special target weekday creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey sslverify mounted", +built_in:"architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version" +},relevance:0,contains:[i,s,{begin:"[a-zA-Z_]+\\s*=>",returnBegin:!0,end:"=>", +contains:[{className:"attr",begin:e.IDENT_RE}]},{className:"number", +begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", +relevance:0},n]}],relevance:0}]}}})();hljs.registerLanguage("puppet",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/purebasic.min.js b/src/app/resources/assets/highlight/languages/purebasic.min.js new file mode 100644 index 0000000..818b918 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/purebasic.min.js @@ -0,0 +1,11 @@ +/*! `purebasic` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"PureBASIC", +aliases:["pb","pbi"], +keywords:"Align And Array As Break CallDebugger Case CompilerCase CompilerDefault CompilerElse CompilerElseIf CompilerEndIf CompilerEndSelect CompilerError CompilerIf CompilerSelect CompilerWarning Continue Data DataSection Debug DebugLevel Declare DeclareC DeclareCDLL DeclareDLL DeclareModule Default Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM EnableDebugger EnableExplicit End EndDataSection EndDeclareModule EndEnumeration EndIf EndImport EndInterface EndMacro EndModule EndProcedure EndSelect EndStructure EndStructureUnion EndWith Enumeration EnumerationBinary Extends FakeReturn For ForEach ForEver Global Gosub Goto If Import ImportC IncludeBinary IncludeFile IncludePath Interface List Macro MacroExpandedCount Map Module NewList NewMap Next Not Or Procedure ProcedureC ProcedureCDLL ProcedureDLL ProcedureReturn Protected Prototype PrototypeC ReDim Read Repeat Restore Return Runtime Select Shared Static Step Structure StructureUnion Swap Threaded To UndefineMacro Until Until UnuseModule UseModule Wend While With XIncludeFile XOr", +contains:[e.COMMENT(";","$",{relevance:0}),{className:"function", +begin:"\\b(Procedure|Declare)(C|CDLL|DLL)?\\b",end:"\\(",excludeEnd:!0, +returnBegin:!0,contains:[{className:"keyword", +begin:"(Procedure|Declare)(C|CDLL|DLL)?",excludeEnd:!0},{className:"type", +begin:"\\.\\w*"},e.UNDERSCORE_TITLE_MODE]},{className:"string",begin:'(~)?"', +end:'"',illegal:"\\n"},{className:"symbol",begin:"#[a-zA-Z_]\\w*\\$?"}]})})() +;hljs.registerLanguage("purebasic",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/python-repl.min.js b/src/app/resources/assets/highlight/languages/python-repl.min.js new file mode 100644 index 0000000..5d391d9 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/python-repl.min.js @@ -0,0 +1,5 @@ +/*! `python-repl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var a=(()=>{"use strict";return a=>({aliases:["pycon"],contains:[{ +className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"} +},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]})})() +;hljs.registerLanguage("python-repl",a)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/python.min.js b/src/app/resources/assets/highlight/languages/python.min.js new file mode 100644 index 0000000..19ab974 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/python.min.js @@ -0,0 +1,41 @@ +/*! `python` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,a=/[\p{XID_Start}_]\p{XID_Continue}*/u,i=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],s={ +$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i, +built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], +literal:["__debug__","Ellipsis","False","None","NotImplemented","True"], +type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"] +},t={className:"meta",begin:/^(>>>|\.\.\.) /},r={className:"subst",begin:/\{/, +end:/\}/,keywords:s,illegal:/#/},l={begin:/\{\{/,relevance:0},b={ +className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,t],relevance:10},{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/, +contains:[e.BACKSLASH_ESCAPE,t],relevance:10},{ +begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,t,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/, +end:/"""/,contains:[e.BACKSLASH_ESCAPE,t,l,r]},{begin:/([uU]|[rR])'/,end:/'/, +relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{ +begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/, +end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/, +contains:[e.BACKSLASH_ESCAPE,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,l,r]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},o="[0-9](_?[0-9])*",c=`(\\b(${o}))?\\.(${o})|\\b(${o})\\.`,d="\\b|"+i.join("|"),g={ +className:"number",relevance:0,variants:[{ +begin:`(\\b(${o})|(${c}))[eE][+-]?(${o})[jJ]?(?=${d})`},{begin:`(${c})[jJ]?`},{ +begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{ +begin:`\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${d})` +},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\b(${o})[jJ](?=${d})` +}]},p={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:s, +contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={ +className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/, +end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s, +contains:["self",t,g,b,e.HASH_COMMENT_MODE]}]};return r.contains=[b,g,t],{ +name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:s, +illegal:/(<\/|->|\?)|=>/,contains:[t,g,{begin:/\bself\b/},{beginKeywords:"if", +relevance:0},b,p,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{ +1:"keyword",3:"title.function"},contains:[m]},{variants:[{ +match:[/\bclass/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/\bclass/,/\s+/,a]}], +scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{ +className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[g,m,b]}]}}})() +;hljs.registerLanguage("python",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/q.min.js b/src/app/resources/assets/highlight/languages/q.min.js new file mode 100644 index 0000000..2abd76a --- /dev/null +++ b/src/app/resources/assets/highlight/languages/q.min.js @@ -0,0 +1,8 @@ +/*! `q` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Q",aliases:["k","kdb"], +keywords:{$pattern:/(`?)[A-Za-z0-9_]+\b/, +keyword:"do while select delete by update from",literal:"0b 1b", +built_in:"neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum", +type:"`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid" +},contains:[e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]})})() +;hljs.registerLanguage("q",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/qml.min.js b/src/app/resources/assets/highlight/languages/qml.min.js new file mode 100644 index 0000000..faaca5c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/qml.min.js @@ -0,0 +1,29 @@ +/*! `qml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n="[a-zA-Z_][a-zA-Z0-9\\._]*",r={className:"attribute",begin:"\\bid\\s*:", +starts:{className:"string",end:n,returnEnd:!1}},a={begin:n+"\\s*:", +returnBegin:!0,contains:[{className:"attribute",begin:n,end:"\\s*:", +excludeEnd:!0,relevance:0}],relevance:0},t={begin:e.regex.concat(n,/\s*\{/), +end:/\{/,returnBegin:!0,relevance:0,contains:[e.inherit(e.TITLE_MODE,{begin:n})] +};return{name:"QML",aliases:["qt"],case_insensitive:!1,keywords:{ +keyword:"in of on if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await import", +literal:"true false null undefined NaN Infinity", +built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Behavior bool color coordinate date double enumeration font geocircle georectangle geoshape int list matrix4x4 parent point quaternion real rect size string url variant vector2d vector3d vector4d Promise" +},contains:[{className:"meta",begin:/^\s*['"]use (strict|asm)['"]/ +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`", +contains:[e.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"}] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{ +begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}], +relevance:0},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", +keywords:"return throw case", +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{begin:/\s*[);\]]/,relevance:0,subLanguage:"xml"}],relevance:0},{ +className:"keyword",begin:"\\bsignal\\b",starts:{className:"string", +end:"(\\(|:|=|;|,|//|/\\*|$)",returnEnd:!0}},{className:"keyword", +begin:"\\bproperty\\b",starts:{className:"string",end:"(:|=|;|,|//|/\\*|$)", +returnEnd:!0}},{className:"function",beginKeywords:"function",end:/\{/, +excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/ +}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}],illegal:/\[|%/},{ +begin:"\\."+e.IDENT_RE,relevance:0},r,a,t],illegal:/#/}}})() +;hljs.registerLanguage("qml",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/r.min.js b/src/app/resources/assets/highlight/languages/r.min.js new file mode 100644 index 0000000..97cc04f --- /dev/null +++ b/src/app/resources/assets/highlight/languages/r.min.js @@ -0,0 +1,26 @@ +/*! `r` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,i=a.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),s=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,t=a.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/) +;return{name:"R",keywords:{$pattern:n, +keyword:"function if in break next repeat else for while", +literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10", +built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm" +},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/, +starts:{end:a.lookahead(a.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)), +endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{ +scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0 +}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}] +}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE], +variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"', +relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{ +1:"operator",2:"number"},match:[s,i]},{scope:{1:"operator",2:"number"}, +match:[/%[^%]*%/,i]},{scope:{1:"punctuation",2:"number"},match:[t,i]},{scope:{ +2:"number"},match:[/[^a-zA-Z0-9._]|^/,i]}]},{scope:{3:"operator"}, +match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:s},{ +match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:t},{begin:"`",end:"`", +contains:[{begin:/\\./}]}]}}})();hljs.registerLanguage("r",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/reasonml.min.js b/src/app/resources/assets/highlight/languages/reasonml.min.js new file mode 100644 index 0000000..4c514c6 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/reasonml.min.js @@ -0,0 +1,43 @@ +/*! `reasonml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n="~?[a-z$_][0-9a-zA-Z$_]*",a="`?[A-Z$_][0-9a-zA-Z$_]*",s="("+["||","++","**","+.","*","/","*.","/.","..."].map((e=>e.split("").map((e=>"\\"+e)).join(""))).join("|")+"|\\|>|&&|==|===)",i="\\s+"+s+"\\s+",r={ +keyword:"and as asr assert begin class constraint do done downto else end exception external for fun function functor if in include inherit initializer land lazy let lor lsl lsr lxor match method mod module mutable new nonrec object of open or private rec sig struct then to try type val virtual when while with", +built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ", +literal:"true false" +},l="\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",t={ +className:"number",relevance:0,variants:[{begin:l},{begin:"\\(-"+l+"\\)"}]},c={ +className:"operator",relevance:0,begin:s},o=[{className:"identifier", +relevance:0,begin:n},c,t],g=[e.QUOTE_STRING_MODE,c,{className:"module", +begin:"\\b"+a,returnBegin:!0,relevance:0,end:".",contains:[{ +className:"identifier",begin:a,relevance:0}]}],b=[{className:"module", +begin:"\\b"+a,returnBegin:!0,end:".",relevance:0,contains:[{ +className:"identifier",begin:a,relevance:0}]}],m={className:"function", +relevance:0,keywords:r,variants:[{begin:"\\s(\\(\\.?.*?\\)|"+n+")\\s*=>", +end:"\\s*=>",returnBegin:!0,relevance:0,contains:[{className:"params", +variants:[{begin:n},{ +begin:"~?[a-z$_][0-9a-zA-Z$_]*(\\s*:\\s*[a-z$_][0-9a-z$_]*(\\(\\s*('?[a-z$_][0-9a-z$_]*\\s*(,'?[a-z$_][0-9a-z$_]*\\s*)*)?\\))?){0,2}" +},{begin:/\(\s*\)/}]}]},{begin:"\\s\\(\\.?[^;\\|]*\\)\\s*=>",end:"\\s=>", +returnBegin:!0,relevance:0,contains:[{className:"params",relevance:0,variants:[{ +begin:n,end:"(,|\\n|\\))",relevance:0,contains:[c,{className:"typing",begin:":", +end:"(,|\\n)",returnBegin:!0,relevance:0,contains:b}]}]}]},{ +begin:"\\(\\.\\s"+n+"\\)\\s*=>"}]};g.push(m);const d={className:"constructor", +begin:a+"\\(",end:"\\)",illegal:"\\n",keywords:r, +contains:[e.QUOTE_STRING_MODE,c,{className:"params",begin:"\\b"+n}]},u={ +className:"pattern-match",begin:"\\|",returnBegin:!0,keywords:r,end:"=>", +relevance:0,contains:[d,c,{relevance:0,className:"constructor",begin:a}]},v={ +className:"module-access",keywords:r,returnBegin:!0,variants:[{ +begin:"\\b("+a+"\\.)+"+n},{begin:"\\b("+a+"\\.)+\\(",end:"\\)",returnBegin:!0, +contains:[m,{begin:"\\(",end:"\\)",relevance:0,skip:!0}].concat(g)},{ +begin:"\\b("+a+"\\.)+\\{",end:/\}/}],contains:g};return b.push(v),{ +name:"ReasonML",aliases:["re"],keywords:r,illegal:"(:-|:=|\\$\\{|\\+=)", +contains:[e.COMMENT("/\\*","\\*/",{illegal:"^(#,\\/\\/)"}),{ +className:"character",begin:"'(\\\\[^']+|[^'])'",illegal:"\\n",relevance:0 +},e.QUOTE_STRING_MODE,{className:"literal",begin:"\\(\\)",relevance:0},{ +className:"literal",begin:"\\[\\|",end:"\\|\\]",relevance:0,contains:o},{ +className:"literal",begin:"\\[",end:"\\]",relevance:0,contains:o},d,{ +className:"operator",begin:i,illegal:"--\x3e",relevance:0 +},t,e.C_LINE_COMMENT_MODE,u,m,{className:"module-def", +begin:"\\bmodule\\s+"+n+"\\s+"+a+"\\s+=\\s+\\{",end:/\}/,returnBegin:!0, +keywords:r,relevance:0,contains:[{className:"module",relevance:0,begin:a},{ +begin:/\{/,end:/\}/,relevance:0,skip:!0}].concat(g)},v]}}})() +;hljs.registerLanguage("reasonml",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/rib.min.js b/src/app/resources/assets/highlight/languages/rib.min.js new file mode 100644 index 0000000..224dd2d --- /dev/null +++ b/src/app/resources/assets/highlight/languages/rib.min.js @@ -0,0 +1,6 @@ +/*! `rib` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"RenderMan RIB", +keywords:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd", +illegal:"{var e=(()=>{"use strict";return e=>{const n="[a-zA-Z-_][^\\n{]+\\{",a={ +className:"attribute",begin:/[a-zA-Z-_]+/,end:/\s*:/,excludeEnd:!0,starts:{ +end:";",relevance:0,contains:[{className:"variable",begin:/\.[a-zA-Z-_]+/},{ +className:"keyword",begin:/\(optional\)/}]}};return{name:"Roboconf", +aliases:["graph","instances"],case_insensitive:!0,keywords:"import",contains:[{ +begin:"^facet "+n,end:/\}/,keywords:"facet",contains:[a,e.HASH_COMMENT_MODE]},{ +begin:"^\\s*instance of "+n,end:/\}/, +keywords:"name count channels instance-data instance-state instance of", +illegal:/\S/,contains:["self",a,e.HASH_COMMENT_MODE]},{begin:"^"+n,end:/\}/, +contains:[a,e.HASH_COMMENT_MODE]},e.HASH_COMMENT_MODE]}}})() +;hljs.registerLanguage("roboconf",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/routeros.min.js b/src/app/resources/assets/highlight/languages/routeros.min.js new file mode 100644 index 0000000..9e0ef42 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/routeros.min.js @@ -0,0 +1,22 @@ +/*! `routeros` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const r="foreach do while for if from to step else on-error and or not in",n="true false yes no nothing nil null",i={ +className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/ +}]},s={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i,{ +className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]},t={ +className:"string",begin:/'/,end:/'/};return{name:"MikroTik RouterOS script", +aliases:["mikrotik"],case_insensitive:!0,keywords:{$pattern:/:?[\w-]+/, +literal:n, +keyword:r+" :"+r.split(" ").join(" :")+" :"+"global local beep delay put len typeof pick log time set find environment terminal error execute parse resolve toarray tobool toid toip toip6 tonum tostr totime".split(" ").join(" :") +},contains:[{variants:[{begin:/\/\*/,end:/\*\//},{begin:/\/\//,end:/$/},{ +begin:/<\//,end:/>/}],illegal:/./},e.COMMENT("^#","$"),s,t,i,{ +begin:/[\w-]+=([^\s{}[\]()>]+)/,relevance:0,returnBegin:!0,contains:[{ +className:"attribute",begin:/[^=]+/},{begin:/=/,endsWithParent:!0,relevance:0, +contains:[s,t,i,{className:"literal",begin:"\\b("+n.split(" ").join("|")+")\\b" +},{begin:/("[^"]*"|[^\s{}[\]]+)/}]}]},{className:"number",begin:/\*[0-9a-fA-F]+/ +},{ +begin:"\\b(add|remove|enable|disable|set|get|print|export|edit|find|run|debug|error|info|warning)([\\s[(\\]|])", +returnBegin:!0,contains:[{className:"built_in",begin:/\w+/}]},{ +className:"built_in",variants:[{ +begin:"(\\.\\./|/|\\s)((traffic-flow|traffic-generator|firewall|scheduler|aaa|accounting|address-list|address|align|area|bandwidth-server|bfd|bgp|bridge|client|clock|community|config|connection|console|customer|default|dhcp-client|dhcp-server|discovery|dns|e-mail|ethernet|filter|firmware|gps|graphing|group|hardware|health|hotspot|identity|igmp-proxy|incoming|instance|interface|ip|ipsec|ipv6|irq|l2tp-server|lcd|ldp|logging|mac-server|mac-winbox|mangle|manual|mirror|mme|mpls|nat|nd|neighbor|network|note|ntp|ospf|ospf-v3|ovpn-server|page|peer|pim|ping|policy|pool|port|ppp|pppoe-client|pptp-server|prefix|profile|proposal|proxy|queue|radius|resource|rip|ripng|route|routing|screen|script|security-profiles|server|service|service-port|settings|shares|smb|sms|sniffer|snmp|snooper|socks|sstp-server|system|tool|tracking|type|upgrade|upnp|user-manager|users|user|vlan|secret|vrrp|watchdog|web-access|wireless|pptp|pppoe|lan|wan|layer7-protocol|lease|simple|raw);?\\s)+" +},{begin:/\.\./,relevance:0}]}]}}})();hljs.registerLanguage("routeros",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/rsl.min.js b/src/app/resources/assets/highlight/languages/rsl.min.js new file mode 100644 index 0000000..2c53033 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/rsl.min.js @@ -0,0 +1,11 @@ +/*! `rsl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t={ +match:[/(surface|displacement|light|volume|imager)/,/\s+/,e.IDENT_RE],scope:{ +1:"keyword",3:"title.class"}};return{name:"RenderMan RSL",keywords:{ +keyword:["while","for","if","do","return","else","break","extern","continue"], +built_in:["abs","acos","ambient","area","asin","atan","atmosphere","attribute","calculatenormal","ceil","cellnoise","clamp","comp","concat","cos","degrees","depth","Deriv","diffuse","distance","Du","Dv","environment","exp","faceforward","filterstep","floor","format","fresnel","incident","length","lightsource","log","match","max","min","mod","noise","normalize","ntransform","opposite","option","phong","pnoise","pow","printf","ptlined","radians","random","reflect","refract","renderinfo","round","setcomp","setxcomp","setycomp","setzcomp","shadow","sign","sin","smoothstep","specular","specularbrdf","spline","sqrt","step","tan","texture","textureinfo","trace","transform","vtransform","xcomp","ycomp","zcomp"], +type:["matrix","float","color","point","normal","vector"]},illegal:"{var e=(()=>{"use strict";return e=>{ +const n=e.regex,a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",s=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(s,/(::\w+)*/),t={ +"variable.constant":["__FILE__","__LINE__","__ENCODING__"], +"variable.language":["self","super"], +keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"], +built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"], +literal:["true","false","nil"]},c={className:"doctag",begin:"@[A-Za-z]+"},r={ +begin:"#<",end:">"},b=[e.COMMENT("#","$",{contains:[c] +}),e.COMMENT("^=begin","^=end",{contains:[c],relevance:10 +}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],l={className:"subst",begin:/#\{/, +end:/\}/,keywords:t},d={className:"string",contains:[e.BACKSLASH_ESCAPE,l], +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{ +begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{ +begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//, +end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{ +begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{ +begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ +begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ +begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ +begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)), +contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/, +contains:[e.BACKSLASH_ESCAPE,l]})]}]},o="[0-9](_?[0-9])*",g={className:"number", +relevance:0,variants:[{ +begin:`\\b([1-9](_?[0-9])*|0)(\\.(${o}))?([eE][+-]?(${o})|r)?i?\\b`},{ +begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" +},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ +begin:"\\b0(_?[0-7])+r?i?\\b"}]},_={variants:[{match:/\(\)/},{ +className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0, +keywords:t}]},u=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{ +match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class", +4:"title.class.inherited"},keywords:t},{match:[/(include|extend)\s+/,i],scope:{ +2:"title.class"},keywords:t},{relevance:0,match:[i,/\.new[. (]/],scope:{ +1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},{relevance:0,match:s,scope:"title.class"},{ +match:[/def/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[_]},{ +begin:e.IDENT_RE+"::"},{className:"symbol", +begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", +begin:":(?!\\s)",contains:[d,{begin:a}],relevance:0},g,{className:"variable", +begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ +className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0, +relevance:0,keywords:t},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*", +keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,l], +illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{ +begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[", +end:"\\][a-z]*"}]}].concat(r,b),relevance:0}].concat(r,b) +;l.contains=u,_.contains=u;const m=[{begin:/^\s*=>/,starts:{end:"$",contains:u} +},{className:"meta.prompt", +begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", +starts:{end:"$",keywords:t,contains:u}}];return b.unshift(r),{name:"Ruby", +aliases:["rb","gemspec","podspec","thor","irb"],keywords:t,illegal:/\/\*/, +contains:[e.SHEBANG({binary:"ruby"})].concat(m).concat(b).concat(u)}}})() +;hljs.registerLanguage("ruby",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/ruleslanguage.min.js b/src/app/resources/assets/highlight/languages/ruleslanguage.min.js new file mode 100644 index 0000000..c397a5f --- /dev/null +++ b/src/app/resources/assets/highlight/languages/ruleslanguage.min.js @@ -0,0 +1,9 @@ +/*! `ruleslanguage` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var T=(()=>{"use strict";return T=>({name:"Oracle Rules Language", +keywords:{ +keyword:"BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM NUMDAYS READ_DATE STAGING", +built_in:"IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME" +}, +contains:[T.C_LINE_COMMENT_MODE,T.C_BLOCK_COMMENT_MODE,T.APOS_STRING_MODE,T.QUOTE_STRING_MODE,T.C_NUMBER_MODE,{ +className:"literal",variants:[{begin:"#\\s+",relevance:0},{begin:"#[a-zA-Z .]+" +}]}]})})();hljs.registerLanguage("ruleslanguage",T)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/rust.min.js b/src/app/resources/assets/highlight/languages/rust.min.js new file mode 100644 index 0000000..3de1462 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/rust.min.js @@ -0,0 +1,28 @@ +/*! `rust` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t=e.regex,a={ +className:"title.function.invoke",relevance:0, +begin:t.concat(/\b/,/(?!let\b)/,e.IDENT_RE,t.lookahead(/\s*\(/)) +},n="([ui](8|16|32|64|128|size)|f(32|64))?",s=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],r=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"] +;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:r, +keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"], +literal:["true","false","Some","None","Ok","Err"],built_in:s},illegal:""},a]}}})() +;hljs.registerLanguage("rust",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/sas.min.js b/src/app/resources/assets/highlight/languages/sas.min.js new file mode 100644 index 0000000..614ac9b --- /dev/null +++ b/src/app/resources/assets/highlight/languages/sas.min.js @@ -0,0 +1,18 @@ +/*! `sas` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t=e.regex;return{name:"SAS", +case_insensitive:!0,keywords:{ +literal:["null","missing","_all_","_automatic_","_character_","_infile_","_n_","_name_","_null_","_numeric_","_user_","_webout_"], +keyword:["do","if","then","else","end","until","while","abort","array","attrib","by","call","cards","cards4","catname","continue","datalines","datalines4","delete","delim","delimiter","display","dm","drop","endsas","error","file","filename","footnote","format","goto","in","infile","informat","input","keep","label","leave","length","libname","link","list","lostcard","merge","missing","modify","options","output","out","page","put","redirect","remove","rename","replace","retain","return","select","set","skip","startsas","stop","title","update","waitsas","where","window","x|0","systask","add","and","alter","as","cascade","check","create","delete","describe","distinct","drop","foreign","from","group","having","index","insert","into","in","key","like","message","modify","msgtype","not","null","on","or","order","primary","references","reset","restrict","select","set","table","unique","update","validate","view","where"] +},contains:[{className:"keyword",begin:/^\s*(proc [\w\d_]+|data|run|quit)[\s;]/ +},{className:"variable",begin:/&[a-zA-Z_&][a-zA-Z0-9_]*\.?/},{ +begin:[/^\s*/,/datalines;|cards;/,/(?:.*\n)+/,/^\s*;\s*$/],className:{ +2:"keyword",3:"string"}},{ +begin:[/%mend|%macro/,/\s+/,/[a-zA-Z_&][a-zA-Z0-9_]*/],className:{1:"built_in", +3:"title.function"}},{className:"built_in", +begin:"%"+t.either("bquote","nrbquote","cmpres","qcmpres","compstor","datatyp","display","do","else","end","eval","global","goto","if","index","input","keydef","label","left","length","let","local","lowcase","macro","mend","nrbquote","nrquote","nrstr","put","qcmpres","qleft","qlowcase","qscan","qsubstr","qsysfunc","qtrim","quote","qupcase","scan","str","substr","superq","syscall","sysevalf","sysexec","sysfunc","sysget","syslput","sysprod","sysrc","sysrput","then","to","trim","unquote","until","upcase","verify","while","window") +},{className:"title.function",begin:/%[a-zA-Z_][a-zA-Z_0-9]*/},{ +className:"meta", +begin:t.either("abs","addr","airy","arcos","arsin","atan","attrc","attrn","band","betainv","blshift","bnot","bor","brshift","bxor","byte","cdf","ceil","cexist","cinv","close","cnonct","collate","compbl","compound","compress","cos","cosh","css","curobs","cv","daccdb","daccdbsl","daccsl","daccsyd","dacctab","dairy","date","datejul","datepart","datetime","day","dclose","depdb","depdbsl","depdbsl","depsl","depsl","depsyd","depsyd","deptab","deptab","dequote","dhms","dif","digamma","dim","dinfo","dnum","dopen","doptname","doptnum","dread","dropnote","dsname","erf","erfc","exist","exp","fappend","fclose","fcol","fdelete","fetch","fetchobs","fexist","fget","fileexist","filename","fileref","finfo","finv","fipname","fipnamel","fipstate","floor","fnonct","fnote","fopen","foptname","foptnum","fpoint","fpos","fput","fread","frewind","frlen","fsep","fuzz","fwrite","gaminv","gamma","getoption","getvarc","getvarn","hbound","hms","hosthelp","hour","ibessel","index","indexc","indexw","input","inputc","inputn","int","intck","intnx","intrr","irr","jbessel","juldate","kurtosis","lag","lbound","left","length","lgamma","libname","libref","log","log10","log2","logpdf","logpmf","logsdf","lowcase","max","mdy","mean","min","minute","mod","month","mopen","mort","n","netpv","nmiss","normal","note","npv","open","ordinal","pathname","pdf","peek","peekc","pmf","point","poisson","poke","probbeta","probbnml","probchi","probf","probgam","probhypr","probit","probnegb","probnorm","probt","put","putc","putn","qtr","quote","ranbin","rancau","ranexp","rangam","range","rank","rannor","ranpoi","rantbl","rantri","ranuni","repeat","resolve","reverse","rewind","right","round","saving","scan","sdf","second","sign","sin","sinh","skewness","soundex","spedis","sqrt","std","stderr","stfips","stname","stnamel","substr","sum","symget","sysget","sysmsg","sysprod","sysrc","system","tan","tanh","time","timepart","tinv","tnonct","today","translate","tranwrd","trigamma","trim","trimn","trunc","uniform","upcase","uss","var","varfmt","varinfmt","varlabel","varlen","varname","varnum","varray","varrayx","vartype","verify","vformat","vformatd","vformatdx","vformatn","vformatnx","vformatw","vformatwx","vformatx","vinarray","vinarrayx","vinformat","vinformatd","vinformatdx","vinformatn","vinformatnx","vinformatw","vinformatwx","vinformatx","vlabel","vlabelx","vlength","vlengthx","vname","vnamex","vtype","vtypex","weekday","year","yyq","zipfips","zipname","zipnamel","zipstate")+"(?=\\()" +},{className:"string",variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},e.COMMENT("\\*",";"),e.C_BLOCK_COMMENT_MODE]}}})() +;hljs.registerLanguage("sas",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/scala.min.js b/src/app/resources/assets/highlight/languages/scala.min.js new file mode 100644 index 0000000..832524a --- /dev/null +++ b/src/app/resources/assets/highlight/languages/scala.min.js @@ -0,0 +1,25 @@ +/*! `scala` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,a={className:"subst", +variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:/\$\{/,end:/\}/}]},s={ +className:"string",variants:[{begin:'"""',end:'"""'},{begin:'"',end:'"', +illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'[a-z]+"',end:'"', +illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,a]},{className:"string", +begin:'[a-z]+"""',end:'"""',contains:[a],relevance:10}]},i={className:"type", +begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},t={className:"title", +begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/, +relevance:0},l={className:"class",beginKeywords:"class object trait type", +end:/[:={\[\n;]/,excludeEnd:!0, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{ +beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0, +excludeEnd:!0,relevance:0,contains:[i]},{className:"params",begin:/\(/,end:/\)/, +excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[i]},t]},r={ +className:"function",beginKeywords:"def",end:n.lookahead(/[:={\[(\n;]/), +contains:[t]};return{name:"Scala",keywords:{literal:"true false null", +keyword:"type yield lazy override def with val var sealed abstract private trait object if then forSome for while do throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit export enum given transparent" +}, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,i,r,l,e.C_NUMBER_MODE,{ +begin:[/^\s*/,"extension",/\s+(?=[[(])/],beginScope:{2:"keyword"}},{ +begin:[/^\s*/,/end/,/\s+/,/(extension\b)?/],beginScope:{2:"keyword",4:"keyword"} +},{match:/\.inline\b/},{begin:/\binline(?=\s)/,keywords:"inline"},{ +begin:[/\(\s*/,/using/,/\s+(?!\))/],beginScope:{2:"keyword"}},{className:"meta", +begin:"@[A-Za-z]+"}]}}})();hljs.registerLanguage("scala",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/scheme.min.js b/src/app/resources/assets/highlight/languages/scheme.min.js new file mode 100644 index 0000000..92c1d80 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/scheme.min.js @@ -0,0 +1,20 @@ +/*! `scheme` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const t="[^\\(\\)\\[\\]\\{\\}\",'`;#|\\\\\\s]+",n={$pattern:t, +built_in:"case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules ' * + , ,@ - ... / ; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?" +},r={className:"literal",begin:"(#t|#f|#\\\\"+t+"|#\\\\.)"},a={ +className:"number",variants:[{begin:"(-|\\+)?\\d+([./]\\d+)?",relevance:0},{ +begin:"(-|\\+)?\\d+([./]\\d+)?[+\\-](-|\\+)?\\d+([./]\\d+)?i",relevance:0},{ +begin:"#b[0-1]+(/[0-1]+)?"},{begin:"#o[0-7]+(/[0-7]+)?"},{ +begin:"#x[0-9a-f]+(/[0-9a-f]+)?"}]},i=e.QUOTE_STRING_MODE,c=[e.COMMENT(";","$",{ +relevance:0}),e.COMMENT("#\\|","\\|#")],s={begin:t,relevance:0},l={ +className:"symbol",begin:"'"+t},o={endsWithParent:!0,relevance:0},g={variants:[{ +begin:/'/},{begin:"`"}],contains:[{begin:"\\(",end:"\\)", +contains:["self",r,i,a,s,l]}]},u={className:"name",relevance:0,begin:t, +keywords:n},d={variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}], +contains:[{begin:/lambda/,endsWithParent:!0,returnBegin:!0,contains:[u,{ +endsParent:!0,variants:[{begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/}], +contains:[s]}]},u,o]};return o.contains=[r,a,i,s,l,g,d].concat(c),{ +name:"Scheme",aliases:["scm"],illegal:/\S/, +contains:[e.SHEBANG(),a,i,l,g,d].concat(c)}}})() +;hljs.registerLanguage("scheme",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/scilab.min.js b/src/app/resources/assets/highlight/languages/scilab.min.js new file mode 100644 index 0000000..5eb237f --- /dev/null +++ b/src/app/resources/assets/highlight/languages/scilab.min.js @@ -0,0 +1,13 @@ +/*! `scilab` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=[e.C_NUMBER_MODE,{ +className:"string",begin:"'|\"",end:"'|\"",contains:[e.BACKSLASH_ESCAPE,{ +begin:"''"}]}];return{name:"Scilab",aliases:["sci"],keywords:{$pattern:/%?\w+/, +keyword:"abort break case clear catch continue do elseif else endfunction end for function global if pause return resume select try then while", +literal:"%f %F %t %T %pi %eps %inf %nan %e %i %z %s", +built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan type typename warning zeros matrix" +},illegal:'("|#|/\\*|\\s+/\\w+)',contains:[{className:"function", +beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{ +className:"params",begin:"\\(",end:"\\)"}]},{ +begin:"[a-zA-Z_][a-zA-Z_0-9]*[\\.']+",relevance:0},{begin:"\\[", +end:"\\][\\.']*",relevance:0,contains:n},e.COMMENT("//","$")].concat(n)}}})() +;hljs.registerLanguage("scilab",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/scss.min.js b/src/app/resources/assets/highlight/languages/scss.min.js new file mode 100644 index 0000000..4981b9b --- /dev/null +++ b/src/app/resources/assets/highlight/languages/scss.min.js @@ -0,0 +1,33 @@ +/*! `scss` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],r=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],t=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse() +;return n=>{const a=(e=>({IMPORTANT:{scope:"meta",begin:"!important"}, +BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number", +begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{ +className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{ +scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/} +}))(n),l=t,s=i,d="@[a-z-]+",c={className:"variable", +begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS", +case_insensitive:!0,illegal:"[=/|']", +contains:[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE,a.CSS_NUMBER_MODE,{ +className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{ +className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0 +},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag", +begin:"\\b("+e.join("|")+")\\b",relevance:0},{className:"selector-pseudo", +begin:":("+s.join("|")+")"},{className:"selector-pseudo", +begin:":(:)?("+l.join("|")+")"},c,{begin:/\(/,end:/\)/, +contains:[a.CSS_NUMBER_MODE]},a.CSS_VARIABLE,{className:"attribute", +begin:"\\b("+o.join("|")+")\\b"},{ +begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" +},{begin:/:/,end:/[;}{]/,relevance:0, +contains:[a.BLOCK_COMMENT,c,a.HEXCOLOR,a.CSS_NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,a.IMPORTANT,a.FUNCTION_DISPATCH] +},{begin:"@(page|font-face)",keywords:{$pattern:d,keyword:"@page @font-face"}},{ +begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/, +keyword:"and or not only",attribute:r.join(" ")},contains:[{begin:d, +className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute" +},c,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,a.HEXCOLOR,a.CSS_NUMBER_MODE] +},a.FUNCTION_DISPATCH]}}})();hljs.registerLanguage("scss",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/shell.min.js b/src/app/resources/assets/highlight/languages/shell.min.js new file mode 100644 index 0000000..87e2cd3 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/shell.min.js @@ -0,0 +1,5 @@ +/*! `shell` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var s=(()=>{"use strict";return s=>({name:"Shell Session", +aliases:["console","shellsession"],contains:[{className:"meta.prompt", +begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/, +subLanguage:"bash"}}]})})();hljs.registerLanguage("shell",s)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/smali.min.js b/src/app/resources/assets/highlight/languages/smali.min.js new file mode 100644 index 0000000..b24e30c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/smali.min.js @@ -0,0 +1,13 @@ +/*! `smali` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=["add","and","cmp","cmpg","cmpl","const","div","double","float","goto","if","int","long","move","mul","neg","new","nop","not","or","rem","return","shl","shr","sput","sub","throw","ushr","xor"] +;return{name:"Smali",contains:[{className:"string",begin:'"',end:'"',relevance:0 +},e.COMMENT("#","$",{relevance:0}),{className:"keyword",variants:[{ +begin:"\\s*\\.end\\s[a-zA-Z0-9]*"},{begin:"^[ ]*\\.[a-zA-Z]*",relevance:0},{ +begin:"\\s:[a-zA-Z_0-9]*",relevance:0},{ +begin:"\\s(transient|constructor|abstract|final|synthetic|public|private|protected|static|bridge|system)" +}]},{className:"built_in",variants:[{begin:"\\s("+n.join("|")+")\\s"},{ +begin:"\\s("+n.join("|")+")((-|/)[a-zA-Z0-9]+)+\\s",relevance:10},{ +begin:"\\s(aget|aput|array|check|execute|fill|filled|goto/16|goto/32|iget|instance|invoke|iput|monitor|packed|sget|sparse)((-|/)[a-zA-Z0-9]+)*\\s", +relevance:10}]},{className:"class",begin:"L[^(;:\n]*;",relevance:0},{ +begin:"[vp][0-9]+"}]}}})();hljs.registerLanguage("smali",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/smalltalk.min.js b/src/app/resources/assets/highlight/languages/smalltalk.min.js new file mode 100644 index 0000000..fd1512a --- /dev/null +++ b/src/app/resources/assets/highlight/languages/smalltalk.min.js @@ -0,0 +1,11 @@ +/*! `smalltalk` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n="[a-z][a-zA-Z0-9_]*",a={ +className:"string",begin:"\\$.{1}"},s={className:"symbol", +begin:"#"+e.UNDERSCORE_IDENT_RE};return{name:"Smalltalk",aliases:["st"], +keywords:["self","super","nil","true","false","thisContext"], +contains:[e.COMMENT('"','"'),e.APOS_STRING_MODE,{className:"type", +begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},{begin:n+":",relevance:0 +},e.C_NUMBER_MODE,s,a,{begin:"\\|[ ]*"+n+"([ ]+"+n+")*[ ]*\\|",returnBegin:!0, +end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?"+n}]},{begin:"#\\(", +end:"\\)",contains:[e.APOS_STRING_MODE,a,e.C_NUMBER_MODE,s]}]}}})() +;hljs.registerLanguage("smalltalk",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/sml.min.js b/src/app/resources/assets/highlight/languages/sml.min.js new file mode 100644 index 0000000..0e84f82 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/sml.min.js @@ -0,0 +1,14 @@ +/*! `sml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"SML (Standard ML)", +aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?", +keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while", +built_in:"array bool char exn int list option order real ref string substring vector unit word", +literal:"true false NONE SOME LESS EQUAL GREATER nil"},illegal:/\/\/|>>/, +contains:[{className:"literal",begin:/\[(\|\|)?\]|\(\)/,relevance:0 +},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol", +begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{ +className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{ +begin:"[a-z_]\\w*'[\\w']*"},e.inherit(e.APOS_STRING_MODE,{className:"string", +relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number", +begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)", +relevance:0},{begin:/[-=]>/}]})})();hljs.registerLanguage("sml",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/sqf.min.js b/src/app/resources/assets/highlight/languages/sqf.min.js new file mode 100644 index 0000000..a3825d6 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/sqf.min.js @@ -0,0 +1,17 @@ +/*! `sqf` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t={className:"string", +variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]},{begin:"'", +end:"'",contains:[{begin:"''",relevance:0}]}]},a={className:"meta", +begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"define undef ifdef ifndef else endif include"},contains:[{begin:/\\\n/, +relevance:0},e.inherit(t,{className:"string"}),{className:"string", +begin:/<[^\n>]*>/,end:/$/,illegal:"\\n" +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"SQF", +case_insensitive:!0,keywords:{ +keyword:["case","catch","default","do","else","exit","exitWith","for","forEach","from","if","private","switch","then","throw","to","try","waitUntil","while","with"], +built_in:["abs","accTime","acos","action","actionIDs","actionKeys","actionKeysImages","actionKeysNames","actionKeysNamesArray","actionName","actionParams","activateAddons","activatedAddons","activateKey","add3DENConnection","add3DENEventHandler","add3DENLayer","addAction","addBackpack","addBackpackCargo","addBackpackCargoGlobal","addBackpackGlobal","addBinocularItem","addCamShake","addCuratorAddons","addCuratorCameraArea","addCuratorEditableObjects","addCuratorEditingArea","addCuratorPoints","addEditorObject","addEventHandler","addForce","addForceGeneratorRTD","addGoggles","addGroupIcon","addHandgunItem","addHeadgear","addItem","addItemCargo","addItemCargoGlobal","addItemPool","addItemToBackpack","addItemToUniform","addItemToVest","addLiveStats","addMagazine","addMagazineAmmoCargo","addMagazineCargo","addMagazineCargoGlobal","addMagazineGlobal","addMagazinePool","addMagazines","addMagazineTurret","addMenu","addMenuItem","addMissionEventHandler","addMPEventHandler","addMusicEventHandler","addonFiles","addOwnedMine","addPlayerScores","addPrimaryWeaponItem","addPublicVariableEventHandler","addRating","addResources","addScore","addScoreSide","addSecondaryWeaponItem","addSwitchableUnit","addTeamMember","addToRemainsCollector","addTorque","addUniform","addVehicle","addVest","addWaypoint","addWeapon","addWeaponCargo","addWeaponCargoGlobal","addWeaponGlobal","addWeaponItem","addWeaponPool","addWeaponTurret","addWeaponWithAttachmentsCargo","addWeaponWithAttachmentsCargoGlobal","admin","agent","agents","AGLToASL","aimedAtTarget","aimPos","airDensityCurveRTD","airDensityRTD","airplaneThrottle","airportSide","AISFinishHeal","alive","all3DENEntities","allActiveTitleEffects","allAddonsInfo","allAirports","allControls","allCurators","allCutLayers","allDead","allDeadMen","allDiarySubjects","allDisplays","allGroups","allMapMarkers","allMines","allMissionObjects","allow3DMode","allowCrewInImmobile","allowCuratorLogicIgnoreAreas","allowDamage","allowDammage","allowFileOperations","allowFleeing","allowGetIn","allowSprint","allPlayers","allSimpleObjects","allSites","allTurrets","allUnits","allUnitsUAV","allVariables","ammo","ammoOnPylon","and","animate","animateBay","animateDoor","animatePylon","animateSource","animationNames","animationPhase","animationSourcePhase","animationState","apertureParams","append","apply","armoryPoints","arrayIntersect","asin","ASLToAGL","ASLToATL","assert","assignAsCargo","assignAsCargoIndex","assignAsCommander","assignAsDriver","assignAsGunner","assignAsTurret","assignCurator","assignedCargo","assignedCommander","assignedDriver","assignedGunner","assignedItems","assignedTarget","assignedTeam","assignedVehicle","assignedVehicleRole","assignItem","assignTeam","assignToAirport","atan","atan2","atg","ATLToASL","attachedObject","attachedObjects","attachedTo","attachObject","attachTo","attackEnabled","backpack","backpackCargo","backpackContainer","backpackItems","backpackMagazines","backpackSpaceFor","batteryChargeRTD","behaviour","benchmark","bezierInterpolation","binocular","binocularItems","binocularMagazine","boundingBox","boundingBoxReal","boundingCenter","break","breakOut","breakTo","breakWith","briefingName","buildingExit","buildingPos","buldozer_EnableRoadDiag","buldozer_IsEnabledRoadDiag","buldozer_LoadNewRoads","buldozer_reloadOperMap","buttonAction","buttonSetAction","cadetMode","calculatePath","calculatePlayerVisibilityByFriendly","call","callExtension","camCommand","camCommit","camCommitPrepared","camCommitted","camConstuctionSetParams","camCreate","camDestroy","cameraEffect","cameraEffectEnableHUD","cameraInterest","cameraOn","cameraView","campaignConfigFile","camPreload","camPreloaded","camPrepareBank","camPrepareDir","camPrepareDive","camPrepareFocus","camPrepareFov","camPrepareFovRange","camPreparePos","camPrepareRelPos","camPrepareTarget","camSetBank","camSetDir","camSetDive","camSetFocus","camSetFov","camSetFovRange","camSetPos","camSetRelPos","camSetTarget","camTarget","camUseNVG","canAdd","canAddItemToBackpack","canAddItemToUniform","canAddItemToVest","cancelSimpleTaskDestination","canFire","canMove","canSlingLoad","canStand","canSuspend","canTriggerDynamicSimulation","canUnloadInCombat","canVehicleCargo","captive","captiveNum","cbChecked","cbSetChecked","ceil","channelEnabled","cheatsEnabled","checkAIFeature","checkVisibility","className","clear3DENAttribute","clear3DENInventory","clearAllItemsFromBackpack","clearBackpackCargo","clearBackpackCargoGlobal","clearForcesRTD","clearGroupIcons","clearItemCargo","clearItemCargoGlobal","clearItemPool","clearMagazineCargo","clearMagazineCargoGlobal","clearMagazinePool","clearOverlay","clearRadio","clearVehicleInit","clearWeaponCargo","clearWeaponCargoGlobal","clearWeaponPool","clientOwner","closeDialog","closeDisplay","closeOverlay","collapseObjectTree","collect3DENHistory","collectiveRTD","combatBehaviour","combatMode","commandArtilleryFire","commandChat","commander","commandFire","commandFollow","commandFSM","commandGetOut","commandingMenu","commandMove","commandRadio","commandStop","commandSuppressiveFire","commandTarget","commandWatch","comment","commitOverlay","compile","compileFinal","compileScript","completedFSM","composeText","configClasses","configFile","configHierarchy","configName","configOf","configProperties","configSourceAddonList","configSourceMod","configSourceModList","confirmSensorTarget","connectTerminalToUAV","connectToServer","continue","continueWith","controlsGroupCtrl","copyFromClipboard","copyToClipboard","copyWaypoints","cos","count","countEnemy","countFriendly","countSide","countType","countUnknown","create3DENComposition","create3DENEntity","createAgent","createCenter","createDialog","createDiaryLink","createDiaryRecord","createDiarySubject","createDisplay","createGearDialog","createGroup","createGuardedPoint","createHashMap","createHashMapFromArray","createLocation","createMarker","createMarkerLocal","createMenu","createMine","createMissionDisplay","createMPCampaignDisplay","createSimpleObject","createSimpleTask","createSite","createSoundSource","createTarget","createTask","createTeam","createTrigger","createUnit","createVehicle","createVehicleCrew","createVehicleLocal","crew","ctAddHeader","ctAddRow","ctClear","ctCurSel","ctData","ctFindHeaderRows","ctFindRowHeader","ctHeaderControls","ctHeaderCount","ctRemoveHeaders","ctRemoveRows","ctrlActivate","ctrlAddEventHandler","ctrlAngle","ctrlAnimateModel","ctrlAnimationPhaseModel","ctrlAutoScrollDelay","ctrlAutoScrollRewind","ctrlAutoScrollSpeed","ctrlChecked","ctrlClassName","ctrlCommit","ctrlCommitted","ctrlCreate","ctrlDelete","ctrlEnable","ctrlEnabled","ctrlFade","ctrlFontHeight","ctrlHTMLLoaded","ctrlIDC","ctrlIDD","ctrlMapAnimAdd","ctrlMapAnimClear","ctrlMapAnimCommit","ctrlMapAnimDone","ctrlMapCursor","ctrlMapMouseOver","ctrlMapScale","ctrlMapScreenToWorld","ctrlMapWorldToScreen","ctrlModel","ctrlModelDirAndUp","ctrlModelScale","ctrlMousePosition","ctrlParent","ctrlParentControlsGroup","ctrlPosition","ctrlRemoveAllEventHandlers","ctrlRemoveEventHandler","ctrlScale","ctrlScrollValues","ctrlSetActiveColor","ctrlSetAngle","ctrlSetAutoScrollDelay","ctrlSetAutoScrollRewind","ctrlSetAutoScrollSpeed","ctrlSetBackgroundColor","ctrlSetChecked","ctrlSetDisabledColor","ctrlSetEventHandler","ctrlSetFade","ctrlSetFocus","ctrlSetFont","ctrlSetFontH1","ctrlSetFontH1B","ctrlSetFontH2","ctrlSetFontH2B","ctrlSetFontH3","ctrlSetFontH3B","ctrlSetFontH4","ctrlSetFontH4B","ctrlSetFontH5","ctrlSetFontH5B","ctrlSetFontH6","ctrlSetFontH6B","ctrlSetFontHeight","ctrlSetFontHeightH1","ctrlSetFontHeightH2","ctrlSetFontHeightH3","ctrlSetFontHeightH4","ctrlSetFontHeightH5","ctrlSetFontHeightH6","ctrlSetFontHeightSecondary","ctrlSetFontP","ctrlSetFontPB","ctrlSetFontSecondary","ctrlSetForegroundColor","ctrlSetModel","ctrlSetModelDirAndUp","ctrlSetModelScale","ctrlSetMousePosition","ctrlSetPixelPrecision","ctrlSetPosition","ctrlSetPositionH","ctrlSetPositionW","ctrlSetPositionX","ctrlSetPositionY","ctrlSetScale","ctrlSetScrollValues","ctrlSetStructuredText","ctrlSetText","ctrlSetTextColor","ctrlSetTextColorSecondary","ctrlSetTextSecondary","ctrlSetTextSelection","ctrlSetTooltip","ctrlSetTooltipColorBox","ctrlSetTooltipColorShade","ctrlSetTooltipColorText","ctrlSetURL","ctrlShow","ctrlShown","ctrlStyle","ctrlText","ctrlTextColor","ctrlTextHeight","ctrlTextSecondary","ctrlTextSelection","ctrlTextWidth","ctrlTooltip","ctrlType","ctrlURL","ctrlVisible","ctRowControls","ctRowCount","ctSetCurSel","ctSetData","ctSetHeaderTemplate","ctSetRowTemplate","ctSetValue","ctValue","curatorAddons","curatorCamera","curatorCameraArea","curatorCameraAreaCeiling","curatorCoef","curatorEditableObjects","curatorEditingArea","curatorEditingAreaType","curatorMouseOver","curatorPoints","curatorRegisteredObjects","curatorSelected","curatorWaypointCost","current3DENOperation","currentChannel","currentCommand","currentMagazine","currentMagazineDetail","currentMagazineDetailTurret","currentMagazineTurret","currentMuzzle","currentNamespace","currentPilot","currentTask","currentTasks","currentThrowable","currentVisionMode","currentWaypoint","currentWeapon","currentWeaponMode","currentWeaponTurret","currentZeroing","cursorObject","cursorTarget","customChat","customRadio","customWaypointPosition","cutFadeOut","cutObj","cutRsc","cutText","damage","date","dateToNumber","daytime","deActivateKey","debriefingText","debugFSM","debugLog","decayGraphValues","deg","delete3DENEntities","deleteAt","deleteCenter","deleteCollection","deleteEditorObject","deleteGroup","deleteGroupWhenEmpty","deleteIdentity","deleteLocation","deleteMarker","deleteMarkerLocal","deleteRange","deleteResources","deleteSite","deleteStatus","deleteTarget","deleteTeam","deleteVehicle","deleteVehicleCrew","deleteWaypoint","detach","detectedMines","diag_activeMissionFSMs","diag_activeScripts","diag_activeSQSScripts","diag_captureFrameToFile","diag_captureSlowFrame","diag_deltaTime","diag_drawMode","diag_enable","diag_enabled","diag_fps","diag_fpsMin","diag_frameNo","diag_list","diag_mergeConfigFile","diag_scope","diag_activeSQFScripts","diag_allMissionEventHandlers","diag_captureFrame","diag_codePerformance","diag_dumpCalltraceToLog","diag_dumpTerrainSynth","diag_dynamicSimulationEnd","diag_exportConfig","diag_exportTerrainSVG","diag_lightNewLoad","diag_localized","diag_log","diag_logSlowFrame","diag_recordTurretLimits","diag_resetShapes","diag_setLightNew","diag_tickTime","diag_toggle","dialog","diaryRecordNull","diarySubjectExists","didJIP","didJIPOwner","difficulty","difficultyEnabled","difficultyEnabledRTD","difficultyOption","direction","directSay","disableAI","disableCollisionWith","disableConversation","disableDebriefingStats","disableMapIndicators","disableNVGEquipment","disableRemoteSensors","disableSerialization","disableTIEquipment","disableUAVConnectability","disableUserInput","displayAddEventHandler","displayCtrl","displayParent","displayRemoveAllEventHandlers","displayRemoveEventHandler","displaySetEventHandler","dissolveTeam","distance","distance2D","distanceSqr","distributionRegion","do3DENAction","doArtilleryFire","doFire","doFollow","doFSM","doGetOut","doMove","doorPhase","doStop","doSuppressiveFire","doTarget","doWatch","drawArrow","drawEllipse","drawIcon","drawIcon3D","drawLine","drawLine3D","drawLink","drawLocation","drawPolygon","drawRectangle","drawTriangle","driver","drop","dynamicSimulationDistance","dynamicSimulationDistanceCoef","dynamicSimulationEnabled","dynamicSimulationSystemEnabled","echo","edit3DENMissionAttributes","editObject","editorSetEventHandler","effectiveCommander","elevatePeriscope","emptyPositions","enableAI","enableAIFeature","enableAimPrecision","enableAttack","enableAudioFeature","enableAutoStartUpRTD","enableAutoTrimRTD","enableCamShake","enableCaustics","enableChannel","enableCollisionWith","enableCopilot","enableDebriefingStats","enableDiagLegend","enableDynamicSimulation","enableDynamicSimulationSystem","enableEndDialog","enableEngineArtillery","enableEnvironment","enableFatigue","enableGunLights","enableInfoPanelComponent","enableIRLasers","enableMimics","enablePersonTurret","enableRadio","enableReload","enableRopeAttach","enableSatNormalOnDetail","enableSaving","enableSentences","enableSimulation","enableSimulationGlobal","enableStamina","enableStressDamage","enableTeamSwitch","enableTraffic","enableUAVConnectability","enableUAVWaypoints","enableVehicleCargo","enableVehicleSensor","enableWeaponDisassembly","endLoadingScreen","endMission","enemy","engineOn","enginesIsOnRTD","enginesPowerRTD","enginesRpmRTD","enginesTorqueRTD","entities","environmentEnabled","environmentVolume","estimatedEndServerTime","estimatedTimeLeft","evalObjectArgument","everyBackpack","everyContainer","exec","execEditorScript","execFSM","execVM","exp","expectedDestination","exportJIPMessages","exportLandscapeXYZ","eyeDirection","eyePos","face","faction","fadeEnvironment","fadeMusic","fadeRadio","fadeSound","fadeSpeech","failMission","fileExists","fillWeaponsFromPool","find","findCover","findDisplay","findEditorObject","findEmptyPosition","findEmptyPositionReady","findIf","findNearestEnemy","finishMissionInit","finite","fire","fireAtTarget","firstBackpack","flag","flagAnimationPhase","flagOwner","flagSide","flagTexture","flatten","fleeing","floor","flyInHeight","flyInHeightASL","focusedCtrl","fog","fogForecast","fogParams","forceAddUniform","forceAtPositionRTD","forceCadetDifficulty","forcedMap","forceEnd","forceFlagTexture","forceFollowRoad","forceGeneratorRTD","forceMap","forceRespawn","forceSpeed","forceUnicode","forceWalk","forceWeaponFire","forceWeatherChange","forEachMember","forEachMemberAgent","forEachMemberTeam","forgetTarget","format","formation","formationDirection","formationLeader","formationMembers","formationPosition","formationTask","formatText","formLeader","freeLook","friendly","fromEditor","fuel","fullCrew","gearIDCAmmoCount","gearSlotAmmoCount","gearSlotData","get","get3DENActionState","get3DENAttribute","get3DENCamera","get3DENConnections","get3DENEntity","get3DENEntityID","get3DENGrid","get3DENIconsVisible","get3DENLayerEntities","get3DENLinesVisible","get3DENMissionAttribute","get3DENMouseOver","get3DENSelected","getAimingCoef","getAllEnvSoundControllers","getAllHitPointsDamage","getAllOwnedMines","getAllPylonsInfo","getAllSoundControllers","getAllUnitTraits","getAmmoCargo","getAnimAimPrecision","getAnimSpeedCoef","getArray","getArtilleryAmmo","getArtilleryComputerSettings","getArtilleryETA","getAssetDLCInfo","getAssignedCuratorLogic","getAssignedCuratorUnit","getAttackTarget","getAudioOptionVolumes","getBackpackCargo","getBleedingRemaining","getBurningValue","getCalculatePlayerVisibilityByFriendly","getCameraViewDirection","getCargoIndex","getCenterOfMass","getClientState","getClientStateNumber","getCompatiblePylonMagazines","getConnectedUAV","getContainerMaxLoad","getCursorObjectParams","getCustomAimCoef","getCustomSoundController","getCustomSoundControllerCount","getDammage","getDescription","getDir","getDirVisual","getDiverState","getDLCAssetsUsage","getDLCAssetsUsageByName","getDLCs","getDLCUsageTime","getEditorCamera","getEditorMode","getEditorObjectScope","getElevationOffset","getEnvSoundController","getFatigue","getFieldManualStartPage","getForcedFlagTexture","getFriend","getFSMVariable","getFuelCargo","getGraphValues","getGroupIcon","getGroupIconParams","getGroupIcons","getHideFrom","getHit","getHitIndex","getHitPointDamage","getItemCargo","getLighting","getLightingAt","getLoadedModsInfo","getMagazineCargo","getMarkerColor","getMarkerPos","getMarkerSize","getMarkerType","getMass","getMissionConfig","getMissionConfigValue","getMissionDLCs","getMissionLayerEntities","getMissionLayers","getMissionPath","getModelInfo","getMousePosition","getMusicPlayedTime","getNumber","getObjectArgument","getObjectChildren","getObjectDLC","getObjectFOV","getObjectMaterials","getObjectProxy","getObjectScale","getObjectTextures","getObjectType","getObjectViewDistance","getOrDefault","getOxygenRemaining","getPersonUsedDLCs","getPilotCameraDirection","getPilotCameraPosition","getPilotCameraRotation","getPilotCameraTarget","getPlateNumber","getPlayerChannel","getPlayerID","getPlayerScores","getPlayerUID","getPlayerUIDOld","getPlayerVoNVolume","getPos","getPosASL","getPosASLVisual","getPosASLW","getPosATL","getPosATLVisual","getPosVisual","getPosWorld","getPosWorldVisual","getPylonMagazines","getRelDir","getRelPos","getRemoteSensorsDisabled","getRepairCargo","getResolution","getRoadInfo","getRotorBrakeRTD","getShadowDistance","getShotParents","getSlingLoad","getSoundController","getSoundControllerResult","getSpeed","getStamina","getStatValue","getSteamFriendsServers","getSubtitleOptions","getSuppression","getTerrainGrid","getTerrainHeightASL","getText","getTextRaw","getTextWidth","getTotalDLCUsageTime","getTrimOffsetRTD","getUnitLoadout","getUnitTrait","getUserMFDText","getUserMFDValue","getVariable","getVehicleCargo","getVehicleTIPars","getWeaponCargo","getWeaponSway","getWingsOrientationRTD","getWingsPositionRTD","getWorld","getWPPos","glanceAt","globalChat","globalRadio","goggles","goto","group","groupChat","groupFromNetId","groupIconSelectable","groupIconsVisible","groupId","groupOwner","groupRadio","groupSelectedUnits","groupSelectUnit","gunner","gusts","halt","handgunItems","handgunMagazine","handgunWeapon","handsHit","hasInterface","hasPilotCamera","hasWeapon","hcAllGroups","hcGroupParams","hcLeader","hcRemoveAllGroups","hcRemoveGroup","hcSelected","hcSelectGroup","hcSetGroup","hcShowBar","hcShownBar","headgear","hideBehindScripted","hideBody","hideObject","hideObjectGlobal","hideSelection","hierarchyObjectsCount","hint","hintC","hintCadet","hintSilent","hmd","hostMission","htmlLoad","HUDMovementLevels","humidity","image","importAllGroups","importance","in","inArea","inAreaArray","incapacitatedState","inflame","inflamed","infoPanel","infoPanelComponentEnabled","infoPanelComponents","infoPanels","inGameUISetEventHandler","inheritsFrom","initAmbientLife","inPolygon","inputAction","inRangeOfArtillery","insert","insertEditorObject","intersect","is3DEN","is3DENMultiplayer","is3DENPreview","isAbleToBreathe","isActionMenuVisible","isAgent","isAimPrecisionEnabled","isArray","isAutoHoverOn","isAutonomous","isAutoStartUpEnabledRTD","isAutotest","isAutoTrimOnRTD","isBleeding","isBurning","isClass","isCollisionLightOn","isCopilotEnabled","isDamageAllowed","isDedicated","isDLCAvailable","isEngineOn","isEqualTo","isEqualType","isEqualTypeAll","isEqualTypeAny","isEqualTypeArray","isEqualTypeParams","isFilePatchingEnabled","isFinal","isFlashlightOn","isFlatEmpty","isForcedWalk","isFormationLeader","isGameFocused","isGamePaused","isGroupDeletedWhenEmpty","isHidden","isHideBehindScripted","isInRemainsCollector","isInstructorFigureEnabled","isIRLaserOn","isKeyActive","isKindOf","isLaserOn","isLightOn","isLocalized","isManualFire","isMarkedForCollection","isMultiplayer","isMultiplayerSolo","isNil","isNotEqualTo","isNull","isNumber","isObjectHidden","isObjectRTD","isOnRoad","isPiPEnabled","isPlayer","isRealTime","isRemoteExecuted","isRemoteExecutedJIP","isSensorTargetConfirmed","isServer","isShowing3DIcons","isSimpleObject","isSprintAllowed","isStaminaEnabled","isSteamMission","isStreamFriendlyUIEnabled","isStressDamageEnabled","isText","isTouchingGround","isTurnedOut","isTutHintsEnabled","isUAVConnectable","isUAVConnected","isUIContext","isUniformAllowed","isVehicleCargo","isVehicleRadarOn","isVehicleSensorEnabled","isWalking","isWeaponDeployed","isWeaponRested","itemCargo","items","itemsWithMagazines","join","joinAs","joinAsSilent","joinSilent","joinString","kbAddDatabase","kbAddDatabaseTargets","kbAddTopic","kbHasTopic","kbReact","kbRemoveTopic","kbTell","kbWasSaid","keyImage","keyName","keys","knowsAbout","land","landAt","landResult","language","laserTarget","lbAdd","lbClear","lbColor","lbColorRight","lbCurSel","lbData","lbDelete","lbIsSelected","lbPicture","lbPictureRight","lbSelection","lbSetColor","lbSetColorRight","lbSetCurSel","lbSetData","lbSetPicture","lbSetPictureColor","lbSetPictureColorDisabled","lbSetPictureColorSelected","lbSetPictureRight","lbSetPictureRightColor","lbSetPictureRightColorDisabled","lbSetPictureRightColorSelected","lbSetSelectColor","lbSetSelectColorRight","lbSetSelected","lbSetText","lbSetTextRight","lbSetTooltip","lbSetValue","lbSize","lbSort","lbSortByValue","lbText","lbTextRight","lbValue","leader","leaderboardDeInit","leaderboardGetRows","leaderboardInit","leaderboardRequestRowsFriends","leaderboardRequestRowsGlobal","leaderboardRequestRowsGlobalAroundUser","leaderboardsRequestUploadScore","leaderboardsRequestUploadScoreKeepBest","leaderboardState","leaveVehicle","libraryCredits","libraryDisclaimers","lifeState","lightAttachObject","lightDetachObject","lightIsOn","lightnings","limitSpeed","linearConversion","lineIntersects","lineIntersectsObjs","lineIntersectsSurfaces","lineIntersectsWith","linkItem","list","listObjects","listRemoteTargets","listVehicleSensors","ln","lnbAddArray","lnbAddColumn","lnbAddRow","lnbClear","lnbColor","lnbColorRight","lnbCurSelRow","lnbData","lnbDeleteColumn","lnbDeleteRow","lnbGetColumnsPosition","lnbPicture","lnbPictureRight","lnbSetColor","lnbSetColorRight","lnbSetColumnsPos","lnbSetCurSelRow","lnbSetData","lnbSetPicture","lnbSetPictureColor","lnbSetPictureColorRight","lnbSetPictureColorSelected","lnbSetPictureColorSelectedRight","lnbSetPictureRight","lnbSetText","lnbSetTextRight","lnbSetTooltip","lnbSetValue","lnbSize","lnbSort","lnbSortByValue","lnbText","lnbTextRight","lnbValue","load","loadAbs","loadBackpack","loadFile","loadGame","loadIdentity","loadMagazine","loadOverlay","loadStatus","loadUniform","loadVest","local","localize","localNamespace","locationPosition","lock","lockCameraTo","lockCargo","lockDriver","locked","lockedCargo","lockedDriver","lockedInventory","lockedTurret","lockIdentity","lockInventory","lockTurret","lockWP","log","logEntities","logNetwork","logNetworkTerminate","lookAt","lookAtPos","magazineCargo","magazines","magazinesAllTurrets","magazinesAmmo","magazinesAmmoCargo","magazinesAmmoFull","magazinesDetail","magazinesDetailBackpack","magazinesDetailUniform","magazinesDetailVest","magazinesTurret","magazineTurretAmmo","mapAnimAdd","mapAnimClear","mapAnimCommit","mapAnimDone","mapCenterOnCamera","mapGridPosition","markAsFinishedOnSteam","markerAlpha","markerBrush","markerChannel","markerColor","markerDir","markerPolyline","markerPos","markerShadow","markerShape","markerSize","markerText","markerType","matrixMultiply","matrixTranspose","max","members","menuAction","menuAdd","menuChecked","menuClear","menuCollapse","menuData","menuDelete","menuEnable","menuEnabled","menuExpand","menuHover","menuPicture","menuSetAction","menuSetCheck","menuSetData","menuSetPicture","menuSetShortcut","menuSetText","menuSetURL","menuSetValue","menuShortcut","menuShortcutText","menuSize","menuSort","menuText","menuURL","menuValue","merge","min","mineActive","mineDetectedBy","missileTarget","missileTargetPos","missionConfigFile","missionDifficulty","missionName","missionNameSource","missionNamespace","missionStart","missionVersion","mod","modelToWorld","modelToWorldVisual","modelToWorldVisualWorld","modelToWorldWorld","modParams","moonIntensity","moonPhase","morale","move","move3DENCamera","moveInAny","moveInCargo","moveInCommander","moveInDriver","moveInGunner","moveInTurret","moveObjectToEnd","moveOut","moveTarget","moveTime","moveTo","moveToCompleted","moveToFailed","musicVolume","name","namedProperties","nameSound","nearEntities","nearestBuilding","nearestLocation","nearestLocations","nearestLocationWithDubbing","nearestObject","nearestObjects","nearestTerrainObjects","nearObjects","nearObjectsReady","nearRoads","nearSupplies","nearTargets","needReload","netId","netObjNull","newOverlay","nextMenuItemIndex","nextWeatherChange","nMenuItems","not","numberOfEnginesRTD","numberToDate","object","objectCurators","objectFromNetId","objectParent","objStatus","onBriefingGear","onBriefingGroup","onBriefingNotes","onBriefingPlan","onBriefingTeamSwitch","onCommandModeChanged","onDoubleClick","onEachFrame","onGroupIconClick","onGroupIconOverEnter","onGroupIconOverLeave","onHCGroupSelectionChanged","onMapSingleClick","onPlayerConnected","onPlayerDisconnected","onPreloadFinished","onPreloadStarted","onShowNewObject","onTeamSwitch","openCuratorInterface","openDLCPage","openDSInterface","openGPS","openMap","openSteamApp","openYoutubeVideo","or","orderGetIn","overcast","overcastForecast","owner","param","params","parseNumber","parseSimpleArray","parseText","parsingNamespace","particlesQuality","periscopeElevation","pickWeaponPool","pitch","pixelGrid","pixelGridBase","pixelGridNoUIScale","pixelH","pixelW","playableSlotsNumber","playableUnits","playAction","playActionNow","player","playerRespawnTime","playerSide","playersNumber","playGesture","playMission","playMove","playMoveNow","playMusic","playScriptedMission","playSound","playSound3D","position","positionCameraToWorld","posScreenToWorld","posWorldToScreen","ppEffectAdjust","ppEffectCommit","ppEffectCommitted","ppEffectCreate","ppEffectDestroy","ppEffectEnable","ppEffectEnabled","ppEffectForceInNVG","precision","preloadCamera","preloadObject","preloadSound","preloadTitleObj","preloadTitleRsc","preprocessFile","preprocessFileLineNumbers","primaryWeapon","primaryWeaponItems","primaryWeaponMagazine","priority","processDiaryLink","processInitCommands","productVersion","profileName","profileNamespace","profileNameSteam","progressLoadingScreen","progressPosition","progressSetPosition","publicVariable","publicVariableClient","publicVariableServer","pushBack","pushBackUnique","putWeaponPool","queryItemsPool","queryMagazinePool","queryWeaponPool","rad","radioChannelAdd","radioChannelCreate","radioChannelInfo","radioChannelRemove","radioChannelSetCallSign","radioChannelSetLabel","radioVolume","rain","rainbow","random","rank","rankId","rating","rectangular","registeredTasks","registerTask","reload","reloadEnabled","remoteControl","remoteExec","remoteExecCall","remoteExecutedOwner","remove3DENConnection","remove3DENEventHandler","remove3DENLayer","removeAction","removeAll3DENEventHandlers","removeAllActions","removeAllAssignedItems","removeAllBinocularItems","removeAllContainers","removeAllCuratorAddons","removeAllCuratorCameraAreas","removeAllCuratorEditingAreas","removeAllEventHandlers","removeAllHandgunItems","removeAllItems","removeAllItemsWithMagazines","removeAllMissionEventHandlers","removeAllMPEventHandlers","removeAllMusicEventHandlers","removeAllOwnedMines","removeAllPrimaryWeaponItems","removeAllSecondaryWeaponItems","removeAllWeapons","removeBackpack","removeBackpackGlobal","removeBinocularItem","removeClothing","removeCuratorAddons","removeCuratorCameraArea","removeCuratorEditableObjects","removeCuratorEditingArea","removeDiaryRecord","removeDiarySubject","removeDrawIcon","removeDrawLinks","removeEventHandler","removeFromRemainsCollector","removeGoggles","removeGroupIcon","removeHandgunItem","removeHeadgear","removeItem","removeItemFromBackpack","removeItemFromUniform","removeItemFromVest","removeItems","removeMagazine","removeMagazineGlobal","removeMagazines","removeMagazinesTurret","removeMagazineTurret","removeMenuItem","removeMissionEventHandler","removeMPEventHandler","removeMusicEventHandler","removeOwnedMine","removePrimaryWeaponItem","removeSecondaryWeaponItem","removeSimpleTask","removeSwitchableUnit","removeTeamMember","removeUniform","removeVest","removeWeapon","removeWeaponAttachmentCargo","removeWeaponCargo","removeWeaponGlobal","removeWeaponTurret","reportRemoteTarget","requiredVersion","resetCamShake","resetSubgroupDirection","resize","resources","respawnVehicle","restartEditorCamera","reveal","revealMine","reverse","reversedMouseY","roadAt","roadsConnectedTo","roleDescription","ropeAttachedObjects","ropeAttachedTo","ropeAttachEnabled","ropeAttachTo","ropeCreate","ropeCut","ropeDestroy","ropeDetach","ropeEndPosition","ropeLength","ropes","ropeSegments","ropeSetCargoMass","ropeUnwind","ropeUnwound","rotorsForcesRTD","rotorsRpmRTD","round","runInitScript","safeZoneH","safeZoneW","safeZoneWAbs","safeZoneX","safeZoneXAbs","safeZoneY","save3DENInventory","saveGame","saveIdentity","saveJoysticks","saveOverlay","saveProfileNamespace","saveStatus","saveVar","savingEnabled","say","say2D","say3D","scopeName","score","scoreSide","screenshot","screenToWorld","scriptDone","scriptName","scudState","secondaryWeapon","secondaryWeaponItems","secondaryWeaponMagazine","select","selectBestPlaces","selectDiarySubject","selectedEditorObjects","selectEditorObject","selectionNames","selectionPosition","selectLeader","selectMax","selectMin","selectNoPlayer","selectPlayer","selectRandom","selectRandomWeighted","selectWeapon","selectWeaponTurret","sendAUMessage","sendSimpleCommand","sendTask","sendTaskResult","sendUDPMessage","serverCommand","serverCommandAvailable","serverCommandExecutable","serverName","serverTime","set","set3DENAttribute","set3DENAttributes","set3DENGrid","set3DENIconsVisible","set3DENLayer","set3DENLinesVisible","set3DENLogicType","set3DENMissionAttribute","set3DENMissionAttributes","set3DENModelsVisible","set3DENObjectType","set3DENSelected","setAccTime","setActualCollectiveRTD","setAirplaneThrottle","setAirportSide","setAmmo","setAmmoCargo","setAmmoOnPylon","setAnimSpeedCoef","setAperture","setApertureNew","setAPURTD","setArmoryPoints","setAttributes","setAutonomous","setBatteryChargeRTD","setBatteryRTD","setBehaviour","setBehaviourStrong","setBleedingRemaining","setBrakesRTD","setCameraEffect","setCameraInterest","setCamShakeDefParams","setCamShakeParams","setCamUseTI","setCaptive","setCenterOfMass","setCollisionLight","setCombatBehaviour","setCombatMode","setCompassOscillation","setConvoySeparation","setCuratorCameraAreaCeiling","setCuratorCoef","setCuratorEditingAreaType","setCuratorWaypointCost","setCurrentChannel","setCurrentTask","setCurrentWaypoint","setCustomAimCoef","setCustomMissionData","setCustomSoundController","setCustomWeightRTD","setDamage","setDammage","setDate","setDebriefingText","setDefaultCamera","setDestination","setDetailMapBlendPars","setDiaryRecordText","setDiarySubjectPicture","setDir","setDirection","setDrawIcon","setDriveOnPath","setDropInterval","setDynamicSimulationDistance","setDynamicSimulationDistanceCoef","setEditorMode","setEditorObjectScope","setEffectCondition","setEffectiveCommander","setEngineRPMRTD","setEngineRpmRTD","setFace","setFaceAnimation","setFatigue","setFeatureType","setFlagAnimationPhase","setFlagOwner","setFlagSide","setFlagTexture","setFog","setForceGeneratorRTD","setFormation","setFormationTask","setFormDir","setFriend","setFromEditor","setFSMVariable","setFuel","setFuelCargo","setGroupIcon","setGroupIconParams","setGroupIconsSelectable","setGroupIconsVisible","setGroupId","setGroupIdGlobal","setGroupOwner","setGusts","setHideBehind","setHit","setHitIndex","setHitPointDamage","setHorizonParallaxCoef","setHUDMovementLevels","setIdentity","setImportance","setInfoPanel","setLeader","setLightAmbient","setLightAttenuation","setLightBrightness","setLightColor","setLightDayLight","setLightFlareMaxDistance","setLightFlareSize","setLightIntensity","setLightnings","setLightUseFlare","setLocalWindParams","setMagazineTurretAmmo","setMarkerAlpha","setMarkerAlphaLocal","setMarkerBrush","setMarkerBrushLocal","setMarkerColor","setMarkerColorLocal","setMarkerDir","setMarkerDirLocal","setMarkerPolyline","setMarkerPolylineLocal","setMarkerPos","setMarkerPosLocal","setMarkerShadow","setMarkerShadowLocal","setMarkerShape","setMarkerShapeLocal","setMarkerSize","setMarkerSizeLocal","setMarkerText","setMarkerTextLocal","setMarkerType","setMarkerTypeLocal","setMass","setMimic","setMissileTarget","setMissileTargetPos","setMousePosition","setMusicEffect","setMusicEventHandler","setName","setNameSound","setObjectArguments","setObjectMaterial","setObjectMaterialGlobal","setObjectProxy","setObjectScale","setObjectTexture","setObjectTextureGlobal","setObjectViewDistance","setOvercast","setOwner","setOxygenRemaining","setParticleCircle","setParticleClass","setParticleFire","setParticleParams","setParticleRandom","setPilotCameraDirection","setPilotCameraRotation","setPilotCameraTarget","setPilotLight","setPiPEffect","setPitch","setPlateNumber","setPlayable","setPlayerRespawnTime","setPlayerVoNVolume","setPos","setPosASL","setPosASL2","setPosASLW","setPosATL","setPosition","setPosWorld","setPylonLoadout","setPylonsPriority","setRadioMsg","setRain","setRainbow","setRandomLip","setRank","setRectangular","setRepairCargo","setRotorBrakeRTD","setShadowDistance","setShotParents","setSide","setSimpleTaskAlwaysVisible","setSimpleTaskCustomData","setSimpleTaskDescription","setSimpleTaskDestination","setSimpleTaskTarget","setSimpleTaskType","setSimulWeatherLayers","setSize","setSkill","setSlingLoad","setSoundEffect","setSpeaker","setSpeech","setSpeedMode","setStamina","setStaminaScheme","setStarterRTD","setStatValue","setSuppression","setSystemOfUnits","setTargetAge","setTaskMarkerOffset","setTaskResult","setTaskState","setTerrainGrid","setText","setThrottleRTD","setTimeMultiplier","setTitleEffect","setToneMapping","setToneMappingParams","setTrafficDensity","setTrafficDistance","setTrafficGap","setTrafficSpeed","setTriggerActivation","setTriggerArea","setTriggerInterval","setTriggerStatements","setTriggerText","setTriggerTimeout","setTriggerType","setType","setUnconscious","setUnitAbility","setUnitCombatMode","setUnitLoadout","setUnitPos","setUnitPosWeak","setUnitRank","setUnitRecoilCoefficient","setUnitTrait","setUnloadInCombat","setUserActionText","setUserMFDText","setUserMFDValue","setVariable","setVectorDir","setVectorDirAndUp","setVectorUp","setVehicleAmmo","setVehicleAmmoDef","setVehicleArmor","setVehicleCargo","setVehicleId","setVehicleInit","setVehicleLock","setVehiclePosition","setVehicleRadar","setVehicleReceiveRemoteTargets","setVehicleReportOwnPosition","setVehicleReportRemoteTargets","setVehicleTIPars","setVehicleVarName","setVelocity","setVelocityModelSpace","setVelocityTransformation","setViewDistance","setVisibleIfTreeCollapsed","setWantedRPMRTD","setWaves","setWaypointBehaviour","setWaypointCombatMode","setWaypointCompletionRadius","setWaypointDescription","setWaypointForceBehaviour","setWaypointFormation","setWaypointHousePosition","setWaypointLoiterAltitude","setWaypointLoiterRadius","setWaypointLoiterType","setWaypointName","setWaypointPosition","setWaypointScript","setWaypointSpeed","setWaypointStatements","setWaypointTimeout","setWaypointType","setWaypointVisible","setWeaponReloadingTime","setWeaponZeroing","setWind","setWindDir","setWindForce","setWindStr","setWingForceScaleRTD","setWPPos","show3DIcons","showChat","showCinemaBorder","showCommandingMenu","showCompass","showCuratorCompass","showGPS","showHUD","showLegend","showMap","shownArtilleryComputer","shownChat","shownCompass","shownCuratorCompass","showNewEditorObject","shownGPS","shownHUD","shownMap","shownPad","shownRadio","shownScoretable","shownUAVFeed","shownWarrant","shownWatch","showPad","showRadio","showScoretable","showSubtitles","showUAVFeed","showWarrant","showWatch","showWaypoint","showWaypoints","side","sideChat","sideEmpty","sideEnemy","sideFriendly","sideRadio","simpleTasks","simulationEnabled","simulCloudDensity","simulCloudOcclusion","simulInClouds","simulSetHumidity","simulWeatherSync","sin","size","sizeOf","skill","skillFinal","skipTime","sleep","sliderPosition","sliderRange","sliderSetPosition","sliderSetRange","sliderSetSpeed","sliderSpeed","slingLoadAssistantShown","soldierMagazines","someAmmo","sort","soundVolume","spawn","speaker","speechVolume","speed","speedMode","splitString","sqrt","squadParams","stance","startLoadingScreen","step","stop","stopEngineRTD","stopped","str","sunOrMoon","supportInfo","suppressFor","surfaceIsWater","surfaceNormal","surfaceTexture","surfaceType","swimInDepth","switchableUnits","switchAction","switchCamera","switchGesture","switchLight","switchMove","synchronizedObjects","synchronizedTriggers","synchronizedWaypoints","synchronizeObjectsAdd","synchronizeObjectsRemove","synchronizeTrigger","synchronizeWaypoint","systemChat","systemOfUnits","systemTime","systemTimeUTC","tan","targetKnowledge","targets","targetsAggregate","targetsQuery","taskAlwaysVisible","taskChildren","taskCompleted","taskCustomData","taskDescription","taskDestination","taskHint","taskMarkerOffset","taskName","taskParent","taskResult","taskState","taskType","teamMember","teamName","teams","teamSwitch","teamSwitchEnabled","teamType","terminate","terrainIntersect","terrainIntersectASL","terrainIntersectAtASL","text","textLog","textLogFormat","tg","throttleRTD","time","timeMultiplier","titleCut","titleFadeOut","titleObj","titleRsc","titleText","toArray","toFixed","toLower","toLowerANSI","toString","toUpper","toUpperANSI","triggerActivated","triggerActivation","triggerAmmo","triggerArea","triggerAttachedVehicle","triggerAttachObject","triggerAttachVehicle","triggerDynamicSimulation","triggerInterval","triggerStatements","triggerText","triggerTimeout","triggerTimeoutCurrent","triggerType","trim","turretLocal","turretOwner","turretUnit","tvAdd","tvClear","tvCollapse","tvCollapseAll","tvCount","tvCurSel","tvData","tvDelete","tvExpand","tvExpandAll","tvIsSelected","tvPicture","tvPictureRight","tvSelection","tvSetColor","tvSetCurSel","tvSetData","tvSetPicture","tvSetPictureColor","tvSetPictureColorDisabled","tvSetPictureColorSelected","tvSetPictureRight","tvSetPictureRightColor","tvSetPictureRightColorDisabled","tvSetPictureRightColorSelected","tvSetSelectColor","tvSetSelected","tvSetText","tvSetTooltip","tvSetValue","tvSort","tvSortAll","tvSortByValue","tvSortByValueAll","tvText","tvTooltip","tvValue","type","typeName","typeOf","UAVControl","uiNamespace","uiSleep","unassignCurator","unassignItem","unassignTeam","unassignVehicle","underwater","uniform","uniformContainer","uniformItems","uniformMagazines","unitAddons","unitAimPosition","unitAimPositionVisual","unitBackpack","unitCombatMode","unitIsUAV","unitPos","unitReady","unitRecoilCoefficient","units","unitsBelowHeight","unitTurret","unlinkItem","unlockAchievement","unregisterTask","updateDrawIcon","updateMenuItem","updateObjectTree","useAIOperMapObstructionTest","useAISteeringComponent","useAudioTimeForMoves","userInputDisabled","vectorAdd","vectorCos","vectorCrossProduct","vectorDiff","vectorDir","vectorDirVisual","vectorDistance","vectorDistanceSqr","vectorDotProduct","vectorFromTo","vectorLinearConversion","vectorMagnitude","vectorMagnitudeSqr","vectorModelToWorld","vectorModelToWorldVisual","vectorMultiply","vectorNormalized","vectorUp","vectorUpVisual","vectorWorldToModel","vectorWorldToModelVisual","vehicle","vehicleCargoEnabled","vehicleChat","vehicleMoveInfo","vehicleRadio","vehicleReceiveRemoteTargets","vehicleReportOwnPosition","vehicleReportRemoteTargets","vehicles","vehicleVarName","velocity","velocityModelSpace","verifySignature","vest","vestContainer","vestItems","vestMagazines","viewDistance","visibleCompass","visibleGPS","visibleMap","visiblePosition","visiblePositionASL","visibleScoretable","visibleWatch","waves","waypointAttachedObject","waypointAttachedVehicle","waypointAttachObject","waypointAttachVehicle","waypointBehaviour","waypointCombatMode","waypointCompletionRadius","waypointDescription","waypointForceBehaviour","waypointFormation","waypointHousePosition","waypointLoiterAltitude","waypointLoiterRadius","waypointLoiterType","waypointName","waypointPosition","waypoints","waypointScript","waypointsEnabledUAV","waypointShow","waypointSpeed","waypointStatements","waypointTimeout","waypointTimeoutCurrent","waypointType","waypointVisible","weaponAccessories","weaponAccessoriesCargo","weaponCargo","weaponDirection","weaponInertia","weaponLowered","weapons","weaponsItems","weaponsItemsCargo","weaponState","weaponsTurret","weightRTD","WFSideText","wind","windDir","windRTD","windStr","wingsForcesRTD","worldName","worldSize","worldToModel","worldToModelVisual","worldToScreen"], +literal:["blufor","civilian","configNull","controlNull","displayNull","east","endl","false","grpNull","independent","lineBreak","locationNull","nil","objNull","opfor","pi","resistance","scriptNull","sideAmbientLife","sideEmpty","sideLogic","sideUnknown","taskNull","teamMemberNull","true","west"] +},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.NUMBER_MODE,{ +className:"variable",begin:/\b_+[a-zA-Z]\w*/},{className:"title", +begin:/[a-zA-Z]\w+_fnc_\w+/},t,a],illegal:/#|^\$ /}}})() +;hljs.registerLanguage("sqf",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/sql.min.js b/src/app/resources/assets/highlight/languages/sql.min.js new file mode 100644 index 0000000..bc4146f --- /dev/null +++ b/src/app/resources/assets/highlight/languages/sql.min.js @@ -0,0 +1,17 @@ +/*! `sql` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const r=e.regex,t=e.COMMENT("--","$"),n=["true","false","unknown"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],i=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],o=i,c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!i.includes(e))),l={ +begin:r.concat(/\b/,r.either(...o),/\s*\(/),relevance:0,keywords:{built_in:o}} +;return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{ +$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:r,when:t}={})=>{const n=t +;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:n(e)?e+"|0":e)) +})(c,{when:e=>e.length<3}),literal:n,type:a, +built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"] +},contains:[{begin:r.either(...s),relevance:0,keywords:{$pattern:/[\w\.]+/, +keyword:c.concat(s),literal:n,type:a}},{className:"type", +begin:r.either("double precision","large object","with timezone","without timezone") +},l,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{ +begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{ +begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"operator", +begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})() +;hljs.registerLanguage("sql",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/stan.min.js b/src/app/resources/assets/highlight/languages/stan.min.js new file mode 100644 index 0000000..21ac120 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/stan.min.js @@ -0,0 +1,28 @@ +/*! `stan` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const _=e.regex,o=["bernoulli","bernoulli_logit","bernoulli_logit_glm","beta","beta_binomial","beta_proportion","binomial","binomial_logit","categorical","categorical_logit","categorical_logit_glm","cauchy","chi_square","dirichlet","discrete_range","double_exponential","exp_mod_normal","exponential","frechet","gamma","gaussian_dlm_obs","gumbel","hmm_latent","hypergeometric","inv_chi_square","inv_gamma","inv_wishart","lkj_corr","lkj_corr_cholesky","logistic","lognormal","multi_gp","multi_gp_cholesky","multi_normal","multi_normal_cholesky","multi_normal_prec","multi_student_t","multinomial","multinomial_logit","neg_binomial","neg_binomial_2","neg_binomial_2_log","neg_binomial_2_log_glm","normal","normal_id_glm","ordered_logistic","ordered_logistic_glm","ordered_probit","pareto","pareto_type_2","poisson","poisson_log","poisson_log_glm","rayleigh","scaled_inv_chi_square","skew_double_exponential","skew_normal","std_normal","student_t","uniform","von_mises","weibull","wiener","wishart"],i=e.COMMENT(/\/\*/,/\*\//,{ +relevance:0,contains:[{scope:"doctag",match:/@(return|param)/}]}),r={ +scope:"meta",begin:/#include\b/,end:/$/,contains:[{match:/[a-z][a-z-._]+/, +scope:"string"},e.C_LINE_COMMENT_MODE] +},t=["lower","upper","offset","multiplier"];return{name:"Stan", +aliases:["stanfuncs"],keywords:{$pattern:e.IDENT_RE, +title:["functions","model","data","parameters","quantities","transformed","generated"], +type:["array","complex","int","real","vector","ordered","positive_ordered","simplex","unit_vector","row_vector","matrix","cholesky_factor_corr|10","cholesky_factor_cov|10","corr_matrix|10","cov_matrix|10","void"], +keyword:["for","in","if","else","while","break","continue","return"], +built_in:["Phi","Phi_approx","abs","acos","acosh","add_diag","algebra_solver","algebra_solver_newton","append_array","append_col","append_row","asin","asinh","atan","atan2","atanh","bessel_first_kind","bessel_second_kind","binary_log_loss","binomial_coefficient_log","block","cbrt","ceil","chol2inv","cholesky_decompose","choose","col","cols","columns_dot_product","columns_dot_self","conj","cos","cosh","cov_exp_quad","crossprod","csr_extract_u","csr_extract_v","csr_extract_w","csr_matrix_times_vector","csr_to_dense_matrix","cumulative_sum","determinant","diag_matrix","diag_post_multiply","diag_pre_multiply","diagonal","digamma","dims","distance","dot_product","dot_self","eigenvalues_sym","eigenvectors_sym","erf","erfc","exp","exp2","expm1","fabs","falling_factorial","fdim","floor","fma","fmax","fmin","fmod","gamma_p","gamma_q","generalized_inverse","get_imag","get_lp","get_real","head","hmm_hidden_state_prob","hmm_marginal","hypot","identity_matrix","inc_beta","int_step","integrate_1d","integrate_ode","integrate_ode_adams","integrate_ode_bdf","integrate_ode_rk45","inv","inv_Phi","inv_cloglog","inv_logit","inv_sqrt","inv_square","inverse","inverse_spd","is_inf","is_nan","lambert_w0","lambert_wm1","lbeta","lchoose","ldexp","lgamma","linspaced_array","linspaced_int_array","linspaced_row_vector","linspaced_vector","lmgamma","lmultiply","log","log1m","log1m_exp","log1m_inv_logit","log1p","log1p_exp","log_determinant","log_diff_exp","log_falling_factorial","log_inv_logit","log_inv_logit_diff","log_mix","log_modified_bessel_first_kind","log_rising_factorial","log_softmax","log_sum_exp","logit","machine_precision","map_rect","matrix_exp","matrix_exp_multiply","matrix_power","max","mdivide_left_spd","mdivide_left_tri_low","mdivide_right_spd","mdivide_right_tri_low","mean","min","modified_bessel_first_kind","modified_bessel_second_kind","multiply_log","multiply_lower_tri_self_transpose","negative_infinity","norm","not_a_number","num_elements","ode_adams","ode_adams_tol","ode_adjoint_tol_ctl","ode_bdf","ode_bdf_tol","ode_ckrk","ode_ckrk_tol","ode_rk45","ode_rk45_tol","one_hot_array","one_hot_int_array","one_hot_row_vector","one_hot_vector","ones_array","ones_int_array","ones_row_vector","ones_vector","owens_t","polar","positive_infinity","pow","print","prod","proj","qr_Q","qr_R","qr_thin_Q","qr_thin_R","quad_form","quad_form_diag","quad_form_sym","quantile","rank","reduce_sum","reject","rep_array","rep_matrix","rep_row_vector","rep_vector","reverse","rising_factorial","round","row","rows","rows_dot_product","rows_dot_self","scale_matrix_exp_multiply","sd","segment","sin","singular_values","sinh","size","softmax","sort_asc","sort_desc","sort_indices_asc","sort_indices_desc","sqrt","square","squared_distance","step","sub_col","sub_row","sum","svd_U","svd_V","symmetrize_from_lower_tri","tail","tan","tanh","target","tcrossprod","tgamma","to_array_1d","to_array_2d","to_complex","to_matrix","to_row_vector","to_vector","trace","trace_gen_quad_form","trace_quad_form","trigamma","trunc","uniform_simplex","variance","zeros_array","zeros_int_array","zeros_row_vector"] +},contains:[e.C_LINE_COMMENT_MODE,r,e.HASH_COMMENT_MODE,i,{scope:"built_in", +match:/\s(pi|e|sqrt2|log2|log10)(?=\()/,relevance:0},{ +match:_.concat(/[<,]\s*/,_.either(...t),/\s*=/),keywords:t},{scope:"keyword", +match:/\btarget(?=\s*\+=)/},{ +match:[/~\s*/,_.either(...o),/(?:\(\))/,/\s*T(?=\s*\[)/],scope:{2:"built_in", +4:"keyword"}},{scope:"built_in",keywords:o, +begin:_.concat(/\w*/,_.either(...o),/(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])/) +},{begin:[/~/,/\s*/,_.concat(_.either(...o),/(?=\s*[\(.*\)])/)],scope:{ +3:"built_in"}},{ +begin:[/~/,/\s*\w+(?=\s*[\(.*\)])/,"(?!.*/\b("+_.either(...o)+")\b)"],scope:{ +2:"title.function"}},{scope:"title.function", +begin:/\w*(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])/},{ +scope:"number", +match:_.concat(/(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)/,/(?:[eE][+-]?\d+(?:_\d+)*)?i?(?!\w)/), +relevance:0},{scope:"string",begin:/"/,end:/"/}]}}})() +;hljs.registerLanguage("stan",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/stata.min.js b/src/app/resources/assets/highlight/languages/stata.min.js new file mode 100644 index 0000000..0cb013d --- /dev/null +++ b/src/app/resources/assets/highlight/languages/stata.min.js @@ -0,0 +1,11 @@ +/*! `stata` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Stata",aliases:["do","ado"], +case_insensitive:!0, +keywords:"if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey bias binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 bubble bubbleplot ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d|0 datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e|0 ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error esize est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 forest forestplot form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate funnel funnelplot g|0 gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h|0 hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l|0 la lab labbe labbeplot labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m|0 ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize menl meqparse mer merg merge meta mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n|0 nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trimfill trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u|0 unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5", +contains:[{className:"symbol",begin:/`[a-zA-Z0-9_]+'/},{className:"variable", +begin:/\$\{?[a-zA-Z0-9_]+\}?/,relevance:0},{className:"string",variants:[{ +begin:'`"[^\r\n]*?"\''},{begin:'"[^\r\n"]*"'}]},{className:"built_in", +variants:[{ +begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\()" +}]},e.COMMENT("^[ \t]*\\*.*$",!1),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE] +})})();hljs.registerLanguage("stata",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/step21.min.js b/src/app/resources/assets/highlight/languages/step21.min.js new file mode 100644 index 0000000..8ca8601 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/step21.min.js @@ -0,0 +1,10 @@ +/*! `step21` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"STEP Part 21", +aliases:["p21","step","stp"],case_insensitive:!0,keywords:{ +$pattern:"[A-Z_][A-Z0-9_.]*",keyword:["HEADER","ENDSEC","DATA"]},contains:[{ +className:"meta",begin:"ISO-10303-21;",relevance:10},{className:"meta", +begin:"END-ISO-10303-21;",relevance:10 +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*!","\\*/"),e.C_NUMBER_MODE,e.inherit(e.APOS_STRING_MODE,{ +illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{ +className:"string",begin:"'",end:"'"},{className:"symbol",variants:[{begin:"#", +end:"\\d+",illegal:"\\W"}]}]})})();hljs.registerLanguage("step21",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/stylus.min.js b/src/app/resources/assets/highlight/languages/stylus.min.js new file mode 100644 index 0000000..53df1ce --- /dev/null +++ b/src/app/resources/assets/highlight/languages/stylus.min.js @@ -0,0 +1,36 @@ +/*! `stylus` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],i=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],t=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],r=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse() +;return n=>{const a=(e=>({IMPORTANT:{scope:"meta",begin:"!important"}, +BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number", +begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{ +className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{ +scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/} +}))(n),l={className:"variable",begin:"\\$"+n.IDENT_RE},s="(?=[.\\s\\n[:,(])" +;return{name:"Stylus",aliases:["styl"],case_insensitive:!1, +keywords:"if else for in", +illegal:"(\\?|(\\bReturn\\b)|(\\bEnd\\b)|(\\bend\\b)|(\\bdef\\b)|;|#\\s|\\*\\s|===\\s|\\||%)", +contains:[n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE,a.HEXCOLOR,{ +begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*(?=[.\\s\\n[:,(])",className:"selector-class"},{ +begin:"#[a-zA-Z][a-zA-Z0-9_-]*(?=[.\\s\\n[:,(])",className:"selector-id"},{ +begin:"\\b("+e.join("|")+")"+s,className:"selector-tag"},{ +className:"selector-pseudo",begin:"&?:("+t.join("|")+")"+s},{ +className:"selector-pseudo",begin:"&?:(:)?("+r.join("|")+")"+s +},a.ATTRIBUTE_SELECTOR_MODE,{className:"keyword",begin:/@media/,starts:{ +end:/[{;}]/,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only", +attribute:i.join(" ")},contains:[a.CSS_NUMBER_MODE]}},{className:"keyword", +begin:"@((-(o|moz|ms|webkit)-)?(charset|css|debug|extend|font-face|for|import|include|keyframes|media|mixin|page|warn|while))\\b" +},l,a.CSS_NUMBER_MODE,{className:"function", +begin:"^[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)",illegal:"[\\n]",returnBegin:!0, +contains:[{className:"title",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"},{ +className:"params",begin:/\(/,end:/\)/, +contains:[a.HEXCOLOR,l,n.APOS_STRING_MODE,a.CSS_NUMBER_MODE,n.QUOTE_STRING_MODE] +}]},a.CSS_VARIABLE,{className:"attribute",begin:"\\b("+o.join("|")+")\\b", +starts:{end:/;|$/, +contains:[a.HEXCOLOR,l,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,a.CSS_NUMBER_MODE,n.C_BLOCK_COMMENT_MODE,a.IMPORTANT,a.FUNCTION_DISPATCH], +illegal:/\./,relevance:0}},a.FUNCTION_DISPATCH]}}})() +;hljs.registerLanguage("stylus",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/subunit.min.js b/src/app/resources/assets/highlight/languages/subunit.min.js new file mode 100644 index 0000000..f59ad3a --- /dev/null +++ b/src/app/resources/assets/highlight/languages/subunit.min.js @@ -0,0 +1,9 @@ +/*! `subunit` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var s=(()=>{"use strict";return s=>({name:"SubUnit",case_insensitive:!0, +contains:[{className:"string",begin:"\\[\n(multipart)?",end:"\\]\n"},{ +className:"string",begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z" +},{className:"string",begin:"(\\+|-)\\d+"},{className:"keyword",relevance:10, +variants:[{ +begin:"^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?" +},{begin:"^progress(:?)(\\s+)?(pop|push)?"},{begin:"^tags:"},{begin:"^time:"}]}] +})})();hljs.registerLanguage("subunit",s)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/swift.min.js b/src/app/resources/assets/highlight/languages/swift.min.js new file mode 100644 index 0000000..89020f8 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/swift.min.js @@ -0,0 +1,60 @@ +/*! `swift` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function a(e){return t("(?=",e,")")} +function t(...a){return a.map((a=>e(a))).join("")}function n(...a){const t=(e=>{ +const a=e[e.length-1] +;return"object"==typeof a&&a.constructor===Object?(e.splice(e.length-1,1),a):{} +})(a);return"("+(t.capture?"":"?:")+a.map((a=>e(a))).join("|")+")"} +const i=e=>t(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","distributed","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],p=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],d=n(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),F=n(d,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=t(d,F,"*"),h=n(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=n(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=t(h,f,"*"),y=t(/[A-Z]/,f,"*"),g=["autoclosure",t(/convention\(/,n("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",t(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"] +;return e=>{const d={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{ +contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],A={match:[/\./,n(...s,...u)], +className:{2:"keyword"}},N={match:t(/\./,n(...r)),relevance:0 +},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),D={variants:[{ +className:"keyword", +match:n(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},k={ +$pattern:n(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[A,N,D],_=[{ +match:t(/\./,n(...p)),relevance:0},{className:"built_in", +match:t(/\b/,n(...p),/(?=\()/)}],S={match:/->/,relevance:0},M=[S,{ +className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${F})+`}] +}],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{ +match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{ +match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{ +match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},L=(e="")=>({ +className:"subst",variants:[{match:t(/\\/,e,/[0\\tnr"']/)},{ +match:t(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),O=(e="")=>({className:"subst", +match:t(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),T=(e="")=>({className:"subst", +label:"interpol",begin:t(/\\/,e,/\(/),end:/\)/}),$=(e="")=>({begin:t(e,/"""/), +end:t(/"""/,e),contains:[L(e),O(e),T(e)]}),j=(e="")=>({begin:t(e,/"/), +end:t(/"/,e),contains:[L(e),T(e)]}),P={className:"string", +variants:[$(),$("#"),$("##"),$("###"),j(),j("#"),j("##"),j("###")]},K={ +match:t(/`/,w,/`/)},z=[K,{className:"variable",match:/\$\d+/},{ +className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#(un)?)available/, +className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E, +contains:[...M,I,P]}]}},{className:"keyword",match:t(/@/,n(...g))},{ +className:"meta",match:t(/@/,w)}],U={match:a(/\b[A-Z]/),relevance:0,contains:[{ +className:"type", +match:t(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+") +},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{ +match:/\.\.\./,relevance:0},{match:t(/\s+&\s+/,a(y)),relevance:0}]},Z={ +begin://,keywords:k,contains:[...v,...B,...q,S,U]};U.contains.push(Z) +;const V={begin:/\(/,end:/\)/,relevance:0,keywords:k,contains:["self",{ +match:t(w,/\s*:/),keywords:"_|0",relevance:0 +},...v,...B,..._,...M,I,P,...z,...q,U]},W={begin://,contains:[...v,U] +},G={begin:/\(/,end:/\)/,keywords:k,contains:[{ +begin:n(a(t(w,/\s*:/)),a(t(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0,contains:[{ +className:"keyword",match:/\b_\b/},{className:"params",match:w}] +},...v,...B,...M,I,P,...q,U,V],endsParent:!0,illegal:/["']/},R={ +match:[/func/,/\s+/,n(K.match,w,b)],className:{1:"keyword",3:"title.function"}, +contains:[W,G,d],illegal:[/\[/,/%/]},X={ +match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"}, +contains:[W,G,d],illegal:/\[|%/},H={match:[/operator/,/\s+/,b],className:{ +1:"keyword",3:"title"}},J={begin:[/precedencegroup/,/\s+/,y],className:{ +1:"keyword",3:"title"},contains:[U],keywords:[...l,...o],end:/}/} +;for(const e of P.variants){const a=e.contains.find((e=>"interpol"===e.label)) +;a.keywords=k;const t=[...B,..._,...M,I,P,...z];a.contains=[...t,{begin:/\(/, +end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:k, +contains:[...v,R,X,{beginKeywords:"struct protocol class extension enum actor", +end:"\\{",excludeEnd:!0,keywords:k,contains:[e.inherit(e.TITLE_MODE,{ +className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B] +},H,J,{beginKeywords:"import",end:/$/,contains:[...v],relevance:0 +},...B,..._,...M,I,P,...z,...q,U,V]}}})();hljs.registerLanguage("swift",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/taggerscript.min.js b/src/app/resources/assets/highlight/languages/taggerscript.min.js new file mode 100644 index 0000000..a73e95b --- /dev/null +++ b/src/app/resources/assets/highlight/languages/taggerscript.min.js @@ -0,0 +1,8 @@ +/*! `taggerscript` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Tagger Script",contains:[{ +className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\\[()]/},{ +begin:/\(/,end:/\)/,contains:[{begin:/\\[()]/},"self"]}],relevance:10},{ +className:"keyword",begin:/\$[_a-zA-Z0-9]+(?=\()/},{className:"variable", +begin:/%[_a-zA-Z0-9:]+%/},{className:"symbol",begin:/\\[\\nt$%,()]/},{ +className:"symbol",begin:/\\u[a-fA-F0-9]{4}/}]})})() +;hljs.registerLanguage("taggerscript",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/tap.min.js b/src/app/resources/assets/highlight/languages/tap.min.js new file mode 100644 index 0000000..2ab00fc --- /dev/null +++ b/src/app/resources/assets/highlight/languages/tap.min.js @@ -0,0 +1,7 @@ +/*! `tap` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Test Anything Protocol", +case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{ +begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:/---$/, +end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number", +begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}] +}]})})();hljs.registerLanguage("tap",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/tcl.min.js b/src/app/resources/assets/highlight/languages/tcl.min.js new file mode 100644 index 0000000..66c606c --- /dev/null +++ b/src/app/resources/assets/highlight/languages/tcl.min.js @@ -0,0 +1,15 @@ +/*! `tcl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a=e.regex,t=/[a-zA-Z_][a-zA-Z0-9_]*/,r={className:"number", +variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"Tcl", +aliases:["tk"], +keywords:["after","append","apply","array","auto_execok","auto_import","auto_load","auto_mkindex","auto_mkindex_old","auto_qualify","auto_reset","bgerror","binary","break","catch","cd","chan","clock","close","concat","continue","dde","dict","encoding","eof","error","eval","exec","exit","expr","fblocked","fconfigure","fcopy","file","fileevent","filename","flush","for","foreach","format","gets","glob","global","history","http","if","incr","info","interp","join","lappend|10","lassign|10","lindex|10","linsert|10","list","llength|10","load","lrange|10","lrepeat|10","lreplace|10","lreverse|10","lsearch|10","lset|10","lsort|10","mathfunc","mathop","memory","msgcat","namespace","open","package","parray","pid","pkg::create","pkg_mkIndex","platform","platform::shell","proc","puts","pwd","read","refchan","regexp","registry","regsub|10","rename","return","safe","scan","seek","set","socket","source","split","string","subst","switch","tcl_endOfWord","tcl_findLibrary","tcl_startOfNextWord","tcl_startOfPreviousWord","tcl_wordBreakAfter","tcl_wordBreakBefore","tcltest","tclvars","tell","time","tm","trace","unknown","unload","unset","update","uplevel","upvar","variable","vwait","while"], +contains:[e.COMMENT(";[ \\t]*#","$"),e.COMMENT("^[ \\t]*#","$"),{ +beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"title", +begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]", +endsWithParent:!0,excludeEnd:!0}]},{className:"variable",variants:[{ +begin:a.concat(/\$/,a.optional(/::/),t,"(::",t,")*")},{ +begin:"\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"\\}",contains:[r]}]},{ +className:"string",contains:[e.BACKSLASH_ESCAPE], +variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},r]}}})() +;hljs.registerLanguage("tcl",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/thrift.min.js b/src/app/resources/assets/highlight/languages/thrift.min.js new file mode 100644 index 0000000..c9a8926 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/thrift.min.js @@ -0,0 +1,12 @@ +/*! `thrift` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const t=["bool","byte","i16","i32","i64","double","string","binary"];return{ +name:"Thrift",keywords:{ +keyword:["namespace","const","typedef","struct","enum","service","exception","void","oneway","set","list","map","required","optional"], +type:t,literal:"true false"}, +contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{ +className:"class",beginKeywords:"struct enum service exception",end:/\{/, +illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0, +excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",keywords:{ +type:[...t,"set","list","map"]},end:">",contains:["self"]}]}}})() +;hljs.registerLanguage("thrift",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/tp.min.js b/src/app/resources/assets/highlight/languages/tp.min.js new file mode 100644 index 0000000..8068795 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/tp.min.js @@ -0,0 +1,19 @@ +/*! `tp` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var O=(()=>{"use strict";return O=>{const e={className:"number", +begin:"[1-9][0-9]*",relevance:0},R={className:"symbol",begin:":[^\\]]+"};return{ +name:"TP",keywords:{ +keyword:["ABORT","ACC","ADJUST","AND","AP_LD","BREAK","CALL","CNT","COL","CONDITION","CONFIG","DA","DB","DIV","DETECT","ELSE","END","ENDFOR","ERR_NUM","ERROR_PROG","FINE","FOR","GP","GUARD","INC","IF","JMP","LINEAR_MAX_SPEED","LOCK","MOD","MONITOR","OFFSET","Offset","OR","OVERRIDE","PAUSE","PREG","PTH","RT_LD","RUN","SELECT","SKIP","Skip","TA","TB","TO","TOOL_OFFSET","Tool_Offset","UF","UT","UFRAME_NUM","UTOOL_NUM","UNLOCK","WAIT","X","Y","Z","W","P","R","STRLEN","SUBSTR","FINDSTR","VOFFSET","PROG","ATTR","MN","POS"], +literal:["ON","OFF","max_speed","LPOS","JPOS","ENABLE","DISABLE","START","STOP","RESET"] +},contains:[{className:"built_in", +begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[", +end:"\\]",contains:["self",e,R]},{className:"built_in", +begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]", +contains:["self",e,O.QUOTE_STRING_MODE,R]},{className:"keyword", +begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword", +begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword", +begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{ +className:"number", +begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0 +},O.COMMENT("//","[;$]"),O.COMMENT("!","[;$]"),O.COMMENT("--eg:","$"),O.QUOTE_STRING_MODE,{ +className:"string",begin:"'",end:"'"},O.C_NUMBER_MODE,{className:"variable", +begin:"\\$[A-Za-z0-9_]+"}]}}})();hljs.registerLanguage("tp",O)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/twig.min.js b/src/app/resources/assets/highlight/languages/twig.min.js new file mode 100644 index 0000000..8dcdd7b --- /dev/null +++ b/src/app/resources/assets/highlight/languages/twig.min.js @@ -0,0 +1,18 @@ +/*! `twig` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a=e.regex,t=["absolute_url","asset|0","asset_version","attribute","block","constant","controller|0","country_timezones","csrf_token","cycle","date","dump","expression","form|0","form_end","form_errors","form_help","form_label","form_rest","form_row","form_start","form_widget","html_classes","include","is_granted","logout_path","logout_url","max","min","parent","path|0","random","range","relative_path","render","render_esi","source","template_from_string","url|0"] +;let r=["apply","autoescape","block","cache","deprecated","do","embed","extends","filter","flush","for","form_theme","from","if","import","include","macro","sandbox","set","stopwatch","trans","trans_default_domain","transchoice","use","verbatim","with"] +;r=r.concat(r.map((e=>"end"+e)));const n={scope:"string",variants:[{begin:/'/, +end:/'/},{begin:/"/,end:/"/}]},o={scope:"number",match:/\d+/},s={begin:/\(/, +end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[n,o]},c={ +beginKeywords:t.join(" "),keywords:{name:t},relevance:0,contains:[s]},m={ +match:/\|(?=[A-Za-z_]+:?)/,beginScope:"punctuation",relevance:0,contains:[{ +match:/[A-Za-z_]+:?/, +keywords:["abs","abbr_class","abbr_method","batch","capitalize","column","convert_encoding","country_name","currency_name","currency_symbol","data_uri","date","date_modify","default","escape","file_excerpt","file_link","file_relative","filter","first","format","format_args","format_args_as_text","format_currency","format_date","format_datetime","format_file","format_file_from_text","format_number","format_time","html_to_markdown","humanize","inky_to_html","inline_css","join","json_encode","keys","language_name","last","length","locale_name","lower","map","markdown","markdown_to_html","merge","nl2br","number_format","raw","reduce","replace","reverse","round","slice","slug","sort","spaceless","split","striptags","timezone_name","title","trans","transchoice","trim","u|0","upper","url_encode","yaml_dump","yaml_encode"] +}]},i=(e,{relevance:t})=>({beginScope:{1:"template-tag",3:"name"}, +relevance:t||2,endScope:"template-tag",begin:[/\{%/,/\s*/,a.either(...e)], +end:/%\}/,keywords:"in",contains:[m,c,n,o]}),l=i(r,{relevance:2 +}),_=i([/[a-z_]+/],{relevance:1});return{name:"Twig",aliases:["craftcms"], +case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{#/,/#\}/),l,_,{ +className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:["self",m,c,n,o] +}]}}})();hljs.registerLanguage("twig",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/typescript.min.js b/src/app/resources/assets/highlight/languages/typescript.min.js new file mode 100644 index 0000000..3b9fb83 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/typescript.min.js @@ -0,0 +1,94 @@ +/*! `typescript` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],t=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],c=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],r=["arguments","this","super","console","window","document","localStorage","module","global"],i=[].concat(c,t,s) +;function o(o){const l=o.regex,d=e,b={begin:/<[A-Za-z0-9\\._:-]+/, +end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ +const a=e[0].length+e.index,t=e.input[a] +;if("<"===t||","===t)return void n.ignoreMatch();let s +;">"===t&&(((e,{after:n})=>{const a="",M={ +match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,l.lookahead(T)], +keywords:"async",className:{1:"keyword",3:"title.function"},contains:[S]} +;return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{ +PARAMS_CONTAINS:v,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/, +contains:[o.SHEBANG({label:"shebang",binary:"node",relevance:5}),{ +label:"use_strict",className:"meta",relevance:10, +begin:/^\s*['"]use (strict|asm)['"]/ +},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,A,p,_,N,{match:/\$\d+/},E,R,{ +className:"attr",begin:d+l.lookahead(":"),relevance:0},M,{ +begin:"("+o.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", +keywords:"return throw case",relevance:0,contains:[N,o.REGEXP_MODE,{ +className:"function",begin:T,returnBegin:!0,end:"\\s*=>",contains:[{ +className:"params",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{ +className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0, +excludeEnd:!0,keywords:g,contains:v}]}]},{begin:/,/,relevance:0},{match:/\s+/, +relevance:0},{variants:[{begin:"<>",end:""},{ +match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:b.begin, +"on:begin":b.isTrulyOpeningTag,end:b.end}],subLanguage:"xml",contains:[{ +begin:b.begin,end:b.end,skip:!0,contains:["self"]}]}]},x,{ +beginKeywords:"while if switch catch for"},{ +begin:"\\b(?!function)"+o.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,label:"func.def",contains:[S,o.inherit(o.TITLE_MODE,{begin:d, +className:"title.function"})]},{match:/\.\.\./,relevance:0},I,{match:"\\$"+d, +relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, +contains:[S]},k,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},w,C,{match:/\$[(.]/}]}}return t=>{ +const s=o(t),c=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],l={ +beginKeywords:"namespace",end:/\{/,excludeEnd:!0, +contains:[s.exports.CLASS_REFERENCE]},d={beginKeywords:"interface",end:/\{/, +excludeEnd:!0,keywords:{keyword:"interface extends",built_in:c}, +contains:[s.exports.CLASS_REFERENCE]},b={$pattern:e, +keyword:n.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]), +literal:a,built_in:i.concat(c),"variable.language":r},g={className:"meta", +begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},u=(e,n,a)=>{ +const t=e.contains.findIndex((e=>e.label===n)) +;if(-1===t)throw Error("can not find mode to replace");e.contains.splice(t,1,a)} +;return Object.assign(s.keywords,b), +s.exports.PARAMS_CONTAINS.push(g),s.contains=s.contains.concat([g,l,d]), +u(s,"shebang",t.SHEBANG()),u(s,"use_strict",{className:"meta",relevance:10, +begin:/^\s*['"]use strict['"]/ +}),s.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(s,{ +name:"TypeScript",aliases:["ts","tsx"]}),s}})() +;hljs.registerLanguage("typescript",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/vala.min.js b/src/app/resources/assets/highlight/languages/vala.min.js new file mode 100644 index 0000000..7f42d50 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/vala.min.js @@ -0,0 +1,9 @@ +/*! `vala` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Vala",keywords:{ +keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var", +built_in:"DBus GLib CCode Gee Object Gtk Posix",literal:"false true null"}, +contains:[{className:"class",beginKeywords:"class interface namespace",end:/\{/, +excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[e.UNDERSCORE_TITLE_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""', +end:'"""',relevance:5},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{ +className:"meta",begin:"^#",end:"$"}]})})();hljs.registerLanguage("vala",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/vbnet.min.js b/src/app/resources/assets/highlight/languages/vbnet.min.js new file mode 100644 index 0000000..e1203f7 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/vbnet.min.js @@ -0,0 +1,25 @@ +/*! `vbnet` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,t=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,s=/\d{1,2}(:\d{1,2}){1,2}/,r={ +className:"literal",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{ +begin:n.concat(/# */,s,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{ +begin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,s),/ *#/)}] +},l=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}] +}),o=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]}) +;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0, +classNameAliases:{label:"symbol"},keywords:{ +keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield", +built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort", +type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort", +literal:"true false nothing"}, +illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{ +className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/, +end:/"/,illegal:/\n/,contains:[{begin:/""/}]},r,{className:"number",relevance:0, +variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/ +},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{ +begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{ +className:"label",begin:/^\w+:/},l,o,{className:"meta", +begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/, +end:/$/,keywords:{ +keyword:"const disable else elseif enable end externalsource if region then"}, +contains:[o]}]}}})();hljs.registerLanguage("vbnet",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/vbscript-html.min.js b/src/app/resources/assets/highlight/languages/vbscript-html.min.js new file mode 100644 index 0000000..79960ba --- /dev/null +++ b/src/app/resources/assets/highlight/languages/vbscript-html.min.js @@ -0,0 +1,4 @@ +/*! `vbscript-html` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"VBScript in HTML", +subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]})})() +;hljs.registerLanguage("vbscript-html",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/vbscript.min.js b/src/app/resources/assets/highlight/languages/vbscript.min.js new file mode 100644 index 0000000..d90b361 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/vbscript.min.js @@ -0,0 +1,10 @@ +/*! `vbscript` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const t=e.regex,r=["lcase","month","vartype","instrrev","ubound","setlocale","getobject","rgb","getref","string","weekdayname","rnd","dateadd","monthname","now","day","minute","isarray","cbool","round","formatcurrency","conversions","csng","timevalue","second","year","space","abs","clng","timeserial","fixs","len","asc","isempty","maths","dateserial","atn","timer","isobject","filter","weekday","datevalue","ccur","isdate","instr","datediff","formatdatetime","replace","isnull","right","sgn","array","snumeric","log","cdbl","hex","chr","lbound","msgbox","ucase","getlocale","cos","cdate","cbyte","rtrim","join","hour","oct","typename","trim","strcomp","int","createobject","loadpicture","tan","formatnumber","mid","split","cint","sin","datepart","ltrim","sqr","time","derived","eval","date","formatpercent","exp","inputbox","left","ascw","chrw","regexp","cstr","err"] +;return{name:"VBScript",aliases:["vbs"],case_insensitive:!0,keywords:{ +keyword:["call","class","const","dim","do","loop","erase","execute","executeglobal","exit","for","each","next","function","if","then","else","on","error","option","explicit","new","private","property","let","get","public","randomize","redim","rem","select","case","set","stop","sub","while","wend","with","end","to","elseif","is","or","xor","and","not","class_initialize","class_terminate","default","preserve","in","me","byval","byref","step","resume","goto"], +built_in:["server","response","request","scriptengine","scriptenginebuildversion","scriptengineminorversion","scriptenginemajorversion"], +literal:["true","false","null","nothing","empty"]},illegal:"//",contains:[{ +begin:t.concat(t.either(...r),"\\s*\\("),relevance:0,keywords:{built_in:r} +},e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT(/'/,/$/,{ +relevance:0}),e.C_NUMBER_MODE]}}})();hljs.registerLanguage("vbscript",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/verilog.min.js b/src/app/resources/assets/highlight/languages/verilog.min.js new file mode 100644 index 0000000..63912d6 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/verilog.min.js @@ -0,0 +1,17 @@ +/*! `verilog` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,t=["begin_keywords","celldefine","default_nettype","default_decay_time","default_trireg_strength","define","delay_mode_distributed","delay_mode_path","delay_mode_unit","delay_mode_zero","else","elsif","end_keywords","endcelldefine","endif","ifdef","ifndef","include","line","nounconnected_drive","pragma","resetall","timescale","unconnected_drive","undef","undefineall"] +;return{name:"Verilog",aliases:["v","sv","svh"],case_insensitive:!1,keywords:{ +$pattern:/\$?[\w]+(\$[\w]+)*/, +keyword:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf|0","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate|5","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"], +literal:["null"], +built_in:["$finish","$stop","$exit","$fatal","$error","$warning","$info","$realtime","$time","$printtimescale","$bitstoreal","$bitstoshortreal","$itor","$signed","$cast","$bits","$stime","$timeformat","$realtobits","$shortrealtobits","$rtoi","$unsigned","$asserton","$assertkill","$assertpasson","$assertfailon","$assertnonvacuouson","$assertoff","$assertcontrol","$assertpassoff","$assertfailoff","$assertvacuousoff","$isunbounded","$sampled","$fell","$changed","$past_gclk","$fell_gclk","$changed_gclk","$rising_gclk","$steady_gclk","$coverage_control","$coverage_get","$coverage_save","$set_coverage_db_name","$rose","$stable","$past","$rose_gclk","$stable_gclk","$future_gclk","$falling_gclk","$changing_gclk","$display","$coverage_get_max","$coverage_merge","$get_coverage","$load_coverage_db","$typename","$unpacked_dimensions","$left","$low","$increment","$clog2","$ln","$log10","$exp","$sqrt","$pow","$floor","$ceil","$sin","$cos","$tan","$countbits","$onehot","$isunknown","$fatal","$warning","$dimensions","$right","$high","$size","$asin","$acos","$atan","$atan2","$hypot","$sinh","$cosh","$tanh","$asinh","$acosh","$atanh","$countones","$onehot0","$error","$info","$random","$dist_chi_square","$dist_erlang","$dist_exponential","$dist_normal","$dist_poisson","$dist_t","$dist_uniform","$q_initialize","$q_remove","$q_exam","$async$and$array","$async$nand$array","$async$or$array","$async$nor$array","$sync$and$array","$sync$nand$array","$sync$or$array","$sync$nor$array","$q_add","$q_full","$psprintf","$async$and$plane","$async$nand$plane","$async$or$plane","$async$nor$plane","$sync$and$plane","$sync$nand$plane","$sync$or$plane","$sync$nor$plane","$system","$display","$displayb","$displayh","$displayo","$strobe","$strobeb","$strobeh","$strobeo","$write","$readmemb","$readmemh","$writememh","$value$plusargs","$dumpvars","$dumpon","$dumplimit","$dumpports","$dumpportson","$dumpportslimit","$writeb","$writeh","$writeo","$monitor","$monitorb","$monitorh","$monitoro","$writememb","$dumpfile","$dumpoff","$dumpall","$dumpflush","$dumpportsoff","$dumpportsall","$dumpportsflush","$fclose","$fdisplay","$fdisplayb","$fdisplayh","$fdisplayo","$fstrobe","$fstrobeb","$fstrobeh","$fstrobeo","$swrite","$swriteb","$swriteh","$swriteo","$fscanf","$fread","$fseek","$fflush","$feof","$fopen","$fwrite","$fwriteb","$fwriteh","$fwriteo","$fmonitor","$fmonitorb","$fmonitorh","$fmonitoro","$sformat","$sformatf","$fgetc","$ungetc","$fgets","$sscanf","$rewind","$ftell","$ferror"] +},contains:[e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,{ +scope:"number",contains:[e.BACKSLASH_ESCAPE],variants:[{ +begin:/\b((\d+'([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{ +begin:/\B(('([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\b[0-9][0-9_]*/, +relevance:0}]},{scope:"variable",variants:[{begin:"#\\((?!parameter).+\\)"},{ +begin:"\\.\\w+",relevance:0}]},{scope:"variable.constant", +match:n.concat(/`/,n.either("__FILE__","__LINE__"))},{scope:"meta", +begin:n.concat(/`/,n.either(...t)),end:/$|\/\/|\/\*/,returnEnd:!0,keywords:t}]}} +})();hljs.registerLanguage("verilog",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/vhdl.min.js b/src/app/resources/assets/highlight/languages/vhdl.min.js new file mode 100644 index 0000000..133d845 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/vhdl.min.js @@ -0,0 +1,14 @@ +/*! `vhdl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"VHDL",case_insensitive:!0, +keywords:{ +keyword:["abs","access","after","alias","all","and","architecture","array","assert","assume","assume_guarantee","attribute","begin","block","body","buffer","bus","case","component","configuration","constant","context","cover","disconnect","downto","default","else","elsif","end","entity","exit","fairness","file","for","force","function","generate","generic","group","guarded","if","impure","in","inertial","inout","is","label","library","linkage","literal","loop","map","mod","nand","new","next","nor","not","null","of","on","open","or","others","out","package","parameter","port","postponed","procedure","process","property","protected","pure","range","record","register","reject","release","rem","report","restrict","restrict_guarantee","return","rol","ror","select","sequence","severity","shared","signal","sla","sll","sra","srl","strong","subtype","then","to","transport","type","unaffected","units","until","use","variable","view","vmode","vprop","vunit","wait","when","while","with","xnor","xor"], +built_in:["boolean","bit","character","integer","time","delay_length","natural","positive","string","bit_vector","file_open_kind","file_open_status","std_logic","std_logic_vector","unsigned","signed","boolean_vector","integer_vector","std_ulogic","std_ulogic_vector","unresolved_unsigned","u_unsigned","unresolved_signed","u_signed","real_vector","time_vector"], +literal:["false","true","note","warning","error","failure","line","text","side","width"] +},illegal:/\{/, +contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT("--","$"),e.QUOTE_STRING_MODE,{ +className:"number", +begin:"\\b(\\d(_|\\d)*#\\w+(\\.\\w+)?#([eE][-+]?\\d(_|\\d)*)?|\\d(_|\\d)*(\\.\\d(_|\\d)*)?([eE][-+]?\\d(_|\\d)*)?)", +relevance:0},{className:"string",begin:"'(U|X|0|1|Z|W|L|H|-)'", +contains:[e.BACKSLASH_ESCAPE]},{className:"symbol", +begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[e.BACKSLASH_ESCAPE]}]})})() +;hljs.registerLanguage("vhdl",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/vim.min.js b/src/app/resources/assets/highlight/languages/vim.min.js new file mode 100644 index 0000000..42a8c4f --- /dev/null +++ b/src/app/resources/assets/highlight/languages/vim.min.js @@ -0,0 +1,12 @@ +/*! `vim` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"Vim Script",keywords:{ +$pattern:/[!#@\w]+/, +keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank", +built_in:"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp" +},illegal:/;/,contains:[e.NUMBER_MODE,{className:"string",begin:"'",end:"'", +illegal:"\\n"},{className:"string",begin:/"(\\"|\n\\|[^"\n])*"/ +},e.COMMENT('"',"$"),{className:"variable",begin:/[bwtglsav]:[\w\d_]+/},{ +begin:[/\b(?:function|function!)/,/\s+/,e.IDENT_RE],className:{1:"keyword", +3:"title"},end:"$",relevance:0,contains:[{className:"params",begin:"\\(", +end:"\\)"}]},{className:"symbol",begin:/<[\w-]+>/}]})})() +;hljs.registerLanguage("vim",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/wasm.min.js b/src/app/resources/assets/highlight/languages/wasm.min.js new file mode 100644 index 0000000..869c7c9 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/wasm.min.js @@ -0,0 +1,14 @@ +/*! `wasm` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{e.regex;const a=e.COMMENT(/\(;/,/;\)/) +;return a.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/, +keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"] +},contains:[e.COMMENT(/;;/,/$/),a,{match:[/(?:offset|align)/,/\s*/,/=/], +className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{ +match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{ +begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword", +3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/, +className:"type"},{className:"keyword", +match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/ +},{className:"number",relevance:0, +match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/ +}]}}})();hljs.registerLanguage("wasm",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/wren.min.js b/src/app/resources/assets/highlight/languages/wren.min.js new file mode 100644 index 0000000..f9405e8 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/wren.min.js @@ -0,0 +1,30 @@ +/*! `wren` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a=e.regex,s=/[a-zA-Z]\w*/,t=["as","break","class","construct","continue","else","for","foreign","if","import","in","is","return","static","var","while"],c=["true","false","null"],n=["this","super"],r=["-","~",/\*/,"%",/\.\.\./,/\.\./,/\+/,"<<",">>",">=","<=","<",">",/\^/,/!=/,/!/,/\bis\b/,"==","&&","&",/\|\|/,/\|/,/\?:/,"="],i={ +relevance:0,match:a.concat(/\b(?!(if|while|for|else|super)\b)/,s,/(?=\s*[({])/), +className:"title.function"},o={ +match:a.concat(a.either(a.concat(/\b(?!(if|while|for|else|super)\b)/,s),a.either(...r)),/(?=\s*\([^)]+\)\s*\{)/), +className:"title.function",starts:{contains:[{begin:/\(/,end:/\)/,contains:[{ +relevance:0,scope:"params",match:s}]}]}},l={variants:[{ +match:[/class\s+/,s,/\s+is\s+/,s]},{match:[/class\s+/,s]}],scope:{ +2:"title.class",4:"title.class.inherited"},keywords:t},m={relevance:0, +match:a.either(...r),className:"operator"},b={className:"property", +begin:a.concat(/\./,a.lookahead(s)),end:s,excludeBegin:!0,relevance:0},h={ +relevance:0,match:a.concat(/\b_/,s),scope:"variable"},p={relevance:0, +match:/\b[A-Z]+[a-z]+([A-Z]+[a-z]+)*/,scope:"title.class",keywords:{ +_:["Bool","Class","Fiber","Fn","List","Map","Null","Num","Object","Range","Sequence","String","System"] +}},u=e.C_NUMBER_MODE,g={match:[s,/\s*/,/=/,/\s*/,/\(/,s,/\)\s*\{/],scope:{ +1:"title.function",3:"operator",6:"params"}},d=e.COMMENT(/\/\*\*/,/\*\//,{ +contains:[{match:/@[a-z]+/,scope:"doctag"},"self"]}),v={scope:"subst", +begin:/%\(/,end:/\)/,contains:[u,p,i,h,m]},f={scope:"string",begin:/"/,end:/"/, +contains:[v,{scope:"char.escape",variants:[{match:/\\\\|\\["0%abefnrtv]/},{ +match:/\\x[0-9A-F]{2}/},{match:/\\u[0-9A-F]{4}/},{match:/\\U[0-9A-F]{8}/}]}]} +;v.contains.push(f);const N=[...t,...n,...c],_={relevance:0, +match:a.concat("\\b(?!",N.join("|"),"\\b)",/[a-zA-Z_]\w*(?:[?!]|\b)/), +className:"variable"};return{name:"Wren",keywords:{keyword:t, +"variable.language":n,literal:c},contains:[{scope:"comment",variants:[{ +begin:[/#!?/,/[A-Za-z_]+(?=\()/],beginScope:{},keywords:{literal:c},contains:[], +end:/\)/},{begin:[/#!?/,/[A-Za-z_]+/],beginScope:{},end:/$/}]},u,f,{ +className:"string",begin:/"""/,end:/"""/ +},d,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,p,l,g,o,i,m,h,b,_]}}})() +;hljs.registerLanguage("wren",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/x86asm.min.js b/src/app/resources/assets/highlight/languages/x86asm.min.js new file mode 100644 index 0000000..287fa23 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/x86asm.min.js @@ -0,0 +1,19 @@ +/*! `x86asm` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var s=(()=>{"use strict";return s=>({name:"Intel x86 Assembly", +case_insensitive:!0,keywords:{$pattern:"[.%]?"+s.IDENT_RE, +keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63", +built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr", +meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__" +},contains:[s.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{ +begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*(\\.[0-9_]*)?(?:[pP](?:[+-]?[0-9_]+)?)?)\\b", +relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{ +begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b" +},{ +begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b" +}]},s.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'" +},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{ +begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{ +begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst", +begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{ +className:"meta",begin:/^\s*\.[\w_-]+/}]})})();hljs.registerLanguage("x86asm",s) +})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/xl.min.js b/src/app/resources/assets/highlight/languages/xl.min.js new file mode 100644 index 0000000..bc8358d --- /dev/null +++ b/src/app/resources/assets/highlight/languages/xl.min.js @@ -0,0 +1,15 @@ +/*! `xl` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const t={ +$pattern:/[a-zA-Z][a-zA-Z0-9_?]*/, +keyword:["if","then","else","do","while","until","for","loop","import","with","is","as","where","when","by","data","constant","integer","real","text","name","boolean","symbol","infix","prefix","postfix","block","tree"], +literal:["true","false","nil"], +built_in:["in","mod","rem","and","or","xor","not","abs","sign","floor","ceil","sqrt","sin","cos","tan","asin","acos","atan","exp","expm1","log","log2","log10","log1p","pi","at","text_length","text_range","text_find","text_replace","contains","page","slide","basic_slide","title_slide","title","subtitle","fade_in","fade_out","fade_at","clear_color","color","line_color","line_width","texture_wrap","texture_transform","texture","scale_?x","scale_?y","scale_?z?","translate_?x","translate_?y","translate_?z?","rotate_?x","rotate_?y","rotate_?z?","rectangle","circle","ellipse","sphere","path","line_to","move_to","quad_to","curve_to","theme","background","contents","locally","time","mouse_?x","mouse_?y","mouse_buttons"].concat(["ObjectLoader","Animate","MovieCredits","Slides","Filters","Shading","Materials","LensFlare","Mapping","VLCAudioVideo","StereoDecoder","PointCloud","NetworkAccess","RemoteControl","RegExp","ChromaKey","Snowfall","NodeJS","Speech","Charts"]) +},a={className:"string",begin:'"',end:'"',illegal:"\\n"},n={ +beginKeywords:"import",end:"$",keywords:t,contains:[a]},o={className:"function", +begin:/[a-z][^\n]*->/,returnBegin:!0,end:/->/,contains:[e.inherit(e.TITLE_MODE,{ +starts:{endsWithParent:!0,keywords:t}})]};return{name:"XL",aliases:["tao"], +keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{ +className:"string",begin:"'",end:"'",illegal:"\\n"},{className:"string", +begin:"<<",end:">>"},o,n,{className:"number", +begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?"},e.NUMBER_MODE]}} +})();hljs.registerLanguage("xl",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/xml.min.js b/src/app/resources/assets/highlight/languages/xml.min.js new file mode 100644 index 0000000..8c62a43 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/xml.min.js @@ -0,0 +1,29 @@ +/*! `xml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a=e.regex,n=a.concat(/[\p{L}_]/u,a.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s={ +className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},t={begin:/\s/, +contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] +},i=e.inherit(t,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{ +className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),r={ +endsWithParent:!0,illegal:/`]+/}]}]}]};return{ +name:"HTML, XML", +aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], +case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[t,l,c,i,{begin:/\[/,end:/\]/,contains:[{ +className:"meta",begin://,contains:[t,i,l,c]}]}] +},e.COMMENT(//,{relevance:10}),{begin://, +relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/, +relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"style"},contains:[r],starts:{ +end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"script"},contains:[r],starts:{ +end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ +className:"tag",begin:/<>|<\/>/},{className:"tag", +begin:a.concat(//,/>/,/\s/)))), +end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:r}]},{ +className:"tag",begin:a.concat(/<\//,a.lookahead(a.concat(n,/>/))),contains:[{ +className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}} +})();hljs.registerLanguage("xml",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/xquery.min.js b/src/app/resources/assets/highlight/languages/xquery.min.js new file mode 100644 index 0000000..41f584a --- /dev/null +++ b/src/app/resources/assets/highlight/languages/xquery.min.js @@ -0,0 +1,32 @@ +/*! `xquery` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"XQuery",aliases:["xpath","xq"], +case_insensitive:!1,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{ +$pattern:/[a-zA-Z$][a-zA-Z0-9_:-]*/, +keyword:["module","schema","namespace","boundary-space","preserve","no-preserve","strip","default","collation","base-uri","ordering","context","decimal-format","decimal-separator","copy-namespaces","empty-sequence","except","exponent-separator","external","grouping-separator","inherit","no-inherit","lax","minus-sign","per-mille","percent","schema-attribute","schema-element","strict","unordered","zero-digit","declare","import","option","function","validate","variable","for","at","in","let","where","order","group","by","return","if","then","else","tumbling","sliding","window","start","when","only","end","previous","next","stable","ascending","descending","allowing","empty","greatest","least","some","every","satisfies","switch","case","typeswitch","try","catch","and","or","to","union","intersect","instance","of","treat","as","castable","cast","map","array","delete","insert","into","replace","value","rename","copy","modify","update"], +type:["item","document-node","node","attribute","document","element","comment","namespace","namespace-node","processing-instruction","text","construction","xs:anyAtomicType","xs:untypedAtomic","xs:duration","xs:time","xs:decimal","xs:float","xs:double","xs:gYearMonth","xs:gYear","xs:gMonthDay","xs:gMonth","xs:gDay","xs:boolean","xs:base64Binary","xs:hexBinary","xs:anyURI","xs:QName","xs:NOTATION","xs:dateTime","xs:dateTimeStamp","xs:date","xs:string","xs:normalizedString","xs:token","xs:language","xs:NMTOKEN","xs:Name","xs:NCName","xs:ID","xs:IDREF","xs:ENTITY","xs:integer","xs:nonPositiveInteger","xs:negativeInteger","xs:long","xs:int","xs:short","xs:byte","xs:nonNegativeInteger","xs:unisignedLong","xs:unsignedInt","xs:unsignedShort","xs:unsignedByte","xs:positiveInteger","xs:yearMonthDuration","xs:dayTimeDuration"], +literal:["eq","ne","lt","le","gt","ge","is","self::","child::","descendant::","descendant-or-self::","attribute::","following::","following-sibling::","parent::","ancestor::","ancestor-or-self::","preceding::","preceding-sibling::","NaN"] +},contains:[{className:"variable",begin:/[$][\w\-:]+/},{className:"built_in", +variants:[{begin:/\barray:/, +end:/(?:append|filter|flatten|fold-(?:left|right)|for-each(?:-pair)?|get|head|insert-before|join|put|remove|reverse|size|sort|subarray|tail)\b/ +},{begin:/\bmap:/, +end:/(?:contains|entry|find|for-each|get|keys|merge|put|remove|size)\b/},{ +begin:/\bmath:/, +end:/(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\b/ +},{begin:/\bop:/,end:/\(/,excludeEnd:!0},{begin:/\bfn:/,end:/\(/,excludeEnd:!0 +},{ +begin:/[^/, +end:/(\/[\w._:-]+>)/,subLanguage:"xml",contains:[{begin:/\{/,end:/\}/, +subLanguage:"xquery"},"self"]}]})})();hljs.registerLanguage("xquery",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/yaml.min.js b/src/app/resources/assets/highlight/languages/yaml.min.js new file mode 100644 index 0000000..a0397bb --- /dev/null +++ b/src/app/resources/assets/highlight/languages/yaml.min.js @@ -0,0 +1,25 @@ +/*! `yaml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={ +className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ +},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable", +variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{ +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={ +end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/, +end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]", +contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{ +begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{ +begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$", +relevance:10},{className:"string", +begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ +begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, +relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type", +begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a +},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", +begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", +relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ +className:"number", +begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" +},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],r=[...b] +;return r.pop(),r.push(i),l.contains=r,{name:"YAML",case_insensitive:!0, +aliases:["yml"],contains:b}}})();hljs.registerLanguage("yaml",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/languages/zephir.min.js b/src/app/resources/assets/highlight/languages/zephir.min.js new file mode 100644 index 0000000..53ef958 --- /dev/null +++ b/src/app/resources/assets/highlight/languages/zephir.min.js @@ -0,0 +1,18 @@ +/*! `zephir` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={className:"string", +contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.APOS_STRING_MODE,{ +illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})] +},a=e.UNDERSCORE_TITLE_MODE,s={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE] +},i="namespace class interface use extends function return abstract final public protected private static deprecated throw try catch Exception echo empty isset instanceof unset let var new const self require if else elseif switch case default do while loop for continue break likely unlikely __LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __TRAIT__ __METHOD__ __NAMESPACE__ array boolean float double integer object resource string char long unsigned bool int uint ulong uchar true false null undefined" +;return{name:"Zephir",aliases:["zep"],keywords:i, +contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(/\/\*/,/\*\//,{contains:[{ +className:"doctag",begin:/@[A-Za-z]+/}]}),{className:"string", +begin:/<<<['"]?\w+['"]?$/,end:/^\w+;/,contains:[e.BACKSLASH_ESCAPE]},{ +begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function", +beginKeywords:"function fn",end:/[;{]/,excludeEnd:!0,illegal:/\$|\[|%/, +contains:[a,{className:"params",begin:/\(/,end:/\)/,keywords:i, +contains:["self",e.C_BLOCK_COMMENT_MODE,n,s]}]},{className:"class", +beginKeywords:"class interface",end:/\{/,excludeEnd:!0,illegal:/[:($"]/, +contains:[{beginKeywords:"extends implements"},a]},{beginKeywords:"namespace", +end:/;/,illegal:/[.']/,contains:[a]},{beginKeywords:"use",end:/;/,contains:[a] +},{begin:/=>/},n,s]}}})();hljs.registerLanguage("zephir",e)})(); \ No newline at end of file diff --git a/src/app/resources/assets/highlight/package.json b/src/app/resources/assets/highlight/package.json new file mode 100644 index 0000000..00b5ee8 --- /dev/null +++ b/src/app/resources/assets/highlight/package.json @@ -0,0 +1,89 @@ +{ + "name": "@highlightjs/cdn-assets", + "description": "Syntax highlighting with language autodetection. (pre-compiled CDN assets)", + "keywords": [ + "highlight", + "syntax" + ], + "homepage": "https://highlightjs.org/", + "version": "11.7.0", + "author": "Josh Goebel ", + "contributors": [ + "Josh Goebel ", + "Egor Rogov ", + "Vladimir Jimenez ", + "Ivan Sagalaev ", + "Jeremy Hull ", + "Oleg Efimov ", + "Gidi Meir Morris ", + "Jan T. Sott ", + "Li Xuanji ", + "Marcos Cáceres ", + "Sang Dang " + ], + "bugs": { + "url": "https://github.com/highlightjs/highlight.js/issues" + }, + "license": "BSD-3-Clause", + "repository": { + "type": "git", + "url": "git://github.com/highlightjs/highlight.js.git" + }, + "sideEffects": [ + "*.css", + "*.scss" + ], + "scripts": { + "mocha": "mocha", + "lint": "eslint src/*.js src/lib/*.js demo/*.js tools/**/*.js --ignore-pattern vendor", + "lint-languages": "eslint --no-eslintrc -c .eslintrc.lang.js src/languages/**/*.js", + "build_and_test": "npm run build && npm run test", + "build_and_test_browser": "npm run build-browser && npm run test-browser", + "build": "node ./tools/build.js -t node", + "build-cdn": "node ./tools/build.js -t cdn", + "build-browser": "node ./tools/build.js -t browser :common", + "test": "mocha test", + "test-markup": "mocha test/markup", + "test-detect": "mocha test/detect", + "test-browser": "mocha test/browser", + "test-parser": "mocha test/parser" + }, + "engines": { + "node": ">=12.0.0" + }, + "devDependencies": { + "@colors/colors": "^1.5.0", + "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.3.0", + "@types/mocha": "^9.1.1", + "@typescript-eslint/eslint-plugin": "^5.27.1", + "@typescript-eslint/parser": "^5.27.1", + "clean-css": "^5.3.0", + "cli-table": "^0.3.1", + "commander": "9.3", + "css": "^3.0.0", + "css-color-names": "^1.0.1", + "deep-freeze-es6": "^1.4.1", + "del": "^6.1.1", + "dependency-resolver": "^2.0.1", + "eslint": "^8.17.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^6.0.0", + "glob": "^7.2.3", + "glob-promise": "^4.2.2", + "handlebars": "^4.7.6", + "jsdom": "^20.0.0", + "lodash": "^4.17.20", + "mocha": "^10.0.0", + "refa": "^0.4.1", + "rollup": "^2.47.0", + "should": "^13.2.3", + "terser": "^5.14.1", + "tiny-worker": "^2.3.0", + "typescript": "^4.7.3", + "wcag-contrast": "^3.0.0" + } +} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/a11y-dark.min.css b/src/app/resources/assets/highlight/styles/a11y-dark.min.css new file mode 100644 index 0000000..7820d7d --- /dev/null +++ b/src/app/resources/assets/highlight/styles/a11y-dark.min.css @@ -0,0 +1,7 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/.hljs{background:#2b2b2b;color:#f8f8f2}.hljs-comment,.hljs-quote{color:#d4d0ab}.hljs-deletion,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#ffa07a}.hljs-built_in,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-type{color:#f5ab35}.hljs-attribute{color:gold}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:#abe338}.hljs-section,.hljs-title{color:#00e0e0}.hljs-keyword,.hljs-selector-tag{color:#dcc6e0}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}@media screen and (-ms-high-contrast:active){.hljs-addition,.hljs-attribute,.hljs-built_in,.hljs-bullet,.hljs-comment,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-quote,.hljs-string,.hljs-symbol,.hljs-type{color:highlight}.hljs-keyword,.hljs-selector-tag{font-weight:700}} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/a11y-light.min.css b/src/app/resources/assets/highlight/styles/a11y-light.min.css new file mode 100644 index 0000000..8b5ab90 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/a11y-light.min.css @@ -0,0 +1,7 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: a11y-light + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/.hljs{background:#fefefe;color:#545454}.hljs-comment,.hljs-quote{color:#696969}.hljs-deletion,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#d91e18}.hljs-attribute,.hljs-built_in,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-type{color:#aa5d00}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:green}.hljs-section,.hljs-title{color:#007faa}.hljs-keyword,.hljs-selector-tag{color:#7928a1}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}@media screen and (-ms-high-contrast:active){.hljs-addition,.hljs-attribute,.hljs-built_in,.hljs-bullet,.hljs-comment,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-quote,.hljs-string,.hljs-symbol,.hljs-type{color:highlight}.hljs-keyword,.hljs-selector-tag{font-weight:700}} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/agate.min.css b/src/app/resources/assets/highlight/styles/agate.min.css new file mode 100644 index 0000000..bdbeed4 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/agate.min.css @@ -0,0 +1,20 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: Agate + Author: (c) Taufik Nurrohman + Maintainer: @taufik-nurrohman + Updated: 2021-04-24 + + #333 + #62c8f3 + #7bd694 + #888 + #a2fca2 + #ade5fc + #b8d8a2 + #c6b4f0 + #d36363 + #fc9b9b + #fcc28c + #ffa + #fff +*/.hljs{background:#333;color:#fff}.hljs-doctag,.hljs-meta-keyword,.hljs-name,.hljs-strong{font-weight:700}.hljs-code,.hljs-emphasis{font-style:italic}.hljs-section,.hljs-tag{color:#62c8f3}.hljs-selector-class,.hljs-selector-id,.hljs-template-variable,.hljs-variable{color:#ade5fc}.hljs-meta-string,.hljs-string{color:#a2fca2}.hljs-attr,.hljs-quote,.hljs-selector-attr{color:#7bd694}.hljs-tag .hljs-attr{color:inherit}.hljs-attribute,.hljs-title,.hljs-type{color:#ffa}.hljs-number,.hljs-symbol{color:#d36363}.hljs-bullet,.hljs-template-tag{color:#b8d8a2}.hljs-built_in,.hljs-keyword,.hljs-literal,.hljs-selector-tag{color:#fcc28c}.hljs-code,.hljs-comment,.hljs-formula{color:#888}.hljs-link,.hljs-regexp,.hljs-selector-pseudo{color:#c6b4f0}.hljs-meta{color:#fc9b9b}.hljs-deletion{background:#fc9b9b;color:#333}.hljs-addition{background:#a2fca2;color:#333}.hljs-subst{color:#fff}.hljs a{color:inherit}.hljs a:focus,.hljs a:hover{color:inherit;text-decoration:underline}.hljs mark{background:#555;color:inherit} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/an-old-hope.min.css b/src/app/resources/assets/highlight/styles/an-old-hope.min.css new file mode 100644 index 0000000..ffc7f8c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/an-old-hope.min.css @@ -0,0 +1,9 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: An Old Hope – Star Wars Syntax + Author: (c) Gustavo Costa + Maintainer: @gusbemacbe + + Original theme - Ocean Dark Theme – by https://github.com/gavsiu + Based on Jesse Leite's Atom syntax theme 'An Old Hope' + https://github.com/JesseLeite/an-old-hope-syntax-atom +*/.hljs{background:#1c1d21;color:#c0c5ce}.hljs-comment,.hljs-quote{color:#b6b18b}.hljs-deletion,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#eb3c54}.hljs-built_in,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-type{color:#e7ce56}.hljs-attribute{color:#ee7c2b}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:#4fb4d7}.hljs-section,.hljs-title{color:#78bb65}.hljs-keyword,.hljs-selector-tag{color:#b45ea4}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/androidstudio.min.css b/src/app/resources/assets/highlight/styles/androidstudio.min.css new file mode 100644 index 0000000..7fbe783 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/androidstudio.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a9b7c6;background:#282b2e}.hljs-bullet,.hljs-literal,.hljs-number,.hljs-symbol{color:#6897bb}.hljs-deletion,.hljs-keyword,.hljs-selector-tag{color:#cc7832}.hljs-link,.hljs-template-variable,.hljs-variable{color:#629755}.hljs-comment,.hljs-quote{color:grey}.hljs-meta{color:#bbb529}.hljs-addition,.hljs-attribute,.hljs-string{color:#6a8759}.hljs-section,.hljs-title,.hljs-type{color:#ffc66d}.hljs-name,.hljs-selector-class,.hljs-selector-id{color:#e8bf6a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/arduino-light.min.css b/src/app/resources/assets/highlight/styles/arduino-light.min.css new file mode 100644 index 0000000..cadb130 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/arduino-light.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#fff;color:#434f54}.hljs-subst{color:#434f54}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-name,.hljs-selector-tag{color:#00979d}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-literal{color:#d35400}.hljs-link,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#00979d}.hljs-deletion,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#005c5f}.hljs-comment{color:rgba(149,165,166,.8)}.hljs-meta .hljs-keyword{color:#728e00}.hljs-meta{color:#434f54}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-function{color:#728e00}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-number{color:#8a7b52} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/arta.min.css b/src/app/resources/assets/highlight/styles/arta.min.css new file mode 100644 index 0000000..8dcdc74 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/arta.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#222;color:#aaa}.hljs-subst{color:#aaa}.hljs-section{color:#fff}.hljs-comment,.hljs-meta,.hljs-quote{color:#444}.hljs-bullet,.hljs-regexp,.hljs-string,.hljs-symbol{color:#fc3}.hljs-addition,.hljs-number{color:#0c6}.hljs-attribute,.hljs-built_in,.hljs-link,.hljs-literal,.hljs-template-variable,.hljs-type{color:#32aaee}.hljs-keyword,.hljs-name,.hljs-selector-class,.hljs-selector-id,.hljs-selector-tag{color:#64a}.hljs-deletion,.hljs-template-tag,.hljs-title,.hljs-variable{color:#b16}.hljs-doctag,.hljs-section,.hljs-strong{font-weight:700}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/ascetic.min.css b/src/app/resources/assets/highlight/styles/ascetic.min.css new file mode 100644 index 0000000..3c9fe03 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/ascetic.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#fff;color:#000}.hljs-addition,.hljs-attribute,.hljs-bullet,.hljs-link,.hljs-section,.hljs-string,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#888}.hljs-comment,.hljs-deletion,.hljs-meta,.hljs-quote{color:#ccc}.hljs-keyword,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-strong,.hljs-type{font-weight:700}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/atom-one-dark-reasonable.min.css b/src/app/resources/assets/highlight/styles/atom-one-dark-reasonable.min.css new file mode 100644 index 0000000..9296216 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/atom-one-dark-reasonable.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-keyword,.hljs-operator,.hljs-pattern-match{color:#f92672}.hljs-function,.hljs-pattern-match .hljs-constructor{color:#61aeee}.hljs-function .hljs-params{color:#a6e22e}.hljs-function .hljs-params .hljs-typing{color:#fd971f}.hljs-module-access .hljs-module{color:#7e57c2}.hljs-constructor{color:#e2b93d}.hljs-constructor .hljs-string{color:#9ccc65}.hljs-comment,.hljs-quote{color:#b18eb1;font-style:italic}.hljs-doctag,.hljs-formula{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/atom-one-dark.min.css b/src/app/resources/assets/highlight/styles/atom-one-dark.min.css new file mode 100644 index 0000000..5344ee3 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/atom-one-dark.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/atom-one-light.min.css b/src/app/resources/assets/highlight/styles/atom-one-light.min.css new file mode 100644 index 0000000..df0268a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/atom-one-light.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#50a14f}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/3024.min.css b/src/app/resources/assets/highlight/styles/base16/3024.min.css new file mode 100644 index 0000000..55cff40 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/3024.min.css @@ -0,0 +1,7 @@ +/*! + Theme: 3024 + Author: Jan T. Sott (http://github.com/idleberg) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a5a2a2;background:#090300}.hljs ::selection,.hljs::selection{background-color:#4a4543;color:#a5a2a2}.hljs-comment{color:#5c5855}.hljs-tag{color:#807d7c}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a5a2a2}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#db2d20}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#e8bbd0}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fded02}.hljs-strong{font-weight:700;color:#fded02}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#01a252}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#b5e4f4}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#01a0e4}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a16a94}.hljs-emphasis{color:#a16a94;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#cdab53}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/apathy.min.css b/src/app/resources/assets/highlight/styles/base16/apathy.min.css new file mode 100644 index 0000000..44368e6 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/apathy.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Apathy + Author: Jannik Siebert (https://github.com/janniks) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#81b5ac;background:#031a16}.hljs ::selection,.hljs::selection{background-color:#184e45;color:#81b5ac}.hljs-comment{color:#2b685e}.hljs-tag{color:#5f9c92}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#81b5ac}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#3e9688}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#3e7996}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#3e4c96}.hljs-strong{font-weight:700;color:#3e4c96}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#883e96}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#963e4c}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#96883e}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#4c963e}.hljs-emphasis{color:#4c963e;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#3e965b}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/apprentice.min.css b/src/app/resources/assets/highlight/styles/base16/apprentice.min.css new file mode 100644 index 0000000..00dc982 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/apprentice.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Apprentice + Author: romainl + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#bcbcbc;background:#262626}.hljs ::selection,.hljs::selection{background-color:#333;color:#bcbcbc}.hljs-comment{color:#6c6c6c}.hljs-tag{color:#787878}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#bcbcbc}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#5f8787}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ff8700}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#5f8787}.hljs-strong{font-weight:700;color:#5f8787}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#87af87}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#5f875f}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#ffffaf}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#87afd7}.hljs-emphasis{color:#87afd7;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#5f87af}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/ashes.min.css b/src/app/resources/assets/highlight/styles/base16/ashes.min.css new file mode 100644 index 0000000..4403f21 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/ashes.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Ashes + Author: Jannik Siebert (https://github.com/janniks) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c7ccd1;background:#1c2023}.hljs ::selection,.hljs::selection{background-color:#565e65;color:#c7ccd1}.hljs-comment{color:#747c84}.hljs-tag{color:#adb3ba}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c7ccd1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#c7ae95}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#c7c795}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#aec795}.hljs-strong{font-weight:700;color:#aec795}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#95c7ae}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#95aec7}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#ae95c7}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c795ae}.hljs-emphasis{color:#c795ae;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c79595}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-cave-light.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-cave-light.min.css new file mode 100644 index 0000000..25fcdf4 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-cave-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Cave Light + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#585260;background:#efecf4}.hljs ::selection,.hljs::selection{background-color:#8b8792;color:#585260}.hljs-comment{color:#7e7887}.hljs-tag{color:#655f6d}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#585260}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#be4678}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aa573c}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a06e3b}.hljs-strong{font-weight:700;color:#a06e3b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#2a9292}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#398bc6}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#576ddb}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#955ae7}.hljs-emphasis{color:#955ae7;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#bf40bf}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-cave.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-cave.min.css new file mode 100644 index 0000000..e51fe0a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-cave.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Cave + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#8b8792;background:#19171c}.hljs ::selection,.hljs::selection{background-color:#585260;color:#8b8792}.hljs-comment{color:#655f6d}.hljs-tag{color:#7e7887}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#8b8792}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#be4678}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aa573c}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a06e3b}.hljs-strong{font-weight:700;color:#a06e3b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#2a9292}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#398bc6}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#576ddb}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#955ae7}.hljs-emphasis{color:#955ae7;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#bf40bf}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-dune-light.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-dune-light.min.css new file mode 100644 index 0000000..f310ce1 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-dune-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Dune Light + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#6e6b5e;background:#fefbec}.hljs ::selection,.hljs::selection{background-color:#a6a28c;color:#6e6b5e}.hljs-comment{color:#999580}.hljs-tag{color:#7d7a68}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#6e6b5e}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d73737}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#b65611}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ae9513}.hljs-strong{font-weight:700;color:#ae9513}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#60ac39}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#1fad83}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#6684e1}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b854d4}.hljs-emphasis{color:#b854d4;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d43552}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-dune.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-dune.min.css new file mode 100644 index 0000000..05b260c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-dune.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Dune + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a6a28c;background:#20201d}.hljs ::selection,.hljs::selection{background-color:#6e6b5e;color:#a6a28c}.hljs-comment{color:#7d7a68}.hljs-tag{color:#999580}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a6a28c}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d73737}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#b65611}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ae9513}.hljs-strong{font-weight:700;color:#ae9513}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#60ac39}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#1fad83}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#6684e1}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b854d4}.hljs-emphasis{color:#b854d4;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d43552}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-estuary-light.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-estuary-light.min.css new file mode 100644 index 0000000..90f8be4 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-estuary-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Estuary Light + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#5f5e4e;background:#f4f3ec}.hljs ::selection,.hljs::selection{background-color:#929181;color:#5f5e4e}.hljs-comment{color:#878573}.hljs-tag{color:#6c6b5a}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#5f5e4e}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ba6236}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ae7313}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a5980d}.hljs-strong{font-weight:700;color:#a5980d}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#7d9726}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#5b9d48}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#36a166}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#5f9182}.hljs-emphasis{color:#5f9182;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#9d6c7c}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-estuary.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-estuary.min.css new file mode 100644 index 0000000..b088f77 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-estuary.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Estuary + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#929181;background:#22221b}.hljs ::selection,.hljs::selection{background-color:#5f5e4e;color:#929181}.hljs-comment{color:#6c6b5a}.hljs-tag{color:#878573}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#929181}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ba6236}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ae7313}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a5980d}.hljs-strong{font-weight:700;color:#a5980d}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#7d9726}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#5b9d48}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#36a166}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#5f9182}.hljs-emphasis{color:#5f9182;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#9d6c7c}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-forest-light.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-forest-light.min.css new file mode 100644 index 0000000..a54242d --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-forest-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Forest Light + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#68615e;background:#f1efee}.hljs ::selection,.hljs::selection{background-color:#a8a19f;color:#68615e}.hljs-comment{color:#9c9491}.hljs-tag{color:#766e6b}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#68615e}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f22c40}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#df5320}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#c38418}.hljs-strong{font-weight:700;color:#c38418}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#7b9726}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#3d97b8}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#407ee7}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#6666ea}.hljs-emphasis{color:#6666ea;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c33ff3}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-forest.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-forest.min.css new file mode 100644 index 0000000..e6ca2d5 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-forest.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Forest + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a8a19f;background:#1b1918}.hljs ::selection,.hljs::selection{background-color:#68615e;color:#a8a19f}.hljs-comment{color:#766e6b}.hljs-tag{color:#9c9491}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a8a19f}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f22c40}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#df5320}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#c38418}.hljs-strong{font-weight:700;color:#c38418}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#7b9726}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#3d97b8}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#407ee7}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#6666ea}.hljs-emphasis{color:#6666ea;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c33ff3}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-heath-light.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-heath-light.min.css new file mode 100644 index 0000000..dc38ca0 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-heath-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Heath Light + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#695d69;background:#f7f3f7}.hljs ::selection,.hljs::selection{background-color:#ab9bab;color:#695d69}.hljs-comment{color:#9e8f9e}.hljs-tag{color:#776977}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#695d69}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ca402b}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#a65926}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#bb8a35}.hljs-strong{font-weight:700;color:#bb8a35}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#918b3b}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#159393}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#516aec}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#7b59c0}.hljs-emphasis{color:#7b59c0;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c3c}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-heath.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-heath.min.css new file mode 100644 index 0000000..4656ef6 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-heath.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Heath + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#ab9bab;background:#1b181b}.hljs ::selection,.hljs::selection{background-color:#695d69;color:#ab9bab}.hljs-comment{color:#776977}.hljs-tag{color:#9e8f9e}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#ab9bab}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ca402b}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#a65926}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#bb8a35}.hljs-strong{font-weight:700;color:#bb8a35}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#918b3b}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#159393}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#516aec}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#7b59c0}.hljs-emphasis{color:#7b59c0;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c3c}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-lakeside-light.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-lakeside-light.min.css new file mode 100644 index 0000000..c1252e3 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-lakeside-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Lakeside Light + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#516d7b;background:#ebf8ff}.hljs ::selection,.hljs::selection{background-color:#7ea2b4;color:#516d7b}.hljs-comment{color:#7195a8}.hljs-tag{color:#5a7b8c}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#516d7b}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d22d72}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#935c25}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#8a8a0f}.hljs-strong{font-weight:700;color:#8a8a0f}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#568c3b}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#2d8f6f}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#257fad}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#6b6bb8}.hljs-emphasis{color:#6b6bb8;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b72dd2}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-lakeside.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-lakeside.min.css new file mode 100644 index 0000000..efcb981 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-lakeside.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Lakeside + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#7ea2b4;background:#161b1d}.hljs ::selection,.hljs::selection{background-color:#516d7b;color:#7ea2b4}.hljs-comment{color:#5a7b8c}.hljs-tag{color:#7195a8}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#7ea2b4}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d22d72}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#935c25}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#8a8a0f}.hljs-strong{font-weight:700;color:#8a8a0f}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#568c3b}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#2d8f6f}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#257fad}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#6b6bb8}.hljs-emphasis{color:#6b6bb8;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b72dd2}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-plateau-light.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-plateau-light.min.css new file mode 100644 index 0000000..44362de --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-plateau-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Plateau Light + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#585050;background:#f4ecec}.hljs ::selection,.hljs::selection{background-color:#8a8585;color:#585050}.hljs-comment{color:#7e7777}.hljs-tag{color:#655d5d}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#585050}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ca4949}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#b45a3c}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a06e3b}.hljs-strong{font-weight:700;color:#a06e3b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#4b8b8b}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#5485b6}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#7272ca}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#8464c4}.hljs-emphasis{color:#8464c4;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#bd5187}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-plateau.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-plateau.min.css new file mode 100644 index 0000000..7051d01 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-plateau.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Plateau + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#8a8585;background:#1b1818}.hljs ::selection,.hljs::selection{background-color:#585050;color:#8a8585}.hljs-comment{color:#655d5d}.hljs-tag{color:#7e7777}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#8a8585}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ca4949}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#b45a3c}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a06e3b}.hljs-strong{font-weight:700;color:#a06e3b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#4b8b8b}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#5485b6}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#7272ca}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#8464c4}.hljs-emphasis{color:#8464c4;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#bd5187}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-savanna-light.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-savanna-light.min.css new file mode 100644 index 0000000..4d63650 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-savanna-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Savanna Light + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#526057;background:#ecf4ee}.hljs ::selection,.hljs::selection{background-color:#87928a;color:#526057}.hljs-comment{color:#78877d}.hljs-tag{color:#5f6d64}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#526057}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#b16139}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#9f713c}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a07e3b}.hljs-strong{font-weight:700;color:#a07e3b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#489963}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#1c9aa0}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#478c90}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#55859b}.hljs-emphasis{color:#55859b;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#867469}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-savanna.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-savanna.min.css new file mode 100644 index 0000000..286c1d9 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-savanna.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Savanna + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#87928a;background:#171c19}.hljs ::selection,.hljs::selection{background-color:#526057;color:#87928a}.hljs-comment{color:#5f6d64}.hljs-tag{color:#78877d}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#87928a}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#b16139}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#9f713c}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a07e3b}.hljs-strong{font-weight:700;color:#a07e3b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#489963}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#1c9aa0}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#478c90}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#55859b}.hljs-emphasis{color:#55859b;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#867469}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-seaside-light.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-seaside-light.min.css new file mode 100644 index 0000000..524a951 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-seaside-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Seaside Light + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#5e6e5e;background:#f4fbf4}.hljs ::selection,.hljs::selection{background-color:#8ca68c;color:#5e6e5e}.hljs-comment{color:#809980}.hljs-tag{color:#687d68}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#5e6e5e}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#e6193c}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#87711d}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#98981b}.hljs-strong{font-weight:700;color:#98981b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#29a329}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#1999b3}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#3d62f5}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ad2bee}.hljs-emphasis{color:#ad2bee;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#e619c3}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-seaside.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-seaside.min.css new file mode 100644 index 0000000..f1b2fe0 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-seaside.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Seaside + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#8ca68c;background:#131513}.hljs ::selection,.hljs::selection{background-color:#5e6e5e;color:#8ca68c}.hljs-comment{color:#687d68}.hljs-tag{color:#809980}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#8ca68c}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#e6193c}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#87711d}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#98981b}.hljs-strong{font-weight:700;color:#98981b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#29a329}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#1999b3}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#3d62f5}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ad2bee}.hljs-emphasis{color:#ad2bee;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#e619c3}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-sulphurpool-light.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-sulphurpool-light.min.css new file mode 100644 index 0000000..8e038f5 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-sulphurpool-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Sulphurpool Light + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#5e6687;background:#f5f7ff}.hljs ::selection,.hljs::selection{background-color:#979db4;color:#5e6687}.hljs-comment{color:#898ea4}.hljs-tag{color:#6b7394}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#5e6687}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#c94922}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#c76b29}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#c08b30}.hljs-strong{font-weight:700;color:#c08b30}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#ac9739}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#22a2c9}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#3d8fd1}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#6679cc}.hljs-emphasis{color:#6679cc;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#9c637a}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atelier-sulphurpool.min.css b/src/app/resources/assets/highlight/styles/base16/atelier-sulphurpool.min.css new file mode 100644 index 0000000..519aa38 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atelier-sulphurpool.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atelier Sulphurpool + Author: Bram de Haan (http://atelierbramdehaan.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#979db4;background:#202746}.hljs ::selection,.hljs::selection{background-color:#5e6687;color:#979db4}.hljs-comment{color:#6b7394}.hljs-tag{color:#898ea4}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#979db4}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#c94922}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#c76b29}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#c08b30}.hljs-strong{font-weight:700;color:#c08b30}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#ac9739}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#22a2c9}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#3d8fd1}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#6679cc}.hljs-emphasis{color:#6679cc;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#9c637a}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/atlas.min.css b/src/app/resources/assets/highlight/styles/base16/atlas.min.css new file mode 100644 index 0000000..62a8848 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/atlas.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Atlas + Author: Alex Lende (https://ajlende.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a1a19a;background:#002635}.hljs ::selection,.hljs::selection{background-color:#517f8d;color:#a1a19a}.hljs-comment{color:#6c8b91}.hljs-tag{color:#869696}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a1a19a}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ff5a67}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f08e48}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffcc1b}.hljs-strong{font-weight:700;color:#ffcc1b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#7fc06e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#14747e}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#5dd7b9}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#9a70a4}.hljs-emphasis{color:#9a70a4;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c43060}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/bespin.min.css b/src/app/resources/assets/highlight/styles/base16/bespin.min.css new file mode 100644 index 0000000..234cb64 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/bespin.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Bespin + Author: Jan T. Sott + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#8a8986;background:#28211c}.hljs ::selection,.hljs::selection{background-color:#5e5d5c;color:#8a8986}.hljs-comment{color:#666}.hljs-tag{color:#797977}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#8a8986}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#cf6a4c}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#cf7d34}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f9ee98}.hljs-strong{font-weight:700;color:#f9ee98}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#54be0d}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#afc4db}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#5ea6ea}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#9b859d}.hljs-emphasis{color:#9b859d;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#937121}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/black-metal-bathory.min.css b/src/app/resources/assets/highlight/styles/base16/black-metal-bathory.min.css new file mode 100644 index 0000000..b315d96 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/black-metal-bathory.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Black Metal (Bathory) + Author: metalelf0 (https://github.com/metalelf0) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c1c1c1;background:#000}.hljs ::selection,.hljs::selection{background-color:#222;color:#c1c1c1}.hljs-comment{color:#333}.hljs-tag{color:#999}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c1c1c1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#5f8787}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aaa}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#e78a53}.hljs-strong{font-weight:700;color:#e78a53}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#fbcb97}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#aaa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#888}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#999}.hljs-emphasis{color:#999;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#444}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/black-metal-burzum.min.css b/src/app/resources/assets/highlight/styles/base16/black-metal-burzum.min.css new file mode 100644 index 0000000..7729779 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/black-metal-burzum.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Black Metal (Burzum) + Author: metalelf0 (https://github.com/metalelf0) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c1c1c1;background:#000}.hljs ::selection,.hljs::selection{background-color:#222;color:#c1c1c1}.hljs-comment{color:#333}.hljs-tag{color:#999}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c1c1c1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#5f8787}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aaa}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#9ba}.hljs-strong{font-weight:700;color:#9ba}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#dec}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#aaa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#888}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#999}.hljs-emphasis{color:#999;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#444}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/black-metal-dark-funeral.min.css b/src/app/resources/assets/highlight/styles/base16/black-metal-dark-funeral.min.css new file mode 100644 index 0000000..7bffc28 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/black-metal-dark-funeral.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Black Metal (Dark Funeral) + Author: metalelf0 (https://github.com/metalelf0) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c1c1c1;background:#000}.hljs ::selection,.hljs::selection{background-color:#222;color:#c1c1c1}.hljs-comment{color:#333}.hljs-tag{color:#999}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c1c1c1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#5f8787}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aaa}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#5f81a5}.hljs-strong{font-weight:700;color:#5f81a5}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#d0dfee}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#aaa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#888}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#999}.hljs-emphasis{color:#999;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#444}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/black-metal-gorgoroth.min.css b/src/app/resources/assets/highlight/styles/base16/black-metal-gorgoroth.min.css new file mode 100644 index 0000000..0fbfafe --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/black-metal-gorgoroth.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Black Metal (Gorgoroth) + Author: metalelf0 (https://github.com/metalelf0) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c1c1c1;background:#000}.hljs ::selection,.hljs::selection{background-color:#222;color:#c1c1c1}.hljs-comment{color:#333}.hljs-tag{color:#999}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c1c1c1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#5f8787}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aaa}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#8c7f70}.hljs-strong{font-weight:700;color:#8c7f70}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#9b8d7f}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#aaa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#888}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#999}.hljs-emphasis{color:#999;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#444}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/black-metal-immortal.min.css b/src/app/resources/assets/highlight/styles/base16/black-metal-immortal.min.css new file mode 100644 index 0000000..1cbd00a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/black-metal-immortal.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Black Metal (Immortal) + Author: metalelf0 (https://github.com/metalelf0) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c1c1c1;background:#000}.hljs ::selection,.hljs::selection{background-color:#222;color:#c1c1c1}.hljs-comment{color:#333}.hljs-tag{color:#999}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c1c1c1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#5f8787}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aaa}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#567}.hljs-strong{font-weight:700;color:#567}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#79b}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#aaa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#888}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#999}.hljs-emphasis{color:#999;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#444}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/black-metal-khold.min.css b/src/app/resources/assets/highlight/styles/base16/black-metal-khold.min.css new file mode 100644 index 0000000..1ca9ceb --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/black-metal-khold.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Black Metal (Khold) + Author: metalelf0 (https://github.com/metalelf0) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c1c1c1;background:#000}.hljs ::selection,.hljs::selection{background-color:#222;color:#c1c1c1}.hljs-comment{color:#333}.hljs-tag{color:#999}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c1c1c1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#5f8787}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aaa}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#974b46}.hljs-strong{font-weight:700;color:#974b46}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#eceee3}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#aaa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#888}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#999}.hljs-emphasis{color:#999;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#444}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/black-metal-marduk.min.css b/src/app/resources/assets/highlight/styles/base16/black-metal-marduk.min.css new file mode 100644 index 0000000..1ecf596 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/black-metal-marduk.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Black Metal (Marduk) + Author: metalelf0 (https://github.com/metalelf0) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c1c1c1;background:#000}.hljs ::selection,.hljs::selection{background-color:#222;color:#c1c1c1}.hljs-comment{color:#333}.hljs-tag{color:#999}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c1c1c1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#5f8787}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aaa}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#626b67}.hljs-strong{font-weight:700;color:#626b67}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a5aaa7}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#aaa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#888}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#999}.hljs-emphasis{color:#999;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#444}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/black-metal-mayhem.min.css b/src/app/resources/assets/highlight/styles/base16/black-metal-mayhem.min.css new file mode 100644 index 0000000..d031b52 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/black-metal-mayhem.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Black Metal (Mayhem) + Author: metalelf0 (https://github.com/metalelf0) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c1c1c1;background:#000}.hljs ::selection,.hljs::selection{background-color:#222;color:#c1c1c1}.hljs-comment{color:#333}.hljs-tag{color:#999}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c1c1c1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#5f8787}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aaa}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#eecc6c}.hljs-strong{font-weight:700;color:#eecc6c}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#f3ecd4}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#aaa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#888}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#999}.hljs-emphasis{color:#999;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#444}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/black-metal-nile.min.css b/src/app/resources/assets/highlight/styles/base16/black-metal-nile.min.css new file mode 100644 index 0000000..9b991b6 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/black-metal-nile.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Black Metal (Nile) + Author: metalelf0 (https://github.com/metalelf0) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c1c1c1;background:#000}.hljs ::selection,.hljs::selection{background-color:#222;color:#c1c1c1}.hljs-comment{color:#333}.hljs-tag{color:#999}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c1c1c1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#5f8787}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aaa}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#775}.hljs-strong{font-weight:700;color:#775}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a98}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#aaa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#888}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#999}.hljs-emphasis{color:#999;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#444}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/black-metal-venom.min.css b/src/app/resources/assets/highlight/styles/base16/black-metal-venom.min.css new file mode 100644 index 0000000..17e9ccb --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/black-metal-venom.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Black Metal (Venom) + Author: metalelf0 (https://github.com/metalelf0) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c1c1c1;background:#000}.hljs ::selection,.hljs::selection{background-color:#222;color:#c1c1c1}.hljs-comment{color:#333}.hljs-tag{color:#999}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c1c1c1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#5f8787}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aaa}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#79241f}.hljs-strong{font-weight:700;color:#79241f}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#f8f7f2}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#aaa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#888}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#999}.hljs-emphasis{color:#999;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#444}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/black-metal.min.css b/src/app/resources/assets/highlight/styles/base16/black-metal.min.css new file mode 100644 index 0000000..b44199d --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/black-metal.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Black Metal + Author: metalelf0 (https://github.com/metalelf0) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c1c1c1;background:#000}.hljs ::selection,.hljs::selection{background-color:#222;color:#c1c1c1}.hljs-comment{color:#333}.hljs-tag{color:#999}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c1c1c1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#5f8787}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aaa}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a06666}.hljs-strong{font-weight:700;color:#a06666}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#d99}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#aaa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#888}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#999}.hljs-emphasis{color:#999;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#444}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/brewer.min.css b/src/app/resources/assets/highlight/styles/base16/brewer.min.css new file mode 100644 index 0000000..cf2257d --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/brewer.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Brewer + Author: Timothée Poisot (http://github.com/tpoisot) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#b7b8b9;background:#0c0d0e}.hljs ::selection,.hljs::selection{background-color:#515253;color:#b7b8b9}.hljs-comment{color:#737475}.hljs-tag{color:#959697}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#b7b8b9}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#e31a1c}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#e6550d}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#dca060}.hljs-strong{font-weight:700;color:#dca060}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#31a354}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#80b1d3}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#3182bd}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#756bb1}.hljs-emphasis{color:#756bb1;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b15928}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/bright.min.css b/src/app/resources/assets/highlight/styles/base16/bright.min.css new file mode 100644 index 0000000..0e104ef --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/bright.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Bright + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#e0e0e0;background:#000}.hljs ::selection,.hljs::selection{background-color:#505050;color:#e0e0e0}.hljs-comment{color:#b0b0b0}.hljs-tag{color:#d0d0d0}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#e0e0e0}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#fb0120}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fc6d24}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fda331}.hljs-strong{font-weight:700;color:#fda331}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a1c659}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#76c7b7}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#6fb3d2}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#d381c3}.hljs-emphasis{color:#d381c3;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#be643c}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/brogrammer.min.css b/src/app/resources/assets/highlight/styles/base16/brogrammer.min.css new file mode 100644 index 0000000..2a1a8e8 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/brogrammer.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Brogrammer + Author: Vik Ramanujam (http://github.com/piggyslasher) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#4e5ab7;background:#1f1f1f}.hljs ::selection,.hljs::selection{background-color:#2dc55e;color:#4e5ab7}.hljs-comment{color:#ecba0f}.hljs-tag{color:#2a84d2}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#4e5ab7}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d6dbe5}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#de352e}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#1dd361}.hljs-strong{font-weight:700;color:#1dd361}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#f3bd09}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#1081d6}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#5350b9}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#0f7ddb}.hljs-emphasis{color:#0f7ddb;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#fff}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/brush-trees-dark.min.css b/src/app/resources/assets/highlight/styles/base16/brush-trees-dark.min.css new file mode 100644 index 0000000..18e798d --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/brush-trees-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Brush Trees Dark + Author: Abraham White + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#b0c5c8;background:#485867}.hljs ::selection,.hljs::selection{background-color:#6d828e;color:#b0c5c8}.hljs-comment{color:#8299a1}.hljs-tag{color:#98afb5}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#b0c5c8}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#b38686}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d8bba2}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#aab386}.hljs-strong{font-weight:700;color:#aab386}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#87b386}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#86b3b3}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#868cb3}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b386b2}.hljs-emphasis{color:#b386b2;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b39f9f}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/brush-trees.min.css b/src/app/resources/assets/highlight/styles/base16/brush-trees.min.css new file mode 100644 index 0000000..ebc2b58 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/brush-trees.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Brush Trees + Author: Abraham White + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#6d828e;background:#e3efef}.hljs ::selection,.hljs::selection{background-color:#b0c5c8;color:#6d828e}.hljs-comment{color:#98afb5}.hljs-tag{color:#8299a1}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#6d828e}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#b38686}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d8bba2}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#aab386}.hljs-strong{font-weight:700;color:#aab386}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#87b386}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#86b3b3}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#868cb3}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b386b2}.hljs-emphasis{color:#b386b2;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b39f9f}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/chalk.min.css b/src/app/resources/assets/highlight/styles/base16/chalk.min.css new file mode 100644 index 0000000..a7bbe07 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/chalk.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Chalk + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d0d0d0;background:#151515}.hljs ::selection,.hljs::selection{background-color:#303030;color:#d0d0d0}.hljs-comment{color:#505050}.hljs-tag{color:#b0b0b0}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d0d0d0}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#fb9fb1}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#eda987}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ddb26f}.hljs-strong{font-weight:700;color:#ddb26f}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#acc267}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#12cfc0}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#6fc2ef}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#e1a3ee}.hljs-emphasis{color:#e1a3ee;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#deaf8f}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/circus.min.css b/src/app/resources/assets/highlight/styles/base16/circus.min.css new file mode 100644 index 0000000..e34e78b --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/circus.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Circus + Author: Stephan Boyer (https://github.com/stepchowfun) and Esther Wang (https://github.com/ewang12) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a7a7a7;background:#191919}.hljs ::selection,.hljs::selection{background-color:#303030;color:#a7a7a7}.hljs-comment{color:#5f5a60}.hljs-tag{color:#505050}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a7a7a7}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#dc657d}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#4bb1a7}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#c3ba63}.hljs-strong{font-weight:700;color:#c3ba63}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#84b97c}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#4bb1a7}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#639ee4}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b888e2}.hljs-emphasis{color:#b888e2;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b888e2}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/classic-dark.min.css b/src/app/resources/assets/highlight/styles/base16/classic-dark.min.css new file mode 100644 index 0000000..c9b4c40 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/classic-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Classic Dark + Author: Jason Heeris (http://heeris.id.au) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d0d0d0;background:#151515}.hljs ::selection,.hljs::selection{background-color:#303030;color:#d0d0d0}.hljs-comment{color:#505050}.hljs-tag{color:#b0b0b0}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d0d0d0}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ac4142}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d28445}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f4bf75}.hljs-strong{font-weight:700;color:#f4bf75}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#90a959}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#75b5aa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#6a9fb5}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#aa759f}.hljs-emphasis{color:#aa759f;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#8f5536}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/classic-light.min.css b/src/app/resources/assets/highlight/styles/base16/classic-light.min.css new file mode 100644 index 0000000..67f392f --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/classic-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Classic Light + Author: Jason Heeris (http://heeris.id.au) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#303030;background:#f5f5f5}.hljs ::selection,.hljs::selection{background-color:#d0d0d0;color:#303030}.hljs-comment{color:#b0b0b0}.hljs-tag{color:#505050}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#303030}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ac4142}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d28445}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f4bf75}.hljs-strong{font-weight:700;color:#f4bf75}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#90a959}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#75b5aa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#6a9fb5}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#aa759f}.hljs-emphasis{color:#aa759f;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#8f5536}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/codeschool.min.css b/src/app/resources/assets/highlight/styles/base16/codeschool.min.css new file mode 100644 index 0000000..db20ed4 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/codeschool.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Codeschool + Author: blockloop + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#9ea7a6;background:#232c31}.hljs ::selection,.hljs::selection{background-color:#2a343a;color:#9ea7a6}.hljs-comment{color:#3f4944}.hljs-tag{color:#84898c}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#9ea7a6}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#2a5491}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#43820d}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a03b1e}.hljs-strong{font-weight:700;color:#a03b1e}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#237986}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#b02f30}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#484d79}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c59820}.hljs-emphasis{color:#c59820;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c98344}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/colors.min.css b/src/app/resources/assets/highlight/styles/base16/colors.min.css new file mode 100644 index 0000000..742aeeb --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/colors.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Colors + Author: mrmrs (http://clrs.cc) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#bbb;background:#111}.hljs ::selection,.hljs::selection{background-color:#555;color:#bbb}.hljs-comment{color:#777}.hljs-tag{color:#999}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#bbb}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ff4136}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ff851b}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffdc00}.hljs-strong{font-weight:700;color:#ffdc00}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#2ecc40}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#7fdbff}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#0074d9}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b10dc9}.hljs-emphasis{color:#b10dc9;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#85144b}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/cupcake.min.css b/src/app/resources/assets/highlight/styles/base16/cupcake.min.css new file mode 100644 index 0000000..b3bffc3 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/cupcake.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Cupcake + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#8b8198;background:#fbf1f2}.hljs ::selection,.hljs::selection{background-color:#d8d5dd;color:#8b8198}.hljs-comment{color:#bfb9c6}.hljs-tag{color:#a59daf}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#8b8198}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d57e85}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ebb790}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#dcb16c}.hljs-strong{font-weight:700;color:#dcb16c}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a3b367}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#69a9a7}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#7297b9}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#bb99b4}.hljs-emphasis{color:#bb99b4;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#baa58c}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/cupertino.min.css b/src/app/resources/assets/highlight/styles/base16/cupertino.min.css new file mode 100644 index 0000000..abec520 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/cupertino.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Cupertino + Author: Defman21 + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#404040;background:#fff}.hljs ::selection,.hljs::selection{background-color:silver;color:#404040}.hljs-comment,.hljs-tag{color:grey}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#404040}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#c41a15}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#eb8500}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#826b28}.hljs-strong{font-weight:700;color:#826b28}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#007400}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#318495}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#00f}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a90d91}.hljs-emphasis{color:#a90d91;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#826b28}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/danqing.min.css b/src/app/resources/assets/highlight/styles/base16/danqing.min.css new file mode 100644 index 0000000..d9bf65d --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/danqing.min.css @@ -0,0 +1,7 @@ +/*! + Theme: DanQing + Author: Wenhan Zhu (Cosmos) (zhuwenhan950913@gmail.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#e0f0ef;background:#2d302f}.hljs ::selection,.hljs::selection{background-color:#5a605d;color:#e0f0ef}.hljs-comment{color:#9da8a3}.hljs-tag{color:#cad8d2}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#e0f0ef}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f9906f}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#b38a61}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f0c239}.hljs-strong{font-weight:700;color:#f0c239}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#8ab361}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#30dff3}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#b0a4e3}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#cca4e3}.hljs-emphasis{color:#cca4e3;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#ca6924}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/darcula.min.css b/src/app/resources/assets/highlight/styles/base16/darcula.min.css new file mode 100644 index 0000000..7824e83 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/darcula.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Darcula + Author: jetbrains + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a9b7c6;background:#2b2b2b}.hljs ::selection,.hljs::selection{background-color:#323232;color:#a9b7c6}.hljs-comment{color:#606366}.hljs-tag{color:#a4a3a3}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a9b7c6}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#4eade5}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#689757}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#bbb529}.hljs-strong{font-weight:700;color:#bbb529}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#6a8759}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#629755}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#9876aa}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#cc7832}.hljs-emphasis{color:#cc7832;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:grey}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/dark-violet.min.css b/src/app/resources/assets/highlight/styles/base16/dark-violet.min.css new file mode 100644 index 0000000..de19c81 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/dark-violet.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Dark Violet + Author: ruler501 (https://github.com/ruler501/base16-darkviolet) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#b08ae6;background:#000}.hljs ::selection,.hljs::selection{background-color:#432d59;color:#b08ae6}.hljs-comment{color:#593380}.hljs-tag{color:#0f0}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#b08ae6}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#a82ee6}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#b6c}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f29df2}.hljs-strong{font-weight:700;color:#f29df2}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#4595e6}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#40dfff}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#4136d9}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#7e5ce6}.hljs-emphasis{color:#7e5ce6;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#a886bf}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/darkmoss.min.css b/src/app/resources/assets/highlight/styles/base16/darkmoss.min.css new file mode 100644 index 0000000..86c7f42 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/darkmoss.min.css @@ -0,0 +1,7 @@ +/*! + Theme: darkmoss + Author: Gabriel Avanzi (https://github.com/avanzzzi) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c7c7a5;background:#171e1f}.hljs ::selection,.hljs::selection{background-color:#373c3d;color:#c7c7a5}.hljs-comment{color:#555e5f}.hljs-tag{color:#818f80}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c7c7a5}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ff4658}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#e6db74}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fdb11f}.hljs-strong{font-weight:700;color:#fdb11f}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#499180}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#66d9ef}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#498091}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#9bc0c8}.hljs-emphasis{color:#9bc0c8;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d27b53}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/darktooth.min.css b/src/app/resources/assets/highlight/styles/base16/darktooth.min.css new file mode 100644 index 0000000..b95a507 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/darktooth.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Darktooth + Author: Jason Milkins (https://github.com/jasonm23) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a89984;background:#1d2021}.hljs ::selection,.hljs::selection{background-color:#504945;color:#a89984}.hljs-comment{color:#665c54}.hljs-tag{color:#928374}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a89984}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#fb543f}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fe8625}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fac03b}.hljs-strong{font-weight:700;color:#fac03b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#95c085}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#8ba59b}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#0d6678}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#8f4673}.hljs-emphasis{color:#8f4673;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#a87322}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/decaf.min.css b/src/app/resources/assets/highlight/styles/base16/decaf.min.css new file mode 100644 index 0000000..82057b6 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/decaf.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Decaf + Author: Alex Mirrington (https://github.com/alexmirrington) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#ccc;background:#2d2d2d}.hljs ::selection,.hljs::selection{background-color:#515151;color:#ccc}.hljs-comment{color:#777}.hljs-tag{color:#b4b7b4}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#ccc}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ff7f7b}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ffbf70}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffd67c}.hljs-strong{font-weight:700;color:#ffd67c}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#beda78}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#bed6ff}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#90bee1}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#efb3f7}.hljs-emphasis{color:#efb3f7;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#ff93b3}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/default-dark.min.css b/src/app/resources/assets/highlight/styles/base16/default-dark.min.css new file mode 100644 index 0000000..eee7cd6 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/default-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Default Dark + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d8d8d8;background:#181818}.hljs ::selection,.hljs::selection{background-color:#383838;color:#d8d8d8}.hljs-comment{color:#585858}.hljs-tag{color:#b8b8b8}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d8d8d8}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ab4642}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#dc9656}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f7ca88}.hljs-strong{font-weight:700;color:#f7ca88}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a1b56c}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#86c1b9}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#7cafc2}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ba8baf}.hljs-emphasis{color:#ba8baf;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#a16946}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/default-light.min.css b/src/app/resources/assets/highlight/styles/base16/default-light.min.css new file mode 100644 index 0000000..2b85d9c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/default-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Default Light + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383838;background:#f8f8f8}.hljs ::selection,.hljs::selection{background-color:#d8d8d8;color:#383838}.hljs-comment{color:#b8b8b8}.hljs-tag{color:#585858}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#383838}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ab4642}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#dc9656}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f7ca88}.hljs-strong{font-weight:700;color:#f7ca88}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a1b56c}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#86c1b9}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#7cafc2}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ba8baf}.hljs-emphasis{color:#ba8baf;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#a16946}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/dirtysea.min.css b/src/app/resources/assets/highlight/styles/base16/dirtysea.min.css new file mode 100644 index 0000000..801a545 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/dirtysea.min.css @@ -0,0 +1,7 @@ +/*! + Theme: dirtysea + Author: Kahlil (Kal) Hodgson + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#000;background:#e0e0e0}.hljs ::selection,.hljs::selection{background-color:#d0d0d0;color:#000}.hljs-comment{color:#707070}.hljs-tag{color:#202020}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#000}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#840000}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#006565}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#755b00}.hljs-strong{font-weight:700;color:#755b00}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#730073}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#755b00}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#007300}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#000090}.hljs-emphasis{color:#000090;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#755b00}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/dracula.min.css b/src/app/resources/assets/highlight/styles/base16/dracula.min.css new file mode 100644 index 0000000..729bbbf --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/dracula.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Dracula + Author: Mike Barkmin (http://github.com/mikebarkmin) based on Dracula Theme (http://github.com/dracula) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#e9e9f4;background:#282936}.hljs ::selection,.hljs::selection{background-color:#4d4f68;color:#e9e9f4}.hljs-comment{color:#626483}.hljs-tag{color:#62d6e8}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#e9e9f4}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ea51b2}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#b45bcf}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#00f769}.hljs-strong{font-weight:700;color:#00f769}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#ebff87}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#a1efe4}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#62d6e8}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b45bcf}.hljs-emphasis{color:#b45bcf;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#00f769}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/edge-dark.min.css b/src/app/resources/assets/highlight/styles/base16/edge-dark.min.css new file mode 100644 index 0000000..9e2ddb2 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/edge-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Edge Dark + Author: cjayross (https://github.com/cjayross) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#b7bec9;background:#262729}.hljs ::selection,.hljs::selection{background-color:#b7bec9;color:#b7bec9}.hljs-comment{color:#3e4249}.hljs-tag{color:#73b3e7}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#b7bec9}.hljs-operator{opacity:.7}.hljs-attr,.hljs-bullet,.hljs-deletion,.hljs-link,.hljs-literal,.hljs-name,.hljs-number,.hljs-selector-tag,.hljs-symbol,.hljs-template-variable,.hljs-variable,.hljs-variable.constant_{color:#e77171}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#dbb774}.hljs-strong{font-weight:700;color:#dbb774}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a1bf78}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#5ebaa5}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#73b3e7}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#d390e7}.hljs-emphasis{color:#d390e7;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#5ebaa5}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/edge-light.min.css b/src/app/resources/assets/highlight/styles/base16/edge-light.min.css new file mode 100644 index 0000000..940401f --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/edge-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Edge Light + Author: cjayross (https://github.com/cjayross) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#5e646f;background:#fafafa}.hljs ::selection,.hljs::selection{background-color:#d69822;color:#5e646f}.hljs-comment{color:#5e646f}.hljs-tag{color:#6587bf}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#5e646f}.hljs-operator{opacity:.7}.hljs-attr,.hljs-bullet,.hljs-deletion,.hljs-link,.hljs-literal,.hljs-name,.hljs-number,.hljs-selector-tag,.hljs-symbol,.hljs-template-variable,.hljs-variable,.hljs-variable.constant_{color:#db7070}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#d69822}.hljs-strong{font-weight:700;color:#d69822}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#7c9f4b}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#509c93}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#6587bf}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b870ce}.hljs-emphasis{color:#b870ce;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#509c93}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/eighties.min.css b/src/app/resources/assets/highlight/styles/base16/eighties.min.css new file mode 100644 index 0000000..0ef9e1e --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/eighties.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Eighties + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d3d0c8;background:#2d2d2d}.hljs ::selection,.hljs::selection{background-color:#515151;color:#d3d0c8}.hljs-comment{color:#747369}.hljs-tag{color:#a09f93}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d3d0c8}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f2777a}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f99157}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fc6}.hljs-strong{font-weight:700;color:#fc6}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#9c9}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#6cc}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#69c}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c9c}.hljs-emphasis{color:#c9c;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d27b53}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/embers.min.css b/src/app/resources/assets/highlight/styles/base16/embers.min.css new file mode 100644 index 0000000..eb5426c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/embers.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Embers + Author: Jannik Siebert (https://github.com/janniks) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a39a90;background:#16130f}.hljs ::selection,.hljs::selection{background-color:#433b32;color:#a39a90}.hljs-comment{color:#5a5047}.hljs-tag{color:#8a8075}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a39a90}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#826d57}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#828257}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#6d8257}.hljs-strong{font-weight:700;color:#6d8257}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#57826d}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#576d82}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#6d5782}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#82576d}.hljs-emphasis{color:#82576d;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#825757}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/equilibrium-dark.min.css b/src/app/resources/assets/highlight/styles/base16/equilibrium-dark.min.css new file mode 100644 index 0000000..e3fe3ae --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/equilibrium-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Equilibrium Dark + Author: Carlo Abelli + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#afaba2;background:#0c1118}.hljs ::selection,.hljs::selection{background-color:#22262d;color:#afaba2}.hljs-comment{color:#7b776e}.hljs-tag{color:#949088}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#afaba2}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f04339}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#df5923}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#bb8801}.hljs-strong{font-weight:700;color:#bb8801}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#7f8b00}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#00948b}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#008dd1}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#6a7fd2}.hljs-emphasis{color:#6a7fd2;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#e3488e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/equilibrium-gray-dark.min.css b/src/app/resources/assets/highlight/styles/base16/equilibrium-gray-dark.min.css new file mode 100644 index 0000000..d3c2ff1 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/equilibrium-gray-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Equilibrium Gray Dark + Author: Carlo Abelli + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#ababab;background:#111}.hljs ::selection,.hljs::selection{background-color:#262626;color:#ababab}.hljs-comment{color:#777}.hljs-tag{color:#919191}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#ababab}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f04339}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#df5923}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#bb8801}.hljs-strong{font-weight:700;color:#bb8801}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#7f8b00}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#00948b}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#008dd1}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#6a7fd2}.hljs-emphasis{color:#6a7fd2;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#e3488e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/equilibrium-gray-light.min.css b/src/app/resources/assets/highlight/styles/base16/equilibrium-gray-light.min.css new file mode 100644 index 0000000..817269f --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/equilibrium-gray-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Equilibrium Gray Light + Author: Carlo Abelli + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#474747;background:#f1f1f1}.hljs ::selection,.hljs::selection{background-color:#d4d4d4;color:#474747}.hljs-comment{color:#777}.hljs-tag{color:#5e5e5e}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#474747}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d02023}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#bf3e05}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#9d6f00}.hljs-strong{font-weight:700;color:#9d6f00}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#637200}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#007a72}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#0073b5}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#4e66b6}.hljs-emphasis{color:#4e66b6;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c42775}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/equilibrium-light.min.css b/src/app/resources/assets/highlight/styles/base16/equilibrium-light.min.css new file mode 100644 index 0000000..38564e9 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/equilibrium-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Equilibrium Light + Author: Carlo Abelli + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#43474e;background:#f5f0e7}.hljs ::selection,.hljs::selection{background-color:#d8d4cb;color:#43474e}.hljs-comment{color:#73777f}.hljs-tag{color:#5a5f66}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#43474e}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d02023}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#bf3e05}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#9d6f00}.hljs-strong{font-weight:700;color:#9d6f00}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#637200}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#007a72}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#0073b5}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#4e66b6}.hljs-emphasis{color:#4e66b6;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c42775}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/espresso.min.css b/src/app/resources/assets/highlight/styles/base16/espresso.min.css new file mode 100644 index 0000000..9d9a0ae --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/espresso.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Espresso + Author: Unknown. Maintained by Alex Mirrington (https://github.com/alexmirrington) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#ccc;background:#2d2d2d}.hljs ::selection,.hljs::selection{background-color:#515151;color:#ccc}.hljs-comment{color:#777}.hljs-tag{color:#b4b7b4}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#ccc}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d25252}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f9a959}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffc66d}.hljs-strong{font-weight:700;color:#ffc66d}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a5c261}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#bed6ff}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#6c99bb}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#d197d9}.hljs-emphasis{color:#d197d9;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#f97394}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/eva-dim.min.css b/src/app/resources/assets/highlight/styles/base16/eva-dim.min.css new file mode 100644 index 0000000..ab37158 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/eva-dim.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Eva Dim + Author: kjakapat (https://github.com/kjakapat) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#9fa2a6;background:#2a3b4d}.hljs ::selection,.hljs::selection{background-color:#4b6988;color:#9fa2a6}.hljs-comment{color:#55799c}.hljs-tag{color:#7e90a3}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#9fa2a6}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#c4676c}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f96}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#cfd05d}.hljs-strong{font-weight:700;color:#cfd05d}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#5de561}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#4b8f77}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#1ae1dc}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#9c6cd3}.hljs-emphasis{color:#9c6cd3;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#bb64a9}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/eva.min.css b/src/app/resources/assets/highlight/styles/base16/eva.min.css new file mode 100644 index 0000000..c4fb9cc --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/eva.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Eva + Author: kjakapat (https://github.com/kjakapat) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#9fa2a6;background:#2a3b4d}.hljs ::selection,.hljs::selection{background-color:#4b6988;color:#9fa2a6}.hljs-comment{color:#55799c}.hljs-tag{color:#7e90a3}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#9fa2a6}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#c4676c}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f96}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ff6}.hljs-strong{font-weight:700;color:#ff6}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#6f6}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#4b8f77}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#15f4ee}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#9c6cd3}.hljs-emphasis{color:#9c6cd3;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#bb64a9}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/flat.min.css b/src/app/resources/assets/highlight/styles/base16/flat.min.css new file mode 100644 index 0000000..7e6ece5 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/flat.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Flat + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#e0e0e0;background:#2c3e50}.hljs ::selection,.hljs::selection{background-color:#7f8c8d;color:#e0e0e0}.hljs-comment{color:#95a5a6}.hljs-tag{color:#bdc3c7}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#e0e0e0}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#e74c3c}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#e67e22}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f1c40f}.hljs-strong{font-weight:700;color:#f1c40f}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#2ecc71}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#1abc9c}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#3498db}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#9b59b6}.hljs-emphasis{color:#9b59b6;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#be643c}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/framer.min.css b/src/app/resources/assets/highlight/styles/base16/framer.min.css new file mode 100644 index 0000000..3024b54 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/framer.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Framer + Author: Framer (Maintained by Jesse Hoyos) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d0d0d0;background:#181818}.hljs ::selection,.hljs::selection{background-color:#464646;color:#d0d0d0}.hljs-comment{color:#747474}.hljs-tag{color:#b9b9b9}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d0d0d0}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#fd886b}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fc4769}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fecb6e}.hljs-strong{font-weight:700;color:#fecb6e}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#32ccdc}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#acddfd}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#20bcfc}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ba8cfc}.hljs-emphasis{color:#ba8cfc;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b15f4a}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/fruit-soda.min.css b/src/app/resources/assets/highlight/styles/base16/fruit-soda.min.css new file mode 100644 index 0000000..6e84fd7 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/fruit-soda.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Fruit Soda + Author: jozip + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#515151;background:#f1ecf1}.hljs ::selection,.hljs::selection{background-color:#d8d5d5;color:#515151}.hljs-comment{color:#b5b4b6}.hljs-tag{color:#979598}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#515151}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#fe3e31}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fe6d08}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f7e203}.hljs-strong{font-weight:700;color:#f7e203}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#47f74c}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#0f9cfd}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#2931df}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#611fce}.hljs-emphasis{color:#611fce;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b16f40}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/gigavolt.min.css b/src/app/resources/assets/highlight/styles/base16/gigavolt.min.css new file mode 100644 index 0000000..9115b0c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/gigavolt.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Gigavolt + Author: Aidan Swope (http://github.com/Whillikers) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#e9e7e1;background:#202126}.hljs ::selection,.hljs::selection{background-color:#5a576e;color:#e9e7e1}.hljs-comment{color:#a1d2e6}.hljs-tag{color:#cad3ff}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#e9e7e1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ff661a}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#19f988}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffdc2d}.hljs-strong{font-weight:700;color:#ffdc2d}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#f2e6a9}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#fb6acb}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#40bfff}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ae94f9}.hljs-emphasis{color:#ae94f9;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#6187ff}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/github.min.css b/src/app/resources/assets/highlight/styles/base16/github.min.css new file mode 100644 index 0000000..188aaaa --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/github.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Github + Author: Defman21 + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#333;background:#fff}.hljs ::selection,.hljs::selection{background-color:#c8c8fa;color:#333}.hljs-comment{color:#969896}.hljs-tag{color:#e8e8e8}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#333}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ed6a43}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#0086b3}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#795da3}.hljs-strong{font-weight:700;color:#795da3}.hljs-addition,.hljs-built_in,.hljs-code,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp,.hljs-string,.hljs-title.class_.inherited__{color:#183691}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#795da3}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a71d5d}.hljs-emphasis{color:#a71d5d;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#333}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/google-dark.min.css b/src/app/resources/assets/highlight/styles/base16/google-dark.min.css new file mode 100644 index 0000000..bd2a2dc --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/google-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Google Dark + Author: Seth Wright (http://sethawright.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c5c8c6;background:#1d1f21}.hljs ::selection,.hljs::selection{background-color:#373b41;color:#c5c8c6}.hljs-comment{color:#969896}.hljs-tag{color:#b4b7b4}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c5c8c6}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#cc342b}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f96a38}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fba922}.hljs-strong{font-weight:700;color:#fba922}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#198844}.hljs-attribute,.hljs-built_in,.hljs-doctag,.hljs-function .hljs-title,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#3971ed}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a36ac7}.hljs-emphasis{color:#a36ac7;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#3971ed}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/google-light.min.css b/src/app/resources/assets/highlight/styles/base16/google-light.min.css new file mode 100644 index 0000000..26e6ffb --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/google-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Google Light + Author: Seth Wright (http://sethawright.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#373b41;background:#fff}.hljs ::selection,.hljs::selection{background-color:#c5c8c6;color:#373b41}.hljs-comment{color:#b4b7b4}.hljs-tag{color:#969896}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#373b41}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#cc342b}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f96a38}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fba922}.hljs-strong{font-weight:700;color:#fba922}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#198844}.hljs-attribute,.hljs-built_in,.hljs-doctag,.hljs-function .hljs-title,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#3971ed}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a36ac7}.hljs-emphasis{color:#a36ac7;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#3971ed}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/grayscale-dark.min.css b/src/app/resources/assets/highlight/styles/base16/grayscale-dark.min.css new file mode 100644 index 0000000..54c9a4c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/grayscale-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Grayscale Dark + Author: Alexandre Gavioli (https://github.com/Alexx2/) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#b9b9b9;background:#101010}.hljs ::selection,.hljs::selection{background-color:#464646;color:#b9b9b9}.hljs-comment{color:#525252}.hljs-tag{color:#ababab}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#b9b9b9}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#7c7c7c}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#999}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a0a0a0}.hljs-strong{font-weight:700;color:#a0a0a0}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#8e8e8e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#868686}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#686868}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#747474}.hljs-emphasis{color:#747474;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#5e5e5e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/grayscale-light.min.css b/src/app/resources/assets/highlight/styles/base16/grayscale-light.min.css new file mode 100644 index 0000000..3d85f2c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/grayscale-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Grayscale Light + Author: Alexandre Gavioli (https://github.com/Alexx2/) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#464646;background:#f7f7f7}.hljs ::selection,.hljs::selection{background-color:#b9b9b9;color:#464646}.hljs-comment{color:#ababab}.hljs-tag{color:#525252}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#464646}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#7c7c7c}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#999}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a0a0a0}.hljs-strong{font-weight:700;color:#a0a0a0}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#8e8e8e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#868686}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#686868}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#747474}.hljs-emphasis{color:#747474;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#5e5e5e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/green-screen.min.css b/src/app/resources/assets/highlight/styles/base16/green-screen.min.css new file mode 100644 index 0000000..8f66630 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/green-screen.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Green Screen + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#0b0;background:#010}.hljs ::selection,.hljs::selection{background-color:#050;color:#0b0}.hljs-comment{color:#070}.hljs-tag{color:#090}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#0b0}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#070}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#090}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#070}.hljs-strong{font-weight:700;color:#070}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#0b0}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#050}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#090}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#0b0}.hljs-emphasis{color:#0b0;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#050}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/gruvbox-dark-hard.min.css b/src/app/resources/assets/highlight/styles/base16/gruvbox-dark-hard.min.css new file mode 100644 index 0000000..d82083e --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/gruvbox-dark-hard.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Gruvbox dark, hard + Author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d5c4a1;background:#1d2021}.hljs ::selection,.hljs::selection{background-color:#504945;color:#d5c4a1}.hljs-comment{color:#665c54}.hljs-tag{color:#bdae93}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d5c4a1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#fb4934}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fe8019}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fabd2f}.hljs-strong{font-weight:700;color:#fabd2f}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#b8bb26}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#8ec07c}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#83a598}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#d3869b}.hljs-emphasis{color:#d3869b;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d65d0e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/gruvbox-dark-medium.min.css b/src/app/resources/assets/highlight/styles/base16/gruvbox-dark-medium.min.css new file mode 100644 index 0000000..1fc5e3a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/gruvbox-dark-medium.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Gruvbox dark, medium + Author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d5c4a1;background:#282828}.hljs ::selection,.hljs::selection{background-color:#504945;color:#d5c4a1}.hljs-comment{color:#665c54}.hljs-tag{color:#bdae93}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d5c4a1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#fb4934}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fe8019}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fabd2f}.hljs-strong{font-weight:700;color:#fabd2f}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#b8bb26}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#8ec07c}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#83a598}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#d3869b}.hljs-emphasis{color:#d3869b;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d65d0e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/gruvbox-dark-pale.min.css b/src/app/resources/assets/highlight/styles/base16/gruvbox-dark-pale.min.css new file mode 100644 index 0000000..293b4bc --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/gruvbox-dark-pale.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Gruvbox dark, pale + Author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#dab997;background:#262626}.hljs ::selection,.hljs::selection{background-color:#4e4e4e;color:#dab997}.hljs-comment{color:#8a8a8a}.hljs-tag{color:#949494}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#dab997}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d75f5f}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ff8700}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffaf00}.hljs-strong{font-weight:700;color:#ffaf00}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#afaf00}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#85ad85}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#83adad}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#d485ad}.hljs-emphasis{color:#d485ad;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d65d0e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/gruvbox-dark-soft.min.css b/src/app/resources/assets/highlight/styles/base16/gruvbox-dark-soft.min.css new file mode 100644 index 0000000..c327bbc --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/gruvbox-dark-soft.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Gruvbox dark, soft + Author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d5c4a1;background:#32302f}.hljs ::selection,.hljs::selection{background-color:#504945;color:#d5c4a1}.hljs-comment{color:#665c54}.hljs-tag{color:#bdae93}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d5c4a1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#fb4934}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fe8019}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fabd2f}.hljs-strong{font-weight:700;color:#fabd2f}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#b8bb26}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#8ec07c}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#83a598}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#d3869b}.hljs-emphasis{color:#d3869b;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d65d0e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/gruvbox-light-hard.min.css b/src/app/resources/assets/highlight/styles/base16/gruvbox-light-hard.min.css new file mode 100644 index 0000000..34d5cb7 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/gruvbox-light-hard.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Gruvbox light, hard + Author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#504945;background:#f9f5d7}.hljs ::selection,.hljs::selection{background-color:#d5c4a1;color:#504945}.hljs-comment{color:#bdae93}.hljs-tag{color:#665c54}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#504945}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#9d0006}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#af3a03}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#b57614}.hljs-strong{font-weight:700;color:#b57614}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#79740e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#427b58}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#076678}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#8f3f71}.hljs-emphasis{color:#8f3f71;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d65d0e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/gruvbox-light-medium.min.css b/src/app/resources/assets/highlight/styles/base16/gruvbox-light-medium.min.css new file mode 100644 index 0000000..e866687 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/gruvbox-light-medium.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Gruvbox light, medium + Author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#504945;background:#fbf1c7}.hljs ::selection,.hljs::selection{background-color:#d5c4a1;color:#504945}.hljs-comment{color:#bdae93}.hljs-tag{color:#665c54}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#504945}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#9d0006}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#af3a03}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#b57614}.hljs-strong{font-weight:700;color:#b57614}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#79740e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#427b58}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#076678}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#8f3f71}.hljs-emphasis{color:#8f3f71;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d65d0e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/gruvbox-light-soft.min.css b/src/app/resources/assets/highlight/styles/base16/gruvbox-light-soft.min.css new file mode 100644 index 0000000..32ad2bd --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/gruvbox-light-soft.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Gruvbox light, soft + Author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#504945;background:#f2e5bc}.hljs ::selection,.hljs::selection{background-color:#d5c4a1;color:#504945}.hljs-comment{color:#bdae93}.hljs-tag{color:#665c54}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#504945}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#9d0006}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#af3a03}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#b57614}.hljs-strong{font-weight:700;color:#b57614}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#79740e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#427b58}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#076678}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#8f3f71}.hljs-emphasis{color:#8f3f71;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d65d0e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/hardcore.min.css b/src/app/resources/assets/highlight/styles/base16/hardcore.min.css new file mode 100644 index 0000000..ce0a615 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/hardcore.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Hardcore + Author: Chris Caller + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#cdcdcd;background:#212121}.hljs ::selection,.hljs::selection{background-color:#353535;color:#cdcdcd}.hljs-comment{color:#4a4a4a}.hljs-tag{color:#707070}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#cdcdcd}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f92672}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fd971f}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#e6db74}.hljs-strong{font-weight:700;color:#e6db74}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a6e22e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#708387}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#66d9ef}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#9e6ffe}.hljs-emphasis{color:#9e6ffe;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#e8b882}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/harmonic16-dark.min.css b/src/app/resources/assets/highlight/styles/base16/harmonic16-dark.min.css new file mode 100644 index 0000000..497ad03 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/harmonic16-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Harmonic16 Dark + Author: Jannik Siebert (https://github.com/janniks) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#cbd6e2;background:#0b1c2c}.hljs ::selection,.hljs::selection{background-color:#405c79;color:#cbd6e2}.hljs-comment{color:#627e99}.hljs-tag{color:#aabcce}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#cbd6e2}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#bf8b56}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#bfbf56}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#8bbf56}.hljs-strong{font-weight:700;color:#8bbf56}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#56bf8b}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#568bbf}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#8b56bf}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#bf568b}.hljs-emphasis{color:#bf568b;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#bf5656}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/harmonic16-light.min.css b/src/app/resources/assets/highlight/styles/base16/harmonic16-light.min.css new file mode 100644 index 0000000..72ab06a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/harmonic16-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Harmonic16 Light + Author: Jannik Siebert (https://github.com/janniks) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#405c79;background:#f7f9fb}.hljs ::selection,.hljs::selection{background-color:#cbd6e2;color:#405c79}.hljs-comment{color:#aabcce}.hljs-tag{color:#627e99}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#405c79}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#bf8b56}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#bfbf56}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#8bbf56}.hljs-strong{font-weight:700;color:#8bbf56}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#56bf8b}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#568bbf}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#8b56bf}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#bf568b}.hljs-emphasis{color:#bf568b;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#bf5656}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/heetch-dark.min.css b/src/app/resources/assets/highlight/styles/base16/heetch-dark.min.css new file mode 100644 index 0000000..66cb473 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/heetch-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Heetch Dark + Author: Geoffrey Teale (tealeg@gmail.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#bdb6c5;background:#190134}.hljs ::selection,.hljs::selection{background-color:#5a496e;color:#bdb6c5}.hljs-comment{color:#7b6d8b}.hljs-tag{color:#9c92a8}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#bdb6c5}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#27d9d5}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#5ba2b6}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#8f6c97}.hljs-strong{font-weight:700;color:#8f6c97}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#c33678}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#f80059}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#bd0152}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#82034c}.hljs-emphasis{color:#82034c;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#470546}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/heetch-light.min.css b/src/app/resources/assets/highlight/styles/base16/heetch-light.min.css new file mode 100644 index 0000000..576538f --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/heetch-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Heetch Light + Author: Geoffrey Teale (tealeg@gmail.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#5a496e;background:#feffff}.hljs ::selection,.hljs::selection{background-color:#7b6d8b;color:#5a496e}.hljs-comment{color:#9c92a8}.hljs-tag{color:#ddd6e5}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#5a496e}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#27d9d5}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#bdb6c5}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#5ba2b6}.hljs-strong{font-weight:700;color:#5ba2b6}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#f80059}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#c33678}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#47f9f5}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#bd0152}.hljs-emphasis{color:#bd0152;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#dedae2}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/helios.min.css b/src/app/resources/assets/highlight/styles/base16/helios.min.css new file mode 100644 index 0000000..fe2574a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/helios.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Helios + Author: Alex Meyer (https://github.com/reyemxela) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d5d5d5;background:#1d2021}.hljs ::selection,.hljs::selection{background-color:#53585b;color:#d5d5d5}.hljs-comment{color:#6f7579}.hljs-tag{color:#cdcdcd}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d5d5d5}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d72638}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#eb8413}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f19d1a}.hljs-strong{font-weight:700;color:#f19d1a}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#88b92d}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#1ba595}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#1e8bac}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#be4264}.hljs-emphasis{color:#be4264;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c85e0d}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/hopscotch.min.css b/src/app/resources/assets/highlight/styles/base16/hopscotch.min.css new file mode 100644 index 0000000..908ae4c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/hopscotch.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Hopscotch + Author: Jan T. Sott + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#b9b5b8;background:#322931}.hljs ::selection,.hljs::selection{background-color:#5c545b;color:#b9b5b8}.hljs-comment{color:#797379}.hljs-tag{color:#989498}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#b9b5b8}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#dd464c}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fd8b19}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fdcc59}.hljs-strong{font-weight:700;color:#fdcc59}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#8fc13e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#149b93}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#1290bf}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c85e7c}.hljs-emphasis{color:#c85e7c;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b33508}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/horizon-dark.min.css b/src/app/resources/assets/highlight/styles/base16/horizon-dark.min.css new file mode 100644 index 0000000..a6fad3e --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/horizon-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Horizon Dark + Author: Michaël Ball (http://github.com/michael-ball/) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#cbced0;background:#1c1e26}.hljs ::selection,.hljs::selection{background-color:#2e303e;color:#cbced0}.hljs-comment{color:#6f6f70}.hljs-tag{color:#9da0a2}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#cbced0}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#e93c58}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#e58d7d}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#efb993}.hljs-strong{font-weight:700;color:#efb993}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#efaf8e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#24a8b4}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#df5273}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b072d1}.hljs-emphasis{color:#b072d1;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#e4a382}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/horizon-light.min.css b/src/app/resources/assets/highlight/styles/base16/horizon-light.min.css new file mode 100644 index 0000000..ae33a6e --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/horizon-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Horizon Light + Author: Michaël Ball (http://github.com/michael-ball/) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#403c3d;background:#fdf0ed}.hljs ::selection,.hljs::selection{background-color:#f9cbbe;color:#403c3d}.hljs-comment{color:#bdb3b1}.hljs-tag{color:#948c8a}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#403c3d}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#e95678}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f9cec3}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fadad1}.hljs-strong{font-weight:700;color:#fadad1}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#29d398}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#59e1e3}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#26bbd9}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ee64ac}.hljs-emphasis{color:#ee64ac;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#f9cbbe}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/humanoid-dark.min.css b/src/app/resources/assets/highlight/styles/base16/humanoid-dark.min.css new file mode 100644 index 0000000..a87c147 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/humanoid-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Humanoid dark + Author: Thomas (tasmo) Friese + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#f8f8f2;background:#232629}.hljs ::selection,.hljs::selection{background-color:#484e54;color:#f8f8f2}.hljs-comment{color:#60615d}.hljs-tag{color:#c0c0bd}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#f8f8f2}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f11235}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ff9505}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffb627}.hljs-strong{font-weight:700;color:#ffb627}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#02d849}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#0dd9d6}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#00a6fb}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#f15ee3}.hljs-emphasis{color:#f15ee3;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b27701}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/humanoid-light.min.css b/src/app/resources/assets/highlight/styles/base16/humanoid-light.min.css new file mode 100644 index 0000000..4e3b7ca --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/humanoid-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Humanoid light + Author: Thomas (tasmo) Friese + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#232629;background:#f8f8f2}.hljs ::selection,.hljs::selection{background-color:#deded8;color:#232629}.hljs-comment{color:#c0c0bd}.hljs-tag{color:#60615d}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#232629}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#b0151a}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ff3d00}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffb627}.hljs-strong{font-weight:700;color:#ffb627}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#388e3c}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#008e8e}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#0082c9}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#700f98}.hljs-emphasis{color:#700f98;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b27701}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/ia-dark.min.css b/src/app/resources/assets/highlight/styles/base16/ia-dark.min.css new file mode 100644 index 0000000..b80fad4 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/ia-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: iA Dark + Author: iA Inc. (modified by aramisgithub) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#ccc;background:#1a1a1a}.hljs ::selection,.hljs::selection{background-color:#1d414d;color:#ccc}.hljs-comment{color:#767676}.hljs-tag{color:#b8b8b8}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#ccc}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d88568}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d86868}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#b99353}.hljs-strong{font-weight:700;color:#b99353}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#83a471}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#7c9cae}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#8eccdd}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b98eb2}.hljs-emphasis{color:#b98eb2;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#8b6c37}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/ia-light.min.css b/src/app/resources/assets/highlight/styles/base16/ia-light.min.css new file mode 100644 index 0000000..8a33ab7 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/ia-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: iA Light + Author: iA Inc. (modified by aramisgithub) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#181818;background:#f6f6f6}.hljs ::selection,.hljs::selection{background-color:#bde5f2;color:#181818}.hljs-comment{color:#898989}.hljs-tag{color:#767676}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#181818}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#9c5a02}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#c43e18}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#c48218}.hljs-strong{font-weight:700;color:#c48218}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#38781c}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#2d6bb1}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#48bac2}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a94598}.hljs-emphasis{color:#a94598;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#8b6c37}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/icy-dark.min.css b/src/app/resources/assets/highlight/styles/base16/icy-dark.min.css new file mode 100644 index 0000000..25cf077 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/icy-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Icy Dark + Author: icyphox (https://icyphox.ga) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#095b67;background:#021012}.hljs ::selection,.hljs::selection{background-color:#041f23;color:#095b67}.hljs-comment{color:#052e34}.hljs-tag{color:#064048}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#095b67}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#16c1d9}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#b3ebf2}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#80deea}.hljs-strong{font-weight:700;color:#80deea}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#4dd0e1}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#26c6da}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#00bcd4}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#00acc1}.hljs-emphasis{color:#00acc1;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#0097a7}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/ir-black.min.css b/src/app/resources/assets/highlight/styles/base16/ir-black.min.css new file mode 100644 index 0000000..54afa45 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/ir-black.min.css @@ -0,0 +1,7 @@ +/*! + Theme: IR Black + Author: Timothée Poisot (http://timotheepoisot.fr) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#b5b3aa;background:#000}.hljs ::selection,.hljs::selection{background-color:#484844;color:#b5b3aa}.hljs-comment{color:#6c6c66}.hljs-tag{color:#918f88}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#b5b3aa}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ff6c60}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#e9c062}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffffb6}.hljs-strong{font-weight:700;color:#ffffb6}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a8ff60}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#c6c5fe}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#96cbfe}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ff73fd}.hljs-emphasis{color:#ff73fd;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b18a3d}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/isotope.min.css b/src/app/resources/assets/highlight/styles/base16/isotope.min.css new file mode 100644 index 0000000..ef27862 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/isotope.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Isotope + Author: Jan T. Sott + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d0d0d0;background:#000}.hljs ::selection,.hljs::selection{background-color:#606060;color:#d0d0d0}.hljs-comment{color:grey}.hljs-tag{color:silver}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d0d0d0}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:red}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f90}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f09}.hljs-strong{font-weight:700;color:#f09}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#3f0}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#0ff}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#06f}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c0f}.hljs-emphasis{color:#c0f;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#30f}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/kimber.min.css b/src/app/resources/assets/highlight/styles/base16/kimber.min.css new file mode 100644 index 0000000..f2c29f4 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/kimber.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Kimber + Author: Mishka Nguyen (https://github.com/akhsiM) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#dedee7;background:#222}.hljs ::selection,.hljs::selection{background-color:#555d55;color:#dedee7}.hljs-comment{color:#644646}.hljs-tag{color:#5a5a5a}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#dedee7}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#c88c8c}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#476c88}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#d8b56d}.hljs-strong{font-weight:700;color:#d8b56d}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#99c899}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#78b4b4}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#537c9c}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#86cacd}.hljs-emphasis{color:#86cacd;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#704f4f}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/london-tube.min.css b/src/app/resources/assets/highlight/styles/base16/london-tube.min.css new file mode 100644 index 0000000..613ed64 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/london-tube.min.css @@ -0,0 +1,7 @@ +/*! + Theme: London Tube + Author: Jan T. Sott + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d9d8d8;background:#231f20}.hljs ::selection,.hljs::selection{background-color:#5a5758;color:#d9d8d8}.hljs-comment{color:#737171}.hljs-tag{color:#959ca1}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d9d8d8}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ee2e24}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f386a1}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffd204}.hljs-strong{font-weight:700;color:#ffd204}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#00853e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#85cebc}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#009ddc}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#98005d}.hljs-emphasis{color:#98005d;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b06110}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/macintosh.min.css b/src/app/resources/assets/highlight/styles/base16/macintosh.min.css new file mode 100644 index 0000000..a947f9c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/macintosh.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Macintosh + Author: Rebecca Bettencourt (http://www.kreativekorp.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:silver;background:#000}.hljs ::selection,.hljs::selection{background-color:#404040;color:silver}.hljs-comment,.hljs-tag{color:grey}.hljs-operator,.hljs-punctuation,.hljs-subst{color:silver}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#dd0907}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ff6403}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fbf305}.hljs-strong{font-weight:700;color:#fbf305}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#1fb714}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#02abea}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#0000d3}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#4700a5}.hljs-emphasis{color:#4700a5;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#90713a}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/marrakesh.min.css b/src/app/resources/assets/highlight/styles/base16/marrakesh.min.css new file mode 100644 index 0000000..3940e22 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/marrakesh.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Marrakesh + Author: Alexandre Gavioli (http://github.com/Alexx2/) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#948e48;background:#201602}.hljs ::selection,.hljs::selection{background-color:#5f5b17;color:#948e48}.hljs-comment{color:#6c6823}.hljs-tag{color:#86813b}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#948e48}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#c35359}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#b36144}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a88339}.hljs-strong{font-weight:700;color:#a88339}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#18974e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#75a738}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#477ca1}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#8868b3}.hljs-emphasis{color:#8868b3;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b3588e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/materia.min.css b/src/app/resources/assets/highlight/styles/base16/materia.min.css new file mode 100644 index 0000000..ceb7c0c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/materia.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Materia + Author: Defman21 + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#cdd3de;background:#263238}.hljs ::selection,.hljs::selection{background-color:#37474f;color:#cdd3de}.hljs-comment{color:#707880}.hljs-tag{color:#c9ccd3}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#cdd3de}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ec5f67}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ea9560}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fc0}.hljs-strong{font-weight:700;color:#fc0}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#8bd649}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#80cbc4}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#89ddff}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#82aaff}.hljs-emphasis{color:#82aaff;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#ec5f67}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/material-darker.min.css b/src/app/resources/assets/highlight/styles/base16/material-darker.min.css new file mode 100644 index 0000000..8e32102 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/material-darker.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Material Darker + Author: Nate Peterson + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#eff;background:#212121}.hljs ::selection,.hljs::selection{background-color:#353535;color:#eff}.hljs-comment{color:#4a4a4a}.hljs-tag{color:#b2ccd6}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#eff}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f07178}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f78c6c}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffcb6b}.hljs-strong{font-weight:700;color:#ffcb6b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#c3e88d}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#89ddff}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#82aaff}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c792ea}.hljs-emphasis{color:#c792ea;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#ff5370}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/material-lighter.min.css b/src/app/resources/assets/highlight/styles/base16/material-lighter.min.css new file mode 100644 index 0000000..bf84b5e --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/material-lighter.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Material Lighter + Author: Nate Peterson + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#80cbc4;background:#fafafa}.hljs ::selection,.hljs::selection{background-color:#cceae7;color:#80cbc4}.hljs-comment{color:#ccd7da}.hljs-tag{color:#8796b0}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#80cbc4}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ff5370}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f76d47}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffb62c}.hljs-strong{font-weight:700;color:#ffb62c}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#91b859}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#39adb5}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#6182b8}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#7c4dff}.hljs-emphasis{color:#7c4dff;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#e53935}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/material-palenight.min.css b/src/app/resources/assets/highlight/styles/base16/material-palenight.min.css new file mode 100644 index 0000000..901eb09 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/material-palenight.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Material Palenight + Author: Nate Peterson + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#959dcb;background:#292d3e}.hljs ::selection,.hljs::selection{background-color:#32374d;color:#959dcb}.hljs-comment{color:#676e95}.hljs-tag{color:#8796b0}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#959dcb}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f07178}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f78c6c}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffcb6b}.hljs-strong{font-weight:700;color:#ffcb6b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#c3e88d}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#89ddff}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#82aaff}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c792ea}.hljs-emphasis{color:#c792ea;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#ff5370}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/material-vivid.min.css b/src/app/resources/assets/highlight/styles/base16/material-vivid.min.css new file mode 100644 index 0000000..cadaf26 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/material-vivid.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Material Vivid + Author: joshyrobot + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#80868b;background:#202124}.hljs ::selection,.hljs::selection{background-color:#323639;color:#80868b}.hljs-comment{color:#44464d}.hljs-tag{color:#676c71}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#80868b}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f44336}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ff9800}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffeb3b}.hljs-strong{font-weight:700;color:#ffeb3b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#00e676}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#00bcd4}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#2196f3}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#673ab7}.hljs-emphasis{color:#673ab7;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#8d6e63}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/material.min.css b/src/app/resources/assets/highlight/styles/base16/material.min.css new file mode 100644 index 0000000..90c3de9 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/material.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Material + Author: Nate Peterson + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#eff;background:#263238}.hljs ::selection,.hljs::selection{background-color:#314549;color:#eff}.hljs-comment{color:#546e7a}.hljs-tag{color:#b2ccd6}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#eff}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f07178}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f78c6c}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffcb6b}.hljs-strong{font-weight:700;color:#ffcb6b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#c3e88d}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#89ddff}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#82aaff}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c792ea}.hljs-emphasis{color:#c792ea;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#ff5370}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/mellow-purple.min.css b/src/app/resources/assets/highlight/styles/base16/mellow-purple.min.css new file mode 100644 index 0000000..be9fd92 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/mellow-purple.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Mellow Purple + Author: gidsi + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#fef;background:#1e0528}.hljs ::selection,.hljs::selection{background-color:#331354;color:#fef}.hljs-comment{color:#320f55}.hljs-tag{color:#873582}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#fef}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#00d9e9}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#aa00a3}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#955ae7}.hljs-strong{font-weight:700;color:#955ae7}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#05cb0d}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#b900b1}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#550068}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#8991bb}.hljs-emphasis{color:#8991bb;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#4d6fff}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/mexico-light.min.css b/src/app/resources/assets/highlight/styles/base16/mexico-light.min.css new file mode 100644 index 0000000..13747e5 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/mexico-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Mexico Light + Author: Sheldon Johnson + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383838;background:#f8f8f8}.hljs ::selection,.hljs::selection{background-color:#d8d8d8;color:#383838}.hljs-comment{color:#b8b8b8}.hljs-tag{color:#585858}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#383838}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ab4642}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#dc9656}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f79a0e}.hljs-strong{font-weight:700;color:#f79a0e}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#538947}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#4b8093}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#7cafc2}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#96609e}.hljs-emphasis{color:#96609e;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#a16946}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/mocha.min.css b/src/app/resources/assets/highlight/styles/base16/mocha.min.css new file mode 100644 index 0000000..bc1f3bf --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/mocha.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Mocha + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d0c8c6;background:#3b3228}.hljs ::selection,.hljs::selection{background-color:#645240;color:#d0c8c6}.hljs-comment{color:#7e705a}.hljs-tag{color:#b8afad}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d0c8c6}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#cb6077}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d28b71}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f4bc87}.hljs-strong{font-weight:700;color:#f4bc87}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#beb55b}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#7bbda4}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#8ab3b5}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a89bb9}.hljs-emphasis{color:#a89bb9;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#bb9584}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/monokai.min.css b/src/app/resources/assets/highlight/styles/base16/monokai.min.css new file mode 100644 index 0000000..8aacf00 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/monokai.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Monokai + Author: Wimer Hazenberg (http://www.monokai.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#f8f8f2;background:#272822}.hljs ::selection,.hljs::selection{background-color:#49483e;color:#f8f8f2}.hljs-comment{color:#75715e}.hljs-tag{color:#a59f85}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#f8f8f2}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f92672}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fd971f}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f4bf75}.hljs-strong{font-weight:700;color:#f4bf75}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a6e22e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#a1efe4}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#66d9ef}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ae81ff}.hljs-emphasis{color:#ae81ff;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c63}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/nebula.min.css b/src/app/resources/assets/highlight/styles/base16/nebula.min.css new file mode 100644 index 0000000..17de036 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/nebula.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Nebula + Author: Gabriel Fontes (https://github.com/Misterio77) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a4a6a9;background:#22273b}.hljs ::selection,.hljs::selection{background-color:#5a8380;color:#a4a6a9}.hljs-comment{color:#6e6f72}.hljs-tag{color:#87888b}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a4a6a9}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#777abc}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#94929e}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#4f9062}.hljs-strong{font-weight:700;color:#4f9062}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#6562a8}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#226f68}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#4d6bb6}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#716cae}.hljs-emphasis{color:#716cae;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#8c70a7}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/nord.min.css b/src/app/resources/assets/highlight/styles/base16/nord.min.css new file mode 100644 index 0000000..508ae85 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/nord.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Nord + Author: arcticicestudio + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#e5e9f0;background:#2e3440}.hljs ::selection,.hljs::selection{background-color:#434c5e;color:#e5e9f0}.hljs-comment{color:#4c566a}.hljs-tag{color:#d8dee9}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#e5e9f0}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#bf616a}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d08770}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ebcb8b}.hljs-strong{font-weight:700;color:#ebcb8b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a3be8c}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#88c0d0}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#81a1c1}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b48ead}.hljs-emphasis{color:#b48ead;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#5e81ac}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/nova.min.css b/src/app/resources/assets/highlight/styles/base16/nova.min.css new file mode 100644 index 0000000..5b9a408 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/nova.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Nova + Author: George Essig (https://github.com/gessig), Trevor D. Miller (https://trevordmiller.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c5d4dd;background:#3c4c55}.hljs ::selection,.hljs::selection{background-color:#6a7d89;color:#c5d4dd}.hljs-comment,.hljs-tag{color:#899ba6}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c5d4dd}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#83afe5}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#7fc1ca}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a8ce93}.hljs-strong{font-weight:700;color:#a8ce93}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#7fc1ca}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#f2c38f}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#83afe5}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#9a93e1}.hljs-emphasis{color:#9a93e1;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#f2c38f}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/ocean.min.css b/src/app/resources/assets/highlight/styles/base16/ocean.min.css new file mode 100644 index 0000000..9127e53 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/ocean.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Ocean + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c0c5ce;background:#2b303b}.hljs ::selection,.hljs::selection{background-color:#4f5b66;color:#c0c5ce}.hljs-comment{color:#65737e}.hljs-tag{color:#a7adba}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c0c5ce}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#bf616a}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d08770}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ebcb8b}.hljs-strong{font-weight:700;color:#ebcb8b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a3be8c}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#96b5b4}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#8fa1b3}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b48ead}.hljs-emphasis{color:#b48ead;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#ab7967}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/oceanicnext.min.css b/src/app/resources/assets/highlight/styles/base16/oceanicnext.min.css new file mode 100644 index 0000000..627c14b --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/oceanicnext.min.css @@ -0,0 +1,7 @@ +/*! + Theme: OceanicNext + Author: https://github.com/voronianski/oceanic-next-color-scheme + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c0c5ce;background:#1b2b34}.hljs ::selection,.hljs::selection{background-color:#4f5b66;color:#c0c5ce}.hljs-comment{color:#65737e}.hljs-tag{color:#a7adba}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c0c5ce}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ec5f67}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f99157}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fac863}.hljs-strong{font-weight:700;color:#fac863}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#99c794}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#5fb3b3}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#69c}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c594c5}.hljs-emphasis{color:#c594c5;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#ab7967}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/one-light.min.css b/src/app/resources/assets/highlight/styles/base16/one-light.min.css new file mode 100644 index 0000000..63f57cb --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/one-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: One Light + Author: Daniel Pfeifer (http://github.com/purpleKarrot) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383a42;background:#fafafa}.hljs ::selection,.hljs::selection{background-color:#e5e5e6;color:#383a42}.hljs-comment{color:#a0a1a7}.hljs-tag{color:#696c77}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#383a42}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ca1243}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d75f00}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#c18401}.hljs-strong{font-weight:700;color:#c18401}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#50a14f}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#0184bc}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#4078f2}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a626a4}.hljs-emphasis{color:#a626a4;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#986801}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/onedark.min.css b/src/app/resources/assets/highlight/styles/base16/onedark.min.css new file mode 100644 index 0000000..1b8c6b7 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/onedark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: OneDark + Author: Lalit Magant (http://github.com/tilal6991) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs ::selection,.hljs::selection{background-color:#3e4451;color:#abb2bf}.hljs-comment{color:#545862}.hljs-tag{color:#565c64}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#abb2bf}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#e06c75}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d19a66}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#e5c07b}.hljs-strong{font-weight:700;color:#e5c07b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#98c379}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#56b6c2}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#61afef}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c678dd}.hljs-emphasis{color:#c678dd;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#be5046}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/outrun-dark.min.css b/src/app/resources/assets/highlight/styles/base16/outrun-dark.min.css new file mode 100644 index 0000000..22995a1 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/outrun-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Outrun Dark + Author: Hugo Delahousse (http://github.com/hugodelahousse/) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d0d0fa;background:#00002a}.hljs ::selection,.hljs::selection{background-color:#30305a;color:#d0d0fa}.hljs-comment{color:#50507a}.hljs-tag{color:#b0b0da}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d0d0fa}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ff4242}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fc8d28}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f3e877}.hljs-strong{font-weight:700;color:#f3e877}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#59f176}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#0ef0f0}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#66b0ff}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#f10596}.hljs-emphasis{color:#f10596;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#f003ef}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/papercolor-dark.min.css b/src/app/resources/assets/highlight/styles/base16/papercolor-dark.min.css new file mode 100644 index 0000000..c35d7c7 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/papercolor-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: PaperColor Dark + Author: Jon Leopard (http://github.com/jonleopard) based on PaperColor Theme (https://github.com/NLKNguyen/papercolor-theme) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:grey;background:#1c1c1c}.hljs ::selection,.hljs::selection{background-color:#5faf00;color:grey}.hljs-comment{color:#d7af5f}.hljs-tag{color:#5fafd7}.hljs-operator,.hljs-punctuation,.hljs-subst{color:grey}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#585858}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#5faf5f}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#afd700}.hljs-strong{font-weight:700;color:#afd700}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#af87d7}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#ffaf00}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#ff5faf}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#00afaf}.hljs-emphasis{color:#00afaf;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#5f8787}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/papercolor-light.min.css b/src/app/resources/assets/highlight/styles/base16/papercolor-light.min.css new file mode 100644 index 0000000..e23b616 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/papercolor-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: PaperColor Light + Author: Jon Leopard (http://github.com/jonleopard) based on PaperColor Theme (https://github.com/NLKNguyen/papercolor-theme) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#444;background:#eee}.hljs ::selection,.hljs::selection{background-color:#008700;color:#444}.hljs-comment{color:#5f8700}.hljs-tag{color:#0087af}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#444}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#bcbcbc}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d70000}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#d70087}.hljs-strong{font-weight:700;color:#d70087}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#8700af}.hljs-attribute,.hljs-built_in,.hljs-doctag,.hljs-function .hljs-title,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#d75f00}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#005faf}.hljs-emphasis{color:#005faf;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#005f87}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/paraiso.min.css b/src/app/resources/assets/highlight/styles/base16/paraiso.min.css new file mode 100644 index 0000000..135fcd2 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/paraiso.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Paraiso + Author: Jan T. Sott + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a39e9b;background:#2f1e2e}.hljs ::selection,.hljs::selection{background-color:#4f424c;color:#a39e9b}.hljs-comment{color:#776e71}.hljs-tag{color:#8d8687}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a39e9b}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ef6155}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f99b15}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fec418}.hljs-strong{font-weight:700;color:#fec418}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#48b685}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#5bc4bf}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#06b6ef}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#815ba4}.hljs-emphasis{color:#815ba4;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#e96ba8}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/pasque.min.css b/src/app/resources/assets/highlight/styles/base16/pasque.min.css new file mode 100644 index 0000000..e4c2672 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/pasque.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Pasque + Author: Gabriel Fontes (https://github.com/Misterio77) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#dedcdf;background:#271c3a}.hljs ::selection,.hljs::selection{background-color:#3e2d5c;color:#dedcdf}.hljs-comment{color:#5d5766}.hljs-tag{color:#bebcbf}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#dedcdf}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#a92258}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#918889}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#804ead}.hljs-strong{font-weight:700;color:#804ead}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#c6914b}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#7263aa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#8e7dc6}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#953b9d}.hljs-emphasis{color:#953b9d;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#59325c}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/phd.min.css b/src/app/resources/assets/highlight/styles/base16/phd.min.css new file mode 100644 index 0000000..b5f9fea --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/phd.min.css @@ -0,0 +1,7 @@ +/*! + Theme: PhD + Author: Hennig Hasemann (http://leetless.de/vim.html) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#b8bbc2;background:#061229}.hljs ::selection,.hljs::selection{background-color:#4d5666;color:#b8bbc2}.hljs-comment{color:#717885}.hljs-tag{color:#9a99a3}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#b8bbc2}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d07346}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f0a000}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fbd461}.hljs-strong{font-weight:700;color:#fbd461}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#99bf52}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#72b9bf}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#5299bf}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#9989cc}.hljs-emphasis{color:#9989cc;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b08060}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/pico.min.css b/src/app/resources/assets/highlight/styles/base16/pico.min.css new file mode 100644 index 0000000..3765998 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/pico.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Pico + Author: PICO-8 (http://www.lexaloffle.com/pico-8.php) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#5f574f;background:#000}.hljs ::selection,.hljs::selection{background-color:#7e2553;color:#5f574f}.hljs-comment{color:#008751}.hljs-tag{color:#ab5236}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#5f574f}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ff004d}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ffa300}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fff024}.hljs-strong{font-weight:700;color:#fff024}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#00e756}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#29adff}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#83769c}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ff77a8}.hljs-emphasis{color:#ff77a8;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#fca}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/pop.min.css b/src/app/resources/assets/highlight/styles/base16/pop.min.css new file mode 100644 index 0000000..22b488a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/pop.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Pop + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d0d0d0;background:#000}.hljs ::selection,.hljs::selection{background-color:#303030;color:#d0d0d0}.hljs-comment{color:#505050}.hljs-tag{color:#b0b0b0}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d0d0d0}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#eb008a}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f29333}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f8ca12}.hljs-strong{font-weight:700;color:#f8ca12}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#37b349}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#0ab}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#0e5a94}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b31e8d}.hljs-emphasis{color:#b31e8d;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#7a2d00}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/porple.min.css b/src/app/resources/assets/highlight/styles/base16/porple.min.css new file mode 100644 index 0000000..77aac4c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/porple.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Porple + Author: Niek den Breeje (https://github.com/AuditeMarlow) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d8d8d8;background:#292c36}.hljs ::selection,.hljs::selection{background-color:#474160;color:#d8d8d8}.hljs-comment{color:#65568a}.hljs-tag{color:#b8b8b8}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d8d8d8}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f84547}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d28e5d}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#efa16b}.hljs-strong{font-weight:700;color:#efa16b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#95c76f}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#64878f}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#8485ce}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b74989}.hljs-emphasis{color:#b74989;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#986841}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/qualia.min.css b/src/app/resources/assets/highlight/styles/base16/qualia.min.css new file mode 100644 index 0000000..6b333ba --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/qualia.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Qualia + Author: isaacwhanson + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:silver;background:#101010}.hljs ::selection,.hljs::selection{background-color:#454545;color:silver}.hljs-comment{color:#454545}.hljs-tag{color:grey}.hljs-operator,.hljs-punctuation,.hljs-subst{color:silver}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#efa6a2}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#a3b8ef}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#e6a3dc}.hljs-strong{font-weight:700;color:#e6a3dc}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#80c990}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#c8c874}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#50cacd}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#e0af85}.hljs-emphasis{color:#e0af85;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:grey}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/railscasts.min.css b/src/app/resources/assets/highlight/styles/base16/railscasts.min.css new file mode 100644 index 0000000..835bace --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/railscasts.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Railscasts + Author: Ryan Bates (http://railscasts.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#e6e1dc;background:#2b2b2b}.hljs ::selection,.hljs::selection{background-color:#3a4055;color:#e6e1dc}.hljs-comment{color:#5a647e}.hljs-tag{color:#d4cfc9}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#e6e1dc}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#da4939}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#cc7833}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffc66d}.hljs-strong{font-weight:700;color:#ffc66d}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a5c261}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#519f50}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#6d9cbe}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b6b3eb}.hljs-emphasis{color:#b6b3eb;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#bc9458}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/rebecca.min.css b/src/app/resources/assets/highlight/styles/base16/rebecca.min.css new file mode 100644 index 0000000..c7c3d77 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/rebecca.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Rebecca + Author: Victor Borja (http://github.com/vic) based on Rebecca Theme (http://github.com/vic/rebecca-theme) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#f1eff8;background:#292a44}.hljs ::selection,.hljs::selection{background-color:#383a62;color:#f1eff8}.hljs-comment{color:#669}.hljs-tag{color:#a0a0c5}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#f1eff8}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#a0a0c5}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#efe4a1}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ae81ff}.hljs-strong{font-weight:700;color:#ae81ff}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#6dfedf}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#8eaee0}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#2de0a7}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#7aa5ff}.hljs-emphasis{color:#7aa5ff;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#ff79c6}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/ros-pine-dawn.min.css b/src/app/resources/assets/highlight/styles/base16/ros-pine-dawn.min.css new file mode 100644 index 0000000..a877d23 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/ros-pine-dawn.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Rosé Pine Dawn + Author: Emilia Dunfelt + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#575279;background:#faf4ed}.hljs ::selection,.hljs::selection{background-color:#f2e9de;color:#575279}.hljs-comment{color:#9893a5}.hljs-tag{color:#6e6a86}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#575279}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#1f1d2e}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#b4637a}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ea9d34}.hljs-strong{font-weight:700;color:#ea9d34}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#d7827e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#286983}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#56949f}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#907aa9}.hljs-emphasis{color:#907aa9;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c5c3ce}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/ros-pine-moon.min.css b/src/app/resources/assets/highlight/styles/base16/ros-pine-moon.min.css new file mode 100644 index 0000000..eab4a50 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/ros-pine-moon.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Rosé Pine Moon + Author: Emilia Dunfelt + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#e0def4;background:#232136}.hljs ::selection,.hljs::selection{background-color:#393552;color:#e0def4}.hljs-comment{color:#59546d}.hljs-tag{color:#817c9c}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#e0def4}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ecebf0}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#eb6f92}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f6c177}.hljs-strong{font-weight:700;color:#f6c177}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#ea9a97}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#3e8fb0}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#9ccfd8}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c4a7e7}.hljs-emphasis{color:#c4a7e7;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b9b9bc}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/ros-pine.min.css b/src/app/resources/assets/highlight/styles/base16/ros-pine.min.css new file mode 100644 index 0000000..ddc4e69 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/ros-pine.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Rosé Pine + Author: Emilia Dunfelt + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#e0def4;background:#191724}.hljs ::selection,.hljs::selection{background-color:#26233a;color:#e0def4}.hljs-comment{color:#555169}.hljs-tag{color:#6e6a86}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#e0def4}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#e2e1e7}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#eb6f92}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f6c177}.hljs-strong{font-weight:700;color:#f6c177}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#ebbcba}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#31748f}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#9ccfd8}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c4a7e7}.hljs-emphasis{color:#c4a7e7;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#e5e5e5}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/sagelight.min.css b/src/app/resources/assets/highlight/styles/base16/sagelight.min.css new file mode 100644 index 0000000..f0dc927 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/sagelight.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Sagelight + Author: Carter Veldhuizen + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383838;background:#f8f8f8}.hljs ::selection,.hljs::selection{background-color:#d8d8d8;color:#383838}.hljs-comment{color:#b8b8b8}.hljs-tag{color:#585858}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#383838}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#fa8480}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ffaa61}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffdc61}.hljs-strong{font-weight:700;color:#ffdc61}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a0d2c8}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#a2d6f5}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#a0a7d2}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c8a0d2}.hljs-emphasis{color:#c8a0d2;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d2b2a0}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/sandcastle.min.css b/src/app/resources/assets/highlight/styles/base16/sandcastle.min.css new file mode 100644 index 0000000..601dc21 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/sandcastle.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Sandcastle + Author: George Essig (https://github.com/gessig) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a89984;background:#282c34}.hljs ::selection,.hljs::selection{background-color:#3e4451;color:#a89984}.hljs-comment{color:#665c54}.hljs-tag{color:#928374}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a89984}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#83a598}.hljs-attr,.hljs-class .hljs-title,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-title,.hljs-title.class_,.hljs-variable.constant_{color:#a07e3b}.hljs-strong{font-weight:700;color:#a07e3b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#528b8b}.hljs-attribute,.hljs-built_in,.hljs-doctag,.hljs-function .hljs-title,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#83a598}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#d75f5f}.hljs-emphasis{color:#d75f5f;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#a87322}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/seti-ui.min.css b/src/app/resources/assets/highlight/styles/base16/seti-ui.min.css new file mode 100644 index 0000000..fa3347e --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/seti-ui.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Seti UI + Author: + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d6d6d6;background:#151718}.hljs ::selection,.hljs::selection{background-color:#3b758c;color:#d6d6d6}.hljs-comment{color:#41535b}.hljs-tag{color:#43a5d5}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d6d6d6}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#cd3f45}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#db7b55}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#e6cd69}.hljs-strong{font-weight:700;color:#e6cd69}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#9fca56}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#55dbbe}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#55b5db}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a074c4}.hljs-emphasis{color:#a074c4;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#8a553f}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/shapeshifter.min.css b/src/app/resources/assets/highlight/styles/base16/shapeshifter.min.css new file mode 100644 index 0000000..a3e83b5 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/shapeshifter.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Shapeshifter + Author: Tyler Benziger (http://tybenz.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#102015;background:#f9f9f9}.hljs ::selection,.hljs::selection{background-color:#ababab;color:#102015}.hljs-comment{color:#555}.hljs-tag{color:#343434}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#102015}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#e92f2f}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#e09448}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#dddd13}.hljs-strong{font-weight:700;color:#dddd13}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#0ed839}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#23edda}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#3b48e3}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#f996e2}.hljs-emphasis{color:#f996e2;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#69542d}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/silk-dark.min.css b/src/app/resources/assets/highlight/styles/base16/silk-dark.min.css new file mode 100644 index 0000000..1315a0b --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/silk-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Silk Dark + Author: Gabriel Fontes (https://github.com/Misterio77) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c7dbdd;background:#0e3c46}.hljs ::selection,.hljs::selection{background-color:#2a5054;color:#c7dbdd}.hljs-comment{color:#587073}.hljs-tag{color:#9dc8cd}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c7dbdd}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#fb6953}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fcab74}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fce380}.hljs-strong{font-weight:700;color:#fce380}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#73d8ad}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#3fb2b9}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#46bddd}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#756b8a}.hljs-emphasis{color:#756b8a;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#9b647b}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/silk-light.min.css b/src/app/resources/assets/highlight/styles/base16/silk-light.min.css new file mode 100644 index 0000000..54b0058 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/silk-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Silk Light + Author: Gabriel Fontes (https://github.com/Misterio77) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#385156;background:#e9f1ef}.hljs ::selection,.hljs::selection{background-color:#90b7b6;color:#385156}.hljs-comment{color:#5c787b}.hljs-tag{color:#4b5b5f}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#385156}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#cf432e}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d27f46}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#cfad25}.hljs-strong{font-weight:700;color:#cfad25}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#6ca38c}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#329ca2}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#39aac9}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#6e6582}.hljs-emphasis{color:#6e6582;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#865369}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/snazzy.min.css b/src/app/resources/assets/highlight/styles/base16/snazzy.min.css new file mode 100644 index 0000000..2241752 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/snazzy.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Snazzy + Author: Chawye Hsu (https://github.com/chawyehsu) based on Hyper Snazzy Theme (https://github.com/sindresorhus/hyper-snazzy) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#e2e4e5;background:#282a36}.hljs ::selection,.hljs::selection{background-color:#43454f;color:#e2e4e5}.hljs-comment{color:#78787e}.hljs-tag{color:#a5a5a9}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#e2e4e5}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ff5c57}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ff9f43}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f3f99d}.hljs-strong{font-weight:700;color:#f3f99d}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#5af78e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#9aedfe}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#57c7ff}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ff6ac1}.hljs-emphasis{color:#ff6ac1;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b2643c}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/solar-flare-light.min.css b/src/app/resources/assets/highlight/styles/base16/solar-flare-light.min.css new file mode 100644 index 0000000..4b6a98f --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/solar-flare-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Solar Flare Light + Author: Chuck Harmston (https://chuck.harmston.ch) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#586875;background:#f5f7fa}.hljs ::selection,.hljs::selection{background-color:#a6afb8;color:#586875}.hljs-comment{color:#85939e}.hljs-tag{color:#667581}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#586875}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ef5253}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#e66b2b}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#e4b51c}.hljs-strong{font-weight:700;color:#e4b51c}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#7cc844}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#52cbb0}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#33b5e1}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a363d5}.hljs-emphasis{color:#a363d5;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d73c9a}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/solar-flare.min.css b/src/app/resources/assets/highlight/styles/base16/solar-flare.min.css new file mode 100644 index 0000000..115fb97 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/solar-flare.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Solar Flare + Author: Chuck Harmston (https://chuck.harmston.ch) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a6afb8;background:#18262f}.hljs ::selection,.hljs::selection{background-color:#586875;color:#a6afb8}.hljs-comment{color:#667581}.hljs-tag{color:#85939e}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a6afb8}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ef5253}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#e66b2b}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#e4b51c}.hljs-strong{font-weight:700;color:#e4b51c}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#7cc844}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#52cbb0}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#33b5e1}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a363d5}.hljs-emphasis{color:#a363d5;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d73c9a}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/solarized-dark.min.css b/src/app/resources/assets/highlight/styles/base16/solarized-dark.min.css new file mode 100644 index 0000000..e2b1535 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/solarized-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Solarized Dark + Author: Ethan Schoonover (modified by aramisgithub) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#93a1a1;background:#002b36}.hljs ::selection,.hljs::selection{background-color:#586e75;color:#93a1a1}.hljs-comment{color:#657b83}.hljs-tag{color:#839496}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#93a1a1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#dc322f}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#cb4b16}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#b58900}.hljs-strong{font-weight:700;color:#b58900}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#859900}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#2aa198}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#268bd2}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#6c71c4}.hljs-emphasis{color:#6c71c4;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d33682}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/solarized-light.min.css b/src/app/resources/assets/highlight/styles/base16/solarized-light.min.css new file mode 100644 index 0000000..67a590b --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/solarized-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Solarized Light + Author: Ethan Schoonover (modified by aramisgithub) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#586e75;background:#fdf6e3}.hljs ::selection,.hljs::selection{background-color:#93a1a1;color:#586e75}.hljs-comment{color:#839496}.hljs-tag{color:#657b83}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#586e75}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#dc322f}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#cb4b16}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#b58900}.hljs-strong{font-weight:700;color:#b58900}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#859900}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#2aa198}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#268bd2}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#6c71c4}.hljs-emphasis{color:#6c71c4;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d33682}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/spacemacs.min.css b/src/app/resources/assets/highlight/styles/base16/spacemacs.min.css new file mode 100644 index 0000000..ba8f7d9 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/spacemacs.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Spacemacs + Author: Nasser Alshammari (https://github.com/nashamri/spacemacs-theme) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a3a3a3;background:#1f2022}.hljs ::selection,.hljs::selection{background-color:#444155;color:#a3a3a3}.hljs-comment{color:#585858}.hljs-tag{color:#b8b8b8}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a3a3a3}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f2241f}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:orange}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#b1951d}.hljs-strong{font-weight:700;color:#b1951d}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#67b11d}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#2d9574}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#4f97d7}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a31db1}.hljs-emphasis{color:#a31db1;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b03060}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/summercamp.min.css b/src/app/resources/assets/highlight/styles/base16/summercamp.min.css new file mode 100644 index 0000000..931b035 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/summercamp.min.css @@ -0,0 +1,7 @@ +/*! + Theme: summercamp + Author: zoe firi (zoefiri.github.io) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#736e55;background:#1c1810}.hljs ::selection,.hljs::selection{background-color:#3a3527;color:#736e55}.hljs-comment{color:#504b38}.hljs-tag{color:#5f5b45}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#736e55}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#e35142}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fba11b}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f2ff27}.hljs-strong{font-weight:700;color:#f2ff27}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#5ceb5a}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#5aebbc}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#489bf0}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ff8080}.hljs-emphasis{color:#ff8080;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#f69be7}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/summerfruit-dark.min.css b/src/app/resources/assets/highlight/styles/base16/summerfruit-dark.min.css new file mode 100644 index 0000000..8ba6c88 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/summerfruit-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Summerfruit Dark + Author: Christopher Corley (http://christop.club/) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d0d0d0;background:#151515}.hljs ::selection,.hljs::selection{background-color:#303030;color:#d0d0d0}.hljs-comment{color:#505050}.hljs-tag{color:#b0b0b0}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d0d0d0}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ff0086}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fd8900}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#aba800}.hljs-strong{font-weight:700;color:#aba800}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#00c918}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#1faaaa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#3777e6}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ad00a1}.hljs-emphasis{color:#ad00a1;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c63}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/summerfruit-light.min.css b/src/app/resources/assets/highlight/styles/base16/summerfruit-light.min.css new file mode 100644 index 0000000..958eda3 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/summerfruit-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Summerfruit Light + Author: Christopher Corley (http://christop.club/) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#101010;background:#fff}.hljs ::selection,.hljs::selection{background-color:#d0d0d0;color:#101010}.hljs-comment{color:#b0b0b0}.hljs-tag{color:#000}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#101010}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ff0086}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fd8900}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#aba800}.hljs-strong{font-weight:700;color:#aba800}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#00c918}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#1faaaa}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#3777e6}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ad00a1}.hljs-emphasis{color:#ad00a1;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c63}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/synth-midnight-terminal-dark.min.css b/src/app/resources/assets/highlight/styles/base16/synth-midnight-terminal-dark.min.css new file mode 100644 index 0000000..faa5d4d --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/synth-midnight-terminal-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Synth Midnight Terminal Dark + Author: Michaël Ball (http://github.com/michael-ball/) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c1c3c4;background:#050608}.hljs ::selection,.hljs::selection{background-color:#28292a;color:#c1c3c4}.hljs-comment{color:#474849}.hljs-tag{color:#a3a5a6}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#c1c3c4}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#b53b50}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ea770d}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#c9d364}.hljs-strong{font-weight:700;color:#c9d364}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#06ea61}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#42fff9}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#03aeff}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ea5ce2}.hljs-emphasis{color:#ea5ce2;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#cd6320}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/synth-midnight-terminal-light.min.css b/src/app/resources/assets/highlight/styles/base16/synth-midnight-terminal-light.min.css new file mode 100644 index 0000000..579a65f --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/synth-midnight-terminal-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Synth Midnight Terminal Light + Author: Michaël Ball (http://github.com/michael-ball/) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#28292a;background:#dddfe0}.hljs ::selection,.hljs::selection{background-color:#c1c3c4;color:#28292a}.hljs-comment{color:#a3a5a6}.hljs-tag{color:#474849}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#28292a}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#b53b50}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ea770d}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#c9d364}.hljs-strong{font-weight:700;color:#c9d364}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#06ea61}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#42fff9}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#03aeff}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ea5ce2}.hljs-emphasis{color:#ea5ce2;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#cd6320}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/tango.min.css b/src/app/resources/assets/highlight/styles/base16/tango.min.css new file mode 100644 index 0000000..d37318a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/tango.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Tango + Author: @Schnouki, based on the Tango Desktop Project + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d3d7cf;background:#2e3436}.hljs ::selection,.hljs::selection{background-color:#fce94f;color:#d3d7cf}.hljs-comment{color:#555753}.hljs-tag{color:#729fcf}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d3d7cf}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#c00}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ef2929}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#c4a000}.hljs-strong{font-weight:700;color:#c4a000}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#4e9a06}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#06989a}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#3465a4}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#75507b}.hljs-emphasis{color:#75507b;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#34e2e2}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/tender.min.css b/src/app/resources/assets/highlight/styles/base16/tender.min.css new file mode 100644 index 0000000..c72c7df --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/tender.min.css @@ -0,0 +1,7 @@ +/*! + Theme: tender + Author: Jacobo Tabernero (https://github/com/jacoborus/tender.vim) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#eee;background:#282828}.hljs ::selection,.hljs::selection{background-color:#484848;color:#eee}.hljs-comment{color:#4c4c4c}.hljs-tag{color:#b8b8b8}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#eee}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f43753}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#dc9656}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ffc24b}.hljs-strong{font-weight:700;color:#ffc24b}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#c9d05c}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#73cef4}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#b3deef}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#d3b987}.hljs-emphasis{color:#d3b987;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#a16946}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/tomorrow-night.min.css b/src/app/resources/assets/highlight/styles/base16/tomorrow-night.min.css new file mode 100644 index 0000000..a0b3f62 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/tomorrow-night.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Tomorrow Night + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#ccc;background:#2d2d2d}.hljs ::selection,.hljs::selection{background-color:#515151;color:#ccc}.hljs-comment{color:#999}.hljs-tag{color:#b4b7b4}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#ccc}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#f2777a}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f99157}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fc6}.hljs-strong{font-weight:700;color:#fc6}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#9c9}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#6cc}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#69c}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#c9c}.hljs-emphasis{color:#c9c;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#a3685a}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/tomorrow.min.css b/src/app/resources/assets/highlight/styles/base16/tomorrow.min.css new file mode 100644 index 0000000..5785f6e --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/tomorrow.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Tomorrow + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#4d4d4c;background:#fff}.hljs ::selection,.hljs::selection{background-color:#d6d6d6;color:#4d4d4c}.hljs-comment{color:#8e908c}.hljs-tag{color:#969896}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#4d4d4c}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#c82829}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f5871f}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#eab700}.hljs-strong{font-weight:700;color:#eab700}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#718c00}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#3e999f}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#4271ae}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#8959a8}.hljs-emphasis{color:#8959a8;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#a3685a}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/twilight.min.css b/src/app/resources/assets/highlight/styles/base16/twilight.min.css new file mode 100644 index 0000000..0a8f5f9 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/twilight.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Twilight + Author: David Hart (https://github.com/hartbit) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a7a7a7;background:#1e1e1e}.hljs ::selection,.hljs::selection{background-color:#464b50;color:#a7a7a7}.hljs-comment{color:#5f5a60}.hljs-tag{color:#838184}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a7a7a7}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#cf6a4c}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#cda869}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f9ee98}.hljs-strong{font-weight:700;color:#f9ee98}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#8f9d6a}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#afc4db}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#7587a6}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#9b859d}.hljs-emphasis{color:#9b859d;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#9b703f}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/unikitty-dark.min.css b/src/app/resources/assets/highlight/styles/base16/unikitty-dark.min.css new file mode 100644 index 0000000..752d90a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/unikitty-dark.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Unikitty Dark + Author: Josh W Lewis (@joshwlewis) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#bcbabe;background:#2e2a31}.hljs ::selection,.hljs::selection{background-color:#666369;color:#bcbabe}.hljs-comment{color:#838085}.hljs-tag{color:#9f9da2}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#bcbabe}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d8137f}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d65407}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#dc8a0e}.hljs-strong{font-weight:700;color:#dc8a0e}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#17ad98}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#149bda}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#796af5}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#bb60ea}.hljs-emphasis{color:#bb60ea;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c720ca}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/unikitty-light.min.css b/src/app/resources/assets/highlight/styles/base16/unikitty-light.min.css new file mode 100644 index 0000000..fe74653 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/unikitty-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Unikitty Light + Author: Josh W Lewis (@joshwlewis) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#6c696e;background:#fff}.hljs ::selection,.hljs::selection{background-color:#c4c3c5;color:#6c696e}.hljs-comment{color:#a7a5a8}.hljs-tag{color:#89878b}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#6c696e}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d8137f}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#d65407}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#dc8a0e}.hljs-strong{font-weight:700;color:#dc8a0e}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#17ad98}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#149bda}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#775dff}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#aa17e6}.hljs-emphasis{color:#aa17e6;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#e013d0}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/vulcan.min.css b/src/app/resources/assets/highlight/styles/base16/vulcan.min.css new file mode 100644 index 0000000..3c88968 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/vulcan.min.css @@ -0,0 +1,7 @@ +/*! + Theme: vulcan + Author: Andrey Varfolomeev + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#5b778c;background:#041523}.hljs ::selection,.hljs::selection{background-color:#003552;color:#5b778c}.hljs-comment{color:#7a5759}.hljs-tag{color:#6b6977}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#5b778c}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#818591}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#9198a3}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#adb4b9}.hljs-strong{font-weight:700;color:#adb4b9}.hljs-addition,.hljs-attribute,.hljs-built_in,.hljs-code,.hljs-doctag,.hljs-function .hljs-title,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp,.hljs-section,.hljs-string,.hljs-title.class_.inherited__,.hljs-title.function_,.ruby .hljs-property{color:#977d7c}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#9198a3}.hljs-emphasis{color:#9198a3;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#977d7c}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/windows-10-light.min.css b/src/app/resources/assets/highlight/styles/base16/windows-10-light.min.css new file mode 100644 index 0000000..b27b99f --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/windows-10-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Windows 10 Light + Author: Fergus Collins (https://github.com/C-Fergus) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#767676;background:#f2f2f2}.hljs ::selection,.hljs::selection{background-color:#d9d9d9;color:#767676}.hljs-comment{color:#ccc}.hljs-tag{color:#ababab}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#767676}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#c50f1f}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f9f1a5}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#c19c00}.hljs-strong{font-weight:700;color:#c19c00}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#13a10e}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#3a96dd}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#0037da}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#881798}.hljs-emphasis{color:#881798;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#16c60c}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/windows-10.min.css b/src/app/resources/assets/highlight/styles/base16/windows-10.min.css new file mode 100644 index 0000000..296b84c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/windows-10.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Windows 10 + Author: Fergus Collins (https://github.com/C-Fergus) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#ccc;background:#0c0c0c}.hljs ::selection,.hljs::selection{background-color:#535353;color:#ccc}.hljs-comment{color:#767676}.hljs-tag{color:#b9b9b9}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#ccc}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#e74856}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#c19c00}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f9f1a5}.hljs-strong{font-weight:700;color:#f9f1a5}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#16c60c}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#61d6d6}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#3b78ff}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b4009e}.hljs-emphasis{color:#b4009e;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#13a10e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/windows-95-light.min.css b/src/app/resources/assets/highlight/styles/base16/windows-95-light.min.css new file mode 100644 index 0000000..c30dd24 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/windows-95-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Windows 95 Light + Author: Fergus Collins (https://github.com/C-Fergus) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#545454;background:#fcfcfc}.hljs ::selection,.hljs::selection{background-color:#c4c4c4;color:#545454}.hljs-comment{color:#a8a8a8}.hljs-tag{color:#7e7e7e}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#545454}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#a80000}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fcfc54}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#a85400}.hljs-strong{font-weight:700;color:#a85400}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#00a800}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#00a8a8}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#0000a8}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#a800a8}.hljs-emphasis{color:#a800a8;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#54fc54}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/windows-95.min.css b/src/app/resources/assets/highlight/styles/base16/windows-95.min.css new file mode 100644 index 0000000..962d307 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/windows-95.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Windows 95 + Author: Fergus Collins (https://github.com/C-Fergus) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#a8a8a8;background:#000}.hljs ::selection,.hljs::selection{background-color:#383838;color:#a8a8a8}.hljs-comment{color:#545454}.hljs-tag{color:#7e7e7e}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#a8a8a8}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#fc5454}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#a85400}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fcfc54}.hljs-strong{font-weight:700;color:#fcfc54}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#54fc54}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#54fcfc}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#5454fc}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#fc54fc}.hljs-emphasis{color:#fc54fc;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#00a800}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/windows-high-contrast-light.min.css b/src/app/resources/assets/highlight/styles/base16/windows-high-contrast-light.min.css new file mode 100644 index 0000000..fb24f75 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/windows-high-contrast-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Windows High Contrast Light + Author: Fergus Collins (https://github.com/C-Fergus) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#545454;background:#fcfcfc}.hljs ::selection,.hljs::selection{background-color:#d4d4d4;color:#545454}.hljs-comment{color:silver}.hljs-tag{color:#7e7e7e}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#545454}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:maroon}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fcfc54}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:olive}.hljs-strong{font-weight:700;color:olive}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:green}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:teal}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:navy}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:purple}.hljs-emphasis{color:purple;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#54fc54}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/windows-high-contrast.min.css b/src/app/resources/assets/highlight/styles/base16/windows-high-contrast.min.css new file mode 100644 index 0000000..363f590 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/windows-high-contrast.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Windows High Contrast + Author: Fergus Collins (https://github.com/C-Fergus) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:silver;background:#000}.hljs ::selection,.hljs::selection{background-color:#383838;color:silver}.hljs-comment{color:#545454}.hljs-tag{color:#a2a2a2}.hljs-operator,.hljs-punctuation,.hljs-subst{color:silver}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#fc5454}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:olive}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#fcfc54}.hljs-strong{font-weight:700;color:#fcfc54}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#54fc54}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#54fcfc}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#5454fc}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#fc54fc}.hljs-emphasis{color:#fc54fc;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:green}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/windows-nt-light.min.css b/src/app/resources/assets/highlight/styles/base16/windows-nt-light.min.css new file mode 100644 index 0000000..4332edf --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/windows-nt-light.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Windows NT Light + Author: Fergus Collins (https://github.com/C-Fergus) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:grey;background:#fff}.hljs ::selection,.hljs::selection{background-color:#d5d5d5;color:grey}.hljs-comment{color:silver}.hljs-tag{color:#a0a0a0}.hljs-operator,.hljs-punctuation,.hljs-subst{color:grey}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:maroon}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ff0}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:olive}.hljs-strong{font-weight:700;color:olive}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:green}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:teal}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:navy}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:purple}.hljs-emphasis{color:purple;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#0f0}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/windows-nt.min.css b/src/app/resources/assets/highlight/styles/base16/windows-nt.min.css new file mode 100644 index 0000000..b37fdf5 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/windows-nt.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Windows NT + Author: Fergus Collins (https://github.com/C-Fergus) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:silver;background:#000}.hljs ::selection,.hljs::selection{background-color:#555;color:silver}.hljs-comment{color:grey}.hljs-tag{color:#a1a1a1}.hljs-operator,.hljs-punctuation,.hljs-subst{color:silver}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:red}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:olive}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#ff0}.hljs-strong{font-weight:700;color:#ff0}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#0f0}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#0ff}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#00f}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#f0f}.hljs-emphasis{color:#f0f;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:green}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/woodland.min.css b/src/app/resources/assets/highlight/styles/base16/woodland.min.css new file mode 100644 index 0000000..a83a68b --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/woodland.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Woodland + Author: Jay Cornwall (https://jcornwall.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#cabcb1;background:#231e18}.hljs ::selection,.hljs::selection{background-color:#48413a;color:#cabcb1}.hljs-comment{color:#9d8b70}.hljs-tag{color:#b4a490}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#cabcb1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d35c5c}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#ca7f32}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#e0ac16}.hljs-strong{font-weight:700;color:#e0ac16}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#b7ba53}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#6eb958}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#88a4d3}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#bb90e2}.hljs-emphasis{color:#bb90e2;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#b49368}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/xcode-dusk.min.css b/src/app/resources/assets/highlight/styles/base16/xcode-dusk.min.css new file mode 100644 index 0000000..7cf105a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/xcode-dusk.min.css @@ -0,0 +1,7 @@ +/*! + Theme: XCode Dusk + Author: Elsa Gonsiorowski (https://github.com/gonsie) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#939599;background:#282b35}.hljs ::selection,.hljs::selection{background-color:#53555d;color:#939599}.hljs-comment{color:#686a71}.hljs-tag{color:#7e8086}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#939599}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#b21889}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#786dc5}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#438288}.hljs-strong{font-weight:700;color:#438288}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#df0002}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#00a0be}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#790ead}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#b21889}.hljs-emphasis{color:#b21889;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c77c48}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/base16/zenburn.min.css b/src/app/resources/assets/highlight/styles/base16/zenburn.min.css new file mode 100644 index 0000000..a075f5f --- /dev/null +++ b/src/app/resources/assets/highlight/styles/base16/zenburn.min.css @@ -0,0 +1,7 @@ +/*! + Theme: Zenburn + Author: elnawe + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#dcdccc;background:#383838}.hljs ::selection,.hljs::selection{background-color:#606060;color:#dcdccc}.hljs-comment{color:#6f6f6f}.hljs-tag{color:grey}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#dcdccc}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#dca3a3}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#dfaf8f}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#e0cf9f}.hljs-strong{font-weight:700;color:#e0cf9f}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#5f7f5f}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#93e0e3}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#7cb8bb}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#dc8cc3}.hljs-emphasis{color:#dc8cc3;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#000}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/brown-paper.min.css b/src/app/resources/assets/highlight/styles/brown-paper.min.css new file mode 100644 index 0000000..6231e8a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/brown-paper.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#363c69;background:url(./brown-papersq.png) #b7a68e}.hljs-keyword,.hljs-literal,.hljs-selector-tag{color:#059}.hljs-addition,.hljs-attribute,.hljs-built_in,.hljs-bullet,.hljs-link,.hljs-name,.hljs-section,.hljs-string,.hljs-symbol,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type,.hljs-variable{color:#2c009f}.hljs-comment,.hljs-deletion,.hljs-meta,.hljs-quote{color:#802022}.hljs-doctag,.hljs-keyword,.hljs-literal,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-strong,.hljs-title,.hljs-type{font-weight:700}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/brown-papersq.png b/src/app/resources/assets/highlight/styles/brown-papersq.png new file mode 100644 index 0000000000000000000000000000000000000000..3813903dbf9fa7b1fb5bd11d9534c06667d9056f GIT binary patch literal 18198 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


G3S-EN>9CM!{YB*|;6wg-K3V?)eR((z#1 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 literal 0 HcmV?d00001 diff --git a/src/app/resources/assets/highlight/styles/codepen-embed.min.css b/src/app/resources/assets/highlight/styles/codepen-embed.min.css new file mode 100644 index 0000000..0d7dff6 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/codepen-embed.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#222;color:#fff}.hljs-comment,.hljs-quote{color:#777}.hljs-built_in,.hljs-bullet,.hljs-deletion,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-regexp,.hljs-symbol,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#ab875d}.hljs-attribute,.hljs-name,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-title,.hljs-type{color:#9b869b}.hljs-addition,.hljs-keyword,.hljs-selector-tag,.hljs-string{color:#8f9c6c}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/color-brewer.min.css b/src/app/resources/assets/highlight/styles/color-brewer.min.css new file mode 100644 index 0000000..1c677e3 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/color-brewer.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#000;background:#fff}.hljs-addition,.hljs-meta,.hljs-string,.hljs-symbol,.hljs-template-tag,.hljs-template-variable{color:#756bb1}.hljs-comment,.hljs-quote{color:#636363}.hljs-bullet,.hljs-link,.hljs-literal,.hljs-number,.hljs-regexp{color:#31a354}.hljs-deletion,.hljs-variable{color:#88f}.hljs-built_in,.hljs-doctag,.hljs-keyword,.hljs-name,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-selector-tag,.hljs-strong,.hljs-tag,.hljs-title,.hljs-type{color:#3182bd}.hljs-emphasis{font-style:italic}.hljs-attribute{color:#e6550d} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/dark.min.css b/src/app/resources/assets/highlight/styles/dark.min.css new file mode 100644 index 0000000..9ed546b --- /dev/null +++ b/src/app/resources/assets/highlight/styles/dark.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#ddd;background:#303030}.hljs-keyword,.hljs-link,.hljs-literal,.hljs-section,.hljs-selector-tag{color:#fff}.hljs-addition,.hljs-attribute,.hljs-built_in,.hljs-bullet,.hljs-name,.hljs-string,.hljs-symbol,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type,.hljs-variable{color:#d88}.hljs-comment,.hljs-deletion,.hljs-meta,.hljs-quote{color:#979797}.hljs-doctag,.hljs-keyword,.hljs-literal,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-strong,.hljs-title,.hljs-type{font-weight:700}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/default.min.css b/src/app/resources/assets/highlight/styles/default.min.css new file mode 100644 index 0000000..a75ea91 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/default.min.css @@ -0,0 +1,9 @@ +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#f3f3f3;color:#444}.hljs-comment{color:#697070}.hljs-punctuation,.hljs-tag{color:#444a}.hljs-tag .hljs-attr,.hljs-tag .hljs-name{color:#444}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#800}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#ab5656}.hljs-literal{color:#695}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/devibeans.min.css b/src/app/resources/assets/highlight/styles/devibeans.min.css new file mode 100644 index 0000000..d8c4c0f --- /dev/null +++ b/src/app/resources/assets/highlight/styles/devibeans.min.css @@ -0,0 +1,7 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: devibeans (dark) + Author: @terminaldweller + Maintainer: @terminaldweller + + Inspired by vim's jellybeans theme (https://github.com/nanotech/jellybeans.vim) +*/.hljs{background:#000;color:#a39e9b}.hljs-attr,.hljs-template-tag{color:#8787d7}.hljs-comment,.hljs-doctag,.hljs-quote{color:#396}.hljs-params{color:#a39e9b}.hljs-regexp{color:#d700ff}.hljs-literal,.hljs-number,.hljs-selector-id,.hljs-tag{color:#ef5350}.hljs-meta,.hljs-meta .hljs-keyword{color:#0087ff}.hljs-code,.hljs-formula,.hljs-keyword,.hljs-link,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-variable{color:#64b5f6}.hljs-built_in,.hljs-deletion,.hljs-title{color:#ff8700}.hljs-attribute,.hljs-function,.hljs-name,.hljs-property,.hljs-section,.hljs-type{color:#ffd75f}.hljs-addition,.hljs-bullet,.hljs-meta .hljs-string,.hljs-string,.hljs-subst,.hljs-symbol{color:#558b2f}.hljs-selector-tag{color:#96f}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/docco.min.css b/src/app/resources/assets/highlight/styles/docco.min.css new file mode 100644 index 0000000..382ecbb --- /dev/null +++ b/src/app/resources/assets/highlight/styles/docco.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#000;background:#f8f8ff}.hljs-comment,.hljs-quote{color:#408080;font-style:italic}.hljs-keyword,.hljs-literal,.hljs-selector-tag,.hljs-subst{color:#954121}.hljs-number{color:#40a070}.hljs-doctag,.hljs-string{color:#219161}.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-type{color:#19469d}.hljs-params{color:#00f}.hljs-title{color:#458;font-weight:700}.hljs-attribute,.hljs-name,.hljs-tag{color:navy;font-weight:400}.hljs-template-variable,.hljs-variable{color:teal}.hljs-link,.hljs-regexp{color:#b68}.hljs-bullet,.hljs-symbol{color:#990073}.hljs-built_in{color:#0086b3}.hljs-meta{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/far.min.css b/src/app/resources/assets/highlight/styles/far.min.css new file mode 100644 index 0000000..c338ef6 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/far.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#0ff;background:navy}.hljs-addition,.hljs-attribute,.hljs-built_in,.hljs-bullet,.hljs-string,.hljs-symbol,.hljs-template-tag,.hljs-template-variable{color:#ff0}.hljs-keyword,.hljs-name,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-selector-tag,.hljs-type,.hljs-variable{color:#fff}.hljs-comment,.hljs-deletion,.hljs-doctag,.hljs-quote{color:#888}.hljs-link,.hljs-literal,.hljs-number,.hljs-regexp{color:#0f0}.hljs-meta{color:teal}.hljs-keyword,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-strong,.hljs-title{font-weight:700}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/felipec.min.css b/src/app/resources/assets/highlight/styles/felipec.min.css new file mode 100644 index 0000000..3a21319 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/felipec.min.css @@ -0,0 +1,7 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + * Theme: FelipeC + * Author: (c) 2021 Felipe Contreras + * Website: https://github.com/felipec/vim-felipec + * + * Autogenerated with vim-felipec's generator. +*/.hljs{color:#dddde1;background:#1e1e22}.hljs ::selection,.hljs::selection{color:#1e1e22;background:#bf8fef}.hljs-code,.hljs-comment,.hljs-quote{color:#888896}.hljs-deletion,.hljs-literal,.hljs-number{color:#ef8f8f}.hljs-doctag,.hljs-meta,.hljs-operator,.hljs-punctuation,.hljs-selector-attr,.hljs-subst,.hljs-template-variable{color:#efbf8f}.hljs-type{color:#efef8f}.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-title{color:#bfef8f}.hljs-addition,.hljs-regexp,.hljs-string{color:#8fef8f}.hljs-class,.hljs-property{color:#8fefbf}.hljs-name,.hljs-selector-tag{color:#8fefef}.hljs-built_in,.hljs-keyword{color:#8fbfef}.hljs-bullet,.hljs-section{color:#8f8fef}.hljs-selector-pseudo{color:#bf8fef}.hljs-attr,.hljs-attribute,.hljs-params,.hljs-variable{color:#ef8fef}.hljs-link,.hljs-symbol{color:#ef8fbf}.hljs-literal,.hljs-strong,.hljs-title{font-weight:700}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/foundation.min.css b/src/app/resources/assets/highlight/styles/foundation.min.css new file mode 100644 index 0000000..1ddcfa6 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/foundation.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#eee;color:#000}.hljs-addition,.hljs-attribute,.hljs-emphasis,.hljs-link{color:#070}.hljs-emphasis{font-style:italic}.hljs-deletion,.hljs-string,.hljs-strong{color:#d14}.hljs-strong{font-weight:700}.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-section,.hljs-title{color:#900}.hljs-class .hljs-title,.hljs-title.class_,.hljs-type{color:#458}.hljs-template-variable,.hljs-variable{color:#369}.hljs-bullet{color:#970}.hljs-meta{color:#34b}.hljs-code,.hljs-keyword,.hljs-literal,.hljs-number,.hljs-selector-tag{color:#099}.hljs-regexp{background-color:#fff0ff;color:#808}.hljs-symbol{color:#990073}.hljs-name,.hljs-selector-class,.hljs-selector-id,.hljs-tag{color:#070} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/github-dark-dimmed.min.css b/src/app/resources/assets/highlight/styles/github-dark-dimmed.min.css new file mode 100644 index 0000000..e266dfc --- /dev/null +++ b/src/app/resources/assets/highlight/styles/github-dark-dimmed.min.css @@ -0,0 +1,9 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: GitHub Dark Dimmed + Description: Dark dimmed theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Colors taken from GitHub's CSS +*/.hljs{color:#adbac7;background:#22272e}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#f47067}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#dcbdfb}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#6cb6ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#96d0ff}.hljs-built_in,.hljs-symbol{color:#f69d50}.hljs-code,.hljs-comment,.hljs-formula{color:#768390}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#8ddb8c}.hljs-subst{color:#adbac7}.hljs-section{color:#316dca;font-weight:700}.hljs-bullet{color:#eac55f}.hljs-emphasis{color:#adbac7;font-style:italic}.hljs-strong{color:#adbac7;font-weight:700}.hljs-addition{color:#b4f1b4;background-color:#1b4721}.hljs-deletion{color:#ffd8d3;background-color:#78191b} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/github-dark.min.css b/src/app/resources/assets/highlight/styles/github-dark.min.css new file mode 100644 index 0000000..03b6da8 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/github-dark.min.css @@ -0,0 +1,10 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: GitHub Dark + Description: Dark theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-dark + Current colors taken from GitHub's CSS +*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/github.min.css b/src/app/resources/assets/highlight/styles/github.min.css new file mode 100644 index 0000000..275239a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/github.min.css @@ -0,0 +1,10 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: GitHub + Description: Light theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-light + Current colors taken from GitHub's CSS +*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/gml.min.css b/src/app/resources/assets/highlight/styles/gml.min.css new file mode 100644 index 0000000..89455fe --- /dev/null +++ b/src/app/resources/assets/highlight/styles/gml.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#222;color:silver}.hljs-keyword{color:#ffb871;font-weight:700}.hljs-built_in{color:#ffb871}.hljs-literal{color:#ff8080}.hljs-symbol{color:#58e55a}.hljs-comment{color:#5b995b}.hljs-string{color:#ff0}.hljs-number{color:#ff8080}.hljs-addition,.hljs-attribute,.hljs-bullet,.hljs-code,.hljs-deletion,.hljs-doctag,.hljs-function,.hljs-link,.hljs-meta,.hljs-meta .hljs-keyword,.hljs-name,.hljs-quote,.hljs-regexp,.hljs-section,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-selector-tag,.hljs-subst,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type,.hljs-variable{color:silver}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/googlecode.min.css b/src/app/resources/assets/highlight/styles/googlecode.min.css new file mode 100644 index 0000000..0140b89 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/googlecode.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#fff;color:#000}.hljs-comment,.hljs-quote{color:#800}.hljs-keyword,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-title{color:#008}.hljs-template-variable,.hljs-variable{color:#660}.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-string{color:#080}.hljs-bullet,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-symbol{color:#066}.hljs-attr,.hljs-built_in,.hljs-doctag,.hljs-params,.hljs-title,.hljs-type{color:#606}.hljs-attribute,.hljs-subst{color:#000}.hljs-formula{background-color:#eee;font-style:italic}.hljs-selector-class,.hljs-selector-id{color:#9b703f}.hljs-addition{background-color:#baeeba}.hljs-deletion{background-color:#ffc8bd}.hljs-doctag,.hljs-strong{font-weight:700}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/gradient-dark.min.css b/src/app/resources/assets/highlight/styles/gradient-dark.min.css new file mode 100644 index 0000000..4aba928 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/gradient-dark.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background-color:#652487;background-image:linear-gradient(160deg,#652487 0,#443ac3 35%,#0174b7 68%,#04988e 100%);color:#e7e4eb}.hljs-subtr{color:#e7e4eb}.hljs-comment,.hljs-doctag,.hljs-meta,.hljs-quote{color:#af8dd9}.hljs-attr,.hljs-regexp,.hljs-selector-id,.hljs-selector-tag,.hljs-tag,.hljs-template-tag{color:#aefbff}.hljs-bullet,.hljs-params,.hljs-selector-class{color:#f19fff}.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-section,.hljs-symbol,.hljs-type{color:#17fc95}.hljs-addition,.hljs-link,.hljs-number{color:#c5fe00}.hljs-string{color:#38c0ff}.hljs-addition,.hljs-attribute{color:#e7ff9f}.hljs-template-variable,.hljs-variable{color:#e447ff}.hljs-built_in,.hljs-class,.hljs-formula,.hljs-function,.hljs-name,.hljs-title{color:#ffc800}.hljs-deletion,.hljs-literal,.hljs-selector-pseudo{color:#ff9e44}.hljs-emphasis,.hljs-quote{font-style:italic}.hljs-keyword,.hljs-params,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-selector-tag,.hljs-strong,.hljs-template-tag{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/gradient-light.min.css b/src/app/resources/assets/highlight/styles/gradient-light.min.css new file mode 100644 index 0000000..c5db6fd --- /dev/null +++ b/src/app/resources/assets/highlight/styles/gradient-light.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background-color:#f9ccff;background-image:linear-gradient(295deg,#f9ccff 0,#e6bbf9 11%,#9ec6f9 32%,#55e6ee 60%,#91f5d1 74%,#f9ffbf 98%);color:#250482}.hljs-subtr{color:#01958b}.hljs-comment,.hljs-doctag,.hljs-meta,.hljs-quote{color:#cb7200}.hljs-attr,.hljs-regexp,.hljs-selector-id,.hljs-selector-tag,.hljs-tag,.hljs-template-tag{color:#07bd5f}.hljs-bullet,.hljs-params,.hljs-selector-class{color:#43449f}.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-section,.hljs-symbol,.hljs-type{color:#7d2801}.hljs-addition,.hljs-link,.hljs-number{color:#7f0096}.hljs-string{color:#2681ab}.hljs-addition,.hljs-attribute{color:#296562}.hljs-template-variable,.hljs-variable{color:#025c8f}.hljs-built_in,.hljs-class,.hljs-formula,.hljs-function,.hljs-name,.hljs-title{color:#529117}.hljs-deletion,.hljs-literal,.hljs-selector-pseudo{color:#ad13ff}.hljs-emphasis,.hljs-quote{font-style:italic}.hljs-keyword,.hljs-params,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-selector-tag,.hljs-strong,.hljs-template-tag{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/grayscale.min.css b/src/app/resources/assets/highlight/styles/grayscale.min.css new file mode 100644 index 0000000..5eefdaa --- /dev/null +++ b/src/app/resources/assets/highlight/styles/grayscale.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#333;background:#fff}.hljs-comment,.hljs-quote{color:#777;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:700}.hljs-literal,.hljs-number{color:#777}.hljs-doctag,.hljs-formula,.hljs-string{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC)}.hljs-section,.hljs-selector-id,.hljs-title{color:#000;font-weight:700}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-name,.hljs-title.class_,.hljs-type{color:#333;font-weight:700}.hljs-tag{color:#333}.hljs-regexp{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==)}.hljs-bullet,.hljs-link,.hljs-symbol{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==)}.hljs-built_in{color:#000;text-decoration:underline}.hljs-meta{color:#999;font-weight:700}.hljs-deletion{color:#fff;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==)}.hljs-addition{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC)}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/hybrid.min.css b/src/app/resources/assets/highlight/styles/hybrid.min.css new file mode 100644 index 0000000..52489b6 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/hybrid.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#1d1f21;color:#c5c8c6}.hljs span::selection,.hljs::selection{background:#373b41}.hljs span::-moz-selection,.hljs::-moz-selection{background:#373b41}.hljs-name,.hljs-title{color:#f0c674}.hljs-comment,.hljs-meta,.hljs-meta .hljs-keyword{color:#707880}.hljs-deletion,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol{color:#c66}.hljs-addition,.hljs-doctag,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-string{color:#b5bd68}.hljs-attribute,.hljs-code,.hljs-selector-id{color:#b294bb}.hljs-bullet,.hljs-keyword,.hljs-selector-tag,.hljs-tag{color:#81a2be}.hljs-subst,.hljs-template-tag,.hljs-template-variable,.hljs-variable{color:#8abeb7}.hljs-built_in,.hljs-quote,.hljs-section,.hljs-selector-class,.hljs-type{color:#de935f}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/idea.min.css b/src/app/resources/assets/highlight/styles/idea.min.css new file mode 100644 index 0000000..7cc62ff --- /dev/null +++ b/src/app/resources/assets/highlight/styles/idea.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#000;background:#fff}.hljs-subst,.hljs-title{font-weight:400;color:#000}.hljs-comment,.hljs-quote{color:grey;font-style:italic}.hljs-meta{color:olive}.hljs-tag{background:#efefef}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-selector-tag,.hljs-type{font-weight:700;color:navy}.hljs-attribute,.hljs-link,.hljs-number,.hljs-regexp{font-weight:700;color:#00f}.hljs-link,.hljs-number,.hljs-regexp{font-weight:400}.hljs-string{color:green;font-weight:700}.hljs-bullet,.hljs-formula,.hljs-symbol{color:#000;background:#d0eded;font-style:italic}.hljs-doctag{text-decoration:underline}.hljs-template-variable,.hljs-variable{color:#660e7a}.hljs-addition{background:#baeeba}.hljs-deletion{background:#ffc8bd}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/intellij-light.min.css b/src/app/resources/assets/highlight/styles/intellij-light.min.css new file mode 100644 index 0000000..97fc3e2 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/intellij-light.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#000;background:#fff}.hljs-subst,.hljs-title{font-weight:400;color:#000}.hljs-title.function_{color:#7a7a43}.hljs-code,.hljs-comment,.hljs-quote{color:#8c8c8c;font-style:italic}.hljs-meta{color:#9e880d}.hljs-section{color:#871094}.hljs-built_in,.hljs-keyword,.hljs-literal,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-selector-tag,.hljs-symbol,.hljs-template-tag,.hljs-type,.hljs-variable.language_{color:#0033b3}.hljs-attr,.hljs-property{color:#871094}.hljs-attribute{color:#174ad4}.hljs-number{color:#1750eb}.hljs-regexp{color:#264eff}.hljs-link{text-decoration:underline;color:#006dcc}.hljs-meta .hljs-string,.hljs-string{color:#067d17}.hljs-char.escape_{color:#0037a6}.hljs-doctag{text-decoration:underline}.hljs-template-variable{color:#248f8f}.hljs-addition{background:#bee6be}.hljs-deletion{background:#d6d6d6}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/ir-black.min.css b/src/app/resources/assets/highlight/styles/ir-black.min.css new file mode 100644 index 0000000..e78fd08 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/ir-black.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#000;color:#f8f8f8}.hljs-comment,.hljs-meta,.hljs-quote{color:#7c7c7c}.hljs-keyword,.hljs-name,.hljs-selector-tag,.hljs-tag{color:#96cbfe}.hljs-attribute,.hljs-selector-id{color:#ffffb6}.hljs-addition,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-string{color:#a8ff60}.hljs-subst{color:#daefa3}.hljs-link,.hljs-regexp{color:#e9c062}.hljs-doctag,.hljs-section,.hljs-title,.hljs-type{color:#ffffb6}.hljs-bullet,.hljs-literal,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#c6c5fe}.hljs-deletion,.hljs-number{color:#ff73fd}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/isbl-editor-dark.min.css b/src/app/resources/assets/highlight/styles/isbl-editor-dark.min.css new file mode 100644 index 0000000..535ef87 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/isbl-editor-dark.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#404040}.hljs,.hljs-subst{color:#f0f0f0}.hljs-comment{color:#b5b5b5;font-style:italic}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{color:#f0f0f0;font-weight:700}.hljs-string{color:#97bf0d}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-template-tag,.hljs-type{color:#f0f0f0}.hljs-link,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#e2c696}.hljs-built_in,.hljs-literal{color:#97bf0d;font-weight:700}.hljs-addition,.hljs-bullet,.hljs-code{color:#397300}.hljs-class{color:#ce9d4d;font-weight:700}.hljs-section,.hljs-title{color:#df471e}.hljs-title>.hljs-built_in{color:#81bce9;font-weight:400}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/isbl-editor-light.min.css b/src/app/resources/assets/highlight/styles/isbl-editor-light.min.css new file mode 100644 index 0000000..f008c74 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/isbl-editor-light.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#fff;color:#000}.hljs-subst{color:#000}.hljs-comment{color:#555;font-style:italic}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{color:#000;font-weight:700}.hljs-string{color:navy}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-template-tag,.hljs-type{color:#000}.hljs-link,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#5e1700}.hljs-built_in,.hljs-literal{color:navy;font-weight:700}.hljs-addition,.hljs-bullet,.hljs-code{color:#397300}.hljs-class{color:#6f1c00;font-weight:700}.hljs-section,.hljs-title{color:#fb2c00}.hljs-title>.hljs-built_in{color:teal;font-weight:400}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/kimbie-dark.min.css b/src/app/resources/assets/highlight/styles/kimbie-dark.min.css new file mode 100644 index 0000000..cf56cea --- /dev/null +++ b/src/app/resources/assets/highlight/styles/kimbie-dark.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#221a0f;color:#d3af86}.hljs-comment,.hljs-quote{color:#d6baad}.hljs-meta,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#dc3958}.hljs-built_in,.hljs-deletion,.hljs-link,.hljs-literal,.hljs-number,.hljs-params,.hljs-type{color:#f79a32}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:#889b4a}.hljs-function,.hljs-keyword,.hljs-selector-tag{color:#98676a}.hljs-attribute,.hljs-section,.hljs-title{color:#f06431}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/kimbie-light.min.css b/src/app/resources/assets/highlight/styles/kimbie-light.min.css new file mode 100644 index 0000000..b9d0ea4 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/kimbie-light.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#fbebd4;color:#84613d}.hljs-comment,.hljs-quote{color:#a57a4c}.hljs-meta,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#dc3958}.hljs-built_in,.hljs-deletion,.hljs-link,.hljs-literal,.hljs-number,.hljs-params,.hljs-type{color:#f79a32}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:#889b4a}.hljs-function,.hljs-keyword,.hljs-selector-tag{color:#98676a}.hljs-attribute,.hljs-section,.hljs-title{color:#f06431}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/lightfair.min.css b/src/app/resources/assets/highlight/styles/lightfair.min.css new file mode 100644 index 0000000..b6c3791 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/lightfair.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#444;background:#fff}.hljs-name{color:#01a3a3}.hljs-meta,.hljs-tag{color:#789}.hljs-comment{color:#888}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#4286f4}.hljs-section,.hljs-title{color:#4286f4;font-weight:700}.hljs-link,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#bc6060}.hljs-literal{color:#62bcbc}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#25c6c6}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/lioshi.min.css b/src/app/resources/assets/highlight/styles/lioshi.min.css new file mode 100644 index 0000000..3d6a92f --- /dev/null +++ b/src/app/resources/assets/highlight/styles/lioshi.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#303030;color:#c5c8c6}.hljs-comment{color:#8d8d8d}.hljs-quote{color:#b3c7d8}.hljs-deletion,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#c66}.hljs-built_in,.hljs-literal,.hljs-number,.hljs-subst .hljs-link,.hljs-type{color:#de935f}.hljs-attribute{color:#f0c674}.hljs-addition,.hljs-bullet,.hljs-params,.hljs-string{color:#b5bd68}.hljs-class,.hljs-function,.hljs-keyword,.hljs-selector-tag{color:#be94bb}.hljs-meta,.hljs-section,.hljs-title{color:#81a2be}.hljs-symbol{color:#dbc4d9}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/magula.min.css b/src/app/resources/assets/highlight/styles/magula.min.css new file mode 100644 index 0000000..e024387 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/magula.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background-color:#f4f4f4;color:#000}.hljs-subst{color:#000}.hljs-addition,.hljs-attribute,.hljs-bullet,.hljs-string,.hljs-symbol,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-variable{color:#050}.hljs-comment,.hljs-quote{color:#777}.hljs-link,.hljs-literal,.hljs-number,.hljs-regexp,.hljs-type{color:#800}.hljs-deletion,.hljs-meta{color:#00e}.hljs-built_in,.hljs-doctag,.hljs-keyword,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-tag,.hljs-title{font-weight:700;color:navy}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/mono-blue.min.css b/src/app/resources/assets/highlight/styles/mono-blue.min.css new file mode 100644 index 0000000..fb74d40 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/mono-blue.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#eaeef3;color:#00193a}.hljs-doctag,.hljs-keyword,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-strong,.hljs-title{font-weight:700}.hljs-comment{color:#738191}.hljs-addition,.hljs-built_in,.hljs-literal,.hljs-name,.hljs-quote,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-tag,.hljs-title,.hljs-type{color:#0048ab}.hljs-attribute,.hljs-bullet,.hljs-deletion,.hljs-link,.hljs-meta,.hljs-regexp,.hljs-subst,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#4c81c9}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/monokai-sublime.min.css b/src/app/resources/assets/highlight/styles/monokai-sublime.min.css new file mode 100644 index 0000000..247e2e9 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/monokai-sublime.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#23241f;color:#f8f8f2}.hljs-subst,.hljs-tag{color:#f8f8f2}.hljs-emphasis,.hljs-strong{color:#a8a8a2}.hljs-bullet,.hljs-link,.hljs-literal,.hljs-number,.hljs-quote,.hljs-regexp{color:#ae81ff}.hljs-code,.hljs-section,.hljs-selector-class,.hljs-title{color:#a6e22e}.hljs-strong{font-weight:700}.hljs-emphasis{font-style:italic}.hljs-attr,.hljs-keyword,.hljs-name,.hljs-selector-tag{color:#f92672}.hljs-attribute,.hljs-symbol{color:#66d9ef}.hljs-class .hljs-title,.hljs-params,.hljs-title.class_{color:#f8f8f2}.hljs-addition,.hljs-built_in,.hljs-selector-attr,.hljs-selector-id,.hljs-selector-pseudo,.hljs-string,.hljs-template-variable,.hljs-type,.hljs-variable{color:#e6db74}.hljs-comment,.hljs-deletion,.hljs-meta{color:#75715e} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/monokai.min.css b/src/app/resources/assets/highlight/styles/monokai.min.css new file mode 100644 index 0000000..448d85d --- /dev/null +++ b/src/app/resources/assets/highlight/styles/monokai.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#272822;color:#ddd}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-selector-tag,.hljs-strong,.hljs-tag{color:#f92672}.hljs-code{color:#66d9ef}.hljs-attribute,.hljs-link,.hljs-regexp,.hljs-symbol{color:#bf79db}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-emphasis,.hljs-section,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-string,.hljs-subst,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type,.hljs-variable{color:#a6e22e}.hljs-class .hljs-title,.hljs-title.class_{color:#fff}.hljs-comment,.hljs-deletion,.hljs-meta,.hljs-quote{color:#75715e}.hljs-doctag,.hljs-keyword,.hljs-literal,.hljs-section,.hljs-selector-id,.hljs-selector-tag,.hljs-title,.hljs-type{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/night-owl.min.css b/src/app/resources/assets/highlight/styles/night-owl.min.css new file mode 100644 index 0000000..ed94590 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/night-owl.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#011627;color:#d6deeb}.hljs-keyword{color:#c792ea;font-style:italic}.hljs-built_in{color:#addb67;font-style:italic}.hljs-type{color:#82aaff}.hljs-literal{color:#ff5874}.hljs-number{color:#f78c6c}.hljs-regexp{color:#5ca7e4}.hljs-string{color:#ecc48d}.hljs-subst{color:#d3423e}.hljs-symbol{color:#82aaff}.hljs-class{color:#ffcb8b}.hljs-function{color:#82aaff}.hljs-title{color:#dcdcaa;font-style:italic}.hljs-params{color:#7fdbca}.hljs-comment{color:#637777;font-style:italic}.hljs-doctag{color:#7fdbca}.hljs-meta,.hljs-meta .hljs-keyword{color:#82aaff}.hljs-meta .hljs-string{color:#ecc48d}.hljs-section{color:#82b1ff}.hljs-attr,.hljs-name,.hljs-tag{color:#7fdbca}.hljs-attribute{color:#80cbc4}.hljs-variable{color:#addb67}.hljs-bullet{color:#d9f5dd}.hljs-code{color:#80cbc4}.hljs-emphasis{color:#c792ea;font-style:italic}.hljs-strong{color:#addb67;font-weight:700}.hljs-formula{color:#c792ea}.hljs-link{color:#ff869a}.hljs-quote{color:#697098;font-style:italic}.hljs-selector-tag{color:#ff6363}.hljs-selector-id{color:#fad430}.hljs-selector-class{color:#addb67;font-style:italic}.hljs-selector-attr,.hljs-selector-pseudo{color:#c792ea;font-style:italic}.hljs-template-tag{color:#c792ea}.hljs-template-variable{color:#addb67}.hljs-addition{color:#addb67ff;font-style:italic}.hljs-deletion{color:#ef535090;font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/nnfx-dark.min.css b/src/app/resources/assets/highlight/styles/nnfx-dark.min.css new file mode 100644 index 0000000..4e6403d --- /dev/null +++ b/src/app/resources/assets/highlight/styles/nnfx-dark.min.css @@ -0,0 +1,10 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: nnfx dark + Description: a theme inspired by Netscape Navigator/Firefox + Author: (c) 2020-2021 Jim Mason + Maintainer: @RocketMan + License: https://creativecommons.org/licenses/by-sa/4.0 CC BY-SA 4.0 + Updated: 2021-05-17 + + @version 1.1.0 +*/.hljs{background:#333;color:#fff}.language-xml .hljs-meta,.language-xml .hljs-meta-string{font-weight:700;font-style:italic;color:#69f}.hljs-comment,.hljs-quote{font-style:italic;color:#9c6}.hljs-built_in,.hljs-keyword,.hljs-name{color:#a7a}.hljs-attr,.hljs-name{font-weight:700}.hljs-string{font-weight:400}.hljs-code,.hljs-link,.hljs-meta .hljs-string,.hljs-number,.hljs-regexp,.hljs-string{color:#bce}.hljs-bullet,.hljs-symbol,.hljs-template-variable,.hljs-title,.hljs-variable{color:#d40}.hljs-class .hljs-title,.hljs-title.class_,.hljs-type{font-weight:700;color:#96c}.hljs-attr,.hljs-function .hljs-title,.hljs-subst,.hljs-tag,.hljs-title.function_{color:#fff}.hljs-formula{background-color:#eee;font-style:italic}.hljs-addition{background-color:#797}.hljs-deletion{background-color:#c99}.hljs-meta{color:#69f}.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-selector-tag{font-weight:700;color:#69f}.hljs-selector-pseudo{font-style:italic}.hljs-doctag,.hljs-strong{font-weight:700}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/nnfx-light.min.css b/src/app/resources/assets/highlight/styles/nnfx-light.min.css new file mode 100644 index 0000000..469223a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/nnfx-light.min.css @@ -0,0 +1,10 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: nnfx light + Description: a theme inspired by Netscape Navigator/Firefox + Author: (c) 2020-2021 Jim Mason + Maintainer: @RocketMan + License: https://creativecommons.org/licenses/by-sa/4.0 CC BY-SA 4.0 + Updated: 2021-05-17 + + @version 1.1.0 +*/.hljs{background:#fff;color:#000}.language-xml .hljs-meta,.language-xml .hljs-meta-string{font-weight:700;font-style:italic;color:#48b}.hljs-comment,.hljs-quote{font-style:italic;color:#070}.hljs-built_in,.hljs-keyword,.hljs-name{color:#808}.hljs-attr,.hljs-name{font-weight:700}.hljs-string{font-weight:400}.hljs-code,.hljs-link,.hljs-meta .hljs-string,.hljs-number,.hljs-regexp,.hljs-string{color:#00f}.hljs-bullet,.hljs-symbol,.hljs-template-variable,.hljs-title,.hljs-variable{color:#f40}.hljs-class .hljs-title,.hljs-title.class_,.hljs-type{font-weight:700;color:#639}.hljs-attr,.hljs-function .hljs-title,.hljs-subst,.hljs-tag,.hljs-title.function_{color:#000}.hljs-formula{background-color:#eee;font-style:italic}.hljs-addition{background-color:#beb}.hljs-deletion{background-color:#fbb}.hljs-meta{color:#269}.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-selector-tag{font-weight:700;color:#48b}.hljs-selector-pseudo{font-style:italic}.hljs-doctag,.hljs-strong{font-weight:700}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/nord.min.css b/src/app/resources/assets/highlight/styles/nord.min.css new file mode 100644 index 0000000..efbb0c1 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/nord.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#2e3440}.hljs,.hljs-subst{color:#d8dee9}.hljs-selector-tag{color:#81a1c1}.hljs-selector-id{color:#8fbcbb;font-weight:700}.hljs-selector-attr,.hljs-selector-class{color:#8fbcbb}.hljs-property,.hljs-selector-pseudo{color:#88c0d0}.hljs-addition{background-color:rgba(163,190,140,.5)}.hljs-deletion{background-color:rgba(191,97,106,.5)}.hljs-built_in,.hljs-class,.hljs-type{color:#8fbcbb}.hljs-function,.hljs-function>.hljs-title,.hljs-title.hljs-function{color:#88c0d0}.hljs-keyword,.hljs-literal,.hljs-symbol{color:#81a1c1}.hljs-number{color:#b48ead}.hljs-regexp{color:#ebcb8b}.hljs-string{color:#a3be8c}.hljs-title{color:#8fbcbb}.hljs-params{color:#d8dee9}.hljs-bullet{color:#81a1c1}.hljs-code{color:#8fbcbb}.hljs-emphasis{font-style:italic}.hljs-formula{color:#8fbcbb}.hljs-strong{font-weight:700}.hljs-link:hover{text-decoration:underline}.hljs-comment,.hljs-quote{color:#4c566a}.hljs-doctag{color:#8fbcbb}.hljs-meta,.hljs-meta .hljs-keyword{color:#5e81ac}.hljs-meta .hljs-string{color:#a3be8c}.hljs-attr{color:#8fbcbb}.hljs-attribute{color:#d8dee9}.hljs-name{color:#81a1c1}.hljs-section{color:#88c0d0}.hljs-tag{color:#81a1c1}.hljs-template-variable,.hljs-variable{color:#d8dee9}.hljs-template-tag{color:#5e81ac}.language-abnf .hljs-attribute{color:#88c0d0}.language-abnf .hljs-symbol{color:#ebcb8b}.language-apache .hljs-attribute{color:#88c0d0}.language-apache .hljs-section{color:#81a1c1}.language-arduino .hljs-built_in{color:#88c0d0}.language-aspectj .hljs-meta{color:#d08770}.language-aspectj>.hljs-title{color:#88c0d0}.language-bnf .hljs-attribute{color:#8fbcbb}.language-clojure .hljs-name{color:#88c0d0}.language-clojure .hljs-symbol{color:#ebcb8b}.language-coq .hljs-built_in{color:#88c0d0}.language-cpp .hljs-meta .hljs-string{color:#8fbcbb}.language-css .hljs-built_in{color:#88c0d0}.language-css .hljs-keyword{color:#d08770}.language-diff .hljs-meta,.language-ebnf .hljs-attribute{color:#8fbcbb}.language-glsl .hljs-built_in{color:#88c0d0}.language-groovy .hljs-meta:not(:first-child),.language-haxe .hljs-meta,.language-java .hljs-meta{color:#d08770}.language-ldif .hljs-attribute{color:#8fbcbb}.language-lisp .hljs-name,.language-lua .hljs-built_in,.language-moonscript .hljs-built_in,.language-nginx .hljs-attribute{color:#88c0d0}.language-nginx .hljs-section{color:#5e81ac}.language-pf .hljs-built_in,.language-processing .hljs-built_in{color:#88c0d0}.language-scss .hljs-keyword,.language-stylus .hljs-keyword{color:#81a1c1}.language-swift .hljs-meta{color:#d08770}.language-vim .hljs-built_in{color:#88c0d0;font-style:italic}.language-yaml .hljs-meta{color:#d08770} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/obsidian.min.css b/src/app/resources/assets/highlight/styles/obsidian.min.css new file mode 100644 index 0000000..c2a0786 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/obsidian.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#e0e2e4;background:#282b2e}.hljs-keyword,.hljs-literal,.hljs-selector-id,.hljs-selector-tag{color:#93c763}.hljs-number{color:#ffcd22}.hljs-attribute{color:#668bb0}.hljs-link,.hljs-regexp{color:#d39745}.hljs-meta{color:#557182}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-emphasis,.hljs-name,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-subst,.hljs-tag,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable{color:#8cbbad}.hljs-string,.hljs-symbol{color:#ec7600}.hljs-comment,.hljs-deletion,.hljs-quote{color:#818e96}.hljs-selector-class{color:#a082bd}.hljs-doctag,.hljs-keyword,.hljs-literal,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-strong,.hljs-title,.hljs-type{font-weight:700}.hljs-class .hljs-title,.hljs-code,.hljs-section,.hljs-title.class_{color:#fff} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/panda-syntax-dark.min.css b/src/app/resources/assets/highlight/styles/panda-syntax-dark.min.css new file mode 100644 index 0000000..55e26c6 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/panda-syntax-dark.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#e6e6e6;background:#2a2c2d}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.hljs-comment,.hljs-quote{color:#bbb;font-style:italic}.hljs-params{color:#bbb}.hljs-attr,.hljs-punctuation{color:#e6e6e6}.hljs-meta,.hljs-name,.hljs-selector-tag{color:#ff4b82}.hljs-char.escape_,.hljs-operator{color:#b084eb}.hljs-deletion,.hljs-keyword{color:#ff75b5}.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-variable.language_{color:#ff9ac1}.hljs-code,.hljs-formula,.hljs-property,.hljs-section,.hljs-subst,.hljs-title.function_{color:#45a9f9}.hljs-addition,.hljs-bullet,.hljs-meta .hljs-string,.hljs-selector-class,.hljs-string,.hljs-symbol,.hljs-title.class_,.hljs-title.class_.inherited__{color:#19f9d8}.hljs-attribute,.hljs-built_in,.hljs-doctag,.hljs-link,.hljs-literal,.hljs-meta .hljs-keyword,.hljs-number,.hljs-punctuation,.hljs-selector-id,.hljs-tag,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type,.hljs-variable{color:#ffb86c} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/panda-syntax-light.min.css b/src/app/resources/assets/highlight/styles/panda-syntax-light.min.css new file mode 100644 index 0000000..6710dbd --- /dev/null +++ b/src/app/resources/assets/highlight/styles/panda-syntax-light.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#2a2c2d;background:#e6e6e6}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.hljs-comment,.hljs-quote{color:#676b79;font-style:italic}.hljs-params{color:#676b79}.hljs-attr,.hljs-punctuation{color:#2a2c2d}.hljs-char.escape_,.hljs-meta,.hljs-name,.hljs-operator,.hljs-selector-tag{color:#c56200}.hljs-deletion,.hljs-keyword{color:#d92792}.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-variable.language_{color:#cc5e91}.hljs-code,.hljs-formula,.hljs-property,.hljs-section,.hljs-subst,.hljs-title.function_{color:#3787c7}.hljs-addition,.hljs-bullet,.hljs-meta .hljs-string,.hljs-selector-class,.hljs-string,.hljs-symbol,.hljs-title.class_,.hljs-title.class_.inherited__{color:#0d7d6c}.hljs-attribute,.hljs-built_in,.hljs-doctag,.hljs-link,.hljs-literal,.hljs-meta .hljs-keyword,.hljs-number,.hljs-selector-id,.hljs-tag,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type,.hljs-variable{color:#7641bb} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/paraiso-dark.min.css b/src/app/resources/assets/highlight/styles/paraiso-dark.min.css new file mode 100644 index 0000000..d51dd18 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/paraiso-dark.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#2f1e2e;color:#a39e9b}.hljs-comment,.hljs-quote{color:#8d8687}.hljs-link,.hljs-meta,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#ef6155}.hljs-built_in,.hljs-deletion,.hljs-literal,.hljs-number,.hljs-params,.hljs-type{color:#f99b15}.hljs-attribute,.hljs-section,.hljs-title{color:#fec418}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:#48b685}.hljs-keyword,.hljs-selector-tag{color:#815ba4}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/paraiso-light.min.css b/src/app/resources/assets/highlight/styles/paraiso-light.min.css new file mode 100644 index 0000000..3a17c3f --- /dev/null +++ b/src/app/resources/assets/highlight/styles/paraiso-light.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#e7e9db;color:#4f424c}.hljs-comment,.hljs-quote{color:#776e71}.hljs-link,.hljs-meta,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#ef6155}.hljs-built_in,.hljs-deletion,.hljs-literal,.hljs-number,.hljs-params,.hljs-type{color:#f99b15}.hljs-attribute,.hljs-section,.hljs-title{color:#fec418}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:#48b685}.hljs-keyword,.hljs-selector-tag{color:#815ba4}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/pojoaque.jpg b/src/app/resources/assets/highlight/styles/pojoaque.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9c07d4ab40b6d77e90ff69f0012bcd33b21d31c3 GIT binary patch literal 1186 zcmZXSe^8Tk9LK-kXFs3)f@f?)Cddzw3v4wdZyXQ;4x3=;Ja*N#%n9ik!UGmt9H3k0 zJST|5jOc(ID$FQt3C?jQZBws#kXolO1lg9Pba9BB=Q+UEBX!nY@6Uhl&+ofe$Q$y5 z@ci`~)&qzDP(lOiQ5p?p z(`j^e7!yUAVHk%K#^GQXn?s0=VLYCI$HRoe=xCuZ>A6A3@sxEP#XqNFpIb=0)KQ#Nss_tD17;m4@$JKL;LR|K|QF3f%!L5+s(9Ft8SQ zG|~pGpEGFW5Z|OA)-O@mNHy-g@7m8JTf?kl@vUKBGmw)Y*9sDRNr3PN!IKefWaydTe1D zjzpyzPnD3}hBNaS4aFX7=0&~I*Hu7#4au@qVBglH#-m;QFOx_`=j z{EqRY#Eh*yoWP^pa4H>8GH{rO?!_+xwL0(k4yL^D%^nBkJ*UI;Lx;ped8d|f*S_s@ z3~ilcRC(&NT#9Gn#UD;o^EYSMXDMf%XcUi3>;WXXD-QX3P9wMyP7eA&RS{)h5{??W3^Rq=goFJ>?lA~J- zdYe>!xvYLW*fPT0RK7wsJRg^?x#W1*GP9_f`6t>QD_X>0d!owyN>nO2?U5}|3?hX_UZYT@^>S!9eB~bZ9U`q;`U)@L670o1g z`Hd}h<_WRvUc|n*%v4Hbb-4tJD40iyF^q%g*&!6>hkYDvi-{Uc4yTM zzcthN4Z{ka!+F_KzYV#yWi;c^X^q6g`pD8cp?$Kl?hCz0s^a|mH%P!CF%*<6k^~i` zT5Mi-t5-frUcHkk^Qh}+N)Kz1&Bi95`oNc|quI>tUi~BY>xcF9(%tv2i{G6kE9*q~ qCoAGl20`)w0rdgp9H%Q=M5|p`hOhFz6$I%Y&ncY8>c?7PXyh+SL&XXJ literal 0 HcmV?d00001 diff --git a/src/app/resources/assets/highlight/styles/pojoaque.min.css b/src/app/resources/assets/highlight/styles/pojoaque.min.css new file mode 100644 index 0000000..71345a9 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/pojoaque.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#dccf8f;background:url(./pojoaque.jpg) left top #181914}.hljs-comment,.hljs-quote{color:#586e75;font-style:italic}.hljs-addition,.hljs-keyword,.hljs-literal,.hljs-selector-tag{color:#b64926}.hljs-doctag,.hljs-number,.hljs-regexp,.hljs-string{color:#468966}.hljs-built_in,.hljs-name,.hljs-section,.hljs-title{color:#ffb03b}.hljs-class .hljs-title,.hljs-tag,.hljs-template-variable,.hljs-title.class_,.hljs-type,.hljs-variable{color:#b58900}.hljs-attribute{color:#b89859}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-subst,.hljs-symbol{color:#cb4b16}.hljs-deletion{color:#dc322f}.hljs-selector-class,.hljs-selector-id{color:#d3a60c}.hljs-formula{background:#073642}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/purebasic.min.css b/src/app/resources/assets/highlight/styles/purebasic.min.css new file mode 100644 index 0000000..e026c45 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/purebasic.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#ffffdf}.hljs,.hljs-attr,.hljs-function,.hljs-name,.hljs-number,.hljs-params,.hljs-subst,.hljs-type{color:#000}.hljs-addition,.hljs-comment,.hljs-regexp,.hljs-section,.hljs-selector-pseudo{color:#0aa}.hljs-built_in,.hljs-class,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-selector-class{color:#066;font-weight:700}.hljs-code,.hljs-tag,.hljs-title,.hljs-variable{color:#066}.hljs-selector-attr,.hljs-string{color:#0080ff}.hljs-attribute,.hljs-deletion,.hljs-link,.hljs-symbol{color:#924b72}.hljs-literal,.hljs-meta,.hljs-selector-id{color:#924b72;font-weight:700}.hljs-name,.hljs-strong{font-weight:700}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/qtcreator-dark.min.css b/src/app/resources/assets/highlight/styles/qtcreator-dark.min.css new file mode 100644 index 0000000..976e519 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/qtcreator-dark.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#aaa;background:#000}.hljs-emphasis,.hljs-strong{color:#a8a8a2}.hljs-bullet,.hljs-literal,.hljs-number,.hljs-quote,.hljs-regexp{color:#f5f}.hljs-code .hljs-selector-class{color:#aaf}.hljs-emphasis,.hljs-stronge,.hljs-type{font-style:italic}.hljs-function,.hljs-keyword,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-symbol{color:#ff5}.hljs-subst,.hljs-tag,.hljs-title{color:#aaa}.hljs-attribute{color:#f55}.hljs-class .hljs-title,.hljs-params,.hljs-title.class_,.hljs-variable{color:#88f}.hljs-addition,.hljs-built_in,.hljs-link,.hljs-selector-attr,.hljs-selector-id,.hljs-selector-pseudo,.hljs-string,.hljs-template-tag,.hljs-template-variable,.hljs-type{color:#f5f}.hljs-comment,.hljs-deletion,.hljs-meta{color:#5ff} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/qtcreator-light.min.css b/src/app/resources/assets/highlight/styles/qtcreator-light.min.css new file mode 100644 index 0000000..7f1af8c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/qtcreator-light.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#000;background:#fff}.hljs-emphasis,.hljs-strong{color:#000}.hljs-bullet,.hljs-literal,.hljs-number,.hljs-quote,.hljs-regexp{color:navy}.hljs-code .hljs-selector-class{color:purple}.hljs-emphasis,.hljs-stronge,.hljs-type{font-style:italic}.hljs-function,.hljs-keyword,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-symbol{color:olive}.hljs-subst,.hljs-tag,.hljs-title{color:#000}.hljs-attribute{color:maroon}.hljs-class .hljs-title,.hljs-params,.hljs-title.class_,.hljs-variable{color:#0055af}.hljs-addition,.hljs-built_in,.hljs-comment,.hljs-deletion,.hljs-link,.hljs-meta,.hljs-selector-attr,.hljs-selector-id,.hljs-selector-pseudo,.hljs-string,.hljs-template-tag,.hljs-template-variable,.hljs-type{color:green} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/rainbow.min.css b/src/app/resources/assets/highlight/styles/rainbow.min.css new file mode 100644 index 0000000..c8ca25f --- /dev/null +++ b/src/app/resources/assets/highlight/styles/rainbow.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#474949;color:#d1d9e1}.hljs-comment,.hljs-quote{color:#969896;font-style:italic}.hljs-addition,.hljs-keyword,.hljs-literal,.hljs-selector-tag,.hljs-type{color:#c9c}.hljs-number,.hljs-selector-attr,.hljs-selector-pseudo{color:#f99157}.hljs-doctag,.hljs-regexp,.hljs-string{color:#8abeb7}.hljs-built_in,.hljs-name,.hljs-section,.hljs-title{color:#b5bd68}.hljs-class .hljs-title,.hljs-selector-id,.hljs-template-variable,.hljs-title.class_,.hljs-variable{color:#fc6}.hljs-name,.hljs-section,.hljs-strong{font-weight:700}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-subst,.hljs-symbol{color:#f99157}.hljs-deletion{color:#dc322f}.hljs-formula{background:#eee8d5}.hljs-attr,.hljs-attribute{color:#81a2be}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/routeros.min.css b/src/app/resources/assets/highlight/styles/routeros.min.css new file mode 100644 index 0000000..0378678 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/routeros.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#444;background:#f0f0f0}.hljs-subst{color:#444}.hljs-comment{color:#888}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-attribute{color:#0e9a00}.hljs-function{color:#99069a}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#800}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-link,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#bc6060}.hljs-literal{color:#78a960}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#0c9a9a}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/school-book.min.css b/src/app/resources/assets/highlight/styles/school-book.min.css new file mode 100644 index 0000000..843f268 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/school-book.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#3e5915;background:#f6f5b2}.hljs-keyword,.hljs-literal,.hljs-selector-tag{color:#059}.hljs-subst{color:#3e5915}.hljs-addition,.hljs-attribute,.hljs-built_in,.hljs-bullet,.hljs-link,.hljs-section,.hljs-string,.hljs-symbol,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type,.hljs-variable{color:#2c009f}.hljs-comment,.hljs-deletion,.hljs-meta,.hljs-quote{color:#e60415}.hljs-doctag,.hljs-keyword,.hljs-literal,.hljs-name,.hljs-section,.hljs-selector-id,.hljs-selector-tag,.hljs-strong,.hljs-title,.hljs-type{font-weight:700}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/shades-of-purple.min.css b/src/app/resources/assets/highlight/styles/shades-of-purple.min.css new file mode 100644 index 0000000..3dd25b4 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/shades-of-purple.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#2d2b57;color:#e3dfff;font-weight:400}.hljs-subst{color:#e3dfff}.hljs-title{color:#fad000;font-weight:400}.hljs-name{color:#a1feff}.hljs-tag{color:#fff}.hljs-attr{color:#f8d000;font-style:italic}.hljs-built_in,.hljs-keyword,.hljs-section,.hljs-selector-tag{color:#fb9e00}.hljs-addition,.hljs-attribute,.hljs-bullet,.hljs-code,.hljs-deletion,.hljs-quote,.hljs-regexp,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-string,.hljs-symbol,.hljs-template-tag{color:#4cd213}.hljs-meta,.hljs-meta .hljs-string{color:#fb9e00}.hljs-comment{color:#ac65ff}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-selector-tag,.hljs-strong{font-weight:400}.hljs-literal,.hljs-number{color:#fa658d}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/srcery.min.css b/src/app/resources/assets/highlight/styles/srcery.min.css new file mode 100644 index 0000000..377d61a --- /dev/null +++ b/src/app/resources/assets/highlight/styles/srcery.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#1c1b19;color:#fce8c3}.hljs-literal,.hljs-quote,.hljs-subst{color:#fce8c3}.hljs-symbol,.hljs-type{color:#68a8e4}.hljs-deletion,.hljs-keyword{color:#ef2f27}.hljs-attribute,.hljs-function,.hljs-name,.hljs-section,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-title{color:#fbb829}.hljs-class,.hljs-code,.hljs-property,.hljs-template-variable,.hljs-variable{color:#0aaeb3}.hljs-addition,.hljs-bullet,.hljs-regexp,.hljs-string{color:#98bc37}.hljs-built_in,.hljs-params{color:#ff5c8f}.hljs-selector-tag,.hljs-template-tag{color:#2c78bf}.hljs-comment,.hljs-link,.hljs-meta,.hljs-number{color:#918175}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/stackoverflow-dark.min.css b/src/app/resources/assets/highlight/styles/stackoverflow-dark.min.css new file mode 100644 index 0000000..33cea55 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/stackoverflow-dark.min.css @@ -0,0 +1,13 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: StackOverflow Dark + Description: Dark theme as used on stackoverflow.com + Author: stackoverflow.com + Maintainer: @Hirse + Website: https://github.com/StackExchange/Stacks + License: MIT + Updated: 2021-05-15 + + Updated for @stackoverflow/stacks v0.64.0 + Code Blocks: /blob/v0.64.0/lib/css/components/_stacks-code-blocks.less + Colors: /blob/v0.64.0/lib/css/exports/_stacks-constants-colors.less +*/.hljs{color:#fff;background:#1c1b1b}.hljs-subst{color:#fff}.hljs-comment{color:#999}.hljs-attr,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-section,.hljs-selector-tag{color:#88aece}.hljs-attribute{color:#c59bc1}.hljs-name,.hljs-number,.hljs-quote,.hljs-selector-id,.hljs-template-tag,.hljs-type{color:#f08d49}.hljs-selector-class{color:#88aece}.hljs-link,.hljs-regexp,.hljs-selector-attr,.hljs-string,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#b5bd68}.hljs-meta,.hljs-selector-pseudo{color:#88aece}.hljs-built_in,.hljs-literal,.hljs-title{color:#f08d49}.hljs-bullet,.hljs-code{color:#ccc}.hljs-meta .hljs-string{color:#b5bd68}.hljs-deletion{color:#de7176}.hljs-addition{color:#76c490}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/stackoverflow-light.min.css b/src/app/resources/assets/highlight/styles/stackoverflow-light.min.css new file mode 100644 index 0000000..c36d63d --- /dev/null +++ b/src/app/resources/assets/highlight/styles/stackoverflow-light.min.css @@ -0,0 +1,13 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: StackOverflow Light + Description: Light theme as used on stackoverflow.com + Author: stackoverflow.com + Maintainer: @Hirse + Website: https://github.com/StackExchange/Stacks + License: MIT + Updated: 2021-05-15 + + Updated for @stackoverflow/stacks v0.64.0 + Code Blocks: /blob/v0.64.0/lib/css/components/_stacks-code-blocks.less + Colors: /blob/v0.64.0/lib/css/exports/_stacks-constants-colors.less +*/.hljs{color:#2f3337;background:#f6f6f6}.hljs-subst{color:#2f3337}.hljs-comment{color:#656e77}.hljs-attr,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-section,.hljs-selector-tag{color:#015692}.hljs-attribute{color:#803378}.hljs-name,.hljs-number,.hljs-quote,.hljs-selector-id,.hljs-template-tag,.hljs-type{color:#b75501}.hljs-selector-class{color:#015692}.hljs-link,.hljs-regexp,.hljs-selector-attr,.hljs-string,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#54790d}.hljs-meta,.hljs-selector-pseudo{color:#015692}.hljs-built_in,.hljs-literal,.hljs-title{color:#b75501}.hljs-bullet,.hljs-code{color:#535a60}.hljs-meta .hljs-string{color:#54790d}.hljs-deletion{color:#c02d2e}.hljs-addition{color:#2f6f44}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/sunburst.min.css b/src/app/resources/assets/highlight/styles/sunburst.min.css new file mode 100644 index 0000000..9210ae6 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/sunburst.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#000;color:#f8f8f8}.hljs-comment,.hljs-quote{color:#aeaeae;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-type{color:#e28964}.hljs-string{color:#65b042}.hljs-subst{color:#daefa3}.hljs-link,.hljs-regexp{color:#e9c062}.hljs-name,.hljs-section,.hljs-tag,.hljs-title{color:#89bdff}.hljs-class .hljs-title,.hljs-doctag,.hljs-title.class_{text-decoration:underline}.hljs-bullet,.hljs-number,.hljs-symbol{color:#3387cc}.hljs-params,.hljs-template-variable,.hljs-variable{color:#3e87e3}.hljs-attribute{color:#cda869}.hljs-meta{color:#8996a8}.hljs-formula{background-color:#0e2231;color:#f8f8f8;font-style:italic}.hljs-addition{background-color:#253b22;color:#f8f8f8}.hljs-deletion{background-color:#420e09;color:#f8f8f8}.hljs-selector-class{color:#9b703f}.hljs-selector-id{color:#8b98ab}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/tokyo-night-dark.min.css b/src/app/resources/assets/highlight/styles/tokyo-night-dark.min.css new file mode 100644 index 0000000..dc63ad9 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/tokyo-night-dark.min.css @@ -0,0 +1,8 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: Tokyo-night-Dark + origin: https://github.com/enkia/tokyo-night-vscode-theme + Description: Original highlight.js style + Author: (c) Henri Vandersleyen + License: see project LICENSE + Touched: 2022 +*/.hljs-comment,.hljs-meta{color:#565f89}.hljs-deletion,.hljs-doctag,.hljs-regexp,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-tag,.hljs-template-tag,.hljs-variable.language_{color:#f7768e}.hljs-link,.hljs-literal,.hljs-number,.hljs-params,.hljs-template-variable,.hljs-type,.hljs-variable{color:#ff9e64}.hljs-attribute,.hljs-built_in{color:#e0af68}.hljs-keyword,.hljs-property,.hljs-subst,.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#7dcfff}.hljs-selector-tag{color:#73daca}.hljs-addition,.hljs-bullet,.hljs-quote,.hljs-string,.hljs-symbol{color:#9ece6a}.hljs-code,.hljs-formula,.hljs-section{color:#7aa2f7}.hljs-attr,.hljs-char.escape_,.hljs-keyword,.hljs-name,.hljs-operator{color:#bb9af7}.hljs-punctuation{color:#c0caf5}.hljs{background:#1a1b26;color:#9aa5ce}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/tokyo-night-light.min.css b/src/app/resources/assets/highlight/styles/tokyo-night-light.min.css new file mode 100644 index 0000000..0096d4d --- /dev/null +++ b/src/app/resources/assets/highlight/styles/tokyo-night-light.min.css @@ -0,0 +1,8 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: Tokyo-night-light + origin: https://github.com/enkia/tokyo-night-vscode-theme + Description: Original highlight.js style + Author: (c) Henri Vandersleyen + License: see project LICENSE + Touched: 2022 +*/.hljs-comment,.hljs-meta{color:#9699a3}.hljs-deletion,.hljs-doctag,.hljs-regexp,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-tag,.hljs-template-tag,.hljs-variable.language_{color:#8c4351}.hljs-link,.hljs-literal,.hljs-number,.hljs-params,.hljs-template-variable,.hljs-type,.hljs-variable{color:#965027}.hljs-attribute,.hljs-built_in{color:#8f5e15}.hljs-keyword,.hljs-property,.hljs-subst,.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#0f4b6e}.hljs-selector-tag{color:#33635c}.hljs-addition,.hljs-bullet,.hljs-quote,.hljs-string,.hljs-symbol{color:#485e30}.hljs-code,.hljs-formula,.hljs-section{color:#34548a}.hljs-attr,.hljs-char.escape_,.hljs-keyword,.hljs-name,.hljs-operator{color:#5a4a78}.hljs-punctuation{color:#343b58}.hljs{background:#d5d6db;color:#565a6e}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/tomorrow-night-blue.min.css b/src/app/resources/assets/highlight/styles/tomorrow-night-blue.min.css new file mode 100644 index 0000000..2f71b26 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/tomorrow-night-blue.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs-comment,.hljs-quote{color:#7285b7}.hljs-deletion,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#ff9da4}.hljs-built_in,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-type{color:#ffc58f}.hljs-attribute{color:#ffeead}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:#d1f1a9}.hljs-section,.hljs-title{color:#bbdaff}.hljs-keyword,.hljs-selector-tag{color:#ebbbff}.hljs{background:#002451;color:#fff}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/tomorrow-night-bright.min.css b/src/app/resources/assets/highlight/styles/tomorrow-night-bright.min.css new file mode 100644 index 0000000..d335629 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/tomorrow-night-bright.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs-comment,.hljs-quote{color:#969896}.hljs-deletion,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#d54e53}.hljs-built_in,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-type{color:#e78c45}.hljs-attribute{color:#e7c547}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:#b9ca4a}.hljs-section,.hljs-title{color:#7aa6da}.hljs-keyword,.hljs-selector-tag{color:#c397d8}.hljs{background:#000;color:#eaeaea}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/vs.min.css b/src/app/resources/assets/highlight/styles/vs.min.css new file mode 100644 index 0000000..fb695c1 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/vs.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#fff;color:#000}.hljs-comment,.hljs-quote,.hljs-variable{color:green}.hljs-built_in,.hljs-keyword,.hljs-name,.hljs-selector-tag,.hljs-tag{color:#00f}.hljs-addition,.hljs-attribute,.hljs-literal,.hljs-section,.hljs-string,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type{color:#a31515}.hljs-deletion,.hljs-meta,.hljs-selector-attr,.hljs-selector-pseudo{color:#2b91af}.hljs-doctag{color:grey}.hljs-attr{color:red}.hljs-bullet,.hljs-link,.hljs-symbol{color:#00b0e8}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/vs2015.min.css b/src/app/resources/assets/highlight/styles/vs2015.min.css new file mode 100644 index 0000000..7f6fe11 --- /dev/null +++ b/src/app/resources/assets/highlight/styles/vs2015.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#1e1e1e;color:#dcdcdc}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-symbol{color:#569cd6}.hljs-link{color:#569cd6;text-decoration:underline}.hljs-built_in,.hljs-type{color:#4ec9b0}.hljs-class,.hljs-number{color:#b8d7a3}.hljs-meta .hljs-string,.hljs-string{color:#d69d85}.hljs-regexp,.hljs-template-tag{color:#9a5334}.hljs-formula,.hljs-function,.hljs-params,.hljs-subst,.hljs-title{color:#dcdcdc}.hljs-comment,.hljs-quote{color:#57a64a;font-style:italic}.hljs-doctag{color:#608b4e}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-tag{color:#9b9b9b}.hljs-template-variable,.hljs-variable{color:#bd63c5}.hljs-attr,.hljs-attribute{color:#9cdcfe}.hljs-section{color:gold}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-bullet,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-selector-tag{color:#d7ba7d}.hljs-addition{background-color:#144212;display:inline-block;width:100%}.hljs-deletion{background-color:#600;display:inline-block;width:100%} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/xcode.min.css b/src/app/resources/assets/highlight/styles/xcode.min.css new file mode 100644 index 0000000..cda4adc --- /dev/null +++ b/src/app/resources/assets/highlight/styles/xcode.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#fff;color:#000}.xml .hljs-meta{color:silver}.hljs-comment,.hljs-quote{color:#007400}.hljs-attribute,.hljs-keyword,.hljs-literal,.hljs-name,.hljs-selector-tag,.hljs-tag{color:#aa0d91}.hljs-template-variable,.hljs-variable{color:#3f6e74}.hljs-code,.hljs-meta .hljs-string,.hljs-string{color:#c41a16}.hljs-link,.hljs-regexp{color:#0e0eff}.hljs-bullet,.hljs-number,.hljs-symbol,.hljs-title{color:#1c00cf}.hljs-meta,.hljs-section{color:#643820}.hljs-built_in,.hljs-class .hljs-title,.hljs-params,.hljs-title.class_,.hljs-type{color:#5c2699}.hljs-attr{color:#836c28}.hljs-subst{color:#000}.hljs-formula{background-color:#eee;font-style:italic}.hljs-addition{background-color:#baeeba}.hljs-deletion{background-color:#ffc8bd}.hljs-selector-class,.hljs-selector-id{color:#9b703f}.hljs-doctag,.hljs-strong{font-weight:700}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/src/app/resources/assets/highlight/styles/xt256.min.css b/src/app/resources/assets/highlight/styles/xt256.min.css new file mode 100644 index 0000000..ef34f0c --- /dev/null +++ b/src/app/resources/assets/highlight/styles/xt256.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#eaeaea;background:#000}.hljs-subst{color:#eaeaea}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-type{color:#eaeaea}.hljs-params{color:#da0000}.hljs-literal,.hljs-name,.hljs-number{color:red;font-weight:bolder}.hljs-comment{color:#969896}.hljs-quote,.hljs-selector-id{color:#0ff}.hljs-template-variable,.hljs-title,.hljs-variable{color:#0ff;font-weight:700}.hljs-keyword,.hljs-selector-class,.hljs-symbol{color:#fff000}.hljs-bullet,.hljs-string{color:#0f0}.hljs-section,.hljs-tag{color:#000fff}.hljs-selector-tag{color:#000fff;font-weight:700}.hljs-attribute,.hljs-built_in,.hljs-link,.hljs-regexp{color:#f0f}.hljs-meta{color:#fff;font-weight:bolder} \ No newline at end of file diff --git a/src/app/resources/assets/img/180x180.png b/src/app/resources/assets/img/180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..d2c35710b549ac05e9a49b43fec61b0c812b96e2 GIT binary patch literal 31245 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
-yS?yie&)=i0O&Y#V0)Rbi@! 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 IM6N<$f-`ZHm;e9( literal 0 HcmV?d00001 diff --git a/src/app/resources/assets/img/180x180.png~ b/src/app/resources/assets/img/180x180.png~ new file mode 100644 index 0000000000000000000000000000000000000000..6288d8e49978a4cc64dfbebe8692787c9507241f GIT binary patch literal 28999 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

@DS3jY_eU9-;A%QH6gpPQ`uA~jrUq?xC3nwd z1Dz5oOvA{d^VjeHrR^e)S2)9>M(d}K@EOsV3hMzq zK_(U<2dC>Wg$kV^qH1oBSsShU^XdiyLH!*(-jv?TX^6E z)j~}NHJFpebmdhnhw~UQ5)FRyNC!7e_M6kL$h9$Fev33G=JRX%laZs?PvzIY>AcVl zrc$wg8?r-g$O}Rde-a?zHQxhcgx!d+2mm;Wql@?2kRkc$nc7 z$B2Ox+G-u|AUWV~DpOMcM#^-Wm%kzhgoo2EGlrUrDqcBD!nNyEOAQoP6A9U_bW9`m z=ws>0)49>+p{`wj8X472(O#d2X8577C^*k9l)Y%4Gl%;EXbiN%cyX2-o|?vqma=3@ z0d=<)uJHht+{=JylY=!~!X5($)}iuf2xUim8UR7-JgXeS%=r85M@_lV1 zW`C%6)HFR)m{m8|>FnDbW-K)qQPH?`3Az`~#;|*U=TWG0^n9lY#dcYS0~&P>8b$r4 zkuwD)u0@G=z=$JY5uLR7C}l{QS#;b1FXEs9Wj){4 zyjRl~4bR@bxXk`nJKvn(qfB|V*3Z1R<@F5V>SQzw)TN5k=L^q59+>xaFyU=J^T@}TsEEP|4nmBu$daca zRYKC2kNX{MK%3ac;>b**?l0lDx(TdHX^Sb|xkPaKHRCBFz4>&r6$W3#V zjyBYAX#{2H^_POt|Aunk{&U;qKlvBid7N;1^3!1JINu_VA8R9W^qt`o_c1^8e2vqN zz~UyhVBX>klwJ6(g%z0^o^#U9R37Yr~SIl2i0!Km{r4nREr_(@A z7jxiW5opa1b3n#L2{Kxqh=je(&BIZz&Y~zALRfAs<+%{$#SC5CW~d7nb98AKwtkkJ zOi}uSo|p>;t6&5jjCB*Njrm?44?qP#PA*n(-!E~&YTRY4=v~ItTK*unM(!v?Fuh`} z&1aKAhjW*VXseuO;EPXvV24?TIK&-i&S5~yDRoC`0yT8Cq=fki&0((x#1G?FsiJxDod zWDEghrQVp#1y}twVz2M1fRTm_;Um|Jsi$W#2il$x<|v(DJ8Snt|IlW07-d^}D06)p z!7;C=6Y{W?ZgfaN;>Oe0y)m{~ekB3xQ*)9QQRxb3rc(KwAySMw2wgWp5u0kOQm1r~ zw!oApogzI+{G7p<^Vf?wX`ra;@_iqQbm{B4H->jne|&rm?T|$J@;BszQO9{4c=69I zmcg-c32fccJ7rI@Eq)_!A5p28n6^PIdF>nv8(0Mm2d)v$NH0c2<&@=^i!O(1ST#=? z>7(V~EgERrqmD799ETo5KOMhI!3-Vy@goI_K@z5mm`ZpURAWI4WQW?gGdiOAv4*gb z%lp9NQ0_FHDF+y3QX%a-A5Z8~I~_SsQW9fyCYf3{(UMu(rlXR{XO3ng?{y({i+$KQ zCuEC9uJEQWk`M=O9C&kJs|1j_drU8$#?c2CfAiUV7b5Dr`Pj$D;6nuGz4^PPek2kW zBQfceB$QMmsJh0(jXc{dHirbU$$@4TVW_zD50@- zwrS^sj5+baP7L#hp>zz4NBS{blYQgqL%g2@K<%3nNACmXo`3O!@gkmAcmz=S1 zmJbfM2$Kq3;lW*v!-llq#DdN`FlxzevpdC}pV8mkKB@`5dZ7+7Du8fQs0$kNQwz$3 zcnj4@u=GiLlN9qWdbR?jLZvC<&7_^0N9TvEd|H?xaD?c2_L9z8E~7wUB@&}?%0u~3 zj#G2$Fff{Qb}VqjqC+}+8V|=33oMYUx3L3e07wY=8}c+pBks;PboALKWOxVfiVjTmRrp+0y9U`5W6!d9dK2Qm20rXA(Jaf_aen#5)rqbYT(un$W=Xe1*b zu#UVE27MEU!~hUF&MF-0v{+eP%ot!L&*G1#4F3I)f&)~96!U^!{GJl8ja3$KwRUlJKbZ#YE*^C^tINV zCY~+JZsU=?^8F|pZcQy!7ft3>x5)NpZmtxE0D_*&seq$^i=qv}rJA|7CqX>7g z5OC8DXJqOzr!+I$(rD?~D@QF5#&*&+VUsLP7S$K}FdEFpT(d42Uc0-rnpaq)GZj9X z0+jvNY*D=@Wqxvqk%awWew;>y%}X&ua}@*H(|AMc;}|I7HPHP5V9X40;En|x7<-Gv zS7=I+EkoGRCnXoeE7Xa&<4xqYDSc6D#>zi|EXYaXlY~oycIw z&m4N-%bApRViZ;+UmZ`Q$3w3#;%VzV90mv9v^r`mSL`c%GaNmxs0MjqviC}w}#>F5zO@#UR+2u zu4%|kY>j1djLgAAZMsK0m$L=!ED8=5*}=5|@N z=J8Pm&kW**+^HagI}DP0)i&Ld^^XF4JWbOZeZM=527TaMI?B~ zTLBO``T%~+Kv|aAR;J0|MWnTaU)apH5li1b7}3z*+^6;ffXVZ0TU4s=#?GNlE2;x9 z?0kwrOBnQJ9EJNRLL-hc;8PFuYz$HuAz<9h!*W;LdtwzX&#~ao$cMEvo{tj1`TAJi zukRZ>gHa+6#Y^rz#n4lVa1WQ9&mP751lvL8IZo~=3$Yk8G#K^cz=PbFj}uFyz1(`) z=#!4dxmeA`na&kHBo0ZL8Z6nHcB3n}ld};6yeM&KVW0J*$}-S8pE?(zkOH>-90%i_ zDBoX%6!l?mNj_899ksC5w6RD<4SzT_x-l5H?RL?=;ofGbey%%cNFi-$Rex56>LLb&XV@W@j533+#?2=}aF0(Lm9aDxB^Gq_(Jt$% zP~D6cDm~IAmwOm-8H4A&N1({BT(?!eqKeAF2)4q5DHwj!@q0eofKa(tSPVIJhva?I zkD);JULuZu?oWL?OY4FHyUmI!hb5CZ!`Xso`?rZ z@8SrtyV!Jps0>YWl+oDsP|`Sre2kV%(dAzTl*RvgO(w$}M-vS<;)F)RQ^ z8550wM_0`TI%J>lYhvf1T$DH)r#d3peds|Wl;h!g>{!PKk`8xD;5vC< z04zSFKxczP*6VpkN>RDr*q^N_K<1$B-Q_h8UAWLeMoQD(A(&~;{FKO?yB>y|!K#Wy z_1*DMEMOEI)X|u#uA0#z9w^7BV>s@j{CuMT{^qhis?e7=4Lk-JG0G?o^Zfq6Bk{^q zZ0zS=MVx~tR@gxuT&UN~hQ;uz#xNO{PAfrHG*UX9C(PgJ+&C- z;aO!o44Lx?m~HZ&5f)3Kx{*gm@{kE2^CdnV(B6w-T+DkN0p^=j0NECnJyO1L*ReE2 z>(+8BEJj}kV-BMoHLX$`d`nvZ9&~2(L62`EZnHDgUwe2QT1XL;V!^&?Mm9)wc4+PU z!7&ER^^~32Is6{pt?YETxO{TEsn)Hi4*8Ks4OrB z^DuWGzvrdX%8hlfr2~<%49k5HG(LTAAY|kt{A4pSiQ+L*f;ln9JX^cJ+=MWfHk@@ zHPnH+VIf|d@=Il!&d{jy1b_S}TWUHmd-Rx=8~IBgt9OrNLsKq==kDJ6&Um%)Teqt? zDHB^tc}9ok)v8P^fuF_`&u3rz%65ZIIhY2_RH5Zo(mBnexFIJ)U{3LHU-X=s;5uIZ zlk?$ikOSHAH7NHFesyGu+ zSVN9-R2mhHgGNMy)4UaJF*Q-6@tF*?Ne8TY<~iUA^F~^zH=Qv4*5hh%KcDzUoqU~j zE|EuBq#xJ=lD%5t(WcyZ<_Y^(#84QFT?H*w_ON=JR}OVfiP1wvVA?oFz4Xv45|kjoL(cd6Yo-RA=bn7l+w&Q z59g`IIX$CsQC2$9Ac%^BbZ~VxYzc5Ys1v=ew!!uwzed``Lp+raY0x<}o1hHSF$QdS zKh%xdS4OQY;oqmw!4!Cf*lj!|g1rU#lyyTt*{p5e(Sb-Vw}1aT+iAR7El=1SgI)t} zo?q_HUY>dO3i~Gy|YxPOucW=5Ds`oZaJPO%(hMUAo4!l>;fiK_QrRQai+#)yq~Wz-h9~k zo?>-Go!r%&psWC458)Woa_9^9EU<5IEHF0To7lr#&W;n0N;76G${^_!#Ux|i_G!Ep zB2zt_($rU3OC~yO$x#1rt?DY4^;xBnBGR~rsm#Q(!eied&_|tr$7ihUGQ_hL^gZ`_ z&4r&Lbnimi}@eSt-aE+-F@G4abxx#}#Ow=>}(j=#m}^pIi(zW z>nVpexT5iggoT$JM&QlyeB3QIA7NfL8qvAZ?wv3M8Ud#9{^rx$84mN#m*dQNpQaMC zV%2C?y_s`sD1s`_w{Kd;(;h)uD~!L*%s&g`JiLw8RQk94EqylG|*Ete&Wl3lwX zZ9qcioR|wH9E|lOUYLFxhY4bt8^*#^gAaUysj=S!VGjFpPb1`={>ksfiQ#d2niw8r z;r30)rZYA(n++&yfK$9weHm{~63ctJDIGw zcBC0JvN8bO%Q2Sji8XuS(UU33*veY0tD%0C4;L1RM9Rm*g!nWMS5Xy@!Xb|8Z8Jbj zHOq0!V<<1Nr9BN9bPBI}r7WIy)~0AVA)x8YiUc!<=7^pGGuh7u)SV^|EZ}uuP)81o zO*S)l7SaG{NI6v&*DrqZ!+d8ojvnZ5MNK!>)j;4m zPVP}-RfnsnT0LZ5hfaPlBN# zC+^1}Gd7SWo~5LQM~XdUAK`kIxwBxyda&9!FJ%t(rDH}S8b+0wgF5r;df`ya(c|5c zcxokn7`Z%sLOp#}sM}NS{yvx|*V!XFTWN#y_d}-Y*D%&q`a<%deEktDs#puK5Ppvl zewEaLhAyCt(0{lbUV!RhhNVpG$h(e{fu3Sx%b)#0J`{;}>#-f?upE@+=op*tKmC_^ z>gV;Z{$@O39uKhgeX=DZ!#CfbQmjIN0C(IH|FZrze~Np!zn5q7aR!7rBu)Zl2qfTS zJ6$lyR}7=i?a1AHd1w4w1?zz-k`;SS-LPoZS%$@9#XL71MyP}|7ItO_pdmL@qTMnc zvTT}DTOeZkrh`hpGm)FhsC!Pca;%Zaw*4%(sprC*4#Zb3Q#YDk%&*#}{OtEkls?EE z^|iC@Xw1V1#+7N%m>nNWq%1Wvh8hz~%uF!YQf3EY++X>ZM%+FuBE(fic9+?J*q?vh6Js~=BGSZFl?H}f!{Pw6t^>yPN8{l!Nv!rUgbzrW4&N;QebJNbmJIG}EkXDcd zZo~1AW-t}i6-U;cp&OLHjg zF6RDN0aFPoUWG^)GW5)O66;-!$g3V6DifdMY`B}Bf6sOm1I6>-{y*}y6#5j)XrmTn z^06j7tQyB$J^I7n-7eqyj_vYY@hXRSA73BFH_cYATsiGYyf^U_i#2iJ%7!hfxl3%E z(Z-juBX@TPh62xUu=h8<8qV;;c*|_OPZ4~Z^U7mB{v^_p+n8qt^PGL>TL~4H9dc;)IDH>!PoQJeijrTMbXI5Tj2$2;R)<1xh=xSk>+w6%&cRv1x7`%!%v zGfi}E$jEtUO=+3#5QDS-`QQIf|I0AC@vIiRj+fi~Fa~6=h}ErlUJG5X&exczh4qA_ z5#Ri>O!Y2&)*NamqMRl}CQb-?E({t^ti&tfU?|Ar&?bQ66ULkgAq(RB>u<$jhH-uy zW<$0(-ZoCS+0L$FA2arYgaJQ_7xA2Y=2LON%AakIv+X?Eee}1V$;Z#qpxa7lzJ3i(729L$ zU4oIqM9QSmkl}gcyEER@*%U!rK2H7AqD&cwj~&X0D+Nqq!Ee0&A|lpBIO}sUo_U0= z0C<%$4tsCg0{9kSeZG(cfOc+>Efb;sIfOBQ5QM&ZI^<=lC&@ zjyj(Y%wN?WFzyc6$d*{7gZ<~<{q1n7c4$hn#GL!S5XSMvAOCoJQ=CQoOnY>n6;i0d z+%)Vlu)&og$uaos;iF*c+hkx7Ozg?Jl9z1f=1h3fRm9{ z(mY0A^zXah+Ac698cqn>0*OF2Iya0Z_kp)mP!F=lcbwXT964izRbY@*81mg~Ub{W{ z_-}1@IC8l6Yu?1QivExvI(rgzeJh^8f7dHtxxE~uA-1Ib&RG?Lr(Uu0e)Xum&kPT) z3@@*&vZ{-D@O7jgPyfY#w_SeZ*SEVkgBh=mz{#KZ;W9PnKLK=h2w=j%0?5pD<9eRJ z4+gIr`|F1}gTg$J^UXTT!-X9VfY>(K2y-LJ48clxW9|uF1^ri_?59O#I@6Sx=}KED zN=Jgi+5s`=F&2Ph=ntcyV^laFA~&=3$i=H9jeEW?>xszsY&hU~$c`WMi6@l8P^nM+ zRy^1rV#7gZk|M|_BWv6f&hjYE<6DS)(1~NVvHDJ#J$0k=i8Su)e)9shxX#7qDZ2Ei zX(_!y*$A7Vutv}$UGWf8cSRYTw~Q0)Km5_{CJt7)j?Mnt7e2S0#xi)G7lBG(7;Tf2 z&ZpxuADiM1Ii-=8>^MpfSixhKc!A&^4yt@PmV2uCP57d!qq<+Z^@u z`RAiq%)!R@IC>y{lJWET!ra-F26**i+y9HxRwGry3+}JJ{?(d##46}z9M6zr5R5PC zRmBLUx#u{>40t^2I*xkC0DMrGPk?8Ur@6K~c z*zzE^nG_-0nEGu?xq^u^GP4Qv3br&Ir>h3qbDC9b8}`>(gSq#bZO62co_NGCNU)El zBJfJQy$Xfj@TTo54jczdU&lb^D%kDpXFuI;W47ZKgTdy>sr0s(0lDy2Riq;@-0LvN z{uD`+!FMRHDFNPYl>-{2D^yf-ax!2yz<9hYbK59?^&9_eyZK_gL>{b%2M6M0rmMC& z2}soQh&3aSTWBNyzI*NK>+M?&jQi3uC6RU6d0J~uM;HZKEpf*6Gd1l+%`(H6KCjCLAZS<&ugk3tm;a?u0- zi}Fv~bY2~@GxUIwcV{~KYothd4J`KIkHxzSv$DK&(`3qll7wE=oAc3N?Zjf>tS2Y+ zibgN{EJf)HDTf-d&Oio^3mp2Hbktu6qoI-vcD;?ZO&jEB*csW(|# zS_tw%k=6LB(hts@aVmGDugU&tYi&w6^(Sdb!z>rTGAEH)4o;ra>cJqXucn((F_G2z z#Og$rO;25U*4Uz0<#^l`?yU06ulT*L?j0}~?!T$gaCbz2)9R{Gbt&{No`K2%To=6= zPfHzg^ekB1hIJ=Pp;#ECpXoPJ0?%Wkd_KN3HZNr#ptx*1HCs|hRGkfY6e(vftY#J~ z#g6&vvEQ4=6`%>u7gKkI2j|S&$}K8xhC>C6G9ZFV&k7HeC5Y4)bvLlco{ICT?HooG z+76wsC$HNqdcpPHEK33Vr?Ty@-UJ$=wG$Up4 zYeiVZgZPf9>iEpJI=YR|qEI;zYajIqkQ8}P5o0sgfhnCTdnGv?BgVMclrd2VmQ5mbf z!3va@O2J8=p1aYY*gopuz-GQS*q3SEFj&@GPQpjpbeY&Ujg5Q9>TZ=Ejzk^Kj#$n% z8#is_&>7Zvl);_G5ybq_9hW3L;;mD;%#{_JVPj+4L{BqP*VPWvO4P+c^Er`%dJ%_>oR%R?29sMDTE`>@)iP8D4O>0GnqpqW4w2Eu+$xQG)TL$0w! z!=q;>(Hyso;V{H`ndCcjkU?5LKKeaYOJ^mQ{P`1kJ{?HM4xD38v>K`4Gw~q% zu^wPC$V#KsXlvFz`^j^+X{;XdnaYjpODviVrERnVCF96))!_!&2^NV*4C33?UL{-B zql-B?Z8y?{VLUq60lIjF!B1m?{3ZWrPs@^Yq|-ykGLdyUT{S) z>8}}ICKV+Vtq;sa%%ex zhhunX`7DQRoNZyGr)jOdZjjO!V$lt#={gOpoxIeI-kG7LK-#}<7tLWNBNV%!URWM- zaLJ}0NF*4tY0oT3Ed3oTQ<`B)(EN>tL{H=VFO7$TMr^wA+&PCloa=0D>wNL&l%n=TW+BGX-p$4g=$X_cz6m)pb#Zj>7tS4oo?bnuVO)8=Ue; z&Zt{^u^>yk(<{T0j97pE4Q7=5AI6s0n_=l(aJLKUreV!> zjnpMDYB;Mt5>w9qL)WbxT@zq=8gjS4CM&-`cu%1!mB14a^$x#w=(Mt0*VtC?p%TU?+H)WZO zs~HCI#& z_50X$?UTymnC%&z%XkcXZR(xKZbISK9=8C0$Mw^*(sNuST z@we{p@XnwS&!wm|K2*w15EL~#HCE5L$%b?&4X==Ul^?rFue@0uNyDQWlq!pL5`0g4 zh~EkeoiC-~@8RKCIJxk9;z0sp-u{rNw2F}I_X-QPv9b#~hwD|H+S4UEGj*p1?qs8c zMa*eyiUs?h4&uV>g?qnFgK|btgJRt)5FManIjFOt%Di%tl@YHD-5F-ZZik#-R~!#_ z>eYSs;c=fq((qPejTI^FU3)25tT6KXS6CeDi{fyfZ5*=;wL!|1? zL&4vWk@MKpgV&`|!BYydutq%}*eQ$a{VREV5V~@9w~bXqT-B}7aP@tj;IAyF4QV4D z=2il^$It-PaMUO@gi|qYd<1rnDYU#BpE}6O`8=Pa($wJT?8HdRs1fUIje^em>13=& zm5e$Wid7%(pfo(ymtyW%s6%MMq4IfTab4hVmD{oKw9AP}9e{SgGJLQ??@`lq)k$@lRsU8puIllKvDa5G=Y1vH9>Z$o=zB5| z3ynN0U21y|!O8Wt!p`;Pwz0y(_2KyM$*#`#5G*E!Rxco64Eaj^8X{=e8Xn!tb-Kj` zbjMi@04WzjnTH?(#XQm(UJZ$1Ul~ICNx&$RvX@@N=V?Vyo^sK;>u`eb000kLNklrW&XBN#$H& zp^oZIuCqCc1)enL4Aa3=-|hvTOR1-kRdp&x%lq`y%1|_q)`5tE&W`h(H44w82lzde z>^a$r4Ky^OPkzse4Say=Yz8@W?%C_~!I3+Ok2O?o_LT<3y4W7EQ*3Au>J&826#*#@ z>Wt2~#K!xxN@*yc51MJ5iZh8z9cYy=tDT^%zA|sQA6mUg70-rLY1(mT1{$TZnX{xa ztg|gUs{GVz^i;d3!~0UY>1g-j=FWBNfqle7OEpn zb(G;KtAFoC=n>9SffZX5YmF>g59>f5*eA6EmB}NtMhhiQ#Zn_{UszF3S&d3PjA;24 zi?58044`3c&nVsSRN>yXf~Q{2&y>$oh-2xGIs^@4)lUtsO__ z0efBkJ&lKTC?0C`s*62VUPaVB+wchCQPB-q2}0Z7b3%F=Kov9^Qw4sBO>y zkC7nzvu9Us{3^=|3x3~UUa!Ec*w774g?6TMk8WqXvYofSJE*&+z>p1tngSlz78Js9x^&30{hQ)J!}(SXZw{L)Wa%zIT>kma_3#) zMRHo{dha`xL#HEE$2xxKo0BMj4oq+pb39E$G<2_$dk@1Dme+OdU5#Jw^PHIA>mb8V zFY>LZJ`hpGyD~J|r~#^R?2R3GF9#>iI&9Ymy^4np`c_du^`g#9nO0b+(z&mO&aiSI zCo;!Gi9;Ebj-|TP_7o2#DfUwh9C%ar9x+(Y3Ja7429rT6klJyle`N;udhL{Ylry1r z#@RrDbkAQ!4`*PPmki|tSZ$YO?gNp|>1^eFRmO1xB~h#lNM+K`Iyh1plzpA$6g&Ow zhN1Ym!L9IcU1~q@9gSHd74LD(QAWwj3C?X&$x&^HZFPfQu>uXl4P;f;8*(Fc!(4&w z%2^4otgGeeWP3_fBXDpX_!WCA3u*a>V6k$7V|b`hDU-T!Q4Tt)lgXYA+-2KET|X9gSzAWj>S=iW@ucouZJxah~<@0 zJS=%f$u{Z)&M+RL-AVSCMHxWvai;QqY6S4MwQmH~b33hXj|F*M9mVT&JiXs52U(R_ zMcS1f_860Rtgui9R$R6I6&~s^9?85O&8^ioRPP68+a06-y->5dz6y`WLa&$KyMN_4 zD)W7x-LY2b!>W#B{n0uc3w2OcsLHW&M3>8R=v8=k8TTCCopDdE_hG5`>F2%vtccFB zJEmVHQJ0NpX@BjoKr? z9&56k8lpNKjY{>qN~hE|SXQx6Jg6@%M+1IHBv3p!o>=Ac%gsri_jp*)j;M!tIA0mO zgRXzm^ZY(%7zJPzAy(~rDDyh@WK~7$XYH#p)2cl2)7c1Tmc3BBN*ng@xDN};v4@2l z+p)el7TPxTxH44LF$w5cisDZ0_U3(=40^8t^{$n%DNxGb9wyuooC&BXz0aB0Syn@q zgSrPgS!6XUpzXP0^l!gcjf|h2mD#VAGwCb_@zfM#m4dPUl`M{nVxv)%(PnRkge~Ptx`KBBgcQw`5;d|B)iH*l|A`+1qdtmFsN)qg{(Yv zW!N4CRthJ$%Ge%$oCSQq;VkCBQf>`z?DQgLuxYgrvqsjGa|g*B-rS#H@3Lh4$B-+_BI|c5oD!DisCcoyXV*m9HkhA%s3* zK%ulQ%_*I6X*g<3D6g|H9y)d3wSv9^lzmgBGpxBW@qW&#tiGo#I$%NF?1!@6%CQ+0 zjV*3F7>=ylL$Wgb z3Ma+Nb-9gq*P`UIwRmRG=ROVv}*eiDo4+Z}|Qcx@zG1MrvADYMRk%}{~mRk{* z_itrfZhWggxn8uMJ)>XQ5wB^Eyuw3wRl5HAak{8P!!W^QTA*pgszH`lMp28W5>f~PFrKaW1Hls#rrEL5ScxMPm!vZym_yKIYuv&Xu` zU@xleMHb$tj&Y1w95en+vQVPbJ}MU4<}urFc1GELE{8Vgp~u0{&hLd6SGI%Tz-wr8 z<+yOP~QsFQ+!zcLCn8Yc^4piH__wq7Gnt}nmuKF8eCw;Q<< z$4kLO`=$=Cat0;F6(LOLa-c9%4|W2-aSdz!>^QHH@wCG_dew65pw4ViX$91B&nI|l!DXYd&&sx(&WdE2T}N%!(f24{KABmI5~ zr6c^6VQMHs{b~db9KYA=K4U_eP!>wi_Idx_G@*j3hC<~y7T&f_O{w!}pEO0$fe^}5 zZ&bFA{GIg_58lh)PE4E^Rz10~Iy4O~0p z*H-u37k*dwtQcpn+)KUg;HzP?U5!x6aL$Y#UG~Da%19@B2zIXgV|~?nABu@$vFfwR zsBGx{RI<5`*;iOR1hJ?yNUN)@84 zsi98GkbTKeD^^qXAp7#S&xUBU^Jt=u0vSByvQ9S!{;i7%?tpHH-nO^rAscN|9_n80 zL3Ktv6o1yQ_$dA!O&)^99v+lczgNr-_CqT}`}Bw^k{trLK4rvmD<@f{8+)No4N;lG zLzx1J&%QdPveIc#Mpu})3aDr2DSIgv&RUdzg@s20%I;5T(+G7L*yU3^R>a_jqkUB; zaHeI>?1ZI%tI?<CxP)aeQj&)N0fo^r60n(H~!Is;R&D>iaA^RmvM z9!?a%y>`?Q^nN)-y_BZxAUI=|xXhP%>Q3A7u>|FIJoO&e*D)O2Hq;hWFG?IM8*tfi@4>koUb(Z;ig8w;yOFbA{Pq#Og6tlz z9buj9v;wT{`M_2k(OHh)>EgkPMO0xbqnC9o_LRQDLyf={yE0T&=n4yd&jG69w`xlb zS7(Ii+=?CLWB)V_y^pLsqTYuE%kSBl>ON;VC@^kR!6@`9rJxYXhPcL1syUg0tw2#w zcM@eTcPQaNLAwj5) zd`9U$JlM86fI2PnclJ*)aQ4Q1)VC84Y(vKa?jRb$)HYUztTv;c^C4Le7wTavV7=jE z;YGdYSSVG)(|fctUYF*DZn(<&d-Az)tD;tnc+ALF-?<{xNECPP<3n)r{y9TxWOFvY zPgd3MKO~jdyJywUmF?|ezlW#d+D{){F*653%2H^|2S_V6c5l}CTxY$NH|pTRQ<3;%Hk}i&Y;HNN@pD&4OS7x9Z>O9bvFsCzGz zs=`)GMI+k_+k3L_g+^7-%D9hV;eB_e<=>9Kv!9Z}>K@*|a(E>U*S*TOA|chQJI+ey z$FS8Xr9|L1sxlosBGRP{#oVA)c(6XjMj4IY6AzVBzw-!0<*x?zdl61kNHs#o-y?=%q4;o) zU-8%@PVblF;Zc$@uw3TQ>XG`{!xV3JBc_6IUGp1N(uyTfpVp;+6C9rvArLF0a7XdJ zxnU_=>uinB7^req0JG1!ibgDS;JOO??1$#rl+$xdPg7hL*5&0;pBmFD5~=gJ@#`Xx y=Gtm}eto42MiJ_HkJwZf+85m->v=ux<^KgeEUE`Z)pcP20000aKHXn(E=@>tcQZ4ZiuzGc_Ya4y3w4s2lM|eij^rEm#LwKvGS-dAaq~sDQ z;S*uME&~eRT6(h1Zx(0k{AIBoi!OlO>gmn4aI%G!oL&%~5cU=FC8aTs^(C&fy1XQL zSk4FrQ9=aqlBC22d5Q!itFp89zR8+zkxlU^^42J$iz7=;ynazj(lsqPBYIk%JY{R| z|MzKRrl;!NT|wx6HOlS4gL?-qZ<<>2 z0Iqhy^Q#w-jWK<1z@`%*B!Psw_ikG;Bi39oSM0UV zy-$d&9C_jCoU`}ZtBH0-tY#m4>u>+htHu5kgO zr@vY5@bJ*D^B>BwtbX^3TitAv*Z7IHW`9~A?`z#?yVq^)pIsd+pa0Dx%f00YgYkPP z&#|C=wx#`MIo5@H93P*>HPnUcxW?bFhCZZ&_8)D}=)-z*p563oXH;vPcO^r_9ly=BQcSXzeJGip_8yZe}~3?zY+82YRdRQph^sS7!Uhv9$opOG@J3~e(7`FSX9wwa{1fP=ZKwE zOQ=dQ8=zXn8A0o{Y9T4`sQdi<+!e4|4i1WguMlCTD72ug4>rp{Sc7Y3)dZ4NCE%E= z)l|!;in@6uR;q!Rv}fqOa`iuRmN9K$=@n;+6NU( z6(IK81qZRp5^;_9p^aRXi}kCbRd1%=Mf=JADD9L%dY$y)^9plj^igl1-)DxP3Ujsk z6>f2?T29C8ycNg;GeR1p+!lRid{E(2TC4mJ9gtqUr)|zW*^EY&KGlG$0f9Imx(xv_ z>A1A7M9x=N2AXjXfu0EwFd;61E_edvAYNV}EUgE|7D&U&qB6fu6dq+z-KCX*Rc`e4 zdVO%+5{AHfV=la~++aa>%5rb)w+p$e4HrE zx*NS#kgkn^<$SytQwh9rAN}NY_R>F{Kt`XIjKK5CcsxTTCf&UeSMVZ5)YkTq_N9ZczN%qd=EnP`D7QO|P9BVd zxU!yJ9t1J)FRZQ!mn%yfe41U<(6db;R6$e{^WrK9;B8UxVtvOgcU;@0sTVhD73`A-EDU0G}4FGWM}m00@(zCG`VcgI(>}6K_6=y zS)&+!kfHS#1_Jf<>+K$y7^Z>-D86^$fS~F<3O$Sro@+)*y=NFBD5Pewz}JK2jgLLF z+&0?nEC}|;QMcQ~KfHOvu@YLMr71caq!TeW-aSj!?T5=uwDvMr4L;<`{^#dTj}ts-J?)| z8)MP`9v8V_rss2IZ|UKc1#WecM(mT)$E{}@gN}pGDE~aQ+blZ!qvPocF8!%EyV7U& z%>Bp@;g|MDc|jvQjJXLBWs+kh&yQfm@pl2s(=<7r2^R@V?iLH$1B>dsYiUhbX+WWqylg1Q5q*gOIRy3vPq zvrf8qlsks-HNn@qa1X!zueIGM4d31AoXU!8@O;tFfUQXjooVs@w7xYvYV$wQ7GWyB zQ()a{I}Kxw2wnk7<6;ur&oNj%@m%zFcVKfetu6FTVWN6?%1z3TbK2TD36I-lt9eDx z$J+9CydUgIdaY>R_;3_*f7JS9_&B=c0?!&6+3-Q)I04!H#w5BYN^*9*5!-!Lbl&3x zxOmqmD3B;fn}Bnd?sY3jNK1(8z28xFD=XAb61V$VTa%w&zt*glRjr0Hzgsr3&fc8- zQRsQe87qp`iv}0FkVf7e^brir`^}5?(XxG~R~MxwTc6rwZWzNBpEg71u}mYi z8==PZP(}Nz?zL;WOlr9+Z*G_k;8|X0Jql4!PM_i6Shhl-PGFghW?8mXiKEc1GoZDr z^{czASufH-XLZ%3d05kfiaFae%hAjo(lAkIUYCKfQS?(tEF*ua?Ng1!#mFP-56`cNT zcRd2K?WS6QuKD)G>udgKt8TV4*2t_x0+?#`Sg$`PaLvofZ|#pVoqcA2(eX3m1gTe* z(4T8#?sYTJY0vb&vLCHZ^*S9|wo0z0kF-Hr&7K*?g?=i1T0bymj$5_V0hh=XFa|MrGWa>Oa#Y?ark`{WjhoYTyM(0vgQPs z_DOi;R$0m`RARqKA5NN~uYBHRw9x0Wtr@?8dV3Sv`X)8NYW3#LiKp>Y(*u zjSt8)|FnNUd+DX+h11iX_G7(jy|+T!PN4FIgs%7N^{sNX4@1z~n8^Om`k>`&xq5Hw zez(Z2fmz=>4>ro&4}E5|xL^9r`uzVFebDZ0OAb8#&_jLoEv|XOz;!7&p}(o{Dz6pd z`D)NXi0R%18r7g|3Vm89PON?bI%mOA=0R2v(I{gu6tw9wMvE%v9 z<2E@cR1TVjjt%1qARj`(e%Ys|<@~q(cS4`x(rZkgN_Q$}H*`X}BqL(AmMz>vpCHki zK3rZsr%w=)^g$U9`ddd`E?$0lx!0iYmO-wW%nIN69Ls_BT>*F#pE`@E_`NEF;xFcB zouOFAK|yaqHPg_jPbR!PqmZDYw%2hU1;;)a15oH=SwrN2Nl4rqCUcq+;kr-dH^KF1 z%3OqB^IoRqBK8m2<(-_2qh2_(8y%dXuHcQ?rQS-P9Q&)MkMmN-8vW&}$or*FD}N1r zV#1O+c&_=%F{slV>BCh9nZw7#DClz7XcfBEX4RV#*0?5$gc@o*NTIKA=xCNQqX*E+ zG{{h94Q_>_qvnbkONIs^)yo9I`g~B6pHzfsFMm6Ug_2a>>RhAwAck6=ET6<;S3?;R zDp8pAbM%%`cRbQ&UVGsfmjeXvMqAX?rm^WY#_=e9*q43u$-1|U$NkVp`K^fS3+AF9=#$tvmHyiDy>3g-ZCMC0}eMZH(N`*2&W zL49rpz3!*oS=sBZ)xMI+vzR9ZAQ`%EJp1Ud)vy1Z=(BGuA<%0oOlc-cz$YqysuIlT zOZi%5fktc8uvl3@#fKGh;WP{nUGRv9PB!tJiz zVcQ#EbrJ6AgbB)Xd~~5}0)~g+65ndoV%j|niz+gwvqG!SA-rxX@>x++^Kt|8|QZhID%wZ#8}{O;ToS zHk?MZdjPc%tfXqx$oyz%=4J+T*IiW#QFVjWLMoA}Rpqm4g>umQFni)m4w`tK?Tt#g z4s2ums+?m?QJJfXF^(x?1zOY?!x+;vG2FO5QviB_^;n}X|MTcW8Pu5T{^&zvBL-oD zpHv1_Rx)-NG1W|7ajnk-=!2-Ru9abf+E{h9Dp0;5Mqog6fXvHv^+7OpHY{Qrx?G1< z8M78@HGaqxx$tq7O zBTAoP9)J~S!_~cv0-a6HT#R;TrZ6$+5prxjv-SL}{92h(fYKVqlgeD)+p?BPAASoV z9Al7qMx(;6+V8N6>{Ciy3V%YG>u99j`OLh|I)*JT zT4iJ=2f_1fXHx;vdUC&KxS!^wDbLaxc^P`;2gf?(|5W2E~KAh{zk6%=lr@ zIxxZ}5~hE;g4IAd2$gBfP!ip#Q(fSw`Rf=UT=jM)Mbnh3Fu2}NqY!MIE?e<`C_xQu z6$)rT%PD`3RlR9d{*hrLeW)yzJ}I;#1R``$sHg%w(lV?d)3wRJq;aK>#%8%(WxkSj zlpiJ#f={GR8mYAbV_!3lNTcQOMfM;hlnsNVo0D|Rq(wDkLmE`Igx@RUYXxkCR#B}X z2RRO8jPl3&!xGP|XVjHLqOfY9v+f&Ha&*NiG!c}AB`m5Yzei6q2JeJQ4A5CuO|z;e z&_3$e34z8jjHy;)e5ErqEOJHwk>#zGaMJ~!jTKKfL*Ujyb@zmz^YDuqXReLsCFoSXA? zO;hdn47yw=xV4?FI@a_VmA=OSHG5Jg5>&I4fjTse0kTYE(;b@09|uqpDHL z+?n8nkc^vO64QE(t114qz^vEK%mj$pn(=wU5w$4$(}pBu5_DXdSmOd(HnfiztTJNV zpRPHX5<{2#S)0o^l&lw+(kgIaNIjEw+I3jIMsI(_9|V~0KX5nNY*sSPesaJ)KC6%L z8RX>Yja&5;8uD5Bl0uw#o=Jf%SXd3xD6G+S{EJvO##{f`r!A;7GitN`^dJ}&X{w5@ zg|LQ#uR(`?cdZ%#VRA8r$4S`7GFo}ieN0>W@X17xNL^c$=h6h3bp1#KS<#$&ApEZ5 zXr;V=(I(C>Qk=i0Pt+TW)+k^*JD8~-$P3n8*y-2jwo4ADVB<(Zw`SIgpP%Zjb&5Ds zz0RPLGpvn2iH5+f84DVgerj041UwfEx3T!Fe6!i@pff+d5|aD9N6)Q2iSky(!!Bll(}_s%g^dW|54Wa$%ACAJE#j1a&~&QoLF0476(?f^IE%+YjvXx{?JAoIT!~a z`{8A`ZY@`jJhq&_$H$@2ZCOh2Z={b}UNt^C6C83C&jpP`qyw6ycn3{_ z&%BTRtD&XbMqd*DtHG;r0*xff3~Pb1sqve3uv$`J%m4Rds=tkdJ|x$8_MCpu^`rBVzyk}yBn|)7OM#dtT0Z3aEokxI`q?< z?RT?@=cYJUhjy5))pdyD>Y<;9i{-7y>jc>6r z?SAy{%ki7vy1ep{Pb`;je6y816QL~hnGkiv_}4JK+^$e`_Vi5lZqf>#>k6Pji$1IY zgSrwGe04cK*m4wh6Tu!#iZpfMB=i^+BrQXFkjzh0uoWgHvB!zCPyn4FRw$O1Bg#Y% zIg#c+AQ(6+^XzQdJ@t!a_mdwkhfn=%IW~bujso;MGokWh!9iHFmgv`AD}USeN8>$f z$9A1`#wYhrVCx@GOFOpbV3l8at(Z>A{NLh4pCoQrvz^X>s%&7mAVD{TGqc0);SKmF8l{P+KTx%a1k zxg5OnU9K$E7*^v(;Z*^hJrmD0xYlfqi;+xtG0Y)4XT-??0P3dREuJg}TJK|V8q!yg6s z)I0)d#iJK7HYi5)Cxn}2@Eb~iPY67&>yeFwJ}M004f=q4s0-!M57dG0ed-_H!v^Z` zsO6;DHrip`wfsG+>%w5%(dYhtIscpgV_9DR@UnCI>WSF_YvOO@b4{z~{Zz8hzf6W` ztT$jG)ZS!|#(~f3Co`GaHsKJT>scTQL;Y0izNI8xv$iTBNjla~>l*?`%smpY!kcEG z2F$p&I!gE?Xjrn!m=yR?S?xMt3Bbj#f3+O{;JeGwkN;!YnE>Dv=1aT}0M@hxj#vdt zA!gD*lL%yr8W3Vvhd6Cr5ub(NYD~trbfO-7r$DR144wtnyDeo=1#@WB3|@r|D5tLz zLRkt>f5za|^74zz$v403o}dl?8m@OUIb&HMLMw4)q4?E82ikpx=Z<6l`2WJ$iU7t(#g<^o`2HXO)L~jf#S2Nawy>-h%U^ zpZ#Px`}H%+#UpQ6!63E#3P(um5a38K1npD!)!?m_K#Zh#i7Jn(*y?T7kfUz$$vuDy z6L0DRs%5;cmW!S3g4!fXHIV}+bE2Mcn6!koKDCyN6__P4AW%u(Zmn#p5TPCVyb5xc{+lm|_t470t5IDg0atp%5r)O9I4ieTM0?Py$V3W=c&}i*A#B zh<=IN1q1mD9s76N{+X5bchI;r8Ki-r`oEY**j=65 z0a11fsY+PvX6Yf&l7n|HW^hp_rR4}FJObi``SWoqv zp%fKtjwx=*;r;zMyk}4yX5)N;LkPY%6z*R=0uf+H055E&;;5USe0#7Ro;df!M zMlVfJkL^U`i^t!yy!@W`E$5Fs8Xg86^7#^&^|0(z0H1aCA=sz&YXKB{^bO0|JAW@y zk1xKk?0)$RJBs_q_V1@Q1AS^~*>L8>|0)QKPsn_JQefF{DlmmdGfs>l7^DNf;cqm8 z!toZUYMXgCzJ)9#k4AW;E`Q7#QVB*#8-cCHk?Ntho>`p^ogG_aj+p`s*0)BrT_F;y zSJ*-#Ffgh_qH^eUtwZsAFfKgF%~lfhXw)L0wFE&))Y3%hm6HXt{Xs^&#|FQv+caTDhNVeIMx4J!qTjMV%;TbzMCC z=yLJi-?wEKmaY2H4}7+E2T#FSe98z@|{P z@}m&wBB>0H*0BL6Qu1A7RheSI!22frHiLWo`G2&W{>#hZ?K{pq3Iqc~w!xrREeq3; zgg>;1fDi6HEQUCNN3q$`Q!E{L!`&i0wWI6piU-=i$ z_?(+E+_iM>rOpfh03ZNKL_t&@Q;uu{eZqBSSXif8LtkFdQlErLE=c%?MQk7a#B%I6u5{*AZrxcGI50*)IsC>ydJxd*)ac_`Gt81VPm?FzWm+=@Gn61? zD3zIg(ingSSz`s4pH`?E=8E-aD20Za@JQuu??hO&wp0Rbl!ExX{@g%Ut7dg@ya@$3 z`u5kBqc8u9&Em#FHs;aQI*?Gwn4EZGY@h@NLHjZS2)`{4IQ!(Mm#eqG(=Gl17M%UA z3DfHLHxQrOoW%nVF8BWE&zFO@J-!@&>7Q*0$8*cMjTgerF{sgFkjrke4C#aG^pJhB zt--Y(w7ap&fzIUSwIss~1*mM+wyI1FO0P_3#aj(jtE;ZZm7+5vHNHMmgPvyhnspdm zYt#5wS1p)8RB117jL?PxiVqFS0%HSR|CtQ}0!IoJ( zELXPW!smbb7t1BEK9qs9=z_7%ekh~VS_Z@PZv0p)_gJSp4fMq}++4l$-OIUUnwBq_ z(*N7HmOHO|osX692cP%{>rStVF?0P8+Cp%TzdFP1>DB^2f>-OL13h2d)MTJ+B2UB z+>76t3I#06bQ|x5;G@kx$KcP}+Ly2X>vHtXuPj$sWog0;2Gf#pHkWuFpX%;WCz+2v zGtG!rnOQk81-r29&MTk%v*pTSiXHYN3_)S^JuxnobljY+6LXA(GAnd5`fyo+)5rRL zY1yOGKlzL0@Zm?6OQQi|2QFzK|1>zp_yFz5A5DXzTwnHq#eHpFN8z%*G}}2-+;;Gj zdymsxD$Gl-BJ@#RXi%GSicjqWp{%yA@fFHz;5@u1SYv={-PIn=w2B0!7OF?6){S*# zS$|q`|Kl57v~60NByLbg2k938d%p3NW%spzwSdiLdQI?soqfw%D04s%3N$Ufj*<0q zHk3rf^5*lmy<@riC!a9|vyCMl=w`s4mL}#iW;7jXlNK~WfS^gpQPL*_sVWeSK~T%b z2YhayXBHbAyzZgp))znLY1zYu^Er;h-E;b&9F&6w;Q}6xn{axplGc6n@~ZsNw|(+c zdD+njym@=Je>PrL*;LP<_tfz6yUnE}Y+zv(4ib8>@bZjmVuemB==psV=l#FZ@{a>q zKQ#yhR!rIi*U{I$XaW#9buv#CKxb_kMxf|tXXPHFm(Kcc`AS^Foa5^&)D}2aJ%vi zEE@3Kuz)V*Zx4N>E|s?`1zU2v_C(pAJ`sk>bP}NoJOzxoVwBfF$z4&iN_`i9YiHc% zwq_b<6QlhY)_APOC=BXZbw2@w3`>;{fB1vt@C%>w{vj23t1V#b0c*1y6i9pm4nYZ! z&Lk{QcL~P#MQsQwZ9?l63pN3JVEJk7HJhYLM0gf;re&u!k1-QAi~_T!&p1J;@QL-L zF^jF7SAc$Re|)(#NObktzw_Tn4nVMVnS^HCFeb)Eq>n>HpE$Hx=ftSqoWkP@J6;R= zP(~qVYPjjan2KfFGvi(rv@eCg4YiJ{{acz=EgCIt3aDDd6ykjvN!L%S8Tgs|hSx4S z8Ri^Vj-GvHxoz1Gj|baQg{sULj|RQE#2Ad`;xQ`uFx!cm4es3gqzS)aYwVG2D4>(6 z(r)H@o0|JadWpEYHEWq=*;MY1%K$Us5f!-e1Dj>C>RElv`AfZKlZqRU~H*I_3oqzr8vb*<6KY@!vP+fP; z`cNrq48S(fKWu!#^7ZqNeR8>Y%R5~7*JH`xuf%|&AZr@joIbN`%jhvwQAPo^J5Yir zet$Xt&_^8#aeOt+JEITRJ?X00l%M#v1%p|xdc2v;tmvjPQv^um@w&E0d5lVjr4WjB z6&|QN+Y)*Z%mu_Fpm66r(WSaWB?c`#1#nh&jO^oSGRUQS7$-n;7a%qdj;F|di zu|3Aav>%=)eB+q8(vcYg&Xl4*EQ8$sD~6>nZE1ro>6}eYcFPw`%yb|4Hqwr5$MDwx{iPH9}atLP<@w_!VfA1 z1)9(X8%c=!xeS07u`3^DTrHDw{-6IiBuoTa8Bk$lpFC<>pZ%d3AhQ!XM4Ma^FrJ$; zp3L0N&FK(P1uQ*<3K;up>#3K^Pkd@we)G4s@#iJymttx6ct%THThRvw2r(a^i1Rvl zrr9L+pM2)|Nw1zhX(-enCKcnp-qUf{@8pBU6N=dyZ`*)oK}2;qTaZXQR=bc+Id*#Ay#iNng_?3pHz$DC4KV&o4AO0`43f7=d%M5WnPz`8xZ$M)1?YM3Wj*N78 zb@aKZ#MC~_=+jS!)(nv1WGO{(6K0VLC^z(#)v@OkwS5!5BMmvMVhj z+~I*OYd-nX=i^M9wn+p}qd&R^hJh_{tZp<%In4O-nku!|VZwnmHdpU{!j?GXKG{ke z6*h-}%}RC%)m`wI1sY?VychNV7W4rXtslV~=Hux#tbbV4X5%`2%iC=OPOSasM4{4x z^x-6$D`*?vY|ND|IgYgAN*|?nGr@iSV+NHpNuX`fXt7UJ6fHyO+zp>X1Xe)C%`{E5 z2;X%kkvYtsk!VIIVN(dUDgXx@oz5dtv=7~FdtpfI3B zfN3e*oY^EJ=>>FlR1JZ~-MDvC#4atl&GoGW|=T4j~8(pQ+*z zepdPr0+Bu=|H2~cX?e-Rghy#y3~J$o3-fHZe)Y61o{MdmN*}HOt?(%7&3)ZzZOe@O zN{Dn>GU>y5(&&YuO#1kIM)RWhteGF)(^R*5`I#a2da9OCd$#Zs%U8wOcH1c^#PM6M zT3wdbH+83gJ5T?7Ikpv^2bPvZD_{~gg7Xx zEnd5l#xE{ zQ^nb9AqZM(yBF{O;Bstxls(1J0$TEbaRJJA`n0W$BO>6KV%}ySeWH&svgpT*J|RcF zpAu|WqsTs21t71he3PbqQ@p}}k%0MLFGkqf2s=k?{fJ2aLeR}w;W}8L{ zGsf9Q_QUUd+k)R;*y#;+!WkH5g}9gvSqoY#u3zkkoSjP^rw+nGZ&CfxS`Xs3TPKpab@&zQ>AlclNfIzt{b z(ySd_tRj!$ep6g3E$(R`KQkhr3M1VNHFpd8sP!gs`0N^9rEBK^(n2(= zPiuiwi)~NrfgN9Ri2%aBZUkq0Ixf!~Q%?8HGI+KIvg!ueUn)h-)023}a9?0QuVsfw z@U4DT=%)Rpd!N%Gy@=l5N1wg4nKYt;w-H*zQ-}rZ#EJ#WJFK8i3{H7IX=@F&q7aSC z%vf$2(0y{G^d1$9LG&1(?W0*wgQ@^kA*!8G>pts18@9VKwYrKeS!Y=5d`GQ56Zo2# z*Q^cB;}RmG zLYPRb^r82`bu1X<>DLLyHfE;MqAm{-ehvfB<%k$)z1wwQ~iC04?dm_io9YL}QSS@h0?9 ztGrF0mSm8^!Lt$bYrx2H$F z$oe%i(uBIdVWioQ7U@Tup&b4Pt7ONR9NG~e@q&o3h78{6UFuS1Rcb1hrt_le5D;3A za~wwduJ`!K3qc?Dm7l4^R9=oZ@c1kEm{bXO2r)w|7_A~nu z1GPZ?u{YWQUaxa6KyO^>qp*`6C1~sa9mZd?T(62gLau$3RWC&zRM{n6D7T&lWspk& zVf0MKD5h3{S0#v{3-jG-s_^8pW-^)e)B31}vM+rAAgmo)i(>-SUNHBMy0o8U9xR!j zamk4>mL;J$fda^L_c4P%uYV*0;r1^Az8IgvrP}Ac^l@vPG#agcrB6ZxrH`r(+pflF z#QIDx#*;bjgk(`aaEV!UONAam2^um``mk+e**Mv@k3Jl$8iW~rx;k#rr&)b}R%A@& zNBJ-siQGHEw)Ot%Y|z@laJ8{)mIQQT(F9{lIno`eMGP23;)P{NXjI?9)vcI8pTifP zTW&r1<7H|cP?+dRWXZf)1Bpy{h zX%X~E*G;9Y&jw70RA4GZTKc3<)J4mx>+MI+JDz?W&?Z`~Fig{{`2vy5Bq0TQYK#6( z?DS{EP)Z-=JLubv@>QMm@4=fjeQ+)5!x`f~7c0q_kT=eby8^}k`-G>)ZE672>v4)g{yrj59m34t5Zr!^XN#1H+hm^|qm<g6DeE2sR&Neth5>+;2d!Fyz#&gNHwY)g?b_s^o(@glm9)g4+F4>Oug^Dh^qM4)^cpdY zhJW+r57E{bG&k-qyB~hf7or`uqdE8{6haw#FqGG2yh?mk65?9j1mjDd&Glc}>@Tc8 zltIT|62S{#)kXIsfP71U5L|8IB@#KN|+ z)()BT*S+#R38XRV@Yuk-z?o#cemC@KUZfc!j!S8(s}y1^Y5BF!Gw{L~(s$5lw{603L*y+d1Q$Kg>f7k+Y2(BLajb}Ay&A^y~&U7gcy~1@p@Ct1~ zWsw871h}7=Fv1cYX?~x2ta;JBS1X(g+W3F_b5r_Qp?!2`J*s@8LT0xHh+tM9XWPN( z(BrC+;mHuJp85G7!raozM(v0fw7;XrO)g~wfeCTE;1k#7PUy@;la8pQoY6KkpdzGwbMxPw<=F$ zoRTk5|JKng?gH#xX-0+EP$WDh?|gMFHXymnW@+6;4YW)<2Xlk^=*MT<}Jv7=vIY71k%!jg~nR5|N0odU1?AUaW_gfVXplIBOp1 zVS5Wb4g+i78EC6FQeLYyu3kYs?M>)IgUougZdLRx1yBR*a!vBr3TG9tv6*Z0imP_W z@3pH==0$z!?jwm{Ss4p_4-EqCz>u~XgO*b>Qnc`BPIm+;6w>xtS04vFl}&z`hWY6d z^S@litTd~xc#8x<_-z7J;aRsqLES^-ax3aw2Y*zoT2lnU_7BHA+L4dQidFe=n%W*> zhl_)S8w2WSBd_g;BsmE<9i7n4yD0J5TA|iNR-tG8RM7sKR1GH53T2A4x)@Yc-B3Ll zP6J8SnK}G1g+_vP%VBWg_~~ERJ9^`#bzJg5q2~ELsE=<|$35=-4L6@_!ttB$`@(lB zfh!Wux_s-~+FMWZaHklf|JVPe^$s#7^cdIfClfiF8&?7XMcHbJls*xhkLgghr;0ze zlk&*ANrUtZv;6?o5CvZ^KJby{4qn6b{B!;rG{*MOb9-4hPM-FKg1$-U)zK&Vq~3O$ zKA3VCa*f?#Smks1T&J?$tJ4TOtD zQ|&CFR!6rKScLYAC&Lr8GE_o-a*Ly$VoYenK{I{FXBZ#wBxG<9*(GcU@wcwD!IMGi zadeXh$DG7YLMsmCiOF0bmO`7ftMth>*Yruar7-}lqQWLBXry*P@9NdnBk9pKzCq@} z2bY)a7{z0Ip~#_~A9NS5U$WJrhfloUPRIDTZA6MQM*nBf2Zoi$A=a2w;itkQgTRiIG|K7JilB$^R#DY=!$9msKG3+ZPz!u zR9vXA$e#oJ0sgmh{qcPU??^bcA}Yu;I#ln-v2N8*CXL=#TN%GsIJHSjdF&=-dU1m} zmyf++x%U@;W3Q2Y&L&vwv^|?3b2`}{(#HBnC7zA1(x)1-pl{T+MV}6Az$00@UU{Q( zT>CexyDLCKlXTB`K!uIJRfyPuiiPo;k-suGI;CqxCfN*NN3%MYFTd!A-CC-uFMmM2 zu4G(nACFr*z$FF91Gu&0_7WB@SE^Q+oYoLQ`4jnc0wf(0!o6I0Mq@aSow*qmMsIM z!ylOfQDO2RukisWC*Q&&bg0>7&+Cm379;njNC|=u6GpU`7GTea)WU zxM&a$)DZU*%AWx*q2qP*3BHY6D)aTZ5qqWl5(< zK9|?OzQ65|!p-^#Ek?{e=FY2NuIZBuO?r*=QQB9dFjIy#1PIuqe5ghtc@Ro7D${7X zSQq)CcPrctVI4~N4+`*%J`Bq9-Z%ls{zbiT2Ti@~#+FQuN<7YzhHgSH-1n>(gunveE8FAh!EnLVY;P2eV2IA7hINWkU|5X_>hsYKEjKsXBz?xrO3tpM z9(CUo_R1@TUF=iqUGWx~rw1aT0O6B;i0|WMT9t!wd?TNOF8k>-dfJo~LQ5(EtvnYv zqGsK^Rez&il?NRY4dyTttX6LpP>|s2Au3EDb6rd6wu*};q2t+}cnoZZ|37c*e_8;> zSVPma$|!v2n;c0X4vqp$hH^6u+VQnRmTJXoMXwGcrAI}tnWMzG$;_}&Onvftj3?+5 zVxe$?v`P1#3)Q*-X!RytGoY=Wx_af2u57=q_{c^&N}rUWkv`)L zxK5B|-IYFkhF(}LxXLH5-;_R71eBl71XB>G>D9v5-z=wIaCC{)1}1a#j@Ju|^Zc(} z5tJd`S(y*ejDsp9tt88;Fmv^1-$x8@@!&)KWg6O-E%?xS-iyx0c^!tX@MBJ$HFiyd zG2o5WXnAJ`*Ut=3VkTXd{hIvjOq2VeQi?Qm8N-t*N?Dx*6?d3prYg^UhQ zEKSjs(8_%N=6EQ08D!VZD4NJ86d35=h6lC0fLV25OOYg;K2ENw%ZGRhJx@7CuFh**$-I&?2H(9 zqoIsuWGa2Y)R+Xxh;fx!C z_>WkC#?D3@lnqU8!^AA0Wq*z!k!GD~@tFm}x;18Z_)gop`JKDP z+!I(G$Cmv;8q~cIf_5kF^_xtnG3oGB$w#kPX{kaM47m^bbVXwDJwh%DLd`-YRLQ=v zT?$1!lU`vhNEGPn=ram^C_m{l_FDy%im|4TT>+szsS=de*Q6@ER%KC(PaaT?nSDh2 z!+V0O)kKBFPBTTR+R4?R0q1#~%J}}+^cX0T#}PIgwHz7*f^Y&D=|&fHR?n-{y#RPt zUxvp%Gk$Q3Zv@0MJSrVqK2FiTE&X+jSvIQ#ZY9%+Ni+CT3sv3g%4)R>@s<_}JyNj^ zHI&UD8!;jJot z`E=#a001BWNkl>wo+RMDqZ_q!dIBOqq{s>KX7`vA$X|YQEQvrM!5_H8xn6 zgp{cA--6)x!*w9jk0I9m!W)H2^hRJO`gOilXDvnEl?`Wbpcwz6&fX4byd+G2`X zPxsS@UP3&_1{57-?0UM*#?c`VErYsI3ZMoOileqBeB2_oOwfqYqmyH{!LRh*U%vQa zOnjM;(sI+n;yQ(2mp>rugSA2^Pb-fKb!8~-!TR&0IBfV{?mQ4@{+F~`{G`LB2VQTs zR{Ho84MNd!2gD1DpTd?fK*xX7 z;kbCX=f;b+DJ-g(Uy0~-)cvDPC=>%~hfrU*xh7mlhuIPcpRh7waT7ZiwNU{`7@p`x z2I<)~EX#KUKp9@P02|k1L%p%gw)O3>|Mff$z$MIz?%pbS~2TL#&t+) z^w`-9`QdlIxg0(F%h-+8L_F!vzJ{JK2|z=Ey1Ib3px+M!YZmnau~&OHnBrvbbqhq5 zAD(o;67t4yx8?Y5hUMxV?^;gn{R;51`g*BXMIWy>X+O?wWNMYhI;l6(k-zl$z9mu_ zRpAgBquv157;LiQ8OEA*W_0(BXt0hKXZ|XpL$e@QhYl=HtFFpf1-okeYylhwjq7~r zGtRfi`8O1z6zt4|RBN8&)H3ls`?reMn$m=stisPaqmE>XIq+G#K&MkZ>0Ov$}a?o~mIlrwOjKV9n;QM|6T~veuvl&qey}D_BA3mLtHBgSuP-*BT`rF`brv*-A zxU~1xp5fFnS@x<}8T~{Zu;O%oycRA#7P@iP7;SPkm~S|A>jvg|UDhwWYY9DWzB~v_ ztj@Q#kDegulQBY!FNr>8R@UBcv{)m3*dGt2OrQ?G@Y&_c;-d>#>lU>8o@@6;fuo@W zh@J4~^s$qxXt56uk?xH+;T$vqk3%J$-b^j;%=kDI#C<{^`wgYz-#rt4jO|2DjBt8e z`4dx|ju=d7clH|FGuv7jLYMTJ#g)~7=1gwTm>!JdC%;uLi4GKMQz5E{aAj32TC*$N z{TA)vPjw}3m794}PobTxmNJ-}ZW}M7IDv3NkQ;o_^*g$pVN3&tHN+nknMy&6r_jj> zY1n_~OkG=vv`CVPXwZhlRNCl%+F(?`DYZ1}!AQR`4j2_F+OfJIkWbptFu!^RZ~k!l zXiTKXl_(AB90(5%<8>wosz*>^;vz%tzSA)iN?}}jC>fro0Xn*4M=aVqoX_vRY_Q0_ zy8@Cv2{|kJAbmyy67;M}!ZN(BeXMdQV%+QLuSjBHGK~Y&hpIx?p|j^rqayrT}vN$ z6r99R-pZ&JbVeUuQ~Ic9XOe*NgZ5FCm2#owP*&-!F$fJ!SYnHl3`UuTtZ<-%{d-q);8C|L*#g`bv>LV){tEBZOounuk3nVujxg*(QjY0MfUkrueFae&fD zjf5VTLhqEyl^*62*7HqoS&rZS_;UF4Q_BVLd4qe7!?Bsa#Xf4`K_5aTeOI!>KYI?s z&6Bh_7Scx*N(~NSWsetHhK&k zhSS26K6Pd2J_03;*}uxCne5gY)d=(65Ckh$QrDtzN3pa9ApY#oBHbNRTl}4FP=&>V zM*APU#<5{@cm!A}x^obkCqbYObn9^a)s5pG_YiQ#Sm6Wu>VaLeO1a)VlA@!f%5f-> zRY5BhqJjjIm`%zoQ;><7ryJ16#(w_#N0*CF|J8EzgYPaUc4iV3;mT5t=eBnO85>{+ zE&@dD7&o8}{&<``zJm^=9p3~=&%q?a3}%w=E4*(97#PyGH)`HlE-dGNVsP!!_E?2a5DvEvgV7joQW)Dz1 zSuX7@^B4FI0dEt5*mCM3F0o$HhsH)Tf%#rA@;N9)e#9i`>J;*p7FOe|@=NbU&cHaX z4rO_@YD$>y;;#(-d!|A&OvL)>3DnlCJXX`v(H)O|&~2T^47kWA#OM?TVraGO>>ECLok<7^)+Oc+ zFd_Emf3;k`{he`AT#M&+peB_o8TYy+M z6X?G!xWWtAP*+=%LM208cWeWTz7d{G(@8IS0;UJ?JcDBNqX)?7XUnFjf{s{G*Y87W zQ$fZwXRi7j4Mcj98dNH5if1y`P&(zFiMmW6UoQpgdu}iGe%<%K<6eMPU6TQ{hNKT^ zR_UWK2=}S6b1s~(r6fL2cK6mYoFoid?u%pXwLa*9c)!awGU?*J=h{eu(5#+S(Ma{=A{>C8? zg#@469mYOr8WP{RZb&@^tsO1+@a7mOhAq4B0Ij*jv?Pf+sqEut+#fA}J_94Afia)0 zbgOkH9HO0HpBbtG)?GZ7A>6vNoZ?*n^XGku1BI3J(mm5`cSaw2SI|-SUF%XA-;rhS zQ@cWt-SBsgB_ZHV>5~R%mX2o4kz}ccW9FS%A7e$86%~GzTfHc|GJMO8R4*}eO*7$X z4x-=E!6SG&v`m6yR|u$M^dO2VN+m3Qv#h=cOxv%R(F1V{9G#%O;E2;RfSs$s`YHop zGIE~!-B;U;KFNbUsbp)?R!}X6m`QJ2MOE=gAI4P*X)2x2Ud{0F8u@@VL$$B_sWe+2 z@@nW42t$>)^0vbCs$h7Q*M`-gDr{=`6*nrrVunUL(@dj(u#wD5ht*7t97*OIDog=@ zFVC7)X6h4+qZhz6xMpM}V5N|)ARI#dxQ;&!l<^yrLzz}Jw`?9Dm$kPIB@OeVydHWR z%uc8nbcp_|6$%>Wwm@3!aol4)bNa0DZl!mhtaO@sM|=hy?>peiSEi5Y{m>84k%gVge?rl}>ZT zD!Z|2@9<@RNgwo!b0mxb6y_*>pj@A~l)T zOgF-Fkoz#AmVt-a*#`Uryn@MQTFWfnG}};JE9p|{Fr!zNol;ZUThnLOZoTFTfV8oF zG6>cLhmKu631bAcpq?c&Ay?zWaugimMh*8~Yx-n;V_b0)$g`%;I(r083~!28%dLR} z1+QlTn%h@zpak@En6;Ph2%|gaK~JtOo#{*s`e_7+0gzBbU?+?~A9T$R?%^ME-gJ*B zr?basiP;cjkqAZ34gOr<3?g`eqgd-6)~UWDEOGr1uQbkc+?hwu7gh(O7%<0}^)Kr~ z+uRNqB?zThUh($mr7|&kXfx=(l)O#sQP8KP2zhxlR16zG>wFXYSqzawyj1<`@=G|Y(E*UYj&$a;m|CIKruek z@fuflO0K)H(=j4*-s1#Cq|RJ0!8p8!3VTXzmQk}dWFoD;3X(3EW1pxzWIBVtoY2AB zL2UgB(t8isibb2ep@3EhM@1K}FOyr7ELiJYFd#BQ_zv;}tt!4x*B|Bh4h5!Oxt|wl z$W#!<4sMv55MYM;=p?f#=zFCPc}IgrPXT(9&gh3iAe}ICzBK5lyu6M+gZ6i!O`7bZ zPd5Y@YYXzb+_i=|9#sxCloWnEN9fci!YWRxolUDWyA#*8T;SIAe5P4RT(ETB<*nE} zfj?qZT5EndL5@Ndn7&Kj6(#Er;{M%Hx|2x;yheAKr-TT%C zu;roflv;fXvj&IYf5-ST+pchlK`>VA(kT3|MW6X`J=)hwYg=}+{}oA!11t7Yp;x!; z&QZLX3Tws7w2tly5maKAmMy5l{ZScCfb8-2hSbm5#%kaf#p&yd0Rbj1R0wsVNE z0+nMS)L^hy6-~#Sw22r;13iv^4DehPB?%C{s~$(ie4vk2O1KySxWcojCzhbcya?+h zeP~2f0dm|yAI_@ND=5sR0tD?wuciEFyEmr~SFP@$PZF||hxJz_Tf(uBGJOqT8KUO_C^es>Ph`Cdasa6^QmW6fJY#FyJ(%Lhr5PZp3)Z#bjgE)YT;BeLwGf3nblmx49 zajM;nKBT)URvXbkAI5A+o6M3$`9dGb{Ak@Z4yByXAb~E52+(Jh+a3h7QWBH{Rwihf z6ywan=H#}Q)FNW#)Z(#-U{7yQ0W0TQ?wty1K1-juB4Pf(zk#(0G zPs(88fHY8np$FhSKCeqjn$>hqGa7(Y+);K?nA4k4xa(5zF@k2gR$a@`k@lks#;nY%x@MO4!W7^_UXTqY>9jVz617~X`B|0%PfNqHigSI% zsjZzku#C_=4yaZ=nfyB&|EnTebf1Dt`q0A9=!0f-t;~!*3~;FcYq-3v1iwrA)VdXZ zZIN$nq@v`I1)5={s%3;9w9JWn(`Ch)jhg8gbGd5S2@iZ=uwXc|-`?GIZkxgVP?CnP z0bRgMxL{o4`hK|XiuXte6$WkqAqIBK|H5zVKwirP!P`tT8!^cg(2y8hE%``toh%D4 z7;uW&poB?vN7P84fV{c4KrI+s47$<69yqi+M|{-I@ZpRv>4TEwG3l@H0Q4cG#C`4w zCVb)yJZ6H!4v#zcxXn}J9;Ht7mzxk1FQfqHm>Dbi^Xe>t+e`eRnJ9(qDw{P%;WPau zc}id<5`|9(qCrQ61cXdpUwbIakC~z@8>94RFdd8|3oQ=7!Ahuu@d>Rt_q);}k+JyH zR33gaJA`Me=WwfuCDFFC>dL$hv{vb$W1|v~F-n6J?ilczJ|QgQGYR`#ge6@XbtFwf z$g^)W7~MEsMO_T;53yW9)=`l@XrJ^UKbbBjeUyJJgKOM_?Q;WdUxtsTN&85j8rb(@ z8}wPzZDrL#pGMpM*<;9fp1h;XR^zR|`F(&uvj^)ng-5gRB$|GXO0q5?bhJUlvgoTf zzqMyoDClGky$}_GgC_wLn<@mV0_baxungCZ8YEFEz$_b|qqVApRs5uF=l2mx)#vB* zNwYW7$46WKr2rk;c}Ikcl|DK)6?F1=b`8(e{JPgGuT%PM=|dVTe+K!PWE896RT)s3 zof&Ygdw4&97FH%HVF({cOx0Ar9{{ts-oe)K@w7BDFT26PbogLJF5mc;WoIt^%4Tcv z$NjDpay_y``>Hd+cn*OagJqrG@5*9jcF#T&iqJC+?3+*?LqD>=sA2boOSfV zKC%5#^WBv`DjRB?C_DE{ANF4%kk-Zabw6ahpB~e^il`7gbRbQZ|^_($C%= zmV5i5#_1t7ovSe)6^zQqIFYjKo^52^^}l8~ii8-&daUa@SEQxA9uvmX$KJSHV(TIX z-mzvbi)CMwfMH>CYar_-!}*)u0BZ}5Y&Lj@lNQ9nZ&6|mf9g2%_n6AuPurW)N8LMX z9B3oUhHF_0U4@jS83hFOl0K+|%Apyw?a}O$g27=7lcjs9vxksMH;kjsZBTZqC+Lcz z#A8laA5zaijbdkOV|AOQ9=M1CQj`oSNcUGAl$6qO@UO$2#(SAI;lG zU>(MR)|#0bH4gOv0n$e;yavNFI8>KO)Yn^ezI9<;(rKu&6-vExZJf25P3gS zfN_E@4Wb&aL;&ryWwioYc~y#>E30q3;cRhai*Q0+ zzE@bS(Dn4mOi&64u5qJytcH!%t3h3q1D&`hLIqjrpyvlw`cRNDZtej<+L=(2GpV$; zYd)+K2IGl(+!~woQOK2EEyl0%Lt)ogt{N%ImcrnQT4>bKRzDn90~l2XGK~$X1yUkZ z>o`IMb&EM$7j=fvGn3E<4cuq1Fui#5+x)aK2C`(pDy8X|INmKrx6SV)2KvafsAAro z?FTrq`GB2Gij6QR^Zgb2B-2v(MynL#QhH?_dNhYWMZP!hktxzm`m`rhkvMLQjc`W! zLZMdrpc)Dd6A1L26cp6QGeF7nHtJ@S$9)}CM$KLkvZuF8`mE8xoIZ+HvW;;vu9m6g z)JS&)P{z$FR?DTGC4orfioZ&dpfg$BmT-Rk)ham0nKR8AX*)I8QD$*GQ~)xW7Lg2Q zxnr9EI=Qr^z`uIh7RJS^S4jtck3KVBuSD1NKRIc~=PSI?L2f}?wzZcwlc{TkA+rT< z>h<`Ykc;%=B10Molq2laEDM@n%SF;H?v3f+nVh{E`lzwqPowd!dJEnejz(1B-)clF z!FSzqNMB4`N*-nO?Ih?kyGcM=+I&ZpTN(tkZ+XXZVMlOWJohV8gg7ap=B4SL)jDzd z9n`Oo$yC3|bz4qA@P}s>;Bz%?`kA?C*ksvUn#~O>few=j4~3mbX5S ziQZ99r{h?|t6(I=OV+>}1_cxqgOo~d9yMu*I?6%L7&w*yN1)wF5dNoO^V%)`OlUm(g9XYS9nB^ zflrnjgY|Y;7V5UQ)E_?mi+FYFh3p#oCdzPyo{ky$_GuOM zEs4_(4uA5)<;)bW_M4uNLa?)UnyE1utyfN%B@T}L1WLP^)r$J#l!zKQa=$X4>pXII z8*7~m)Asl1R{B&Z2n)|QXX07iU%_pZYW?{g?<}Y<7bkrP$trzRX)vM4a!e89v(jgX z^I8B#!>jbJ3QvCP!cFo@`HJs-CRiCvD?kD!hL5Ryg+kR6XhX^d>>uf7&DkK zSYUeBj{ZA=0$6!wayW3^?uYgXiFgD^&HSJaLIHXbA1jp0-f88NVh>?)oV=j9Sl~)X zDn@+ze?{0=cH4zp>8i#cXrfTUd+GIQInA8;(!&;*LXk0M2sr8@eQ2bZB_ihM?lIDH z29-1b_W2ZFIje^pj6rdwkIG3VN7lRJf>NAAkeznT8bs1C@Y2Bs>HdqHK* zXvIc+r3@aed0o~!GP^2Bv=L=8IE*pPVhk^c&FgQqVEC~&c&?s|effR2hauZ!hp^4;eFw6n7g&lIH+XC!E9 zFB{elus*uNIw)GfX4d>IgJwKw0;_`I{WB%F z_2iE%I<(2LuB5~0!G<9KtC|9Ssr6y3mXL(A#ba>1O`o)`tYe^0m=ix$gT?{n0QYpy z1YpgKKAb&9Ep-yH(g$TcbJV=cI@KK>U9IhP^r3;+OP?bAtW%RTxJDybWf*lUeOb=a zpmeS5G}DZzkSKniR2AUS?bdYMTGVfHg`SX#z;-pgTI;FS zSF<-!Pw=2G{1aZ2=Sm0CM-@js4!`?kSv!17AshMryP(gE{`(O~j9>ddlU3gkL+ehW zX;h60=q{)%3RhHtn5LxshlOusX`K-`2X^!hYS75R4g)}GO!U0_iRIGP2SpGT%1bw2 z-5-}n>!c8`scWx7au4qgd-BIUB}%x#IHhKUl;IU;j=$G&PaSL0C!qwDqk7s-pSIh~ z6~LDcCj`MYJsE;Dn;8Q9cwK#k z%1AZRTMD4^yE-1dc98Ih52YD5w7^IQYDUzWw`mmzQiUlK!bHr+d7uczwrmh4#x87oX1q_Vo;9~~M7?V5D@?qO*2C%0)F@7r@L|P&TR4;!OSOy7YakLClw4oL=c+c> zjt@eCi5`0g?cI03ciGu1LU(Ze?Jy|CyL9s)5XQhQm5c+>FFwaH!(;Hhx;SO+)-Qjt zoZ2F}^LPH9&qwH3*vB#O9)o|O2{2G_hBN-m;ln9BxG-6W5dYx>{8i!|CiX z@ga$cBS2^+FKlDZ?eBceV}UE+>lUSkLJCF|AE5#}dWZ;YNADS|9fdrT17m_>gFXmI z?SB}%&*~ceb*!K-jhLRHM2JJrpo`&1A9@G$lG!BC2edeo$;)c^UK{$fqhxeOzQNEc zKUIk+i<%m(UdG3!7D%mlwcdJfW|3xgX z6;xAxx~r&;jRJvZ&#`{Two4xW;5(jQ*S`u4#|+mX=Bre5#iwdif+u5o^(OSG){y2hBbPqtH z@D^bTBW}fm75CEZ>KnXCNZgCeNLot@3bQ_H6_e4rWI`uDNNl@?y~2;bds%*Ft3|*2 zjpYDue{XOH<50|t@0=K+vTRN1Gc&?+=a>xp`j?iSEz7=q_^}R!MoXXbDb?zecAQ8f zgHk!y^oe^z zphB4nYwn*u5r24}TVpDZ+IRH?RgqXu6{a7IrC9L+IA z*tk;CV+0W1mPS1AjW4_K<9GFHq`}-P@a1j+Z8ZJ6O`lMT8_~yegz+9_#xiIJPzC?E z)B$x}M;|VXOJV;l>7$Q}@tMhPh2pi0dNM~RbPIG# z)TZuoTE<3+sg=$wVa1K12r-ILp>l66+h^GkQ;r*-!=>hA5Dsa&e9POHdmsAG{)$!p zX#k1(5#-??En-~+Mo+*AGkj7g(0jxK%U8az99UN9z?4m6h3b-{4;1$1ts3)!mf8RN zqYr0#Rdm}uj*)^RsMBTX!Rrt_gipq{c;SnMweW>s( z%ab*#9C^LXi|IX%Puo%`RC$x__!}ql-K#TPHSGDdK9gt+g!s9(2qOk(xm=)xz$_sF z6(b=+KpnM^(Z66k6hvRV;magG@Q2IQ`#-px*iFo0a=$D3#?#S&lL3WL7a z=@Vnf)1~*)N8U)|o0jAqVH&*CW7At{f2wSE+LIv_>L_GU>p!}}arrIlsyI)*3@u~E z2XpsWiOKQ_IWll`0rXU$Dd;CYwVazbz$SN;B@AMp)cxa{PKt$Mq36|Fj&KGWZ_co*K<{FKVGUW6JtN5LFe{Q}_2ppB8J;2vyA6`)-wT2NZDkukB&gCFZs>#l|JNw3MJ_g@xWv+aBFNIm{JI~mY;E9T=!BcwA%4GWXb9Lk-=li zE=;t#_z}X)+9X4Guf_p0rK$|@T~TJ;?)~wn{Vg+40tyAK28jg5GbZ3z$rx>GwvzGy zr_=rX$>r9U|2dXNNJpy6SLUk#sZpr3tV;-Ze{}1^=-V2rIN-Mih1?m2=Y0*2ja`Fb z)I|DFc}O1`MwH<*(Q+6d9p9GF>Gj`+J}DdPy(Xls(sd;t)#_LQe@R{q7VAJV6Oj`t zxTY2Yjj82<0H+meB)zX^jlLrey9PXW)u0W{)TdL=TJVch!B50+bB{Xz&_TLc&V3kF5}kY0gqKbSPq zXH@X(=#%sefeQK@9os>_&4ck3r{o=vfT5vLzBA5Y%!4{fAKfPmTJcnFJuxEE*%V42 zoywkAbgn#x!g1+JTKfv^QhqYQ;*=?|h9VU8Dhh@03>8=niN^rcN-|iPq1LG?hThXU z2uCuwOO2gDEw#YJ{c0&fZ@Aectxjrt3WPt8*-+a^fBLEax*XaYC-Iw`J177?o9Qt{ zE&+xh;J5BC;59ziT_-TGWrL2s^Y!KMi~khy%Anw5kV|W+*8HaQQOlPxkZzC(`d}%v zGMQu1qfgXAa_lPDxCS2aB_vz)QF^E+pl4WH`i$pj%u;@6;1Veekjf4Th?T|bAebJW z-h1Ye6ao%%3Zq>WU{GDRRCD;EOsUW4?-`UC?`t~r`gGaEi%px4%+T9h2`(+*yTm3J zd6=*O57PpUf)>K0e>Fqq!e*HD=-Xdkj=u0&i-@f}6hj7G$FCM@*73?9H9FM*)#trG zZP@_p;atbec+pGI8>pZtY}%p^l^~RATMF*y-Z^-Y0FNzbAOceARL? zALT|YxW@lMi?G-^`x($iQ~|=u!ma~khTi)2<@C@0%HBQv zP~SwO3}+iED11#Q$Ek3S*U(nHF4STPWK?Xa#O=@hy&bG&?=@>D*tuPsXlyV*JzCI< z^wC5^RXU|trH=|fC&XyMDcl;^GXbD&(2{cInD=z;lpdL~R>~YljGvGtzEghGQY(!@ zS)vZYM_yy!6h&0|>De7*?AlgQO_PSQ=HUUWnP9D8)>$%@oz~8CCKv;aok?E02|?i6 z5pG2)jhIm}8#`JpAYC*CU;9futS|vefH{J*Pyh9D&rW>9Z^i&z-3W-F$FA2@FUkQz zAs(R65LR@9fa3`5oo09b@&8$lo_Pwp%bVLy#;1Z3zHHMci~;ErqumD|Jq9Q*u;w^a zp{eNneabrgWmL(<@7KA z+j3=}SjwvwQLVaqo@%|f+%IW#fQcj9uz&P-f4dxi>#OnB$u?`ObZ`T4gCWl8lLn)Y z5<$2@yq$R@i^e-_WxuMmU(@DoZ77woT3?{9^jgG}tvq5BB6TPDcNRFgI5H3kJ zDX!LfSe8Ms)~9{jl1cJg%epeCAW>^Hs#bxR;YfX^D+_qk2sm?fsZ?HYm=)Cw!tB|~ zs8IoQkMS74ASO6?xMgTU(J1KSx}$;dpfO(YWZvmE)+xR8 zf(POhTzV^Jw(uLmuWN+R7QF%C4$5JoO!-ZZ;PkOH@XjUz5AD@bhE_3hd z>6?i6`jw|O!{_xB?NI})f?b9CI{87h<~3u9uLgXY&Qwc@3RzwU>zbs&Uo%~5jgy!G zjp!&OnGv6g*>pMbV8~v;ku7(hb(fjH(wPxHR3RVd1h!xb70h>a znIN5h_~XmPqmM1OzV!L!(yZCemQvGlqIsr5nGFHKc=`nIGq=uQp55+70@fJq{qP6N zv3Y`>DS+>1wjYQ(ecq=#;S>*nW# zC!xtXG=A51c$WiJCRP`yN~MJ6VY7}&!8{zd`1pI4mu$xP*p%Sb&wma@Wj9setF;8nw{_jaT2iysSmz>x%i8}SZIOV#RvR#-TuFXqsVHx89dsCTdYblE-mW7}kA z0&Ly~`oVSEbJ~`CW8(|PKTB0|GYk91-?ZlH;kZB% zWiUS0shKXu57jW?Kw)^e6U%@dz3#yU?^`=I@3z=RrMvI@&~ka_0Y6dWCV!Dh%9o_D zU+z&$MnF@Xsx&lu8sLv|7xbh|4=>0_!5PDau&(~+7O4c4BAFHPrpLAA;5Oc>3C{~O|{e3yqxvPy^Gy5E9Ec;1UPSLT#lPO zAY`ejWc-FQ(sEOwDJbee(cd~jsJ!k%)850zF=AN=#P-tOQGAHBv%$23Up>1V|MVxz z*=PQGxw7{?BW7v7x65)Guk;W^5M%!Y=fmKY1&FF#RaO-etAVGiZ*GX0RjQUwwQ8o_ z6qpB^(vmz8xysFQ^BSE+!@Sv6kdFp|wWV}xSre$Y}Qiyw8+ za&o5H$A^Fq*4gF?0E>=(@iW^2_RZziv%g#}Edaf1(BlOA0$O?xb#Q}?DhVMF+J~ZW zt0MY|$uv&7aUzaNqZUdny2c@Blc%@wNRv8d?Msd`_tm2RT;9OU5Bpa4N%Mqhi~)Zr z?|YAp4vc{uqP5qv^2H-=_OM{m0`?2@47>K)sm$pRqX#6#pTZxF4+i0GvecEXrLL=n zRE1C((b%;gji}g8g;oV$8B`U*pXmZWLN;}ERe^}r(-n8SI1P>|^lIU&MM*0ggbm_` zCsIWkU81DqT8i@g?T`E3f-_`YEaP#6m*`p6#qqES1g#;D8suDp_K}c+-a}_)bru$V zq30lj)LSUDVL4xh(Xu~G45+|s+bST0Xei6N&=yb3Mq4~$1<&C-;~m_i;&Epf4GoW6 zq37`ZyD)HAqZCAO9zf8?WJmNa-YPT3bpDw0FUrufDH>7!Z=noT2+|7m4KY9pVF(Tf zwof^fuqkeNwZaY6Y?g}7jhOKNskdh?N~Z3G%ZWcF^tfRt~QD5St8cga4TYi z#g0eZSvF>8OQ26IV|0v3Cxb^G>d0IQ12?ooVL|P*(wb_d0Fox^g*CfDeQ@jDU=q(6mNLvap_t@e(JOdyHpCvY@B57Im5`;}C$C+E) zuNfR>fXG+I1oS3scd(T0z+Ki&FTvoSF%CVPPgvodY?fTOJhBXzWwAhCzFt;^vwHB( zahX>L#aS=iXS-?ulqOl%dR4P~U9D6rQH#M!RD;M2?Yy4Z;>2sy|2Rc}nw%CUYR&W{ z{YSb$735I7YVE_y>LB%dCB*ofS)(x(8)M87tK#^na9}KAmp8vck@l-+ z`~a;Zd!O;)y;qjA7hYH{EN-}UVkfBGwO5hCD%b#CY0I+RVj}Rhv?C_w@ODSU8BoAu z`+a7y0`d5TVQy^2^qJX~Z9;u!XZ!PqmL)=})bNUBkPM=6APsh$VG_;ib%nF8xFFiB zGE%MR7qU`l2aXtltmpXK?lC-z^ep=5^gtPF0be2LXBdP1@Kh^eC=>h(?5+6d$9)DI zhJj{0nrmt3W)LY8YS6-iV%9qk0qF2Y1d{SYWmO)tUdkB_u*&f&2GC$Z1z#VoLdFVb z5U2*YiREhT`+qC8tB~iqn&uuQpVIpkvgKHPl%dFgV2*t(wTF3UXn_<RzP!Jq)DiPbGt zYdQ-yGN_CpvCIgSM#0nIPBGvp@FVV1g0z-aG$gbc1KsSGj!&_28i4c!k(L_+>JVTb zr2p$XgCU5P@wmEe6F?>a_soh#a)56;H<^IoPF|U+V?ld3dlS|e^`Eu&w+smThiv=! z7JH_lb3AE4tgo&A>Pg`Zs35Lnece(nMLvi1Z}AsC@eC#py>5JB)G`6K=2;pPGLQTx zsbfq$IU*r6lP#5Rp_{X_Xvei~+Lz%y!4z`ld_fe=NT2}*c`L2-LAMUHcW8mQf$wu7 zBif)xjFpJ-J7xiMP;*6LCWq~h7PU^hGYC%NQ88yOb5!aS9PJ-nG6O`lF=m0)wtoz+y+4jyM49=u z3Ay(Jd}CSgrCp=P=nQlX2u~FMqHc`qqMZU>VNF1r>??(qqY1+hW#Xum=#Ro-mAyJI zqI4v$2O2nA@`Uo?bZA;jg+aW=4i1>Vx!T%jl&ynoR|UTWFB;Q=x}pFfwAK2eOr8{- z8qfZv)d&ln7IU0y&~YfvkA6qL=tZLL435>627TgwFjFnb8Sn92p9cWc(cCZ}pbOJEf!d&JQeSMASscapgf76siczEf z5OlSk**;Hz%biYXo!40U!q?M)2;+u!#fJDE5Qux0t5r^~6tk3sXHh5Xs@5}@l39zO zQ?N3h$^7@t>9h7OH=z%`Lmth-gTlt6W!OKB0r$~|!D&1<(q}X*skj+qkUsI8Doetn zcrH`(spLNSCqX{tR%u+33{%aNZ%yxa1<=8(J`yigp-&CfT|Z4j`|Cy5%b-WgLu~Hd z7ueBj7p2HNu6hj>LJ}dbg<{2Z#uX8^{^z%YD+qXee@|L=tXDGtEFN=36ZWP)0#e`K$2I=n(>)RpPRvw!U6yJyQNRI zIOE@SJXJ%ZeaCaYA3)(j5-o|Dfz$d>Dn9FOg@kZelY2tP*g=`ZfOdopO$3MZn<|fL zFtbvGU>m za%4(!w1(;FVytoW425(}A6oQGI?U-qh?@M%_514mX0cIDSSEdvmU^%*d8^37J6|k= z%2!1%q=zo$(DAbkJa_GmusYMa#)*>vX=(;@DMQ8pT$P!Ek`_G~r&ID2XlgZAbCMu+ zE`x*BH9AxX#nDl2Jf(yi0qg`5 z`(ygIro2&x@xU+=mo zm*|4ZQt7h=H)jgjmW&XBjOj?VSgNJU2yMJutHyag6YwN0X_Q;92CVhYy$vBlW}CF1 zTUM488^pI+a)R=_Ts`S|(d*K?OIe+q$!4={iG z=?#Dc4l821T|0c}Gl4e$P2mk;BtVu*cR0z9^Z|)vf zHA~h@Hqsi9uoNpw%Uq(|Lvl8w|+tT%H{U7z8j{s;K9^Q4@@dg4$z2nXMDQOpWp+RCq6y2F2aXAQXus2S#EJ=F0O>^ z-VY)LiqCEV%7)c(Et>5eD$e;eKi7o66n=}nw&4JhOSu56`JeOXMX4gv_4TiEUlFTh zrY1mL)gBcmSsn}^a5>LyIUJ+c?z90bQd6O!S{>JCtejkKqod(R=>T?aIZA?AjxKA) zcw}mF#3%1r_+UFWp72>@p8A+W419{%rRPI@1d7`VKG@Kp4bq(OX}ktLv5}^*s-+q5 zaq{n8%JVzTS-R_4kFqMn{g!dS^*(H5yloKJvEzBk1RBmH}`9$EGrcKzUo=j#o=0Zv3FB||1@D&-KHgt*e7fETKGajx z%X{%jePt`8cQO;8y+6R_AAe0s+(YX04HDljOI{t~lLJh$@cqYC5%J%th{))D3g#Zd zi0sIT%n-?Qc?=E0gz;2bu2i)gpR{7;d<=JaYZbDXPS5M+Fw4F7BX{T|`kjq9S8nfB@px!1$@X7U&1F>&sq{1c-i-@j^)@m z15QeLc(SbpninS-oCI5Rvx1%yBQKQh3AYh-GBRi>ZhN%|iINT4j4FzbJzAvoOi3yM zvjMhhq=6&?y5897ku4mC=X4a8JdZ*+F^`%R=9qfRkq)j_!0-7Ce9{4>$b0c|u4LWX zTC$2#J5e`GjhrvxbBIok{cNEg@dr`c%W*O4S!>`;j7Ja@IL$r+z=>QC-y@Sp4<8Qo z$jg21`Ln4*rt9RBOWf;y9h{pHh4>!#JZddx@IW3fq;mP*g81=lWu{|2!{^?0?1@j` zc+ay5FmnXOgWSZY0~&!w__z)pKqfwvVaKHXn(E=@>tcQZ4ZiuzGc_Ya4y3w4s2lM|eij^rEm#LwKvGS-dAaq~sDQ z;S*uME&~eRT6(h1Zx(0k{AIBoi!OlO>gmn4aI%G!oL&%~5cU=FC8aTs^(C&fy1XQL zSk4FrQ9=aqlBC22d5Q!itFp89zR8+zkxlU^^42J$iz7=;ynazj(lsqPBYIk%JY{R| z|MzKRrl;!NT|wx6HOlS4gL?-qZ<<>2 z0Iqhy^Q(hCAja9nQveaAZ8FC zAqf>AfsoK-)m_zAU)uVw)t{*^Wo_1GrLNK}BmqKzkN`1BVxD;~Gw;;C++#(oSSR*5 zHy_BX+N=)byXWj7hUMg9 zn=T2QHbfOmJEGSps071}LXC+A!E3xeFOLewvT1~>6f9rs=Y84-6@1pSFcci30NkKi zrXFVzR7~yr>U!;mo>zlG{eG|3qxE}Rh#&D$g{2ZMWo=-%TolKj1|OBn9&xG;sP3>0 z#7E0gyj}@Dms%->=?df4e#j)n&i+x>S}CO7vtj}-PnE@msS36#chx>EUlrKz$mH$evJa!77WA%F^;J7;u-tHB1@8Lt)9m7Za za!I$(MyZv%&=fdlePv@epgjfB@-&oKc?Xo~44~cwu95Cfje+3d-rMB>*aUHM@dKJL1khcG;(E3)~T}7 zzH6V9(0sfD4BQhr^Ey7Nz`S;)yh=!n;b~Axc5IV}f{u?HxZZERl~B(;)o728G6WMTn~LlqNr$u`>IOQob4x(z zwG{rX_L;IJ_$^Vv`^xYudBJv!zmyjQCHO>(>iX8ND7(@JglFi&=wnx%24TqvWt7hJ zj&8mEd9K=b78Q6MBMKqDCHb?Kpke#e@PXmY4Roh)z1+?pw2s#iRG!7e|IZ<;sQC^J zjC@I1QNoKOo`DRmruj+9*MP{<+#rOc|H64$bA9fVegdTBqG3Xi@uQ17Dd=N?^d*DpL; zX4tfTWp8DF4SSUBH6v3pnu)=~ZI1+o4pmsCp;gztmbGLX=%p?%FDIjBS!Do~Ny_&9 z@qha-Y9JjiTKI_b?()WBc`yK!ygH=u8&YX2SBmS%H0qiN48cgFYX;ctc}mN&qp0WR zx;jz{+q_XTQdqef>`=H0ebD-=yHMW7eC6$0-RP4ja{|=$viX?gh)VfpbK{zuTWL>v zlWH3j9Lk)m1K^u64WSeRl2m%1S|5^_@SWJkwNPSWmmZS}jW(TEtdI71D9C>Hw#Ic& z9$$6VB_*c}qaMAEo>9YzZiK4ftuNFKUc){lo{gDQ7a;rcqQe9CJ__OLJtRHqMX|#0 zOsrdV^77&`@q^A?-kv=SWf+Xz6(K0}4z95^C;?5ztp?si0oCBB41a-nRD2bkBRh2q zZVC+_HmnVbQ8olD?ob~9Pvt8`gmSWuly4IXS_=s~;k@i6aFPefk8ASiu90S_T`4!xAfsPL)NcW#c79K!D zy9W`WvP)q67B8TiEo0ie=^&k6Zd`MDKJG6^Tiz2Np2ML>uZruEovTls^&#gr57gUH zjg4!XCvW#u@g)H0M};w*E2^@Kw}m+b zJz1?O0?zk38p~%Vz=kcOlM`$0p0i**vH^}w%%^CwuW5Ls^A}dr&;X zJq=%I1R5TUm>WtsvOU^H)T^vK+EuuoMR?5Xq0Cf7v^8V%?EV}|YKCu>StIVl>z4sl zJ!A5e*Ii#<_Yf#2!aQwtEPY31)mdG=AICMu>YBjv8rZZSGIFB=V-Kq5ED)v>}T%g3yGbH$}{nF4wXUjE~_8C-l{Zvjp z#&+pBJ+IiU@S&k;J5}at48)K4Xn$1?nX)DR)HN*^WjQ{Yp>upz;|rAEXM)){0zn1y zG^tv+-s6Je{a!9XbR}A))Rd7_Nu6YAK%W*?=?A7>G&U@)L z%C*Asl(HYg$92LD@{~+Y85VVAr9bz@C&JER7vA6@i8fl#v2wbzy-5r`&ikFg@tfzU z*o^bl!s#aA-ZTV5Tj)`=EVfa-jWQCCtI;q#TV2Pp9eDL>3Ouo4nc7apkLB*+Lo8Go zd98<%_zi4$oJzQd58I?h;~|_XGS4Zqdf7?{TCU=aYfzT{Q+%k@+P{@6`Odf&=86#!K>Whe!C z&qe!jElU}H)eon7+|U$9S3Vl8DfBUXT;8f+%FG%@c|F8?FQey%tFl}5 z$Bj=7Sut2$mjJAljrm!>?cjnNzUKQ0@fy&0~=lO!MPM@GsNxf~VwAxuU z28}7vCYHg}B*F7Enko?QVTkA+LF02(3dKj`W;H-w&-QEEHNC7#u4z@u$jL{Q-o1gw z$2iCIBJt7j7?o4W(dF#;Xdm!hbw}}`T-gSdvy!mt&oO*h_Az|MRN=zUXhqIkdbtDY zu2I>2&uyMMzH)=APz1|e-l`AI1gdO%eK}UY*STUmzyFx`^YT{MsOQ*g^D6vs#@4b| z<)}gGm~e&1-ZAg18t*CHVSAN)?~Bhdogy~N5Xcqe6u>@ca!^$vSh2b?wS4{V?q8Lh zg7J(6uW?uHjHp65rkpE-ay*XVqh3apX|Hb{DrtWd$72SheRrI-JS7k}+GF?}!%M@D zQ>3P$mV1I@_;@6+r#~y>_ImP(FpaZyCJ|u(El+3Xc)b_qzz|?{u_}O7rU2(Pl+ln3 zCdy^LvqTwV&EIHS85Oj?XFtIc3lu#<)@Y{f^I`!mse=wWsiLKSx|vyI}}iQ3Uy^v0J5Do0KYY~A!Du>Ks&V;imco$1;lt;!;xcx#X0qUE5=aQ zuMFgaP7PDo4-e_wGp??qi`R3mHJV^@!*;dMR_peH@MpaT_U1y?lf7#qT}wJ`)o8_%(UH<|*Xf+>5` zm>gIfM|rF9infbFZRd6Z*uiwK*Q;Xr8gb?Jl=)VS@hrzyu50B& zo%NKt_UhYH4rLR)*RS^w?^wT9b?prf|E=&*ELZqA*7QJBL^t&NVzYPODpWeAPtStO zo(%Q)D!fy|bUgSw4S<%b4R%l!Kvz%&m0^!6_DW%tfyusPRUJ^_7+IFA#p|>kKG<`G zW_`|LZs1zB_d&x6t(*AmfxN;;g>woYVxXagwi8=`XjtieVEdHWSKf@?)0KR6tt+4Q zLCJvnuu|fc5i3@%mn-8_&$_|~W$-awmaRDSy+LtM!vIxAHeP2Hy)s^-;A>od%#*m{ zc-f5Axz~#tqbe!urct9#4e#*VvpWvzN+_sL<9zL_x@;X&`1r!{p|Ux#xF_-Uu#ZYm z#EbZ-677Yi?2{VePlJ!9yB#04S&5GLX#enCWxpa8$7jX-Du0%#3oNya;%UOE;K4SJHBF63dK{OI_TFF+g=&Y=In=iOf@Y1t}N@y ztkqyzt=H}u<4SQ>_?^OsIJ{DP zRsyD%a)VRBdmrzE&&p68pJSw>2D~S~u8?ig?Umr8`sesC!ch`N9l1NShYSh|N7-<3 zy4@Vvc*TI4s`6PlHbCp$i{G_FuDovbRHRdJu7*Hle6o&aQ@9|G-jILYbLsOCnvqa% zAGcd1H!T3GL7>OWgAGCd{nA&dz4|S^% zJ3gu?$MA8sq2RSHSI%d_hZxcDREbu~u<{xzBc`U=CvBT55V2jIS8wBjq;GrOO6V|u0dsKWVo_sai&!bkhUcIO~iEs2>MbkyTh4+F>w8hfgOIe0qY z++#;ozE$~Tsg*IU7=&f8k8CU1NZYGfF1A(iaYk`+AZ9qO88G))ZmimtRUEJEtC+GJ z4NZ>WqoJl76Jun`SnE`|^Y|VDrGTE3t*R37!`rI(oi|IKxK&{*B_jWnJD}gvZd&1j` z?e%)C&pnrVB5%jaXjb^RQMjD+x9h{oYiWDE4SV%#IbPoi%TxF$(HxWYiilD6!NyqX zP89^TUj)FsF*Y@f1Z0{^*N;&vZHfP&u3_Pb3J8Il3e6;_{ z_TFDrm}A0s=5kVU7V~mf_~^h-%R^b5DW%dXKANdfr6xX9P+v%>L`0wq9u?s_%)W`TZAV|{g}tFeMA9y_7Rr?IJKJ8-SfK2jL2gcKqL?coQ1 zd%Hc`LpQ&=Uyo4%sW5Kn_^pPgo@hlh?p+z8u^xtE>gsXMLo~;Sb*Yl;Jtc+9*&}Zydm}=NX{E4fEi0l(_*3|s8D+C*`vL1Q&MD|MsesHcX=xdDf z2HEGn->>`R4->Dl+aCGKFa$w?<#!rky|w^vR~TieAX6Ah7wvn$kH7gwhSt}vm{~mE zcg7b&i~{+l1@)5ku7&YYg!qbC%CS<=gqZ1&PdAasdP~aUtFf(^7TUM zT6jIK<7>KA?T6t6y$EOp32-uA%-y}n2lH`FJ zAj`>@#);R#eZVK#vb9Y^q+5AgJ>L+cVHXX!-rQ1zqStlCmHrO%4-qt@x@ihaeAouO zYzXI6PbSYOc&h$PB-7;P`t2UJFNao!U}w|S25>K3U2R|b;SVPk(+>Tw@Ba&d|Ctbg zLB8uXui0LBP%nVg^fq)`L%05-Y;_IpCh!ih>nP~eQD8hmHn@7w&FFtx_sr{4h(uOv zAxgioTta(8QVU-)k`V{W?~Pf&YEm)yu$2ME<9+S*uX;~wLozVSV7s*q8Y~GLJB#qO zMvap9@#%dhx7DTh#Ru;tO9R9V+>y*A#^AMj7S6t1P#f_KHjrWQT&fz-8)r`!qcgscE!oa8qnGp~8W0T^vwB}} zmfFD}%ND8Ah|-jLIe4um@0l_yO?vLF%0rG^<_t%*V+G6z0G$S$b8mXjoAg<8qrr@wtWA)0vZA0FmdLnft{5q`Lw0nb4J8^ZI9Maqk~QUD2RYj!o?>Q( zasM<1sFHfQd;aA6Xx*C*JIdW@_q~dUfJINJ{Y=x-;~J z<*IJrdw(ciD^_qg6N~fROSFr10tSjj1yv=}#;}eG3l1|lY9Iyl94gfPGb?Lo!%*zd z@EU}P5`ZiKD_>3HfIvoUK8_FftIESMyynlRL3zV##-!Rl+NtdtN<8B;V&9oSXps7r z_|y0dT)n=5!y!JDZQ+CV6+Rlama;JfUFp*bAIgfD5FZjM^=E`Yr8^oDH540R4n55F zm>h-<7H$WxNu8Mi`Z5EYPF&(?{jM?LO7RC1H&r%wG~&S7o3PQU*mCQTrP4RiN$6mwzV}N$}26vXPimUfjh*6Bc5-{s^@1kW?NRn#V2TtpL zsXHCv5wCUkyc$?5>kwpL>*NBe@`t-u4EOP2xKQj%FXU`G<0ILT9x@hV&-jc%`fTiu z&mg4H&Y^H?d3L@(81iMfN|FLLxTmkbLO2ARoBXD+4#=ntu(Qq% ze$GBbIm8loN9sAscH^dQ(r}b$s7Iw&qX$T1LoP|F7RB^-!vM5!R&eNk92!qejq?ho zS4^v$ncrjjY>^q*Pz+^_OxvcCGRgS&f<=RM&VTs*?fjcx-|qh9tJ{Mg{b0L%@_4&`>7`h* zQ48gs!YK0X;FsHj2bbHECr@(1tJo|UAZE7D<60QS!-o%20k5yZNa8%s8J@drPWiaODd#H=Xq(ck>}_VA0JlLSDya4!8teb?952}Pe_PD2RW z!NJ$OcDs4+`?jn1{@Qj1F9I*o@EO>r$#f%7g`Ew6XGT~wuBE(&@)hHYyqjKJe&KW5 z-KRgfoqzwkK@fM_gXlxIt#o)rBDg$p5B$+S$b$-sF{4|)x>*I*V>^xCYT#B^vw?Kmj7i-PR8Ylq%_AVD z3&lUXda_-7?W^1N#edi?zWJ})MX=6IFv}UX2!z7M9k&5G6#Ei}g5S{yOp~8Kc(^@! zuHJnH#Y-0&_dI;=L0$)Ty*Ue}zI+(cyC~*=_^^}|!i@VNRP-75UWGs}Kl`ceg;0){ zf8(PHOaBfpb@sh)ZRgQm)Q>Vz9uxvLbK8K)GWi`!ab8M-;}7G)>mS8}#J~KL?cvw| zWxM{p|FGRfyCN7$e3UVVF{l?BsYjgGFqM5_gH@4qAsO3}(ulr4_sPH5EZ66F2dzrh3my4=TQ9uKdymbu{0Xs17LqBgsEJViu3*(Z6gyi z&PAEr6A8k87>b9_RjfJ5a?pXl|MYhL&R;ASo*~MN4~!EAbRG9x#{DRp5A>||K1JL7 zx!>#`3jW$dHI<$K03ZNKL_t)SxAVXL)9ne2AcY1Q4AGPEW|uz`k)G3VO+Bs})+Ey~ z=*z$P)9pNzKeT(heDtUDpZmM;l=YlMg_z}4(Qe0w z$2bmC1BKE94|vtv2=Si2?}Iz-ne}5dnL4$jKMMs{!tOJ{ypBR9`{Cjq()7Wp$Nm*h z4?}2!w`gUtiz4;{M!${zum>S;qJ!~T0DNd-NI1Xa&PWP zMwSM%p^oRDe?G?%XybD+Af<4V;UhGIPngF)U@ffjj9CBIe`~va`@6QAsBinH&u?d6 z{Zf_*Pl9{&kx%tHR45t+JkV2wWS{z*?L6XT#LhEqR_KG+dl*tp0Cx3HuR*!YX;U>! zT;D@i5KgrH@{@m+#wS2-UAx~yI`@wg&2NCn0#Q+zs7R>iFln(|#wn4`qv>`b-R7Tn}B>9c(!~o1lNo$75t^h8ij{B|I+8T?HdtaBOVPw>Q;VyupY{q zgW~{}?MP*fI-Vd8+jQ&@AM`PV0b_jgTerJ+{o?lMPyXNS(bvD4AzU}4MmVU0c+$AD zf6-sG`2wLwj0v7b7;^K04~3Vj!Sg}r)wGu}bN%J4cMENWNxcxu=&ux4Dg;E$8N_*0c_^tIv2{utGT}yjz z=b91FCJo5U43F*=NVGoOMW510|Me@0uX!UF)jk4^zDGOL93?-ZTj(2ZoZ+ZLn`0qcpJ^Jk5W@Z9|Pn4nK0EUPh z2sf3?FoT}c@nMLUf=C?iwkMAxhaP=G*-3p(w$exv_-oz8Gv@TR53B8hoW%+ABMZc1rNyF zV6gir<}@<87?X^Y*Su)4vTh}_Zng);O7AwVs2eEfA(x>S{fRKYs9ziv&jT_(nKULy zlw~TGSJygtQ3pTO8F{c9AYhg>^2(3?`p+tp5&$W93_EZPNG6U4@Ij_}HIp=MickJxNA}qOvWTNrEuz`HwM<(U7Fv zIb%|=Refi?-v!sk1N^O-EXt+7ECi)Q>hSixzq;MUWEn$^!-$5dSqmQP&Tk(*h9nU^Bkq=^{;(2eO_K= zke7OuroJfydaNq0mN?*(OL*GEBEz4z zDGy=T_G3Cq-BIlId+rYHaiW5vdGb7-*@cnup^&?KYl^DBz4CE?D=XaSMa0~XKK94C zHUoM5oMdWwc2BLLY@EA_la@W-l66VvhEhQ!W&S?h1LD>;Q$`}s~PGTkR#k^-m8x-n&IQP4k*c{@J?r6{KxJ5 z+uz76nc_Vw$9j<>y+SFaToaRs=imP3cKLT7&!hqRjB6mH+ZexG{nD=_CYts{8xbC{ zFYpE&yz?*G#HixF`lIqZ(4X!J=JAipQX?EC)HDDcOwu5x8=B?UpApa3D3dPL321=1 z$1>>w(ReIfhym~2kAIxGWhevML?r2LZcF!6&-OcMr`N%5I+h_OqA z7Fe6awlK!eRrA=yMwxpqGOEV+4|(;JG#t#{Rv43{e~>KI|8Mvp>MF;(V^mbS=53 z{xrf(eHCY-q~1MGyLK{IWeZOgxo5CCrVvi!F|}&7wwakKWI&rQVpene&bLzeF;hx| z#9y);g`MSL5EYrCC%^eSk@AdqGuQTzxkk7|MVeSWm5T~CuBDQw$6$NUprkP#xQ_Kc z8AS^tD@$YLsXBBGaSNYpeR-%3Mkz8B1OJFQLkWfxs1t(2Z{owjauPr&=)N?UY9{pAiUME$4)sI0CQ>1~ga_-1-0IU&A`b&2YUGOEbdw#~XysbHo-U%-VAYa6w zcl*LWyF`r zg?3nD1p_#5Da!u=hU`lj(u*CYjAwjK>5l5{DFyX# zT*JbM911)h)Qiil2wPcA8kcDZ!2#Zw*{n7GIttIJwI6(Md-&;3BpY4^%fQvY_~MIM z3+{!R)Q-L!%MET2Uq;UU>X&2oFa*vJ1Lc!d+;g#R8bgH$p6edt2G&p3&Y8!y-so}U zt{;Tgfzm=TIe1+fO_L&(nIR|=kr-G;(nH)DJlMsfagF`FJ< zH<`WZjFS%9!7Lf^p|RmF$2e>oa3wxfR;}x&=cs#1cLoX0Vf!FJaRKmRt#PWSn&wa4 z*LYaj(hY)*V~2gL;0iD*txhraR_1vagR8Tcg~hBU-8qD>13fgDSr;s|#kreb`#`LV z4@JnFExkkwO>Q~pAs*X=hbm2pfg;-yWl#0tXj}Yk~an%Jf^n^w+ z=2u3a#+ZiW*JDeBsV!91kcXJE@6&5iS1hJ^+SPd%u!a=F@~3ofveU)azZOdmzL3kC zX_Yhr&;9qtLdjnL^V{`1-!rWjamGJ1#yO5$^+VfT=ZBM?&Vl(O3{W?(WT9mrD*v3~ zE2XdH+9?=#rkI4giRHkzG4S-bnu9m>q}uny4a+5Br7RZ8-C^l?HsW|FOCzUT9>t9B zMVsr$zG0PSggrOW?-;eWE^@N1;(3NTs^m1fIU&)|)fk5*$}tW17MHg1)GWyev|M2Oe8tK=9w*&)|T%U^6S_rwqA3Q`+gFF>7 z-5@hS$j?6xLEObmFAP(6q8J{g7~_!nn7!g4xQwzzd0E!DXI7YE_jWy)?``kcw(vk0 z6ml^br~4h7f~xRQ&ye5yW0zxKowLIc-d)AB0GQ#%NAZCdNW*C}#Aq|;B5*th$#Ktv z@B-&A|0J_))h32`10O0x_8TeBNGm`3#9!sJ2ah5gMM(MrGG1?vFuK*L0TckxLt18izcG(z>c9m5;dZr6}r_Sp=Ix~_&f?F^@ELO~+E z$k;FyD<=YG*UCo-y#fuXa4uOB>wF?cJ&!>a9u6UMFy8O=O3phwh{5iwU$fl>J7U5M zF?<>8Fvw%pK7{Q&K;?##7SPr1Qd}xe#|A7N>u$E!y?%QR^8_tZb&+9G#r4p3chkOa z5@#w=zD|N6^?3J&pWn8a*}aGru<#Hli!7`f3)U__|GAtYry?B1 zC+@wBHBe_UAM-c_oO2XGOi!adPu~BbnDKo+J%QrGZ~|>%>Kf;{ghN+<(n~~bp27^l#9aE+$1vB>X1WY{iZxi{7_ z5t}6zk$||2XO(e12#THi8=oi?H?H+RH8ZDE|@0R{M}oE##hR&LJ6H98_lJH=J}lQ{r2|YTVLNEw6#3U zYoi>^YtyyntRg0(Farw%Xalh7EOY6&aDw23F8bh`pm`0xc$uIs&EHkLF0P$f+q4-ew`4m}}g>qssA(k<4T@+t<(St<^~-P0&OoD}139aYxI{U4Xj zEL(aY8YR7NVOvC^dPxkGK=K`7+BqL!X`yQU6*KD&T^d^tGofIqOc($3h3y72y=@IY z83cd1cnV4nU>P1^@?{IgJ&PR}^6erS7N}cPtFG^Z4Mw_ibi80LMd-=0Y4(&mmF;cK zauc!fOLz#RXzx$i*<~!fsZV-0n z!!^-94E8_#(Oj{qIe*??TeH;U*coP~+Y@v20!)E&l8=*MT{bzH8F&$tIKfpM><6z^ zMdvQy)WxB%HM5@Mh1C7_62|yWk2DBic+d=i{4=}m7E3jy%A7*pv(7Adc{LUZVSsI3 zjwKI~{XvES4X2Vb%wap!bwbd14)*q~Z{K2Kpj~pfU}|Ql(Idw4tNiz@oZ6r9eTHWM zcN+>>!?*D`WiIXQ*c{@cZDieeM3OIa02!4@!n(r%;wh@RoX)#y^fN>z#W6lOhXa3w#AUpvcB9HW-4(1qBa*knuGZ?)&!cwX!EYk7OVY|z_ z%maNId>S-Z{)JcNI)2PV--OcONwu4Z*;k=L0l&sa9}d5Y8D=UuL!qm8|MGT)$2pr3 z;5Zc>7;pxecyh^h&$hsm#-o>b;;o(^Za^UPjeUGBVwp3e04VLvlVJ0=ykon0f2^)e zW18EoUKBV{`MJ=|je&!FF6q#4&O=7ZQk7a|IAJ4tnCLcnWwtBjJ;=(9fo7Gxzk`*r+NNgdqgVdE$5~3wd&c zGic8+(5C)TeYL6ZVXTd81-u-xU|{}SDomwA->}0%WMMc%jDBK99PI!Gd>%pNrQ?O1 ztb@1x%qP-_s2r&0A|7wNi)_&YE@p%L;`@^i|8_ls8cpY{Iq}i>pI#N`kOj(zbR?<4 zwM|NPkn@v}@6(n7rz|Q`s1QxZrR-df&PDG6pyy)g1D^O|x%#vaz*5)5@}MABv0DI)fNwiQxs2-y7^c&x zY-3>@jg!FWK)4jXI#ho-+gRl&+p#b8v{k5T)cN$^{YK8*Mj#x|9>;bl7@K4nynhHu zy=$^sW2{^@3}wuvA29}Kp#ukSNcrBxQ)&<1{?1(HzkM)VTeeq4#sS))yjUbxCgP72@L8ii0I;P zV`m4%?rjnhlaseG!FLnel5l}xwc!*5%`3KSBHK+_c_@;h8L~~O{Ntn7d5!nc!6cYP zdEOp3sGJD%a7Qi9^Yg4j2RURn3Pi0v8y^C^`0jV|;b#bu14j;=bQ&FAL7yVRwKqTa zhMJISVb191SQ=aGU1ts;ihMZptAldlf?fQc zV676cYm=)gC$yK@9o0|I=4iwK*YeFnDCSUJwp-5? zW6~I^=OqAsM?Gp#vs<3oY77#UEuFRWC4PB-8&@C}KF5AL@p<{>82hw1nC+n_g96{i z_9qWx+ZG(-U>9QmE`?y|gL^qPm}CTj#{(|8xh|i#j(V@74Nu~!IuK2If}E9|iKK8G zPOk77+qq!4%rFdpd%nN5757sK@%M!YXN;93q6nePb+<3O_dZ6d&!WF=#l{sH<%Y9?oO>CdGYwx>*G5|e{ zHTSL+JJ%?u8_wQ+Gd^?tyt=0bZq+U|*fav_I_{;P*<*I{QFH3i_Sk==4fPQKwJ1$)rce*|t z;Mp+l8)M;CT8Fyp17ncZvGaow$)vP6EV7F4@j&?vw$5&OYG!}PQjC2mI8>3IApYJ) zy7B3Q$p7~&&B#gjym|8qGc%9Dt+M;b6mWM2e}1^KK6(!)!%7HaDT2qxdX9LGzg|xQ zUi*-?u@L&451x11lr>2(i~!{NeZRgvh`oz0F!|K_&5Q>_0(w!jhbc~O9>(y3p%}7k z*O9@(renE%WYYs0p4dBU6P7zJ(6=NeEhu6vB_>swvj%Qer;-*vt) zUwi$5X`at@MUwt(r$DMK z#=3kl;D~(>g;nJhKGPUE3$K3HL**#D@ClJL&^;@L*jfZ*A5A*@;hGF30Cdd=VIa>__sgSoR zYBT;rd`4=U;ZN!4kc%s}sOltJ9Z!%HaBZe%6)Y{_*zr|G!yD+?3?$P4FrAJ#mI_9J zxVPb0qD(FR#j@j^BX2XD-o{lst1YKP9JU$dr%5z)Qy6#vhLzzhCLAAt0O~oMGRkI| zS!1uZPS&2FCCC*%$b(QgGzbm1+{0vZA{4^YaOc=t6vWbIVcAp?41Uu?;=At8!}g@H zz3SCD06vKA1P}G}8d?zh%p^(bQ;m)NV*6;+xum6i*7yt=DkhV5DLb2DblFNjc!_$o z0|OWgSi(`3%!Wv&MHz}A!>E``fa(Fk>z2CTewg;V1sGcFx9{nilTR3or&J z#@yB&*Y$z(Stu?x`)%*pQiWvwvvLlNW509$A|^7gyQdrJTzWrxXO@*l-zLnc+=B=k zf+B3i_|%KjX~;dCZw8vF+!tU zG}e?JYjDnimwZOsWl#zoY!$FZy7wpX?-pakU^)%6l01Yc4^!6z zpa~z$6ld!iZGZ?dk%-C0Hcz1;V}`VYX{ylCkP+(-k&xBLK#}*Wavw91p3lz^D zzm#F-Ds-G9fWs_by>4oRc~mf607rR~@R$uOQyMy@hELtmzp9_d@JXHl*|h>)HwR(2 zM&ef4Ft`p;s=zb6P!Ep+lKt8m zo%|hb%CH2=-T>us2r%D5h;X8vM;y$70qO)J=JO9QtlULz@#2hRsPTdcRkl@^r!fHx zG*Y5>u|yn($4roVSH}HQVxcj4GBgYZdjUH=#KQTMn4{$qnF7%q&%GUL9HYGbY{pDokO z%>b|l$OVKCe)=(l8}Imq?P+X&dl~N{IQvm}gVt_*F|8!8A_9W9z3XK-^WJy!5 zYN$4FC|?y_tQ9UdZuUtMdJ+B0^j%tb%NC%Jl`@mf_W&CA&^TLno1)=)*PBoxyd2;n zwi&Ve8B zC->TRjyUeQ`@FVAA&Sow?%f9zyJoE`hXwV(RO2=cX;iUlT~I=i|3(;87EJd{2B;1P z^EbDsv8cKx6&mir04|?z1w){w7GI8Mkhv~gXIIB{6jp)QBh74cd54PMvv0_NK;c2C z!GJg66)?%f=Udgd(Pqx5qJ6qgC$cF|W2wT^$kFEqV*|vwG~gtH3LpEJsZFYpnFl!( zz8Z3n`AI*05R265Ti=npHDfT(jeAiRGj41*%kz*93)vn-D)UWZ~njX@g2g#w@y zT0=H6T_Y3cg6TI6nEL<`j8s&(?s%uz!`LAKA1b--#HM2=TtiTS6Lyi#F-YY73)h~9 z=xr`YTPP8KQ)$`^dA^eX;nHNd!*lg#5i)N-UM_;-p8o0wB9!}DE;yvgt1S7PHB+OE z#mUM@OFoDl;jS=OgLOezDGG0p9<0csIfm?uW}GnoVAhA_QHed(jpKMFD*jysJ~et{ zxTD!c>QBj>YFI`*LNT;uL>xAbX!=VXuWJVZ;rA2*spXj#nG$ieV5;Kor3o0$w%J@= z8ml+4Q9Q=*0|O-F>IaK+;9FO!cha!nSlhkc)wQWO4b{%p&6*izWY6Omi2z1>C5k(U z!3TG(MmwBFoO1=L@N?_x)S^6um+?RjcC6dt`Cq1vQ5LbJ!qX@;#KZTDl`&9`ml8hs zhtI|ge7xZ?%EYb^X$(e$?0^5;6pL)jmNR@LZr$+ot@8^ZsIk#=^Rl7v3w-wA7I~`f zgdx^OMf|8INQQ3VM|Cu9u`vNNEu3{-jRisg80;tFmNDYv!_IAdoHQhLUzH6$4Y zd2GDP7ea5$N#^&MUyYY+)y(8z2ARhTWEyZW19ld`q!#x4!EX-8@tqS)eDse7ko$4s z&6I%`W<)t&ncF%~)a7N;*X%FW$S^cZg{la3c#R=&i9m`Bko*6Y_ivBzel?_Cn_RWs zxQ?k&d}o-G3-YiH3I@RF!}q?E#C879U&*o2%}0MfLOMS1Uu{UdF@SEygETPo1sHK} zP~yYqJ8&Ppdv0{rxgSV4K6T7Vc@E9S+{z%179q4Y5-|;XsP8zI&jaYdL@hX7$CQV! zB?)xV-IX^mT?q^1=x8hnI14Xu*50qn7?B|mV^ta-+mv02MOJt500r0FC@7=dl^Ps7 zyUiiOP@7bh?#?Ml4npy?BeD`~7mbsiOVgrMZlrOupO}cElC)55EXR;p+@`r$H`K$= zmO<&^6@=FqQnPY<#$Pyu7l^FW^@o0Ydl2tf%l5Qv7Be%%neXpa+0!%N9G}U?TA|B$ zDfvq=(U#$%JNwX`oCw1M`%xFiO>8IrG8M}Oar6k->Eo3CP%eC7UP`ZrFeO#RC&}78 zxAu{GpkvYH)`)`@XVqE#qN`Fyq99Yjz;j^$H?gDJ_Py`6f#AH?qq=JKMwpyAe;VtE zFcXV4LE?s29^hDOl>uM`&Y&tZZrVilWQfoWrFli1Ct<*Iq??yUsH=8-3Y#&I%UNKu z|5V2C>E35mh&+c)Y_SJWe82d_$KnZ_nBi>(jhMS0{y;q;l@@O0^Sp656*4V3mcKN1 z&l&P~_&?v-d@zrZT#}DBVt0)6e4?OKPR&g5{lSTw32TK(>d+{WYn|-uE91RFNJ^kfnQU4;LHzdY=Ew*uGD*KxCi7f9yh*E;f|^BE|tXZ98;^ z1G6!dOI8I^;O67=B-t>A=Go#8ya3sm6Fkh+&_LOK)Jvw#Nv%}u`Lo0)g-B;_%7P^GJOXOWWm}J?3{RmakNO_ z3iSq8VQI%rDF0PFDVBq8dM+iQXe~k@4B|7J*07-RGr2*`XaF!mc*`EDPNC?)4pkOL zkQvpRp?2Y;Sv8e&eg~<<-8x~ZZA4A^K#U5Jjb>rF7_PM`LC!2ir8n!|F+QsBw?dHu z0q1Ms7RAmZQeVCHQI)H1D~9^joq%p zxbaA2?yek-dO42g&JPpy%_F* zq9iq3M88$988+eCX;&%yFP@7B>hIqEt}#HQ410YeE$0BKp{PKpKm*{m=sHg1fV?dZW446e40(30bezJb ztSB9?2uw6f@YDNHUcM?i6a?#sI*T?x6EnKMVOT1kv4F}L+|K(E^!)VfK=s9 z>Q4WgeQu2fk_~_u3X^6?-0_B}z%p&>M^ASz~~9g)l~3rIxFqh32Sp&=gbkj9FK4vVx*Y zzG|bkP0v?bN;&9#4%sG#BJITyDpY(|R@uX*${tFH^7U~+uA%Y%tjg2zMS0%g{T7;B z#DlR<{!6V$h2pVRK%T2WY_g7~bi;VO4r0*598o;tITUw(5J<~nL{i6;Oy(L->7>?0 zomuJ5B?oaDk7^?_1j+?kwdZ_i_e|i2~kIk9Jqmt_z z9dpJS52fHeR{i||Q1Ti_XdFuhOMF_Kk2dvK85_-}l@#07IDo0XF&Q-aOx%YDE;$Oz zi_X$WhR2>2dLN%MT1`-t-0M|MIg>7LxFktXp6nkz1N108X>-HXpW#8ru6}$3RlUX7 zu>$=W#Istq)8f3QnUuK_TfQSq|1l(BXLVbYrqfenJDKz_h%9P@wK#tpQ})R%P3R0O zm@3mSgUpEchn>f|`tu)tKiBYAee>G?8p!SmeO&9zUWPLIpJIq|a;CE7wQ-DtTnL+6 zxG3Y(Xh$1HSV(qe8;6^(esE4C&(Nh8Z-M) zb3$YBAeTC5*ogDG)PuOzSdU6uWU0p6>*#UPc;;ngT%y6Z00ntlUxse*0tBs zA;8sDr95Eqi}n;6!J~3$8+Ga*$2nJ^C98KDVai-LjjKY4rr-_FQ+?6%vwLqL%&`I% z=Unz8J)k$m?4?ZltaIU~b0^IC^H?8Cd5-uc*JUz+2L;-laDAXp87Oqnh` z6{oR!E00Xg4sgK|t2+!!nnbZ4C{|ux#!J|+53)X~gnLmg2blWaD{LEb7aQx|#S>6x zZCkxrIQ2_eV{QW%?xl!&`i+d!`;nntF~;Mztd}ofEcJZoWr59fbkHY;VCtKPF`)!l~I8jN``;% zmhxN!XM#a;z=uZ8kO=L37@nPLfiz@owlV26y&tjk>v>Q1yET^dNDrmhsP{g2AZEDP zd4@PEZ_TREt=vw{#xU9F;)PvOU4bmw4yZ_rKf1 zAdOwyV6IElC%NV&xTO$die23zQ?{Cyhk$d5K>MIg0FZ{kfh!CaPlr(k#0R&H_Z0K7 z!zwJ74n$bT`p9hbjulFO%|fhxxbWNgK!uu#QzY|;a_Fh>=qaI2I! z@xgV-=4qOk&m`bp%rLXxT=#@x^gYhQc;~T9Y2UoP%ba)^_+%Ze-Hy*p4%vgIs!%lP z?8?f9Hv8bI48jYav>!jP_e{(OTt!M0Q}z7RU~ztkg6B|fvJAEr#|xlo;T8dDd(}m1 zyHVuwi^m(&4-aSY^LI2dFL&c$ly%Z)Wfnk4;_>1M3Y7z03Lj;16Da1lSq~Ljm8d|Ut(J@+5}? zbsjrZnEBd@-RI4@hWD;(PvJwnNG2?g2?Vs88=Day$jk|Xb3Dq*LtZ|n8+b8PWnV_$ z4I8ogyvD#;VVUm;!$({*Xz z1h`8au4U|BEF?^dH7$`sz4+>vx0_h?7>?J{jH9KR$-q&@*ket|Sau zgBiyW4q+i(20ANz+6rark9wS;Q-~VauNKy}`!d9CltY4Igrke$atxphKoB%^@B!I@ za<(?mn#q85-N+mZ*zBl1Vrg$TXYn`mhcM#oM%ylY>-xl-h?$abtgm0jZ2s7PF^d zNLqh&JVByVFETu1DL%awy~T{rNW-$-RIWiXHO3)v@H}-R-(NPfPYgq zm^TmX{QePAs`9GGo{#Uz;+5mG(g6)^cs>XCAO<{B(*BV|& zi)(cKJsZz5asClDw2EcYuz+HOv7)2uYdqdrwyS@#`}oY0F9;VC@j{k1LvfcvvH5vcyO6RP0h_2u5>5fNC$kV^*JGh8i@!=W_wrv@8CV%m+R!L&u-g zA1;p>9%+G3;#DoIRSTsT`Xpk1+_qg9ZSwtg=6zUH0B%9fLhOJuGs~b==5-MK8-9Mf zidXVrADxWXnuHh%>6YHzeIY!FCzdWh`**p6!Ddzs(`aah> z3tp9L)w+3XK;aP^W~Rt0HE!=1yfAEZHD5!x-P+dX!03sa?;jG;4QSt?yHLlkv+%IIX} z$)!VEf&m}@=I_L7kY1fj9-vTgQ@CCyo!||yW(e*T4`7^!t3ChAKaQuKev;3zj`oj* zWMnPPaJd&Fj5T;GzcIp$5yvuR*%z+0)E}}LwGU_Q^RHPlG8w(s#J0`YpFDojQ;~@c z>hIytY^)`dIjr1@XEHRI2x*lJMDM@YFvjN$`afDgAw z(buS!;TKyi@iEV*9)0xD@M-8VL87|GI@ECSJ;wmdZm{v}aIZ*>ZHlW)AUepYy?aJF zl8J0zfn67{4F<@O#^XkNrvRfb2q@&XU_b3%cyuX9{wHVQ=Z^h ztp2m?t=5C@`ADQIs)jCQbItZhA<0DZqiW7bt1-j~tJvZ6fmwJyfE~}WA|rJ1slU#B z>&d!|w{^ERf&wFW`1!xjaltkA;>V(__R!4$j+$A6UJjhAJ@bG8f_VT>)Fucy!NUo! zF=17&@*FXIW7ReQU*j_@go=;M4-A*=nA1m{OtjsJ5+xyN-?{xgw8&x(*G0{JCqgAl zhJG`9+JLG}=<%8)hG2EPBMcvgio}I~agJVrM$q-{pudL(K~LT^v5oUYe-fI3@BX-N zEZIo|&<3&t>LPL*aL%qZK@k$ouIS@(j4|B}b-2@j)cI6wi6zt5vCribtS&5rmcuj}%3-!4(_?tJ;?tkZ{rInc`wwCtqS&fL2Bu^+#?X8PYK49Tt)7F*4Mw2+ zGEsy35O(1>ceqAdILVW#J!~Cs!lt@@dSa<3wbOf_+*Pi55Pup z@a@;MWM?m4jjtO^c!I~VqcXsH7)Ee|*DJNR%lppEWKq;}8H3}yug0cO@c{kP-}vZu z9dB<>#ps6MOxDFe!Y4F5R-ERR-C+Y9E6@`$!=YmbE|AM}7|@oc9PyBi-9)0qA>UF1 z18nD3Y`$jj>dWlj=X9dVv^7!EjfbAluOG(3<ol|o?nT#tG_Ysje#b^w?elKc55(t_9Q00FvA>M0&aNj0L&yip`i|xk9si(cLKoi zd~)qyVkfole{Z{c?dy=M$xw_rS>A)^8E#{u3oLf=&95iSjQ<}!iZJ3^--t<~Fr;Yn z9o80gV;XOoEH0cgXq$-sgDvcAHRD)>hrreif!814wc}5Bfw{ zyFqc#iQ2RO@rVDln}aec4FGFXejM@m7k}`B?JY09uszBL9|+oTKcj*aoc=3}TZ#UokMlP>-80(9$5igV<>r|-lG+r*|LY?@I_Ud!Y z5d5Ps(%aX*etUwsjd=1cb_Cw;@DNZl(j4Hw^yBRuTSWfzSGEWL_?aB@U^fWhlwL2= z!q;#6h3#={v5x&Yv6(;_?D&*pYh$N$<%;Bls(FPm@yGCG7{k7Yq-?Ns4X;x=3*0W_ zIqm0SOZ9VXzSW2UHDjCxl0fJK4DnIyAfx`!Q}p*Li0Udle&o0#8yJ{{;d6I4C0o@W zDzNJhV0av)^NrZL=H0J;_4cZ0%Lq#kF-pUN0jQGtm;jde;}9+k;LV|A&%pp%S*o<7 zv1AaHO5LHZ&BLGB$|W<<_UOEbrO*#P{fX`Dd*9B7V(`*!#+00F;WRe^0?VZGfo*aJ zvv@E++L7A^Vjh8-({n&E- z-N|eZKL45RA^L!{EuMjBSTe)K`Hy@j0=!%N!@CQfekAthY^x{>$5~ltZ#+negU%Jv z)Ry9qQ8D~r>`^{tlCnjAW0S21n0vvC`Qk1NesP@mR01IuI<}<|E)SgNd;!{&sb(yL ziSO7O>F#x}-yZ+&|CUCtuTiaWOZ9?%buXOZYW#Z~<$XO2;5}hXFaRuyW3obVV|ZJ; z<@Hhc7#!?{M2B`XAE6s^A+7E^biMOcJ%-2NI6|T)|LOnQo_^?ew!3)y3SMM~Oc6fZ zl!=ND0c0*43W>f!83W*q)8kwY>;tTPBnL{|UN6Kf6XR8ur$R%&ILO0!UAL5mfPWAu zj0#No@z|mek5~TqhuecseZ23FnqgLxYKBm4;aGY{2ot}foConf;L8}>z@TPDUdQ;1 z^iJVDBEn%Xnnlt3vzfuH&xi3|MnCXDANd{uz66`Pr1V{gd8`Y{oyjV0>SF@-i?8j(Z@wps%bRtYp8MG-o0Dxc`;>;& z(w``k;}U=P14apBxWjfXc-0f$!G+hdwyYMFfnJRLXU0u&K-k2va2KEE&D0wdOLinD z_SCr!4@oto%JB*Mj2J!IkJbN366ld?e7ZkeBV$O*)DS^BmXI?`M8P_89LaJ*-MSfMgE6`M@ONOS;O=&nK`X>J!n)6v$s zjLup*s`AI`+0`Wv5eDa6$9>pt9dBX@uW%Lya1k$tIR8dGToV}}?1P#6TE?=9tK5AI zgDX6{nk@~siE#xKGK#@=?a5XVcf%bZm5C3wD7?Zm2MD#0?!>XSJOg8k9IQrJSkZ`2 zdX;<$T`sT9{$0IX4}09k3$3v;Hr6cNMrP{jYZ3b+Hpa4#7}MZMx7vywhvIo-gg$uC zB+^iLUij`+@lxz}zNc>tHi&_#$vUEYXKI)*uAhm>{Be$PBL4!D+{3?Z0@arRLqS?-L?I>&8r~}qMxgpY&)GCN?!{h>O=+=# z@>|}%-NciEkS$qr^kEof4cz&p9d)Yd&(!EuI(0tQXMzciyE6(u1I(|^rl+qN2KpT)u z0gr=0&*K>d)c>?ygW7U=TV_jZ?K>u~p0pHc?UL7O0)yv$t&NlmCKS@;#sM&6ym95_ zDliY-v`vO{ASkXMWy5f@f1wbnJcZAAMN%)U_nM()?M_GRhL;!#K`KwC000}2NklBo#>v8P>zNeRP|R0+Hd8RYa0k$K}Q1 zROG_8r^Y3`Q6lvy1!bjoPX$3nqA4{eGP)aWY(zutk=Y`?tOio~>-*}N)B(C)OM&97 zx_4%T%FXG_?Exb~DQ+qoK*3Y7=v2#_mB8=fVcZ<7QgPb8i#ahX+>APY=QFfi(A8KBRpq5A`MSwG`mFHk>4{H;kh)E!k{2M+vr!DBGGvwR0(+I!+x= zge3$@d?=zWs)Y+V8Io8blp%@|!u6`UqGz-Fh05}aTjbEpR^!C#_$nUs((9VzbvhOU z&}V6P)$z*kIo>`!yT(DWo-y0QlUJQOugW#+)BUk2UFh8NjQaDe^(@u`aT&0(L%QE4 zuw<{Uu(aOUg>sNwmRD|%9!2eIC=*BeRFwx-%XSP5+@4>F$0yDvUN!P1l_gJP(|aA9Q>tB_zeN}XUEp4u_1 z_6`<*R(!Or8usXVGS2q0eT_bv*P7=DG{mZ==^CmzBu9N20@Za4JLsO<#c`3Q=F+n@ zw=$G;Sf0nK=XgtA`}DA?X)#}v1H1D(!ukXR%`baM_8+?_;@I(ivj?bJ1ohPf%Za#b6V_pkkRoUweD&uLjx@Q<5 zz2Yf+)T28o6pkadS0ye3oL{b|GuUh{mp2)BQ}&}j^Q?BsM#4ITH*KzkA^u@M z+Y2&|g*X}?X7t$NrW9~Do~~1EP~RFiG(W%99`!Yl%uG&WkE}mq@d}1nPY!evqWb6{ z5jP{#Q01X)d~XAzM)O*Z4p!%d1$k3v6SOM@*Y>KZnza>O)0M=3|v}^+RbcPDoiSYj$K;(joVlrP<}>yvJH)-o&}$56UPH( zDg8xzd-#--95d4ef9XpflXL$F7-ub<>#>BPy1y<$8PX(?)Ii>i%Q6X&a8#od6t`^h)tjyzYZ5Yu;<) zUKy`MXZG;i!&Z*xTP_6?&U#bVxqJmxe2&+h%cl zh}rtkmA4rK#{k49C$wa&k@!UDG0i8meoXi@64Cw=v#dk(B-_yN%o%?vkH^s-zL&Xg zv&rk!E4F?(iQ#vDO{y}*kU>?93pLK9!m&V3JW;`zCBlkEKJ1~&2La|%W%)Scs*>gP z?H`mP+e0v0`=-G<1kwsn!@wb~@GMz318>*r>!A3;2M-UqE{gY~e3sc2jO}f0OhL6} z4yi1N;WHyMV)2e$jbx2UOr>zGLp+U9k$t@1vr0c5j_!hk38MJOx?Z8QbQH@9tSaR3RuxyoY5equvLf zZb-s9xNntqV;>!7*2Ci|)TVHX&&2j-K)gqB)IN3ZC`|0e<%Xj8sRz-z*k;F`*BrxV zPk)jGnh|Qdosc>SH$rjQxejVulhhrwy#`J0b0>!O4zm*q%nA$_wt6F$p@zlp$BfTC z8r!fcXLU@k*EV>aJm<=>SC1>W;_u4mWTHyphVZk%XRpmGoL#niGI9AGlf$Zid-!-; zwOlutWBr=O0JxBYHSOSmdzKPcjdu4%p>yrK-s8%T-##17>TsV=mZ$=Hxo(gv1Km?P zSNaw6sL<70YJ2q>3Q2LGu<)1t_Inf~T&Hf_>!SRe0Ni`(eTsn_=qtrXmCgxGbxZrI z6IRUBu-)jF_l;)i&$+$=m;LjnAnt)Ai>RKJ4qt zcvkvzYRsiXMET{L;`QU~tLOG&PzBaIc}xMlJngX7%j2F8*0AJY8Fw4#v3`0fWeWFX z%Bm|yCxFKWgH$?a{gwAv8Q3wrRS`VqT`3boMzW_*2x)m9a;)$tKAQDXgH$iNB1`sH z$xLOwBGWyi-6K%PS>?Y9z4IMmT8SD2kF#U$Ufp=;W>ryDsq{Oq#oraMY^;V+3{SL^ z3beak2g!xyhN~`C+w`pX@OpjjR*lW^QPS~@9Q#ZqR+$hx-m}6-4a4zq#@bo(hKoccyZS z*2cJSwIj}q%KkW~vAg!ctzH#T&v{)e->+9CS_$0+@A#~ki)Cg^Y93i}RL|pBxfeec z{t%y4U!0}=x6A7oK5mfr(I3T!?NeFrk*<0>erH*#!#JjfJG~%drL;VzopC00cj?Tk zAiC1%y(?w$^E9XxdwEA!W&5!eNN)72Hmu6=zIhnnO1W3JlY}bSo={zOr-6YqJqC8&(ejVsvxmPL(4MSShb9l;mZPo<9Z(lTx9z~=I**a5P;|#D19A7P*D6!9 zjkyU`dr;iH5$gBQ&e;U*W`;uh$?wiI%F+Z`k9ml43Lj@*{9fUsb+JtLZ$%g=hoOb; z)2SHV2Or9aIBH$QP8G~OvSP|`vd{L)jI!#F_U}IUI2mdiwB0;TEU_gE$Ao=vP`5-X z)t;MFW>ELzg2#0_Xi^JRL-6szsy*s{S77RSRbU6eS!~5RZgeZA(!MD8dM~f>F@=`r zalacI6;72(@7M58+r&EAKb7eUAN3k~k9$_fMs-B7)bdmYsym90XRvskl9`t2<5kC< z_d7lu%Vfyu!gqFC8N%uwb#dNtW#5$|DS+Auji=pfxKjIhjghs^V{Lb%c0nmy>Gzca zxYDe~28y*S-?8#lIai9hGL#iQYAkyOz6x1ahNAc1$3Ry2taNQpH}+(qGCQU}#BKRN z%t{GWiBYi5W-8OTdtJFDhDr1cS|6?2uTeJ8&aV_*LojC^WdlE_LQ!EHV?gy>3O>Ut z0_`|x_QJgb`wpg31yCjSNk9!*yiQg0V?^T0zK4%vzQSjZ5ZSgpJ;8bCh4xQFRc*g! zxNx6(1f5l9N*n$01WBI>Rtsi9jFX&kR?OikvDG!&Kuz8GwZ{~gin(HPO((jmAALR!YzF?lzs-R`ogqsle3hJWC%`SYD@s zxOd&N;N#5rO7KzqR&DaIfrg|;^RvX~RG*#|A7%7Ce5gAsd95OVRex7e299MKRFzY| zuNt><$?jIwW4Hl$`O22cGHSgF00pdW5oKs@TV12Gr!wZsxD`+bcZJO=q;NJ`;iDL7 z|Bm6KjOkf2#f#yUhM0T!5Py}^efq8BL>!&uj$z|E;)brC!|~a}PRrO!EGR+Xn!Xy8 z6{>qr3uzNGno?s-MesD`vHzeJ{{|y502IF_LNVdeh_;)orm${Ra8lH~ZR(j$1DCsH&yzU?k>Pqf6DNx$*)pgzxzxPxJR!Zf< za6@$kShdmH>W1qI&)=&MNJFX>Hm+!^vORP-hPj41dy3;Evr;~1+dcMFgH@dL`upJH z*zD4>m@_7YzZFxinN*F^D#rZjtS9cg^$8 z(%v>+=U{u*K*J%H;WM7AXARg7OaRD3ihKZcLCT|-7?TMw1gD80@V>1ftR znVIC`;iDc`{n^7u`+)E4hhpqe0w=5J6<0>ax@n}256R*fK0O3dK=u1xD4>?ZOkx_Ha0OLB=T;<1XBlWYzJN``dGE ztMd2iRAqDpRE65RU)}IZh^uy=!bjV&A`cg^8_Y^6_6(87eGITNrWHPW* zC+kyW;`(q(<}3Yi86LxjeV^VBK=((m7;-S2Sv~7}3?Q{ml<5;s8roa>$8Sa)I07Rr9wj_Dar+h|MUac5HsUi+cfc>J#I(R7{mTSE_)i*{4N zs0doO*RKZd_?%)`ReY9v3Lh%V$~(DI?cw9fN##@duR=ZbGTPTYd}tJ|Yubln7&$&1 zbC5{g=nh_z=hn2cN^hLA8G$B4sEb~ONUOMy#^7bsl2;(CnAVTESK2FQ@4jO!wd#i} zzxIdcs5rz+m2l5^)%cVte-`+xypy--6h5nddbHsERczh6tn^_eZ#Qz6m$z#&fMb=Y zWjgDtQYnk$I%R!l0Cv*ZMBSCLt6Q%#xU!jlU$xnpU0L4^!(F#~8#0vk(T&aBGw*T5 zPy+FggNmYMbCTn44OxyE@X9Ny{CJ-FrEOGvh^uGg z^!j`zSmV6CRFbk3D%OWlRFPDuZjEXj$CN|kNo5HK0p+t@{s4?Kma-)8({P5$$xsIU zWBYMT<6@1cJq~3Xb>@79&x+;I22TNdyHS?o-U&x zRgWvxoP1hrcZHqHD-FOi2Mjey9xzV@Oz<%DzgJYW^@Kw35dt` z*jrtvx>+jAD${~{lrdGY)o|U&9UpxLU^RA9hE@e)xhe<6%iH71y&?hPqh+h{`kfZ@DM8!^AN4$Jk79R<47Cp$J|1k2t3uS++y&)|c5D`I)mbf1!z*Vm{HAMFA<@mP zfK?ahEaUAaFsQ?~>EN}ij1bQ;d~~)ViLlKKL8#R1lZGZMV&L^|{A$=tGb%n#Ox}mR zkkQ*sdEof7;zQX`25y9ED5vn*Q*dAOxbl8l56){iyWARa&-EX3IeO2^4eo^s$|$M; zs}56$yiVP!D~hwDvWE9V-MKQOe%JmvGw-=_zkkKDE38$B&RmM4_GyKkVtYy^$2`lP z_fR?fTi~OHv!{Fa#YYGBY7qUANLS!h%(mw?Y3T~Mv(ZZU&MqoMJx7IGxqK~GjYa`; zgVFY`+U5Op1wR>c>dvK7049@L^fnCtddJa?}1f6Y909NXPo?xUxNZkK^Oyx9aa6 ziR>L`8S2@z52{N_SV}JV-d~Wxk-54Q6r#+kVa}>zR;tXTA(b-i3dp@qF%+ZgQZ`$4 zTEhiT=`mbbF|QknGLU9CR>rBB4V?G!h2F#VF$`3LJ0>jlTlA6~kk7 zT=z=x(FJFY59?%@$u_%gXkRp>Jcf@O$cjW=7K-t-EsDFGRfE)m*hp1Eg3V)UG|JEv zqIT{WvugOWV(nvsQ>N4L1`S*V!v5{G#o63rYxf>%=qyu7MTO&x{H&g5Wxy=MSGzh3 zQyxw(E2B~aT;Zi<5Fg^EZFJAzN>90XYFL$A+j2^Ooc(cq-x2AbsWY6lxPq}ngR#pC$ptL>SU&Y1yu~ITG>)18Q=591f z2KU9smDkJEa#m!beP#Vh+$&Ocd{j2m&Tw>@YPDnl9K()U3b2L++HlR<=!n~0nH$wg zcxn*-eZ{Ws)*Vo-L&p}L4yL{&Sguq)3#Y=@ zxYx^I!_)v7QtbhxKs&p*z`btIDrssKeeia$EgEjAk}D1?hNn`k@Zt4723v)1xK`s> zO;6&Sk9*i|Z|fdDyzUe}dj{qG)9`2IDTo_&OchyW;3T8<6B8a&SsufuzZ^gdbJknM ziyk64Gahr7E9F>SzY4=nUH3}PtJ_qsg;@9eC~7Is*m@T3RWL~GC$g|+%49R;}84vbJmr3|T zD~gXQh#QyULt^k0rjrpcASSHGsBI@L9>ZZ;Rs0?+UH1 zYUOV9yfVHU4VjY+!TYo$ZWwM9-WC_IgRsKoYDlnR{+||~Jv^TUpJU4JimOVf zMn(f*z1}Y$I4j|39V)X`D8v4$cTxOT#_8qj_4m=AJ$$sTd>()b#PGzKhsV9aENJBp z38=E$N~s8(GN-y^x?h~vnP9ZVT{o52-7(ho;~4JO423f#-7r~9m4?T(>|+8_f$P|Z z3g@Af6T!;+5PuIx7$&kFV(KC63Ln%Pi!ha zs;AUF^+32*$7$>n>zNkAoeBlqGTkjX+qzOH7z(H#S8H_-py7vm3WB+c#d%Kus&Q)@ zR&{D$RiSANE@LpkfF;wN-OD-t+til{EpXIJF@%AWL={fbDs#lJK z6Rh@4jmYcOHmVV=%J(sb6HF%qe$hf!!0&a!!B`2MjrD8y1niw#0k&c%zm8t$K8mSE zLQGVFykC37-~_Q}1dg}L;go{x3E$hKc&`Xzh5t%MuAtu5`|5zpVedZghkNQ(dt81i z`S6&Q*Ox;pKxBcHJ5*Pr_oz$Pa6#D;_o{2#V;yH!wPp_|luebTRS{Rr;ee5OlqnR% zWB9n&V;OpnPoAOOOf|C)_{&EzHJl+HYLMEtWBBZ4sZ@!N;iLFE_S)~C1|JfY>z3k3 z40QGw=hd^hE>H(Nd{yt+ABj{zk6F(ib5WS?QB=4DdatfyZBUo$3g!%A*8AG{?}JA2F>t{8N6y$jS0#5+yp^W&@Qv}2xrI|dj5*ke8_iVE13 zV6Ptzwt6$g$Gyg0d$r$=jk7p^uZ)qTpk?U&?sZj3*fwpmvhT`JT^CmRvLZw!q!pv@ z>7?WA{q(l8oP%vqT<9toTE7cRT`(sdyuy`2YiC#2uUMZGMXpS)P|gfw8O=m#KX9Hq zT>t}4I=P29C4d#xv~Q7yRWTn%;k9?v=u-XLJK%pVhN!$g6ESCYP1| z=rOk4vxRz%maj^`BF;ViQp3tIfLgPD*I0>_@n%JYCCb#kyD>OEEN^eD;GX;c10!}ssSAAI@&Et;07*qoM6N<$ Ef>Icgu>b%7 literal 0 HcmV?d00001 diff --git a/src/app/resources/assets/main-70s.css b/src/app/resources/assets/main-70s.css index 4ca9189..eb0d1fd 100644 --- a/src/app/resources/assets/main-70s.css +++ b/src/app/resources/assets/main-70s.css @@ -667,3 +667,137 @@ section#auth h3 { .theme-buttons li a:hover { color: var(--c-hero); } + + + +.inline-nav { + margin: 0; + padding: 0; + list-style-type: none; + display: flex; +} +.inline-nav .button { + background-color: var(--c-font); + padding: 0; + margin-right: 40px; +} +.inline-nav .button:hover { + background-color: var(--c-hero); +} +/*.inline-nav li { + font-family: TheWobliy, serif; + background-color: var(--c-font); + background-image: url(data:image/png;base64,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); + background-size: var(--c-noise-size); + background-repeat: repeat; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + -webkit-font-smoothing: antialiased; + image-rendering: crisp-edges; + image-rendering: -moz-crisp-edges; !* Firefox *! + image-rendering: -o-crisp-edges; !* Opera *! + image-rendering: -webkit-optimize-contrast; !* Webkit (non-standard naming)*! + -ms-interpolation-mode: nearest-neighbor; !* IE (non-standard property) *! +}*/ + +#blog-header { + margin-top: 0; + padding-bottom: 40px; +} + +.post-tile { + margin-top: 40px; + margin-bottom: 40px; +} + +.post-tile .date { + color: var(--c-font-muted); +} + +.post-tile .title { + margin: 0; + padding: 0; + font-size: 2em; + background-color: var(--c-font); + font-family: Lora, serif; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAUVBMVEWFhYWDg4N3d3dtbW17e3t1dXWBgYGHh4d5eXlzc3OLi4ubm5uVlZWPj4+NjY19fX2JiYl/f39ra2uRkZGZmZlpaWmXl5dvb29xcXGTk5NnZ2c8TV1mAAAAG3RSTlNAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAvEOwtAAAFVklEQVR4XpWWB67c2BUFb3g557T/hRo9/WUMZHlgr4Bg8Z4qQgQJlHI4A8SzFVrapvmTF9O7dmYRFZ60YiBhJRCgh1FYhiLAmdvX0CzTOpNE77ME0Zty/nWWzchDtiqrmQDeuv3powQ5ta2eN0FY0InkqDD73lT9c9lEzwUNqgFHs9VQce3TVClFCQrSTfOiYkVJQBmpbq2L6iZavPnAPcoU0dSw0SUTqz/GtrGuXfbyyBniKykOWQWGqwwMA7QiYAxi+IlPdqo+hYHnUt5ZPfnsHJyNiDtnpJyayNBkF6cWoYGAMY92U2hXHF/C1M8uP/ZtYdiuj26UdAdQQSXQErwSOMzt/XWRWAz5GuSBIkwG1H3FabJ2OsUOUhGC6tK4EMtJO0ttC6IBD3kM0ve0tJwMdSfjZo+EEISaeTr9P3wYrGjXqyC1krcKdhMpxEnt5JetoulscpyzhXN5FRpuPHvbeQaKxFAEB6EN+cYN6xD7RYGpXpNndMmZgM5Dcs3YSNFDHUo2LGfZuukSWyUYirJAdYbF3MfqEKmjM+I2EfhA94iG3L7uKrR+GdWD73ydlIB+6hgref1QTlmgmbM3/LeX5GI1Ux1RWpgxpLuZ2+I+IjzZ8wqE4nilvQdkUdfhzI5QDWy+kw5Wgg2pGpeEVeCCA7b85BO3F9DzxB3cdqvBzWcmzbyMiqhzuYqtHRVG2y4x+KOlnyqla8AoWWpuBoYRxzXrfKuILl6SfiWCbjxoZJUaCBj1CjH7GIaDbc9kqBY3W/Rgjda1iqQcOJu2WW+76pZC9QG7M00dffe9hNnseupFL53r8F7YHSwJWUKP2q+k7RdsxyOB11n0xtOvnW4irMMFNV4H0uqwS5ExsmP9AxbDTc9JwgneAT5vTiUSm1E7BSflSt3bfa1tv8Di3R8n3Af7MNWzs49hmauE2wP+ttrq+AsWpFG2awvsuOqbipWHgtuvuaAE+A1Z/7gC9hesnr+7wqCwG8c5yAg3AL1fm8T9AZtp/bbJGwl1pNrE7RuOX7PeMRUERVaPpEs+yqeoSmuOlokqw49pgomjLeh7icHNlG19yjs6XXOMedYm5xH2YxpV2tc0Ro2jJfxC50ApuxGob7lMsxfTbeUv07TyYxpeLucEH1gNd4IKH2LAg5TdVhlCafZvpskfncCfx8pOhJzd76bJWeYFnFciwcYfubRc12Ip/ppIhA1/mSZ/RxjFDrJC5xifFjJpY2Xl5zXdguFqYyTR1zSp1Y9p+tktDYYSNflcxI0iyO4TPBdlRcpeqjK/piF5bklq77VSEaA+z8qmJTFzIWiitbnzR794USKBUaT0NTEsVjZqLaFVqJoPN9ODG70IPbfBHKK+/q/AWR0tJzYHRULOa4MP+W/HfGadZUbfw177G7j/OGbIs8TahLyynl4X4RinF793Oz+BU0saXtUHrVBFT/DnA3ctNPoGbs4hRIjTok8i+algT1lTHi4SxFvONKNrgQFAq2/gFnWMXgwffgYMJpiKYkmW3tTg3ZQ9Jq+f8XN+A5eeUKHWvJWJ2sgJ1Sop+wwhqFVijqWaJhwtD8MNlSBeWNNWTa5Z5kPZw5+LbVT99wqTdx29lMUH4OIG/D86ruKEauBjvH5xy6um/Sfj7ei6UUVk4AIl3MyD4MSSTOFgSwsH/QJWaQ5as7ZcmgBZkzjjU1UrQ74ci1gWBCSGHtuV1H2mhSnO3Wp/3fEV5a+4wz//6qy8JxjZsmxxy5+4w9CDNJY09T072iKG0EnOS0arEYgXqYnXcYHwjTtUNAcMelOd4xpkoqiTYICWFq0JSiPfPDQdnt+4/wuqcXY47QILbgAAAABJRU5ErkJggg==); + background-size: var(--c-noise-size); + background-repeat: repeat; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + -webkit-font-smoothing: antialiased; + image-rendering: crisp-edges; + image-rendering: -moz-crisp-edges; /* Firefox */ + image-rendering: -o-crisp-edges; /* Opera */ + image-rendering: -webkit-optimize-contrast; /* Webkit (non-standard naming)*/ + -ms-interpolation-mode: nearest-neighbor; /* IE (non-standard property) */ + text-decoration: none; + transition: background-color 0.1s linear; +} + +.post-tile .title:hover { + background-color: var(--c-hero); +} + +.post-title { + font-size: 48pt; + line-height: 1.5em; +} + +.post-tags ul { + margin: 0; + padding: 0; + list-style-type: none; + display: flex; +} + +.post-tags.listed ul { + display: unset; +} + +.post-tags .button { + font-family: Lora, serif; + background-color: var(--c-font-muted); + padding: 5px; +} + +.post-content blockquote { + background-color: var(--c-background-offset); + border-left: 3px solid var(--c-hero); + padding: 1px 20px; + margin: 50px 20px; +} + +.post-content h2 { + font-size: 28pt; +} + +.post-content h3 { + font-size: 22pt; + background-color: var(--c-font); +} + +.post-content h4 { + font-size: 18pt; +} + +.post-content code { + white-space: nowrap; +} + +.post-content pre code { + white-space: unset; +} + +.post-content li { + margin-bottom: 20px; +} + +.post-content img { + display: block; + margin-left: auto; + margin-right: auto; + margin-top: 50px; + margin-bottom: 50px; + max-width: 100%; +} diff --git a/src/app/resources/assets/rss_opml.xml b/src/app/resources/assets/rss_opml.xml new file mode 100644 index 0000000..39e556b --- /dev/null +++ b/src/app/resources/assets/rss_opml.xml @@ -0,0 +1,84 @@ + + + + garrettmills subscriptions in CommaFeed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/resources/blog-posts/A-New-Platform.md b/src/app/resources/blog-posts/A-New-Platform.md new file mode 100644 index 0000000..1bb77cf --- /dev/null +++ b/src/app/resources/blog-posts/A-New-Platform.md @@ -0,0 +1,67 @@ +--- +title: A New Platform - My Relentless Pursuit of Privacy +slug: A-New-Platform +date: 2019-11-15 13:05:00 +tags: + - hexo + - meta + - medium +--- + +I have decided to try out a new format for my blog. The site that this article was originally published on can be found at the new home of my blog, [here](https://garrettmills.dev/blog/). I thought I might take this opportunity to discuss the platform that runs this blog, as well as my motivation for moving the primary source away from Medium. + +## Enter Hexo +For this site, I'm using a static blog generator called [Hexo](https://hexo.io/). Hexo has been around for a few years now, and is fairly mature. More importantly, it has a pretty solid user-base. I tried out several different self-hosted blogging platforms during this process, including (but not limited to): +* Postleaf - this one was my initial choice, but it has a much smaller community, and doesn't appear to be actively developed anymore. +* Ghost - Ghost is a powerful CMS platform with a massive commnunity. However, it has a much more corporate feel, and I'm not wild about running an app vs. a statically generated site. Additionally, it requires a login to their central service and has many features behind a paywall. +* Wordpress - I've used Wordpress in the past. While it works well as a holistic website solution for many people, I generally prefer something lighter that I can modify easily. + +### Content +So, how does Hexo work? Well, it's pretty straightforward, actually. Pages, data, and posts are defined in markdown files in a source directory within the app's files. This means that the "CMS" in this case is my favorite text editor and Git. + +### Themes +Various theme options can be installed by cloning them into the themes folder of the application. I settled on the Cactus theme for Hexo because it has rich plugin support, and appears to still be maintained. Plus, it was easy to adapt the existing dark theme to match the color scheme on my main website. + +### Plugins +Because the Cactus theme supports a wide range of plugins, it was really simple for me to add the functionality to this site that I would expect from a semi-modern blog. For example, you can subscribe to this page with Atom/RSS, full-text search the posts using a statically-generated search index, and leave comments below courtesy of Disqus. + +> Large technology companies like the ones that run the so-called free services that run our lives make their money by selling our data to advertisers. + +## Okay, but why? +{% asset_img medium_1.png My Medium view/read stats for October/November 2019 %} +

My Medium view/read stats for October/November 2019.
+ +Over the last couple years, I've written fewer articles and tutorials than I would have liked, but the ones I did write have done fairly well. I have a pretty consistent 25-30k views per month across several of my stories, including my multipart Raspberry Pi Cluster series. So why would I want to move away from Medium as my primary publishing source? Well to answer that question we need to look at a deeper trend. + +### Technological Behemoths and the Internet ~~Consumer~~ Product +[Nearly one fifth](https://www.ibtimes.com/facebook-one-out-every-five-people-earth-have-active-account-1801240) of all humans on earth have a Facebook account. So, one might be tempted to say that Facebook has ~1.3 billion consumers. But, this is not the case. In fact, very few of those people are actually consumers of Facebook. Instead, they are the product. Massive technology companies like Facebook and Google stay in business because the users of their platforms are not the consumers, but instead are the product. Generating ever-more valuable data for analytics, clicks, shares, and the king of it all **advertising.** + +Large technology companies like the ones that run the so-called free services that run our lives make their money by selling our data to advertisers. In turn, we are bombarded with increasingly strategic ads that try to steal our attention. This is troubling to me. + +That, combined with the fact that I am deeply uncomfortable relying on sometimes ephemeral companies to provide me the services I need to use day-to-day. Especially if, in turn, the data I entrust to these services is being analyzed to sell me on AI-selected products. + +### Public Cloud +So, over the last year and a half, I've embarked upon a journey to become less reliant on the likes of Google and Microsoft by transitioning services I traditionally relied upon to private instances hosted on a VPS. + +I know that a VPS still implies a level of trust of my data with a corporate entity. However, the access that entity has to my data is severely limited. Besides, I'm a college student. Where am I supposed to put a rack of servers. Not that I wouldn't enjoy that... + +So far, this effort has included, among other things: +* Replacing Google Contacts, Calendar, Drive with NextCloud equivalents +* Transitioning from Google Docs to LibreOffice on my laptop and a private OnlyOffice instance online +* Relocating my code from Github to my private [Gitea instance](https://code.garrettmills.dev/) +* Swapping Google for [DuckDuckGo](https://duckduckgo.com), a privacy-first search engine +* Moving my personal site from Github Pages to a VPS + +### A Medium Corporation +Medium is a very large, very popular, very corporate blogging platform that makes a portion of its revenue from a user-subscription model. This means that Medium is much less dependent on privacy-hostile streams like advertising. However, having Medium as the sole home of my content is problematic because at some point, I no longer control that content. If Medium were to decide tomorrow that I had violated their terms of service, they could remove all of my content irrevocably, and because they're a private entity they have every right to do so. + +So, in keeping with my theme for the year, I wanted to find a more data-safe medium (heh) for my content. Hence, this site was born. + +## What does this mean? +Going forward, I'd like this site to be the primary home for my content. I'd love to answer questions and comments on that content here, and interact with users directly. However, I also want to enable as wide a variety of people to discover this work as possible. So, my Medium blog will become a mirror of the posts on this site. That is, any content available here will also be available on Medium. + +I'm excited to get back in the process of creating write-ups for my projects. It helps me document my work and has given me some really awesome opportunities to interact with people who enjoy these projects as well. So, be sure to check back in the future. + +Garrett + +_P.S. - Existing posts from my Medium blog will be made available here as I have time to transition them._ diff --git a/src/app/resources/blog-posts/A-New-Platform/medium_1.png b/src/app/resources/blog-posts/A-New-Platform/medium_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8df4a5d5402cbef9006602fffde59f2675debada GIT binary patch literal 22643 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 bZh5*X{!}LusO0_pje)?8EDUM-uJ`{1+-89I literal 0 HcmV?d00001 diff --git a/src/app/resources/blog-posts/A-Noob-s-Guide-to-Gluster-on-ZFS.md b/src/app/resources/blog-posts/A-Noob-s-Guide-to-Gluster-on-ZFS.md new file mode 100644 index 0000000..e5add89 --- /dev/null +++ b/src/app/resources/blog-posts/A-Noob-s-Guide-to-Gluster-on-ZFS.md @@ -0,0 +1,193 @@ +--- +title: A Noob's Guide to Gluster on ZFS +slug: A-Noob-s-Guide-to-Gluster-on-ZFS +date: 2018-07-07 00:00:00 +tags: + - gluster + - zfs + - linux + - tutorial +--- + +# A Noob’s Guide to Gluster on ZFS + +I run a Dell PowerEdge R710 with effectively 680GB of RAID storage. However, over the years, I’ve added on to my network, and as a result have needed more storage. My haphazard solution for this was to just add additional storage machines I have lying around for things like the network backup server and media storage, but this isn’t very… elegant. Aside from the fact that my data are not centrally accessible, it also means that I have to have between 3 and 5 network shares mounted at any given point. + +So, I embarked on a mission to combine my various network storage boxes into one big SAMBA share using GlusterFS. But, I found that the documentation for getting into this, especially for we beginners, is a bit sparse, so I decided to chronicle my journey here. + +## Part 1: The Hardware + +Before we can begin software-linking storage together, we need to have physical storage in the first place. Luckily, Gluster and ZFS are pretty flexible with the hardware they can utilize, so there’s *some *leniency in designing your system. Here’s mine: + +### Server 1: Violet + +Violet is the original NAS. It has 6x146GB SAS drives running in an actual, physical, yes-they-still-exist hardware RAID. I will be including this server by creating a folder in the RAID volume and adding that to the GlusterFS volume. + +### Server 2: Archimedes + +Archimedes is an old HP tower that I’d formerly re-purposed as a media server. Aside from its 80GB boot disk, it has 3x250GB hard drives running in it, which we will be using with ZFS. + +### Server 3: Newton + +Newton is also fashioned from an old HP tower I had lying around. The drive setup here is a bit interesting, though. It too has an 80GB boot drive, but instead of 3x250GB drives, it has 2x250GB drives and 1x320GB drive. This is mostly because I’m cheap and didn’t want to buy another 250GB drive. The beauty of ZFS, however, is that it can use mismatched drive sizes, but each drive behaves as though it were the capacity of the smallest drive. So, it will effectively become a 3x250GB setup, but more on that later. + +## Part 2: The OS + +There has been a lot of drama in the GNU/Linux community in the past over the state of ZFS. Operated by Oracle, for a period around the mid-2010s, ZFS only *really* ran well on Oracle’s server OS, Solaris. The Linux versions of ZFS were buggy, out-of-date, and generally not very reliable. However, in recent years, thanks to a community effort to further develop the software, ZFS support on traditional Linux platforms has become basically indistinguishable from Solaris. + +Which is why, for this project, we’ll be installing Ubuntu Server 18.04 LTS on all the machines. It supports the latest versions of both Gluster and ZFS, and the long-term support ensures stability and updates for years to come. + +So, do a fresh install of Ubuntu Server on each machine’s boot disk (*not* the ZFS storage disks), run updates, and let’s get to the fun stuff. + +One thing to note is that, during the Ubuntu Server install, **I highly recommend setting *static *IP addresses for the different servers** so they don’t change between reboots. This can mess up Gluster’s ability to find the other servers. + +## Part 3: ZFS! + +Now for the fun part. I imagine if you made it this far, you probably have some idea of how ZFS works, but here’s a quick rundown. ZFS is a software RAID-style storage utility that makes use of physical drives to create cross-disk redundant storage pools. + +First, we need to install ZFS. On Ubuntu, this is as simple as running: + +`sudo apt install zfsutils-linux -y` + +Now, we need to identify the drives we are going to use. To do this, log (or SSH) in to the first server and run lsblk to view the drives. + +![](https://cdn-images-1.medium.com/max/2000/1*S02GDnRd8xWYQhBPXcGkyg.png) + +Using the output, identify the drive names for the ZFS storage drives. In my case, these are /dev/sdb, /dev/sdc, and /dev/sdd. + +Next, we have to decide what sort of redundancy to use. In my case, I want to use a 1-drive redundancy on each individual server, then use Gluster to pool all the storage together. This means that, on any server, a single drive can fail, and the whole system will continue to run, but the Gluster pool has no server-by-server redundancy (meaning that a failed server will make at least some of the Gluster data inaccessible). This obviously isn’t the most data-secure system, but for my purposes, it’s “good enough” that I’m not concerned in the day-to-day. + +### Creating the ZFS Pool + +Now we can create the actual ZFS pool. We are going to be using ZFS’ RAID-Z format. This is a single-drive parity format that will give us 1 drive of redundancy. (for my 3x250GB machines, this amounts to about 465GB of usable space) To do this, run: + +`sudo zpool create pool raidz sdb sdc sdd` + +Where “pool” is the name of the pool (you can name it whatever you want), “raidz” is the format, and that is followed by our drives. The zpool command always has to be run as root. + +![](https://cdn-images-1.medium.com/max/2000/1*Xs29JxUrTCosrd-KGnf6EQ.png) + +After creating the pool, run sudo zpool status to view (*gasp*) the status. This is also how you can check if drives in the pool have failed. + +By default, ZFS mounts the pool in the root directory. So, in my case, the ZFS pool is mounted at /pool. + +Repeat this process, creating ZFS pools, for each of the servers you intend to use in the Gluster volume. +> Note: if you are using drives of different sizes, the zpool command will complain about it. To override this, pass it the -f argument like so: +> `sudo zpool create pool raidz sdb sdc sdd -f` + +## Part 4: Gluster + +Finally! We can install Gluster and get our monster network drive online! Well, almost. First we have to do some… + +### Pre-configuration + +Gluster relies on resolvable host-names to find the other servers it needs to talk to. This means that when you run ping server1 or whatever the name of your server is, it needs to actually resolve to that server’s IP address. This is why I suggested setting static IP addresses during the OS install. + +There are a few ways of achieving this. For my network, I am using a local-network DNS server. I just manually assigned the host-names to the static IP addresses, and since all the servers use the local DNS server to resolve names, they can find each other. If you don’t have a local DNS server, don’t fret, there is another way. + +We are going to edit the /etc/hosts files on each server to map the host names of the other servers to their IP addresses. On each server, open the hosts file in your favorite editor of choice, like so: + +![Note: you don’t need to add the address of the server the /etc/hosts file resides on.](https://cdn-images-1.medium.com/max/2000/1*84727Wj5w9U5ANiMK_Is4g.png)*Note: you don’t need to add the address of the server the /etc/hosts file resides on.* + +`sudo nano /etc/hosts` + +Add the storage server’s static IP addresses, as well as their host names to this file. Save it, close it, and repeat this process for each server you intend to put in the Gluster volume. + +Now, we need to install the latest GlusterFS software. + +I’ve found that the version of Gluster that is packages in the Ubuntu 18.04 LTS repositories is outdated (largely because the Canonical team refuses to consult the Gluster team on version choices, but whatever). To address this, we’re going to add the [Gluster PPA](https://launchpad.net/~gluster/+archive/ubuntu/glusterfs-4.1) before installing the GlusterFS software. + +`sudo add-apt-repository ppa:gluster/glusterfs-4.1 && sudo apt update` + +As of July 2018, GlusterFS 4.1 is the latest build for Ubuntu. Now, we can install the software: + +`sudo apt install glusterfs-server -y` +> Note: if, like me, one of your servers is using hardware RAID, simply create a folder in the root drive of that server and mount the RAID drive to that folder. Gluster may complain about it, but it will work. + +### Creating the Gluster Volume + +GlusterFS relies on “peers” to access and store data across servers. To set this up, we need to connect the peers together. +> Note: Unless otherwise noted, the rest of the commands from here on only need to be run on one of the servers in the Gluster group, not all of them. + +Add the peers by running this command once for each of the servers: + +`sudo gluster peer probe ` + +![](https://cdn-images-1.medium.com/max/2000/1*kEELmJ_mpxDJNzhjTd3QrQ.png) + +Then, you can check to make sure the peers were added and joined the cluster by running: +> `sudo gluster peer status` +> Note: if you are having problems adding peers, try disabling the firewall: `sudo ufw disable` + +Next, create and then start the actual GlusterFS Volume like so: + +`sudo gluster volume create gv0 server1:/pool server2:/pool` + +`sudo gluster volume start gv0` + +![](https://cdn-images-1.medium.com/max/2000/1*CCGxSCciHnanZ2AuEWuE2g.png) + +After starting the volume, check its status by running: + +`sudo gluster volume info` + +And success! At last, we have our GlusterFS volume up and running. + +## Step 5: Setting Up SAMBA Access + +While we have our GlusterFS volume, we don’t have an easy way to access or use it. So, we’re going to set up a no-permissions SMB share for clients on the network. +> Note: I know this isn’t the most secure, but again, for my network it’s “good enough.” Feel free to customize your SMB permissions. + +### Mounting the GlusterFS Volume + +First, let’s mount the GlusterFS volume to a folder. To do this, we’re going to edit /etc/fstab to include the following line: + +`localhost:/gv0 /gv0 glusterfs defaults,_netdev 0 0` + +![](https://cdn-images-1.medium.com/max/2000/1*pzLiMBH0WA8yJ3HlapzX6g.png) + +This will permanently mount the GlusterFS volume gv0 attached to localhost to the /gv0 folder. Now, refresh the mounts by running sudo mount -a. +> Note: you’ll need to create /gv0. + +### SAMBA + +Install SAMBA on the server with the mounted volume: + +`sudo apt install samba -y` + +Now we need to modify the permissions of the directory to allow guests write access: + +`sudo chown nobody.nogroup -R /gv0` + +`sudo chmod 777 -R /gv0` + +Then create the share by adding this to the end of /etc/samba/smb.conf: + + [gluster-drive] + browseable = yes + path = /gv0 + guest ok = yes + read only = no + create mask = 777 + +![](https://cdn-images-1.medium.com/max/2000/1*dAQnrFrHPp4cRx6gaBvrgw.png) + +Test the syntax by running testparm, and provided everything passed the syntax check, restart SAMBA by running: + +`sudo service smbd restart ; sudo service nmbd restart` + +And that’s it! + +## Success! + +We have now successfully created a GlusterFS volume on ZFS nodes, and mounted it for the network to enjoy! + +![](https://cdn-images-1.medium.com/max/2000/1*OnCJlDwp4xc60zjyp03hqw.png) + +You should now be able to mount your new drive over the network and have read/write access to it. + +To stop the Gluster volume, run sudo gluster volume stop gv0 on any of the nodes before shutting them down. + +To restart the volume, start up all of the nodes, then run sudo gluster volume start gv0. Don’t forget to sudo mount -a and restart SAMBA. + +This has been an incredibly fun project to undertake. If you have any comments, questions, or if you’re having problems getting it to work, leave a comment below! diff --git a/src/app/resources/blog-posts/Building-a-Raspberry-Pi-Cluster-Part-I.md b/src/app/resources/blog-posts/Building-a-Raspberry-Pi-Cluster-Part-I.md new file mode 100644 index 0000000..10db1ec --- /dev/null +++ b/src/app/resources/blog-posts/Building-a-Raspberry-Pi-Cluster-Part-I.md @@ -0,0 +1,441 @@ +--- +title: Building a Raspberry Pi Cluster - Part I +slug: Building-a-Raspberry-Pi-Cluster-Part-I +date: 2018-11-15 00:00:00 +tags: + - tutorial + - raspberry pi + - hosting +--- + +Part I — The Basics + +![](https://cdn-images-1.medium.com/max/2000/1*hvaTefvGg4kN0wjP9dPnwQ.png) + +*This is Part 1 in my series on building an HPC-style Raspberry Pi cluster. Check out [Part 2](https://medium.com/@glmdev/building-a-raspberry-pi-cluster-aaa8d1f3d2ca?source=---------6------------------) and [Part 3](https://medium.com/@glmdev/building-a-raspberry-pi-cluster-f5f2446702e8?source=---------4------------------).* + +As a new project of mine, I’ve decided to build a miniature community-style cluster using Raspberry Pi computers and HPC-grade software. When I set out to do this, I discovered that instructions on setting this up are actually surprisingly sparse. So, I decided to document my progress in a series of guides. In this Part I, we will look at the basics of setting up the hardware and getting a cluster scheduler running. + +## Step 0: Get The Hardware + +### Parts list + +* 3x Raspberry Pi 3 Model B — for the compute nodes + +* 1x Raspberry Pi 3 Model B — for the master/login node + +* 4x MicroSD Cards + +* 4x micro-USB power cables + +* 1x 8-port 10/100/1000 network switch + +* 1x 6-port USB power-supply + +* 1x 64GB USB Drive (or NAS, see below) + +This project is scalable to as many RPis (and even non-RPi computers) of different kinds as you want, but for my cluster, I used 3 Pis with MicroSD cards of varying capacities connected to my network through an 8-port gigabit switch. + +Let’s talk storage. Cluster computing requires a storage location that is shared across all of the different nodes so they can work on the same files as the jobs are farmed out. For a basic setup, you can use a 64GB USB drive plugged in to one of the Pis as shared storage (or a larger Micro SD card in one of them). However, as an alternative, if you have some kind of network-attached storage that you can export as an NFS share, this can also be used as the shared drive. + +For example, I have about 750GB of btrfs RAID storage on a Linux box on my network. Instead of using a 64GB flash drive, I just exported an NFS share from this and mounted it on all the nodes. (Don’t worry, we’ll cover both.) + +## Step 1: Flash the Raspberry Pis + +The first step is to get our Pis up and running. Start by downloading the latest version of Raspbian, the Debian distribution that runs on the Pis. Download the command-line only “lite” version to save space: [Download Here](https://www.raspberrypi.org/downloads/raspbian/). + +Now, download and install Etcher. Etcher is a simple program that we will use to write the downloaded Raspbian image to our SD cards. [Get Etcher here.](https://etcher.io/) + +![](https://cdn-images-1.medium.com/max/2000/1*tLN6MWiH5gC32gnHh_9uog.png) + +Fire up Etcher and plug in your MicroSD card (use an adapter). + +Select the Raspbian ZIP file and hit flash. + +Before we finish with the SD card, we want to enable SSH remote access from our Pi. To do this, open the “boot” drive on the SD card and create an empty file named ssh with no extension. On Windows, you can do this by opening Notepad and saving the blank file with no extension. On macOS and Linux, open the folder in a shell and run: + + glmdev@polaris ~> touch ssh + +Wash, rinse, and repeat this for the other 3 MicroSD cards. Once you’ve done this, plug the SD cards into the 4 nodes. + +## Step 2: Network Setup + +We want to make sure that our nodes have IP addresses that never change. This way, we can be sure that they can always talk to each other, which is critical for the cluster jobs. + +I recommend setting the Pis up one at a time so you can keep track of which physical node is has what IP. This makes maintenance easier. + +Start by plugging the switch into your network. Then, connect one Pi to the switch and plug it in. Wait a second for it to boot up. + +Once the Pi has booted, we can SSH into it to finish setting it up. To find the IP address of the Pi, either use your router’s interface to view attached devices. If you can’t do this, use a program like nmap to scan IP addresses on your network. Either way, look for a device named RASPBERRYPI and make a note of its IP address. + +![Find the RASPBERRYPI device’s IP address.](https://cdn-images-1.medium.com/max/2000/1*x0uUtvMsxmzfVDbE4ZiJIA.png)*Find the RASPBERRYPI device’s IP address.* + +SSH into the Pi using: + + ssh pi@ip.addr.goes.here + +(default password: raspberry) + +## Step 3: Set Up the Raspberry Pis + +### 3.1: raspi-config + +Now we can start setting up the Pi. First, get some basic config out of the way: + + pi@raspberrypi~$ sudo raspi-config + +This will open the config utility. Change the default password, set the locale and timezone, and expand the filesystem. Then, exit the utility. + +### 3.2: setting the hostname +> **A word about hostnames:** +> SLURM, the cluster scheduler we will be using, expects hosts to be named following a specific pattern: *
*. So, when choosing hostnames for your RPis, it’s helpful to pick a system and number them in order (eg node01, node02, node03, node04, etc…). + +Now, set the hostname: + + sudo hostname node01 # whatever name you chose + sudo nano /etc/hostname # change the hostname here too + sudo nano /etc/hosts # change "raspberrypi" to "node01" + +We use the systemd hostname command, edit the hostname file, and update the hosts file so local resolution works. + +### 3.3: make sure the system time is right + +The SLURM scheduler and the Munge authentication that it uses requires accurate system time. We’ll install the ntpdate package to periodically sync the system time in the background. + + sudo apt install ntpdate -y + +### 3.4: reboot + + sudo reboot + +***Repeat this process on all of the RPis.*** + +## Step 4: Shared Storage +> **A word on shared storage:** +> In order for a cluster to work well, a job should be able to be run on any of the nodes in the cluster. This means that each node needs to be able to access the same files. We will accomplish this by connecting a 64GB USB drive connected to the master node (more on that below) and exporting that drive as a network file system (NFS). Then, we can mount that NFS share on all the nodes so they can all share access to it. +> **Side note:** +> If, like me, you have a separate NAS box on your network that you would rather use as shared storage, you can export an NFS share from that box. Then, just mount that share on the nodes using the instructions below. + +### 4.0: Login to the Master Node + +We will discuss the master node more later, but one of our nodes will be the controller. Just pick one. :) In my cluster, the master is node01. + + ssh pi@ + +### 4.1: Connect & Mount Flash Drive + +**4.1.1: Find the drive identifier. +**Plug the flash drive into one of the USB ports on the master node. Then, figure out its dev location by examining the output of lsblk: + + glmdev@node01 ~> lsblk + NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT + mmcblk0 179:0 0 7.4G 0 disk + ├─mmcblk0p1 179:1 0 43.8M 0 part /boot + └─mmcblk0p2 179:2 0 7.4G 0 part / + sda 8:16 0 59.2G 0 disk + └─sda1 8:17 0 59.2G 0 part + +In this case, the main partition of the flash drive is at /dev/sda1. + +**4.1.2: Format the drive. +**We’re first going to format the flash drive to use the ext4 filesystem: + + sudo mkfs.ext4 /dev/sda1 +> **A word of warning: **double check to be sure you’re not about to overwrite your root */* directory on accident. + +**4.1.3: Create the mount directory.** +(Note that this should be the same across all the nodes.) In my cluster, I used /clusterfs: + + sudo mkdir /clusterfs + sudo chown nobody.nogroup -R /clusterfs + sudo chmod 777 -R /clusterfs + +**4.1.4: Setup automatic mounting. +**To mount our flash drive on boot, we need to find the UUID. To do this, run blkid and make note of the UUID from /dev/sda1 like so: + + UUID="65077e7a-4bd6-47ea-8014-01e06655cc31" + +Now, edit fstab to mount the drive on boot. + + sudo nano /etc/fstab + +Add the following line: + + UUID=65077e7a-4bd6-47ea-8014-01e06655cc31 /clusterfs ext4 defaults 0 2 + +Finally, mount the drive with sudo mount -a. + +**4.1.5: Set loose permissions. +**Because use of our cluster will be pretty supervised, we can set loose permissions on the mounted drive: + + sudo chown nobody.nogroup -R /clusterfs + sudo chmod -R 766 /clusterfs + +### 4.2: Export the NFS Share + +Now, we need to export the mounted drive as a network file system share so the other nodes can access it. *Do this process on the master node.* + +**4.2.1: Install the NFS server.** + + sudo apt install nfs-kernel-server -y + +**4.2.2: Export the NFS share.** + +Edit /etc/exports and add the following line: + + /clusterfs (rw,sync,no_root_squash,no_subtree_check) + +Replace with the IP address schema used on your local network. This will allow any LAN client to mount the share. For example, if your LAN addresses were 192.168.1.X, you would have: + + /clusterfs 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check) + +rw gives the client Read-Write access, sync forces changes to be written on each transaction, no_root_squash enables the root users of clients to write files as root permissions, and no_subtree_check prevents errors caused by a file being changed while another system is using it. + +Lastly, run the following command to update the NFS kernel server: + + sudo exportfs -a + +### 4.3: Mount the NFS Share on the Clients + +Now that we’ve got the NFS share exported from the master node, we want to mount it on all of the other nodes so they can access it. *Repeat this process for all of the other nodes.* + +**4.3.1: Install the NFS client.** + + sudo apt install nfs-common -y + +**4.3.2: Create the mount folder.** +This should be the same directory that you mounted the flash drive to on the master node. In my case, this is /clusterfs: + + sudo mkdir /clusterfs + sudo chown nobody.nogroup /clusterfs + sudo chmod -R 777 /clusterfs + +**4.3.3: Setup automatic mounting.** +We want the NFS share to mount automatically when the nodes boot. Edit /etc/fstab to accomplish this by adding the following line: + + :/clusterfs /clusterfs nfs defaults 0 0 + +Now mount it with sudo mount -a and you should be able to create a file in /clusterfs and have it show up at the same path across all the nodes. + +## Step 5: Configure the Master Node +> **A word on schedulers and SLURM:** +> It may be overkill for a personal cluster, but most Linux clusters use a piece of software called a scheduler. A scheduler accepts jobs and, when nodes become available, it runs them on the next available set of nodes. This allows us to keep submitting jobs and they will be processed as resources become available. +> We will be using a scheduler called [SLURM](https://slurm.schedmd.com/) on our cluster. SLURM runs a control daemon on one or more master nodes, then farms out jobs to other nodes. One of our RPis will be a dedicated login & master node, and will not process jobs. +> What’s a login node? It’s the RPi you ssh into to use the cluster. + +### 5.0: Login to the Master Node + +Pick one of your nodes to be the dedicated master, and ssh into it. In my cluster, this is node01. + + ssh pi@ + +### 5.1: /etc/hosts + +To make resolution easier, we’re going to add hostnames of the nodes and their IP addresses to the /etc/hosts file. Edit /etc/hosts and add the following lines: + + node02 + node03 + node04 + +### 5.2: Install the SLURM Controller Packages + + sudo apt install slurm-wlm -y + +### 5.3: SLURM Configuration + +We’ll use the default SLURM configuration file as a base. Copy it over: + + cd /etc/slurm-llnl + cp /usr/share/doc/slurm-client/examples/slurm.conf.simple.gz . + gzip -d slurm.conf.simple.gz + mv slurm.conf.simple slurm.conf + +Then edit /etc/slurm-llnl/slurm.conf. + +**5.3.1: Set the control machine info.** +Modify the first configuration line to include the hostname of the master node, and its IP address: + + SlurmctldHost=node01() + # e.g.: node01(192.168.1.14) + +**5.3.2: Customize the scheduler algorithm.** +SLURM can allocate resources to jobs in a number of different ways, but for our cluster we’ll use the “consumable resources” method. This basically means that each node has a consumable resource (in this case, CPU cores), and it allocates resources to jobs based on these resources. So, edit the SelectType field and provide parameters, like so: + + SelectType=select/cons_res + SelectTypeParameters=CR_Core + +**5.3.3: Set the cluster name. +**This is somewhat superficial, but you can customize the cluster name in the “LOGGING AND ACCOUNTING” section: + + ClusterName=glmdev + +**5.3.4: Add the nodes.** +Now we need to tell SLURM about the compute nodes. Near the end of the file, there should be an example entry for the compute node. Delete it, and add the following configurations for the cluster nodes: + + NodeName=node01 NodeAddr= CPUs=4 State=UNKNOWN + NodeName=node02 NodeAddr= CPUs=4 State=UNKNOWN + NodeName=node03 NodeAddr= CPUs=4 State=UNKNOWN + NodeName=node04 NodeAddr= CPUs=4 State=UNKNOWN + +**5.3.5: Create a partition.** +SLURM runs jobs on ‘partitions,’ or groups of nodes. We’ll create a default partition and add our 3 compute nodes to it. Be sure to delete the example partition in the file, then add the following on one line: + + PartitionName=mycluster Nodes=node[02-04] Default=YES MaxTime=INFINITE State=UP + +5.3.6: Configure cgroups Support +The latest update of SLURM brought integrated support for [cgroups](https://en.wikipedia.org/wiki/Cgroups) kernel isolation, which restricts access to system resources. We need to tell SLURM what resources to allow jobs to access. To do this, create the file /etc/slurm-llnl/cgroup.conf: + + CgroupMountpoint="/sys/fs/cgroup" + CgroupAutomount=yes + CgroupReleaseAgentDir="/etc/slurm-llnl/cgroup" + AllowedDevicesFile="/etc/slurm-llnl/cgroup_allowed_devices_file.conf" + ConstrainCores=no + TaskAffinity=no + ConstrainRAMSpace=yes + ConstrainSwapSpace=no + ConstrainDevices=no + AllowedRamSpace=100 + AllowedSwapSpace=0 + MaxRAMPercent=100 + MaxSwapPercent=100 + MinRAMSpace=30 + +Now, whitelist system devices by creating the file /etc/slurm-llnl/cgroup_allowed_devices_file.conf: + + /dev/null + /dev/urandom + /dev/zero + /dev/sda* + /dev/cpu/*/* + /dev/pts/* + /clusterfs* + +Note that this configuration is pretty permissive, but for our purposes, this is okay. You could always tighten it up to suit your needs. + +### 5.4: Copy the Configuration Files to Shared Storage + +In order for the other nodes to be controlled by SLURM, they need to have the same configuration file, as well as the Munge key file. Copy those to shared storage to make them easier to access, like so: + + sudo cp slurm.conf cgroup.conf cgroup_allowed_devices_file.conf /clusterfs + sudo cp /etc/munge/munge.key /clusterfs +> A word about Munge: +> Munge is the access system that SLURM uses to run commands and processes on the other nodes. Similar to key-based SSH, it uses a private key on all the nodes, then requests are timestamp-encrypted and sent to the node, which decrypts them using the identical key. This is why it is so important that the system times be in sync, and that they all have the *munge.key* file. + +### 5.5: Enable and Start SLURM Control Services + +Munge: + + sudo systemctl enable munge + sudo systemctl start munge + +The SLURM daemon: + + sudo systemctl enable slurmd + sudo systemctl start slurmd + +And the control daemon: + + sudo systemctl enable slurmctld + sudo systemctl start slurmctld + +### 5.6: Reboot. (optional) + +This step is optional, but if you are having problems with Munge authentication, or your nodes can’t communicate with the SLURM controller, try rebooting it. + +## Step 6: Configure the Compute Nodes + +### 6.1: Install the SLURM Client + + sudo apt install slurmd slurm-client -y + +### 6.2: /etc/hosts + +Update the /etc/hosts file like we did on the master node. Add all of the nodes and their IP addresses to the /etc/hosts file of each node, excluding that node. Something like this: + +node02:/etc/hosts + + node01 + node03 + node04 + +### 6.3: Copy the Configuration Files + +We need to make sure that the configuration on the compute nodes matches the configuration on the master node exactly. So, copy it over from shared storage: + + sudo cp /clusterfs/munge.key /etc/munge/munge.key + sudo cp /clusterfs/slurm.conf /etc/slurm-llnl/slurm.conf + sudo cp /clusterfs/cgroup* /etc/slurm-llnl + +### 6.4: Munge! + +We will test that the Munge key copied correctly and that the SLURM controller can successfully authenticate with the client nodes. + +**6.4.1: Enable and start Munge.** + + sudo systemctl enable munge + sudo systemctl start munge + +**6.4.2: Test Munge. +**We can manually test Munge to see if it is communicating. Run the following to generate a key on the master node and try to have the client node decrypt it. (Run this on the client.) + + ssh pi@node01 munge -n | unmunge + +If it works, you should see something like this: + + pi@node02 ~> ssh node01 munge -n | unmunge + pi@node01's password: + STATUS: Success (0) + ENCODE_HOST: node01 + ENCODE_TIME: 2018-11-15 15:48:56 -0600 (1542318536) + DECODE_TIME: 2018-11-15 15:48:56 -0600 (1542318536) + TTL: 300 + CIPHER: aes128 (4) + MAC: sha1 (3) + ZIP: none (0) + UID: pi + GID: pi + LENGTH: 0 + +If you get an error, make sure that the /etc/munge/munge.key file is the same across all the different nodes, then reboot them all and try again. + +### 6.5: Start the SLURM Daemon + + sudo systemctl enable slurmd + sudo systemctl start slurmd + +*Complete this configuration on each of the compute nodes.* + +## Step 7: Test SLURM + +Now that we’ve configured the SLURM controller and each of the nodes, we can check to make sure that SLURM can see all of the nodes by running sinfo on the master node (a.k.a. “the login node”): + + PARTITION AVAIL TIMELIMIT NODES STATE NODELIST + mycluster* up infinite 3 idle node[02-04] + +Now we can run a test job by telling SLURM to give us 3 nodes, and run the hostname command on each of them: + + srun --nodes=3 hostname + +If all goes well, we should see something like: + + node02 + node03 + node04 + +## Going Forward + +We now have a functional compute cluster using Raspberry Pis! You can now start submitting jobs to SLURM to be run on however many nodes you want. I’ll have a crash-course on SLURM in the future, but for now you can find a good overview in the documentation [here.](https://slurm.schedmd.com/overview.html) + +You may notice that the cluster can’t really *do* much yet. In Part II of this guide, we’ll take a look at setting up some software and parallel computing on our mini-cluster. + +[*Part II is available here.](https://medium.com/@glmdev/building-a-raspberry-pi-cluster-aaa8d1f3d2ca)* + +[*So is Part III.](https://medium.com/@glmdev/building-a-raspberry-pi-cluster-f5f2446702e8?source=---------4------------------)* + +— Garrett + +### A Word on Troubleshooting + +These guides are designed to be followed in a top-down sequential order. If you’re having problems with a command, feel free to leave a comment below with the exact number of the step you are stuck on, and I’ll try to answer if I can. + +*Note: This guide was updated on July 22nd, 2019 to reflect changes to Raspbian Buster and SLURM config options.* diff --git a/src/app/resources/blog-posts/Building-a-Raspberry-Pi-Cluster-Part-II.md b/src/app/resources/blog-posts/Building-a-Raspberry-Pi-Cluster-Part-II.md new file mode 100644 index 0000000..e00d78c --- /dev/null +++ b/src/app/resources/blog-posts/Building-a-Raspberry-Pi-Cluster-Part-II.md @@ -0,0 +1,240 @@ +--- +title: Building a Raspberry Pi Cluster - Part II +slug: Building-a-Raspberry-Pi-Cluster-Part-II +date: 2019-04-01 00:00:00 +tags: + - tutorial + - raspberry pi + - hosting +--- + +Part II — Some Simple Jobs + +*This is Part II in my series on building a small-scale HPC cluster. [Check out Part I](https://medium.com/@glmdev/building-a-raspberry-pi-cluster-784f0df9afbd?source=---------8------------------) and [Part III](https://medium.com/@glmdev/building-a-raspberry-pi-cluster-f5f2446702e8?source=---------4------------------).* + +Now that we have our cluster up and running, we can start running jobs on it. While the specific applications of your cluster are up to you, in the rest of this series I will be looking at how to set up a few different pieces of software, as well as how to use the actual cluster scheduler, Slurm. + +In this part, we will dive into some Slurm basics, set up some software on our cluster the easy way, and create some example jobs that run many, many individual tasks making use of the scheduler. + +In the next part, we’ll look closer at how to install software the harder (better) way, how to set up Open MPI, and create some sample jobs that run just a few tasks across several nodes on the cluster. + +## 1. Slurm Basics + +As discussed before, Slurm is a piece of software called a scheduler. This allows you to submit jobs that request a specific amount of resources like CPU cores, memory, or whole compute nodes. The scheduler will run each job as the resources become available. This means that we can chuck as many jobs as we want at it, and it’ll figure it out for us. But, enough theory, let’s get our hands dirty. + +### 1.a. Basic Slurm Commands + +Slurm provides several useful command line tools that we’ll use to interface with the cluster. Log into your master/login node that we set up last time: + + ssh pi@node01 + +The first command we’ll look at is sinfo. This is pretty straight forward, it just provides information about the cluster: + + $ sinfo + + PARTITION AVAIL TIMELIMIT NODES STATE NODELIST + glmdev* up infinite 3 mix node[1–3] + +Here, we have the name of the partition, whether it can be used, the default time limit, the number of nodes and their states. The state “mix” occurs when a node has a job running on it, but it still has some available resources. (Such as when only 1 core is used.) + +### srun — schedule commands + +The srun command is awesome. It is used to directly run a command on however many nodes/cores you want. Let’s test it out: + + $ srun --nodes=3 hostname + node1 + node2 + node3 + +Here, we ran the hostname command on 3 nodes. This is different than running it on 3 cores, which may all be on the same node: + + $ srun --ntasks=3 hostname + node1 + node1 + node1 + +Here, ntasks refers to the number of processes. This is effectively the number of cores on which the command should be run. These are not necessarily on different machines. Slurm just grabs the next available cores. + +We can also combine the two: + + $ srun --nodes=2 --ntasks-per-node=3 hostname + node1 + node2 + node2 + node1 + node2 + node1 + +This runs the command on 2 nodes and launches 3 tasks per node, effectively 6 tasks. + +### squeue — view scheduled jobs + +When you start running longer and longer jobs, it is useful to check their status. To do this, run the squeue command. By default, it displays all jobs submitted by all users, and their states: + + $ squeue + JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) + 609 glmdev 24.sub.s pi R 10:16 1 node2 + +Most of this info is pretty self-explanatory. The only thing I’ll note is the ST column, which is the state of the job. R means that the job is running. Here’s the [full list of state codes](https://slurm.schedmd.com/squeue.html#lbAG). + +### scancel — cancel a scheduled job + +Once a job has been scheduled, it can be cancelled using the scancel command: + + $ scancel 609 + +(where 609 is the JOBID that you want to cancel) Note that you can only cancel jobs started by your user. + +### sbatch — schedule a batch script + +sbatch is really the meat & potatoes of the Slurm scheduler. It’s what we use most often when we want to schedule a job to run on the cluster. This command takes a number of flags and configuration, as well as a shell file. That shell file is then executed once and whatever requested resources (nodes/cores/etc) are made available to it. Let’s create a basic job as an example. + +***The Batch File +***Our job begins with the definition of a batch file. This batch file is usually a bash script that runs our job, however it looks a bit different. We’ll create the file /clusterfs/helloworld.sh: + + #!/bin/bash + #SBATCH --nodes=1 + #SBATCH --ntasks-per-node=1 + #SBATCH --partition= + + cd $SLURM_SUBMIT_DIR + + echo "Hello, World!" > helloworld.txt + +The file begins with a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)). This is required, as it tells Slurm how to execute your job. This is followed by a number of flags that take the following form: + + #SBATCH + +These flags simply any [parameters](https://slurm.schedmd.com/sbatch.html) that can be passed to the sbatch command. These nearly identical to those used by the srun command, but with one main difference: jobs aren’t automatically re-launched on each specified node/core. + +Rather, each job is run on the first core of the first node allocated it, but the job is given access to the other nodes it has requested. More on that later. + +The cd $SLURM_SUBMIT_DIR guarantees that our job is running in whatever directory it was submitted from. In our case, this is /clusterfs. + +Now, we can tell Slurm to schedule and run our job: + + $ sbatch ./helloworld.sh + Submitted batch job 639 + +Since our job is very simple, it should be done basically immediately. If everything has gone according to plan, we should see the /clusterfs/helloworld.txt file that we created. + +**Output +**You’ll notice that the job doesn’t output anything to the shell, which makes sense. If you had a job running for 4 hours, it’s not very useful to have to have a terminal open the whole time to get output. Instead, Slurm outputs standard error and standard out to a file in the format slurm-XXX.out where XXX is the Job’s ID number. + +## 2. Our First Project + +For our first project on the cluster, we’re going to do some statistics! Data processing is a big part of what HPC clusters are used for. So, we’re going to build a simple R program that generates some random values following a normal distribution, then creates a histogram and graph of those values and outputs them to an image file. Then, we’re going to create a script to generate 50 of them using the scheduler. + +**Goal:** Output 50 randomly-generated normal distribution graphs & histograms to a folder, as images using R. + +### 2.a. Set-Up + +Before we can start building our project, we need to install R. For those unfamiliar, [R is a programming language](https://www.r-project.org/) for statistical programming. This makes it very well-suited for our task. + +Now, there are several ways to install software on a cluster. Chiefly, the good way and the lazy way. We’ll cover a better way in the next part, so for now, we’ll use the lazy way. That is, we’ll install R from the repos on each node. + +However, we are *not* going to do them one-by-one. We have a shiny new scheduler, remember? So, we’re going to cheat and use srun: + + $ sudo su - + # srun --nodes=3 apt install r-base -y + +This will run the apt install r-base -y command on all of the nodes in the cluster (change the 3 to match your setup). This will probably take a while, but when it completes, you should be able to use R on any of the nodes: + + pi@node2 ~$ R --version + R version 3.3.3 (2017-03-06) -- "Another Canoe" + Copyright (C) 2017 The R Foundation for Statistical Computing + Platform: arm-unknown-linux-gnueabihf (32-bit) + + R is free software and comes with ABSOLUTELY NO WARRANTY. + You are welcome to redistribute it under the terms of the + GNU General Public License versions 2 or 3. + For more information about these matters see + [http://www.gnu.org/licenses/](http://www.gnu.org/licenses/). + +### 2.b. The Theory + +We need to run a large number of relatively small jobs. So, what we will do is create a script that, when executed, runs the sbatch command to schedule the same job over and over again. + +We will use a Slurm job array to do this. Basically, we give the scheduler a script to run, and tell it an array of numbers to run said script, it will run the script once for each number in the array, and the script can access its index during each job. This is how we will generate 50 random normal curves. + +### 2.c. The R Program + +Before we can schedule our program, we need to write a quick R script to generate the normal data-sets. So, we’ll create the file /clusterfs/normal/generate.R: + + arg = commandArgs(TRUE) + + samples = rep(NA, 100000) + for ( i in 1:100000 ){ samples[i] = mean(rexp(40, 0.2)) } + + jpeg(paste('plots/', arg, '.jpg', sep="")) + hist(samples, main="", prob=T, color="darkred") + lines(density(samples), col="darkblue", lwd=3) + dev.off() + +Okay, a lot to unpack here: + +* arg = commandArgs(TRUE) grabs the command line arguments passed to R when this script is run. This will be the job ID number. + +* samples = rep(NA,100000) replicates NA 100000 times. This effectively creates an empty array with 100000 slots. + +* for( i in 1:100000 ){...} iterate over the numbers 1–100000. This will be used to generate our random values. + +* samples[i] = mean(rexp(40, 0.2)) randomly generates 40 values following an exponential distribution with a range of 0.2. Then, find the mean of those values and store that mean in the samples array. This is our random dataset. + +* jpeg(paste('plots/', arg, '.jpg', sep="")) open a new JPEG image to hold our graph. The name will be plots/XX.jpg where XX is the Job’s ID number. + +* hist(samples, main="", prob=T, color="darkred") display a histogram of our randomly generated data + +* lines(density(samples), col="darkblue", lwd=3) plot the line of the value densities over the histogram. + +* dev.off() close the JPEG file + +As a test, you can run this program once as a test: + + $ mkdir plots + $ R --vanilla -f generate.R --args "plot1" + ...R output... + +Now, in the plots folder, we should have the file plot1.jpg that looks something like so: + +![](https://cdn-images-1.medium.com/max/2000/1*HnNi2DHF6IEEwhf6BWxMyA.jpeg) + +### 2.d. The Submission Script + +Now that we have our R program, we will create a submission script to run our jobs. Create the file /clusterfs/normal/submit.sh: + + #!/bin/bash + #SBATCH --nodes=1 + #SBATCH --ntasks-per-node=1 + #SBATCH --partition= + + cd $SLURM_SUBMIT_DIR + mkdir plots + + R --vanilla -f generate.R --args "plot$SLURM_ARRAY_TASK_ID" + +Here, we tell Slurm to run the job on 1 node, with 1 core on whatever partition you specified. Then, we change directories to the /clusterfs/normal folder where we will submit the job from. + +Then we run the R program. This command looks very similar to the command we used to test the program but with one change. The name of the plot file is set to plot$SLURM_ARRAY_TASK_ID. This will name the image file after whatever index of the array we tell Slurm to run our job against. For example, when this job is run for the 23rd time, it will output the file: plots/plot23.jpg. + +### 2.e. Run the Job! + +We now have everything we need to run our job. From the login node, you can run the job like so: + + $ cd /clusterfs/normal + $ sbatch --array=[1-50] submit.sh + Submitted batch job 910 + +Now, if we run squeue, we should see something like so: + +![](https://cdn-images-1.medium.com/max/2000/1*MgLUvZsqWSXToVIe9EuUlQ.png) + +When the jobs complete, the /clusterfs/normal/plots folder should have 50 of our randomly generated histograms. + +## Going Forward + +In the next part in this series, we will look at installing software the better way, as well as setting up a message-passing-interface for multi-node programs. + +[*Part III is available here.](https://medium.com/@glmdev/building-a-raspberry-pi-cluster-f5f2446702e8?source=---------4------------------)* + +— Garrett diff --git a/src/app/resources/blog-posts/Building-a-Raspberry-Pi-Cluster-Part-III.md b/src/app/resources/blog-posts/Building-a-Raspberry-Pi-Cluster-Part-III.md new file mode 100644 index 0000000..bc492ee --- /dev/null +++ b/src/app/resources/blog-posts/Building-a-Raspberry-Pi-Cluster-Part-III.md @@ -0,0 +1,307 @@ +--- +title: Building a Raspberry Pi Cluster - Part III +slug: Building-a-Raspberry-Pi-Cluster-Part-III +date: 2019-04-29 00:00:00 +tags: + - raspberry pi + - tutorial + - hosting +--- + +# Part III —OpenMPI, Python, and Parallel Jobs + +*This is Part III in my series on building a small-scale HPC cluster. Be sure to check out [Part I](https://medium.com/@glmdev/building-a-raspberry-pi-cluster-784f0df9afbd) and [Part II](https://medium.com/@glmdev/building-a-raspberry-pi-cluster-aaa8d1f3d2ca).* + +In the first two parts, we set up our Pi cluster with the SLURM scheduler and ran some test jobs using R. We also looked at how to schedule many small jobs using SLURM. We also installed software the easy way by running the package manager install command on all of the nodes simultaneously. + +In this part, we’re going to set up OpenMPI, install Python the “better” way, and take a look at running some jobs in parallel to make use of the multiple cluster nodes. + +## Part 1: Installing OpenMPI + +![[https://www.open-mpi.org/](https://www.open-mpi.org/)](https://cdn-images-1.medium.com/max/2000/0*jOJ8c4u_V4hsQpaV.png)*[https://www.open-mpi.org/](https://www.open-mpi.org/)* + +OpenMPI is an open-source implementation of the Message Passing Interface concept. An MPI is a software that connects processes running across multiple computers and allows them to communicate as they run. This is what allows a single script to run a job spread across multiple cluster nodes. + +We’re going to install OpenMPI the easy way, as we did with R. While it is possible to install it using the “better” way (spoiler alert: compile from source), it’s more difficult to get it to play nicely with SLURM. + +We want it to play nicely because SLURM will auto-configure the environment when a job is running so that OpenMPI has access to all the resources SLURM has allocated the job. This saves us a *lot *of headache and setup for each job. + +### 1.1 — Install OpenMPI + +To install OpenMPI, SSH into the head node of the cluster, and use srun to install OpenMPI on each of the nodes: + + $ sudo su - + # srun --nodes=3 apt install openmpi-bin openmpi-common libopenmpi3 libopenmpi-dev -y + +(Obviously, replace --nodes=3 with however many nodes are in your cluster.) + +### 1.2 — Test it out! + +Believe it or not, that’s all it took to get OpenMPI up and running on our cluster. Now, we’re going to create a very basic hello-world program to test it out. + +***1.2.1 — Create a program. +***We’re going to create a C program that creates an MPI cluster with the resources SLURM allocates to our job. Then, it’s going to call a simple print command on each process. + +Create the file /clusterfs/hello_mpi.c with the following contents: + + #include + #include + + int main(int argc, char** argv){ + int node; + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &node); + + printf("Hello World from Node %d!\n", node); + + MPI_Finalize(); + } + +Here, we include the mpi.h library provided by OpenMPI. Then, in the main function, we initialize the MPI cluster, get the number of the node that the current process will be running on, print a message, and close the MPI cluster. + +***1.2.2 — Compile the program.*** +We need to compile our C program to run it on the cluster. However, unlike with a normal C program, we won’t just use gcc like you might expect. Instead, OpenMPI provides a compiler that will automatically link the MPI libraries. + +Because we need to use the compiler provided by OpenMPI, we’re going to grab a shell instance from one of the nodes: + + **login1$** srun --pty bash + **node1$** cd /clusterfs + **node1$** mpicc hello_mpi.c + **node1$** ls + **a.out*** hello_mpi.c + **node1$** exit + +The a.out file is the compiled program that will be run by the cluster. + +***1.2.3 — Create a submission script. +***Now, we will create the submission script that runs our program on the cluster. Create the file /clusterfs/sub_mpi.sh: + + #!/bin/bash + + cd $SLURM_SUBMIT_DIR + + # Print the node that starts the process + echo "Master node: $(hostname)" + + # Run our program using OpenMPI. + # OpenMPI will automatically discover resources from SLURM. + mpirun a.out + +***1.2.4 — Run the job.*** +Run the job by submitting it to SLURM and requesting a couple of nodes and processes: + + $ cd /clusterfs + $ sbatch --nodes=3 --ntasks-per-node=2 sub_mpi.sh + Submitted batch job 1211 + +This tells SLURM to get 3 nodes and 2 cores on each of those nodes. If we have everything working properly, this should create an MPI cluster with 6 nodes. Assuming this works, we should see some output in our slurm-XXX.out file: + + Master node: node1 + Hello World from Node 0! + Hello World from Node 1! + Hello World from Node 2! + Hello World from Node 3! + Hello World from Node 4! + Hello World from Node 5! + +## Part 2: Installing Python (the “better” way) + +Okay, so for a while now, I’ve been alluding to a “better” way to install cluster software. Let’s talk about that. Up until now, when we’ve installed software on the cluster, we’ve essentially did it individually on each node. While this works, it quickly becomes inefficient. Instead of duplicating effort trying to make sure the same software versions and environment is available on every single node, wouldn’t it be great if we could install software centrally for all nodes? + +Well, luckily a new feature in the modern Linux operating system allows us to do just that: compile from source! ([/s](https://www.reddit.com/r/OutOfTheLoop/comments/1zo2l4/what_does_s_mean/)) Rather than install software through the individual package managers of each node, we can compile it from source and configure it to be installed to a directory in the shared storage. Because the architecture of our nodes is identical, they can all run the software from shared storage. + +This is useful because it means that we only have to maintain a single installation of a piece of software and its configuration. On the downside, compiling from source is a *lot* slower than installing pre-built packages. It’s also more difficult to update. Trade-offs. + +In this section, we’re going to install Python3 from source and use it across our different nodes. + +### 2.0 — Prerequisites + +In order for the Python build to complete successfully, we need to make sure that we have the libraries it requires installed on one of the nodes. We’ll only install these on one node and we’ll make sure to only build Python on that node: + + $ srun --nodelist=node1 bash + **node1**$ sudo apt install -y build-essential python-dev python-setuptools python-pip python-smbus libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libffi-dev + +Hooo boy. That’s a fair number of dependencies. While you can technically build Python itself without running this step, we want to be able to access Pip and a number of other extra tools provided with Python. These tools will only compile if their dependencies are available. + +Note that these dependencies don’t need to be present to *use* our new Python install, just to compile it. + +### 2.1 — Download Python + +Let’s grab a copy of the Python source files so we can build them. We’re going to create a build directory in shared storage and extract the files there. You can find links to the latest version of Python [here](https://www.python.org/downloads/source/), but I’ll be installing 3.7. Note that we want the “Gzipped source tarball” file: + + $ cd /clusterfs && mkdir build && cd build + $ wget [https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz](https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz) + $ tar xvzf Python-3.7.3.tgz + ... tar output ... + $ cd Python-3.7.3 + +At this point, we should have the Python source extracted to the directory /clusterfs/build/Python-3.7.3. + +### 2.2 — Configure Python + +*For those of you who have installed software from source before, what follows is pretty much a standard configure;make;make install, but we’re going to change the prefix directory.* + +The first step in building Python is configuring the build to our environment. This is done with the ./configure command. Running this by itself will configure Python to install to the default directory. However, we don’t want this, so we’re going to pass it a custom flag. This will tell Python to install to a folder on the shared storage. Buckle up, because this may take a while: + + $ mkdir /clusterfs/usr # directory Python will install to + $ cd /clusterfs/build/Python-3.7.3 + $ srun --nodelist=node1 bash # configure will be run on node1 + node1$ ./configure \ + --enable-optimizations \ + --prefix=/clusterfs/usr \ + --with-ensurepip=install + ...configure output... + +### 2.3 — Build Python + +Now that we’ve configured Python to our environment, we need to actually compile the binaries and get them ready to run. We will do this with the make command. However, because Python is a fairly large program, and the RPi isn’t exactly the biggest workhorse in the world, it will take a little while to compile. + +So, rather than leave a terminal open the whole time Python compiles, we’re going to use our shiny new scheduler! We can submit a job that will compile it and we can just wait for the job to finish. To do this, create a submission script in the Python source folder: + + #!/bin/bash + #SBATCH --nodes=1 + #SBATCH --ntasks-per-node=4 + #SBATCH --nodelist=node1 + + cd $SLURM_SUBMIT_DIR + + make -j4 + +This script will request 4cores on node1 and will run the make command on those cores. Make is the software tool that will compile Python for us. Now, just submit the job from the login node: + + $ cd /clusterfs/build/Python-3.7.3 + $ sbatch sub_build_python.sh + Submitted batch job 1212 + +Now, we just wait for the job to finish running. It took about an hour for me on an RPi 3B+. You can view its progress using the squeue command, and by looking in the SLURM output file: + + $ tail -f slurm-1212.out # replace "1212" with the job ID + +### 2.4 — Install Python + +Lastly, we will install Python to the /clusterfs/usr directory we created. This will also take a while, though not as long as compiling. We can use the scheduler for this task. Create a submission script in the source directory: + + #!/bin/bash + #SBATCH --nodes=1 + #SBATCH --ntasks-per-node=1 + #SBATCH --nodelist=node1 + + cd $SLURM_SUBMIT_DIR + + make install + +However, we don’t want just any old program to be able to modify or delete the Python install files. So, just like with any normal program, we’re going to install Python as root so it cannot be modified by normal users. To do this, we’ll submit the install job as a root user: + + $ sudo su - + # cd /clusterfs/build/Python-3.7.3 + # sbatch sub_install_python.sh + Submitted batch job 1213 + +Again, you can monitor the status of the job. When it completes, we should have a functional Python install! + +### 2.5 — Test it out. + +We should now be able to use our Python install from any of the nodes. As a basic first test, we can run a command on all of the nodes: + + $ srun --nodes=3 /clusterfs/usr/bin/python3 -c "print('Hello')" + Hello + Hello + Hello + +We should also have access to pip: + + $ srun --nodes=1 /clusterfs/usr/bin/pip3 --version + pip 19.0.3 from /clusterfs/usr/lib/python3.7/site-packages/pip (python 3.7) + +The exact same Python installation should now be accessible from all the nodes. This is useful because, if you want to use some library for a job, you can install it once on this install, and all the nodes can make use of it. It’s cleaner to maintain. + +## Part 3: A Python MPI Hello-World + +Finally, to test out our new OpenMPI and Python installations, we’re going to throw together a quick Python job that uses OpenMPI. To interface with OpenMPI in Python, we’re going to be using a fantastic library called [mpi4py](https://github.com/erdc/mpi4py/). + +For our demo, we’re going to use one of the demo programs in the mpi4py repo. We’re going to calculate the value of pi (the number) in parallel. + +### 3.0 — Prerequisites + +Before we can write our script, we need to install a few libraries. Namely, we will install the mpi4py library, and numpy. [NumPy](https://www.numpy.org/) is a package that contains many useful structures and operations used for scientific computing in Python. We can install these libraries through pip, using a batch job. Create the file /clusterfs/calc-pi/sub_install_pip.sh: + + #!/bin/bash + #SBATCH --nodes=1 + #SBATCH --ntasks-per-node=1 + + /clusterfs/usr/bin/pip3 install numpy mpi4py + +Then, submit the job. We have to do this as root because it will be modifying our Python install: + + $ cd /clusterfs/calc-pi + $ sudo su + # sbatch sub_install_pip.sh + Submitted batch job 1214 + +Now, we just wait for the job to complete. When it does, we should be able to use the mpi4py and numpy libraries: + + $ srun bash + node1$ /clusterfs/usr/bin/python3 + Python 3.7.3 (default, Mar 27 2019, 13:41:07) + [GCC 8.3.1 20190223 (Red Hat 8.3.1-2)] on linux + Type "help", "copyright", "credits" or "license" for more information. + >>> import numpy + >>> from mpi4py import MPI + +### 3.1 — Create the Python program. + +As mentioned above, we’re going to use one of the demo programs provided in the [mpi4py repo](https://github.com/erdc/mpi4py/blob/master/demo/compute-pi/cpi-cco.py). However, because we’ll be running it through the scheduler, we need to modify it to not require any user input. Create the file /clusterfs/calc-pi/calculate.py: + + + +This program will split the work of computing our approximation of pi out to however many processes we provide it. Then, it will print the computed value of pi, as well as the error from the stored value of pi. + +### 3.2 — Create and submit the job. + +We can run our job using the scheduler. We will request some number of cores from the cluster, and SLURM will pre-configure the MPI environment with those cores. Then, we just run our Python program using OpenMPI. Let’s create the submission file /clusterfs/calc-pi/sub_calc_pi.sh: + + #!/bin/bash + #SBATCH --ntasks=6 + + cd $SLURM_SUBMIT_DIR + + mpiexec -n 6 /clusterfs/usr/bin/python3 calculate.py + +Here, we use the --ntasks flag. Where the --ntasks-per-node flag requests some number of cores for each node, the --ntasks flag requests a specific number of cores *total*. Because we are using MPI, we can have cores across machines. Therefore, we can just request the number of cores that we want. In this case, we ask for 6 cores. + +To run the actual program, we use mpiexec and tell it we have 6 cores. We tell OpenMPI to execute our Python program using the version of Python we installed. +> Note that you can adjust the number of cores to be higher/lower as you want. Just make sure you change the mpiexec -n ## flag to match. + +Finally, we can run the job: + + $ cd /clusterfs/calc-pi + $ sbatch sub_calc_pi.sh + Submitted batch job 1215 + +### 3.3 — Success! + +The calculation should only take a couple seconds on the cluster. When the job completes (remember — you can monitor it with squeue), we should see some output in the slurm-####.out file: + + $ cd /clusterfs/calc-pi + $ cat slurm-1215.out + pi is approximately 3.1418009868930934, error is 0.0002083333033003 + +You can tweak the program to calculate a more accurate value of pi by increasing the number of intervals on which the calculation is run. Do this by modifying the calculate.py file: + + if myrank == 0: + _n = 20 # change this number to control the intervals + n.fill(_n) + +For example, here’s the calculation run on 500 intervals: + + pi is approximately 3.1415929869231265, error is 0.0000003333333334 + +## Conclusion + +We now have a basically complete cluster. We can run jobs using the SLURM scheduler; we discussed how to install software the lazy way and the better way; we installed OpenMPI; and we ran some example programs that use it. + +Hopefully, your cluster is functional enough that you can add software and components to it to suit your projects. In the fourth and final installment of this series, we’ll discuss a few maintenance niceties that are more related to managing installed software and users than the actual functionality of the cluster. + +Happy Computing! + +—[ Garrett Mills](https://glmdev.tech/) diff --git a/src/app/resources/blog-posts/Code-Freedom-with-Gitea-and-Drone-Part-I.md b/src/app/resources/blog-posts/Code-Freedom-with-Gitea-and-Drone-Part-I.md new file mode 100644 index 0000000..73177d8 --- /dev/null +++ b/src/app/resources/blog-posts/Code-Freedom-with-Gitea-and-Drone-Part-I.md @@ -0,0 +1,302 @@ +--- +title: Code Freedom with Gitea & Drone - Part I +slug: Code-Freedom-with-Gitea-and-Drone-Part-I +date: 2020-03-06 00:00:00 +tags: + - devops + - tutorial + - hosting +--- +## Setting Up a Kickass, Self-Hosted, GitHub Alternative with Continuous Integration + +> This is part I, wherein we set up the web-based GitHub alternative, Gitea. Stay tuned for part II, where we will setup the Docker-based continuous-integration solution, Drone, with plugins for Gitea. + +As I have chronicled before, over the last few years I have been on a journey to move to using 100% self-hosted services. The basics were fairly easy (cloud, calendar, contacts, website, &c.), but I ran into a bit of a pain point when it came to moving away from GitHub. + +I write a pretty large amount of code in a week, and I rely on unit/integration tests to help make sure everything is running smoothly. So, for this solution a good continuous-integration platform was absolutely necessary. As a bonus, I wanted it to integrate nicely with whatever web-based Git hosting server I was using. + +Eventually I settled on a stack of [Gitea](https://gitea.io/en-us/) for the web-based repository management, and [Drone](https://drone.io/) as my continuous-integration platform. + +### Why not GitLab? + +At past jobs, I've used [GitLab](https://about.gitlab.com/). GitLab is a self-hostable web-based git repo manager with *built-in* continuous-integration support. For the most part, it worked pretty well, but I always had the nagging feeling that I wasn't making full use of its features. + +For my purposes, GitLab is just too heavy and does too much. For enterprise teams, this [expansive feature-set](https://about.gitlab.com/stages-devops-lifecycle/) is probably useful, but for my simple use case, I found it to be slower and more resource-intensive than necessary. + +### Enter: Gitea... + +
+ +
+ An example of the Gitea interface (
flitter-di). +
+ + +Gitea is a self-hosted Git platform that is very similar to GitHub. It provides web-based repositories that can be shared with different levels of collaboration, wiki, issues, pull-requests, releases, multiple auth sources, and support for many different CI platforms. + +Gitea spars with GitHub feature-for-feature, for the most part. I didn't make extensive use of GitHub's more advanced features (and don't do so with Gitea either), but in my day-to-day use I've yet to run into a situation where I found Gitea lacking. + +It also ships in a single binary executable file that is less than 80 MB, practically sips system resources while running, and is pretty configurable if you care to dig in. + +#### ...and Drone. + +
+ +
+ An example of the Drone CI interface. +
+ + +For continuous-integration, I decided to branch out and go with Drone. Drone is a stupid-simple continuous-integration platform based on Docker containers. It has a few particular benefits that I care about: + +- Excellent integration with Gitea for commits, pull-requests, and authentication +- Everything's containerized, so concurrent builds are fine +- Pipelines are defined in YAML files in the repositories themselves +- Lots of pre-built containers, but you can also use *any* Docker container as a build-step + +Drone uses a core server, which runs in Docker, and any number of runners, which also run in Docker and spawn containers to run the individual steps in the pipeline built repositories. + +## Step 0 - Prerequisites + +For this project, you need a server or VPS instance that is capable of running docker containers, and is accessible from either the Internet, or whatever network you are setting this up on. + +I am using a physical server for this, but you can just as easily spin up a Docker-capable VPS from a company like [DigitalOcean](https://www.digitalocean.com/pricing/#Compute). + +I'm using Ubuntu 18.04 in this tutorial, but you can pretty easily generalize this to whatever your OS of preference is. + +### Software Requirements + +- Git (some recent version, please) +- Docker (setting this up is outside the scope of this post. [Here's](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04) a guide.) + +## Step 1 - Reverse Proxy + +While both Gitea and Drone have support for [serving](https://docs.drone.io/server/reference/drone-tls-cert/) over [TLS](https://docs.gitea.io/en-us/https-setup/), we're going to use a more scalable approach and access them through a reverse proxy. A reverse proxy is simply a web-server (in our case, Apache2, but you can also use NGINX) that accepts TLS connections on a public port and, based on the incoming domain, proxies those requests to the appropriate backend service. + +As mentioned, we're going to set up Apache2 for this case, but that's not a hard requirement: + +```shell +~# apt install -y apache2 # install the server +~# a2enmod proxy # enable the proxy module +~# a2enmod proxy_http # enable the HTTP proxy +~# a2enmod proxy_wstunnel # enable the WebSocket proxy +~# systemctl enable apache2 # make apache2 start on boot +~# systemctl restart apache2 # restart apache2 +``` + +These commands install the Apache2 server and enables the proxy modules we need for this setup. + +## Step 2 - Install Gitea + +You can find the links to download the latest version of Gitea [here](https://dl.gitea.io/gitea/), but at the time of writing, the latest stable version is 1.11.1, so I'll be using that for this guide. + +> Note: this is meant as a quick walk-through only, where I highlight the specifics of my configuration. For setup instructions and more in-depth info, see the excellent [Gitea docs](https://docs.gitea.io/en-us/install-from-binary/). + +Download the binary: + +```shell +wget https://dl.gitea.io/gitea/1.11.1/gitea-1.11.1-linux-amd64 +mv gitea-1.11.1-linux-amd64 gitea +``` + +This has created a `gitea` binary in the current directory. This is the single binary necessary to run the Gitea server. + +### Create the git user + +We don't want to run Gitea directly as root, or some actual user, so we're going to create a user, `git`, that Gitea will use to run the server and manage files: + +```shell +~# adduser --system --shell /bin/bash --group git --disabled-password --home /home/git git +``` + +You *definitely* need a separate user for Gitea, particularly because we're going to be enabling SSH repository access. So, segmenting security here is an absolute must. Don't be tempted to run this as root. Ever. + +### Initial Setup + +Generally, follow the instructions in the Gitea Docs to create the default directories and install the binary. Then, you need to create a SystemD service file to start Gitea as a daemon in the background. Here's an example of the file I use, placed in `/etc/systemd/system/gitea.service`: + +```ini +[Unit] +Description=Gitea +After=syslog.target +After=network.target + +[Service] +RestartSec=2s +Type=simple +User=git +Group=git +WorkingDirectory=/var/lib/gitea/ +ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini +Restart=always +Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea + +[Install] +WantedBy=multi-user.target +``` + +This service will restart 2 seconds after the process fails, should that happen. After creating this service file, we need to do three things: (1) create the `git` user's home directory, (2) reload the SystemD daemon, and (3) start the Gitea service: + +```shell +~# mkdir /home/git +~# chown -R git:git /home/git +~# systemctl daemon-reload +~# systemctl start gitea +``` + +Now, if everything has gone well, you should be able to navigate to port `3000` of the server and see the Gitea interface. (Don't worry, we'll be locking that down later on.) Clicking "Login" for the first time, you should be presented with the Initial Configuration form: + +
+ +
+ The Gitea Initial Configuration wizard sets up the database backend and creates a basic /etc/gitea/app.ini config file. +
+ +If you have an existing MySQL or Postgres server, you can configure those credentials here. If you don't, you can use the built-in SQLite3 driver to use a filesystem-backed database. + +> Note: it's really recommended to use a proper SQL backend as opposed to SQLite3. Particularly for larger deployments, SQLite3 can become resource intensive, less performant, and harder to manage and maintain compared to something like PostgreSQL. + +Most of the settings here you can leave at the defaults, or customize to suit your fancy, but of particular note are the following: + +- **SSH Server Domain:** change this to be the external domain that will be used to access the server. (e.g. rather than "localhost", perhaps it should be "git.yourdomain.com".) + - We're going to set up a non-standard SSH config wherein the main SSH server used to access your server for day-to-day admin stuff runs on a different port than 22. Then, we'll enable Gitea's built-in SSH server to allow SSH access ONLY to Git repositories on port 22. + - Running your main SSH server on a non-standard port, while not impenetrable, is a good basic security measure for reducing, somewhat, the ease with which SSH scanners target your server. More info [here](https://serverfault.com/a/749323/495374). +- **Gitea HTTP Listen Port**: leave this at the default, or some non-standard port. We're going to be using the reverse proxy on the standard ports 80 and 443 to internally proxy requests to this port. +- **Gitea Base URL:** because we're going to be using reverse proxy, the actual URL users will use to access the instance is different than the port the native server runs on. So, this should be the address users will navigate to to use the reverse proxy version. (e.g. "https://git.yourdomain.com/") + +After changing the appropriate settings, click "Install Gitea." This will setup the initial config file, and redirect you back to the homepage. + +Unless you specified it during the setup wizard, the first user to register on your instance will become the site administrator, so it's a good idea to go ahead and create that account at this point. + +## Step 3: SSH Server Tweaks + +As mentioned above, we're going to tweak the port of the native SSH server and use Gitea's built-in SSH server on port 22. To do this, we will first change the native SSH port. Let's do that now. + +Most Linux distros use an implementation of SSHD which stores its daemon configuration file at `/etc/ssh/sshd_config`. Let's edit that file to change the default listening port. + +First, choose a new port for the SSH server to listen on. Ideally this would be something above the `1050`s, as these are largely unreserved and are meant for misc applications. + +After choosing a port, modify the SSHD config file to include the following line: + +```ini +Port 4458 +``` + +(Where `4458` is replaced with the port number you chose.) Make sure that, if there is an un-commented like specifying `Port 22`, you comment it out or remove it. + +Technically, that's the only change required to change the SSH port. However, there's one big hole here that I have fallen in many times: + +**Make sure you open the new port in the firewall so you don't lose remote access to the system!** + +Most system firewalls open port 22 by default, but we need to open the new port we've chosen. Restarting the SSH server now, we would lose access to the system. You need to open the appropriate port in your system's firewall. It's probably best for you to look up what firewall type your system is running, but here are two common ones, `UFW` and `iptables`: + +```shell +~# ufw allow 4458 # for UFW systems +~# iptables -I INPUT -p tcp -m tcp --dport 4458 -j ACCEPT # for iptables systems +~# iptables-save > /etc/iptables/rules.v4 +``` + +Now that we've opened the port, we can restart the SSH server, and it should start listening on the new port: + +```shell +~# systemctl restart sshd +``` + +This will disconnect you from the SSH connection. To open a new connection, specify the `-p` flag with the new port number for most `ssh` clients: + +```shell +~$ ssh -p 4458 root@git.yourdomain.com +``` + +### Setting up Gitea's SSH server + +Now that we've cleared port 22, we will configure Gitea to start its internal SSH server on that port. To do this, we need to edit the `/etc/gitea/app.ini` file that was created during the initial configuration. + +Under the `[server]` config block, ensure that the following values are set: + +```ini +[server] +START_SSH_SERVER = true +SSH_PORT = 22 +``` + +This will tell Gitea to start its internal SSH server on port 22. However, if we were to restart the Gitea server right now, we would run into an error. That's because, since we have configured our Gitea server to run as the non-root user `git`, it doesn't have permission to bind to port 22. To solve that, we can specifically grant permission: + +```shell +~# setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/gitea +``` + +This will give the Gitea binary permission to bind to ports under `1000`. Now, we can restart the Gitea server: + +```shell +~# systemctl restart gitea +``` + +When you create repositories with your account, you should now see the option to clone the repo using SSH: + +
+ +
+ You will need to add your public key to your account in User > Profile > Keys before you can clone the repositories. +
+ +## Step 4: Reverse Proxy (reprise) + +Now that we have our Gitea server up and running, we need to set up the reverse proxy to allow users to connect to our server from the outside world. This is done by creating a virtual host on your web-server of choice (again, I'm using Apache2 for this guide) that listens for requests from a particular domain name and forwards them to the internal server for Gitea. + +This is pretty straightforward. First, make sure that the domain you specified in the Gitea initial configuration wizard points to the server running the reverse proxy (e.g. an `A` record for git.yourdomain.com). + +Next, create the virtual host file in your web-server's configuration. Here's an example of the one I use for Apache2. Add this site to `/etc/apache2/sites-available/git.conf`: + +```xml + + ServerName git.yourdomain.com + Redirect / https://git.yourdomain.com/ + + + ServerName git.yourdomain.com + SSLEngine on + SSLCertificateFile /path/to/your/cert.crt + SSLCertificateKeyFile /path/to/your/cert.key + SSLCertificateChainFile /path/to/your/ca.crt + + SetEnv proxy-sendcl + LimitRequestBody 102400000 + ProxyPreserveHost On + ProxyPass / http://127.0.0.1:3000/ + ProxyPassReverse / http://127.0.0.1:3000/ + +``` + +Essentially, this virtual host defines a listener for the `git.yourdomain.com` address on port `80` and redirects it to use TLS on the default port. *This is considered best practice. You should not allow insecure connections to your Gitea instance, particularly because it will transmit sensitive user data like passwords, SSH keys, and other info.* + +Then, we define a virtual host listener for the same domain on port `443` and configure it to use the TLS certificates. The generation and maintenance of these certificates is well beyond the scope of this walk-through, but suffice it to say that, if you're a beginner to TLS, you can generate **free** certificates that renew automatically using the [Let's Encrypt CertBot plugin for Apache2](https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-18-04). This is a great solution here. + +The latter half of the `443` virtual host does two things: + +- Raise the size limit on the request body to around 100MB. This helps prevent errors for larger repositories or repositories with large files. It's a good idea not to set this *too* high, as it exposes your server to additional vulnerabilities. +- Reverse proxy all requests to this virtual host along to the internal server running on port `3000`, while preserving the original host in the process. + - This is the magic that makes the reverse proxy work. Notice that, while the virtual host is requiring users to connect via a secure format, the internal reverse proxy is using unencrypted HTTP. This is one of the most powerful things about reverse proxies: they have the ability to generally secure unencrypted web-apps. + - Even though Gitea supports running a TLS server, using an Apache2 reverse proxy enables us to (1) run the Drone CI from the same machine on a different virtual host, and (2) use a generic and well-supported means of managing sites and certificates, rather than modifying it for each individual application we run. + +After creating the virtual host, we will enable it and reload Apache2: + +```shell +~# a2ensite git +~# systemctl reload apache2 +``` + +Now, you should be able to navigate to `https://git.yourdomain.com` and see the Gitea server. + +> At this point, it's a good idea to entirely remove access to the unsecured port 3000 externally. This usually means ensuring that your firewall is properly configured to only whitelist the appropriate ports for the two SSH servers, and the HTTP/S servers (as well as anything else you have running). + +## Part I Conclusion + +That's where we'll stop for part I. At this point, you should have a fully--functional, self-hosted Git server that spars feature-for-feature with GitHub, but with complete privacy and control of your data. + +In part II (coming soon), we'll look at setting up the Docker-based Drone CI and integrating it with Gitea for a seamless, efficient, joyful development/DevOps experience. + +Thanks! +Garrett + +> P.S. - As always, if you have questions, feel free to reach out. You can get in touch with me using the information [here](https://garrettmills.dev/#contact). diff --git a/src/app/resources/blog-posts/Converting-Ionic-Angular-Site-into-PWA.md b/src/app/resources/blog-posts/Converting-Ionic-Angular-Site-into-PWA.md new file mode 100644 index 0000000..4e2cf2b --- /dev/null +++ b/src/app/resources/blog-posts/Converting-Ionic-Angular-Site-into-PWA.md @@ -0,0 +1,299 @@ +--- +title: Converting an Ionic/Angular Site into a Progressive Web App +slug: Converting-Ionic-Angular-Site-into-PWA +date: 2020-12-01 00:00:00 +tags: + - javascript + - webdev + - tutorial +--- + +For the past year, I've been working on a web application called [Noded](https://code.garrettmills.dev/Noded). Noded is built in Angular on the Ionic framework and provides tools for building a personal tree of information. (If you're curious, you can try it out [here](https://noded.garrettmills.dev/).) + +
+ + A screenshot from Noded. +
+ +Because Noded is meant to replace whatever note-taking application a person uses, it's important that it be available offline (on your phone, for instance). So, one of the goals for Noded was to make it work as a progressive web app so it could be loaded even when the client doesn't have Internet access. + +For the uninitiated, a progressive web app (or PWA) is a type of web app that can make use of native-integration features like push notifications, storage, &c. On mobile platforms, this also enables [the "Add to Home Screen" functionality](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Add_to_home_screen) which enables users to "install" a PWA to their device so it appears as a native application and opens in full-screen mode, rather than in a browser. + +
+ +
+ Noded, running as a PWA on my phone. +
+ +## Service Workers + +In order for a web app to become a PWA, it needs two things. First, it needs a [web manifest](https://developer.mozilla.org/en-US/docs/Web/Manifest), which tells the browser the location of all resources used by the web app, and other information like the icon and background color. Second, it needs to have a service worker registered. [Service workers](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API) are event-based JavaScript programs that run in the background on a user's browser. + +These background programs can run even when the app itself isn't open and enable things like offline mode and push notifications. Ever wonder how applications like Google Docs can still load even when the browser is offline? This is enabled by the service worker API. + +Your application's service worker sits like a layer between your application and its back-end server. When your app makes a request to the server, it is intercepted by the service worker which decides whether it will be forwarded to the back-end, or retrieved from the local cache. + +PWAs work offline by having the service worker cache all of their app resources offline automatically. Then, when the back-end server is unreachable, the resources are served from the service worker transparently to the application. Even when your app is online, service workers can dramatically speed up load times for people with slow or latent connections (especially those in developing areas). + +## Angular Service Worker + +Because of their structured nature, Angular apps can make use of the [Angular Service Worker](https://angular.io/guide/service-worker-intro) which can automatically integrate with Angular apps to cache the built modules offline. This can be much easier to configure than writing a service-worker from scratch. + +We'll start by adding the `@angular/pwa` package to our app, which will automatically bootstrap the manifest and service worker config: + +```shell +ng add @angular/pwa --project app +``` + +(Where `app` is the name of your Angular project in `angular.json`.) This will create the `ngsw-config.json` config file, as well as the manifest in `src/manifest.webmanifest`. + +### `ngsw-config.json` + +The Angular service worker can be configured through the `ngsw-config.json` file. By modifying this file, we can tell the service-worker for our app to automatically pre-fetch all assets for the application. That way, when the app goes offline, it can still load the front-end resources. + +**Note** that the service-worker will cache other XHR headers with the proper cache headers, but if your application relies on API requests to start, you should account for that in the app's code using things like [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) or [localStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage). + +```json +{ + "$schema": "./node_modules/@angular/service-worker/config/schema.json", + "index": "/index.html", + "assetGroups": [ + { + "name": "app", + "installMode": "prefetch", + "resources": { + "files": [ + "/favicon.ico", + "/index.html", + "/manifest.webmanifest", + "/*.css", + "/*.js" + ] + } + }, + { + "name": "assets", + "installMode": "prefetch", + "updateMode": "prefetch", + "resources": { + "files": [ + "/assets/**", + "/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)" + ] + } + } + ] +} +``` + +Here's a sample config file. The `index` key specifies the entry-point to your application. For most Angular apps, this will be `index.html` since that's the file first loaded. + +Then, the front-end assets are split into two groups. The `app` group matches any _built_ files that are necessary to boot the Angular app. The `assets` group matches any additional assets like images, fonts, and external files. + +In this example, I've set both groups to `prefetch`, which means that the service-worker will try to cache them in the background the first time the app is loaded. This ensures that they are always available offline, as long as they had time to load once. However, it can be more taxing for the first load. + +To avoid this, you can set an asset group to `installMode: lazy`. This will cache the resources offline only once the front-end tries to load them. + +### Web Manifest + +The `@angular/pwa` package will also generate a web manifest for your application in `src/manifest.webmanifest`. Here, you can customize things like your application's name, background colors, and icons: + +```json +{ + "name": "Noded", + "short_name": "Noded", + "theme_color": "#3A86FF", + "background_color": "#fafafa", + "display": "standalone", + "scope": "./", + "start_url": "./index.html", + "icons": [ + { + "src": "assets/icons/icon-72x72.png", + "sizes": "72x72", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-96x96.png", + "sizes": "96x96", + "type": "image/png", + "purpose": "maskable any" + }, +... +``` + +Angular will auto-generate PWA icons in the `assets/icons/` directory, so you'll want to customize those to match your app. These icons will become the home-screen icon for you app when a user installs it. + +
+ +
+ Noded's PWA icon when added to my home screen. +
+ +A few other notes about the web manifest: + +- The `scope` property defines the scope of pages in the web app that can be navigated to in the "app mode." If your app tries to load a route that's outside of the scope, the client will revert to a web-browser rather than immersive mode. + - This property is relative to the entry point of the application. So, if the entry point is `/index.html`, then the scope `./*` matches all routes `/**`. +- The `start_url` is the route that is loaded when the user launches the PWA. Usually, this should match the entry point in the `ngsw-config.json` file as `index.html`. + + + +### Building your application + +Now that we've set up the Angular service-worker, you should be able to build your app and have it appear as a PWA in the browser. You can do this as you normally would. Since [Noded](https://code.garrettmills.dev/Noded/frontend/src/branch/master/.drone.yml#L21) is an Ionic app, I'll use: + +```shell +./node_modules/.bin/ionic build --prod +``` + +Using the `ngsw-config.json`, this will generate a few new files. If you look at `www/ngsw.json`, you can see the compiled config for the service-worker telling it the locations of all generated files for your app: + +```json +{ + "configVersion": 1, + "timestamp": 1606842506052, + "index": "/index.html", + "assetGroups": [ + { + "name": "app", + "installMode": "prefetch", + "updateMode": "prefetch", + "cacheQueryOptions": { + "ignoreVary": true + }, + "urls": [ + "/10-es2015.8900b72b6fdc6cff9bda.js", + "/10-es5.8900b72b6fdc6cff9bda.js", + "/11-es2015.82443d43d1a7c061f365.js", + "/11-es5.82443d43d1a7c061f365.js", + "/12-es2015.617954d1af39ce4dad1f.js", + "/12-es5.617954d1af39ce4dad1f.js", + "/13-es2015.eb9fce554868e6bda6be.js", +... +``` + +This is how the service-worker knows what to fetch and cache when running your application. It also writes the `ngsw-worker.js` file, which is the actual service worker code that gets run by the browser in the background. The web manifest is also included in the build. + +Once you deploy your app and load it in the browser, it should now appear to have both a web manifest and a service worker: + +
+ +
+ You can view this on the "Application" tab of your browser's dev-tools. +

+ +
+ +**Note** that the service worker will only register and run if it is configured properly _and_ your application is served over HTTPS. + + + +### Running in a sub-route (`/app`, &c.) + +You may have noticed in the screen-shot above that the service-worker for Noded is registered for `noded.garrettmills.dev/i`. This is because the Angular app for Noded runs in the `/i` sub-route of the domain. This requires special consideration for the service-worker. + +Recall that the manifest has a `scope` and `start_url`, and the `ngsw.json` has an `index` key. These are relative to the root of the domain, not the application. So, in order to serve our Angular app from a sub-route, we need to modify the PWA configs. Luckily, the Angular service-worker has a CLI tool that makes this easy for us. After we build our application, we can use the `ngsw-config` command to re-generate the config to use a sub-route: + +```shell +./node_modules/.bin/ngsw-config ./www/ ./ngsw-config.json /i +``` + +The last argument is the sub-route where your application lives. In my case, that's `/i`. This command will modify the service-worker config to use the sub-route for all resources: + +```json +{ + "configVersion": 1, + "timestamp": 1606843244002, + "index": "/i/index.html", + "assetGroups": [ + { + "name": "app", + "installMode": "prefetch", + "updateMode": "prefetch", + "cacheQueryOptions": { + "ignoreVary": true + }, + "urls": [ + "/i/10-es2015.8900b72b6fdc6cff9bda.js", + "/i/10-es5.8900b72b6fdc6cff9bda.js", + "/i/11-es2015.82443d43d1a7c061f365.js", + "/i/11-es5.82443d43d1a7c061f365.js", + "/i/12-es2015.617954d1af39ce4dad1f.js", + "/i/12-es5.617954d1af39ce4dad1f.js", +... +``` + +This ensures that your service worker caches the correct files. (**Note** that this doesn't actually need to modify the web manifest.) + + + +## Debugging + +Once you've deployed your built app, it should start caching assets through the service-worker. However, if this doesn't happen, here are a few things to consider. + +### Don't modify the compiled Angular code + +Once your app has been compiled to the `www/` directory, _never_ modify these files. If you need to make changes, use substitutions in the `angular.json`, or just change the original source files. + +```json + "hashTable": { + "/i/10-es2015.8900b72b6fdc6cff9bda.js": "d3cf604bab1f99df8bcf86d7a142a3a047c66dd2", + "/i/10-es5.8900b72b6fdc6cff9bda.js": "8fcf65ea8740ae0364cd7371dd478e05eadb8b35", + "/i/11-es2015.82443d43d1a7c061f365.js": "bc50afb2730b9662fc37a51ae665fd30a9b0637c", + "/i/11-es5.82443d43d1a7c061f365.js": "300d5e62ec8ed5a744ac0dc1c2d627d6208499d7", + "/i/12-es2015.617954d1af39ce4dad1f.js": "465dd6ae6336dee028f3c2127358eea1d914879d", + "/i/12-es5.617954d1af39ce4dad1f.js": "5549d758aea47ab6d81a45d932993a6da9f5289c", + "/i/13-es2015.eb9fce554868e6bda6be.js": "2ca9cc161ae45c0a978b8bebce3f6dd7597bba07", + "/i/13-es5.eb9fce554868e6bda6be.js": "1dadc7f0083a1d499ea80f9c56d9ad62de96c4f3", +... +``` + + + +The reason for this is because the Angular service-worker generates hashes of the generated files and checks them on download. This is how it knows whether it has cached the latest version of the file or not. If you manually modify the compiled file, the hash won't match, and the service-worker will invalidate its entire cache. + +### Bypass the service-worker + +As mentioned above, the service-worker will attempt to cache other outbound requests, provided that the server responds with appropriate cache headers. However, there may be instances where you want to prevent this behavior (for example, when checking if the app is online and can access the server). To do this, you can add the `?ngsw-bypass` query parameter to the URLs of your requests. + +Example: `/api/v1/stat?ngsw-bypass`. + +### View service-worker logs + +If you are having issues with the service worker's cache, it can be difficult to narrow them down without logs. You can view debugging output from the Angular service-worker by navigating to the `/ngsw/state` route in your app. In my case, that's `https://noded.garrettmills.dev/i/ngsw/state`. + +``` +NGSW Debug Info: + +Driver state: NORMAL ((nominal)) +Latest manifest hash: none +Last update check: never + + + +=== Idle Task Queue === +Last update tick: never +Last update run: never +Task queue: + + +Debug log: +``` + +If you are having issues, the `Debug log` section can provide more info on cache invalidation and other issues. + +### View cached files + +You can view the status of cached files in the "Storage" section of your browser's dev tools. This can help you see if the service worker was unable to find files (invalid route configurations), or was invalidating cached files. + +
+ +
Files cached locally by Noded's service worker. +
+ +## Conclusion + +This was a cursory look at getting your Angular/Ionic app set up as a PWA and caching assets offline using Angular service-workers. If your app relies on back-end resources (like an API), you'll still need to account for that when adding offline support using tools like IndexedDB and localStorage. + +For example, Noded has an [API service](https://code.garrettmills.dev/Noded/frontend/src/branch/master/src/app/service/api.service.ts) that sits between the app and the server and caches API resources locally in the IndexedDB. Perhaps we'll look into this more in a future post. diff --git a/src/app/resources/blog-posts/Creating-the-Ultimate-Free-Personal-Website.md b/src/app/resources/blog-posts/Creating-the-Ultimate-Free-Personal-Website.md new file mode 100644 index 0000000..1c3ad5b --- /dev/null +++ b/src/app/resources/blog-posts/Creating-the-Ultimate-Free-Personal-Website.md @@ -0,0 +1,119 @@ +--- +title: Creating the Ultimate (Free) Personal Website +slug: Creating-the-Ultimate-Free-Personal-Website +date: 2018-08-06 00:00:00 +tags: + - tutorial + - webdev + - hosting +--- + +For years, I’ve been roaming the web trying to find a good, free way to host my personal website. I’m a cheapskate, so I really didn’t want to pay for it… + +After trying numerous “free tiers,” sketchy shared-hosting services, and overly-complicated free cloud options, I finally settled on what I consider to be the ultimate, secure, and free (as in cookies, and as in Freedom) hosting solution: GitHub pages + CloudFlare. In this tutorial, we’ll take a look at how to set it up. + +## Step 0: Prerequisites + +### 0.1 — You need a website. + +![[glmdev.tech](https://glmdev.tech/)](https://cdn-images-1.medium.com/max/2224/1*OZfWkxG6qE3CSzCqwf9EiA.png)*[glmdev.tech](https://glmdev.tech/)* + +The first step in all of this, of course, is to actually have a website to host. So, create your personal website using good ole-fashioned static web development (HTML/CSS/JS/etc). + +My site is a simple, one page Bootstrap ordeal. Save for Bootstrap and jQuery, it has only 4 lines of JavaScript. + +### 0.2 — Get a custom domain name (optional). + +While it’s not *required*, having a custom domain name makes your online presence seem somehow more… official. You can get .com domain names for super cheap from sites like [Google Domains](https://domains.google/). + +## Step 1: Setting Up GitHub Pages + +GitHub has an *awesome* free static hosting service called GitHub Pages. Essentially, it allows you to push your static site to a repository and GitHub will automatically host that site for free. forever. The only potential downside is that the source-code for your website will be available for anyone to view. + +### 1.1 — Sign-in to GitHub and create a repo. + +For the purposes of this tutorial, I’m going to assume you know [how Git & GitHub work](https://www.youtube.com/watch?v=AGO9nQTKkfI&list=PLIaeD4fuWZJZ8Kb0wf_mWl52R8DjTA1og). + +Sign in to GitHub, and create a new repository. **This repo must be named in a special way to enable GitHub Pages.** It must take the following form: + + .github.io + +So mine, for example, is called glmdev.github.io. This tells GitHub to activate GitHub pages. Now, on your local machine, add the repository as a remote and push your code to the master branch. + +### 1.2 — Force clients to use HTTPS. (optional, but not really…) + +**If you’re using a custom domain, this is not for you.** + +If you’re not using a custom domain, you’re technically done at this point. You have a working static website. But, in the name of best practice, we are going to redirect non-secure clients to the HTTPS protocol by default. + +![](https://cdn-images-1.medium.com/max/2000/1*ekN0PYdMh-CEu850QKTdYQ.png) + +This can be done by going to the repository settings page, scrolling down to the GitHub pages section, and checking the “Enforce HTTPS” box. + +By default, GitHub provides free SSL certificates for their *.github.io domains. + +That’s it! If you don’t have a custom domain, you’re done. Congrats, and happy interneting! + +## Step 2: Setting Up CloudFlare + +CloudFlare is an amazing, free service that provides web caching, always-on, and SSL enforcement for websites. It also has a host of other features that you can tinker with. So, we’re going to be setting up CloudFlare to use with our custom domain. + +### 2.1 — Create a CloudFlare account. + +Head over to CloudFlare and sign up for an account, then click the add site button. Put in your custom domain name here. + +![](https://cdn-images-1.medium.com/max/2000/1*N9nhxMSzfdXBSVJJkCxGIw.png) + +CloudFlare will then probe your existing DNS settings to try to import them. It’s important that you sign-in to your registrar and add any other DNS records you have (like MX mail records and TXT records) because after the setup, all DNS queries to your domain will run through the CloudFlare servers, not your registrar. + +At this point, you should also add GitHub’s root IP addresses as A records to your domain. This will allow visitors to your domain to access the Pages site. I also added a simple CNAME record pointing the www. version of my site back to the root domain. The GitHub A records are: + + 185.199.108.153 + 185.199.109.153 + 185.199.110.153 + 185.199.111.153 + +### 2.2 — Configure your domain’s nameservers. + +![](https://cdn-images-1.medium.com/max/2000/1*XL43UjnFz8koxPS9BXNcuQ.png) + +After you add the DNS records, you’ll be given the addresses of 2 CloudFlare nameservers to point your domain to. These will take the place of your registrar’s default servers. + +Sign in to your registrar and click the settings for your domain’s nameservers. Then, replace the registrar’s default ones with the addresses CloudFlare gave you. + +### 2.2 — Now the hardest part. + +This part is the kicker. Because DNS is decentralized, you may have to wait up to 48 hours for the changes to propagate before you can finish setting up your domain. You can use a [DNS checker](https://dnschecker.org/) to see if your domain’s A records now point to a CloudFlare IP address, but even then it may take several more hours. + +## Step 3: Add the Custom Domain to GitHub Pages + +Once your DNS settings have propagated, you can tell GitHub to use the custom domain instead of the free .github.io one. + +### 3.1 — Create the CNAME file. + +To do this, create a file in the root of your repository called CNAME, then put the custom domain(s) in the file, one per line, like so: + + glmdev.tech + www.glmdev.tech + +Commit and push the file, then give GitHub a second to rebuild the site, and then you should be able to load your website at the custom domain. + +### 3.2 — Enable SSL redirection. (optional, but again, not really…) + +![](https://cdn-images-1.medium.com/max/2000/1*pn_iZhi_JCqNDSPZAvD-kw.png) + +Lastly, we want non-secure HTTP clients to be automatically redirected to the HTTPS protocol whenever they can. To enable this, go to the CloudFlare dashboard, click the Crypto tab, and turn on “Always Use HTTPS.” While you’re at it, because GitHub also supports SSL, change the SSL mode at the top of the page from “Flexible” to “Full.” + +## Conclusion + +That’s it! Not terribly painful, actually, and we have a kick-ass free (and secure) website up and running. + +A few things of note: + +1. CloudFlare is really powerful. It can do a lot more than I covered in this tutorial, and I’d suggest tinkering around with it to really get the most out of the free service. + +1. When you want to update/change your website, all you need to do is push the changes to the GitHub pages repository, and they’ll automatically be updated on the live site. + +1. Any new DNS records you may add to your domain should be added from within the CloudFlare DNS panel, **not via your registrar.** + +1. Lastly, if you don’t already make it a habit, I suggest going to your GitHub and CloudFlare account settings and enabling 2-Factor Authentication. diff --git a/src/app/resources/blog-posts/Dependency-Injection-in-Less-Than-100-Lines-of-Pure-JavaScript.md b/src/app/resources/blog-posts/Dependency-Injection-in-Less-Than-100-Lines-of-Pure-JavaScript.md new file mode 100644 index 0000000..98cd02c --- /dev/null +++ b/src/app/resources/blog-posts/Dependency-Injection-in-Less-Than-100-Lines-of-Pure-JavaScript.md @@ -0,0 +1,272 @@ +--- +title: Dependency Injection in Less Than 100 Lines of Pure JavaScript +slug: Dependency-Injection-in-Less-Than-100-Lines-of-Pure-JavaScript +date: 2019-11-16 14:33:36 +created: '11-16-2019' +canonicalUrl: 'https://garrettmills.dev/blog/2019/11/16/Dependency-Injection-in-Less-Than-100-Lines-of-Pure-JavaScript/' +tags: + - javascript + - DI + - patterns +--- +If you've ever used Angular for any amount of time, you've probably noticed how freaking awesome its dependency injection is. With just the invocation of the [injectable decorator](https://angular.io/api/core/Injectable), you can pull in reusable instances of any service in your application just by referencing the type: + +```typescript +import {Injectable} from '@angular/core'; +import {BackendService} from './backend.service'; + +@Injectable() +export class AuthService { + constructor( + private backend: BackendService, + ) { + this.backend.somethingAwesome(); + } +} +``` +Notice that I don't have to instantiate the `BackendService` anywhere because it's already handled for me by Angular. This has the added benefit of ensuring that only one instance of the `BackendService` is created during runtime, which is good for memory! + +## Background - Flitter +For the past year or so, I've been creating an Express-backed JavaScript web-app framework called [Flitter](https://flitter.garrettmills.dev/). One of the major philosophies in Flitter is that everything should be a class. So, while Flitter incorporates many traditionally ES5 libraries -- Express, Mongoose, Agenda.js, &c -- Flitter provides a system for defining their resources using ES6+ classes. That's why in Flitter you'll never see, for example, a schema based model definition: + +```javascript +// Mongoose - from the getting started guide +var kittySchema = new mongoose.Schema({ + name: String +}); + +kittySchema.methods.speak = function () { + var greeting = this.name + ? "Meow name is " + this.name + : "I don't have a name"; + console.log(greeting); +} +``` + +Instead, we define the appropriate class: +```javascript +// Using Flitter classes +const Model = require('libflitter/database/Model') +class Kitty extends Model { + static get __context() { + return { + name: String + } + } + + speak() { + const greeting = this.name + ? `Meow name is ${this.name}` : `I don't have a name` + console.log(greeting) + } +} +``` +Having all our resources defined in standard classes is, subjectively, much easier to maintain and reason around than a multitude of different schema formats and function calls. Plus, it has the added benefit of enabling inheritance for all our resources out-of-the-box. But, it raises an interesting issue. + +## The Problem With Classier Services +If everything is a class, how do we access reusable methods from our application? If we were using objects, this would be easy: +```javascript +// logHelpers.js +module.exports = exports = { + loggingLevel: 2, + out(what, level) { + if ( !Array.isArray(what) ) what = [what] + if ( level >= this.loggingLevel ) console.log(...what) + }, + error(what, level = 0) { this.out(what, level) }, + warn(what, level = 1) { this.out(what, level) }, + info(what, level = 2) { this.out(what, level) }, + debug(what, level = 3) { this.out(what, level) }, +} +``` +Seemingly, this is really easy to use. We just import the module and we're good to go: +```javascript +const logging = require('./logHelpers') +const someFunction = () => { + logging.info('someFunction has executed!') +} +``` + +But what happens if we want to create a different helper "class" that will send e-mails if an error is logged? Well, we _could_ just write the whole thing from scratch again, but that's not very [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself). So instead, we override specific properties from the original helper: +```javascript +// emailLogHelpers.js +const logHelpers = require('./logHelpers') +module.exports = exports = Object.assign(logHelpers, { + emailOut(what, level) { + sendAnImaginaryEmailSomewhere(what); + this.out(what, level); + }, + error(what, level = 0) { this.emailOut(what, level) }, +}) +``` +But, this introduces ambiguity. What does `this` refer to in `error()`? What about in `emailOut()`? Can you spot the error? It feels correct from an OOP standpoint. However, if we call `error()` on the email helpers object, we will get the following error: + +``` +ReferenceError: out is not defined + at Object.emailLogHelpers (emailLogHelpers.js:6:4) +``` + +Why? Because `this` in the `emailOut` function doesn't actually refer to the combined object, but the original object at the time of creation. That is, the right-side of the `Object.assign` call. + +This could easily be resolved by defining a `LogHelper` class and creating a child class `EmailLogHelper`. Then, in the `EmailLogHelper` class, `this` would unambiguously refer to the instance itself, which already has all the `LogHelper` methods. For example: + +```javascript +// EmailLogHelper.js +const LogHelper = require('./LogHelper') +class EmailLogHelper extends LogHelper { + out(what, level) { + sendAnImaginaryEmailSomewhere(what); + super.out(what, level); + } +} +``` + +But, this leaves us with the root issue of class-based services: +> Service classes must be instantiated before they can be used. + +Why is this a problem? Well, what if there's some config service that `LogHelper` relies on (or depends on...) to get the logging level? Well, then to use the service anywhere, we'd also have to instantiate the config service and pass that in to the log helper. But, then we have 20 nearly-identical instances of the same class doing the same thing. So what's the solution? + +## Dependency Injection in ES6: Easier than you think! +The solution to all the problems above is to have some dependency injector manager class create instances of all the relevant services when the application starts. Then, whenever a class needs access to a service, it fetches the shared instance from the DI. This saves memory, and prevents the manual dependency-chaining problem above. + +It turns out that, because of the niceness of the ES6 class syntax, it's pretty easy to implement a basic DI in vanilla JavaScript! We're going to approach this in multiple parts. + +### The Service Class +A service (for our basic purposes) is just a class that should be instantiated once the first time it is needed, then re-used for subsequent calls. So, the service class can be entirely bare for now: +```javascript +class Service { + +} +``` + +Eventually, you can make this system more advanced by doing fancy things like tracking service state or even making services themselves injectable! Perhaps in a future post we'll explore this. + +### The Injectable Class +This class will be the parent class of every class that can make use of automatic DI. In our Angular analogy, this is akin to the Injectable decorator. It should do 2 things: specify the services we want access to, and provide a mechanism for accessing them. Here's an example based on [Flitter's Injectable class](https://code.garrettmills.dev/Flitter/di/src/branch/master/src/Injectable.js): + +```javascript +// Injectable.js +class Injectable { + static services = [] + static __inject(container) { + this.services.forEach(serviceName => { + this.prototype[serviceName] = container.getService(serviceName) + } + } +} +``` + +Obviously, this is missing some niceties and type-checking, but the basic functionality is there. Statically, we define an array of service names for the instance to access, then, at some point before the class is instantiated, the `__inject` method is called. This method injects the services instances into the class' `prototype`, which is the under-the-hood function that is copied for each instance of the class. It gets these service instances from some magical `container` which we'll cover shortly. + +This makes it really easy for classes to access services. For example: +```javascript +// DarkSideHelpers.js +const Injectable = require('./Injectable') +class DarkSideHelpers extends Injectable { + static services = ['logging'] + doItAnakin() { + try { + somethingDangerous() + } catch (error) { + this.logging.error('It\'s not the Jedi way!') + } + } +} +``` +No instantiation of the `LogHelper` class required! Isn't that nifty? + +### The Service Container +But, fancy static will do us nothing if there's no services to inject. So, we need to create a place for them to live. Because we want to reuse instances as much as possible, we need a container to create and manage those instances for us. This container should: contain a mapping of service names to service classes, instantiate requested services if they don't exist yet, and return these instances on request. Let's try one: + +```javascript +// ServiceContainer.js +const LogHelper = require('./LogHelper') +const EmailLogHelper = require('./EmailLogHelper') + +class ServiceContainer { + constructor() { + // We define the service classes here, but we won't + // instantiate them until they're needed. + this.definitions = { + logging: LogHelper, + emailLogging: EmailLogHelper, + } + + // This is where the container will store service instances + // so they can be reused when requested. + this.instances = {} + } + + getService(serviceName) { + // Create a service instance if one doesn't already exist. + if ( !this.instances[serviceName] ) { + const ServiceClass = this.definitions[serviceName] + this.instances[serviceName] = new ServiceClass() + } + return this.instances[serviceName] + } +} +``` + +Our bare-bones service container contains a list of service definitions, and a method for retrieving service instances. It satisfies our requirements because it won't instantiate a service until it's needed, but will reuse existing instances. So, we have the container for our services, but now we the final piece to make all three parts work together. + +### The Dependency Injector Host +The DI host is the boss of the whole operation. It's responsible for creating an instance of the container (or even multiple different instances) and keeping track of them. It is also responsible for calling the magic `__inject` method on classes before they're instantiated. There are several different strategies for how this can be done. Each has its own merit based on the situation, but we'll look at one that works well for standalone applications: + +```javascript +// DependencyInjector.js +const ServiceContainer = require('./ServiceContainer.js') +class DependencyInjector { + constructor() { + this.container = new ServiceContainer() + } + + // Injects the dependencies into an uninstantiated class + make(Class) { + return Class.__inject(this.container) + } +} +``` + +Like the rest of our classes, this one is pretty straightforward. When constructed, it creates a new service container. Then, we can pass in classes to the `make` method and it will inject dependencies from the container into the class. + +The DI instance should be shared across your entire application. This will help re-use service instances as much as possible. Here's a silly example: + +## A Spam-Generating Example App +As an example of how to use this system, let's create a very basic application. This application should, on run, repeatedly send spam email to its owners. We're going to use our fancy dependency injector for this. + +```javascript +// App.js +const Injectable = require('./Injectable') +class App extends Injectable { + static services = ['emailLogging'] + run() { + setInterval(() => { + this.emailLogging.error('Haha made ya\' look!') + }, 5000) + } +} +``` + +Now, we'll tie it all together by using our DI to run the app: +```javascript +// index.js +// Create the dependency injector instance for the application +const DI = require('./DependencyInjector') +const di = new DI() + +// Now, create the instance of our application using the DI to inject services +const App = di.make(require('./App')) +const app = new App() // Has access to the emailLogging service + +app.run(); +``` + +## Conclusion +> Dependency injection is a powerful tool ... for reducing code complexity and properly sub-dividing your code into pure, maintainable bits. + +We have built a basic application with injectable dependencies in vanilla ES6. Obviously, there are a lot of enhancements and improvements that could be made here. For example, type checking for services and containers, making the services themselves injectable, moving the `Injectable` base class to an [ES7 decorator](https://www.martin-brennan.com/es7-decorators/) so it can be applied to classes with other parents, &c. Perhaps I'll do a follow-up in the future. But, I hope this article was a good illustration of the power of DI in making code nicer. Dependency injection is a powerful tool not just for reducing memory load, but also for reducing code complexity and properly sub-dividing your code into pure, maintainable bits. Thanks for making it this far, and if you have any questions, be sure to comment below. + +Garrett + +_P.S. - You can find the code used in this example [here](https://code.garrettmills.dev/garrettmills/es6-di)._ diff --git a/src/app/resources/blog-posts/Developing-an-App-With-Flitter-Getting-Started.md b/src/app/resources/blog-posts/Developing-an-App-With-Flitter-Getting-Started.md new file mode 100644 index 0000000..d411329 --- /dev/null +++ b/src/app/resources/blog-posts/Developing-an-App-With-Flitter-Getting-Started.md @@ -0,0 +1,261 @@ +--- +title: Developing an App With Flitter - Getting Started +slug: Developing-an-App-With-Flitter-Getting-Started +date: 2019-04-19 00:00:00 +tags: + - flitter + - webdev + - tutorial +--- +![](https://cdn-images-1.medium.com/max/2722/1*ZtYARb0XkvoDhq5t_5zyJA.png) + +Flitter is my take on a Javascript web-app framework based on Express. If you haven’t read it, I recommend perusing my introduction [here](https://medium.com/@glmdev/flitter-framework-cohesive-express-js-36776766ad37) to see what it’s all about. This series of posts will look at creating a basic to-do web-app using Flitter. We’ll cover everything from getting set up to using Flitter, to debugging and running your app in production. + +## What are we building? + +The meat-and-potatoes of our app isn’t *that* important to the purpose of this tutorial, so we’re going to do something simple. We’re going to build a simple to-do application that allows users to sign in to a web panel, create and store tasks with notes and file attachments. We’ll also allow them to generate public links to share their tasks. + +We’ll use [Bootstrap](https://getbootstrap.com/) for our front-end framework. Any custom styles we need to add will be written in [Less](http://lesscss.org/). Of course, since Flitter uses the Pug view engine, we’ll be using that too. + +Let’s dive in. + +## 1. Getting Set Up + +### 1.1 — Prerequisites + +Flitter has a few fairly straightforward system requirements. The installation of each of these on your particular system is beyond the scope of this document, but I’ll link to the install pages for them here: + +* Node.js 10.x or higher — [https://nodejs.org/en/](https://nodejs.org/en/) + +* Yarn package manager — [https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install) + +* MongoDB server (community edition) — [https://www.mongodb.com/download-center/community](https://www.mongodb.com/download-center/community) + +Although it’s not required, it’s also very helpful to have [Git](https://git-scm.com/downloads) installed. + +### 1.2 — Grab a copy of Flitter. + +I try my best to keep the master branch of the [main Flitter repo](https://code.garrettmills.dev/flitter/flitter) with the current, working version of Flitter. You can download a ZIP-file of the framework from the main repo link, or you can grab a copy using Git: + + $ git clone [https://git.glmdev.tech/flitter/flitter](https://git.glmdev.tech/flitter/flitter) todo-app + +This will copy the base framework files to a directory called todo-app/. Now, we need to install the Node.js packages required to run Flitter: + + $ cd todo-app/ + $ yarn install + +Yarn will then install the packages required by Flitter. Because I use Yarn when I develop Flitter, it includes a yarn.lock file that is known good. This means that Yarn will install the exact versions I was using when Flitter worked. + +### 1.3 — Configure the Environment + +Flitter uses environment-specific configuration files for things like database credentials and app secrets. We’ll create a .env file with the configuration for our development environment: + + SERVER_PORT=8000 + LOGGING_LEVEL=1 + + DATABASE_HOST=127.0.0.1 + DATABASE_PORT=27017 + DATABASE_NAME=flitter + DATABASE_AUTH=true + DATABASE_USER=flitter + DATABASE_PASS=flitter + + SECRET=changemetosomethingrandom + ENVIRONMENT=development + +Be sure to edit the database credentials to match your setup. If your development server doesn’t require a login, you can set DATABASE_AUTH=false to disable authentication. Once you modify the configuration values, we’ll check if Flitter can start successfully: + + $ ./flitter test + Flitter launched successfully. That doesn't mean that all of your app logic works, just that the framework backend initialized properly. + +## 2. Create the User Auth + +We want users to be able to register with/sign-in to our application, so we need to create a basic user-authentication portal. Sounds daunting, right? Well, Flitter makes it easy. Flitter has a built in package called [flitter-auth](https://flitter.garrettmills.dev/tutorial-flitter-auth.html) that provides a complete user-portal system out of the box. All we need to do is deploy the files: + + $ ./flitter deploy auth +> A deployment in Flitter is a non-reversible setup script provided by a package. Various Flitter packages use the deploy command to set up functionality for the first time. + +If you look in the app/ directory and its sub-directories, you’ll notice several new files related to user authentication. These were created by flitter-auth when you ran the deploy command. + +### 2.1 — Test it out! + +We can now try out the auth portal by launching Flitter and using it. To start Flitter’s HTTP server, run the following command: + + $ ./flitter up + Flitter running on port 8000! Press ^C to exit cleanly. + +![The default Flitter registration page.](https://cdn-images-1.medium.com/max/2000/1*culkb9iLNJU048ZwHsNIpw.png)*The default Flitter registration page.* + +Now, you can navigate to localhost:8000/auth/register and you should be greeted with the default Flitter registration page. + +To test it out, create a user. You should be redirected to a very simple dashboard. Then, you can log out using the provided button. + +To test the sign-in functionality, navigate to: localhost:8000/auth/login and you should be able to get back to the dash with the user credentials you just created. + +Et voilà! We have a fully functional user portal. Flitter makes the code for this portal available in the app-space, so we can (and will) modify it later to suit our app better. + +## 3. First Looks + +![](https://cdn-images-1.medium.com/max/2000/1*KpCME89A_7KNnuhKYgKkcQ.png) + +Now that we have a very basic app up and running, let’s take a moment to explore the code we just deployed. We’re going to look at the code provided by the flitter-auth package and use it to get an idea of how Flitter works. + +### 3.1 — Routing + +Flitter is an [MVC framework](https://www.tutorialspoint.com/mvc_framework/mvc_framework_introduction.htm). This means that routes are defined in their own separate files. For example, let’s open app/routing/routers/auth.routes.js. There are a lot of comments in there, but if we condense it down to just the code, it looks something like this: + + module.exports = exports = { + prefix: '/auth', + + get: { + '/register': [ _flitter.mw('auth:RequireGuest'), + _flitter.controller('Auth').register_get ], + '/login': [ _flitter.mw('auth:RequireGuest'), + _flitter.controller('Auth').login_get ], + '/logout': [ _flitter.mw('auth:RequireAuth'), + _flitter.controller('Auth').logout ], + + '/dash': [ _flitter.mw('auth:RequireAuth'), + _flitter.controller('Auth').dash_get ] + }, + + post: { + '/register': [ _flitter.mw('auth:RequireGuest'), + _flitter.controller('Auth').register_post ], + '/login': [ _flitter.mw('auth:RequireGuest'), + _flitter.controller('Auth').login_post ], + }, + } + +In Flitter, there is no code for grouping routes. Rather, routes that should be grouped together are placed in the same file. So, this file is used for all the routes relevant to user authentication. This file exports an object describing a set of routes. + +First, we have the prefix. This is pretty straightforward; it’s a prefix applied to all routes in the file. Here, it’s /auth, so the /register route would be accessed at /auth/register. + +Next we have the get object. This contains all routes for requests with the GET method. Likewise, there is a corresponding post object. + +Both of these two objects contain a number of route definitions. Let’s look at the /register route in the post object. The key is /register which is what Flitter uses as the route — so this route would be accessed by sending a POST request to /auth/register. What follows is an array of functions. + +The functions in this array are applied one at a time — in order — as handlers for the route. For the /register POST route, there are two handlers specified. The first is _flitter.mw('auth:RequireGuest'). This applies the auth:RequireGuest middleware to the route (more on that later). _flitter.mw() is a global function for retrieving middleware handlers by name. + +The second handler is _flitter.controller('Auth').register_post. This applies the register_post method on the Auth controller (more on that later as well). Again, _flitter.controller() is a global function for retrieving controllers by name. + +### 3.2 — Middleware + +![***figure 3.2a:*** A simplified diagram of an MVC request/response flow.](https://cdn-images-1.medium.com/max/3200/1*RE4-PhA5KneL_xNOol90pQ.png)****figure 3.2a:*** A simplified diagram of an MVC request/response flow.* + +In an MVC framework, middleware is any code that runs between the application logic and the user. That means that, when a request comes in, the middleware is applied, then the request is handled by the controllers, and a response is sent. Before it reaches the user, more middleware may be applied. + +In Flitter, each middleware resides in its own file in the app/routing/middleware/ directory. Let’s look at an example. Open the file app/routing/middleware/auth/RequireGuest.middleware.js. If we strip away the comments, we should see something like this: + + class RequireGuest {* + *test(req, res, next){ + if ( req.session && req.session.auth && + (req.session.auth.authenticated === true || + req.session.auth.user) ){ + + return _flitter.view(res, 'errors/requires_guest') + } + + next() + } + } + + module.exports = RequireGuest + +This is a middleware provided by flitter-auth that checks if a user is logged in. If there is an authenticated user, stop the request and display an error page. Otherwise, let it continue through. This middleware is applied to routes like the login and registration pages — pages you don’t want users to be able to access if they have already signed in. + +Flitter middleware definitions are pretty straight-forward. Each file contains and exports a class. This class has a function, test() that is called when the middleware is applied. It is passed the request, response, and next() function. + +Here, if an authenticated user exists in the session, the middleware calls _flitter.view() to display the errors/requires_guest view (more on that later). This tells the user they’ve tried to access something they’re not allowed to. However, if there *isn’t* an authenticated user, it calls the next() function, which allows Express to continue processing the request normally. + +In Flitter, middleware are assigned names based on their file name. For example, the middleware above exists in the file app/routing/middleware/auth/RequireGuest.middleware.js. When it is loaded by Flitter, it is assigned the name auth:RequireGuest. + +You can use these names to apply middleware to routes. This is done via the global _flitter.mw() function. Simply pass the function the name of the middleware you want to apply (see *3.1* for example): _flitter.mw('auth:RequireGuest'). + +### 3.3 — Controllers + +Controllers are the core of your application. They contain the majority of the logic your application provides, and they are the ultimate handlers of most routes. + +In Flitter, controllers are located in the app/controllers/ directory. Let’s look at app/controllers/Auth.controller.js as an example. I’m going to strip out the comments and just focus on one method in the controller, dash_get(): + + const validator = require('validator') + const bcrypt = require('bcrypt') + const uuid = require('uuid/v4') + * + *class Auth { + + // ... other methods omitted ... + + dash_get(req, res, handle_error){ + return _flitter.view(res, 'auth/dash', + { user: req.session.auth.user }) + } + } + + module.exports = Auth + +Each controller is defined in a file. The file exports a class. The methods on this class should define the logic for how to handle various routes. It’s okay to have methods on a controller that *don’t* handle routes — that is, they are helper functions for other controller methods — but the primary function of a controller is to handle requests. + +Let’s look at the dash_get() method. This method is passed 3 arguments: the Express request, the Express response, and an error handler. It’s not used here, but when you are writing logic in Flitter controllers, you can gracefully handle errors by passing instances of the JavaScript Error class to the handle_error method. + +dash_get() is the method responsible for serving the dashboard to authenticated users. It is called if an authenticated user navigates to the /dash route. The actual logic is pretty simple. dash_get() displays the auth/dash view and passes it the user from the session. (More on views later.) + +Controller methods should be used in route definitions as the main handlers for our app’s routes. Each controller is assigned a name based on its file name. So, app/controllers/Auth.controller.js is called Auth. Instances of these controllers can be accessed with the global _flitter.controller() helper function. + +See *3.1* for examples of how to reference controller methods in route definitions, but for dash_get() it’s as easy as _flitter.controller('Auth').dash_get. + +### 3.4 — Database Models + +Data in MVC frameworks are stored in models. A model is simply a defined structure for some type of record that is kept in a database. In Flitter, models are stored in the app/models/ directory. Let’s look at the app/models/User.model.js model provided by flitter-auth: + + module.exports = exports = { + username: String, + password: String, + data: String, + uuid: String, + } + +Model files in Flitter export an object that describes the structure of the model. The keys of the object are the names of the fields in the model, and the values are the data type of that field. Flitter uses Mongoose to provide ORM, so you can find more info [here at the Mongoose docs.](https://mongoosejs.com/docs/guide.html) The User model above has 4 fields, each of which contains a string. + +Models in Flitter can be accessed using the global _flitter.model() helper function. Models in Flitter are assigned names based on their file name. For example, the model app/models/upload/File.model.js can be accessed with _flitter.model('upload:File'). The _flitter.model() method returns an instance of [Mongoose/Model](https://mongoosejs.com/docs/models.html). + +### 3.5 — Static Assets & Views + +***3.5.1 — Static Assets +***Flitter makes files placed in the app/assets/ directory directly available as static files on the assets/ route. For example, the file app/assets/flitter.png can be accessed by navigating to [http://flitter.url/assets/flitter.png.](http://flitter.url/assets/flitter.png.) + +Flitter also serves a favicon by default using the [express-favicon](https://www.npmjs.com/package/express-favicon) package. The location of the favicon file is app/assets/favicon.ico. Flitter *requires* that you provide a favicon file at this path. We provide a default one for you. + +***3.5.2 — Views*** +A view is just some page that is served to the client. Flitter uses the [Pug view engine](https://pugjs.org/api/getting-started.html). Views in Flitter are placed in the app/views/ directory. Again, views are assigned names based on their file name. So, the file app/views/auth/dash.pug can be referenced with the name auth:dash. + +To serve a view in Flitter, you can use the [global helper method](https://flitter.garrettmills.dev/module-libflitter_views_ViewEngineUnit-ViewEngineUnit.html#view): _flitter.view(). For example, let’s go back to the controller method referenced above: + + const validator = require('validator') + const bcrypt = require('bcrypt') + const uuid = require('uuid/v4') + * + *class Auth { + + // ... other methods omitted ... + + dash_get(req, res, handle_error){ + return _flitter.view(res, 'auth/dash', + { user: req.session.auth.user }) + } + } + + module.exports = Auth + +The call to _flitter.view() here serves the view file app/views/auth/dash.pug. The object passed to the helper method is bound to the view such that its keys can be accessed directly as variables in the view. That is, within the view, the variable user would be defined. + +## Part I Conclusion + +Hopefully this has been a helpful introduction to my Flitter framework. We have a functional app with user authentication abilities, and we didn’t have to write a single line of code. In Part II of this series, we’ll start writing the code specific to our to-do app, and we’ll dive deeper into the practical use of Flitter. + +If you’re impatient and want to get started right away, you can find more information about how to use Flitter in [the documentation.](https://flitter.garrettmills.dev/) + +As always, let me know if you have questions about any part of this article, and I’ll try my best to help! Be sure to reference the header number of the part you have questions about. + +This is the first part in a multi-part series that explores how to develop for Flitter, my Express-based Javascript web app framework. You can find more information about Flitter [here.](https://flitter.garrettmills.dev/) + diff --git a/src/app/resources/blog-posts/Flitter-Framework-Cohesive-Express-js.md b/src/app/resources/blog-posts/Flitter-Framework-Cohesive-Express-js.md new file mode 100644 index 0000000..0cd8d7f --- /dev/null +++ b/src/app/resources/blog-posts/Flitter-Framework-Cohesive-Express-js.md @@ -0,0 +1,44 @@ +--- +title: 'Flitter Framework: Cohesive Express.js' +slug: Flitter-Framework-Cohesive-Express-js +date: 2019-03-19 00:00:00 +tags: + - flitter + - webdev +--- + +My take on a Node.js framework, based on Express. + +![](https://cdn-images-1.medium.com/max/2350/1*bN1D4mCPcNWi632p2wSxBw.png) + +*This is the first part in my series on Flitter, my Express-based web app framework. This first post is an introduction to Flitter and the motivation behind it. There will be more parts to come, but for a crash-course, [check out the documentation.](https://flitter.garrettmills.dev/tutorial-getting-started-0.html)* + +**I love Express.** I think it’s wonderfully extensible, modular, and dynamic. However, when building Express-based apps, I’ve noticed that there are quite a few things that I find myself repeating. Enough, that I decided to standardize the steps into my own framework: *Flitter*. + +![The Bigger Flitter](https://cdn-images-1.medium.com/max/2000/1*5H4606sXT4glCl-ZOgsAJQ.png)*The Bigger Flitter* + +Flitter is a full-stack model-view-controller framework built using various Express packages. It is designed to provide a more cohesive environment for developing with Express. However, unlike some other frameworks, Flitter isn’t supposed to *replace *Express in your app, but rather complement it. + +Flitter includes a Unit-based startup system so various underlying functionality in Flitter is broken into manageable, extensible chunks. These chunks provide commonly used things like sessions, MongoDB access, database models, controllers, the Pug view engine, middleware, and an interactive shell. + +This means that Flitter does a lot of the initial hard work for you — it provides a simple way to define structures like models, routes, controllers, middleware, etc. These structures are imported by Flitter and are passed to their respective sub-components (Mongoose, Express, Pug). + +### All you have to do is write the logic for your app. + +Flitter also provides a coherent system for add-on packages. These packages can be created by 3rd parties (or myself) to enable additional functionality in Flitter. Because Flitter’s functionality is already broken up into chunks, creating these packages is trivial — simply add their units. + +### I developed Flitter for a number of reasons: + +First, I didn’t like how hard to understand other frameworks like AdonisJS and Sails are. Not necessarily their functionality, but how they work under the hood. Flitter is broken up into parts so it can be easily understood and modified. + +Second, I use the functionality provided by Flitter a *lot. *So, Flitter is a generic implementation of how I would start every Node.js application I write. This is useful for me. I decided to spin if off as a framework so it will hopefully be useful for you, too. + +Third, let’s be honest — I wanted to learn how to build a framework. I think it has been a good opportunity to expand my ES6 skills, and it has taught me how Express and Node.js work at a much deeper level. Plus, it’s just fun. + +### Flitter is free as in freedom. + +It’s also open-source and developed [over on my Git server.](https://code.garrettmills.dev/flitter) Contributions/suggestions/bug reports are welcome! I also dog-food Flitter — it runs [my website](https://glmdev.tech/) and several other projects I use. + +### How do I get started? + +Interested? Great! In the subsequent parts in this series, I’ll walk through creating a sample app using Flitter. But, Flitter is fully-documented, so you can check out the [documentation here to get started.](https://flitter.garrettmills.dev/) diff --git a/src/app/resources/blog-posts/Generalized-Commutative-Data-Types.md b/src/app/resources/blog-posts/Generalized-Commutative-Data-Types.md new file mode 100644 index 0000000..e7fc639 --- /dev/null +++ b/src/app/resources/blog-posts/Generalized-Commutative-Data-Types.md @@ -0,0 +1,287 @@ +--- +title: Generalized Commutative Data-Types +slug: Generalized-Commutative-Data-Types +date: 2022-12-09 00:00:00 +tags: +- swarm +- patterns +- languages +- theory +--- + +> Disclaimer: after I started writing about this, I found [this paper from the Hydro project](https://hydro.run/papers/hydroflow-thesis.pdf) which presents a formulation of this idea using lattices & morphisms. What follows is my derivation of a similar technique, albeit significantly less formal. As far as I can tell, the Hydro paper does not separate "pseudo-commutative operations" instead opting to form reactive values which are re-computed as the PC operations are applied. + +A "commutative data type" is one whose value is modified by a set of operations whose execution order is irrelevant. Such data types are useful in distributed & parallel systems which employ accumulator-style execution (i.e. many jobs perform a calculation then merge their result into a single, shared value). + +What follows is a formulation of such a data type along with the structures required to define various operations over it. + +## Naïve Commutative Data Types: A First Draft + +Begin with a base value `v` of some type `T`. + +There are `n` many jobs which act in parallel to perform commutative operations on `v`. + +An operation on `v` is commutative if, for all operations `a` and `b` of type `(T -> T)`, `a (b v) = b (a v)`. + +Each of the jobs produces an operation of the type `(T -> T)` which are collected. + +The result is a value `(v : T)` and a set of commutative operations `(list (T -> T))`. + +The list of operations is applied to the value, chained, producing a final value `v'`. + +For example, if we have the list `((v -> v+1) :: (v -> v+4) :: nil)` and a base value of `0`, resolving the value gives `(v -> v+4) ((v -> v+1) 0) = 5`. + +Importantly, because the order of the operations is irrelevant, we can apply the operations as they are received by the reducer (the piece of software accumulating the result), rather than collecting them all at once. + +This allows for efficient reduction of a shared result variable by many distributed parallel jobs. + +## Pseudo-Commutative Operations + +Some operations, however, are not purely commutative. An example of this is multiplication. + +If we introduce a job which produces a multiply operation into the above example, the list of operations is no longer commutative (herein referred to as asymmetric, or inconsistent). + +However, the operation of multiplication is distributive in the sense that the TFAE: + +`c * (a + b)` +`(c * a) + (c * b)` + +Or, perhaps more interestingly for our case, TFAE: + +`d * (a + b + c)` +`(d * c) + (d * (a + b))` + +For example, say we receive the following operations in the following order. A `C:` prefix denotes a commutative operation, and a `P:` prefix denotes a pseudo-commutative operation: + +```txt +C: (v -> v + 1) +C: (v -> v + 2) +P: (v -> v * 2) +C: (v -> v + 3) +``` + +If the base value of v is 0, we find that the "consistent" result should be `(0 + 1 + 2 + 3) * 2 = 12`. + +```txt +(v -> v + 1) 0 => 1 +(v -> v + 2) 1 => 3 +(v -> v * 2) 3 => 6 + +(v -> v + 3) 6 => 9 (incorrect) +(v -> (v + 3) * 2) 6 => 18 (incorrect) +(v -> v + (3 * 2)) 6 => 12 (incorrect) +``` + + + +Because the commutative operation is opaque, there is no way of "pushing" the pseudo-commutative operation into the subsequent commutative operations, resulting in asymmetric results. + +To address this, we re-define our naïve commutative operations like so: + +A commutative operation is pair of the form `(T, T -> T -> T)` where the first element is the right-operand to a commutative binary operation. The second element is a function which takes the current accumulated value and the right operand and returns the new accumulated value. + +This structure removes the opacity of the right operand in the operation, allowing us to push the pseudo-commutative operation into subsequent commutative operations. + +We similarly re-define PC operations to have the form `(T, T -> T -> T)`. + +Now, the same example using the new structure: + +```txt +C: (1, l -> r -> l + r) +C: (2, l -> r -> l + r) +P: (2, l -> r -> l * r) +C: (3, l -> r -> l + r) +``` + +This results in: + +```txt +(l -> r -> l + r) 0 1 => 1 +(l -> r -> l + r) 1 2 => 3 +(l -> r -> l * r) 3 2 => 6 +(l -> r -> l + r) 6 ((l -> r -> l * r) 3 2) => 12 +``` + + + +This is the fundamental insight of pseudo-commutative operations: if they are folded into the operands of all subsequent operations applied to the accumulator, the ordering of commutative and pseudo-commutative operations is irrelevant (insofar as the correct pseudo-commutative folds are performed). + +Pseudo-commutative operations can even be chained to arrive at similarly-consistent results: + +```txt +C: (2, l -> r -> l + r) +P: (2, l -> r -> l * r) +P: (3, l -> r -> l * r) +C: (2, l -> r -> l + r) +``` + + + +The expected result here is `(0 + 2 + 2) * 2 * 3 = 24`, and is computed as: + +```txt +(l -> r -> l + r) 0 2 => 2 +(l -> r -> l * r) 2 2 => 4 +(l -> r -> l * r) 4 3 => 12 +(l -> r -> l + r) 12 ((l -> r -> l * r) ((l -> r -> l * r) 2 2) 3) => 24 +``` + + + +Another added benefit of this representation is the lack of specialization of the operations. Both commutative and pseudo-commutative operations can be represented as generic functions over two parameters, and those functions reused for each operation. + + +### Another GCDT: Sets + +We will further formulate a GCDT over sets. A value of type `(set T)` is a collection of distinct, non-ordered values of type `T`. + +A set has a characteristic commutative operation: append (or, more generally, union). Because sets have no order, the order in which unions are applied is irrelevant. + +We use the `∪` operator to represent set union. So, `A ∪ B` is the union of sets `A` and `B`. For unions, the right operand is clear. + +An operation, therefore, may be something like: + +`(B, l -> r -> l ∪ r)` + +Sets also have a clear pseudo-commutative operation: map (or set comprehension, if you prefer). This is the operation of applying a function `(T1 -> T2)` to every element in a set, resulting in a set of type `set T2`. + +We represent set comprehension with the `map` function, which is of the form: `map :: (T1 -> T2) -> set T1 -> set T2`. + +Here's an example, assuming we start with a base value `v = {}` (the empty set): + +```txt +C: ({1}, l -> r -> l ∪ R) +C: ({1, 2}, l -> r -> l ∪ R) +P: ({}, l -> _ -> map (* 2) l) +C: ({3, 4}, l -> r -> l ∪ r) +``` + + + +Interestingly, `map` is a pseudo-commutative operation, but it is unary. To fit the structure, we implement it as a binary operation, but ignore the right operand, since it is always the one specified by the PC operation itself. + +The expected result here is map `(* 2) ({1} U {1, 2} U {3, 4}) = {2, 4, 6, 8}`, and is computed as: + +```txt +(l -> r -> l ∪ r) {} {1} => {1} +(l -> r -> l ∪ r) {1} {1, 2} => {1, 2} +(l -> _ -> map (* 2) l) {1, 2} {} => {2, 4} +(l -> r -> l ∪ r) {2, 4} ((l -> _ -> map (* 2) l) {3, 4} {}) => {2, 4, 6, 8} +``` + + + +## Pseudo-Commutative Operation Precedence + +Now, let's introduce another pseudo-commutative operation over sets: filter (or set subtraction). Set subtraction removes all elements in the right operand from the left operand. For example, `{1, 2, 3} - {2} = {1, 3}`. + +This can similarly be implemented using a function of type `(T -> bool)` which removes an element from `set T` unless the function returns true. + +Based on the properties defined above, we can apply set subtraction in an example: + +```txt +C: ({1, 4, 7}, l -> r -> l ∪ r) +P: ({}, l -> _ -> filter (< 5) l) +C: ({2, 5, 8}, l -> r -> l ∪ r) +``` + + + +The expected result here is filter `(< 5) ({1, 4, 7} U {2, 5, 8}) = {5, 7, 8}`, and is computed: + +```txt +(l -> r -> l ∪ r) {} {1, 4, 7} => {1, 4, 7} +(l -> _ -> filter (< 5) l) {1, 4, 7} {} => {7} +(l -> r -> l ∪ r) {7} (filter (< 5) {2, 5, 8}) => {5, 7, 8} +``` + +Something problematic happens when we combine the two pseudo-commutative operators, however: + +```txt +C: ({1, 4, 7}, l -> r -> l ∪ r) +P: ({}, l -> _ -> filter (< 5) l) +P: ({}, l -> _ -> map (* 2) l) +C: ({2, 5, 8}, l -> r -> l ∪ r) +``` + + + +Depending on whether we filter then map or map then filter, we arrive at `{10, 14, 16}` or `{8, 10, 14, 16}`, an asymmetric result. Unlike commutative operations, pseudo-commutative operations are not necessarily commutative _with each other_. Thus, the order in which pseudo-commutative operations are applies matters a great deal. + +To resolve this inconsistency, we can require pseudo-commutative operations to be orderable such that, for a set of pseudo-commutative operations `s1`, there exists a list of these operations `s2` such that, `s2` has the form `{ s_i | s_i in s1 and forall j < i, s_i > s_j }`. + +This gives precedence to pseudo-commutative operations, allowing their order to be resolved when they are "pushed" into subsequent commutative operands, but how do we handle the case when a greater PC operation is received _after_ a lesser PC operation is processed? + +One approach to this is to specify the inverse of an operation, allowing it to be efficiently re-ordered. + +For example, say we have an initial value `v0` and a PC operation `({}, pc1, pc1')` (where `pc1'` inverts `pc1`). If a subsequent PC operation with a greater precedence is applied, `({}, pc2, pc2')`, we compute the accumulator like so: + +```txt +v = v0 +v = pc1 v {} +v = pc1 (pc2 (pc1' v {}) {}) {} +``` + + + +This approach has a few benefits: + +- First, by inverting and re-applying operations on-the-fly, we avoid the need to re-compute the accumulator all the way from the initial value. Instead, we only need to re-compute the operations which were PC and of a lower priority. + +- Second, because of this rewinding approach, you will never have to rewind a PC operation of equal or greater precedence, as the operations of lesser precedence will always be "closest" to the end of the chain. + +- Finally, commutative operations need not be re-applied during a rewind. Instead, the resultant value is treated as a pre-existing member of the set to be re-computed, since the commuted operation is preserved through the inverse of the PC operations. + +However, there are a few drawbacks: + +- Depending on the order in which the PC operations are received, the reducer may be forced to perform unoptimally-many re-computation. + +- Fundamentally, some PC operations will lack easily computable inverses. For example `map sqrt`. + +This last case is perhaps the most serious drawback to this approach, but it also has a fairly simple solution. + +Because the entire domain of a PC operation is known when the operation is applied, we can trivially define an inversion of the operation by building a map from the range -> domain and storing that after the PC is applied (we call this "auto-inversion"). + +> This will require updating the mapping as the PC is applied to subsequent commutative operations, but such updates are considered relatively minor overhead. + +This allows us to auto-invert any PC operation. The trade-off here is between time and space complexity. + +In cases where the domain operand is small, but the inverse operation complex or impossible to define, defining the inverse as a mapping is more efficient. + +However, in cases where the domain operand is large, the resultant auto-inverse may require a large amount of memory. In these cases, if the inverse operation is efficiently computable, defining an inverse function is more efficient. + + +## Applications + +The motivation for this thought exercise came from [Swarm](https://github.com/swarmlang): a modular & massively-parallel distributed programming language I've been building w/ [Ethan Grantz](https://github.com/ephing) for the past year. + +Swarm provides set-enumeration constructs which are natively parallelized and shared variables whose synchronization is handled by the runtime. + +However, the language still relies on the developer to avoid asymmetric operations. For example: + +```txt +enumeration e = [1, 2, 3, 4, 5]; +shared number acc = 0; + +enumerate e as n { + if ( n % 2 == 0 ) { + acc += n; + } else { + acc *= n; + } +} +``` + +This example is somewhat contrived, but it is easy to see that the order in which the `enumerate` body executes for each element of `e` determines the value of `acc`. + +This example could be made consistent by treating `acc` as the initial value of a GCDT of type `number`, and each execution of the body would submit one of two operations: + +```txt +-- If n % 2 == 0: +C: (n, l -> r -> l + r) + +-- Else: +P: (n, l -> r -> l * r) +``` + +Then, using the method described above, this result is always consistent, regardless of the order in which the jobs are executed. diff --git a/src/app/resources/blog-posts/Host-to-Set-Up-Virtualized-pfSense-on-VMware-ESXi-6-x.md b/src/app/resources/blog-posts/Host-to-Set-Up-Virtualized-pfSense-on-VMware-ESXi-6-x.md new file mode 100644 index 0000000..0e4ab60 --- /dev/null +++ b/src/app/resources/blog-posts/Host-to-Set-Up-Virtualized-pfSense-on-VMware-ESXi-6-x.md @@ -0,0 +1,140 @@ +--- +title: How to Set Up Virtualized pfSense on VMware ESXi 6.x +slug: Host-to-Set-Up-Virtualized-pfSense-on-VMware-ESXi-6-x +date: 2018-07-11 00:00:00 +tags: + - tutorial + - networking + - virtualization +--- + +For the longest time, my router/firewall solution has been a Raspberry Pi 3 with a USB network dongle running dnsmasq. While this worked well enough, it didn’t offer much by way of advanced configuration (at least not easily), and the lack of a GUI was often a pain. Plus, I wanted my Raspberry Pi back. So, in this saga, we’ll be taking a look at how to create a virtualized firewall by running pfSense on VMware ESXi. + +## What We’ll Be Building + +I like visual diagrams, so to kind of lay out what we’ll be doing, here’s a crudely MS Paint-ed diagram of how the virtual network will function: + +![my 3rd grade computer teacher would be proud](https://cdn-images-1.medium.com/max/2000/1*ZdantUMbuobtNwjQc0yO2w.png)*my 3rd grade computer teacher would be proud* + +## Step 1: Requirements + +So, for this project, you need a couple things. First, you need a server running VMware ESXi 6.x. Importantly, that server should have at least 2 network ports. That will enable us to have a WAN and a LAN port. For this, I’ll be using my Dell PowerEdge R710, which has 4x1GbE ports on the back, and it runs VMware ESXi 6.5.0. +> Note: With some finagling, the same result can be achieved with a single NIC using VLANs, as long as your switches/infrastructure support it. This, however, is beyond the scope of this tutorial. + +Obviously, you will also need a WAN connection, as well as a switch or device to connect to the LAN port. +> Learn from my mistakes: Don’t forget to download pfSense *before* you start reconfiguring your internet connection… + +## Step 2: Configuring ESXi & Management Connection + +To achieve our virtual firewall, we’re going to create 2 virtual port-groups in ESXi: one for the WAN connection, and one for the LAN connection and add a physical port to each of those groups. + +### Create The Virtual Switch(es) + +We need to add the virtual switch for our LAN connection, then assign it to a physical port. Do this by logging into the ESXi interface and accessing Networking > Virtual Switches > Add standard virtual switch. + +![Additional interfaces for the firewall should be added here.](https://cdn-images-1.medium.com/max/2000/1*UVTmiV6QveTfQOTgufqeaw.png)*Additional interfaces for the firewall should be added here.* + +Name the switch something meaningful and assign it a physical port. + +For the WAN switch, we’re going to use the built-in “VM Network” switch. If you want any additional network ports for the firewall, add them now. + +![](https://cdn-images-1.medium.com/max/2000/1*NYiP9tDZkQxx4t7dbrU_bQ.png) + +Now, we need to create “port groups” for the new switches. Open the Port Groups tab and create port groups for each of the new switches you added. + +### The Management Connection + +During most of this process, your computer will not have internet access, or DHCP service. This means that, in order to maintain access to the ESXi interface, we need to set static IP addresses on both the ESXi management interface and the computer we’re working from. + +![](https://cdn-images-1.medium.com/max/2000/1*27d6Dhedv0Kd0nHYyPcUoQ.png) + +From the networking tab, access VMkernel NICs > vmk0 > Edit Settings > IPv4 settings + +Set a static IP address that is within the address space of the new network. (i.e. if the new network is 10.20.0.1– 10.20.0.255, I picked 10.20.0.5) + +Save and Apply the settings. Then, open your computer’s network settings and set its static IP to something in the same address space, and set the IP of the ESXi host as the gateway. **This will disrupt internet/intranet communications, but it will ensure continual access to the ESXi interface.** + +## Step 3: Installing pfSense +> In point of fact, this can really be done with any firewall/router software you want to use (IPFire/OPNsense/routerOS/etc), I just chose pfSense. + +Create a new virtual machine, and, for pfSense, select OS family: Other and set the OS to “FreeBSD (64-bit).” + +Tab through the wizard until you land on the VM’s configuration page. Here we need to modify a few things. + +![](https://cdn-images-1.medium.com/max/2000/1*aq1LDeZOXPhENA3VR_smFw.png) + +Add an additional Network adapter using the button at the top, and then select the LAN port-group we created earlier. You should have a network adapter with a WAN port-group by default. + +Then, in the CD/DVD drive, select the pfSense installer ISO from the datastore. Now you can click create and start the VM. + +### pfSense Install + +The basic installation of the pfSense operating system is nearly identical to installing it on bare-metal. Just click through the installer until the system reboots and you land on the set-up page. + +![the pfSense setup page](https://cdn-images-1.medium.com/max/3542/1*EEke_KvO9Ostt2e5WKY6Hw.png)*the pfSense setup page* + +To make things easier on ourselves, we’re going to pre-configure a few things from here before opening the web interface. First, we need to set up the WAN interface. Even though my WAN doesn’t have DHCP, pfSense was able to automatically select which interfaces are supposed to be which. + +Select option 2 to Set interface(s) IP address. + +![configuring the WAN interface](https://cdn-images-1.medium.com/max/3558/1*NMbz7gvYia6qyekxTrOOkw.png)*configuring the WAN interface* + +This will launch an interactive wizard that will help you configure an interface. Select the WAN interface to configure, then just run through the wizard. + +For me, this involved setting the static IP address of the port and pointing it toward my gateway. + +![configuring the LAN interface](https://cdn-images-1.medium.com/max/3578/1*Rw7ftBs63_s4GRJHtoBl8w.png)*configuring the LAN interface* + +Now, we repeat the process for the LAN interface. Here you’ll be prompted to set the static IP again, as well as selecting a DHCP range for pfSense’s LAN port. Make sure this is the same address space as you planned earlier (for me, 10.20.0.X). + +Select y to enable the DHCP server, and press enter to save. + +## Step 4: Moving to the New Network + +We now officially have a virtual firewall running, but before we can start using the new network, there are a few configuration things to modify. + +### The Management Network (reprise) + +In order to access our ESXi host from the new network, we need to move the vmk0 management interface over to the LAN switch we created earlier. However, we can’t just add it to the existing LAN port group (ESXi hates that, for some reason), so we’ll create a new port group. Access Networking > Port Groups > New Port Group. + +![](https://cdn-images-1.medium.com/max/2000/1*0gZhnlphHx_L8OSNVxFulQ.png) + +Create a new LAN Management Network port group on the same LAN switch we created earlier. + +This will make sure it bridges with the LAN port on the new pfSense VM. + +![](https://cdn-images-1.medium.com/max/2000/1*dUSP-LS8LoNZAREWP9xvnA.png) + +Now, go to Networking > VMkernel NICs > Edit Settings and change the port group to the new LAN Management Network port group we just created. + +Note that after you save the settings, you’ll no longer be able to access the ESXi interface. This is normal. + +### Move It Over! + +Now, we can finally start using our new network! Move the connection to the switch (or the rest of your physical network) to the new port on the server that we added to the LAN switch we created at the beginning. This will connect your network to the pfSense LAN interface. + +Finally, reset your computer’s IP address back to DHCP so it will pick up an address and DNS from pfSense. + +![](https://cdn-images-1.medium.com/max/2000/1*YxSrKCUuwuhFIhpnlmGnnw.png) + +Open up your web browser of choice and navigate to the IP address you assigned to the pfSense LAN interface in Step 3, and **voila!** You should be presented with the pfSense web interface. + +Log in using the default credentials: + + admin + pfsense + +![](https://cdn-images-1.medium.com/max/2000/1*DO1mnnyZOxTX8LlMI5W3bA.png) + +Now it’s just a matter of running through the standard pfSense setup wizard and you’re off to the races! + +pfSense will behave exactly like it would if it were installed on a physical box. This means that everything from DNS to VLANs to captive portal will behave normally. + +Plus, you should still be able to access the ESXi host. :) + +## Conclusion + +Virtualized networking is a great way to experiment with different firewall software without having your network down for long periods of time. It also lends a lot of flexibility when it comes to customizing network segments. + +I hope this guide has been helpful, and if you have any questions, comments, or if you run into any issues, leave a comment down below, and I’ll do my best to help! + diff --git a/src/app/resources/blog-posts/How-to-Code-From-Home-Like-a-Boss.md b/src/app/resources/blog-posts/How-to-Code-From-Home-Like-a-Boss.md new file mode 100644 index 0000000..491ed33 --- /dev/null +++ b/src/app/resources/blog-posts/How-to-Code-From-Home-Like-a-Boss.md @@ -0,0 +1,164 @@ +--- +title: How to Code From Home Like a Boss +date: 2020-07-23 00:00:00 +slug: How-to-Code-From-Home-Like-a-Boss +tags: + - tutorial + - webdev + - devops +--- + +## Tips, tricks, and downright hacks to make working as a remote developer just a little nicer + +Given everything that's happening right now (c. 2020-07-23), many software developers have been fortunate to be able to work from home. However, there are some challenges I encountered with my office's particular brand of development workflow. Over the last couple months, I've fleshed out a pretty good stack of tools for working around them. In this writeup, I want to go over some of them. + +### "Remote" vs. Remote + +There are really two different paradigms for coding remotely. The first, and most obvious, is to simply clone the code repositories to your local machine at home and work from there. + +However, part of the reason the transition to a remote workflow was so challenging for me, anyway, was because my office uses a centralized server for development. Our applications have a complex architecture, job queues, and a large database containing a full-restore of test data from production. We host our development workspaces on a central few servers, and NFS/SMB mount those directories to our local machines. Then, we edit files in those mounts in our workstations. + +This is much harder to do remotely, because we can't simply clone the code repos and be up and running. We need all the supporting development tools, software dependencies, NGINX/PHP configuration, and, lest we forget, the database. + +This meant that, in the early days, my "remote" development setup looked like this: + + + + + + + +That, my friends, is Sublime Text 3 running through a compressed Chrome Remote Desktop session. Yep. + +As you can imagine, that was a less than desirable experience. + +### Trick 0: VPN + +This is basically requisite for most corporate networks these days, but for me to have any hope at all of getting a good experience, I needed to ditch the remote relays like Chrome Remote Desktop/TeamViewer. All of the remote tools I'm about to talk about rely on good-ole-fashioned SSH and remote network access. + +So, in order to do that securely, you need VPN access to the office. This is something I helped stand-up in the weeks after this all started, so we're good to go there. If your shop doesn't have an existing solution, I've had good experience with [Pritunl](https://pritunl.com/). Pritunl is a VPN-server-manager that provides a web UI for managing users and VPN servers. It uses [OpenVPN](https://openvpn.net/) under the hood, so it's compatible with basically everything. + +This project has the side requirement that we want to avoid joining our main development server to the VPN directly for security/control reasons, so our tools will need to work around that. However, I do have access to the Linux workstation at my desk. + +### Trick 1: the IDE + +So, I'm normally a JetBrains guy. Given the choice, I use WebStorm/PHPStorm for my projects. However, for work lately I've been using Visual Studio Code. Why? One reason: remote workspaces. + +VS Code is built using web technologies, which means that it's _really_ good at running over a network connection. In fact, several [online IDEs](https://www.eclipse.org/che/) are build using VS Code for this reason. This feature also enabled another tool to exist: [sshcode](https://github.com/cdr/sshcode). sshcode is a wonderful little CLI tool that automates the process of SSH-ing into a remote computer and installing/starting VS Code's web server. + +Then, it tunnels the VS Code server port over SSH and launches Chromium in app-mode on your local machine. That entire process results in what looks like native VS Code running on my local machine: + + + + + + + +The benefits of this over remote desktop are _many_, but here are a few: + +- Because the front-end of the editor is running in Chromium on your local machine, there is zero extra latency when actually coding in the files. The only things that are slightly slower are file-operations like searching/saving/opening files. +- Extensions even work! If you use the `--b` flag on the sshcode command, it will 2-way sync the extensions from your local machine, so any extensions you install will be saved and restored. +- You can have multiple windows of this open across multiple displays, unlike remote desktop which is usually limited to a single display. +- Because the VS Code server is actually running on my workstation at the office, I can open the NFS shares that I normally work on, without the extra overhead of having to mount the NFS shares to my local machine over the VPN. + +Probably the biggest quality-of-life improvement for me, though, was the latency editing files. As someone who relies on quick keyboard shortcuts and tricks to navigate/edit code quickly, editing over remote desktop was a _nightmare_. It may not sound like much, but the extra 100-200ms of latency adds up quick. + +### Trick 2: SSH + +Okay, okay, this isn't particularly ground-breaking, but I felt I should include it for the sake of completeness. When I'm working, I use [Guake](https://github.com/Guake/guake) as an overhead shell, and I have no fewer than 6 tabs open SSH-ed into my remote machine. This means that, at any time, if I need to jump into the shell for something, I don't have to wait for SSH to start up. This goes a long way to making it more immersive. + +Plus, having a lot of shells at the ready allows me to do long-running commands like sshcode, or the Angular development server, or [HTOP](https://hisham.hm/htop/), &c. without having to worry about running out of space. + +And, because I'm using VS Code to edit the files that exist on my remote development workspace at the office, all the CLI tool's we have in-house, or that I've added personally still work. + +### Trick 3: the Database + +Because our applications are complex, we have rather large databases with lots of data that we work with and modify throughout the development workflow. So, having a database browser that can keep up with it is a must. + +While, for simpler projects, just using MySQL/MariaDB/PostgreSQL from the CLI when you need to check things in the table is probably fine, when you get to the realm of hundreds of tables and millions of records, this becomes impractical. + +On my office machine I use [DBeaver](https://dbeaver.io/) for this. DBeaver is an _awesome_ cross-platform database tool, and I've gotten pretty quick navigating its interface. + +I had been using DBeaver over remote desktop, but again the latency was driving me nuts. Luckily, DBeaver (and most database browsers) have a feature that allows you to tunnel the database connection through SSH: + + + + + + + +This means that I can configure the connection as though I'm sitting at my office PC, then configure DBeaver to tunnel the connection using the "Agent" authentication method, and it will connect as if I'm on my work PC. + +This is awesome because it means that I can access and work with the databases using the software I'm familiar with, but running on my local machine. + +This has many of the same benefits as VS Code server. The interface is dramatically less latent, however there is a bit of a longer delay when connecting to/fetching data from the databases, because it has to tunnel through SSH. However, I've found the slight loss in loading times to be well worth the improvements in UI latency. + +> Side note: +> +> For personal projects, and because I'm a JetBrains shill, I prefer DataGrip as my DB browser, which also supports similar SSH tunneling, and will even store the schema introspection information locally to make searching through and jumping between databases/tables faster. + +### Trick 4: Web Development + +In case it wasn't clear, I work on a lot of web applications. This means that they need to be tested through a web browser. Because our development is hosted on central servers in the office, the way we do this is to navigate to our user-specific domain on the server, and NGINX connects us with our development workspace. + +Something like `http://my-username.my-project.some-server/`. In the office, this works really well, because it removes the load of running the code and databases from our local workstations to the much more powerful server. However, because we wanted to avoid joining the main development server to the VPN for security/control reasons, this means that I can't directly navigate to my project URL on the server from my local machine. + +So, for a long time I was (you guessed it!) doing it through remote desktop. Again, again, latency was terrible, and having to cram the browser's devtools onto the same screen as everything else made debugging difficult. (I usually spread them across 2 screens, but remote desktop doesn't support that.) + +After a few weeks of this, I got fed up enough that I spent a couple hours of searching for a solution. I finally landed on something pretty nice: Squid. + +For background, I usually use Firefox Developer Edition at work. This is nice because 1) I'm a Firefox person anyway, and 2) it lets me keep my work profile separate from my personal profile in normal Firefox. + +Firefox has an interesting feature that I haven't been able to replicate in Chromium that proved useful: browser-level proxy support. See, Chromium will use a proxy, but only if it's configured at the system level. However, Firefox will happily let you configure a proxy in its settings, and it will use it to browse the web. This is important, because I don't want to run my entire local machine through a proxy. + +So, I set up a very basic [Squid](http://www.squid-cache.org/) proxy on my office workstation. This is, perhaps, the oldest trick of the bunch. If you've never heard of Squid, it's an open-source web proxy that's been around forever whose main goal is caching resources to make browsing more efficient. However, it has the powerful ability to act as a general HTTP/S proxy. + +After setting this up on my work machine, I was able to configure Firefox Developer Edition on my _local_ machine to use the Squid proxy through the VPN. This essentially allows me to browse the web as though I were using my office workstation, but locally: + + + + + + + +Helpfully, Firefox lets you whitelist domains that don't need to run through the proxy. So, things like DuckDuckGo, Google, and DevDocs can use my local Internet connection, making them a bit snappier. + +Setting up the proxy allows me to navigate to my development URL at work, and Firefox will proxy all the requests through my work PC, so the development server doesn't need to be on the VPN at all, and I can still use my devtools natively. + +HTTP/S proxies are very common in large corporate environments that need to provide remote users with access to internal services, like Intranets. This is a much smaller scale version of that. In fact, this setup allows me to access other internal tools like our Git repositories, [Hound](https://github.com/hound-search/hound) instance, and deployment tools, which is a nice bonus. + +### Trick 5: Remote Desktop + +I know, I know. I've been railing against Remote Desktop and the latency involved for like 1600 works now. While the above tools mean that all the stuff I do on a regular basis can be done directly from my local machine, there are still one-off things that I need to remote in to my workstation to do. + +For example, our time clock in the office only works if you access it from w/in the local network. So, to clock in/out, I need to remote into my workstation. Tasks like this aren't so frequent that they would actually benefit from a more over-engineered solution. + +However, tools like Chrome Remote Desktop and TeamViewer have issues. For one, they open your corporate network up to the control of a 3rd party. Even if the company like Google or TeamViewer has a pretty good security track record, it's still a third party service that you're relying on to exist for the forseeable future. + +The other issue is that tools like TeamViewer can be [exorbitantly expensive](https://www.teamviewer.com/en/buy-now/). Like $50 a seat, expensive. For a large company, this might be worth it. But, for a smaller shop, the extra cost per developer per month is non-trivial. + +But, there are a _ton_ of really good remote desktop tools for _LANs_, and we just so happen to have a VPN set up that gives us virtual network access to our machine. So, there are two possible solutions here: + +#### Windows + +If you use Windows, or are willing to slum it, Windows Remote Desktop is a pretty good tool, and it will work over the VPN. This will give you secure access to your remote machine. + +#### Linux + +VNC! I use [TightVNC Server](https://tightvnc.com/). VNC is a great tool, because the desktop session runs on a different display screen than the physical session. So, you don't have to worry about running your physical monitors at work. I've set up a profile in [Remmina](https://remmina.org/) on my local machine so any time I need to access my work PC, I can just click an icon in my GNOME tray: + + + + + + + +### Conclusion + +I hope someone else might find these tools useful in their transition. The more complex parts, like the VPN and HTTP/S proxy, might seem difficult to set up, but with some patience, you can get them up and running. The nice thing about the VPN/proxy setup is it can be shared by several developers. + +In fact, if you have multiple people working remotely, you can (and should) set up the VPN and proxy on a shared server, so that it only has to be set up once. Then, everyone can use those tools. + +For any job, the transition to remote work can be difficult. Particularly as developers, we sometimes rely on network resources and specialized software to make our workflows possible. However, through a process of trial and error, these are the tools I use to make my remote work much nicer. + +In fact, between the HTTP/S proxy, remote VS Code, DBeaver's SSH tunnel, and plenty of SSH tabs, I rarely have to remote into my work machine directly. While there are still some drawbacks, the experience is not _much_ different than if I were sitting at my office machine developing directly, and that's pretty great. diff --git a/src/app/resources/blog-posts/Importing-OpenVPN-Profile-on-Fedora-36.md b/src/app/resources/blog-posts/Importing-OpenVPN-Profile-on-Fedora-36.md new file mode 100644 index 0000000..6416f4a --- /dev/null +++ b/src/app/resources/blog-posts/Importing-OpenVPN-Profile-on-Fedora-36.md @@ -0,0 +1,68 @@ +--- +title: Importing an OpenVPN Profile on Fedora 36 +slug: Importing-OpenVPN-Profile-on-Fedora-36 +date: 2022-07-12 00:00:00 +tags: +- linux +- networking +--- + +To access my internal network & self-hosted services while I'm out of the house, I connect to an OpenVPN server running on my firewall. + +I recently upgraded to Fedora 36 and discovered (the hard way) that the VPN was _broken_ and I couldn't re-import it. Turns out there are **multiple** bugs in the process that prevent the GUI from "just working" the way it's supposed to. + +So, I read through the various bug reports so you don't have to. Here's how to import your OpenVPN connection file into Fedora 36. + +My god was this ever a massive pain in the ass. + +This assumes you have a `.ovpn` file, a `.key` file and a `.p12` file with your certificates. My VPN is using a "Password with Certificates" login system. + +On Fedora 36+ we need to re-enable legacy crypto providers in OpenSSL. To do this, modify `/etc/ssl/openssl.cnf` and uncomment the lines: + +```txt +[openssl_init] +providers = provider_sect +ssl_conf = ssl_module + +[provider_sect] +default = default_sect +legacy = legacy_sect + +[default_sect] +activate = 1 + +[legacy_sect] +activate = 1 +``` + +Next, because of a bug with OpenVPN, we need to extract the CA certificate from our `.p12` into a separate file, since OpenVPN doesn't (currently) support reading it: + +```shell +openssl pkcs12 -in my_certs.p12 -cacerts -nokeys -out my_ca.crt +``` + +Then, edit your `.ovpn` file to add the line: + +```txt +ca my_ca.crt +``` + +Because of a bug in the NetworkManager GUI, we have to import the `.ovpn` configuration by hand. + +```shell +sudo nmcli connection import type openvpn file my_config.ovpn +``` + +In the VPN GUI, edit the VPN and set your username and (optionally) the passwords. You may encounter a bug where the "Add" button is greyed out. This is because it wants you to enter _both_ the "Password" and "User key password" fields, but will not let you edit the "User key password" field. Currently, the only workaround is to click the little icon on the "User key password" field and click "Ask every time." + +Yes, this is really annoying. + +Oh, and on SELinux systems, you also need to update the security context of the certificate files to allow NetworkManager to access them. Most systems ship with a `home_cert_t` type that does the trick: + +``` +chcon -t home_cert_t vpn_millslan_net_glmdev.p12 +chcon -t home_cert_t vpn_millslan_net_glmdev-tls.key +chcon -t home_cert_t ca.crt +``` + +Now, at long last, the VPN should activate. diff --git a/src/app/resources/blog-posts/Installing-Kali-Linux-from-USB.md b/src/app/resources/blog-posts/Installing-Kali-Linux-from-USB.md new file mode 100644 index 0000000..e7e52e5 --- /dev/null +++ b/src/app/resources/blog-posts/Installing-Kali-Linux-from-USB.md @@ -0,0 +1,171 @@ +--- +title: Installing Kali Linux from USB +slug: Installing-Kali-Linux-from-USB +date: 2015-10-24 00:00:00 +tags: + - kali + - linux + - tutorial +--- + +Linux. When most people think about Linux, they envision hackers and scrolling lines of code; however, today there are many modern Linux distributions (brands, if you will) that offer modern user interfaces and compatible software. These distributions are designed for the end-user; modern, daily driver operating systems. Kali Linux is not among these. + +To quote the Kali Documentation, “**Kali Linux** is the new generation of the industry-leading BackTrack **Linux** penetration testing and security auditing **Linux** distribution. **Kali Linux** is a complete re-build of BackTrack from the ground up, adhering completely to Debian development standards.” + +Basically, Kali is the ultimate OS for ethical hackers. It contains tools for secure penetration testing. Basically, it is used to test how secure “secure” systems really are. It is a good way to get into the more advanced functions of computers and networks. If this piques your interest, then stick around. In this tutorial I will be documenting how to write the installer to a USB drive and install Kali Linux to the hard drive or a partition (more on that later). + +Side Note: For those of you using VirtualBox or similar, set the Type to Linux and the Version to Oracle (either 64 or 32 bit based on your operating system). + +### Materials Needed: + +* USB Flash Drive (4gb or greater) + +* An Internet Connection + +* Windows or Linux Computer + +* A Bit of Patience + +### Step 1: Downloading Kali + +To install Kali, we will boot from an install disc turned USB drive. First, we need the installer ISO. Download this from: +[**Kali Linux Downloads** +*Download Kali Linux Images We generate fresh Kali Linux image files every few months, which we make available for…*www.kali.org](https://www.kali.org/downloads/) + +![](https://cdn-images-1.medium.com/max/2000/1*r1NvOUgdtBoqSPJZ-pfKoQ.png) + +Be sure to select 64/32 bit based on your system. + +### Step 2a: Formatting the USB Drive (Windows) + +![](https://cdn-images-1.medium.com/max/2000/1*doMxGgfL7tXUSn5EiZZgyA.png) + +To format the USB drive on a Windows computer, insert the drive and remove any files you want to keep. Right click on the drive and click format. For the file system, select FAT32. + +Quick format is fine, unless the drive was in a different format than FAT or NTFS. Then deselect this option. + +### Step 2b: Formatting the USB Drive (Linux) + +For this, we will be using gparted. If you don’t have it, it is available in the default repos on most distributions. Simply issue the installation command. + +Ubuntu & Derivatives: + +**sudo apt-get install gparted** + +Fedora & Derivatives: + +**sudo yum install gparted** + +![](https://cdn-images-1.medium.com/max/2000/1*NPaBz-pJUH7tGtvLZ-K9vQ.png) + +Plug in your drive and open gparted. In the top right corner, and select the /dev/sdb object. Right click the main partition and click unmount. + +Under the device menu, select ‘Create Partition Table’ and approve it. You will then see that the drive has been converted to unallocated space. Right click the space, select new. + +![](https://cdn-images-1.medium.com/max/2000/1*_yMPzjaarboBLF_VbR536w.png) + +Change the file system type to FAT16. THIS IS IMPORTANT. + +Pick a label and click add. Press Ctrl+Enter to apply the operation. + +### Step 3: Writing the Installer to the USB + +To write the Installation ISO to the USB drive, we will use a program called unetbootin. + +Windows — Download from here: +[**UNetbootin** +*UNetbootin allows you to create bootable Live USB drives for Ubuntu and other Linux distributions without burning a CD…*unetbootin.github.io](http://unetbootin.github.io/) + +Linux — Available in most repositories. + +Ubuntu & co: + +**sudo apt-get install unetbootin** + +Fedora & co: + +**sudo yum install unetbootin** + +![](https://cdn-images-1.medium.com/max/2000/1*VkKk3vWmumwceLn09_8h-g.png) + +Open the program and select your newly formatted USB drive, as well as the downloaded ISO. + +Click OK to begin the process. When it finishes, it will ask you to reboot your computer. + +Now the fun starts. + +### Step 5: Boot + +![](https://cdn-images-1.medium.com/max/2000/1*TNzJpmKXlrkYvDW2hB3i0Q.png) + +Plug the USB installer into the computer you are installing Kali on. When booting the computer, repeatedly press the trigger key to enter the boot option menu (usually F12), and select the USB drive. + +You will then see the Unetbootin bootloader menu. Select the Live Boot option for Kali Linux. + +### Step 6: Partitioning + +If you plan to dual-boot Kali with another OS, you will need to partition the drive to create space for both operating systems. If you are installing Kali by itself, skip this section. On the GNOME3 toolbar, click Show All Applications, and launch gparted. + +![](https://cdn-images-1.medium.com/max/2000/1*MipLyh05QedGlK_NHnwg9A.png) + +You should get a window looking (more or less) like this (left). + +Right click on the existing partition, and click Resize/Move. + +**NOTE: If you are dual booting Windows with Kali, it is important that you defragment all disks prior to re-sizing the partition, or some files may be lost.** + +![](https://cdn-images-1.medium.com/max/2000/1*vNnUImEiM5FbldN09BfJYw.png) + +Adjust the partition size to create space for Kali. Kali needs about 10GB for a minimal install with some file storage. Obviously the sizes in this picture (left) are not accurate. Hit resize/move to apply. + +![](https://cdn-images-1.medium.com/max/2000/1*I1dgbXh3_BS1xR5qCr4CvQ.png) + +Right click on the new unallocated space, click NEW and create a partition, making sure the Type is ext4. + +Next, press Ctrl+Enter to apply the changes. + +### Step 7: Install + +Next, click show applications in the GNOME3 toolbar, and search for install. Launch the application Install Kali. This will launch a graphical wizard installer. + +Note: If your installer looks like this (left), and you cannot see all of it, do not fret. Simply press the Windows button to open the GNOME menu, then drag the installer from the current workspace to a new one. + +**NOTE: If the Kali installer locks itself due to inactivity, the password is toor (root backwards).** + +![](https://cdn-images-1.medium.com/max/2058/1*0wTL_xoMB3bGs2gF_opCeA.png) + +Basically, point and click your way through Location, Language, and Keyboard, and after a bit of loading, you will see a screen asking you to supply a domain name. + +This is the domain name the system will use by default (akin to localhost). If you are confused, or don’t have one, just leave this blank. + +Set a strong root password, and breeze through the time zone, and it is time to configure the disks. + +### Step 4: Partitioning + +![](https://cdn-images-1.medium.com/max/2052/1*w2WFJu8XN7ojG1tqOozIGQ.png) + +At this point you will see a asking you to configure disks. Click manual and then continue and you will see this screen (left). + +The middle section is a list of all recognized storage drives. If you have already configured your partition, skip this next part. + +Click on the partition you created in step 6 and click continue. + +If you reach a screen asking you to create a new partition table, click yes if you are using Kali by itself, no if you are dual-booting then click continue. + +![](https://cdn-images-1.medium.com/max/2048/1*feeF83pol0yPKpHOOvFH_g.png) + +On the next screen, you will see a list of all devices and partitions, including your created partition, or FREE SPACE if you are installing on a single OS computer. Click on the desired partition and click continue. + +If you are asked to create a new partition, simply point and click through the wizard until you see this next screen: + +![](https://cdn-images-1.medium.com/max/2060/1*Nom0pG4NjAWYxEmqwkMZ5w.png) + +On this screen, make sure it is set to Ext4 journaling file system. Set the mount point to / and label it something. Click “Done setting up the partition” and Continue to move on to the next step. + +This will take you to the previous screen, with your new partition. Verify it is correct, then select “Finish partitioning…” and click Continue. + +You will be prompted with a screen requesting you to make a swap partition. Click NO and continue. On the next screen, it will confirm that the changes be written to the disk. Click YES and Continue. Shortly after this, it will install the system to the HDD. Simply point and click through the remainder of the wizard, and when it is installed, simply reboot. Take care to remove the USB drive first. + +Note — After install, if Kali doesn’t appear in the GRUB bootloader for your current system, open your current Linux system and issue the following command: + +**sudo update-grub** diff --git a/src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_1.jpeg b/src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1387e6926ceee07e777f84320908cfa9010ab03d GIT binary patch literal 2120561 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 Vd?)rjYgW(a%a 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⊥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%0A`JN*Wr zH89=(d#&PF2piSm?#Y|O@2=hOs+xi0)Y_M9hmX^lcn*H(6@x7Scp-Mqh+L5KcGGhv zC5}yx8A+@*T-xm9d>gvHn;f^d=We4n=?=IiU&0e}c6iQv7YphUe0ulI;9Be#a?o>$ z>?MtZuwNSSy$-u1oN@fe*bkpNLq`YiRGo=2LFI>hl%O!1g_i~RtN-wF4c&Vltc%90 z!4Ci(ZDArAwwGJ;m7QG5M;R5E;Ovgo77JD|a-nVUW!V;AkU}9Dugy){TYy@S1&elT zpmi(RDKw0%sL*T8ISRuXGc#xwb3?s&O@H}E{F=dpqE!AO=k+lueO}p@>`#^X|G4=S z*@=dk30L1e5$x9moHy_<8(Rz>Xjjkk7 zn+5F;FaHJ$QsYIfPr2d;%!|s%A&mY$pWvTL?w%Gi8d;@;W$&J=-?ngunhOd>Fa_tZ z9KD>!PFw}`$h^bJ+clg9e{1Uf_@_s3j(Wu#IYqUkwFBwqDK{;`O)40kQ1_>K)nn0q zqK0(-I`{_wWO;7Dp|fr4|F|hfGfzq4Otv;Nc3joKBM4-!bor<`-ss`HJGYu&AJC zX-a$TW_9QvXEiA>HrCsLK*3?nfLb@N;n}7(9!F;*MwjE{|ZcHh^6J6xm9z!v@zp}SWg|A0rW?|pH4D$sEwpicQoEY!Iue{oY+ihk7 zma(CQ-<8=h9iJXyuy1wmlD>J&pNnYrOLGiT5-~JX-hz^76QITt~BY zvobU{Dm`%XU##})s$jwZM_8`R)r=HjuL7>H#PO2PU4rFW@#>Q|(Jr<+y(XbM37+EL!*CUBUMx~9wwsTP2m75*@3cLkQV!~?0y>$LiJ4Kb(Yksfk*pl^u(}u` z_Tm3Q_+Mh2rXT3xwPocrj^RvsjMQqYPT*FP z6XQRes-k&BqklmCOHk65TWVsTWH&yYz<&qD0A^=R^zz!O!Sr5RRgfvB%Kb-pV!AHA ze>~GSBl>BVyGZ`-Y=|%uBdG?7kU!{za6cb@21~7Qq=g4ppyueBAXV5PH>^M}v{=#2 zcs|A4c!lRYP~RS9Yu%2|V;dJIOf2zOiQA@aJDr|Me(lb-3fcNy+Gei&7HXGM;JfLd zmgotN7LR_@RzMP*-?NlN3j}7a4k#YF1+Ab9n9sTeZLD(ta>~Fv3p{gw~AnZI&&b&1k03TAbis#g)(B3P(r zcc{0w?R|02lHnhXeObku$YxgcCWjt9cnPaZ;TLObhVQ;X|d|3&Se-N@}$w z|4yojoTg)afl)*vF>I&q6$^Z(5l`Qx>otEdb{A&V)EVQHkH&u1)_F6AU^nz@Ex1xw zjh(mDv^4e<+b}hTSPp z2pjL`)}-s%$?x!eb3#Nev2AawgPJ6|4c-x{*sAnyxy42v>(!_xun?7`M1{-sCoK}S(IEe6C*BlI56Mm zFiFI(+RHJHB#^1Sool>@_XWeecEM646o12DW;p#c{uUR5QrE&!A(WQtdWj!<{~sJ$ zXGZ&6`}sEm1?y^L2X|A(C!XgqXwl7hCzx4q*}1P%z$Lx0klxQ;(tp}IQ4X%MlJgk* zByPu#gS2yAhDyFn2Pt4#VcXPf|M*L1d8ZSs!R@QO!<6F`wdy!y0;~davm1--RmQc+ zV`DoX-)t)%<|ES^nv~wb?ov*1@Wt_`7bY6+Jo9ud~m2WE{%*NMfsrQ$Q zHJm>7%5=9JUWLt9ZHE-{Uo4jo|2cH{R!+KmQg-kE3brkSatS_h0;r|k&#B~{NAT73 zT<}I6nUyl>TO7b+ld}EBu|||yXgiTUw}}C3_zynIWI9Z6ChVL6$siB8SbFRx)US0g zjTaW>*r>g75h?EyM_m^&9?ilo!iLpUmsIA696Mb3QAc?Q=DOzdKBOh6YXYn3_+r8H zaN=6C&lsjQ04tB;%f*D9lo7@!J9ms{tfWH#ZV%2Tf4tGzT-LK{(5{He(v0V5RMC#tdojImhJIVdD&*$La!1&ev+238r64}x5Y!VRaUCvqMW36DY$nRs@g{)q z^}k#xUcW2r_UB9#fdLYj@wNL_yG>m=y&{Esy9o~n&k79Yl^7d@nEb5x$t!4e&or*N zb#K-(abcgJHs>-PFWVmwq>7D->CN3*-W@zwQdb_4)N@v&m6>98u(}23DOb%lZTAgr zE}`F9f|n8>n;X?<%?DMjKknz{MpF`9y&oeXL_WLt1562jCGdf)(wpGaf8XXDc5CrL z<|x0dO949ETuyjW_5_7o{SP7!Y_7kB4@D6U;2&Q+|AiCvGDi=MPy!p)ZwX}AQp^#2 zBWX4|_62z4M<3C#9+(&2d4PvJ>=G4TyF@P=Vb^3ut7D|Xrgpii2?&XfMhvj({b_Y$ss*tYVt9B^8a-u z7<1hLtB~v$`+S7lBaX-SgHBrZEMWydL7=W45~{ecDYc5fu$I3iSkd!{iUWA%*M7Nb z3Tj;QGM^=<+48u!E1_^@*-H#!PJI?_xdz@30P`jyd%vzUF3$w1op@*+?ksC^c}gN{ zwExKH_PF9a*6(hU!2qTD$epx@l8bPdK;0Hq>37ojan(Ry6|ffp2do9`cB(c$?HFqS zpNXo0xbZ{y9TqbK$FJXzY_Z(yOds!$#J!Rlk8;@L-wdx`dYQ(w=y9b^Y1jLc3G!;_fN!*8?-EnBkRuM z|0`&Eb9|;MnY|H-x3Np!U0a7)ME?hI{f2ee2P7-4Y>PZ^OnUP-Y%`WFz5zgBFH=k| z8DN3X>J2g5QQ|fm!fiRPp>D_xDhi>wTMzKnl=~|oDmSS5#IIFAt?Ow>p`}~q<7bf` z`>>m_Oq?RQKlf#J7Y&!RBz-062FON+<3(S&*wSf(bYB78-yQr)6D-iEC`H^7W&u(j zFH;`JKi8V|`vF4M0K{`HM5;K29WQGZhah)84vZ80LF_bJDP37cTc4xR&+j29`rc zeJT3G1L-f+3|ecX4R2gB@4z@cv}MA>Aw$PGtG!IG3<-}<_$n1A3=ZHfZ~Z?%h?5!o zIpCdglzn=-bO0b+Ix5vImf3jqMfQH-Daj#8)RH5=KWF|2Y2Vw``Au~1AJG`xD2Kfi zqv?#uX2Vwj1?*IQ+beqY5WC}#ywd1uL~sGl{IdA~8G)jDT=srgDtcd`uC$k-8u+a?p|BzjV}#AkT?w?p`CW6fwgSPwy*hPc0fGN-5WNn*3{8zkARq08TcWio)? z%%J)afp>C1{DRbjtc{0#g_dyiANeWSSoc$s?LNP(O|U>hbtlbokLf71w5=(QaB}{KOZ)D0qy(GA4E)$<*t~7%FNHsN+ zn!R;^1n2Q@3sf)3(hq;+C{|=Y!hL$(8U?LA812#+Q#5aDX{ePDW@K>4&(E-3N-1a< zy`F=@LvHBD->))t3CmT(oEZlqIKRLtN2*vg5lvqVNdtlH*N1v-;k=`xDP8VVAYPi+ zwcs)R>B&+&BCi?RI#1^KLmq`On+hi&oa3C@ zleid+86jDHa<1H|!zQZ-H0bx^pirXrn^7vI*T%p$F+=6IH)h@PxoReEZZ*9fe7o5b z_btWBOXGxgq+yoh{c-m_<;wVi^I&`t;E=#HF7dA_zxTk&b91}|`E253O~8Jd`~661 zfW~`K>XZDuw1J?#{`tbSO)3-d=ISWda4UPvrUX$3$^5H2s`1hg=D-wIdd@y3xw+;2 z{61ILWu3T+iYVoTd`Ly^GUCt^3wV`kT(2F!KeJf*vA^PHl@Q|$xd?Wz@iPF*?p1+#$VMBeT0rw>YM!}-Vat04bCq3F!A8` zjySLX$iCdSIE63H-QgRvF=QxS4o*_h_bgmO+Tcu9$Hk;c0rA-{R-x5lmA%5u`yCx% zs{GE$fUP~6?!}fx_^Q=$2ifVueqie*x)SU&gE?q9%}?q1oP)d{NN+rCd;?X}7>%aT zF7~*|?%;ah>Z{Ym85IwzUOL5~`>#S^;YRVi3&{|6_Irz--t8|crxlw}LBT(|L9R~w zV*XVvRZ}tkKwzAr+8w8+#S!fN+yLAI(UXqb{B^~V-JqHZ7Vf7DJ2x!JatGttQHj4Z z7Ec*q&gQNEyvko8a&?Ud{ex(9l!3y?CuW$J)JpizGd>Jvc<&FBZ|ljgzipD4L;r&i_A`*}F0svo zsk~<|n9?D%H6bx#y(!<6z_VF9A715eH0M2cM}#E^8~mbqmCwJs9$qT_sjexa;0fjd z%XBBF?$V^{P zwX+Sri#eC}Pmj^BQiosu_QSjjTk^1grZwIdJ}k%6hsOwYRh5ll@sJ?$7ne z1R9|DMOS+|-7ag4rGcTCEIC=!=c~f5g5hBMLmlv173PQ?<& z`Ej3tPzu70#6Y_n;(2TJA{64?Lu~GE9wM|QL3Yv2_x(|TsU}eKsiShy`*BgtwGOqT zCk*ZJ2~uM4EAWKrlwCiIH&-9SQXwp&iSBeRiwCXIh*j}8Mc%}~!IG6xD$HVIS@)f-v%GuJJrr5~rbDW7QxLWUdBrkygFBrX# ze08jxI+y)5*Sl$3xTU%Tch8Esn;rs|p_i!`88+wJ!7 zTe|&=DMO=q^ElR@gl8>z4Wo<)j{P8UVMGJ+ynCg)n)kQ|(ZUC^dEdI(mj?M*ppEgP zR?$n(gSCV!sUV)G+3^eD^k$NHZ)ldx@bGUJv!j5{mBGE47NprD?YYTAPMXK7&bPi9 zjv`_tKN6&eR8C7yx`_&7%|6bJ(pg)4F21HQF^hiJI9knjFSCx43!G>{tTW3XaNJm} zvHRc|qxOee$HM_-)_5m)L7PB**}e2N8FDIzs8o{6uQ3V_G65k&sK=$6s}pMMASg?6 zY>kL_>bza@w9zuF2=Bk1dG*0-%Ta7T7NR5Vp)QQP+~?h>WHM}N3)UP}mzkT0u=a1? zsoaQ{ma!+vfX42Ay(1pZ&zyYZl$QCiho+JmC*!E?sNTKJz{CY@A`@&V+e9y^BUYTppf4pnziXbC*sH7 zKC1@*`B6PR?b5+74$L&?`IbVtl~Oo?Sw9mDOm0Tco;*@ezv`DD(pvx^xBai@9}}Um zU@y*8%2~Ks2v$w)eZK<;N^vk_e>HpRO@-rOLS7_SGvBVcKVFjg;uLwDCox2tS)DQ9EgsxV4JgsN1 zhsTt?uu0|d1H;m^lvW^{4oc~#VV7LV9Sp9fYe~QxOrUkFlsQ3vd~!-OHKhc_KnLhN zyWj(fu=bD=-oAZ?JQ+dLfOepb+N#REQ(QDuI54P*->6fH`5r z{$0Yvr*rF06#@&o1KxU@`JB2nBNbiR8Zi4R+ihSY5z>z?!71=+QW{dP)z?otB?;y; zASjMr+TinI`e>9cf9uHNrrsW(j$g^$MsHxLogK(M`=|=6oH-)uEM*o`Y)iNH`id14 zl??3!={b$TPdwf4K*2cfII88S`(TGLxUyUnB!GTnm5Th^`jyO3PV$(MRSzTzUr~41 zHgf_B!{zGKQ#-TyVb!bJWzmC87=FD==OsMlX4))_;s}+8c@-{8*Y*`c9}U=^AR10- z&4*`pxCga~ni(OPD&x2|WEtTD%@|P${{e&DQ$m7F(akeWb(giv`N?OMLlhJR_0_sB zxK6s<_-Pc72ahANf5vnngGxEr1L*oTw7y|YocSXDd3DzAYc+Ha+a5-M{paj;)$09r zRfP77Dys0zruRL#FAk5l!PP&x>bcWzJ#4UQbHHDFSE1s^uP#y7?av_3A+_%qGSl+X zEj_Og>pA@MQ3sgg`#_JLpF11Uw08ss%~F)=i>E21Cthzpt2B751FnWFE4C?*cJloz z%YhH20Flj!_oi;``wo9_PXL@ctM-W#&}Ak&F#qy?vYl7LToog58Xem4Z~qd49uF&q zaR!M z1G&>gL#&HR>+Y&l41?`&G1cuOFNZm}dcwQIsxbN~=71SOJ_<$A z2VRSbS96eDgs{>zJv&(kFE`ySjd|J+4tn_7^S3u5wHLi2^R>r0yHBpg%VD{X(xGvR zf@%f7i$T*qS0Y05aeTZ&?%Nhs5D{sr$3eHZzc-b2^7H*vJfMv6MsvWv>VO&%4~7n6 zf2=Zis0}aLeom*ggnXT46(_YNYEfBvJB09%TzcA%;5yn-L>=LRQ3fK?_2n)71lsKun_cB=H6>>?lqoImjmVXt-;HjrJq9EnbsFYhH-LeZ+PXwg;#ydf z95V)ZD|2e=N3V^P(!XxKtU|ZFETD*(nfRK%w%FkLtpl%M(t$~>VqORTd#UhK&ll{P z8VzF_?1F8lwzKTt2$dL{dnf7ICjr^nx}<6y1R|EI8>WM4ja7~~fOPegB&Of|&xf4D zCuKpVHWjnVCACj86l|}={XcpN!+?vl}yO&dcq5>-)# zH?iKB21$nay0A(cod;enX)15Lg{<5hl8>Xe>KelGbR=4rhM)hkFVHm}_My3p+bMyZ zUNarc#d%I7FeTElfr#p{T~2x$Ov)$vGHA_LwR%pp5pgKP9KNSm!G=hu>bbKv_{WB( zT&DfV@NiPY4?5OdTG8Yb;fX-KfvmHcYi(5SWjW=4t$OvUY*WPrCPLUU=fLMC}BXCeP00a z*H@-Pf$!BN9wbH@ zJdtc#r|t4yY|fdbZpjP>ZZ9gK0`WAfk8E`0#`pNUk=RDlrPccY>3F8t?sYh znY|tfba z<(cE`W0RRphIpL4)s_drleFlg4=Fg%BVA^`BowfVaM|<<|e}pf?q|8J`P-~kQ>1TtX(^f)8mq)*?Kf6#TtaCK)aq}xs@l%J$-T|@p=2K`@NL()bWlw0 zU%X=fm4$&~RC)sg2m*iLzd094XHYCsBAlaC-#s6RVi%!&Q0v;6_1#i|w4{_=OuFf- zCjzw-^Y1GnHeu>g&Bv&tlClV3?cN$#_Yz!C;BiDs*bA-Me}MXVS@lF!iu(`o~15|o|X&zt^Hv4 zF=?vzWATR&`Miv-V(T?WA+n4h^UqD1wlgTsB+lSmPuw^33yLG+ZbosnhXZd3O4$3` z&e1L?t7WoF2C444CJePg)NF*d)lvPMWb(i)owaI;n)=Y)*si%`A3DCl+_u(qivAyU zVrJXv5{47W@Q@Tv+?N7%+I&L&n^)|kwX>yjygRHW77c=ymmI$9nxm!OZe=fSPdp{W zVr9`@1i`Ds_;T+?-?3t9K^Fkrq7ZrX!sFe}EGL?4B}(pwA)4-Y$4gOs8xA$$m1Xy8 z8y!Jeeoh{Cfdw4)5|DNeXfBl>+WOW(tz2`lH0?%y;2lRL-6c`*lK^zz5&DlIv3M6{GmO>Kaa;VYN;D~zI(GZLp=z#)^_!Zvyw7tEH z0c`Mx{=B>TVSU6R_Hewb$-$TX>6y%`!NGqPaxCBbd!8FuB2ykpyc=%Zhd>&65k^vw z!Eyq*9PYEFOKu|Bucwx-5wj4~^^wy}HaTh>g=KDVl}uGpb8svRn{s=*79J&Di`p>x zXAu`|@!sB;#Cq+!`B*@r_eNTc*l0L-af-YFXY@6y_wSbIJt2ci4>2G8*_`H}5$--d zIR`5O#fQ>x&im58D)Hg(M`N*UKE3uekl~Au-#@nqbJmHLEGm34?Xm12K^x$MmD`ft zdfC}%Y7Wvfb(Vw5NxA3Kw~R)~o)>Ls1a>FmTrhkTGD@bk zAyK##i@HjK!i87Dr3MmavA30zH4jQgoqiNdRxujTyKme26pKpi*~0inbQ#>p{E6lm zGp8J#DQB1yZq`mR@71S2SPglzKZ~n`PIOhD3xCJ8p?f(Dw`-#E6~-4Ls~=Bv)pSM& zG6MW1A+2v3!}$DDDKIzcoeG{bbRO<-wcpntkr0m-Bm_a!@Ms}gbkWI}h=k}7budI3MvsUVK@h#y zAzHKGA?hC$_e{l2Zb%p` zSTXbnYPmdCBJfSq4kF>@{vU*apFeyn^3LhU*Ks3GD!7uM2WcJ2MA5jXWj{paq;VSbX2ad4D}527o| zuf7$RlZJB51*=(?RtMayDHVHI#7C1$a7*G~CRV77-Q)aoE;>YBE1i~*aWjqk@}3a$_W*Jx$5Vy4o0Tq&Pt@fePzm{lj(|4L{}xdD60%8d-SPq*q#XelB6aVn6_-g!mkVanBD-$t#$e< z;?_o5B13-ZvmB!bRP+Eft;w+m4+R4DiJ+8j7nCiG7`cu!7}-{J$K{1NNq|$ zcS8e4D&Rjz<=iON#PlPAnS-~;u1G0r*06LS-?NzGW$QxzN7ZW7=S!co6~Y>E=7iiJ zxl{T03v*qvG}cI=@4yqR2qfwm#QdLp>GejDk0Ny&YPChb^PDZX;F&883`jaJIZRj+ zEhCJ;3&$Iz`@18dRy{y+KBSo*6wuDCd(brD#j(z5cSKbQb?vR6JNj%A&Y&h*+>olO z^tLZZsD>%9Z^2fp0tbmuR}J}UCDNwv$HknPC{-(&Er=8nQUQ7(YPJ6Kq&o%!s}%gGnjidrSO9itdu5THVS(7~|d9YwA(TzxOkUv_dZ|D%ntzda$! zdTf_Fup$U-QxK!uKu|uUfYqBgsBwIF|9x6hfDH-R(iC-NW}R3yOjzql z75HT~Tt}mgH|Sqdyecc`!A$#rAV>5J8NCh&s!Tm*jHClf9@p)m9hK9ZFN>EgBWyu& zCrdYj)~Un-Y?T|jE}{_+oaD(t;+an|o-}W_T%M{pe2Z!Wid)~EhXOxqjqdMU_b zqkB?ss76>~Au3TbsGjS$C9eJAFu$koQp`9bFABF|jn$6#OjFra^+m#Y_H~ggHDr?4 zu1535r#}^PH#nJFp#)a?MC1EDkuIO3_bmB- z_kXh{8;^^bT-8dqz#mb||1A#x@8Dq87~_c(u2LEg%yYDJ!eD+@&)@|z-FRYDGf#so z4n~78d$=AYPd@Szp}T?#(09|6vf9VP8t)57bf%3xc(>l67lDsRMZ@<=l;{Xa`TRhH zcpSUa@>a;7DxxQ+&JWG1Ev4Q(1~Y$X()pi`m*G;+k#VhB1Xj9?_n*mJq`V+3U5jaV zUsl20OcG0KD*_{^1PWZt16riYr@X z*7d6rKS|_3ru8DKBQ*P|=Bzw-suiPuJSfcvMi19C%8|?wdo#OPE9v6)v2?yoAE!wj z3_8GdqkccBq|_;NAx`LG(*K%jUW8-UTc%Po`Rltqj-2-Qzub9rMp#lg?y!(PJD+R( zlGNt7W+0r}yDFZ4X#@FD1r_5#_M73({=^^~a)M8ONbI=GCFd2@egjCyZn<|@b4EBe zoBR=Qx`goxZo@eyE}zjt#T3>i>s84(n6skk(mN+K3pSPd7jubtG?Ri6VtP)mY{yo!w_DtrbLcYbG5l$u{~lL*AtAbO@3k@aiWC)U!mV$kFE)!cP5 z9w-OKc1zO1w6%G{v;J+nle=|y6wD=J)MQgEjWN^}NG}O zmsT%UgXSo8Oe24tr4JoE$3}qY(x5ff3yS2t?)ny|pMxwXx;g%GLGaZ+C zJXL&%U?8xG0nm_9!V_gcYdk%FIXBeoBNx|KeJ5BAty_M;>xN1z?y7Thj zMN5<=J+q^)7unE_d0WC(+BU6^_GpJ}OFLd1SGj(AKZE<{o#}&|0U{p&L{9yvUo= z1K)=?=@>qe@E3Qt{djy`*)PT;__tL_HjMYFw+G4Lzs{0}YqD@HjyKa-_x=g4it^r; z$+ExG3SwtE#Upm~-i%c|3jQadx5Mp66xidvAmnGS-h(dIRl8W{ZQvZluRIQI`>tC*gtJf|tv; zAdM}%(xeiItX|8tp1z!FP9iS?YM=7!r7NYlAJ!*7Ujn?~&O*SJqk; z!fMGeAaX;h^}(3)4rEtN`s(Sj{T)^5&k$n)u^N{pW8{fpfe@3}p;_qfnNeLQBh>e; z?Gr78$d%ahWT{Ml5#O-1G0u8t)Y^*ebPL>D`c(l^>Wx|hFrMXsb=U;!L(62fk*aQhN)M1$ zow%^NjiZ;>^t(-BQZ4N;sBM|O|4%>U$%`gaO8u5R z`1?fUt*f!w*;1)}r1uMn zq)Te3Y{C2h&B*P|NNSt3be43fq@$(Nw7n#_r%a(?S+5}#lYoB#*OoH8I>J=78R_dac(!& zjIrUDjxTZ{S0LE#nINSCMPlBwiuvp_noZiRgD!MI(ZjcWd)JWaT;a({MsK_ zb=q{xNNeML@>>I0!gEeNiNq!V#(#I;^vB-c)t1{ci68UOeLjBz{L2IsuhR@w8T+;P0&x1~CAH zQyQV=h|%ABD6BSFH_}Hw($vQtM72zGJu?AGmyhR;Y6H@0@Owp8V%l_izuRh!V+>p% zU_8E34Rf@0jJp;ZT`#Yco2*sNzfdy2sdW9FXRm%v{M!STQ&o{QAg%Vma}7*p=A|3N zUsE+v)aK?!C#u!lmo@bTPBzDqc>PiKVOJDIBzmw73z%_*luM4qKtIr)$JrQ@W5{k2 z1e%en+RFh-#`Nj9wIxPXpwG?{(W6^-AsJBkihR1Q+}|GmQJc1}D`|Bz%&WZB8Az)? zeqeGPI{mkA+VE#>UIRTJcIZLRt7F0;tGGE*M~bP2)w9SqO%0I)p1FDuIniT`S(H7#73wQhahoSFekr1 zQc`U*2?&mSO0~bsZKuD5J6gWQv;U}J;oI2WhE-O91ElLeh{M*3X6AE!^N1(q3J-zD zhT~=baw4@J{qDB^h3HRf`wwpI5Fy3WCha8L4G|x%KA$WR!V@j2e6;b*qY%-%!>%D( z;dujo9!`)xwdI;~ob>({&hMwp;>4>TKW@!BsNCyd-qIa3DIb?h zK|3P(#lRU4_f#$qOP#l>X~LSkVHTH>JzCtg{7_L9ij;9>6nj zr7_FAySy!sq)QR?j| zKM%scg&YytvT6UZN7PV$v90z3enL!6LlHjc>1|-)=G0iV#Q(?lcI^)v3VGr*WntV9 z>IVRTFV7S3LTBC_fv~`tLkvADIxsbApJ{ap55zDN^T7A=eFd?%y*v54BeQW ziM+GPleIy`MDsjhO*2I0oeI-n&0lpv1?{<3tV7vA|FK>2mQ!y)$8m1j(tSM0FCZZb z(kxr^fA35hQGZPo?N!KfJIer`xipT1uvQCucdvPQk_{1-rcvISx{4UMHCojb%HsH8 zO;rc{>30lHUv{WF-ZU7o^S*vTP%2 zLmN}EBr{k*bO8-}HuVCXp77!Z+-+AC0i>Tdo5Z7H4M_un0)ti78=k--ponzCu^gM? zqU3iQSo76XDf8)6J8NL0m%D`3Kchv^E_2=d^!uv>pko@I%}GW%I&{l2VC1Y)2r&u~ z2^mBj&M3?|GCU|YXOc?V>2aHLDH2Tj3EOHv+ng&|Kf_se!xz>#&9;s*pmHIrl3ZbI zT#0#KdMYl9SKT2eA{W6S8s377oR1kZ*9qP`gOETVNS#&G{>)MimsBoqqDzv}a&C(AKb*;fIVvRSvtdsC zAdL--_0Q4f-HZ;AcCO2N8N__Lb9c+4H3MiX3T8^vZ$>oLe*i7I&(@P`npDGU{}Yyz zmSPUv5^yenwQad3uQiWUVxVeCFM9fTwth=3{#&&0ldepWgQX71 zJZ$ZV;#a!LxZxl4o$qA0A!V~m<34t;zNzOJh(~dyOHAWDsi5Ijd&s^xH(^qKMh!L< z?6(DJ>(f^w0h-GN(dvqdi}{^X>uED)0Td~oBPMp?K#~6Lms*TIe1X4h3jZ){^c*ai z01n3+yu>(Huct2mCVI%L8l`(`;ulyZMnn<_bl2R_n3n~a%6`@5|}_Y$>t0b+jr6CtoRbyW`M1{9-W zSE@$&=ld}J9uaDT533-Oa~)3?Bu_$)H^ol6*QS3`Fh2q!zR7^4PK5hwWU?C8j}0oj zyy||)KK*GVGPHY4bY|LSpHjGc+mIl^Gg5;%ak)lmgeahuTRIf|!3-M#uBWUtr?pFl zUMhw%Eb4Fj5vWt> zq&f$*!zW>!vh=$JcHMpxJLy+uEbaXe{?*muPjTmB!H}}rCRye7KI?z`S<7c1J^I*WgRTCwm_>|{vB8ck#!YTbpNFgPt{xy*bz7Ukqt%Ws ziI&4$s{BC|;IWC04ze~$Pr3%zl^EcAcdo}K)GKkh%*ZeU4B?O8s<{was;1BCdql-- zGw?guuhXu}cG&EfitDJxHMI;UL^hmHx>uiqu){CVhD0!8)iA7l{F)x}^Mv;D@mJS{ z7ZWt6Q9sxN4OtAi_Q_J}%kEd*sE2s(Y%W560i**#fPuWkS;%R-5L5znFbC8#u1~7bWP>{*7 zowQ+`OMV;N&T$%`ALZbhfbT-cnpI8JF{o9dCpwQini@wmzj}-ljs18K0XPYn7JD-v zH+PdA$q+(`+l{)y6e<5eENkLB=!9?282*~pG~4EsmT_%QCaH8{hHbj z18W}?rT$D()-)x|nm3V3^>v(q-AorTi+uiqumpj)yl2hXe;TPX@rq=j?!#gf%--`r z^VX;L&C~NCVw+IUtfl_fKZeAs^IFj8;32z4R(^^y`>6<^eH5|I6q$6*E}`7^@ovaV zX&wAwXSKKof*6-RFqzR^azajn4L}8dbkLv&_iJRr#fEy9NpjwTD*w^vWQmn!%l<~-?N>ZCRBs*f^dM>j;(if)2o$x?Dnfkjh`d$Je-P*%H8p!prBss}2wcpGd>*M9US;g| zrs`>l&OpUyS!TMeuA`i)Dp?Bi5}@a)O3xidVZ7X6slPD4p-5nw{bc##}M6!T8W*}zzU`Az2ul(j0pQ(RSh zbjaY;`K89Jq1Z^Z>t7(B(Hv?lOVi?!0_f_LYieMzQL6Nv#So#u!O!Rzjo}CIB+K|e zQPvVFT8pq^b*K070GHz}$p{N_sa4Nm%%XPZz`jut7* zHpB*9N}C*?ADpyvU9@xpYzBnmpk*KHuK7-)HRvST zzH1b>XU--Jg4pIVb;LqfN+_wFXI2OrfGYuVTO@8MlE`7aDr3BM#`+z8XO{kNu3I)P z3othH45MWzCC_|4QqmiG@X29>p2jAi%mS%rwMg*_~LijX2mU$Sp>r&t1_|zgaH8ZPL z6h;ta6S92K&?hQRdGI8U16rwoK#QHbV4dr}To`issUyH%w%5glh3vD`l}$}u`m4`! zl&20NO<`L1J??M&q~)As+=_eM@HeIM=d@*gXCHi(G3$WXC`lb1+}ceMpPP9-Q6sB7 zyQ0e7dC@r?n`6vHxL8Ua*U(VI>_rmU-&9SEi+;Kd5RW+yR^vy?RQ-Uym;t;JVIv-&b9xJqX z+BxMQkiD4Q4iPCH4C9K2;aD!DG)6+AUM?&e$Sy)k}<_@oSfpPOcX$Ku0mJoKj1ePDQ zzeaoVWKDDI>WUUyR5doG^ZuTiW&RuI1~HbAeoDG2IigxH-_wYUk$=C(T-{mBS&}l5 z0SxuX`X6=1!v?f%1rL82?q|(IqjBaXr(ddK+Y3F8wFADzQp!Efp`}6nbQ?Vi6!W}0 z6-Tn2eDlW&nWvLH=}kRZK^IWP?{Klf)n3c@V)Y@C=F>@8>+R+0)_K(wXbdS6vgH4j!*K{h(9_(EK`|ObGje zaG7~j`qKLJrzFbT_=eQNv-6H(e-0Y5-!VhXqmb~5X3QxP*l1VUCfv~PxqS*$(&+-t zqW^>FqpF}P@{cOKd>I7oJ#hv<8*k4RZuSk?wIvu#rgm2zio{J@B-y3fwH4Wy6dMjy zgsQB>!lZ`?h*BH~0C0NC-O{zug0`iM&q0z#{idD?Z^D*A$^!h3Shu}{$`q68b1xko zSbTd-s*b*nb!HbC<^Yc&eY`^Ed-u$;Zf~VPDu5-Z`9k_c`+Ya4%m;=7)desuZ@3WS96-A*GSFW3xRn3zdm9*g+Z3bSI=$07%)j5z$bK;ry&H!WKRL6UqkL9;DhS zZ>V$>8z(s6$oGMV=0TU>S_Q=c@T~5{Z7Zxjo!NlUhCJm*(sbIG65EOloSCD5A!8Jv z)Q{X9iuZkN9nqnH-jFo+%deK0r_1uaTftZwLPz5AuZIa^XOw84kucTvsWuYnzGR$a z75I?hlL3X9$PexD^m29*D)FzjSe=Sn+{Op5mt^*(3TQ{P$={lZRK0 zjWhc!!3^AoJISgF&>erCHGTEVd8ZR}vW`pP3i$a|HWn>WGbU=}5%pa5ciM-co6c%! zB%f5NWd=ju+_$c+I`h}r-q7;8U(ZB3Z_CeISQNE3t#0dU)0rpZkyD9ZfSo3qI)t@R zugz{()QS@4$(&_Pw_nOhOn5(omSoyqY-h3vs|DA9&^>cp=Qrfw9Z3^a*G6PjEr#Q> z0?>SZCb`t@G#<~<$<4NpfmJhFzLy~0z-2R7G_oaZfzYB%;+xm##zfOw~ji z{rLXsbCU;VD-AP7!sQphRr(cV;vwCa8d9c4nC44^!DLHn7z+A#z%*zx9si0RWv- z8EDc5XR>0G4n5rUG(ZftAJt*z3hZVx8&;)yVue|`eXL-H9)``8Fj81FbRVunU+Ct3 zztjJq^;`T!#t7dric&IgQE2N#9~(Ctu|f~pdEKh8miOHr`S*{Y_K}j~b~*=bl=d$> z^ElLy4Ia^F4zFN#|A=vXhWU9SiepY46iQD&BpYiDhhhW%0BE6~ zrVM6_`#HW{R!1MsIGPl9d@V>k-C_p6BUuMX=R5c)E>D`s;-@>?mrv}0MP;QQDYHA5 zApza2rWfGF6(=^YLsxTn(%O}iFsf8<40`UBW< z;X#3|dL#w4YPy44)WcswT1nUI9Vd?sf94re51r9Dceb**oe$k~nE_DgDObdOKdX)7 z&H-)KHbbv`k&BDbq*WkJJdA;TTv<#ZYh$USQQkhB2xSSXm!RI`+gDMU*uRMO8jYuW zf9gxLdlIakwz=os9Gy}YUrqFZ-XmXmkrxEC^*luCQ$``(?S(lW)p@@PI&8Tl$A^3Y$AQGyeH5$mY^DKtFy3_FLh*Y`$v%Fvc{HuQ zOjD>hYnI2;*Lu!Sh}4VGTYbx|zRVF&$+?AvZqQoPaK-(38TNBnA$Rf_5t{o#W_AqA z+I`KwtyR+)rihhg+?{$dV@xSz9up_*4!L&aoGtY)I#yY}FnPk{VH*|L(Hki5JfEZ-8IK#LYl&Mo99IMt#M27n zv-bxTKZ7^UW5jOmA-N+Tp8%iOel!mla6xLlS*C0DXlr%XwUUIR@EVh`7EC0>8_z4m zO&-@=;~HWZbkp!wm355I3-I*Ynhyk*?K;LpT}c)XV(yNwJ6JH4X~pfVce;!1?Vpp; zV{4NHzhyg-r?yhS zyBTbiEqMO7jJ)j3geZLA@7b#e*cWXd!I5z>@)D+&)0Ixpq1RR1d? z^9;^_4aG%Rw8dI{bcH9gcLxz5pCOtk_TANQ(dbgEyaSt@2DZ)SVZ8OXQbKx`csy2Z~Bh9N!l=(RkvzO*>=XpheB6PPh(+IJ` z6q6Y@tL)P0z$V$&v`Z!ST?&C2JoBg~|KJxv&XL0gTQ89I{(;U ztJ6^j)nI9W8L0xj20$9Sxl`E=aeY`vk|dE<{D z8M4*wRjicD!|l&5Ge+L>b%8Tr6|zLcSg>@av5W>ugY+fdcJ7?1{udzIP&{$9?|nE6 z(!j6|Ggd0M$hdoaCETM}V;p3r@+U^qqrhluNrpy=YSv(5*}f>-E~GBnYvhk(P$DTH z>7CWYb|!^B;)DGSX%-Z%_;|X=AP})cvJ5t4v*4xXFz?*d4oOyh-!5WpvCp z)Sxri2{#n%Ax1XOyM%0VJTT?WZb41}>j2>lO>cKk#~Wm?YgWn{Vf4&FKC`*VyyR8~ zoujptZ)YBSaP2-?LKh^wCPnQy$g&x?^Eb1%{)psSLIvSIxn94*&uVS86$9>Dk)AGw z&_35!_s$_l+S&&uBnpWiUJQpc##%n)D``EEkATUg(w!WiKMmF#E>6PjuiO^c$vBIR zgsxBLRM#1Lqx62RS|whi8i#z}`h~6KRmPc6hVxf0vyLATtn^hdb#WYn__+ozM*{tX zHg&&JrAfpy3jNXJ&gGY!DYEx|#9io+ezz@;a)I+%uLnynGlOhR>_>A3OkSU~N=CcL zOY%L4=euYbR=(F&O;pkGwz9+KD`GE7fu4@Aa!aZDFUE!<>5KT=Pi4ugs1#Ro=twl| zuEaR<8H-w_i^I8VCmA4U7wEwpY1PgL>ia3eCC}mz4)66l^AB?=#Ut{>g>N!5VPus@ zrqOA`y4jVK~>82E;lGN5NIQ$PwJz zL#VF$H8aDfGoAWJ7XHD{|54{mHf2{G4!Yuf{uWEtNqu|J`$Pm1uM>G^o`v$%S9JJy zuBnv!n{vs6O(#vCf);eWfl8?TIE@Lxt+75+;kb?J^MCX?)Z~`pb_;0gX#Qo)3uiCe0Pt6mu;uIL(ZRoZ{Q6C#swu;mo*ZD>ov>9iPbrO29kY zpj;KD6$)sLo5z95=AH z+_=+zKg)?i)~4yHS`}fY%|n~<=Z&a!Aqyn^kpx;~f$|EU(%xZELd#H#MXn&Hn|CEUHx{ya_qr5LOw?VJ8DmdW@j&OCOu=(3 zGneZ~Wfif?h+$8S+mdp~e~>5g2F*mAxCY*_hbvhfEw?X zNidM;y{K~}GRQ5iB$dU4uk_{{I$IFeFvs%Z6&I4}l8%VbrPc%3`VXs7uw8#`$BJDM zwsUv$(t$?hQRndC0@-hcxt)t$1K1@Zn<^A6*`W+fTA34B!Xf;zu~k)NAQ39;wb$zW zt@?CceD%>u9=wdnmE6y$eJ)O1-t{bEg2UA@_uq{GgV|zKXd0vHjb+&52gGvQ|Gd(d zb{85I{257pVd>@#_jF;`TH|<((~rH%0^5);SKPx*XE`2vfMSr1ZM^g7risB z43ygpVUm~4`#LBWI&1H`|=yi6(lb5LI1NfCL~ zmeo(0ZMG_pnc%s)~u_ zxuNXPPd=Hi(r52Te(-_HUcC6I8B)n~g9sOWLL$9&pu%#|uT(DD1&sHYsptpYwF?Lr z7VjjzxDf^IEEKA~HYn$*KA>kITYgIp5%_q(7a47eeiwgA>i7dxEb`8l#NnOzB>g4q zE@!4)NKkgEihH}4gL4Z^O8yd_r%8EJMS!$yVkf?=d9>9wNQNQY<%|Kac9Mp}b z@o{*qAm3rvr47Nu@&GN2B&L#m4BZHmoD*N%PH;IJaout%F1_SPIu>;8CJ2G=rWV-3!q|gx_N?FpcOHk_)r+s>!>M zjmf){*Rk*x#*&q!E{@8(hBB(~=D;z{Mz_o_${R*m4E&PC!#Fg(UUatBdR)kiX0Jx+ zohPYA{Yd~M##@}4?=AS>i`7H|!RPj~W8UOyz$EFIR-&_}F%sLmhUvs-9Nt z4zKO+dFz^{fEX^+j8B1um(Lw0(pJXYrco8QnFr~Qku8T?>dAtHKRNZRCj{xbYC&0O zVaI+95brJG5BA;FA8eT)hKF$;)%4zy`$@d4Tou?DV>^whShby?3tczlS=`27!V9hG zKCw#smb&Mz*GzdeM((q}nIZG&zV1FmciLWyf}v|OC0WhC;kIr~2{Hvr6{juB zpE)~&?O{_pIf@u%lX)F^kUb~Z7_W}g*kC{;(B0sYt3!g&69AY}_Ch5Q`P0B@Ppqjm znnY}`CX+a#j`+a-gVQ>wkIpT5)rHR2Ya}ObUiDGyH611YT88-2%1S)bdoQrByIO4u zG7r!i$D4uu%8oKKPoDe0 zF|=C+`FqTbwAVjZpW9jTO#fQW22o}5@#EfVCOiam45&}5OrDoNQ<(};J&J|43y*>= zy27^&?K}eTyBS1Nq26Y^o8r-Do>oapRzDZs_BCKGv=4yP!dP5GZpy$iNZ_Wuud2x= zWwBg;dvDU89kx8OvqcMM!cd`)~d<+hWkTC6Uz;t>};U3emysZ`Y#Y&cZnp!D)WOY&gb7zVE_0XpEd32wAD|VXHTrZ#~RHu z);RpOEF~Ka+SwZ$aozcC-ik})*kiqab)}waO@w#uF+{XMm!{HRH&svN!napbWf$J| zq?T>Nf<~@s*pNOJ02d{oL~esO>|>t$Mx5TUpLvnSP$6es6D=3pAqiw++5LMyziZu+ z^fYmmOONiz&7dy6C;esQKoz{D7EkdiRW(vc&mBS@Z>pbU<|gZ#f!J4y-(GeEi6*A8 zmuaAq72Oo+>Ex$+u2}Ja{u}?Rj4ed)PjMxIV;)@hC+`{lH&*<|KF6c*&Y_pH(y|1V zQ>#AMHX-U_9|vcB*jt$b=B3V-vin7|Ipd;t*is)c#)84E#TDHABPC(yRbdekGrMBd zH?dQwndmo7GnT-O+^V)LRNe^mVBx|0vz677s&e#&vnThta>)mG+R zPUd<(v_DuX{ELA=onK@xF$t8W{fB*^+TSLt(OJ3 zY%U(x4Xr79Rjr2Fm-cmgu5F4>M=FcuZn4#}@D2Z6BuJW8UCP%m1pZW!7Aame(xjhU zX8ssjQYx(mJVdXbz!}W;(NPif@8tTHJ}|PUQ_qS8XHfq3k*1VT>pW2ienDA)Ha5 zSYc1X=?~OPZ|dnC_%m*tn9i>D`q&EVQ6AGI;D4%v_Iq zHjHAR@$+4kR+dcm$S|uF0*IA)(B*ydFg4n{Eq0z-b70@bU-J+1Z*B-?WE_HQ@L3vt z`HMEFzfs>TzD)Me0QiomlXkFdsr)W?YrWU)b0~s0aLHGxVpUJJWFPV)@*dOazEpBq zd%PZ{(e1ML&%&mjTESwucR}u#ZSRN_a6X1I&4=Z_0~;}`4FlgBEv^!Aa>^nx^=TY+ zJ~XYT!-u2Ho|WhmrHBj`9Zl(pv`0dd8~<40L`GI%?A}FDK&$F{AQ#t2vs-33LM0p^ z*VE>HmJgU@N>f=jR5DSuKWAsr{d5U(Avl;ca4PfjFVlH$IC6Pin7FfhUg#{RQIh?f z=K5@4toOoLa}4)!aR9he%9yE+iNj4v89j$y(+d zqxn7@8F`K%DkpzuUr+53cIJmw2|C)KqUoiq=R#Z$7C)Y^hlFCriU%%~0>2Z z^w&{U=~T3sa(m-9_11rW0MiYLot;2qcj;C+U#&LLqmeu*OAc3&v7mzv;rIh!G(9Yq z_<%Xl^yf1_eRZ;wvf;FR5mR8oh7L;j9cQC8(RFxN9qF}%0W42uhj28|X=!LNu^)j~ zEIL#g`u<$(lb+hhJ7#YL>(wyW@E4$sW;0?%WNwK4&@AE~!-Wr%5bKJ>^qt%WPG=0h z!uGj;iL5T~eEL9|WpFDfuGz2WBY<->%l9(HpL>%4Kn2rKm#jDR_4Dh-r|JvCF3i5Z zI=}eGsmk=`GmAR>ce{nNxCz=|&KE~Uz9I^ICPW`*23C<5V?dNkA^uRNO#N2WZUHd( zfkEqIrsF~y2bKT%PPHPnK5U*JmTflKnhMX&-;bU%$==JUEJwT*3_)(t`tbON9&TuH zaJbsiXvAH^k?B-%m@0|7GMfnZwE9R570q;Jqj1d^;d-qOZuPrN5%*n}!3o(;{wK@| zzMB49QY-xfe@T$^FMuK1(E6&rRFJMVq&9q5=d_MazRr(WU@_1yajZAko1P>T04Fx6 zqOY#ne~@B6T(4_(D>EJ5HSR+fd1p^MrHKuswptZAbSXpgCU@w@+N!V3r+`A5>163L zlrFcu{W8rKpLcTMmV;u!FBn#2kI#f9wxMIxcit3AYJe{hC^De=x?almffhG%@kS8X zPl2rKWdI`_$5j4Nk_M{gC~YiMm*iIt_w@J&ArM5iN73UWq-Cdn>EbL3eJKhf*U(6O zizuxIh0O9wp1-gDKup78s0egmRs-X&fGZecm(%!f8kASb@i#(p)MGf2awi1jO`M2R z%?>0{24^EANx%4Ht^ZNtV0x48iD++cKZGxqk|An8chSoF_27ZwawO^1Fq6!Q8xii=LaRu!o!&-#B^QS;pA zzToVP;JO|kyJx;T(-tXAJG~lQ1!3!SU+Qk0b&;sV6{+c1yFRuG8}`Zn23@KvaGkv$ z&Z1Fyb@c6X1v#O_tzFZWRV{s3IZrBX&|l;vx$drL!!cAOq8{K6_)~nQM|>JtCD#Y#qTQVc zI)VA2q$fTD8v#GD5re%;>q3{-6v@O9=e_{jR|h3O^XU(qHZ(1?F>jQmJ?Dx&#q&uM zsXAYz&FF}%Mz#*gmVOt8dHJx!xn4vaJp0R)`DM@8a*W%Q{B0+IZR)SIbDMcb{C(8Z zr@C=|iOIXu%lv%~zIojqXe!h)2(>=GN(MtSkCh*BeM?fLWwD8rzVJ}E%aUEqPU%!- zxa?G5f8$=ry6H}&ts%QyxPXq{Xm^YvrjG{S_kMkZ5SQfO=#6kXCZ+csL~mp}MXVrn zL;P-oMzqFquXq<5M2D;7p}h3Pr?lmGd5x4FJ*^T4Bj;+uX(gcJ@o}hz_<8Kjg>7NR zb{Jb_=~>?TPxKjgf(dN>NGVcHL^)D*7^mr#+{|7ZrLqG5OLhA|y=FCRKcYCy#?XEV zIg7vJ#GZL{eD~Ke>KTZGwPwH+dN&QE`w~hX~&NICZ8QLy8+FUz{HMd|dDzlC$?3alPI!wOsGyDyZ0nj{t;8=U)|ZlXav7F=;@8ACqMgi-x8a! z?F_J1^yI~ZA%86DMm6EIy5Z~iqJR}(YL+Q*72(6*cN6<}Fm}5!#@FcMH&SChEn;O+nsbvhDV&iT7PX{Fyv5ZjFl4SLqj5HV9K5 za*1$S@<-bBzE{HP&S-RbRnbkSFmOjI4(n>#g*CHRzZGYV z$ywI;=`6-zY%n#mjZ7G?;a0<*N1Xd;THw;ol|LiBcSK~y;qxy9`JL-~AaBWmcDZ9B zPb31$EB`IdaMBOdGEnmR9O3DO5Pu%vke2;>f^JCQ-tB9ylbo7{7^9k)R$oSzcNp!p zj_3y}LK8%(eg&<$!ZrrfGL`WkI0lGb^v;H6+}K}(3gcu*l|I;F$D4~zbZ4Y^cHk<5 zBpc-$7~%`_*R^e%Vry^kwV&-zqEJLV+{@7O3-MSa($<+C23yzCbXrJO85Lz;-&(E5 zdw}ZX&z8xPSg)QslZY}-XaY&+bN(-_Yad~bo+8!r&p|fZr!W(+!n4Q+vBRrK8A=g6 zDbfNMpc{>U(`i^#hV1eE4>QPn`rWC-PHDy_gy9k9+qQFSCgBJm-QCMMZ(rV&Oq6_` zo08^z2he{;hP-rk%&PZ_7v-bj45XI09cD8LU<}$6P5aZ~9wf0QwBhMQq*f9%H0+1; zL80f3dzTpFhomKBTiylqhd)?)m|Y4eGTYCtO=)06>3PkpBQJc?md z1wY_jSXZZ0=j&-b{o%&OqOqhg7uaqiHr-hobxAKqWk#7R@8w~UipI4((;UbAJ=AfEWdy&DD+3AT6VnA#3%Qq4ewr#0gliswWAC| zDAtErVTs?PPh2~OYQ&*q)e__|S{A2vso3(rq81IV>W;$sU^d{UDCUlB{1x}H&)>y^w+0LgY6e}PH^Oo;WM>&l zm5bXGA#fl&7RGv6XeX$TP~yiCk7$dD+q*Y%PH&k+9Q!iZ5&xv7#7$U}W3e@T?DC}e zd=)n0a>wEYd<=CkgmtW9<|zyVBnQ=nT(fjj zn>(!vHhvXtC*!d>9YIdj%Zr}~_03e)sx$4f*I^M`GtPvrdbR4-n29n`e7$^%dj9o6 znUfyTa~`njCO4twUcy5q44Gn}ex|k)F6?a4$rNvFtc)k8j_%DU7QVwg`e_DD%C)O9 zvX(9f!dPrV#Y0!`KF=Iwg7^0sN{21X-EOac;Tcgk_vp#ecix>GB7;#TUBH*Jq$z3m zz`)?K8FJHW=J;y0Dfnkg`GH<~bAF_evtd{&Ti&|cFzc z)hs1`8P-T_JEF_t*~}5TiW^_$D)s;?l@zK~07WKHJ1Qx!BF(sMC~~_6Yi#qm9UqCVwQqKK4ViyTbz}GWK6PLlKJFgZAJV8;2(PjnBz&6jt+84i}ac}nI%Ei zui1im(FX)rg{f6fAZo`CO|xL8bsn&EZw@-B&%4mi&FH?@Nh!b(x;p(4qeIk#dsHf= zQ#|8rq~Xa3W@~Rs-J?1J0#@zxVtT()zPl-VixSrgeR+@SaAG3#*1= z5cf(Rbm7yT=r~%XqFF*0&v)74Rqiu>!~_gzL@*AVwS4c=0%n>TvE2tmqqYScBfs%C z`2Lz{>W^~nOPLD44c6T*QF#w(B(mRo7U8-0Fq-_Zu3O-WXHPBzxrRkTV6On&FoEHf zf$E&ZM_~EuRQ#WL&gA>C^$VW^KKv*`ri7&bO>&eO21a6s=*_r7+Z?+J7weUdbc>o-AgVV?Ula4ZZ1^pKrjDIT{ z?~1lqJ(x{7Q((W1Q7HKNsc54=BIA*jTsz{c^>}>G0OXZe*>PxB(Ue)>-|0uwyS3Z) zg!N7$^cMkUPzVC$q-_0OT206XLX!xmiDzu&cbYh@J@YSDudUAFOkm1# zjWM?;bh1Y6;8MqsQqkL&7gETm$rTb1BOaq2`MaT=Y2DE=l-EHEqFSy4@mgX8zDA-E}oVkBIv* z3uHtaL(S?W-$l|M*NJRn0+GWT<2ESt!Jn6qSdb)+pL(a~K66~q+;rJprA@081{XXg zy|FFKNyw0b= zKU$o}fA8Z;tse1#lLp$i%tUFR9Jm~Z^p3u1BrYkzEPJJTN)SNfPM8~&%Bp^QlEJhU z)@-FCLEbZJn4QXeu*iabWXow%+wm@AxGUB_@%4>ew1%lFTsvrQvf$>dFkgc28QuI<0Il z^Xd30DmGR`gBeZ9H{H#@5p*y&^2rH6tH_1(05pJN>m^JbX z6&}~hvrAJ0D2F7nfj<5cD^-E5^d%p@BQWq~1;3_IUT(VmNZ=$Tvx51GI9?R^0^{cf zX`r3E_#6LJfPYkh+Th_#N1;4Y6CPVHpb3$AU6UgvPLOR_XWb%$$#H2{8jJy(%)qjz zQ2Xtsv#)uV@fhMIdOko{^Zy;hVCMSgVBJ?u(88gNCkD|fx5*uox~e}gS0JC%=;mR~ zc_#RnKkkEbt*)p?hos6xq}hCxD`MT)+V%D-^WwoXE|0NNl8{CjlV>9*iJGE)CJp^RT=_8HWf&E2avxucZXzqknHR{?Hs>ZvQcB#7p}JW!g&M9lEC}fl3JPB)Nzl9xC4vm17_o#-0I_V zW};aKO5nw&UYXW(@_)kYErX?vVJaYDeD_H z?|dee@=m{+NDVlX7Ju=JaMS zAdq5JFmncJUSV(1uzUYcJZo}2Kxi;~jj#8%;HAFw)(aN9ezCJy=xXNw&N>l+{UTnH z6<63i;_~QsyyDZ`zVwT(bIxh9OhK&>ajvS!t}LLx5%_hq9e;K&AF-l>>RSn7HqCEk z|D)d2Zm4(UV^AKV+AuId*))=cd9dZ5>B|k9bkhgss^N{wZuCaP{=XCZ8#Hgntg^#7 zN->n1O=S#pu0JUOXiMg4NE;Qapc;Jq&@pgDnKSZPNPVCt9ewkiKwLuK#B|Bt$$KNS z+o52$a8uh+{hXF|)ki))z*@T-6h$jo&HGny+0rN&Hmm7rPE~kmN2&%`=Z3Ubx50NCa)@dLeeOsKls(6 z{zeYkRF^%_QqxC09p+&JMliU6Wt+pU0+8};$NjX-;T@p zlp4BCc$jky%C)QAWBghPFHbFY2YZMhRKMhq*Jdyzclw^Y<_f@mRZ^IUWyX|V#r9E6 zfyOW}&!g-VGT(w_&9k(=W$pgv7<$fqZQ7_Ez3CQHg~ejdd)g+}A5$b*?u_!P4b3=u z|BPBu5nI&H`k|2c-O+JDoyqR&hD>u#gE4ykZ5!{mY~#1%!^iXtb@lu|9CJ=$O^vhk zb-^0l@(6=g2hb#+X1;_Mv-dg876nLCf!OZQ;MZc|#+xgH=E% zGBHaw6E$8mF?lYYfH*doN2ausT+*<5+b@s2wTeRYN%dxRrqN0Ji@G2izs;$QWc0+N z-H`b);2TCz6TpP+hm4@Yz6qR+qgxd{IVpbd+a;YF%9t4aa;m<=Ay|yjxhA@;R&xDn zaV6wi??qC9F%g&TUz?lTIj6&rU&(KG{)ObxvpZVMnbM{<{vJ(uOzQS-_rzE@i~$or zvsK%q(*F6uxvp;Q>vKt3`+8C{w-<4Ze-NBB^N0Fdj|%(WWzl~Ua?-~b*0HHzu`PWi z+iC?gzp}0eA?j>Kk%zMLwbgPz*d~D+qnjM@<&7{8O!w8OArw_>nrd@k;XC3~0z0rz zF`wX_yCU@#U~m68Wpej^Jv@x`gH7nyrIJN(1vPtRmvN3~z}`+Doxfl@h#N#adzL{O zJf-Zx^N|cD_Al))${SGmoP2v7mG`-J!Ro#dP*2L9{6~=G(Q@?X$B>fe5-onp_O(Qm zd}A7fSJqtpfr3S1oB7D<^6#t?o|=)S0{&#Nor0X|1fF=D%* z1{G`Xt%BmNv1N?5cuBYH^B)15dIC}AtzQ>e^N*%4Eu8!ldfPXO;UjKnCG>2K;@!1L&}+KTJH@0}YF7H_36vbh3sD zSXupI-Fg;pQn4bMRGIZ=vtML-e&?-)ZS^d?>FG`3Zsvr513Ch2nq$?;=}Fx9;Y?P-2HZ#117~1U!cvh z-ZwoFIvMu+3MX3W=WqF#99f~>>NtH~{9c&u`-t#E`?(5-WlAOIUTtof6&!sg^NPXI;)IH1lipAzL+s(Nj_ssfRf?m_Ia{ zxyrfrUWDX>1Mb&$^t=pi9RES5>3zLUbX5L2`DNwa{nTWo(QG#ji6eh*PNku{#KGxx z7S&PtT>#&av`oF)I?F(8zV_iKk5g_e9JmgAa_#;?ndF{mMxHRFN7e5sUGfwp@_xBT z@9jqBkn)tB$Y-GI*8| z9vn+Bgs<7DCYSH~UgF>xv0~ER8&Z>SmN%Q`Vt4yi{dSW$_M$*t#^!h1(~Bq}W2NC< zM>Y;#oNJsLBEw^lBs=vvB=Go~a_R9$Rd=JxVIeiA+%Bz{){it~M#y-0l(R=Q3i;+n z=6l5nHOx*S*@tr@R{>6t+OX~s(qCi982xs;Sohj~*UyxMxQkED{{8R3)@oiMKX=xC zI|gLBCBBA6jQ@r8`R(|CWQTaE7WZ_WcxKh%)bk0~$aeN-zkaEe1X+d6I}W+O2S~t%KM4Fuxj^VdyaqpGrs1 zPE}lFxIfHNmZ{3zNE2tJiS}M1_2W z-^gOy2U+T7R0uM3U?+I2-?@*|BG#xe#-S90j(xDLxLd9Ay^Cn zwI;`xC7$?q)qOM4iUP@~WkJ$>uB*7z^MbBfaEeyos)1_5IX3~c4EKaEHelM@h}Bon zNl0R?v$*uTz(n$@xP%>M==ntX9^PwU4UBs?pz!iGAj3poiDry$`l zCb-v8W|#9tSmPNHAqeL4w>%!<9LcaqIP+|OB85iW0Omf-z1a8Sd;~S0VcHnu353+n zV~kFkM;%R>^+A60^iqd-4^9LxmGbs!tjfK1Hw5@!iFqz{)9N>`wp9e=&0NFSEEN)q zfv{OiCiCdws0W(NuT6dPySBhF;{70}=`K+MVShUOpw{eOpTN>-I&Uo{myA@*t#+0Z zhWam@%e-fUI_V3gw3pPnx2}QrUm4k>o^93-=WEiUUJm#3*M-2-T$KKAkF?s#8C&Z| zW}#$%x*#FkqM4ytC<@c-mS*aG3;xA*ZAhy4hs-Q?j-UGVOw25%`%;2CDdqE`pR&PH z`*;_RrYDxsqCjT6-z9SP{w|dWOd#xFRe2vE=|6IyEgi#1LM0ckQ?1aC2p`*m_hos9 z=b~d_T|>N?aBF)QXZSow@CV7BI>>knmf1{`R~)Nty9q2mbh;pzaB}Qilr#N!->TXO zyVKh06*U7~!-$m5^uWp2lv^;qvJ94aD;hOD1tbr`A5Ln8uGaKKArq)gu_m`WOR(t~ zKE9_v5v`YZ6MAdD{EOxfW^f4rOw}T#Z=Z6GKN!z$>X}u3eqSO2BK!%`qc)DcJ0XJF zA03#Y>ZV-%99kZH-=1y#s_)B;XsQevJDkcG2>0=~d8ydS=U5y-us$q?r3`gu0MH!f z(X3I7SJxL9*BCOEq7l(olg=5-p#U-v>wWoiFbaqt;uhu()QbQK`u5XB(|Wy@zau5p zW;-K+Jw=*l8~xS{dir%lwxap&O}k({VTmKvzaZ9OI!w;d^P=J>aqZ4d-+LYph07Tr zU@X+{vJN*i$7@Tqw$Z2&5A~R;U5w$sEg*Iab0JZ&mtE+Jl@0|l!mgL>#`*v}0$r-9 zu{z~RzcgzVYrEO>eZq6ZVGs0gfc$*TL@7Cnmyu8wkZuT=l5;N*65g*O9Pl2`tpp>A zT@D>C$dHi3wIPTl5H|d=0YqTSay(*RCJPrmx>*HVKU z*Yfe_uz|ZVuJyz)GS9mL2i8i>41c4@?HJ9hP2w6Sw;|Csw*tOApKN0ff#r`PIntx> zIcdS;mT9nT%xoH+zL)SA(#(`-@s5i)X^vA+c+)lFPAP!Rtt}6ARt)a!U>j;8`rllOPo)HI`)aN*tM; z&lN~jpL;0mj)Ys8VvlE6_`db7dHb9gs;}PW1eda@WLK2rU8k)sK))o(rpvdYy^49e zP~F)$A}v@O(y+7S;mq2evE}m5NYD7-BUSMb40}zvn<^koI-=J+SF$|=D6$OOnwiOo zJ5JBnx&+Wik8-Y$N)mp9RQ+0*2p}9WZD1tK zuvH&*3F?P_d4X#|hYf4TRTvat2{D~u1Bgf%KH60Y1Os2j2R>P0EYc60w{o0Wey^ zq>{5+!c`f=65;ylDTe-!8bhzy3{|h}l_o`_IdS3e<-eErQh~2Co)}e4oW#q>W)YD7 zk^b@o*^2~8MxG-F>o=n{Ye}~C8!8G~nlHOQ y58KmFU#KHX>8p{>iXJ8*L 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ᐙh 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ÐZpaTwBsUdZT$7kWV4;dX|RIlEJ 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%0DhZ>AO3;%O9U^21)GJ1 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

&+90?ZLaJH`c$o(kb$gF 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 z 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

d!pR~F%J>-dl|5A+p2 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�X$Fek=Ve6|(_1mbB7;RkxTV|ojxY9*Q^tiGl!+Nsar_L-Pi*CaD*1*`=p_y1-sk;sT>ach|vNcEpun5+Tovk7= z(}4_Gl*>v?g-N`3UztCR%s3}HGkx@UhLX%U{dy`vBz6z>p$;k-2Cfag4ey>ck3*W@ zwO^tEYx5BD+qVs}6mF`a{L>=A{(IyV;%ntWl24Etw{w9_SlM#zDrYlLbQn=x(b-|+ z{B1p_?fboO+IPhjmozDO+)adQ8{))mwd*>n^K!|gHqI2Aa0HpE4s=xiY;$SUy#Q02 z1P8Fls2-(e%p=sWj2E-;riRhhI=V&PTgnbn`S=$tVGs6Bvk<)dQxFbmmq$_prO)DWm*O8aP*8A@CLY z=&Mpu+Lxl)j>S-`WN1x+g zSO4Dm;8zq85GR;oEwtow`{t-$ToG(wgoT;j`+MOU|Ez8tZgiiqmU`ytZcfYu{?{6t zq!1qWZ<@2>b)qZCxfe=B83z%KhqIa#6?vw`XOF@gi8jTzAuk?RYn~~=%PXkAcM0sI z(lJyxOWkcwy%1YKr7}T2_*%_d7Rs*wb7i*XC@+UVb*D&>o5P7{s~S5Br=B~WS~Jp4 zg|l?#x-qI8_TuH$da@iJQ)kfX?t5Y%yg0496%mkOB$E|Y=xfOUkRPp@irP?3?Ebkl z>p=#jqwMqx0V3;Qw9%KO8}Y5P~tyWY}99sHhWyW+6qtRZ_|kZ(hp@V5pf{j+(|WZJq@`@HPpyZWeZgJIUt+svN5s_1@0C37M57c@F?dw8 zR3^=p8gxG;1!ip95{9Ap_|W$UDB|a;dG7D@PzO04+Gl+ia6%U!zM1Ax3QTae=^jMc z$90~qnZ_#dQIf{bXGn)7>VSJEfPP_YJnvqrm}@W zJ8=v$4m#_`ToOM|w(00>aV3NVQA_i}1+PUXAyDZd4Wpk&#BWIG}`Cr67p4`91#SigL zD+F7@x9OfidLSG#Z zzP!i9!ocBwb6S_PO-bfnehfp}X<1*$rk!1cCAKMYkFN|wzj(cI7QSMPyPv%^ z3ibprvFpZ2XFw3eKFVV{NKJdbZfvU4WGX_UcUqddEeeETj%#OBw5Z>`%N&iUVY}{6 zgvXsMDFyEDL9W}os<^;T`P;%iQwH#fx+Xi)r-I}=SB<6z^;@8-iopjyp{+QcLEn$w z(gh9BRx6Zm#eUGm+Q|m+c6#d6R|e@%O%(2GUdaFYF67ev3M zxE)SONCk|3YWl^EP%jRCI&O^$GcjAX4rlIDJ!F~}XEUVfW)Km59Pw=E^8^D=<^vq~ z+~7jk3}@wZjQxwh_qeP~qkrO4p9;ha^EcwR-B4B{Pu8(kvI3=Fch){s_X4`Q%88iFK zRpnW*>S?=nMoly@0ID;J^*|@=NolIR&S&s<+0ygez9`xxZw(k2q2Fc~I0LDhlOp4o zJ=-2^r==vB)Jn!i6OPc(^x2!Px{_GiLKLrl5o%pQcJ{_)`Zz=o|7HerJ6V zkZfvWl*;E{F>|xN;65|bZReUIa_n1VGB|7#0@?F^>%}})H&(erNv;q}$h>tu0X`DL zbW>4WpBM5uq?dYIZ|~95dLC0{*VZ;-euUihhjB$)+@a(z>D%-Rzf4k{$;R0Khl6!Z zd6J|MdCuYD$CJO09^}f%6YocE8S2~y(lEi!wbFBE&}RfoE6W~5QGtzIIam(7&Z zY0qC{iA*DqsG!Q{lr^X5b@Z=yL3@DYySIAwK{HGRVRkb*Vb(Y3X8ma|Xo@c2mUiof zUFn{&xo&+2hOcD*H|Tu2rQb#>T@f=Rb;fp3E~17Vx<7HaqLgiI=E)qHI*sxPMlZ( z=ld3)aSzxH#jE@(ImT&%*YiEngZ_v5V^AE)N*L*3=W;W*IHuEJr`qz`iN7F{}}tf?tlUv@fj1VEBEHs%Lfjt|>S$MI)2 zs=n{ZIZS7pa)UZnZ|dn!a!HOoi`F|GjofA{3#B8w5BJgO_HzE57&xXK^7P;9i8I|1 zUl==It6p7$XRfM!q*!_^S!DPhPQa{W0}NQ`TP`LvHIyxDC77m|*}lh8Be)g$9u5wI zsZN{6lHWvaPj<`8e_dNlMY7KG(-LkQB%<>Rr8#v^@x-xZhKx4L->+o*i6Pog8ryw&z!i z;wJrJMI!nI=6Lcl&bktE8`r{NsxL`DXm6ltCIUxf4{K2#CNuK>X6%x*V~R9f8SFBX zYbVCGQ)p&v$pL&ryGNf>h_tv4gNkM6@n^!a$g#2K_OR|)54epm{>4fa7%ga|aZY7$ zpL8=?bEU5>%U-=qzguzG$UxA~Pn!bOF@+QsUF;CF`c5XOme+;U9`P8;=FjjE>u=eYn)v1`i|>`#i<*< z-sC{N1w}&Y1l1a==|MJNa&-$23;wm|kayaUcBATWP(1j$uU_p{LS>BaW(~f$YO0PO zT|=053sT1~^EWW^OCv6dKKvR%e2VK)b9d>a1VAMC5Zs{e-wh~<&U#8>G>80k57V`> zFOS|`pClrd^1GDMr>mG%;8`Qa@aAkAhJRAU^IJOm+{U$XxE3dQqM)(ceUM$(9Mp<^ zZJ^JTV%GiB3vMTTpEw^7vYf21gx`BhX8xRnzk&|yJyGGGkUoB7aBlMO>#CKoXLDY% z`j4Gh!ql*Rb&If88n50@WTz%pNAE$lTPo zJ)t|vQB*_G2GC@C5>ld0bjbsMrx zC3SFYYNncvJY@U#oG25(F>r5YQV1dp-yU*16a_9Zx%771$gZ8ys=3zQ_gTh~3vqMo|HH5Z z{?m^BJ_x8xYZR`pE^JWG>W>Qq2m)bsxq~6WYgn6UPYxc!Ay5jeZ$m|29w)F)!c%H$ z;-6}om#!^IY8ndkp!9#a`s@r~YJ&#WP>a6PI$SeQN5p8Q(pbh7b;JWbULE)%ouL)L)HuKAbg+p zvYRgNmWAV);_g&?JzsHIULgN{y$~gF1)qF-LvDPeGR>=|i7NTls>DyD%GVQFKbH@< zeyJ^*o&~uj)KoXthJ*jKLlZ8duqt~C$o0u27pEbA{FiHS>)Vi5IlBv4*xg}x4sF0EqAIIBw;*%1)6w;X zVc=t?^K~=|sX(Qhw#LW$jvqMCps*`TFP6DImk8$f%kxWkOtB1Y_}L;C%f7Vpw`}d~ z1<1VXN{Tcd-`kHedGRW{7Gv2vR+&$$j(|vd&}i_IN>4}w_&e^KdeA)eZ3m5+53-+X zStQ4U0Jj#$WF8Qj(ug;uY}|P1+Tf-OkHtN9wD^(kBBQ&Usp6V%ns2}5C+v%1STZzA zWw-+yEpNp}kv`?^b#ri|)b8Td@(D$?VI95x+yg{2%S-jbg7(%02XX6Lb{!Jrzzd@F z2_E+MeO%YBgZ{AHhbH+PS**OovnhS#9I8hPh{DX>hZVZBC5E~<`khOF^247pq@F(<_$^bk$1 z5q}ye!%qTujmJ2qHvF~-`5c%KCi$h*x4reL!21Yi^Cn5H#+zOcTL8uD6MVJwZr))5 zROyos9xT2-pgO_6GKGHDaDJYlVs@^*$91bN-_f$>fbKWv8^NLG^lr#W-Rux?6^=3o z%3Wggc<$B81e|t2CCBV?{QJpU0hFL$o9@;hlR6)h1FH4123mi0bm}oJpd=YK?d7i7 zTonG{f_%^p3~K)8=bY{oted)$QOJF~?f7jjnHV4~zmTg%?S8l+gSejyf8>qez7qApeT`J@VjJ9c&xbC?uZEN80ykUfJWg{KOr^~M11v+T+D$Ka_f+pq zctMT&pcL^qH%c9RKL4G^2nDF?@UMc)<&<8@2#F8X2Pp+GPxGAoyt(%}FvWc>nOAS# zm>5CNC`OrTzUEGi{FAJtbhcuT*MCjM&6AeL?Y}17MmFTt)}%b72Po`^;P6e_9y6Te!fk3`ELnAr1C`vcdH%r{s!RWanHM!y9486=-fftk9ZOQ3lwl4JFa}knQuh z1K#$(E0c-u7&-|ruoY~{>NUR4DpAo@zg(G+Uw~jm-Ci_v?lo>aYUeb$Vi|lZMnJtrP>sK60mbCn_WDyLQb4dnk;IIC6=I$sn z6qReySJ=+WB@%uyatofPx(p326xe~Q3q5_-SXa524&)4D+eu$bt7!0p5a=T)&%lze z_v;hp8vzp&X?yYJkPI14)~4&u!EvJu&?r{*6>s^9*5c5o@$n{R^g=n;_7Hn}zQ)Z> zT4;0C%z_1iA9Ed}K2rK}apRAlMj4O0%!rAxlI5i1c-CZ%?8lJHTdBu0MMd6pmXN{2 z?ms(n1YurzH&^feSJJBTuw8WV&USrBqoxoN@1;A#0+3$jbkysZ9z@#?uGz2+k|6fF zfE`v?knU%}HlqK}&U1B|(84K}-=kaT3B&Yv4qS&7M7$|>314Yd=YP-=zrrpl@@kQPP zZY8vfdluEiTme3cvUv=|)^dBl674r06Z9>Mj@)c}~A9|)cuvxFHuBVmQ*pt$|Uqk$#^NYxzcwtZ4I%4tc`EP3++B02)8t` zMDCLYV({vh*IS`IB0fFHjnU>GIQ_JG<2mvAli}4A*p}w9aOX!m$H%#ni7P4cS+zqc z8IO+4>uRWEcCI8Nga!tex90l8>}i!_@y0anl%*{hGN&}kdd@S9rc@d~=dsdS;l)fy zp9lab`MEdLgD%^jfFhr+5S@=Ez~E=4_M|&g$h=J~GPil#jh; zkMqf96g)yLPw9U?Pxb3~dKP5rv8f$;&~U}G#!WhZWC_O_ z;^6aD_d|z_`5|O)67GTg%(6nc?zoaLYsgZs*A3N#|uKcEshA ziw_r$rS#JQIk(q7TMqjfaeH+5Ah9BhZtqWB=KaA1AoaKMw$)0zGd7(d%P7fsNE;W+ z;qcvr@%Reqr7->sYcE0Qq$A&R$CHlKbOxKq3oP+{RObgXy9MN-Z|0l{>I!vf5v2kj z*S*0lbAB16Go^PrGT(ms1E6WEa3tnc9q|kb3X+SU+TgD4B21NivwaEflq(0O zCAc2meSyoeA8!Fa2sJIA1(hf&4jA8ad}M_DGVM-`m`u)X6O1~`7o4JWCF2E7f>pED z-Eo{a-N3E2$rA+2mr6!eHst~BlG@|!dpAPkmUYdn>Z9L14vb`YX>0$vAV{yEpH6EY zJ{_&>6{{}&v8c-Mu9Cv>u_+z7%8yOt+fx3LB!1F2|2t)us9tZFFI`jP?FD&&^K^5w zJPhvH^Et}`9Q&+LB64|Yx5ot@+TeowUBNdbIIE#0^kSQs*qVokomY<+lah*4l4GKio~#+2mS!FxG;ka4z%v~!9>QvjX(L@Cdj(tGlpin6YAV)y~8h0w|6l%IxB(x{$h%+tut8CkIo0QqDdSm^;KOdKfxX6NBrH{5D`yb=E zuTIuFOX&`^Op{-j5Rb(q9g=QJ7i}u=0##`hPM*u5!1hv*=klrqV|UVAFKX zhjhMM37c#aH&Na^4V*t*P#Up+m`1dCxMp3ael1Lc10PtJ9$_Fp`$(sY*8KIsDMaRU zV?_I>y%-BEN`IifxFGLKPsPX4Uf?8G$zSv`4sCJ7ki|rR7K#CJ)&1PgC0n zmK1LkOH|O8lP-{V{Wed0-&}8k#ck4ZKx^xi=@S!uLJm^@I;5*<8DA*gbueLmV(@i?2Tjzl^#h_%BaVPqFhePN`!K0bG3M3c>=p|v1<~Eu4?(Wy_Fi_ix8>1M+M(8wD_#8kj%I9Ql__H9 z(cQdlJt-6H2sLgA(G`zVJg~8HN^cd#f<&FDf+DhaNX$MNvC{22h^OPf-O2D4}Y0VTvZDVuL56Ja8HamK%mEuP0 z*|?Z|EbY9(ub3dz*q28|xdDt`bRq!w1-;_C-$gGBtd7;+QSRyr1^Io4JLGuN;YTM@8$pTZ3(j&;$sEaTL2WxZm%1>wA# zDhM{*`|OL+vjK=~YGv{=fwY;ZWmvM-grPdOn(6#>f`-;>QS-4lTH6wGp2-t~2?3Pb z%<~i%UgkUzQnZ@>p0}|;De@&K&#M|{J$wRYp9x?UV2kh8yYdZY~vkDb{ixKNrhfuXVE?_^Ag9Z>{DF6rQTvtMMTKa-3~vVzuapL?nLi;X9}MtBfl_+`DuIsn6yy1YC=>JqO_xd*u>}V%j?*-*Uc$8_1hQO=R}lA zJe$`Onj7kgQ>{Y3sThUlnR+8tQL-_wFFhaJ{q>ow+N(%ZARJ%)S>nC^TU zb#F*D(R4Bj$@+D8>~;=#s}aL$UI=@;z&LVK%$*2FABPSi5wm*Xs4{`Li%(ra#u(h9 z>n5b*w~-i@P>qhuF{r%LvVzEb*-LdkJWwB3p~iv{bL1CNfprXFNxm&HSE3oi{;t0w z`-=bP8Ifa34$MFlYevDaKn30reT9W%Fhrj2H1Q zv!!VaeO?(y+(KDOUkQb6-T45;5QgN*yEI!+BzBZ3Pp5g}SXO=8Jez8iX8(5c{DsR* zpt+^^{p=`p9}m>qNfTqPA>Iuj_hjdbbc#}eET(nv(fJxB5D8Hnu7aKb-BejlC(%M! zc67!M7*aQB7CQUnzWL4e>)Sms?%P{g@vc9Y*448Azm&hd61_E>}DPq5sU9A7VePU5-cqJh#}rv`4^C_N4X11%sH_)Omge>#`JAE z=x0gJo#q%CJP-CWnOfzw;f=}FNN|Yw0r2jQIo(!422*o_j~YycCZ~mfCvOHIMp6C6 zJ%ZN`aFI_!GXmgkFzYI*f}`(JCm1IJ#FbldBT*t3!F7|(j!>mjSR^Ns~!yH>k0L=Uu zf~icq&~}*qx5E!rTZahH9j^A-#Hpx?l142PeKt-CwGu+G{$rV|N2&N|$QIbfsOGd& zu#|^9G*1*cLTl7i#v3{<6MfQ&)gaVT7h1LdaY182Vtm%Dmo{iDsf?h70R}g@{ANo4 zjyT%1TbS6%T_ZOAC(uFGwpBcw{ta8hXlEDsGZN81k@xVh`6x|ypT07(!aZr_l2ZO> zrTq&Mi%4aK_oq0cf*tmph7bL}^~^@Z>)GDq_58c5dBFLQolCBb4UV46R?DRH z=2DZlyE#BP-l?m_lpSWEh1bR&M>oiGr?8>*IaS4-rM%x)={iFzp z{E-2O?TaN5JBmSU@>?d}A(53WIqcEd;qL6LoD2F^FNd4m$A+MTuWAv+ji&C#YhHBx zn$P@&WeEgK=M3R%9nG9gJ`4&BGc=#Y#?3pPK1^rOmLhIytjBoAO;$URW}=A8jZ9^D zNL+eP1dM0M?>F=n4uK60Pt|W0lm}-cPLjw#HQhS9N?m35{@?GG6AgI+hL!ZhH8IP2&ymr_-0LM(%xECkw>yx+{*>F)XPzViFa6+=Wd_UI<}c>`-Ol@JO>vHtCjD8~f44+F-C&T+N6-1>jda>BrK#=LD#*5n`n8ycY%O+-nl)=E?>_ zfofNZ=xh1`yfJD$EXDNg>k`|S>(t_pM$H`NDZu2)uBtennm3GkX!V6B@9&`*mt+sP zk6Gq;PLnaV^kql&{_#l;?0a*bVsOE*g5A;MysK-+-~i)YYXF37}tovj;&fOw^L84SeE zTFHEeFcUW6sK12I4%_E!tx{GsQjvFWHjm?|noEZ7)11BrNSx>NcEYcP`v!osVy6IA z^2Dg)yX>kpcbFDGCbjb0J z=r;=GOzIHky#Z^S=El0FnlSl;E8I8g;@)-ZVQW5V^NxltV<`_?uSA!2x2MV(D$RoS zeY$+^QX)goY~}$?W{GV3)gf021Wz^gN%E(isZ$C{p{$|fpjO!NM9-Enb}7t#@fwk0UVSnb)0k2S&(Z2)^Q!x%E~UnU}~d) z*uVsgHjR@WqY2lcUJ1l~yRT58s@m}7=D4*X_x8zuWHD_%$j9^I#-ZzJ+wU z=|k8Lr%}Z+GWz`~0ZK&=@rB4ebJC2Ok?QMI+cUh!_po$lzp;lqZ$s&5rK_RSb^w{Y z%v6Q-^~i^F?4w2fM~Fk#V|(?dgme_d)X9zcbk)QWYo_kKQuH|Q$O@=oCazw zfepD*u#@UeXL6h-$tmfv$G^#rX=?GePbF}pL{|U7rD9Y$QOTBRHJll zEF5<9O7=>?5Y@eO`3eqslR3WcNIqB<#nANcoq$t{+d4gYV#Txb$qKJ5ZC#33_T=}_ z81z+F!}9G(vYD1dM@MdU5fExB;!4D+WBoTjC{WJi&5mg82zk2ME%-PW>8Y&Uv5#N;DcpJkG6_*~imn)-%e^2@z>?)y+xnDxr*3AmB)Pqub& z*mTCWHk%0;P=)}r9P;(+F6;SE{*h}~DYSbD#a?p4M4#*9-VFbpca3iF^numex1^+z z?5sJUxtKWUQvO$?4jLRNhcc(t&B9c_zNQr_z4C`83)ql=Qz7=eHC>Q_c`>kh;fqUy zWl82Npy$ypM6Ptyv>@w$b%~3#e(SaLtUb~O8o}~jFtXaR+YLboG$@dBe!`Gz>B%wt9-{Qw&R4N%9IyGHIWj-9v*gl#dE?!Y_}Y&>|b=8*|w)|BRb|i-t%&S zXBV3ypx>96S?vIpMIza~Y%2GK`uyL@1sbwe&UzutX9E)7Pz@%SQsvV5}IL&*lbPo0#7a)fvqcL zmy6WGk{p=oO|&hi{m&nft}A0{&Mdb#jqqB!c04pB+1llTVa6k6)9z;K3PfAeNzo1ug2sp$6-kcecuq z@}y0e+hi<_m1`-)HaKr%7#DyC^w>U_isbyA@9Gt*m;iN zJ0CQtp85P7Z)P>wX{MNj4D{daP!J7!n(h1~M!LcS_t&3lD95+jjctZ$rltL;N?#J+ zHkXTt^n~*!N}b8^Ja4#mN=HXcq0tBt|#W-@a~la7s|~)ZM;EEta0QbC1yAs z6$mq{`H}VefxeVij*I(bKzPh*TzgPdRKcW5irZTk0DUG@`tW z0n!v_Dsb>Ko5-l0>IxBa$k0^`*Vp7aTI(6Z_dWR(jGT6qhmiQDxG19} zojvHYC*@326^@-hZ?TLR$yDlLdcEt$&(Kg8!dm3T(6)e@`YTDYUOOtm>8@)mzlU2G zKW11olqP1rE+5NWUaiQ$LHOm9sCVn77Svs@y@ed1cINm_08Or2`EARhg1Iw9@6*Pw zFSn?PdY;v$6SP$92j0-04gH6scjmP0OIj0{$Z64l5PMCU#cOoCHq`oN=b7cnD{)2h?*U}K@tX-XZ>6JzXqyd=WvXDf4 zN>>vR2}`=-Gp|-}4f*WMToGN;U0GpnvWY{B#kh`a$}7ZNwdSEOdU6}szk>#*%h&LS z9IQ)4o$CRZoEvTeo0?SS5y72}F_-Bly^l^^-*1@+MSqNJ@PE@l$iBFGE84UGnQ|TV ztx?Ej+A4Ht4SlsSvGP-w!;Y}bRqWyU^DmNo-fu2Bc3e##RzZi!+$rCVT&XYRTaJI2 zDD;+vdBDVL&$E;vI`|>)?dQT+mwc9&%9x zfA)0VdvM~9+z6f@VH7r64TVF*sC^DpJ7bYbRHlQr&(mJCXU@rtHh%E#(^B7fWmHQ< z`|0gC4iR@?Gi&{Ib~6jq{X@4%(_ZG{ad`?{+-06>t&B%n;QNq;UEXt<*NM1Xte=I= z0@5N{Dk$;~f)-mqj&Di)(^S_D-FQiM6|`Sas&A(j!>F|Ll-?-)Q0PaOIG6PT>9eyP z40*dLv4H7)*k_UhY`)u*W+u}I|3}kVa7Ed54R`0bl`CtC0OkM9Xe_K1E%_Og^Z2!tWXKYahQh!_fewN#6B zy!ESMrlj|-0HF^rGw*!^eLX8zkCh1-vUzr-_UrBP4oTeiagX|qe$uV^hBD&bKD*{) z;KS6FVy=`Y&O{r^R$7}7M=DXxIHu2oOtjavK4w7;iSLB>R@B@s{|8~r_+@x!tVM8D zIi-SF(S-r0z;fLE4e~W)0ehvG^c_}@oxG&=N@(BX$s=bqiovX)QXB4^hDgFen)>`U4P7|<M4J3d%~Mi|A?(ny;>sQqwnr#Wvf8 zp%gwNzN9|FDtJNrVtk&(JF>|Fb*;153t!{8BA-32ysN;aaCFyFUDny5KKW0g zoy_?|S)Ro}EM3y$EV25vi{E_}Y^_PxYHm&{ zPKa@=wX#d#4VuQx$=bVgoSWvoiFmBveO$xmUF}%8LeVjb*YElP{!q6d(CcO3`zw4~ zcWl2aHI1c7o5OA>MQ9pSf3R>DpFE#XZuv`9g33;fT^~U?l}W%|HL(x1*YX$+^DA*L zj*!irQX`e32 z+^@Z1xV$8Ve{zs z^%(a|YxFJ66pyp#e~_mKu+I^@EOZ>!@zJKf9HdP1jl%R5Z9>ZJ@m$X8ej6p~#(!}+yiWM)nU1VAZ^~vN!~4au0Z#Ss zW#^wHfm(#rgBOuqwzHk9y}`VKj9AyasKbn0%#l)riSOzOL7okoM=7_j3ORL-pAE0%%wnl&>tU=o z(SgNFvlh&IQpj9~#oGPP-$V;Y7YaEJ6R{k>PWZj}{;Q&_9E#;-jJU^Fu3O@WC^c7nSKiO7Yav$lN6_L5Uw zrqC!qW!q=1aS$Ta1$#*bZtqoZ`PKBu{3RpHL>GixvIPH>itcQ7$Ol@-zkMsuuv+=0 zel0Za8T58a%=)gm2CsX&sv*5^3(9^hz;w04xbe+N*|)HOHdz0(d~hvsza8~#b;R$? zz_;geqay6om+(=<9G16Of5ClInW4()N3Rq4wroW0yDfZv8?s`u0OEMF06c`erucc9 ztr*|dOypYV-aF{O|2X=6lEdfO4k6dD2;nDq!y;O-&hEZE6(zsLDC?_jtE-O(xptN} zPN^i~<ZKT6OqOa})GKDJ=Vr!QIJ3J~xq0>vqI4Bm$4X4ohKK(s{>G_Xu}__Dyk^Cat%x3d z1wVj-plichs^-cGiOK^T7}FwpudE8%@mx8P^wgjk`$heGJqV+O;S&2-Gv2@!5u!YY z%9X99$*A6U5Q+82$Ku5dafkSfb0;-|KGZi&hi>DG^? z1r;^|4xfy?HGXeqEb6uHYAEtyB!dP@pm-(XHg~0nBD{fzRB%KdXnjzm4*S{|_b@kO zO|F+CGm}^X@yF+ppS4HZwlkcaqqb2rigVk}bKDXg#vW@l9jY^E&5>kzr=^#l;jhR0 zRz|rLy{g!5nl2OdTDO7z0=_>{A6FDQ3-!N_sD7CET-V|XWlK6bPO9Poo_uC)eQ$`1G7-xgma#w;w z`#7Q}J)j$y_6fOFZHPvRT{(XWgxji>y-@ken*}uE zxbrhM@3LnW=mcy;1R=tz^+KBlz6RXp_SWos)|PT63IA5V-DtaAV|GP~TN8r(1}(*_ zIz%H^d-J&c61z?mi>)+%I_=@!>f3`VXR@5J@6({?>aN ziwBHSZd|L!3tbW+=+0d_t#XJ!NDZXlWoSRQq~YRpgjwDB@M8YDoaOM3C6CSYyLJ`4 z*FoEJ-u-_P@1Mw&io~837%g{Zm(tioV~5Vt?oWdqk^cn=INfN zXSRg1t>~PMJ(}?G3-kq54DP=tDg`^^J-z&@;#Vp*D?jsU8)>8Qz5r&=9+=u%BXq0F zTde&tKdBm%^tzb;JFny3Ja z0XW8g+uS~BiPfC!oY@`_n^%MllgiN@fB_|)4b*K8XAPA}qk;8Xu%s$CRy#YqmG&xFuMOm#6-`=C+o+|kzafdwF(&l8f$~qK&A=la`wFTw?+fmAlRpld-Bf7cp)n5kd1I_4{!CJVhtg5?!@SUI7 zd-;u;d=BFsRSE~07f6pskI8MD*g}y>0dWCqz01##-L(anJ=MA+1K88uaBki}-Ufwd zTRNm|n$c#<(L0`HAK&8Rg7e*tVrk6;ZJjdjBb{+12;siXxk)p=r9;mB2eB9;Ie8TH zr&~=k*((vfboc8QfxV1cBP%vnYB>Y?fCo4HzVU3Qm2M0}kLv>u=JsVufxVq)bY_n@;ZtiB0HPA2}AO-tU!{0R=^ewxk_O6w*!Nfdz~} z_}g>1_rI;pT!*b=B(I;OZ?vcZV8ahzv+?Yk?#XK$T7_Ho^US;M`O`_DwtGfmIcI-j zz$PIazns1qZ1brm<(9-2pCY`12x-$JcX*A?_6!WTJL*KGb-T7;ymrY_ugT~l@P-Ll zRdmT1rX@cDH>XLWMer?_tr(B8|m~{FKW*xs9#^_39&Je=WV2u zRNGbS%fB=kVA2qFa-mU|;x@Nko3BFFiQ%@jw>_r@-7bKr=Q?paHmX$}n7bSNP>sSx zL2@UA#`0QMIOU-mLJCOE{P-Iwq8bTiG~VU2aP z_T}CE`gPdkzL)}-l6D8z&Zz%`c+-_P#CiC6bN16`d>_k?c|Yk)FDpfXi1?T|2KuAV zfN<~5#F2CcX}(E(;#N=*I=?qhw%|2zJqMl`Jev6q9>Oi zvwn&b3K5E*-KW)_+JL>(l}NHR?c@~m1^(-AgSVvNb6Y`hXuMOKS?1Tu4k?gV`CKuW zLrqVo_ow*Mf7PfiSYPghXw~}CED9tNvIl1V2PuU&z&GeY0F{A)cXq9&P8M-$X2iaB zd-oTCX!NcHR=&HJOs~vnZ+xDmxl;*e=e-d_PjKDjlUwgFd}Pb@rsut|G^Rb2TLw|n zO%a?e3AeQoGBA=pZj8JdI?YQh2;j~gtJR{}%wamoNt!18dMydgUxBG~(%DbBC9);E zjN9h~2aVJ>@|k%~br^4Kqa|D@tA6*3iXjrb0&?!wf*(xA<_4OY6Yuzc+dUsu-p&uT zR;Ya_c;jF$63oU5^x=Q0w=EzBJlqUIQ(lsH;Fv3wSjp?BXVm1<`NR*OS+_mr=1KY& zk{_#+y@l7D3263%W!-5rn8bc~6Fw)dhTDi*$B(MS?vs}300Y|BIDhJr7ycI#Nh1F| z)O>x8TR-s9>GdT)c2QFMqH&)cB~zBW{fj*^xAKKNQ>VLpIkBTkj5*4GPFIfu?ec?i zApLUDE~~eqv0G$!Q)h~s@%2|5jaeC2*GjuJ32JkiQot?qj9% zxdz#rn7_R{X4MpR%wY}=QIAL|MTfoBtIuNsq|Rkh|3SRioVzj^G8vUzV=Y%Osj?!w zb9t9V5uCk41mFVb0bvtrC(cyfi++q^C!i!E!t_DEqw;yu7z00fn;1#)6c!v%IOw$x zke~Dw%;|N4YU%tmyX}D%R6p5lbRjrBAjSOSG2c|(g>H9Q?jJ4wuv`=xOf@Jtjg{F> zd&wtp@g$B^YwO*4d5g>o973(9soq3ii((zK2hqpGh!{t6v7%s|3r1p1(4fqIb5{M_ zjQy`W$}EcO%DHfV-Vi=ja`KOJ=j%c@(vLZM4`G ziOr1NdUS(k0&NCeUsF%H?^;@vyAAn4qQmJrGGD%6WR13;*O__ly?+&@P;=nnmimmR z#zOG5qqo05m~|&snz5cYIcB1-!o0=FOaBkjbI4rH7tW%BO)b;T^0T*~f;>i!pPS4$zSeI9N&@!|rpS{~#TtN_(aXs*MG@p$_#?u&A(hrNn>MT;ZP zyla>xjoZUN>=$%B;^L~DHb0g`Cm7FF^0x`xTkBtjYrAywWcdmQnbspt`|!1;Zo?hD zZ5r;+JHEx@N~FoMC3O1`D$2NgkcxtX1#l71pxPe{bjbP2#&)P_z>1kn>%~4N&sMBz zjT-Ux!*IjH2{N`WI)y&Zj68f+L-MM`HwaUa`XZm~PqgKxU<%6u>&_^K=8?iVF^M5# z&7z3V-&Z@4Qp)sAm`A>Kb>Y2T&tsS#0@(vF6Qr4KxT!9l(autMtEop02npkGui2wRL6&`7bSJNxQ(1q7TU8EZ zG$K(Cgl2^+RG+^5@_FhoLt}FGG(}mCQmD9-^W`4sQI+3W5^Hlnwk54z5Xo*--OR95 zGGH?C#HQ0*I+k0*^L8^>o-60#7VQ%}V)ATt z0cnui!5`iUYv@Hgvii+l554Aot^;Ev`YUAe5XR5i5Ex8N>*M*rHUsbLm@)hgCgAFZVJGhJwb~mG&EUw6DUBTw6M7>6`Sd7aY?V9A1Vw)? zC^_77uZUt#bCS$_mIrSL=aSe1qMgZbSGw5hZw5(+QkLH#Fpl^L^wn0>d@pkg%lQT! z`}pz8bDMwJ^$A8Hy+-ezJbXzp)8yT^P#&1$sNQJ?t#P|duQYm7R}-bL#}XN{>J4zB zC^O;EpL-rC4ygwHiiDX&kJG-)e)si$g5T>jkJ2AE>OkfBB9#|X0KHQXuN+=jc5NG`hZj2k6g3$fP5J@u>RsiOkjQ`s(Q0IJ5MD&jn^uo zxK@qR38gY-Z?Y8(?;AKeI`L5Vc4liWg))pjrYS}HmBOFfZ4kR;C3!tFVGqw0M)%~o zULi{*JjxcO(3y8mGLaf=t>vo~ps1U(7!MmuIEa*bEt8HNwCj3D0uR0vFba?obuPuK!bNBqNv!?LobN!j5#@3lX5zHTkS`u;GwF9&~Ty~=vNtk6`4x5mMl!N>X}!r0)I5UFE* z4tSlAg^if4o1xp^@fNYJ7T2hZsLI=iPp}Tywj#|aS$l83f0hx(x>ZyndYJ{-s5nBw ztJNP=5UNNx9%Hk(ooBN0V1LU8$Gd59?Bb7kXUln4sNS)JrMj-AdAkZ|Rc`Cv!FlJ& zSMB*zl|Je}2niT|w5tRNX8f2kyCr+;ta#$(&Fk$G?rSC*U2Pi!U-g^rF|9>v-|Z*S zf&QoGV@{t%+HxF2{ReJO8Fq;?vlsL*s&jfpX39e!-o1tPzP!kc9R=zRE_)2_i^APc z?W-KGjl1N%Jc;3Df==!GmCo%C58OLK!^P&?AD>Q=(aS;iMd$}EqJE~3+S2oLHnyVn^AELx zwzYDl>?)2GEA6`l54KQsdx~~3mLfQ0tRJFMd$fJ;k;CDdn5Ip9Wra613XJCIw+o-% zMr_eqs_L#sE ziCUH9{f4Ic)d4WTU>5HsTmbdYCM&agL1HJ&dn9#;1u~0YYSm0dLXDtlGv_Kae|UTF zKZul4NE?=Pp%rTeY2kBtoNLe9(_5##&!HV!)s4<=lY)Z!da6)2*4yp;ozV>9S183&>>z;eyI9fgAgZ{Q*?zOlS@>E9#@ zB(K*ZT^fQ`R0P*fRzqQ_us@E(_B&F9>uHJ`EyHQqUw}W(4;H@QOH2-lUNFF*H)(@| z6D6x{*>|W8V69aujm=#2(5jo!O2m%Lg(aT(yjz zgn49m2&yQ(`zDSr8F^4*`B=w>MPJGIuxk{1X}Om+g8-vXYvRyc|H6zQ?IN#Xg1d$K zOTDhA7)|SOPzBZXz_HWyT_|v5@LD)=ljoQDGM$*jNL}rx7ZcY}9P46)MwLvjRLcs> z+3FiI-mxa^e397<9X$_=-IFiMmr^$!@h!Se(ozCt_zu65qteONDRxT2gCE zE{>5?Y7SV5qgCMPKz3@ss9zP^i8lT1OiNz|uOz4XiyF=mm~KQknHq`Q&!hq&B;+32 zZ{u$dnVQ0~%`RtdZmL<4KLm9jI3?VWE6zfME{n_QKS;`#PO2bh$T`^FIqvK2SbC%d zC#(3$99^9Urqj1hz`k~B8M!Wl|HBq#d6FS}nl*Js7vrbOdp}!VSj`dr(0t$ad6_Q! zwqdIfZ`_acNTVK%o_V+=HPI{G+;KIhjT=N%$-9p$&;N^)VSt0n@p>O0{>J8rFM(l zh;w=spwhF%hpy;_<-);a{uely&Lb<9U^^vc<6XB=31yiV_0v9t6ZVZe z?ad_|uSpQ;`hK){np}2a!s?LD4t7>fiG3J2_EQ7Sk;tBbBE6i zJl=OdQny5J{7p2P`ctnlCv>Iky2)t*U5bO~ymsz4>Jqsu8;*a;4X&^M47_=8&qzl7 z{4AdyTVlOU{CEy)6awcs?_FY#?vHbiuP{-$aGx=2u&<&7Hf@z1ojJnm?yZI}S!OZD z>>l=MNLgd9amcu@)a45%v+y3fF@ALVfR;)uS<*QED7j7Rqa`wlnFNz4l|Aj{` zt614B%A$$u_2$xKOVJ^dz50GT%M?sOehkXs2Bm$TqeMpn8pHWoY( z^ZzAUfja|ry@Bg{yUViiT8){-uu?-HD2D8L+G1o^6ZNJ(h;+a+%(%?$-a)f-s{E{Z zIfCkta1p0pt;I!iYw8Oj0+h73`v+^XporKF5xUa2a*ABF zeefMdAvUubx8Z$JV6gkv&5$I=qC2x?0;1>F>5$}kGV?j{ZIc1+1b7APF_gIdsD6XX z@zLW%gSEbmutsPq#=Bi}!en7gpKu7Y4%B-5n1!EvL8}$b4ANO$j>|cM;m?Y8de@b0 zA0p$M_h?30^yN-qtU-tP)Mt$0Jn5g1tyxpf!h|ITMIm~$zvF|@EaE%Ku$tFKT{L^* z@sl;5m!>qEI8Dxa^B`>gg%e9^58eFmL#gBX&1*rj9m-OS@J1YxX-!fMt#1Dgc+X*d zNdNNsF7xZ#rxP6Q6QKZ2MAcBo7beTc*m;_l>@Mb97?eO}mPuA`T>^bX^%lpptp!y# zFf*$pQGNR7K8Pec(+tDu)!s>wD8{JcciF+O6XOugU$+3#GZ)wNyMFAn@JGGN(O>;V z$p&ZDl%F9kS#AQ>Y8ZJjXi>32S66AK@n_BHf8xNlN$zX0lFV(cQT<&knc{Vaq~?>k zKmh;VNQE)G`>@2fl%xcuI8>*9ONUdW6VzBgqqrTNsH3{>NW|d*14m$Y_je|;E)m_9 z+jm)ZOtn$fLaiNX{9?(EbZN#-2zN@*Pp%<+Q+JSL;g0!)$H|-OdcAe__BBYNRxD>i zR|(A7ej&twe`4+;ooQNm&Tw7`cEBc@4cY+T=VG21b)6%2byI`@?=;%c;;k{~$T`Ti z`(KXTmR1G5^^>keGP@rSGrH~cu7IL3ac9K^y777hGx=)Mm)`2r8>5fND|_z6#Cs8< zCdd*AWQiE}e-I$gySTQ%t{&v=qCIVz2xee-s($$RLcxC21etGW^}&!g`5B?O227|c zs5}jKn&fn(u|Vw!%B4_Xo)tzW=T)Px8`f1W>LXy~5fy(R;QjPYCco*En$0RSoN zU7AoTfLG)yvrG7^P`JJ|e=U>jy|`H6p9v$Aj#F_jgzU!>RK=Y^(D}QZ2C0DhZUBM({rw1d4^cBgNd_*b2VxUmf>X z=@Mh)^C0jc*ZXzL-3m0DK&W(j@ajipM<3sKhDepo$=-0^`z3Y>@|f81sUXF?XAI) z$On4&xKFKFN_PXqmA2kSG7s+s)Z6bINfK0ri*e(jZyTGIjlx5E@vr+##EB$mVBtaS zG2V_{55^>OMiA-j9gXJ%hQ%9Fgb&)iN9!g2I_Pb(u(s$EG~;XUWS8 zczPzo;&yZRpMjTQ|p|UfVV=};w)F6eJb0#Gw&9xEN2{L6FC6t*xEW=0l-4_6uFP> z{VLlw{x&-!pUK&lbnlJVuO8n0=CR}W{RITqr`WFP7rT@dHyLL6{Y}qa;j%Pn&H!#I zsT$pKTV5#{#kZZNXF)G-)=sIix862@F0(>NwS`ba$g#GM+bPjC4rX?n0P83Hl~ z=|;o48+`8_3~}FP-PE{S=UP^lXIMWu2D?9r8+UxkOs4!OuGBN$s)HzGHP+VHDTuuc zZDddL^~4RtLXHH|+psl2jql43>z`5QTe*IhsS8yahXE&y#G;zFmBTTw%gX}|13~x? zfqpKSuDH2ol>3Pd)jvmj=A;>Pt%W74zqHqKvD4nwdv} zjZ1x|0WbmOOw_ti)gow&+v|3~7GQTIT;)jf;ru{pL$;piF0b z-5mLAexHB0j+G!2K|Ll9y|`-=F{)5p~_mYtMD%g=t^ zI4&RxoNKj^z5e+6D$h@THEaY{2+WsMRLkQ==1QZ%C$z75;xUzR0VX|7q~gblh)pss zyezg!bmnDT)^5&@tbn$p_GqVn|HcuRa~$S@FgKR;{)>VF2~%grbJNtBP%V zOsvFITaRoZwzua8o#W%fkR{oRgTJQ?r-RS5VUj4^c9DgCkvJI7-;X&i?0)wIx)J1i zKCHa9g|C;qa}`|Ww%zZ9DAc0X5=7eCXb5RO8jh9eS#pWX7m!Ek=v$Ktm6Z-(I#GNf za3KpT>oQtZnnJks?7k-r$5;3cy0X*}?+;5Pi3oWkITR1!90A6fwp^87<gi~8ViP)P;7IS$;JQ~WdizYo6lFAp_@t0F0i%l@?&eH1A!na zpNxJM-EyEau`T_J;r`c8Xk2_xziwru0<2}S)3^>s7Wz9^!F=LO^3l{^b5a1DA7cIO z#R(AOEdT}}SLC1f)lx1`s;8Ar}CJ*NSd=tFLwitO6q98D~Mgbt}I8p_DVtcrCUrYfe zFjW&)YS!*pZvBDSBB87&#eu&@e(yBDth9}*DOoOVJK3O$Os|NsImxs5>g}Ce<@Jjx zH0Gz5@OOM=+s-4yZ$D3l)_PTVRb)i8Qi2XsL|Kn-yoaD4pii43m)&gY%zA87va}(F@^*I= zyN6qhkaSs}l7T7iCy3nkS8+Z?+|+bBqk|!@7LUbdiV&<5nX&Yw>m3-33BgRWS;udv z;_~x$DD_ijY}F-#yUeULYA<>J$f~{<=S>5(jwT$`Z1=ncoo_%V^mo93)YeRj)-U5% zzZv4Tr__QpLWks^W9%vtx8~DI>Hpoqy6aN9V@CwQ)!TR{!Bp9n7Wmy4wPLiOVB?A? zwJh60)xjon^YJ=-VibZ{z*MV$D!8{Shwuy8mAzn{1?1gnjZ{W_j5hT+%T_|e)vD-; zqNC%M7!5S>p$y*sc~ck;&dpZ#nk;g$a@?t~r=+xqsbWQ<#cjms*S{Xlbmvn6mAgaT zx4Ba6e@%k{3iZKz3Lk8l=J=nOfGweOzE_K+RXZVS%*!1V<4*^g4oh6Jwefk69^35J zCe$Zf%9!g;nMd5Np`JH+|LT+iz z12f^>oJeTrewkkvV8mt*4=ck((5<4np)S2>gVDZtQO3Oc<{TlP6V@!-t7`XzN#{E{ z|E5bER@6Z_!&|&xO$fdobF)tz)Pc2WEw$oGJYd*d@6o_l76{v(vm-I+Yi9`pDMf~h zg3VM`EoNEBbMa(>@D*NLG&Kold>%V>`|%toBU_hp?yWE$wL-WMFL065{$JDa9k(*X zRtFdwCDO?HVXH0MJ`7O{hP!v3Q%bV}tm#~gyTmHvSEn*|-UFB}vzFeTW1z)|oijNkluC-Ah^6*NwL)8Y3KNau&rg#Fg5+ z$c^O7`9Qw(t(kv`wJa@xjKny%A-oHPR(JxLuKc{8=zO^*2pQ0~o^Ibh$*JEy&rnlR z%mU1z5dzZk=8}a-A-wruWAO>iEO`CcN0IUZ0gv#FUF>>I0>PHnb{dGORjb3xOxB-$?Oh9hK_xpe zDNBGdQN2rzJPL5+E{i^4we-ORoq?}p@y-$%a3yOGpNCNijt<&F11pEPrt#!t$DJ&E zYn{n2Y#AUGfZj+Cn~``hi8&c}uDe$%gxzzQQH6Z}9`djBKENBK zihTVKvYW5Zbt~AGdfvvcR5_HxJFoQ;>0`OjzC>3q;XC zIGP$!5Ayw2x2M*C$+ub{(AwR5*fW_eV?P><4m?}+o_+y#tEx@LnopFyedfF#T3pIt zAA34(=o`)x|NMTfcA(4!xN?lMT2GsXYqba9LO@yNlCgUILh>E}5#0+<3kxtXe~)Dz z@+n?N94nhD@fXXLp62K8T{0JPkLR=RElQ+u=i0mJ4(OF6(gfrbv73M^09!4%MWp0Q z)+>XbCPT}>5%bT8Bp2w%#gt?S_vx%aFj4aw=~SZD!PYD@{lKobEVE@brr78p&0a=? zd^YC(<1c*nh)5-~wAP*qhq<=$V@q`X9Yy-QzJY(;Cax;Ab@A6`cWYs6629bJ#=wxI z<;Spj(t9HB{DgD08$9vS*Iv|35ZiVHA0A%I73Ekc(xE+!_v1H2wPp9xHxq7mu9aPq zeUiSQX*B;m=6uf-7H6&y&V=&&cJmfZGK|(S3m25aQ-j~6ZaFgXl=%X10Y)9ipxHMU z_VXnDdXxi>Oy$m>d6oEKvXVXGQ&jaOj`Fj}dpf?RJKIge)l_{vpky)?Fa80UJUE3!%sISje~fq%Xo2r?n8eDW)TBKf%hphu&hG4!{ zORzZmw1I7J`E@mfv5J^)hjh6}OAXWaEB?JB78e^UQBlP+y`0kB1NIDxbZNG<(Sd~m zcpU^kZ*a|>sG@?HMJ~>LYFu)LYdyM~E8t{}px@O_0f}UgIVVXg&2*x==B$>tU)Q^k zwi&B!P@8)k9l&fS;qOzsw+Baw&md0s%n?pWME(B;(I#0uQr}_^*}JZNOx6lu$xuU( z%fD!xS(7kwlm!%}JK{HN^49Fpq>I^kvxCSb!@r?}A9>_K967a?jss*ouBr4R4&VA*w5T zF~j!tE*H;*4gz%`AMdzMJL_6CRy*jx!}R~4{$ZZm$4b0B{gItvVo5fdfp8z?Gmwkmmhz8 zGQ|t%@_S}I@?g^tq8DuVa>U<@o#trp2BSFg$J;&c#qU)&TKRFa7rV(>xY}FP*hZ3z zMLcwFnra3ts$teNO{B}#b^k$h-=QxbFh%e_&>5ibDJce!{%$fJGynD`@olV6oGav4 z&a)QRvUWZrT#`qTc=-|{W_4eYfWz7anwNT7i`JxRecPVV7)0&%`uG~mQ^z#fy5Wzs zYU35^<+l6Ln@V`{rSHKaEWJmRePCvZAb5HjD7ZGpS*I5Epv*vlWxqAs+WaZ4mxVbv zyBT%RvApyxo!0p{w;^ctJMR}C@}6&CZ8N5}d`>RKs$&g%o#ajXqOSMB1h~k8mN{?k zb_|{1U%IXciC%JuinHrFeS)rxrBGr47GY;>)eoPx%^1tvr(V3PZ>OzoysqEa$yW%# zFJmj~$DLB_b|^2!Cl8ud%=6E?xhHx%(8@WM>V)R+gJRCL+Px=0|56ewftavsjy-5| zOMRlxlGHwm?JyHf9!+(P!#Hhq#EX;h`{{+GeTh}mw_xMfjS09w znU}9E%@B>h*EEA-3TAFW>V5goXjY=b*9CXCl`%42({Z==GY>;(o ztCN9@&>^9Bc%HBG(V?S!23}y62vN`wC=<#k?Agz$uF&YEBp?CXKrZ&-WSw>}sevvS z{&R-bMuXB-SQSfoS+NlomsBEuhi75t-4IXTz$s(&YBKM`Mb3a7eH*Er5M||0tIh6$ zL+)N>pNNw_kJZ2H@s?FAkfjLyA~>Yeb$;$1emXxEP3H0`{fr_0UL%+#u3nO?jp}J~ z9=$M=9zB@@S6kD$$v>CpLHOL!*r2iZqVwe$d7&BVW_!ZqnF)F~QhZzv^z->g-)BDmX!`z3NZIiP zRg08My6j&E!v6G`8_scgV0YtCm;;#B=B_cYVx>n0(2F+7(c1|n=I_|}gY&A3@cJiMyhj^NI2~=&W(m(63@8j~ZGC)2yr!pa=|ivZI_DG4->M~Z zs;-Tn|2|MGTJrd zU=)WGz5Gk-K1)@oQL7RAp)hTt>ql|UdL*xZmbbN@CQ&P`E!+&&zrm37h&{dj@@}>@ zO%8sU+=WtI_)P!TW(Lm*-FNIVP?o6$xsN6f5j+8prh&=@-`Z-rdZfb5k6$+0zF;6Q z0J=UNlyvRsF_&LVp+;ny)52lm{=I7n{a>Ja-3aKArMxP3Ws z+f7;?ozvu=Vfoemq4WRbZpwS@wEEJv5Yp`g!oLR3FLYQAWN)tFzrCKV##DEIQGTk} z`Q<29E~`kWz@8{EPd5n0&-5?Dun?ZcX~jz%fu;XJs%nG4$Pdn^3KpYf5r*9L%FMe> z6CX#J!APEOXG$BwCnfons$xnTp`gvdE#urXJkzP8*nwspxeem^M_e6<-%Xyg^FPnR zH5|9Pd9UkV%P*2IzSP5bj9NAQ_;&msN@^5 zYUHfW$J&1UC!P1MPSl#)zDtK;96Q;k)MbdmSPRU{+1u<+8^g!fwHzk*@l-kM)g^*#%q9dW zW8c(NLCs37i zt0yciigFt#;;o!E(2X&#Tl%g+fzuxsJZg82P+Z_qi6Lzcii z&U*SUvEY0dhWRV&_w2+ZC7+b){~nL1KB=wY6Ki{nf>`8*`}d>{IOH;_tBhxBGc&MG z)z`KQ;3+p#y%iM}NYFaA2E}=g)ELVtmzObfivh+BMp8gC3%if1Teqee4?tcW&a!e> zh2<2GPlET)!Guy5;K-2OMHI~qv=)uqqIxP=A?2aDPu)>N54&Uo!2^mW9)o)Hm*#Vd zEt*i|HFI-I?dsdewJ&dRY@MH_*;NDzV8_gB6Rh@39XFrsX&5Z`=F4*gcyZDGX;x?M zz48TUnYs0-f5Oe&ft2D4gi1Yk2G44!TN_xq6)`d|M+3`X8F zDnaDh>yQAdQES3bQJAS*8)d^_n<-ut#qUNje`TbJOH7J8rvQ$w^wf7#gVw-hZn#*z zOB0dD;4|XHKXn8&RP^iu^nmR78m`&+-0UY|X9Fwh~6uozhNW9Ee%f_i-nE z`Ewmh&(rF{?eIqR$;i6qwFgA(6+e;fA=HX?V-ySKwI8CaT~ADBJzWecvAl|Otj292Z{csVXaI=ZAPmt zyUd<&c-ErmO_5UY8%@abnx(O+=Bnu5xT8x!VK|hk7RG+JIR@`IukEY-Gp1XPZU`m3 zzo2J{5}EJ1!26Rq?r-8PkELmA9a1)1XQmHeF$?u_f7&pZgTPFe5q~dDQATum3>T{< zJ?i)mQVv9B<1y3w>6BGh@4LRMPt>t4zz#of+uVkN4Dy9QUcsk%ME2`wrb%5wfMsOvP;b0+n@$i8NT40;;LjvrdpzFyO zTIbf>9KHn(%v&swVrB?y-DBL*pA=sY=B=saRmC~AHrIR4tHk^H-CPKMJG1&edqU3% z@uk^~eXVyzDIesH?5A1dV8O`SSlS$p1lLhH4ME8YEcr8d){YT}IYe9ZLlCy%9LF_0 z6=G>l!Sr;YD&P1Y;unXO=S?BnB^bR9|I|Nsg2@Xwe8G3~b3q~PldLhPpA@SrvHj`j zyPXGOKn?_tWc*$l5nI6O(Uzav;%X0~^J-rdl?-8PuSLEutU{!Qt7*Kay#HiDY}sTk zg-mwk8DG(^XcmgkmgkMo-+LbR8j=ZZWK}2m(az%XZzFx9?HWDZ!Hx5Dh>f`l4n8iS zdd}&at8Y~D4I&%27e;ZoU=r0bZI7ozr3-s*odXc@PduX)ZLPtB{yk#P092U?d>nmbChW zMiy+~D2n}l1Z?B6S0zW1412Jvx4&2agM8EF=v=0Cvk}!k9rTY`+Uulb9ypwnjzZWt z$D2ieZ<8j>O+~(r-f6GpJrG5nOJbb8S0nv(>3kRw&OzK6;7Ri8Q)4^dE2kyky-`(U zOHB}6zUpZcMHok_)Pw(k@7iYRhda9LhzdMDFi*NDw4@@tIW3qNGxSB9imQM+VpXEU zPrMV&k30&!evd-PqGWT0wGv|Se{wkwDw{gjN0rb2Jgt;5Ow8>u{J=W z!%N&8yF@m!kogs*J8%!1L~|DI1&T3U{m>dH3s(Fg!(t-8@B$Tfn+(PhWz++uM7?Rs z2soR)=CHP)SzC}RMpxI!p;G03WqquENf;KE`kpsfg4B6A5-Ke00fuP4?PyV-kvsH1 zl>No9c)zzXllbjTiiE`$(l-41Rjw{baF6up0;8Tpk;6Qb&?|hGkNMi0!%#_OhurAs z=-&*nSJGaDHK_6=lj3Vy1!vDzU#$k3I9+PLZQW17#wWr9Kd(d^qv_wqw!Db@^?g4(Vk#v?}QN3Rm9t#W*2|-C|kdl@bX(<88p+j;&dXNTT=|hsXvsQ-d}E>ImZdh%Zru#2 zZx7b~B-(^FZ=-lQs8NXtFW*67|DvB@mAMQ;Z&+Iz-Vj0J{74>Poy73JMm_5YLARpz zFYgo|se0pL2*4B)(muaQToXoQqav@&19jJFW1b3M?hkq`ED0i8D7m04GNkoruk42- zv{SW0!!n2bpJjR&8)Bq;Xu^L{`xU9SJ9N#Y-H$BeA*g|WXbU$f#+ZMb5~WcD0$New z;c=)iB=M7+Q2QEf&7ZW@iL)h`c%?Tor#{ZDq!3Zc`*Eroxc`ONQ!59I+l3y(l(Od< zmc?34vW8}=L({=PSLN?-hG8qKEymkB1~~Ua4!3VkSgSmQnyOCNn~Qd1EK_cv#iA13 z3>_yDM6zGIslN`lvNjQ6{TO-A0rRfvS_WMVN&ri?+b>fW;CkX?jRqf`;aqSTrmy;O zgT~$8WQOglgePB{LaJ`~yN-j_SKu&85h3N+E=oGYBnQ28yhAV@(;MmGv}A4hzTXYT z6$8-uPn7Ou9;7Gt@h5o7)?%dHD-f(fh0}NF$Usxi87@Uic8YDL)Xy;*eCi9?uO|mw zc+X@)Tg}Cu-I` ziUqeKb(ADiTYduP`|{6l2=e@mtMh!0-0I$44U!n=(xrelZpCkCpd4~{nMWRsh3vko zp|h-h;hJi7)&F=FWVH^Sm1Tn4dtS2%~^zyQ6 zE?Cp67Bm$7$Aw~8l&y)!MW zQ^F9-Y!Bf{THFF1xidNIhtdUW?m_q8!cCpr__-73Dn2S^6Fpih1$U7~cH2X|*PhXc z;=?(}`H=WBR+WAB4ZrLI^oDC4X8WIKr7`u60sbj(3pU43cNyQuF2rCC*4MAQ4_r_N z!5)f*q0Is|xr<~a_Fq!j>4Mj&xrVZia6myU4phL`=J)to^s%3Fd+lZo=wix7;lDE{~zeBwJ0BY_+0-HvPP&_h=oGfa&pdK9>EEw);uj! z<(;eTl$|IE{X3V`auFkCh}ZNV$jt7I$47K4tc6P4tY9wKS&!zD9x+j(fh|+v4s}`h z&8lNg$WnbYNR|2~O0ya2xC)1rI75_s;2GrOPL@NXB8Qi;h23@{OP33yEIIzPvHh%a zjIjop-WAGWY&Ce{f-;>~94n0z87xgjWhq1&Zj!8hdOi!wt``04yw}*JP~c9yWu`{n z;MLv-%;$-_4Ac@C{B*V1$&Bn#8gtaKUgfqUs9XH$EC|`s;7y>jxM=0dcPUCZ5nUd$ zyYVV0ON#ZFmK+3n90PsB+j;ANDPIx6Yy0~F+N54NDN3<~$FS>s~*U$6nkFx5%@&jz=X~d)>uc8)eMB$YVfHcd0 zap_q79J&{qyZ{#~3{oWY)6LztQR8~#pRn9N=Um4>5xf%?TV2Fcn}i&7ym&aFQ2e~^ z1-6_^f^hnN{D#So4IkGfAq*#au>E=_zyoj18=DGtPkh2Ve9-}gcWPD^$p=ku-0+M# z5+35cRSnG`+mJ$)SZ^vv+ymRUj^$U&qbnk6Ur!hVeyz*Gr#RBfsO#e4vW6U$D%wed z?`HWbSjFi?#T0KJoS1ir)og}OcgHVQS)iO$3IP9Tb^_Z<99J$5`Jo}+`!98Pudgys z2-`$SmBT2hW80VLCp@GeMe_EJxGjHZ#@I@d`g;4r^kscs4+Q8Q(PpiTVSBC`po-UJ z+P!^!5fZLc0EU=;QVUG+h1#Bo>rY9BK}uK^AeVh#Hv9hNc)&-1<`yhQl7~T}`103B zaV#jw6Oc~zbyK$-g<|uz#viF#xD-4lKv&=5-yU)6tDBo`<^YJ0B)Z=Uki5m0PY-&U z3okh)=esg%5`P`n%9G%Og^vrg`X0$}-(~2<;QR*~u7oN_Z0^bvJ${(gEAM~C%j#~_rdcDsAo|346Mt=MzLRS0co zzok{aGsKpeBV{$&!8An5NjfYoV8GnJp2b$`imW%2z&SG#NOYJu1Gid3Z8t*Zzs;~^ zFVv0uk$5N6FT8dP*lzL*bA~R@Kyz|ao*q=-(`w@CyHGW z3%~uaBs$4@xQa9n)kc<`+tskA3rf97cxUSTR`HKyE}1Lm8yhYkC^G$qR1fNY37x)Y zp2tMs3OeTHA9feOv7=%d%naD*%vX~mX6r>QE!uicB5B6GNVI36{vCCfEi{!=xAvtx zd?%j>)|j&DQ!V7(Ui8)^MEhZ@stH%BUls3pgS`4?42Tjn$81`}^q||FjkG!W`CS~2 z=7yh~BP4wm@u>#LnS0-Tz%B)2gl?W%HrBPS*uC+#h8756rj{3H_cb)e5{wx3jW(rN zTg}a$zhIGLAwS#v@E#=Uc7lE2dP4PS<_N4lb|kFgZO7~`C(ItB_qha*Y2DE9r}GHQT^El-scv|bd z!IdhWXn&@V_LKv+f7nHPIsRQqj`CwDM~7zgt|-MxVK7*an5_U>D6OadT^q99Wy}r3 zG1UsWvMJFfBKP~|>*2Yyj7#$&>ll%MwS+Z7f=U)vSfr9)eSpLOBB z{N|YlBeL{e2$_i5DyAV&`!E6^U6OS`G=jG?hje3U4mAvi16iWNeei~#ZNU_K1BKs{ zjWiqZghn{5m-EOuo2&#Og-GlUJ>?|%X^a{?M(w`bm}>&ZyFHn~^I`iHPv>`2NZp$I z52+U6FQp|bB)^$J+#b&4wU*Qp~D{kqGgTb6=!p#bCC*HPba=LCeWN(Lzx&{g}m6#$Z ze~@4^{@5SgR%&PfKV2I;hu$x;;%+Wj;j_~*c?UNK5K3me{I#3%ebH4r8qs$|82mXS z>+1tR`|sxipOoh-Eqd^}EzMSi5uX1paK0@n9jrd>VPO$}*Q zDdE?v5JrQPe|a7`RW*@{!OnMHQf_H)mgVZnnGY-;oa_c0mX>0|Dq6!^#!WWKvn57{ zm}x5wNW?CYE!dZIE48h2sn*Aoxf1~Oimz<6c%Qq!K-@y2-JEGaSLU8*2JTI&uT-)v zG5*!9?lkLeGJ0AHBui;PAvo%wd`p|qx-*#+F^46nN*0XxB<-IQ$46>0RA7)GLE`0} z!p;DEUdOER-0=}l)`T6@x72N_!%nCir4~o$jA4@FQToDcn~PSQ?Bv<^4A;P-n@gt} zFo-C0A7N(@Z)|KhZ=dC-SmR-3RZVKQ);fQvTwrTk@G~%(Ptks?PgEzUlz`P#!c7u! zh(-S%xD{1-UE3N!%}=1j3sJiJP*+{1gHjeh{`Azi2K`t3nD2oxcoOZb;WDX z%qIz^g4x(k;(rLJo$rZ}f*`es7Dm&Viy4BQAsjn1=6QA*<&Jpbv!0<5_`|_3lRrwI z%%V(#T-26Bw29Z(p3Js11&Ocr3Yj*-g|t4L0}Doecn0%_Im^o6b5F55;x+rzD#oG< z06H5xbi#9-jd8V2G_nysKZ`u-JNDm~gmX%~hkAGJA=%t~?FFuK&V(vOiWp){2rwoc z?RLWjrW_mto9<`wEn+Xh>4XyB8>edN7wNbiBy<1g2;7qOpullSIJvsMh4nQy)d^@~ zH(ciP6|Ds6>|yR&yJP`udeLH~vW*u{g&ek@k#$or-sNRhi{xcY_#l}}dqKOY2iIX4 z)Tg$f96+o;|F^_W0f9XkSeX6;)p#_@^G$$U`Ux*Kegb%yjT0u)`zD&<+>e~K zY2kHxorSAk8o!~^4ojfFYQz6f)oLNkS(x|zM40J9{*|Y-87NN=9q(`hN&=9P_&g@@ z;)yRf>n?~dG{SA3ZBL+{Q>1IPIN_Pt$)GZu33nYz4eEMN--N!5b3OkSkQugBped}=2W(DHNpeR$dHiY#Hcls!6tsBIb0pW9Zc6aqoY&j9F4bwFZT1byBh)D0q}CUJ-#3>e$M%W)Pp( zAe3Lf%?TNQUC-vBb8X>vX-qJJv)f5D_nt#bus{ItJnh z+5_X8`#OK%Qa`_ii}wzk|NW1?mX9VkpOO^> zly47Whe-lxLpu5&rz`+w7+2&r)76f0Rv{Vm7W+ZU{+(FYZ&~?NiF!Bl3aao|2+HSm zmfC;!Q(~^Tbq4s~1I3dE8(<{)ty3=d^&GIeT=oFV^Ix%a5dLm(UXQb<^V-yAgRK>A?_&wxA{ChEaZ)i_RNeXn~wl`rE+N{8=hq zV#m|hM?`;l6oCMCnGhD|O#*VeUG+bZtu@`ebu>kh?aQ43%Kt$6mb4RF zB-r2+;(ZSKfa!$E_(b7TCJ?;hepY1-?-fu)_;Y)!;ktjVB?%Y(5VuDXTcV>Fjo+L; zhMLIQjkKb#&g|vpEBw>Lh7jXq5DNW{a($Vmww1Eq8~!Tz*;r}oxUH?pM^hDm%IQNJ zwFoWKb{eMcNzDTo;t0vK+X&ciwS84Z!6l^@GW3q8;Dkv-fp^NgyMCV7g@rvdBg{jL zRKK&Jj8slkb8b)hr$*)t<@7D*YLE3`Q}%X^!`;eV8=yL#vo%8R_2%ya&MiXu*h}ld zStXVJe@!MEy22#?@y0G_DvpHjUww>Iagg^o!4o6|`+|Rhw%}=Is>+`%;IR8wZc6at z%DS1cE8}IM947B_9?(faZ`LPNM#agVYc-ze(B~g$xGw&_N_WA3AS2|{SKTM&|$`!mMd;pt7UXw81=O*2#`XJ=(W z%W{aoA@^mpt3aXtQn)DfssT>pqO4pDCsWt248%WlVbm^ucb>%w;2ayn*BySkNY+1T zU$Cevv%)4|ILlsp;aRPZa?n<`E9B)s9eR*p&+^Qe{Ml1E%n)d?k>6>Fr$`%v5>MW! zsT!x;4j5%D88v_oBY|)aHp2Ex)#W`&{e4w zfM*NvT}pJcB4x&D5|H35+J*$`2Ap($La9S^br29;v}s587~y5n1ru>ABx~} zNNdN$aAowJMO_TlLmh96WwF?`7x5n!#6K+fxb!yjAt!HM10@nqg-FxTS3RGT4*N^v zgDW`q8nECVCwk(d2qAVH1l@qwR;G|H<9)rNqqY%y_|p&l)&i&lcXG-_W;BXF$aWK1 zJ8^k!|8T8GYlK(^7}A0nV%J_{8XG?e3l=nk$4!O?$VuuDibr4{kVUnb?ez(&k@%@rm;5jR}0d$_497{(vx^e%PAmUTn!;YAT&(!GScO-D?tyxwCRr4q%He8nm0^iT$=u0 zfedug60x(^;k+zM^H8N(K(<0WbwPJ`;Bea|zXQZc_5qSj-ul+&sNV90?7*#OJsa4- z*2u{J{#7w!(-f!~Ift0HJRI2us7!JuR#83I_Xv|#`8+mj+XZEp9j%!-NjFfvBc!|u3HreylmM6k1-ZWGsu)m&P`1$prWiVqf5YVYZ<4O6!&|1hJ zW-LffY9;Ts4qnVLvCQAi)jfat*I!JL>tAJ5_%x{`1L+FfI zHo6|y6l0y1X+xbt3*?S~j+h~YCY%BpL}I|by}?p1V(lHaF4a%Z`&^3Z?raN{ep6d? z?2tcavKT^yTg`< z%L$IAiUR+8ej7ELQot)lDm`^Fo#z^*0ntC{i}Nu`Q`KJt$51~ z%ty>3$o*Se6-lD1Ps8cI;;T zDW)YSiAOb>due+n&R-3vBylgBor66 zGc=UCX&wU1n>-tPR=o3zLanwIV$GS0HY92RlJu2gJSkElvL^^ardpq>Khp`GrzRnF z=U9xLp`Gw~@icE{ladBGFq(V#AysaKZb^{*+mAulb)j70n53Fgo=C2x1C!y%n_^|f zd$HF0@hKvXzy^(sg#+qd@yL#ZZI#B867<|$*&Qh$CvoWRr1RuHvUn(zni@&8B$s1h zawFJ5wJcplE=lD45MZ#<5f=Dn_0osAYH3qQ8=nbP1CX;_bHMMr8Ur_;is28FRcld{ zqd(9m^Vt!6!~;*SSM5O>jH;uwMBSq0FNgJQEbuCE- zwFYaV2F&s4JbYhKzS!;o>REc4bx@G?4 zd3(yZ-K`q*ytmQLOY@c~*>`$4(TpCH9f{86KDmT_x){IhJIYP1qcG0hV3brdJ_ zD`49AX{z!viuZ}&a!@efg1nK=V9R{a1Po%6>!drt3olaFxv`Sf_(KPE$q6EAx?kxdPVo>xZsk*=9I!IzcPgv%P3yV!uc+fNf%`+6 zIf>ObiQpOS)tOb}$BbJ+0EGF|OTP{Z(&-CDh?-g>LdD+VL1)`irjBjuQzYja+fOM( zO;l2AwJp|++FTL!1n!b^IYBIu0^o&7b!q#!9liS*)f$n1KQ$dHwc1Y$ZFv3*=L%f^^=&w_xE$j9wm>;2|tiu%qa^joy%Sk#VOAOz$u zF?oVJU)ZehSg@5-w$xzwe+9B0?p+Ga*L#R$b@Aji>Be^Vw&OmD1 z#NuLi(Q@bN-9!2b>L!CF1sLZs#pn#t6=UqzQJ63vPC^~ykRx+v(5R{+UA1`L2lQy5 zT*}b}yr}UldPJw3Z_bqY!=vTfJopzO)aE+cX@9E4)#`1(T+W4?9p0f z-548{>a^cp;$M(1iYra{@mbhUAS^xjH^(hq%1OlK$VO66rr5yFV$vk-#0)NwXvf12 zYN)soy3PN2+YwnQ7EZp0nu9t$OXNERr*TFDVf~-5(yE{ZYJUtwd90ra!zK$pask=Z zYT~ioiB-EPPK944Y-Cc3nTBker%0hG-sFP~Dq^b?RWvUO!w!C6pYg~Er}&Cepm(@t zXZfx?mM{Ehr?z}v6n9PA5q92F1v>??PdfG?ddOWFmx&Uu16pCZFr^7L)QcM*wxi>B zLjIY@R8~%>;spZe(SW2;M<&)QgY-;TcD<+&4pE17<@$KN0Q=@i>txZX+mnr6*Ckc+vAiqHLQ_Y+p`Z?J_Q z8@G&aY1z@|c2|46p|a&A(J2ES%Ez^wkLB-v(*6gce&LN6Sgbruag;M(nUZ&ZxUD-S z6a6vnNQE)yTGfqs=~;lYr+S7MJ`<<>qg%k8ZT|`H=5=d8$E+vc!K-qrssv(A+~l8mxiW`)AK3D@55`rZ12d zPL_#7HSQ*UBO+2DensgMAs}hoO0iY8#?kiLsrN}Q&|D^N9(qof8dd4sUnXUeDu%dX z82=JYg`7e!C4{p9DC%}!JyfapvC}#-m8}c4UI5E}#E@P9Kc0&qmvr9-+@OD%%a?(9 z?FlJw-u@Q%qa^st2GN52|3CpEfC74~A2>NY)#wt){xR`d17sUAj7`-XJIz~pMlqj+ zz5fG=j(IQdft)5~+)UMs=Nrqy_24SHpY-WJ(mT%y!SD1b%QLffB%46 zvV-j#+w;b<22= z`^g`^x3YzU30uSqCBP`6rU>iA7cDJ|tg+hj8aHQ^p(Z->6S4Y84II1jrB-Le(;I3; zD9^S5X=MP%x2)&@BrxE_XerxD*3}hmMQGiaqkJf=O;c(N&{0qy`mJ=A7dl-q>z>Z0 z=WHIM-$Mb_AAu~FsUicRY(|fiA@S@7R+ysaaB?r2qr>zrViq1PpTQyX! zgxV`7iY#XLASsv5L80`$VTFP&>F?X~EhV@*#Rhc5KK;u9@U~C@3S?-5-brpc}G%4!?535cBG-$in8!1SST-f_hR+WB8(Tx*8Y8g$9xVvS*M{?#zGR+#6O#+0!8fBx`&+GfskV zkYtJ0MABvOHjsUt#W*V`vMm-q&~^Wr;`Eo>%1a|UCp%$a=t|QyI_#swts)R_O_zA1 zvHmY2ontnq7xi$+OJDFz-qGDMN6_N>xg5l^2%o%4mY+FxMkL_n@?0ez9@LSv_B!@m za*K8dCE`Yfw0+e=vH4e_Dxg@6e7|Cv*Se_o>BW!BOuTFv)6t+#H^Rlw^U-HJVx+FK zYv^CtYRL9Xop8jBTeeUf_4Z>m>X7-4Xk4&boP4ovQ3ynI!%XGIWGRRhx0=GW%R$cE z)yB2cLTP6M;GToPmX*uhcdcu$5)%?b%&H<7P~-LY=o}>fNgZ#qRqhGKL@G~a@6(k`W>xj=h)^0H?O0vU#%m&9FKJX5+{{hHo%jW=MyWzF)&P(C9-=Ix$d6HZ8VACO)qt|`0*&x zirqX_Cx(q%PVrhV`;>#j_>GytF@I6kLpd_-bOiUR^9@Cb#331jO?Yef=(g1KW?AZc z3sK5tOVOOqeUssXTdo2JOexBh9l`>u6}3H(EEGQjPn(J-4tYG=fG4b$4TT_*3%NFD`BP3 zGV4g9Yw`xlPyZ`|D#yIA%i0Q8fxqFhc?L7sItd_IT;#=&MUpSNO=eH>ye0Xm*YTkV zhF(j!-rMdWd4`p2Qz+;2l)db5WFl$Zp0WnSlSoNt2b@D<@8@SNR~qk142g~&T;wM> zhehIG%oGucpyXQbK2N>o*K^qQI(9S|56<#nHUZcQstC9!lYREi%Q}=- z3O`fRnS%4N8*t3%Q=ci zQqD+cf%y@=P6C_@-5XV%rwEE?2{M+o>53kORcYn}UTsu5APFLGycPGwPr)8CWJcz- zkikv3&DTbQO94;wt~UwCq3L1=+w|_YoyeFD>eY_MdqfAWqQqyXec$-^KY6)u1+9w% zk-THqrhGu)e8|gI&frP0XO|>>67BsqLky$_pZZAw~NGBb49)Z9uK*)EOZrnW}&T~iONHke!Stg z-UdeE5gf1zviUK_6Pk2Cca4Q6viXyosqU417on7OovE2Ycey~1A^^W#NCTXQ-e4oF z0&$<+nMdy*>`Z}VfM?n880maU-=fOybY?prgq@kBDsFgv?_K2b<+CD+{+hLsC zJWVoIssNB#z2nKt7MW>D=}Nc0j7n##?G5LkYihwQumD6LFMh-R(V{8OL7VceWQ}|L zl2mx$%<54xzPT?ENkoe?UMzM8o&@Ut3X?L6O=NPR_1F!Cddfh$TD&~i=;g0^zqQMS z6$YVoWawc35nImKIa5S7R>qR<-{&9JxNoI>o|*FF{clJMuG7{Wp)onNrBK?VZ}jiv zWJoTsQ&dxZDAXVeWHIYr5|!*{YkPMHWE~kA({$3rUi7mK`jht3Jt*xk&Uf-*^x=`P$$Xc4`mmP3PcGZpKxWNE?<<4q5=)F4h*IjMlnnbJ1x5;k1x8?lir zvXe03O|m5KUc_RlBXjEkR;F5v`-hnV2{M)4I%%r6I^VYi-DN=M>IOdT`YJM<^|0IU z6w2}pGrLqYlF7^L6t)uW&m9TdyC*>q;n+0H|10D?GU4=kTO|aSRwDE;ApyHTV-@QS z^*zHy*5eonk7aZi6wFuoVB7b{GQ-h7V~6d#F_#?_-%c&AywxHAkLNKq06J_g|GuwE z85iSiTkTac@$Bh5GxqP%T2T&0Ap67`LfwqyRlh3De`~Svug9#P-cz-2DLihW`+jPg zF%74d-u-OZ+mU*q2fb=U$c$83o7BJ0RN0p^E?Sio94XmLY3@j(n=E|$Y{#o+5d5r^ z0pi$2qbLaGqOXISG%%>`13e~H;B7&5IQptalb9dW4|t~zUtOQ@$u_({b8Q=$?(Xea!b&O~ zj^9`@898^vK4uh;cS5BjXDgj-EX=ujPTIVnFmaXXqKc;rxQ7~Hl0aArzm)UuD0YgT zoi6{PQ6mY2=p(5pU&dg1QOUD5S84S|d-)f=t3sAMH;mSIV0GPEMDCUx&}FH{wCFHM z@ty)!sZ#+q0DzD*uLO>o|3DRZSml>xRUUT^gj*=yO5o-C`(i5N6$RTtL_J{VH%>b02zmIBPe`^#iw=Xf>q#Tshj!KDwQ z7)L8lq$_cRw13ud;I_&;rPJ{7tL72+=it=9%4!1~C~$Av;FFBg>Y`d$2CRO&>GTO} zV-+ShAQI}+nr?n72@y(rxF8u?nH8z8FOTtuJc763kUsHUjHATPSE#+{%-TbC=OEKF zNXBB-pJo}NIsjlsyO%gZrrE4aBmcrT`Yo^wHG{(xV!W-O0b3JChmomIDj|dKoga@q zI#9XQb8tSiPuP~+#37)F&~^G)AOU12gytK|@1!_hxpK<7#8MeDpW0!3y(X53tHwfX zNdTZ$qW*#>GrTdqH;mD*XMpH_2=;1mK?k=a+!x zE|(SmU-MxVrn?=-Y4I$qQEzNNHj}zK%}{Wo0mG%%y|c?M=J_WYG=;yu!Jq!Mck}BF zaGQVswvpx~ul_A<{S?;QB!J3LZT7akl?&_ESqRLV3nPiK3Wt-=0B8cLkd?C5W3ZmGh z1x$kD>fLjL>RA*;U*e?PvX1yG%DXs79U7+XBxup2j}e2YeTkmG^>3~%*2G^wr84Ap8qDza$oTL?{uU8SXx8pa9y}z+yP}bg0bV7r5TdIpV5=CnJ7HDHDbpK{y z9fr0ML)^S!Cj{w(&bF@Kx#xkbE7Xu><#5^l%BUkViJ-f*LqFi*9xsO(Q&JNs2&a#E zbqV{uYQ3%k9NDw2(e^ln)^z8F)PrW&XYIsX5fh7j1p5Y@-uPI72hX{I?0r4O>_)wItxcTt z5pO};+@deWijTy_-6?WG6HHw>+*7dtNiVdMxUln@kfG3>^NiLK`xu__2N%S*uj1d1 zJki=+U7NNelK8p9&mwpC1hJ6r7huU`Q%ZUy=REwQ-;_-`-8gGYKy!CjiAI^+pn3C(kCb7V zizNta%8~^00}znR(lwq8ce%nDhsSJ^Ivt5%*71iSHh*13+3HCdA~|A>jLx1OVUY}; zW92m>QhWYJOW8f_&FKLU2E^X%BW;;p%&3Gyp7Gu+3;fW&gG|%d_iHL|_lAJm8u-3F zGrBbpza(bG_GvE@xij585nLyZlE9be?t>gw{?8niUhxKfrQ}PZo2K6$LRKDPS%Oxs zwo9fq>wmi=)kpJL)xc1OF*k>|wVrZ(qjnz`RF#j)EFS#oM&I}8>Ob+u5A4*Pr)bOG z;gq*C<$3xYS-ZMz#rnVS{RF9h<*`8z*U!{C&`dAzD4RL`;}{^5O}>9m0ce$6+9C}E zb24e&T<(!yK%Q|_^CS1~W?ZupLreoI6-TM;OR{@ zsprA&KaEv~!0KsA`Z^UCpV7^lvI?N!g)HUUt!k;sPsFdZwy03dJ#r9k=2A9Nv^2)J zn^x86yiLq~E3t;H`F{wv2*L4L+DKC8M^IAexEIT-!&xgBeQuDg`27*~C z<5gw>xr+xMZRgj)5^ICzX?`I2+}I{gZ4|f$GYhCh>SFx6glx|TeH0NkE{y|1(NY1q zB#HVnu5mGPd@{%;r~j?sm#ZSubO3luW1 z-5%&M{CTQ;&f{_q6DOW#uCFOxnS=CgC>&ah__6AOzWn;&RIss@6P>8uba&!lMdW@r zX<#vXUfnfiC<&^xBu$EEyo?UtX`#o5;1s<)v_y=q=ZlsV?g}4K`zJ4!_bi&nSkXIL*J`Q5F4CBx0t$rp->V(z$Y z3#tZ3r63vlE-F0M3GFE={J?p(>4pUgW$_TUL+{nMetIT4Sc>YYqg4sC^*K~3`%rKzdg&EbP%DlBdVKFm3{*HNmUAZzl*#ltMgO?Kl3gUyepW{ z0%K9nJpMU>nqx111oiKdIIJTn+S2JNtsU=my!vLZ<%Z*2jxVIW(6$6At>Y%I%y5v& ze_?pfo?OeOB@*$gtvM|L_IwCnd-@QM16R>7%_%(tNnmXvFW{x=;nYp1%pb~bpfveL zXO~nBD`rW;$5`ZZic^gIx@D}`P77(+8^%WX8)}#m_D>r)mlfdc%9czdzNCdrcidJ1 zE^6iM-~5KaI54Q!;dtisZ7zc zl#(+VosU24wjF|wQTV|D-HmPWZ{J__ zhY7axK_7SPmWZkozarH+E<8MQkZV}I359hcZh2Lc z6Q|fS29Ym;oPS=t`g2QdZ(l1pRx_gccd9docai_$tgwr(Q zuuH6rp(W8|eM6huk6GRH)Aj8y1%cOYtgd1?*RGB*Gh28N{^ID{`FD{wy;HyqsRFNc z=c@Nhs)KpXWS{y?k$XFUXV#?0wlePYR5AW2OE@@xL}latBxh|!OLB=EJwWmKhsWV* z5QI9=A8o&INYF#pc!H5 zW9uSt-45iT%93>gc%OxtjGO*dm%i|Geb#ZHtCcUeZK#S z22ua(FpBYSWKn*GR81Jhy7N6MtmtN)&Y$4mc(fJ-7%Q6N&^s9vumjDXL8pa@0@6{g zqW=DJuFjS#?pj?R>Q5d;Rxj#FyRvMf(i9T|ay^A);;ev#Dshz`qGqv;MTbj46Ep1= zyks+WhjYEr|2BkNw3JDIvmVL|*NdklMCRUwdf3{|BNyqQIL-h0rZ=HZT)Dtzl!nREAKuTa23Vl+m4Zx22qfCkBQb zkhtVhAt*a{<>`l(7@~RZxLynDMZH>DkaVe6KBiLpgyR+&#GxE`3w)K%A;0=_z3`2n zUob~zx;oq0v67O&jBcKc>8V;~yy`?)M8hhaBYP}K)O+Ye|-ueTQ4<=XE z`GG1%WhQ#}i-{fi0$Fhf$~$oJOK7o5SYLAmF!_RoGd|SQD-Gj)v3n0T|6hm6o&iZn zfW&2t?tY{Sj-^g`+9XuwX*to)AChk4)Cap1Ny67(_~g=9UUb2eNLZu7A9%|Xh?&pi z%#Sh##$LIshg(}uk8;s}1J~|H62I!oZdL_~FJvq-H8s?r%@AKvlDlOiqNA=(Foy<_ z`?xF0`A++EDhVL)&UJ`XOxS4r#>XN^8^cC?=|<=I^T3S|wcs(Hn~?<23z5rhb*hVd z)Eu>#6FSX=!|{K96!C&?OWW(2AfM)hRjJ|N@D>YYeJQS`ZXQtMR?8uAxveZQSNOlk z;oF^1If#Kvd08?m+o!XG$GCCvGQvQ6u~GvntJM4V6mAoLWulT=dU{QLVbTStx3@-| z$w8zqlkOFeRpi_Bp+Jlrzhjd5?Dy@XV&@Iv` z4bluXG(&@QcS}ek(%njjNDLA)gbdOQFyxTG|M7mFH@xPvW}kER{_eG|l}Y)1o&pB# zf9i1w9X@2veQNB7w@aj(gvTUsd+`W(yRmHEez+JAVikfuc3k_Xja)_# zQJf}cB3CC2Tv=TsWu;1HU4}I5U;E9l8f9g7R-vkE`E;2=e(J6XbP6x3YYDI%z(vo$ zMD2bbaIribIjh)rii}zZ^ocdGI~2~2jx!WOK5yIBY~~a<=q3Cxk1(Q3^0|VAG&Bg9 zDwpyo-HBz_LZj=BPHGQooFZ_NyaquuQbBPWVmfu=1UYvKa|vFZwI7>ijVx*Pa&RN8Llz&%u01Ma>uPV6FvgkgY0A{?nkFN~IvJkvk?z=-M=K~- z0tQi6ccP`?wMpUu;dTEPKhbIY;wcaTC>qR4{UL*Vl(g0hzkB)nW%_DaK)95=Q=x(| zE1CGN*hT!N5?1NfU{75l7daf4`e7bg75Z`21jLrlv`TS<@QKZ`d_wHN;yAF4MrLW(G?o zSJ1WtTt<(BjrBRz)6xTgIV=r1ca+{8C9{9^LAsQVgp!1nDxv$OjzP4)GwR&yS7^D| z;#QM;bG8J2>9NsJWA}NHVZV&$GTwPVP6;#cl&T5$2S@0lpEt?~N>3=W- zgBkTwOJwmFuLm0JQzQ}6U+zgbm*)xAH3hOJLbT_QZj+xT4Y|XBtLlQ%m>nC`U*SA6 z+N$=F_zk3>`?vD}KMm4rpN_OV-o7H3aC3iTM9K_Z~GFF1J zEmNlUxek;WWVYs<6z7SNk>9u*z`Fvrif#=@0lCPfy z!C&(W8P>nd{LG#M%ULxX_Xb%ci|V`sB0jygPzGbky9#u*1e_eR4kpQ(>WvF;|YRpzL|no83R}Eo?ygc z%3HABBFrR>^z;Zy3HZX zq>>P4ew*%SVF5C3#GeM}X*4EU!4_D+(yCJTnf>~ENl$B|Is!x1vV<8Y=39}Q7j|o!g2uJ~=zxoks^zpQ3a@p?1nnhcvW_@eZ zi#P3yn_!{JwD^fn8;L&y>~IgwqJ!!QA~Dyf(u;%}u`21%TF=L2dij%+{haoZxIf=o zJ?2hLQ9U$!c@uP-+%y@M@xkyS5{2Q8y_;aF3h?J0hD^4_z85cEhZmMw0c9Jer6MqiAPq%v-gncSD zz%0Jm{|-Y^+LB(ZY|XyB?dv=6__vx*Cl_UxCKz9SIH`eri1!Zxj|{7n@>f{#fD}F4 z-?nDSL~V`H;z}tiWB;*(ff)FjX^7UHilg3!9%@WXTKip^juZRksA?z>52MuhZBf7Y zho54@LzPnOAr|?e*0UgNm8DBvv>g>sG$2j7FQAeK-S^Bo zsCKqqK1ror#N}X7mB^yX$M?01JP(2kJDeRs2c#)>J0><#cQUmWk|8#H)+UWal_YT! z@!7}*F{d@DtyLLPLOEz ziAVk*5JJY1D+JSu>W7Jvg?4Bpx}se96A=E-f-HF_%8Zs22Gp3M-et>SrO@JP<7 z?G*3kT3D3Q$V~BCnk^J3jWEk7kr2_3c5Eys-*G=qnQ}U;qN%x^O!M_ z);^zOTBO4BL!!#jTq-yMVPNE;%JcvS$%9TCqI0$(Rnk~bBAe|F2x|6-1#UgDUZ_Lm zb~~&3&fexAz8Nu{(zT?3dHNCO0bDbFf8*OIf1V()FHJRSSywwGOuc;7K2;9wAa`%V(Mo1VdZv;e2;IJNaxKt@>vKy(u;=G1{;hURR?I zDu%4}CIV&a>-neeisyU%wXj6%L9rcr;r=8T5Muj|B~ru0OxJ|{MykrQ(nq^6JXCq( zdq`QEWBKRmzyE;w8zJaRlXQw;lYU4)td2%K8P!F@55Q^fno;9>fT6A`}4pSsP>~NOS>dbrpKF~PA zGUHq`hPA%6ANYy$dCh2Ga~C>r{@TRP!qt++5sdS{P&Iv$SZ7(b(2qyTk50VNKWGP} zV*&-IZuE*_AE2}_sZBf;0WkROdC4FTFNVIDxRUL0;&;+FNgyc+pCb5ML(;H(#mz!+ zXXQy&j`mW1U#D4g0T~DOf#uq3%US8>=0l3@Bzr1jS(+c@sgH+S-6_A0$pnghJQ7s& zON{pyI@0WSU*6664-_f&7# zuoI=w!5;2}y&p3HHDtJ0w?!I`;_WqrYGKT=&wU@96D!-#&K~^|_vp!kKQ060nSzGZ z@Kenwgl3d=Z^6J7q}6Dg$Bb9OfWrsrT73Xvp50vhD9h#kYEPDG@CDB!O+TiYI56^7I*r4!#phvLWp&aJ@ zx$|oL&s#En7HU2p(46KCRyJ#TM?hP9K*-x^7@Nmsx>L z{Sa&q!0arixLPA1{AfRVcr# z_3oBgFdx|Wv$(3>d!Z#0`hF)5%9@`edXZLy<{!xju!)!glr5Ufr-r_EYxdiFzT)oL zLyr*!A@jU1_%nj_Dw+inwvXC|BDoxj{ z>}mZLoWQNuVP&e2O2gUhCF@eS5=gkAUE8b0GlUHrz-=E?Uwx_jXaO<{&M zuU|`u-y4OSdYdlw46F8|ReTP3CLE?jq{(;P6Unfdqhf}!i%XY6%9gw?L&#FSXr_C$ zj4ww7dynDSSdwc?e`_hxDelaHmIj#H?isI{TBdqyf{v9-Zive71~Du5glvK?=vrp9 z&9u}rfPjO+Z>xtp)(m}dcH;Y(Y*ypnR-(&LH~K7CR8S}UVU>WvHP|1F$sCf74Wz-) zBm-{zx!elb3eloLi|F{Suh-Np#wj5#g~v)RFYItn+x*Fof<6WE%3~f3VleS%arONq zC58Ic1CatQ(;)@Ie?w24B(l<%yg#(Y1#-jG{_McddZTjUEI-WQCI2AC$uaP+BWn3g zh~v%8J*%g%x|oks-#O!n2~pkGxO;Ex8ScYlo)pJDlX6qp_o<{?2CjyQajm zyv-Aao?R(dGr!)dK^VYx5el#DE-d75K`QjyvV~+_V0sLhI<|QYKzbDK(Xc#$dyGea zOyDA;&VKi*)mcmdne#%w*guj@W5fQka~+EQ0)bq=fywt}P$_apphccG?Va~z#Tvm5 zxLRL~AdR1oJ}lH0ONHX~F*X>9)tMpwc1pmxp)S(Rq(TQn$vL{{Ho< zP49YN-Pa4yEu!k1l8u%fbRF_pbZF5u1v>=#{sZIu8<%cU=1IOWr-z8c!Jr2>iWo*s z3_xZ`s!pC%6*m=ar|<6{NF-;Y3TwI|dZ8{J7S?(Vgz$y5Yd8mj%=tIDO2x80-*E z66vbjeG^R{pF9hOQhz#o<4syU^7QvfdA|{(W>k;l6#Lv(!sL$@-!RduFmLrb$@Y(; znf$q03G^2vU)4ynYK?Cjr0$u*f>1S8m7(JO%e)}vvJo;wfWQRB z2N8NshL{S4ei!=Q0^e<^@*%-G{%{LR;*^})(0}ACOGuBef17^Ibn|dVisVLP-Xn<8 z!H{oaKH{_!q7s5XaHQ!Ezn}j1mC&o0#f0U;29r-3qFZgZMR&|MTEJfl2Ld$`!hTwW z_0ct_9%Z)E0bepLDfdGIrbg9>YMm8B!I{WxViU9mzLX_#pBP z{zPy{kKJnRPf6fFn1W3o>aHDSLI{Ud8MKb_9}M*j9~}-zhx`X(1hf9BCBf#dz1U{q z>*)+p`ch`}1A^E3cUP_q0HH@Zyb!1I!4(`F-f z4d>jFN)P=eA5=On9oppgy1Z+K%c?B_^^zJx?y~md2OhaBVHpWX{#oKrGg6pq;K+qT zww2dUCGFW%Rgs@k6d_LEekXLofDxE0?a#2Q>xWFkYkM|FcQO4svxfx}L;}RDZ3MCM ztfA~an_f=d+AIn!Zt-LBNJt^R9mf$9rHR>o4~Btx+SrgOII`ub`pat}Mm-EJQTxWd z-9aZLAEO_@5#fPimF~}<&53q2y^bT8$ zdkKd7;rtt2QI_rr3zhs_vtV0cSBSP8!X%%)En8!Gtc&98@m(4Y^UWmcRt3^w7-S8Z zDN~%aB#&SYXdjf&nH{I|sAl**EgB`jk0yB6s*a9P+xv6O`VeM;L#WV*y1cKUbb^z?3a7Ue(cx{FNJBhziR!05BprXw+&wI*T zT`f6DQYr$Jt3mv^3_IFA?N#ZW`Ixs3<;#irH2Znp ze=}9#yg(x)d6v!Vw4i&}x`$SoLwZ0_P1S93nfL+ibD{g@vw^~kP$<~M^)|bdX~)n3 zrN8lNz%&?MTZ=$xVim!Hckei}IbzI@6OEfe(%Q3KCp4KwNU-)Ja+77macLxDE;SO_ zbTkoWXj4G<+w&PXRI7J?wPw~3gG4U z0?-=mH9v@FH3Zjw@#I@+cw;kJMY*9Nv!SZLJc`_^E)Tp%^Wicq6uAAJc+S@QpW zqO`eQuq78JXzb+-iH3TjavS-^$AL}<<%wu+deyX`hu80tnpVWS8G1@|*87hNo_ko< zkD^1=Q_fF@+=)oQsUX&6*M$o+oar@U0Sd zMU6DQ2q{edihS7w@gJy)1nxIuy4t)4I0~MvMN$lejZ*#+1RbVow)eJ7(eTkKEaTr5 zc5>5?b*;3cWk|X@Ss3coc{HNz#Xpm^7>&Ol@5tX`j(`k_90i2--T&>`8FBI@g(}+; z5J%pVtRMMm)6D`yJ!amSOmOzm*COhp*+ZmiwF5}C`W{zP4$ZHHNx*m)Od|DU`VUZ5 zWg@^2&2;n(hu%PM~;u&CX zbArmpy`I&*VUN9^D*MSqSI48fbC!z2K%*VTid@Mhe)i{@Uc|{l@( zC*HyS$y#jeMICSrrulUBMcsiSVAlRVB#UD9sEn4ELpZIHt1^9k z3Qm_L;?h1}GW&o=wRNLObo|Ha`N-L<4WK2eZ71X{t)8iHy9(dup4f7!@u}{Q`n}X}{6ERL3H;As# zzB~FfMW+V>Oy0N;X?rJt{sQEVeGXZ~kJgTEW0ePE!ppzxa72ivixy>zcaj5ou9hyn zXP~w}1S^M4nV<-JbWN_-4KZ8$*7@XOJB{Yq7t3(aEsV+^{FZIkY=$c^O(xjl)C^ z{OO=qg-`iu!}$H7J|cM);#`@D;?KShfV~X85&Sn!?o6(YQsHGi z<5{24P@XB@X}td*@V^af&ra6 zdYJsYCF%tL$HG4xY+7HdM~Bo|GW$?3@CB{$$k*;|)Cfc7$xED?2SVF{9E9*l$sAXJ z?fW41l|H%Ha$~X-4@n`kDwF0q(Ixu}srX_| zk$Jx58K+N|>dS3YR#scM@G)1)>)ZkXz}a7j-wv>d!^*Dsc+?eVgm*G2myK!_ncvd*@ZOA$1na08a`8 zsd|(qZ#Eazp1)1^E6=z6IMHUa82-`8B%%GAbUM_MEe>+QLG;3lL-MPd9~$&UkFkE5ofcSC(aj80yY0UVSMk7|`hn|6)NR@D?gmly+<(>GIEm5v9>X z1Ng6_J^a5r`)Dm61HKA%O`ZFEr_~G#-@@+mAE00JibMT%YirDp(xc%XvnIOl!&?Jd zL~b#<^GDR0-qvdZ&&O4xi+&$YE;?J2wA0@z7ft}2P;3zN99cJkdjHdH5>Q7IsAUBb zfFIntiuf#bJMO`lFuZSl5R%*QFEK;Z^UdW(ow0RVJM*!r5B7b^$_i)_appvhTD|wB z;Fi23iM*bFeP?8?z;flL0Ddd)`G&V)iF%{~VQnilX!!+4MW+LzodRhvV!>cNN%Y(c zd|ndq+TYCQY4YD0k1Dp!?6tQ(QVMfhf4y+aoO2sJ zXUD?Te4*pi<#+?W!G2S?*4bTV6*Z|JtBN5hHJgCtCrS{|v2<1hG(nnKgz#aj$KP14 zbp=*gbPY#}8CKDsSG~l&Ksca0`CoNIqwym4qoR3<(v*|4Ky=%vIysYu#wh$_SY|^}gx)$4`=lTYJ9e zTs<6Sb6Gy3zswm-roJaju=wfzsbe^14jPb|EH~l57LKmlUBB*&BJO#ewVOF;J;kS) zEYg0-9JLbzO1NK&ahk1uIa;#wL3!fSi*Tskol>9ogx<@V^gD3#}V9X+5C+<#c zA7t@gd6wN&{iG|8L+y3SGtvi9XP^t=R$94T>!X5j&4sn3Y?=1Iw!ITFq_ZOUIV!@{ zEc5$2kI79|44FdjkQS+0or!%dW{Vw;sujE1q729Qw^?-!%Bk}UI%+_CchA-H#cRw{0>)^d87y`i{>*Y8?(}_v@1jK89ZEw!j7eHmV7i)KG^pHh% zPzUhz>ZK0rFzdbZ$dqY?vKx6xaB_OE=U4&N%`JIl1w4u~S@h=a5kf5Ar*O;DyDTe% zY!*U_A^bhI2sYMs(r)G18GDAT_7oCs(I{u&@xyJo7!-F1@qPsexw>CRX=4Vq z^7}h8>FH4D<0}5m4p?}O+duMxUDk$r|`m~!KR#=HkvI%Eq*?m zR%eQU`#|nSUzs2odRzas!EAZ=zDz@>Si zZ<-Tz{0FAj_ty|<^|NRzIpGreE0{IF-;*9tz~OykD|E@!6d4!xuR^M^{pd#i&2-V- z{O|R#Q9tNFJpI`@^-e7xSUR3n?!%`&Z8m569xF=Hm-&4;eF7jk?ku04Cwv>Kl2y)f z@j!XglkVOyrySvQ&xsHFK1tTDyy`&xHW7~#4bC_FnbOxR1Y$8g~v^(os54Kc*MXJ-NUo265`1j>gLna4y>)V zBs;;H^y0_AJ?)ND&5VxF^gsu(l#0{M6TDn%)4ETAN{t=BAN% z+$(H(Utpy0(&e~FjiIQf=3Z%JAgA4dV~uPE;uX@dl3P1jC3y+VTrY$a z7>6hJ1yeFU>r&%w&78?&9~$i%_w!L6cLgwRh(vx(Iuk}U69i4jxUxH~5FxYj`kN;` zm|{kwXOtv7Z*iENBj)V7sV`8uJZfLx_`h5;HZoF>ngXAX`JKp+<^Qoy=`Vq(@KxVG z=0BsO-5{2Z-r;}3z)4iHolK&s8}}&xYW1*#Wotoa!kr*aDe}u<%$D}|wiL~rmydT< z_n$GS_!Ck}fhQ@({9~gFC6X!utl#Uk(7udGsN-JE9xd)f$T>8@h>3qr75C zxzco%>u*DrdG*GBAO@*EFhlwKx%&l1QHRa{vR$lDQ%Ewz)EB^8V55uMTiSFbzqzz5 zQe55i1vBGU;sNGZss=U2bSJKDt5^H#$|R-3QPwF}cb2942BKI#D^^a-6`8%iC>#c7 z7^?fT{gzlqL1WQP+!d>9Xtc`kI$};`ZASPzM~Xy9QiV4q!nvhlk)vMu?g z!LmnF!uO_@&5~?Wv^%6<_Gp^RJaCsj7j`JIt0R%umfct~`yS{W2N+R-rxO+0M{@|V zUpJlOx~FeL6m5B?tujIOi33D(_ay6*mI~SO_wngEJjbjq5l`Seqh<&Q%Xh4(S^isG zn8JIE5>V1UPi8rf-vZE753iIsVM-toZn&7#i@bZ>W}W;%Z^n84ajm5)O;$pv5r*i= zPs-XnTP9_P;IX|8g^HYdxDH^;>+){iME<73 zwO(S>+|2AhVaAmGfhaOp+Fq(`$&MXw(>crgU&Z(P2v`SJHdB0lWi#wBfR(Q9gf^DV zjBd~6Z3abf^J+LmYL?&cPNE1YvYn8uCvl4U^$H{ zJc@71@X`=Ln`&Y1$Eb)&WgobuBdv~@*os=FH{seO4{_L9bHOy6Sy{}Al9G4n1~ z1zt~GuOZqwB*6!I3@j~UkuE4#_?O2oWM2>u3^ScyDgV#7?T}>o0@{jplVHQOMvx;L7ZiuAUcpMS7{SQ$;M+O@8dc4b-y*;PyN6HSMvkgt)+vs|3N!!07BKX-T;h@>RH- zUv^_Mh!Q2Zj?G<~G1fePqRycZiWYkat{T4%>e9PLqc!t4dAxx|;Lsmlcx~yE06$^P zT}nk{&HVVY_Ncp%+obD1kWy#H%MMZQa$vtz!yei9VZyq+ZC)fo%F0`)<_YLb`xG#@ zVpY1#{{zW%%imp!6gou)Ywa>59^NR^^DrWr$H=b(MQCsMt97qiSuX&mT(u14l3YGv zaNhJT0xMD6*}UXW6QaeIov-Xx6Rd5(AvSQ zIi|z7FFQ9obvrsd%nk!~PM^q{7KF(FK<3Y~Engy5RaLiaiKLXpSFJjN(Dca`NQ!~N+d z3Bkwh=^DfDn5=wrKr)Tk8fCc0WkO=fVmyX1B+c{St6hrXZ+@kawKE2j>b_02gu2Vn zO75d_P06_`x+$=*6dY3axjt|qi zNF+%Y7ELP$16Q-|RjGtg?}W{4rNMq=^1$GXsY3^5C3#-OZl8IALXD3>^J&2AEKNuU zDz9QdoOJ%`a!zJ(*OqtAKOq@cx<)jBT^k%q2W0N#7Ks5M#DuNu`s-D_xqkV=C4p>e z4AV=M?pLRUc%O(8sndT$H;0rHvXGOS0}+*0gZD&0a%fuC@c-TS?; zrn}Gj&cF|fQ$`EEgHrkWzJymSO^wUTdvAmVNGsdxW+s2mFbT$;ZM7HTWdrc@Ck&*) z#cvw3y;WW31Oz=tFG@3Zgx{%)sYGX-|G8faeSDc#a41$-uIiHG&w3OKgY?XUC$_@d z=-4`MR`V!S2}9Xw&P#KRW`|QW9u7C10@-qrSisc8cJ5;?ZC6Jw zDxc6RSV)LmjFtn&j5@>KPVPw^{{56nx6x&WhQ_eZ|A8EL-NI(7b4P$Fsf6i2BpgZH zoj|*jktqQQ&0n7>^#}bg6M_>po@O{qM!mfKGR-Ix7RCQ0YTu_H53 zM|srC33TD;Q$NcoosxQ(5{30gqig7UmiIsTy`KhIA~NR3k0^m#_Fd~@3>87h9}W+5 z&3nP*kb3NUmJ2P<-<}Xx$>dgPVTEHQNr-v9vUUwN!tSuJjnKK^DUw&mi>o+P-AS;e z9ffo5P@#$7#p6qNo!_M1sxKI%Vm31+ffm07U;7lj;$JTVQY4^^xkhXje|^CYzrqWODpX2NK*FKF)WKHClCwfY+`h#W6ou+`cDn z0zTE!^4@k1e^|u&+Zl~f=3mSfk|#@3_teT)w;bUm@7$~U=KJsj4>JMN)IpNYl=biAw_=QSk{y_Qz@0^;=G&ZrWJ z%%DP`lDe@=il~J`uBu{ht)=;_TqhDarE?o0O{g%Rxi4a3lBEWD(mt+Our^#xPJP4~ zgvf~&fsW#*eNEqfCFQf9m$ zX&B_TfV9kIvT#_>i}=XQpt$J&zcN~mHW-oqJt?+{mh`9B>P=JmCc|$NHJ;f5aaZ_l zi-+vmZ>e`D175F&naKKr*-or6!lQ-To9f&e#v>^z(r%KCy7mmf7t*eSNoi`SHrdq` zbi0^Zw#A<79mFF8G(TIwznOI@B;6qWKF`jJhnI&t4Ml$Gx$ahWP-%=SkmwNS& zIPy&M@^b0Anqo2ey$m#=uo`=n)203}bOii3zeTd6@>fte{|5gv!;-zhe3o6Gn^-v7 zxQGfh{=Nn{3yr}rL$P_!z9|P+A<j(jYYqEiG@N` zxuekRiaRpoKhA4uO|qHe%hJn6=&KK2Q4RtS<7IWRm|D`<;>I0uw@sDh;R6|F8L3mv z3KQ(m2JbgfW5|bB343;kaoYKAsjG8UEudSYw! z5#!o)Ffio*`XWJ0sI;RuwolY$QGejXfziLJvr{PLZi~4R;QIH_McMfhrFvF?CYXv{ zPdbDBh-aQm0J;>nxqZYuS`aj;VjiD-tA$H%d88QHbnU6`I+DYf>zYlWc?AE4wuFDl zHJW>~I__I!^eX!HFWCXWceZ4q{70I#6TvP-J?gO%Vu@twnlV@;QJAQKMT;URwswx? z7Kr<2wQ$Ont_Fq&eAlBL$+L1by6D`Nb8`|FmSG*+#=rgp*~~Nzj~g!C6zTs5>S#x6 z%5o>xMihU|kYafLZh``_VsT2n*i2NwX#AwPA|Zf%Bbs*(q#=3Rx!I z{E#@&FW%K;?S!$Y3D`fBwLEHg8P-^j^xC&>EwA&7MIE2G3E! z9#~)hP>di$L`||2fBiRfZ~p0nZ|j6FzOQN;Iv3FYegf=+QcaRH%~R>&2ScphHk&EG z#?kp+ohZC#I4ps=oKC^|zA^78vB%ffY6g6OmlDZFV3#msZ5qlN4tg<(X5j-!yaML| zJnE^GhQ^;CSW4d8YNk>Zi#9m+93V6A2SvtsR)6+=($&#Yqo>u;bETFJ&7zbNMdGF%PQ$2lEPq03nJQO$DbnWODoY7XDV$lgm)C7K zA(V~17GK%$>cU{|CwX$h522g0FM;D$s7Q0J^TO~Z0HD2r%p<~kVrg$USQuP6=bgG0 z);C|U^ooF99NhW~KxuNzWVWb$2xn;;zfW>ni&FOtA1nzT;^iOWBwMUkERCtiHJOKxITFQ-prC2j$(qqmFxBh! z9dql2V87ygj;3tAa$tGMTRHpdx^%>!`1qQH?q~e^`)4e#WviJ|ax#t|sa}_STKxik zQGdBkLCxA%R=|gzOgJQesuoW=6;-n$otzGVLTf~{z!GbdtA+-mn;%|T$MyX3O@s`LR25!SvvIEa|{tvnL-+^sogH*Deph zp2>}r*E)SX`QFxi3Gz@JOpe=B(JYgM%*C^Ye1q%#j+I5d&01vKlBM4nu6{8#Ad|AU z!lsi_dw9APkCoPz!4ETo*kWip_S_u=pSFluQWl@vJ0&8(dM+Jh#at6SnoxctiQ2TW zy!!m#oIYY+m->3#ur_g=GX4PMv` zjTr#d#qf*d*pTaTnZWIv=Kw;q89BKxNg%ynrJ9-j&Vqcsl6!W>c-7d!4DyVq^_o|&P6BO&HjM$;61s?65?j;5bmyP znL+-rv=(93NJ%J5|rR~Ep;?E1N0ym-O(l$lE zrX6Wayv=l(XYT$3X{3mbAa@mc$ysSu)T$jid+Sa7#~~K4xU|t&Ej(ZQNfb}XoCrre z*JzyE!m`Uuts^cXIeaosz;I>;B0TY8{GuW?PGRTvw+LHDJ5V!`Iz|H}GZIVp#pK1& zwmcIMsOggFm!HziE{7aO@va%;%*>@RGQigzrV=SxT;zU+Q&2blc*jZ1%Puz_eRN3r=Sl2yO zyd*5?{I#aGP3V9#vF?!4=|f*v^~MHu{?|b6nY=RM)>Z2Bw5XnKB{c}*^7UU`M_O0R z#+yNF7a>j^()dKfS|>;atVgBUC^y8(+Lk->N$GU|o1T@0D$#Q^DmL1)+s|csQK2PO z!8KcNHt^A-iJ@`~!M2If{f%k#NW#wS{>NhYQQ-sbe|T(azO17xn) znO%l3KE9UNA|zkzav*B+04LpsbzoLqD5>BfR)Lc6N{RdRN9oucgYx<#c#ze$#zfFp zb2BvV^C#z$5dfa$;LA}!j^UyaW1f?8s^o1gAA3Ibw0sl_{WDI_*(S7m)nAdnvO##r zK6wOJUJPVaXw3vTM|~=qsZxv{%HHK$DjmKsr=XTI^z@#KSnjprO8$iS@@9}Zc86^D&dU&lf zf<`$hUlXbFec6d2{)+u60~9GtZ)u`7jYx!xA>tn&xG`=72_R?TWob(^N3~&>06A+$ z==CLF*ruJh1e#2oQ8}APh3Us8uWNwgpEu!i{U9pc!voY&ddY_jnhDV+X;;?(d$(WZ z?JQ|(lI1|5hiI@7`YIczXL^M4;>Z3oB170ck&ZO68_pD9ik62g8a)NRi^qyie>xwq zxU$q&Q*8b42)&3RJ4!62$M#SV@@>+M<<0EsSXTqSAk-MkANux_MriCj)(v9e&@^{I)`EGB##b~ZrBFW+Se~xSTE$G$Pu{n9* z39rdD=)-&LVLpG2|F@A14_#aOkuVp)y^$kaT zY~O?1`dS)>8)8!t-HsQLWy4{e;7TTc$;Kg=y6k@VW@ZUCTiso(bj6h! zRdaHz+K8N;1|PzzfrhhZqH|l5<}QIQd6$LvuC65ZDug8;Qj`wEfCdCMR<8fS{_PFJ zOzB%cjlXTNtfDygs~UG!OZ>+XKQXck2I$(nhKJf8e>g{|ruLATznNLY-sg;=2g`c| zPP(_ZD(M4!*BZs%kkiZbFyERsX+P$D`HL8`k54}hk+4jhsee@dx@`J1e@Unx*;_uB zm7xt2QfjQuV0j!8{a&|&@1J-IzHdyb985Xap0L`%Zz8|17i0mgE&s}NZ#WItV`FVC zDd7A=biN{@L$ABuyIjnZKAveB1vgqs-+On;GW$3D2KFBaarMLcXfHl$in+EsAkv-~ zj$OOy4C383^kVDSvI>{%RtK@!V$`o8;_jl+B}m-o8T8SSo&*_p=aO%ZNr+^^Jt~}s z7Hilyh!W73IzNx?6@c_SPS3dQ^#v7cmQvt_d8-t2F)a#Gznjk~jwDw2p+YRPVch4g`C5 zphE%xpk{o!B#i2k`EdL|H4ZW_Py9_>gxBzmC{TewAZ2k|t|>YhOlX#+Q{9f~j5jmn z6@H*cK}X8yd##1%b^q>ZUNg}U1;p1Q-=MA_@wEgFT4@Jt;D7Z#G>`F3GmE47&_8bf z%w;2NMUG?P>QM-}iIW5;5`CzV1MyUnVmz9ku>I&iPxZecS2wW9+z?S)5axUMXy$Rd zu^QO8471$RR=z8Cw5=^`UTWB2{~`qcH@X#|mLs6{9*szd6QJK}!~-$0Vc4}EcTk`o zX%n0;GbA0qBK6wq`j%$T&skIOKaf{2vxn0SQTa$r^jC)p@9KSyt%rVOrMxsQb~HM> z3`J$NK_2*nmA_aB!0UT&jnsnf4T(6JxnP($tDfgg<4L}{fjpjGk7I@o6a+*fJWilo zw9J9#GNf<{0T6~Zip~@{ne`v2u_l6^%%%)7J&H2;Rp~DW@%6h@)+`8l?ls)}+@OF# z!a;mbaH`B~iP60|E_Bvc3wY4h`YYqM8GOi%!zDNY`uY^E2^YrcXA6Tn36)AKiwE!O z?vl5*CUC*_vMl|QRflD$w&+wlJ}Pgqxom+v`M9Qy{&PPOaT727Sh&Ma3eT2=zn$SNmmH4c^t527-cKsgaot86s%wMt08jasT`D{^}6u8dnk%(YQ2|ACb zq{UxVS*m?JdaS#Mg*YjF10a0+;S1_P11~wx;m>r-Ci{y?!=_o%Ir$M=QLzf|VynS2 zi_5E<)YaBv@udvEnj7yZF5N?^oKj&s!)r1RsA;91BsViFxm%iB$b}Tt#O)&sLmZCIC;K$4f4WG9Nqx*S)C=0eWodE&f!8zakJR@Wg9CBYVVWo z_zsv~T*puRIWe$#Z6@fs1+Nydjr`$44UCkRReWew*4+qq{sA#nGJkwP(FFrR;RnyW z?cLVMj!;qGz8sxWn%Qfz)CYO>Sbx(WNRlp}O9A=`i8??0Mvh~clqoJr+C{}$YlV{` ziPjQ(ft*~=irII+_qmb!T!w>a=G1r{fVw=D%nv7(y5(35j42aXdO~^SQmz`& z%fz~6eqzk|a5MLU6(+40={r*~#l=~hhO}A{w+f_|ScUB>tveWdJTLLz2HEJR7Szvql2j8tIzl8^-&mp2rvP zBf{i+@n!>WRA@8Gd9{H5^Jxwlp@LI2eL~|`oJV7$Cy!H+Q@T2jj>rS_-XZciKP-SV zmU01vZXqENoxh0lMMv25o_PGsWlQ}!8SWLCuTyi1cn}mD@xCKsLxsVyoHRk4N{uG% z$|KSc!?Imd#J;C_tRV|fbafTu^7%8bp(aGP;jj4^<&ajS;;uU~c%t)x9DG%~skv%A zq7OZ;>qCWsi=+Ft7?0zAhsV=Rxm25d4K69=o`y^-FwD%(9k5?7Xwf-O~S)qwt8T0)47p9T2N`^ViLdUT zkBOL(S3ZaGy|#!%gxHcreDv!awV3ndNk8FxN34nqT%u75ACcd|XA>qVLpSa=S{3U~ z*D*zsPfmSETT#4&-VbPLcpfa3umG>$ye`ZJ$howt=g>SgmE|V}Sk`zPUdNUS^$uW7}s8ebBp+4qt zeX{gp=5yIx-+&4LebT(&D8-Ii!;TN1UdyUZ;&h%|PT@%Y^hzX1F8M#2&cmO||Bw3z zMY1xY2-(E3GRl^$tf;JGWai+IIN7VRS9ZwWaqQ#R%AVoa=h%C5%wvAwK>3`n<>M^?XU=**XGL&a8a$bN1>+K5U@s8l@t908Ny)L%%4iv!Y^s?ZGc*X&ufj zOcv?Ks>rPPsZ+Yjm#tLo_Qt^m9oFYss}lG=No}Ch#`u?&^!KFXr*4FOGT9nt=Ya<+ zu(laDuME7 zB>BC3*{JoHS?4m(gB`1#(H_ca5VNrSUG9vtP7Akmx{eFKAKBJVuMn%(-l-rXNssUi zyM|{lCiTmCD3Nf;{`sgAPxPExjVUABqiR<6(;I?B@by~0Cv$8Q|Dv!-#ih#h(8K*f z!X+xQmu|b@uyMEoJv;%xI9CD_T^pMNM?!QbWnp<_9;&ubpvSlQHZfX=6w}<jA$)~RQmSg}EleqU*g*KsM)6NlH$S~SvqF^lGR;}-n$ zfNAcKAF!CoQ}@op&6Hh)Ani=j{UGK$>MSG4leSHw4c*33v|T4M2vjx$|C>GJu#$JV zMR8Vdc@-1Ff7tlUTTSVyu3pK#@q{0GB)xe5L*<_s!n_~{fMaZbq{Hbof#jvZ)L5Ox zdKKj`OE9VZMIri`&zrOkrYbwWt7GMkW1;(t`Zv=!Vykf&cCdz;x$pHwOjoQ}ig+tN zV|!60MRFg(NZg+M=#ZBHhA5a&n?&}W8n$?gxd0lm+BfP`zIq9aUYYZ7 z;*+OxvFWs`58diGgoF2k)vPD#_IuF4;pn%&C4i{!GAec3}TLATs|eTKv8k?=7eYa2FZz4{_$c8WlS`hZQbp zG2~pn`7yZU9kb)hTN{=uXdP|&lvMV&TtSl2ev_?oMktL$msAQ7w(!lpEb=8R{L}`Q_Lif|tz+i-GHW}zQOc$DyD2l0T{}Qzs;qWZ!V*j#>uW&26I}Du-U)u~_3^z5=E4-SIQ3cVJ9gHiK)V8T6T;P5)ssp3Z{J-<(ORuOtE&9MD_tqs@3JPsDiF| zC9xQwe@6S$!u#lzlf|&59Lul<6GAOG_QOL$ps1k(P4AHeTg2#$vO5f##5~!%n2g)< zj@{t1{vvb>+egNYLe$Y(9L6|rbV{D ziyXdG{Y3ZgHGMm}jhTk_mp!`sm&t5V(j58XLj08-ves9X$-)z5JK_`wD8qQIi+y`a&Y+QRSaltWnG~AWzV8Tm5bMNVWdq82 z7LMrxtPkBa<7rlD29jHR04WNjz9)xu0SKom4ZbzY{dLWew(`RMw7yU$Cx-Teg7o~C zlZ+)XPYy4J*FOQ7ewTVFOC!L;`OUd~z@}l0D&=wALzWMI-goH@eTW#VoXn}s{sZNj z{7Uap2R4xf*<${Dj;f3|o-_<&uS2mmDa*dSYgo!Qyy&a(E=g8@Z-*3?Me@Jr3}T#l zi?(!|v%4G;$8H!6d@PHu0Bp0*1V9V?ZD{CQ(1ER`TpR-SLtx<4gP40B!7c)~65=%) zO`gd{iOw-)(!~3F^Hz=4oK2rHMayioPM_vGIK=$hUbT*0Jf9>qjAs1=sF(vSm+|?H z^@Qab65MVVnOY?&M1Tl*aE`l$n}@YQxsa%XrmrHBzlw9t43UABRl}v4G<|bg9jEP& zGtyGS*6YXL+)&SxQJkjw@2mYhq&rzZ%5%7W`iIcLl+p9{T-JRqT8iI5=XVgK{;B;> zgO{;FCPwO_66|j4%BF;!h{MnwjQ^ZW?i81Ob>f44%W+mAnRS*QW_578a$H<~)*}%D zjgtUYm5^MB!l|ZN{|=_49pSpsSxUt>*FXu9-%%*XHu-8s@nf*q=pH4fI*H0!qd%#S z1O6MuO|JJ+^GoO*7r|sikCUFBsfpITc)7QITcy>iwaSkdgS9;(?3g;wz~v5ETG`L! zbVGMtcsD!6ZR>E?18+1g=c$ZYt7nC!4JpS6=Af-CH{9ED0#ZSl(N`LUicl%jq`L9F zm+p3@q><_8?_ItQxtd){?oQe)_iIsUPx#0$aV#;Bg_bSiKF9u2hH=t%$JRN2QJXe; zIFcJDsbcWnAe)tacHRV^0&GO3vyAGniuOsw(tEDA(p?TJf+d00d*D|Sp&uLxD-8Qb zer^O8$_uS{UXpep>aB|ieA&7#nmc?YLW3I_cgn>a5XUL)nz=+&Xxy5AGr?ND9t?-1 zOKP=LA0&O1`Qkp})=X$|C)2+8M}8A0J=UHTNTCc z{@qP=>WJU^xw>PD5x^0X?s8{~1k5$^8bC;Q6e~fK)#9M!4NcUmA^l49s%>@UuoL~- z#gb{r+BXiu6wqO(!LwWI_scKkJ<1o&L;dJG<=Y2E{mG1=lkpBH6boBJ)E%scr9=g{pKiPcpi20%}q6v&4|rLKP}yp6(Q3(;zhgr4_G$yEg*BXQIZ1-~&y${Z zSw&{$k2mbs$$s>bfo@t<9e&I#e3!zPve}n!OW?M@{#wNhs2Ci6S9@p0SvLOKwTAJk z0`HHL?_zY1aN7sMI?Y-}1di+9YQb&z!v4HTByVQcey)Gpkme411H$Sw2cNdQ&!kvn zxUFxTRFY>(HrCiOQfj7VD1}O4*-$g+W9thXeoZnw_Z%;>kV$Oj5x-d0xHx;yeiF#E zVxg-&KuqK`&eTUa;dp5SB?{2LmcHkbV5V^(-CQs3;A zkvQZB7&mG)d>nNsq4e~sTHe-)n(owHdsXTccfJOum((1^HgY_X2nQX_2g_H_$27qf z`$rd?si^J&|2R}g+-@JSOY0gL+CIci{FwYZX_tyu_=WT7v+D=}K>;5n?`2%xwtLq} zDR-z^e7eA|CBp$+J*l9f?~EwymgHdIYGyTR7hLE!*g{!)>VDnOjLsJr zk*QQ>{Q+vfKmEvuu(Zxe(g%6A-Yyh`5o$+B8y*w}?3FtmYkhc^sW+B0#%W;36RYb} z^y5h;_@zDZ(%_`P7{NhIj2P7ezu&D4$YuitoV5KM^F%CS2lJk^?rpnc@&oezrcZUV zKO?P+dJksLLT^NU1aRveL*Xn!lQ{>$nJs_k+iG=Ij7`k=f|k5P6%Mbm&|Sm~t|9`a zKCPJ><=ADtgP||-i{^$~4a^0Ng+_quQMq^%^M%-evcl8PB-4-Qfsgt_@;u6{s?1bB z{+nUHhxo*UwV~hsluaV=93Kftpi9}jy{6o(`xC&18VTAXB+QPWx3w%H?tJlxXl@~X z!MFT(*Fi}85Y_aR7OpVt*hnAyIqh*B(j81>lAQW<#nYJ@9;UX!LC$}UtiNRQP+ijb zy-#f~;?e)2W<-XRB3{cP*K`i6;m+0G6Yzs0DpmP4WKAE_m~TQj;Ls=kzB~*g!1`$N zWo%AOh|&RaE}kr}L=v+%c+nS`_fbKGV^!czXzfRjvlxuVl7FZ3H-aV|=PbJxfiyGc zDm!%lQ)R(4v5z%zVefTQmJXMpL|+;y57wCoKNx2o?d(N_#1X*o+pXEP zc1)SRPpQc5M)KtWRqTy**B$*C{y$|OSSTtr$eyL?P7Ehz?DZ$P$<^%+dKI==z?O$F zv`T2CnzMN0JcIq(QHP6hP}sV_p!iHc5dj@w| znKHfpGNC1F!EFmM2U~o47j1MkRUrS=rjGL{74-W$t%c0cM;jmeVc}Y*QzBIbQQFQm zo|G+~tBn(7`y9z@1KKfgtmZwx^H+@og$E*T+k6>}@k;)sGd{ZG);LD>LRFZ%Ky9ru zy)r5qJ^Bz*Y_?^^s}JvuQdz$p673P+9(%=$lerj3JvPoC6GSx#mKXHUH8&m>sEvn( z>;4q8PA{b-6P$3`Uo`JvRyy^@!S^GD#6o#+ZvN0JR?NhCgcf;dl?t1Ux>W-?cNq5Z zlcd*7o{xzJkEtjJOFhC5_q!NG?e0NcW=W5CE!nGNhTAy=xE_2d{rg4E^L7YH{%8N& z0QodBlUnG6%s*HvCe#fqq*E8JzA!5O9AGl|eHNm5{QQnTo7sFWzVOrrm%Q^Is9<|e zU<4^ok6*IoFDlV;i_5!=`GFSIV5H+Dtm9k^R@ogtf}uL)Y30ME zt1s%m@1w6?<0Ehm3b@*m1=LwVuX&^pI5vcpQ-;(4(V9j}tNCZP?p+GX{Up4d_VSWl7eJ7&~ zvq8*zRGnfqt01Hj0@Zo$Pait5*eE`7>53EKZ?61awDS&v5%7n`5L~I?+w-nu(a5nc zOEz_pO2q56KieA9T$i1naN7K_VVCH=Rpk7oN%qoeTaL>2#rhI5%|~SnNea_2HZ>^~ zo|d`0%>?PHtZ}ii@x@ZR)2Kh^kqcVfkCrF9Vn)nu%YpD5;NV7hp2@5^)2@|U&fEjD zwZ*L1fiGgzT{|zHB;BPW`kh6kcwO&rFHc+;h>Qusyo=vr5H=%&G#0HW2WC73=F40^ zN<&E$dt`pP9!c(O0})&E%uVu32&)bj_B!;HPJYMe^d=^rQ~w^OBRjvY@q?bG>gU-$ zgFcMW*Wh>MoD+iBZa8sNA4(`Z?(Bb!}hT<$8%WIQDDYRVtu|x&e@V&h)uR4 z)Y)e7a=IxB@+NMPEp_+mw`JHWEQjBEn(5r}^Le=SXK5>HkZZ#$2)^&Af6Q!MWwdnP zBL43)yPMu4&uq5Go{^t|{NO|mMCrfFH^BRUhNfc{*Z-K3bV{u@c(kgG+1{J(%(tK9 zos9GO(?hKp9{5>qXBSj#-t;1q8BYkb?aiaWg$MpoFmVLLwCZc$%}9NnFtk@t?Qq%K zv#RGAp-PV(@5nLZVQZL0myt zo{w(Y?-t5~?hqMKfiVTh%h9FUOOv=Kbx_Usgm3RPUH#tgT_@_2k<6C}D}hRgghX^+ ziIQWWC7~GP{*A4hp;Ez)EMq#j~E<$&o(;JV91JV{(!Ifu{WR4$enU)haZM}=v#mFnj2&8=Z4IE7AICRGj9gDq%&Tdm}z zSN+)JJ0lAUj-6CCn3HL3P!juP>{Q?bt_MU%teWa@zK~FOy#z*~OJcM(Ze7>ce$Pljp&CbS_R(`=+--RQWCjYoaKXX!AWuFfK{& z?qgjfim;<~611guzaI={YWo|5 z;`VSd&#ibujs@%|L(YEf)c*iLY9@CLF_V9iV#xKBi|nQ1LPSg=oAg*0jbR=7|ADA> z6%#3dWWH=m<=x8u`@jeX7=Ze=gg9Pgl#SS*xkFFW%!VAj7A}Vgp#}0}ZQ{+QDdNzu za0ppt{acoAwkd@QOYV~=RTFX3t$Sc@R=~tCzX@b|YMGLR`Y6`k^ljelgtB39bsJqN z*4#M9!!7stz`V^J4hORAuTL(4^+OAkKmGimryu92m|=Iig8$(}RzW7*Eg4m^I7C&920KNs zC6`)+=;<_rxO0mJi#!?Sq8yW{u>|)APG{6OZjP)F;FCTNug+s;k{fQ+E1!<yY+*Msnq>63&o9B_GcqAOQQeqK_==Bg&CJMkV~0o_#Yuhd6K^YED!Cokg$6{Cgl){d)WgDz+BUR!QOT?vuE8oMl|sj?>Fy4%rP2GG{7`M1IK+ zqyskLQn`eZg=mu17#5UZ{Eef-j}7Y&_4uZ2yBiYKjbjAara9pTZrCObF@rFkJ%Iw& z20&GogfPb&fibS;F{RChmk#U38czOj4ywiOd~kgKQrksAwjhwG2t-NFL_T~|D_g9a zkF(jq*k<$>Kp8)CADZt;0hR$!GK0`E;sx)0is)bi$K<5kJEgKN$GLCDxW_TrS0lS< zL)h=&t)-?~!wG{dkMCu9EDOEoTRN+=NVF4OO@NG4fb<8i|L>WcKmfV}6U%vodDdh7!K z)61mB$z?9%iEzJn&x(k*R&Zkj#f17f7;uzTZ^$!H+GmoEc z+$px^olcmRf^+mvTA#1ff<-=a<*ovG_;{19C-^46RRf*P0#EDkhx4(v$Gn2i4rIu- zs#OTM(d)5nOoU?Pb8B6U;9jM2NQ}=V5a(3b!QPC7PaTr=_O*7WrFEWm4Jkic1%zc@3hT-k1I4 zTZ~Gcz{pS6M6nRSyxsf;T|KGzIRO7a@gxkkz$9GR;pC%4Zx#PKV5LrO40IYd|L0W4 z!V+gM6?Mv`D}256{N{ea6q7$GR+w{WUGMC(uOMI2sP3_7f8SNp2eO2%%n6(!su>lhmvXm_fvcVHI#PzKB-+E_SCgM}?>zdvJW02!@g~hYgF;#ZrCRwv&KS8U zkJcc-toz%rdV%*=qR81iv^Cw4RC(~vqtepyr40h(P!4q5E2o;?b6R|E01SCR;<8GY z++#qNbf38Td&e-s8+`GW`e|X`1b|V1No#nVXuUY1$x84$;go#`O+Lcn?+&Qml7~(% z4}6-3JW8Rv^b^|zgPYiF0hVKo!MKg0D-6gRe7^1^Ye(RSnQx;nE}pCRwLN~YR@KOq z#JwANRsgL4$DzW+Yb7w>1gx~=7HlQ82Q?h5n2a;;d3?3aO8w@Yg|r2Bxa!YxIw2j? zlW-%Y&Dy~gi8ME1G-Zc3u<|fbUOqEeyv<^pX5}PvNgs3lw&QbmKL67zg|XVdl4{t;z1Ux?|ART8k63G+tI5BRqu0+|Qj?a3BrNuwhQfA%*ATawfb zAwUwBuhTkEub~*9y8`STlF9l%>2$l6_qBn&#?jKhfs0fBfok@^kdLtjX9F#H=(+hn z4zjgTIll$UgaAbamsX8ho5t*Ev3SZ}{W;>gNh{)i=*8v7z?rM`jcEJmi&$g8l;s34 zL1JUcGa~ktkqKUm%>L$aYU0+C>z;Zek^ozr$5IEswydv5~sqSvl>k1`-*_m25SPy^EM|Bv#{#RVFPE1HRV(^ znv(P(cTE7WCP(y9=V7lve7d~mXb<7s=11;O|GTM15%>a6H(!F_m;y+727>1z$Gb?b z2DG^c1S@pVOH@X{XxL62O153Thzw_XS)YlDmIY?LKn>c7$PRpPERf%4gm=!s#JpGn zX$`q1ZVwJK<6Gd8 znWW>$dXBM`26NGgc_!;G+D*V06@n=P;^t^~KN+!&=fV($+LFpO$J}Yesb{4Ze_Q#X z1>;TI5Fgv;!$(6%aDLi$xcIf7u3*MO7sjpIF)-u>l-gOwf@5Y#eoCxaCP)IsA0sC+ z?OUmEw>DFz zZt2vMs%V74P-LIHo9f4cbeE4+YN_;JX*UmMsZS#knQ{PmbnHQnXQFCh0RI-efn;(L z9NtanzFyY;*}2%mIebhk)sp*BX4O-5pJ0#RY7@mE;$h2se0ito+Fs>Quza^msrZJQ zIf(yv#%&aoljtq(Zl#C`=FxW`IF7)@W?@RBTX;;|R9QjdjEI}hmp%z|>tHF$9g-Ma znwPtI6g2|!VpOZayA=^55E?8cvgq@q3cvzIHCc#|_}hzoFQd4`V^p)Ls8rbVx$l7+ zcL161^D=h_{fLYV#9)j|?o%(oNo4*l_cir(tr=BN zHGC!36I4yyCF)5yEUR118I zVFFBgic1uJ%8eCudh*pP(l#p0qy>uihaw*$$$D@4^QZ42tlSzkaWP7p3RK~}O*YbI z_S{-LFF6K~aZ^`iss~G9T=8AWq_^xH-EOnIJgaSIGW3cuc8qXY>JJm!?srJ%D_KjEAqdH55n?8D~bLzNa{6j#V;W*FUf zlzs@01;CIDxUZb~jg8;=+1QEcOFlzEl0iDa0H}T&(HfM?xK<7fO&p(#^cI@<;EH7_ zNG(``oGvoT1&k59ZRfS2xl~TqE`W)#;OAsd3mc9+%+C?REJ{^VuXK|Vf{fMvNyrk}xPXKK>p`z1uDJ44JSANeWdG+{F3F|&^(kRnMl~6E}_Pnjhyz@3A2HN*0>%)4x)d!Kbb7+@e_6^Z@yFbd= z=(b;Xl&6vE$Vh!wtV1pJ(TYD!48 zPwOli?p+@OjE&6`bAI)aEF;HVh48~eT4bBQXYnMLn;L8T4KvTX#@ThxJ$dg6K$$mA zwpv_SXt5swV}ew%?!FAX-Is$Kd^Yb6#4D9`c3G*vyq(1`Pe-11f?l;+ADD<@pl9IX zEva8Ivwiiv|AA(WBXmd??@P^k@UwW%uJ#~=XD;n8KK6{Wfm~(lM zvCM*GNn^z@Hz}9Jx_&#zX~B8Z;ty0u(*r_M&C8l9EUe zCz|<5r;kWhV5wQ|L-!0Wpx7FIgTM&gf%ID0?fRD3mn5NnSaGhO$5+%@O-oKwR#KJ(%+OVI)(W9sdbcUo2MVGa<)5Y3j7Qew(Ik!}6uypzajum5!S@ zOgVfriQFowYh$6OxiVu66lEnJzE?0N{t2W1qi|Qh`ti99M|$0H;cU~KTq`A;Lh1BS(Psay|wc0TXHY z9g>ov;!DX%XRq|6nF7Pu{RR~%DyyVS{sUnz_EQRhGk$uCX6}8Gv3`^_HRBO|sHJKM z&WGYE8j!K7z4E?w$9bbUX&sX4rS`BW!GRxnRSk=I%z&nmPE8hGFxYCc)~JBLN6EA6 zu~7LSJ3@_i`3|!Er@az>ELO;USl!)rOhn^lln-RnOHR0HH{TK+S-C{R=j;}x|_{JD26PvzM)9(MT@05oP;ddVg& z>%HwR4YGdy+1q)UqOU^guQuJVa7CU_co(FnETL52fQY8!It_TdQ>#6`xJ{f`QYPAU z@i{uxK}j4xAVJRzb(YAA#bwPuCtJ~ymFN?#{DgPO@-`SCCDb(+=UDW=U2r_-y+hC_}J}Jk8c5eMj{xIirUqlH-N~N zGuF9)PkY_`@uKs}Pc!LhWM~=?Cu$ia!({;;+%VNKO8Isg5Bb?k^Ut%*o$kEKf&U8O z_e!?c=jZF<3hD-G0}J~L@~<6?IB%v){p;C;!cS7HOY-T$h8hU77Qh}k3TCr_Ljw=B zrIuL|pisf)Ck_q$LI$_lAxDJm4-T z)8r7AEy2S2ePIsrh}UB3F68pEoDSI>okn~uI_8_ScF6W6V${`pRGbWjlfB&VV)VB$ zY}i+qdU0nPkJGdF3Wq!pi=rn5r+%!M8FCU0x?r#e!N&G)|MX)zxDYIHfyNyQ^|QSh zi`OxB0`=v+fF?WUd%+obE1BjujO|2d`6 z`kbpbvEna>@u0Mh(mA;H%p%5$$x+vO_ZQOGU&MK8*?bgbcLtuUc>E{eg64)y%64>N zPRJAm^by;Y;Hrr_nRU!R!_uA8$46?Aoyr@>Xhxg*EsF2jpf)RPABtVZhd3(@IVFIU z3r*~kbxO8vYOs(G3=&@-8g&<=4ak1a&?CfAc@8)fBs*%tC@V^)4 zB9o8WH^$J#s}A=HF^~CgeUks?3&kYm@`UoBfDk&lq4x$mlMEBv-&7tsIqI32wKT$o z0RA0CdY;l?^mC>=46S0jN_r@Cij4f?!fA}peH%_EC819``5>;{kx_xg5jPLYTu-MK z)6UsK^5x6Hm{%?wZH$f$HpPs8i(Ml^SCp?0DYv9?T1ki4-}>J>8DY3vAw3QCfhd8L zP5hgsNDuZwB*oi@@Ds~}8Av+TO14trc4{YJJ$2qUmcG1JCrNe?nn$@zd5^jk-L&&u zai$(6#FBa_=CNuBkVd=q90}jb3>pkaz|8m^xP{Hd zFYG%S4uT* z=Qi@I(DZr>%7i`kN-O#pb+&5*b*;tqFL>KMMwzCrboVr7%&c1T6fO>eLVTE+K5C)MAh7ElULA9L3U1UJW!$ydymjT7c@Bhi@w~jlWV%)V_r}JTFeDg)13Eu z%RIjJH!+Z{8wNe|_~FhTz@YJ_K+{JZ@l+s1gjp2lI+^RLJB8IMnPY~$buFCUJoJo! zeiW|GJ|41<>yp5kw3|%IqunH4e35{auTh5FXEdF~&+UjLYR44bOTK49Q3^zr8H2cj z{Ta>0-mB+q{7$h<_x!e;p1U0mzuv|dtbwJqB6f^@!d7&=o$8_t{i(ZMwHoU)JD&C~ z0@nsw2Mb4^j_5asp_c*B$%da2k${JyZNlH-aV;)E^o(M}$Xh)aQt+JO(*5>mducA{r9be~#5;ZU^fxA)UP>AQ-o)PIL-c?(X zHPG?)X%-ni)-bUSb>8~f+ph+cG}5`~{k*J_J90HUjV<~8DPXk=Y_ z64q$*=g1c_q6WDV^FDvqDtG8Z#r@6roMGiCqdMa?VnKk@oX2AJFSLU<-dWmqd{G=; z3V3J*lR$XDqu#arffcIP!vt067pV%o-&hAPcO@ep9Etg|ktUIL3s*eaWlemd17D8# zBUTkMQnN(AMB0VMU4W&w_JF>r+}A}k%n_`UTKVc@j@$z4-vH(!bB(3Ox>7fM%b!BE zjF+g2GIkZ_ztSVVUI!4!MuT!?ebUSwr?OqDf%)AQKIfAMx!*lLv|E%0jodo_Dsui~ zC0<>2w)HDwp}NMLA5wSSxiZY$&jDDeh=A;|JDcUXhPNk9MCUx}qWrz+PRvd2!s{a1 zCf;aBs}^s0h0-X}`j?{o_hP*4JaH4S(9jwm|hZJMF;{Hy^N=*PHt+!1X zHb*sUk&8 zYvVM>^&KB#`X5MrB>zQa7lekCL@C@_lELhGvt4al%;N#4d588k1Kn~t9jAp`C z+%dV`DT`?j!+x*Z71}c#;#+V6j%+tW=vAF38a)Qo9F*(KKr6}BqriRmn4bQ^H=gvC zUM-#S43SRjSk93_I}0P&=F$4&SE7NJadrgBl2+{)YcK8OyY|MVFTZ*^`TK0&+_$2i zqpWmOHMP=hj(qjSW}p(7(-b{K+^}Lik5sBWqB$zdvYy}8VSZwRUOHH9v`?LLhHFNo z@mV~lE?&Rob)-OAsO+4Bp>Wj)vcOyP5LTWO#LRbqesCqSU44lHHaClaIC}XG_q__q zUPpq{zc{%3iz-{95YtoUj<6;-029);(b9g;3i6U!gi>mnrEF@@ z$Cb(9E&(I|f!tV*H`f`1h7V9dzejU^dae&T7O0xpfm+9+R+2C(@lG`0dE5FXlnHaQ zByg0z(?} zYItN<2ri)P!tc{(eREckb$hJbpnbw+10zFLWdAx2;SLT`_A1rCDw1DBrn%REYhM73cXCu%lZLnK>UO%cc7+AFiPMs= z`%D!n5Pc&yuJx0x21XI+Tw@&B@xY&IS)DGKML4|_!F3PnrFNe6^L-Pbr3U9T!R~>N?fiGE~otUsK}w z%!33mCLWCJT8u``MK^98+?(J!JxfrN647S+#v}lWp zCD*s8yACqzyX`64yxCx4%LQ~znBx`=yRTC`L`y?*UDcfnI^mA+p?l}ALAA(SpEF&ED~+PlD>ar#42qj`L1xJB6$4IR{fV;qb~&cbph%@% zCa&jt(g8pZUIq*K6aknR8_1vBjfu9sEuonqcZVC~ z=;h$9^5AYu;>Q-&gRSQHt(O8-y+_(_b-Em;pa@i8^A?k)d%+*;6XHa zn-d$VTiBqC#%x&JT&vb>cz%_mljx8K;}K?NKafn-^ickR;tg(r&T8UEYOk1+WpDES~d#Y?o& zTT-l_$y2;P1!<~&1Kc@!8_3jy+3S=xceQJR{>44g?m9+9-4FZ*A*$7C&%Wkk%kXC! z*j@v4O1Sk2GSsflnv)7*k`o_exjma}XGb0;UN@i|au9<6@8$TYdOPHAR)B*dzxLKO zBTb&f&NgqFrkOPQQ+mLI(=D9jMyiw&IqFCz;`R>bx;(CA7i%0y#c6KEsRIh_03#n$ zjn@+QI&(K_``uj`_6i$omsB;c*9uL0ofnx%Mr#%tCi3Q+)%$MnwBxGiG*{WeFZ$2G zIjq=f)@l>e4tM_eF296Lu*Crd3UhML$w!&YDSC_O`@Q1_S9Syz8s=n1X(hQVg+*Ju zT+}AMc+Q)Rvx3doZYb41vwdZgEpWv>wo%xbLAMtuJCmHwhw6h>H1dyj#+fKcA06@~ zC9QXA{0AbXY*79i!7BnTlD4L7rT}rLlWmP^l-ifVz@?l6^l!*jrC2v#x@11EcP0-y z_N94j6AbY`5opJ&PJ}Y9chfXQJt+vww|ox!z+|j;O^2>-4J|WozaSP6yVN<3ipxy+ z2V??q%`SVSUSKsVL!lVQtj>R@?j;A1`MDIOa)s$8j?aMz9Jbw(WJvmY7Tr8uJemAm z@l(d5159m(P|pmSqIb=m^TsWH4uTi4L{@z(Lw)q?hr_A+>SeEkKj;FyEcz;ks>l@c4Uc*>80pLbZ z0M>SlO(gW!jV7;}UpNF^D#vwA*~R<|lqH0^3ACoXnORQ#it7lw1UUHE{oU z`3ch}Q4_X70piq^j5v8nqaUv_!p7oAb?A(rF~^eGUMr@&HFsx(6M<16EJ$6wdL90@!bnJzB9-WBB3 zH3xxePd`-E^nOi929+^z5%26zr+xL6)|i)-v%Mk4KJLYhzz<_16^ulHI+ZtUz*2E{ z%U;sEoT2s9EMci%bCiV4O_)(`tFT!LdNa><&>fV#^HJ)&qtD;X1iltP77;J~CwG&Y zi0(sA^O&WHgnZNS=D!eOKY~2F*s|)9Y|c4lKo#@fZ)}@F+DEuk@^TCEiwKx^wj@=| zffWDVRXnAToTI77cZrEQYfX0{I_nC$d&A`G>X4rKTjzmMMU zicBrbS+En%tRA`*;ux7*AY075?_7`@nEV_XpmpZS$1rGs{P4%w9xv(~X-3 zobns3>d45_7#zgW^fPM2^WP04fLSa=G0@GFg27QVLot`8jCfUW0+)jw@Ho=h(!oc-C=sjY+w>vsW35sX-N|)Xp z&dh^BzlCl$q*vvh4pJ+_m+7_4-+pxC9hzQ4xz_5DXnMP45rDaHV(7WKJ~x=eSQx^x zdv9F_C=ECba6#SEh}dIusz;ef$j^>PpSz0-_8M{CY0{)gqp#3i5~k$N5hFTYZle-~ z96(Tb?v8$z=fZ$1%l^{(L;$nv^D(n|HFOR&hV4*D{Eoo`AjE%@$A8B#I3l}C+*DiU zJh=kL(FF)YGuxR{G~%YnY0wZr2IphS74`SXXp2o1B78|^x!h4YXM)l%e4^Xnf*&Rt z5cW_Z1;c>YXT;L^_lFE;m6Gs(!&OwsvQ$~Im{-*9memde(GO0bU;eg&g_5Gkfn4z9 z2lj7O+|)`=Mu*ptR*0rX>2?OE$DZRJT`$b3@PA443S`dKxOH`a;Oo6we*H>%t`yk&qgmc|~Ir(u@T1@Mpu&DhYb{^^Vr8!AU{Q2%biq>=KA$uRr`y zUn`xE>+R*L4PjeY@l`SeUd59f&Z20IH;wlHv;mR`CNdrcY^6qS7R{R%5q7zJb>=}e zb0Ja!(*4a-7BgtS=FbYg8?6+Z5*y(IEO~SMSdE|~*!wrNYAf44|8$|>nK*H$%8Ii{ zn*KW-#w<^n0Qzn?Sgs+MU99OAp`lL$fjm3s0fNQfM1Jz#&dmT$cGVRv`1Mf#%PvIgPEc_ z_8xpe9q_=-_AEd3^QeUu>x%$;_u(rP18}}nw|s**CtpK5#lQr{b4yo&uKYeD=Ph}s zbn2XD#L8;j=}UZ&p89&!bA6IR00Orj&I`VRDhezN%r1Y2U)04F{;<#TS5FAsd=k2!hiC7gE zc6pPEEJ92V_5+aDoR0RuIzSDqo)}b$VZBM=oAa;7ZDHJ)k#FCPfqo+gknB@?dgOr| zg-kwB&#n+rcN(nKYtO!L%Szj4dTz)K@#WAWV3dwUW{6Dd`0;{-)t9AnX`XJ#v6|Ev z+#~ORT;_zWN$qwRo25TMjs^gngF6gF|1J+Bd}(H}$5a%SZGBUoeZcYJz*qP}Z5o3A zgaAZH7K{U$VxWp*gp@=NxQq#vW7R7n6h^XdCNf4^z2P)VdWDVNcRfY$FWR(3`<<$P z&7#toglG!9iV9}Tloq7#GtD3 z6Ct3~1fxwnw$7I@Zs{zFYv37&&@k3EK0S?cMzaKzKfgM9WuW$mIXmarSYx{$ei;kw z^hz5Vm6?er_-#-w13O;V8n2T(-Y8oXKpxbr0_d*O(Ybdd z;A#l+`&5Weo3c$hdJ{aJHC*!`>gO4BRl9eHWQxOa0>F?8vDZ@)|1a!+kA7_Jeod zl8wJ>G{b@X-L;ujG%#CjLQfl&@=G+A6L_KQxhwC^0|FJDWD!F@G7$nampkE$L@(U> zEB^pA7aQcyi}BGd zo4V84MYh;5!s7Z$5tl?_5k%V7w7~wkyqQh?NhhW42=KiKU5Y zR%^Sqho5r((4v0~bD~swz+ZuF$>$VhmZR9LvfYMD=_bU_$GP~qef8ehLAJkuiL5b< zl1?M|Qmt|_O>v1L>`7o``CMkQ6DWWKcf?BP(`KH$At~xiyv zy=iRsWH~;cG|4UGWMkR`1K%j;KCck+driDu*hO#56Y#Jp@pIlDJhvpB!M)mo9JuSx zzQwVHq{*y`H0~{bFnqTuRGT}0<%9wXoqkSM?*y4^eIgymeOq@Z(*hi`Ehr`6HtEr* zsvCSpNsQPJ2NoKI_4RprZE~H}h^>VA<}A0{y@H=Q^IipH*I+4Ia`60WIxLb&%Y~NEt&B^U zoibd)%NnR1e0rY$6@UuWVa~e z5938iSqnqGhy^(i?wIj;MaiMWi87-oeHR4u0qq0Dds-0t%$IaKK2wZdj7%-a1sw}+ zfcKo~Bi-@QPXjo62v+gyRJT;~>nwVrQF*5WSDnVn43DARtg*0VXmYD1t|*lvk7Y#% zNmt}Var5o|DwIC`h8FC6rX&pqmuJaIXWy9j(d87cotWLwr!g`rJ!xTKj}@%1Yq-V= zt$lE7>YG9dX6%Y4A^!-Tb?>Bxf*lK0MbBd+6`@v ztYfAopz5`Zh;U);4Q2!HnR>6`QbJ0{Z>DEX)rJ~VKH)T#L;bgkzvCFP?cr}*4(~v) z`!j#e9SBgJ#s(IUyNlfXrTG$}^=Be?TJ$y`o@QE$gpo%`#a4MqFi~ZAJX2k0JV+*C`m z5lXb7Fzil!p_4?Gw$kLLS__jZ(+!Q&+1Zw_M<*+8(f{kyp<`?(GeR?`_VWHkx**TZ@3sBGwDo*H9Uyrm-dlSW%jX z?T8Iho949j6x-eTd@>``u`^}#1$x*D&wybAW~tK^@2uY3dKmCs=*+hvR)UXFOe;oB z8YosZs2sbIfNQ@XM1tfQ#Fk87d)C){FyLu}ADRzOpR{Hob!yLNUCC(F<;p&*%(CY5Zs zo-KB2WTLYjUyQW6nMwwZ8`{5Q;$FX-=!2r*?_AM*c>|2%+dk3E9`e%Sx^Ci&`yD~} zd@@$kc!m|QySJ$(^0AdWiCCXOT$@ItRv>6uc80X0fwII=g00HyLm-Tq$gVppvwMEYbk<;4O=J zvvL~K(W8+>su(pQN!`X&!N~|%Nn-aN>z~?I)>N3{Rsq6|Zh6$pbF#<@RVngbNc_>x z^)%ROlh9*3d&>XduV+y|)J<@4U*1MJR2+!@hYr=&rlXzUAD66KnG9%d9xA^gO1&}m zgO)Kt@*$F{$yPP*fwg#y@*sU?T&c(pNJEDRB|d?=ZfWIt%fC)Ome4c&>;mo}jBc0V zNC2iT8zHvsevWLUe6{k@s3Df&nee`AiZwiuvz6TPS#uTKIj@&3Qg^8@Aq6(;L`>QNre zj@@oa!v~Q(Pl>wngK>G?P}g3d8I0Jia$iLnf8}*0+7;)GG*d&I1=5j7=P%cUBwr=rXeJFlNd6t`MB~}BU zwZgn~oj74YmQl(!&Ni}Y!Fly0AcgmO&7~Q#+C|Ba_pgr^e;CJg8(1DOzL_aOX*Xq+ zm~J3A@uty#8Hs&e0jZ%4E~k{o9$e5P<+5Y#H<}f|3sao@S@>p_b2u zKMB@%VJ>)Z+qJr~=&sBoskTdp4k78C-Njr~_v<{_kv~Fbok$vkWeCmT#z#S7)Rt zjN$D86i?s(GQBde!*fQnky$Uo#laBq-Xt^$qEK>~fZEwbA<{wPp!I@Q*0%*5J*6E) za(_qHeE&zpC-4UWVy04C?-KtP_44s7EE}yJhLkupbqiT@*tK*vnLP{^A-VDzc)c;7F2n_^1INEE-V)77XAg)+8 zy;X-X{Rr&H{RL4dyaid5#-+aVS=#WIM>|P$|09C=Z>2FNc#{nXFi80adZodOTBBC|m6G?A_znSCCnVh5qa88Iq#aZEAv9c7%VpDh#39W)S`}eBnmA$* z%o7mhNX(?Q7OSJeox`t2u{j8$h$ylGs;);-huSBe(qa_CyhBmj`$K-U-!Qey;VJD} zz})WahXLO)6T41(J=qZ(LK;BA!ftcAGXl3cCZy>bR^H@C-=RxW#O2QFC?=3L3#~U~ zWh8Z*{(39s)V^QKXNsUSw#D)$-e~6TF?ZID>7!G<^BFJ0rsex#PhFVIr7|=Y_N%eL zvms-!SZQM!VE<1-eYj^}C)c}P36By=fvPkj7#!`bKeVKYz0{j295po;F}bVA2*dyf zGR<2K`RaQ2>h`~!pu3OC{wW2eYId#{6YYg>a{p3Ph*gD!Tmr`ZWMy0;30C+s>KL4m z-q|g%xEijWPd1NkD&>JMS05P_N0T=;LDQ@0t_1IO#hwbr_WqB^)^WP5CCn&|Rr9e7yr3T&WxTf+E(qgK(~!ak;Np zW69)Y`MeQ8kU@7(X}DOCl+-|P;=N#ZmmXcLA%ZwQ^H|W=%Sk7eS2{n=c0 z*Uo3XjMKj$Hb#ea+n5Za??cKWdepz4=F~P@(gK8JpUbNK9C7hz<^V&=h4Lo#K&BDb zeI`n3?LaQ@Gb)NwTxdSk+29J(mFlIc6Z~y>G@m&7ue+J~q6p(S%Q#hCy$+>+&j^|?ED5-`t9q6^k;%i7H-B|ZWPc&42n`#+*v{Z>4# z#nrI8*pBy=Z>Oi$V{eUOCHu zy*a-3qE)-*tKp~EU(zyVZtU${O}K15Mb|3>!Dhfy5(f=@-8q_zB?{vZ}mOS6*cG1L3Q{ z%9nOBxld960=&v_tnHm{Q)X_@DQL|86Y7?L>Ad>6Sb#OO2D(_gdX4nRqf|(3ZVq@2 zW(&=Jb*BG;$A2&-i`nzZ&au2bz(|Vkd8*5_k|8z8NHEo$bv4}clq7^*?-m4?E+-5a zD4a}qD;T2AILH)ee;1P?R|Kgl zRakWviOyB=P=er(s{lepiLp+zv=e;=D0Nq&WK8UshxxV#r(uk%-Q=S=uft2c$YFRd zN7Ig6b$!7y!DPhC`r_qo-Qw!h%VsgTnpE3mF`6N=JHlsRADQkw$^Km0nJa_Uz)(v% z1y(F8^@DEGN|xBF_5P*`$Aq*GFQl>j;=@m}U9FDlZPTMsnMmP5ejAfzw97Lb=(orBh5-rvcPX=>(7-HM5!00EOWZef4-21~mW zx6xUSQw~$QeIDz)*m6=HPGvb zPPVJZhyZ%;w0?`HX}$X93nOHeQV!}KZ<%5}wen6wnlOc%JfgfGiImjl+E*C-RJx`W zNb=R76)rwSXDk7EE&{-ky-qU1Z*YJ+R)?aM=m~>0nYPa(j@r`xKnkae-KN|JNhZF& zmQCi%x-eJHAit}@r$Z$EJ(~JPw~D^Bx-VU6Ul#-a6;g-m8|ABRuGUT8-!)uQ|Qc z=r>JK(wdO=A}!bC5!}##&12G(h=}_FARon*_I8RLiuTFx>GsKZzHw&BiEaJ5AvDaKwEInkX@!2sm|IjRRJDAmyoL0r zCIZ;USk(Sds~{Nm8|>Ur#XeS>KG^#cg`a1lA7|@rfR>ylr&#ij>E|b|k$980qrJ~o zHTt{0n4I`<^!l^*F3bItkyz;VF!_Xk>Z-8QlHK=hXqEl8YdHa8qk>`6r*vEvgrO}Pu8V<4zBfxVG^RXg?2EGdyT(`LX?uQ@){{cP4t)H zTR+svV=+Y6{li!h=u-hLkNo+$xfsLS*holEd(wafAMkU2(C;P9&W`jrpx~>B%teEn zjf4teZ>WamLMJ4@EKQNmbKDKIf;{c#xK-^3UJHEC9HNa%pYst)g**@p9u-Q$NZw)+ zdvf_O%{k7Dfm6vC=ha_BdqvvP`V;r?#LFipcr;Tj)>cN340Fs)H7~0mHr&lDl_e9+ zi@V8l`CUbAHUk(Cs zhPwkWAXUY9o*}jws_2p8vBuS$_p%rstf$#1oj!JdeEyfD4R^4oO&;1V39y_%xZJEm zbyH%VraEWecZ7yS$vQC4x6zIFO~k(*6DPVLR`7ptjG+oLRuzBq$Qts<2x0DZznu`> zE}smZ9WAd4_sa56-HZELNHE0}zQVb6>yi^nM)h!$!JPsw(-;+*C_l>|!gZ$TvHjJ( zE6hj;I^9~B#jS5|=)TM5LB#)vNZ;f53PsAX)Q`MX2T=xNKL%-gSa2EEZ+jSTtlN1BG7bk9BvI-f)wNA2UUT z*-oss>J0X*#09Vst}kT>JH7P;^|NlcNK$EW^tPo-qBmEA5qJ>FI=J3;&PUQocT^X0 z`{%c0caDb&GUWk1CZzpMkv}vlwv~i)P^Om+ae7w8FLcvf9=#5=O|=Alu9F#gc&qZW z{LTnSm&LoHKd_!X2Y0-Rk7WCjxeYDDIQeumVovw7dD38Q^S$s5QcsT;`}7h8M8@{$ z=N!*4%iy)~|4hpK1&7Hdoj-*AxI+v45^w2jLj)VX7iQ&0y}fxwk*E<=D1DRF+PN>1XYVNQ0zGv zXe+bpv`2KI5J3VIyFVA%XlR@w+E|;RB*6O%@m_a-$aTOw0>DO()WI)P0^sk z&aXjg^p(j_fj4hpoF%3v{6qYLt6lth0x@#OvciH0=M{8A=B=kdSM9>05r0}`e`=kj z(Uwaz_4o^Ss6I1~!(#Mp=Qb}I&)-kt(^k6{eewSt^8fOjUTe-=xuJ#Ft4CkHSlZ2H zczc@}t2o4ezc_rvy*cQ)0_R57JCfc2wgutF2+Y&bqv3V0;e99jRAE8ga0OAgOU3j? ze8Zz!t2y#!A8-azD@>R}BYJP{P%9?U4md=x&wg4t%FMC87lUrS+X9K9EJvjryy~>}jeUK))v?aSe9@N~?sVn{L>nFIDwY zV5aE)K2LYi@qemciSc6Pt4zSPVMnDY-kIbfrcua3WOUNanHuwq?LWYOhBabC>70^;2itgbvLOf1KAojFgcQaC`^eDKUC27dndbg8)hlfPn|v(i z^w&>n^$l{#f?Ad$DRpQk_aa9~%a>K!+{;vW zL)D$}L6A>bshW%1YI^3ygPeN^~;bAuiYmTF!AN(9F0!VOrr47o{lt(~muTjq-Vb>C)c zOCZL=qDJ&m{`F74A!;J;--SUwo}17wxV&qClzQV&usLwuM>Q$XWfe2A0ObBB)Rbp{no$2gHxNtQW9 z{$CaQI%JrGm%Qy!hx-z8X)bgVI9|WFKmmBe8K)hDVazC#ZDc*d*RyvZz{R{sd#8eOL;-Dwa7@g zotk#GQO4ttB_~m%%}>@fxz@OQH6n9=+iv#s>H63^M11aDMe+{m#R2*MSnyp>Mi7D; z2v=DFOe~R*oU_xyoWctWRzlVu19ae1O!$m}!E4}`yE4bYOqd~BOxO`$)sV(sh=>s8 zM=fnHwjXUZp+Z3KBx5QMZ-0MnUxA!#tNxPMr1wJq?( zsW^PyFAk_As!|+`7@7u2K1yYA#(KG>>OKX4_`H2pSosvBM~kV}^e`Ig>ox+=Tw06Z ztqc`Z@r7#m$b@sl%oy(b{{bGtsavB@(7~&L6lA$t8jIwMRHoO}fpW(Db-1((suXVR z^6em=uYYZYx^{DyrUi8GqS<7$RjPMFqj_h@AM7e>Oz9UFH;3+JxO6k@HOZ4pV1}p8qQmZnHdeBV{Yqo zDNtX}o|Tv^s+Ow5_d7sdx}QQVU$-)e%arGnRj2Ttlo}rryMSLuS1?5U(Zm34Ut8QQ zgkTRC_~bv_TCEmu$lk}^sep&~rPGuIS|yg+;W}B4w|_D}i+T?z0{^8UN7u|XcHaqj zFI}H#Zz?)Znmmq;2 z)f&w4#p>$&c9UflF4D4;HMg}jUKTdt`-L%cSKKB*>eGbM@=a*7me(ynGnt!zb1M=% z#d-57oF#k9Sv6nCqp(+p=1 zn6!y?Pixu#3Lt3}l<8dL>Z7CE*2O91wmwaDSxYVlafb~NwBp*TH_%4S^7(NLOTb@P z0H_e0h<8A>zcfK$G~u;k+2`RkTv^3ENWivOEtB-HkZB^vQ+y+M>Uc4Wtr1AUFJiZf z5gwPiD=HiJ2j${C%5U>2(agGWUbYo*WU1dO#@a^DF zPd&R!dL5VV^P8d0OkF;5ENRfW#wJ_<&f^Pbja5RH;Vhf0o9N5{95yxj{5oRNC;nAv zb3DyX{5o$f;Ht%aTB~<|elPRCx}n9nNEy?YA?EW;IxoWklXBv+8{1Njp@9l{I3Lev zob=p%x%&oO_3ejJNb}_exK57KC4s?JA9nK>UurQd69?n3YqH#p<((TdEoKU#MejVP z%5+&_Wx_TxPgUwJxH?R*(Ur27L{>Y@SXtipb`)OnWcEj1RT{KT`ba6NG#XnYPJHd- z=5A3`pe8ZwqjiMaS}uCw$1l-su)Y|;=yHGR)_G*%bKnOOaVE1Eeqixz z@|McKb7s)}+o;Iy6AYu}7ahUNn!?e91ULF|+X!cq!eXu0+X+R{*Uk<_*Z%`Md;|Sn}vhtludw7KZIXyqv18ni3Y6(t82{nQ}*_$OtT73)YVIqS-sHN z@Z?XtiUC$yMe0DZhwWpf6T@Gf3{Np5PgiGI;p%oR&$;FUz7#9lms3T(fy4C1%{TOIBO=ro>p_dj3xEmfH2P<2yaaOfyye_9jTZg=x*iwr}&# zaRr_L>Ypx8KfxzzBtIVxQ(w%G|F}nFYk($j@g1!@pib3jmQ)3n%5H)Xrs#N*q^h0U z-8J7Azp0}OjwWlmKs$Gkz3+~;4fmUyGZXhrndd}FfTh1i$qUGWpGLLVEybxEiQP~B zteHd}CLT@4K=*)M6$=C7I|}BdItQR}M>~00Dtr6l7p=FawXt0@q^8|t4Uy&M=3Zki z{k^Oq(=H|QLH|QQLoNkeLvriIhXaMejV*H02^u+UznDVS2pX=A#7E%IYpvg~%(&B^ zm%QUWIn_~$id+0Gttf6?YHz6i23m(h^0jAk+EUWebot6~l`cb0(PCp&@E6kly_$;# z*Q_l1=ChUgrjL$`uay@KrK{>(Mq#~mxqCo2pObnHEv`At%iPQ?Ua>Iy=+VDAC)y=b zf;2-EX5qBz&7IQbWV?s|G`@|et8C92cAiV+SQ{P}W>TN#vsdi&GiY%Dx8FA%-`q|q zwZu~0MJzDa9e;@vo-0u1I2iI#({Ro|j%`-AQ51;R_7&7=#R{Y9O@Fr38cnPxuz#k{ ze9f+-pj9mw`(uht`Uk6Ps>5-OKd9ppnjlJ!YM0a6CO|7^M;`}6b!8RrMs+frv4 z1R-u)QT|nvudvjwC>J24cZ96rCpAKsmySX_|-%lYrlW|YNSo)fafJMmv6E1Zkagb)sa7qM`z@Y1z$ z;Y|K82v2)EtZU|!{u)y>n)cYy*s9$Q7y4)^W3AYtDV|@BZ$MLm<=>p>76M_ z|5xE!w(p#zi!19sWR11H(j_$R>lU2ZMwajGDSfJR-HtoBe0u^65kRUYFrgTIhD+~ShmzkHFkGVc!3v~!&Wa=>HFa0w1_qtFD zfy*D>kepJ?d&~kK9m}45c5rZqO}gKJ4lu=Acyzb)7R1p+(f-=6qWE9YZ!jXq=RFP< zy>;P=aWF`@oA{|ULurbr+r%C{C`4c`ir zM;uKLRUPy7A`(YNcg06*yhEjRy0%zs`WDQ5qs)aLECPxMG<}&toK57!@4K&z6kCXJ z#nR-D?U)Z$LOd8Z2Z27XJN|$pf9l1uFx=n8LI|XxjX&yx!u7UEIosicF9G~8Ee{HP z&UV2gF}B(lg@j4{L_X1fF_c;`(e*GOE~W0D12Ph%c)kxFkRfnX?FM1ISL7jl&=2G( zPA578fBGqB2sLbsmdo0O11~1sj*hrl@=!mq9*y*aNInj6*Z&d8Y-*KnlZ`Mn#6FmH zt+u|N?Z?zy4C)?8$({ekr9^MR?WJYd~hEt?QTZa4h2*R}?x*x=s6 ztVqgRul5^ETfS|J_KvNm|IzF7K~Zp+vN^PJ5xZJAb4sapJDP29oz`bhKS6{~&Xu7KvOQ*;C-@@GtO2>;e!+iv2{I#|pn&zE8`|eoj56#> z?WU1mM^|^;*UjtLV#Ja3X(q9A5g3p;O~wZhsxQjh4me>G0&ut+{kE8sryhXwNbzfn zZhPA!$Tr!*5?A!z2vo%|YoE&b2M|)?bCSM$=961&)Ar=yqP+F`+UAE@bj14Gu2yoC zz&n=YeN8M-$5VebzqSxyGXCWGMKe6%J?|u(GL6g~4EV?6{)pIbmT|oDfG&FL&u*k( zXJNuBFMlLm6F4p_4xZDZN2!B^!oHV13-0?AOuyahL#iky*o2QRtjyf+ERjFu^1aLT zp?qq%f$erZXI1_nDA7D*e zVdH@xr~g<=Ba9~QCir|gDe*4|mj85+7A(ihc`|d#|rvwMO|$Eu{zn(li|Z zsu{kY9luJy(^iiie?=)hAcX{F7}}nBmWOBn;p*%+#IQgZ)fDRA6_e3Hyep~w)i*F4uT^F#uZA@aR{c~h z^Vk4M{|9V&Z@#TH{_V`c%&V`KUBH3HSo&y7Gc}-LbEoAB=!MA02K4kd=3U^4B3v~P zdOH)}nQKuLqW%6*+R*BhUgg6wXG@y-99SfMbaMfK&YZCqr0GO#Q(bKQ)NYX0hs5i& zFliMk-Xsqd1~OU>IY>BO2$768i{J0%Qw{>|=5~b80MQzvwBA|{ku9wJBeAV7Y6FFz zu^BdqhA*2=KJI(jbpJOOR}nxMiShBzqS32kF;A7Lq+*AG04Jk>}M-roysRuRbVHo1@F{ZAF}-t zGb;-Av1t+%7M|-x9qqsg;?C1~(!+%xs(ZHuJ^n;%HJSSwx;0p0?4N;lroYkd_9||{ z|5M+}vp~fsq<;DkuLCek63#XoiG(|v@#}qy_;w~EiRkFN+zJZ8Gx{1rfGX++z%kuY z>~M=5BCCb+Oti>bS#BhRI=o?v*Yrs=bkp>+jo63=?jCG>_%NW5A>rV&bOM-rj`H)@o{Q!43oQ;TS&3~1X=%87q)6q&RJFX#3OyR5v)PA0Z}~WrBllQ= zI6&yfVUE|$<;C!9@4PoG>|xOb#v`3pDH{9DRP7g;Qo=7N)PcWZ;Y@^Y(BrnY;1uDh zwl}v{R-}r{aFgK$+Amx_X{Hs8bqq^!wlv~G3!O~B*G)IqG9Ox4bL;@xUGp5n^4(hL z)Y{^kR#u4rizUDPlC)ja4OM-rOTV_IQ9^XI)0(n^@unm2JRtc1kW`z3-?YR0t*;eY z_e8>8LeR_yT2^$1W>xf!h3ODFlfcjeZ2HfTB!Ai_@m|dlkXYr{$=NBT6j^a zBleB4J-x?!@jY4hCb5?pHd;Dq#ZHA|;Lqy%wl~|zYM=!yq*RZEAtt)OX+PKLTi`4M zTOi$Y(*089D7z+Pr8Q-VN%J=^ccNY{kKsYU2oo@6s8K2-%(m4`F zLHO?N5&K}F(&A60jNwPW5#6)JoH8>sL1M<(WT1I*#;s0U9hgw*g*))#+orx}BK@tP zwzI3tQmklALMUfeo8bV!d5HUd+>x#==TB2?oEnO}v{?>sXu{bgb|oo)OIsug%sO@$d2d$5X~)}TpR4TR)aaeYh>w@&sa4M_|SHj!E=hw zWoF(z*u@^yV^D-HVEl*7kuuiG9)JS_IYSi`R|$vD5{j{;S z$@Y5uFmgl$ZzIkwEq9-Hwvp$SuS;zbeQtE72MXuSHI^~uytwQ)FY;Zv{Y_v9^#`QT zo)vO0tg*7r8L?7LfRr%#dU2qFD3w6CB_M&Z-~w@!?sicg3zM9#)vj-F*@wMysY-%9$i3OOK>A{u%C#uMFLVj&)FS_8DKBlHwCR0Q319 z5)}U-s=&48TjiC)r^6+aoQe$q%F8G-#|~=yin!C~1F~#sYYVb@zn87|R5=>Pj{qgW zMKV~fziVQ-T7%W6R^`lOY&D=T>aj23hf+j*-~EMZHU5!!`X3%FkfBn@ z7GC?0vLtR}sVNtR^Bs9sFiSO=1$r4?x%n)vg}!d9E}FYSR>r4q-ME17n_V^sR%zxk z+BcBISgtPC(42fc3eTPP_Foaeb6R5xH%b-u){0j;l_Szqu-tok9-5nFdt+SN@_U@4 z;Lm@bzwhc>U~$&Djn2)xko-oX*2IS zho8uG2(?Bt>2D`>pb-3r6B2w~>ygPG%7myYd9CdkEY3{szVAqsxnZtF_hM>l$;3z+ zos}T|7?62s6~`Y)I6>nny=|+@eK{p~>M85iS|%GA8CBH)1G8qc!%Pvo_TFAIXZTrs zqtM~t?>6ZuF8D+{6=8pGaDoQ7&Jzg*+Tr{Hw2Nv!S8RjVL53ur!~XQwj$bJP?+{ly zA0<`Fr5D#`yT;z#iVsNU4Pj@CJUG>&d)w7|%U5%1b#J9wd`HX9X)|T+N=vMzIr*WS z-LKxTT}NUrWF{G~CeJjL&+^lDaSiwQG>GO(spL5{t0{M$SaeNZo2c`aHNJE6=s(Y& zx>&;-#0>8xUzQzzDoW-Nv&~-fV)ih=)D8PtpVOetKIIl#%p5s)`NNTTf@9E-wZ|Xm z1LAn%l4Z~k&L&$jsc=!J_Wkehrt!S=Xhktof_h-Y#WYkDk3l&4(6GEsuE-FX3HUoC zm$VPn$vp%`tRX!jn6@Q|DS_cUS=j?Po==BBeZaTFq1O&3k9Zv|)Fo8pwTXyX^j2X( z^ef=Nvs58V~J^XgM?3TD;na8<9b9XDpr7k>zXn%VyX0) zE1dX0+&WQH7`l5%%3sI)V(f=i<_HuHvO%(+By5EZ0ZSuY-s1Jvx`W8Un?;Y|2#*3(kRgIsFYLk zNY@s%ww}aRyQP~jyq0l=_=@a><~=d30EWXpGyQNfy2J(i%=9HfXn@c@osLn4mqbUZ zw|ZoXgcNH1O!1N$+Taj_O}6HfYr9J~a7~}UR!X-vN8oV1$lDHt_$s=Vx>#T>SqD$~ zZSy!+H&wsm{G_P0Ra+2PZAP%}A&DQJUbik)2DUGMO|{|px<}bA4|Ah&9qMS}kc|O8 z=K18J3x52p#!l4$%eAEKwHG%p&xwKdS9wda$Fq&h_cO<~t#Su`yS}tR((@);Jd6T& zs3aNA@^QIHGWR9WO{`SOp@sqK&|UHfJJXiZ+ktjVAOBuQ=96iZP%6fCV966vH%sSJ zCc$w2_*zij`#?HfzN$+3t;~;HzM=wtb(geTYE?xyoZP0fc19kf?~aO)u2iTLd7H&A zY?IN&j*v|Vt7iTAcdan}|8BN{;^Et!3N3UALhZ8DDZKsP7ggit3w$#g4}bt4(lf&v zAe@v9@Z14TSf&VtOS7u_)RYs8M@4IO_(lF&4c3Vt4wj04HT~Fe-@eaqZt7DJa24(- zBSyRuT4iU#O_}R#OH14>Vzm=o;ma;T_tG?F6%Wl_RF{b9|FJC!u491=M|YXh^+o?kx?Noh zvu0j?Kh2gZnB4sEcA}}X=ipe_Y~0@*dHZO2wYMyQgv&?uJA~c3YYuU5kthf7$x1^AUhfCI0 z3r#G^;?GJd4V6Sw3c~Dx!f?(`o@_f_-Tm@XKqtf{S+KFbP@DGHFyHXAXIraLDhXo1 zVl8PwCia;bh+W-pUS3SSKLWikGPNAUUMh&M=EGwS?Z$hr>e4Td_rTCkO{*Y(28OT3 zhY$C5AANT_XygTqFecZD^OT0>?|LmwsnZ7ni;3i6&7lPlQO%S_N?mS0iaK6~ubv-@&sa+#W zNRMy-3HbAK8!#wu9CC?o$vvWk2>&vwaeKTj6X;(?Y@y0ReV_1Aq)@R{XpZt|#GsXb zF-*FXDfFa@c|~sqMw?I%FkzPji{PoEhT*A8&h2}HT>}A@oCodI@sl-M6L3r(n;;SNKhAg`LUDmX*4jG7hW%i zeCW;*=!N2BOLXRL?MfpePo(EiDd1bsuBr@pj4HOQeK{Zq8ck}mNYamR@Int zeY^}fU*Avh%=x5V!MzDh(fN|jG8aL|^ky+Xp|k%@DGmQ7P>vEyw-M;=1||c573lwU0Q5Zo zQ`Hg=HP`?PVF0?e1t}ZmtF5V@=Xot6WTT^RyYp2M*bwl{e%-k^`GJ3*o(FDOjbNiz z4y93rVYk?gOZ}f}|Ll&V_?D6@e)V+k`MvjUY!hyx;qwZzeG!}WvSYzb0*Rm7&3U9f zg9g8w1QueJUlQ4od{-)oBq20yYx8TN3!I=e*@@pS3pCy+j?-c8+Q+|~=5!IT?=fHQ z9aH%qQTq(hLTM_{z?b{zZW*f;+<0x@(`0H2fn?O(*Ou=zyK>w=0a=W;FNQ7G%1iUiO@^9Cvtdg?et2fvz z$;f`DyS^#?Uea4Kl9c1tcjv-uVW_3ywJ|IWkl>YNg-)CTx(o$xwf8KMMs$z!!p#Q$K`ndV{l@0j5xp7-omI>PP@8j_5B zF;Iz#5D^ugK%^hUo5Zbd9;O^3g)+5S!O@Z$+%dg_@+xP5XaGQ=Wj;E>L6!@sv%BkB z?ljjEhqG~j(HgeCK6?dql)JBvpVOA-OTRA*gfeMQ3&39r7J+oC=<2TXoa?}QTc!lM z83#ntn=W%Q6y;O!m-QL?&oXJL*#|(Ju68liFut3`HZ=-(0%f$Hz=Q1HloA|?ALAaplh6xqmB8jkFEJO9Dp$Nj>`?v*Xh+iqhpAjlEv?rF{%ulG z;x|p04y6W+2wz5cBy7OAD!oBfyMyT?CM%Q3t|^D-0Z?Z`T?%&eyOf>T*GgOR(c_J| z5pPTUAJJP(sS}mbw3~vZr#f(d&?+5Nj;IMM^%?S*`_3ti|rc1J=Zz6&* zHNLGWvNw0uMh$2%YB}u|%yn6BW|*beUR>RUJk+rZx&X{gLhW5-`KVLFqsH?8&>bPY z0>l8UeiR}N7NqLJ5?%QBe?P9o8np6S`UIr00;Zn3>@DvcZ7FGxZsZeH3$10l)_Hwt zB=5SCb}u~h_~z>1Ym=%-SAdn1B_Gd-=`5@yLwb~OI5p*R9u4(oTjxQAC;KSAbB3s` zV*Sbw{++wE(khL|t%oVc^NXNN^$f`6j1&33xdyHrICrIeGUbJiz$4$@M5m3i&xR(9 z&FC8XoC4+xt<+$MFX(go&~W@`{1X|QjdGupUHVpPVNWNU+N>+L&6BpPYL%VIMwZkf zP_#FwN(7U8?D%zmdosoSU)|NV(G_J0tH7_>#{3(rwnk?EaDu;gK53NZ6{quu4{X(q zIp$E__Cj7Bj-HY%M{Zn*gYit!Q6oB3`pD?DM8!X%zl-;ksDmQrFy3IM2C7)ydpS>i z7SMosB1DJPhN3*OK{h&V9CFHlp1|FJEc*Ga@qp$4xxYu9<#I+l@i2Ciql65Z4;`_mcwfg=jntAVK1#C@zuCX~0pzbwZ?*=$t zBg<|c=94dJEBCQ>NoXp>Q#*`i9xbgoJ@Pm$hIh52fWI=02#nJr^hiV`*(y;PU^8pK zIBnPV0hzN%A%*$PSR)2F4cXlHp+Mq_TQ`o9TkA{zXxYDYxE02z4QBR-a%cJieaSC@YlPjm`0kHQRerx*WSk*?YSV4`OBA=7njSbF zHML=dFZ}n)kA>fpfBHYD`h|&*3Q&$9)@m9AbTIu5IFi|2n(=W4;OQZ#Mh#jgyoikp zYv=vKCdtJh>fNm?@TZI17R%Sjndl0^1iyM(G<))8o-&s7Z>CY__$tCv>+=U_L%efD z@m#E%$>K9x1Zb3VV{kJbqghB`$np1F=Igu}K+s)2831fl7KOlR3#5x8O5AzVen|eU zcgTqPPlrpkeG+PoKsj8CFTbU{ zZ-Y0i8^Zx+Gv;;YU8GtloKn{)_Dl*>HWm}!JoSd;TLCVmaLY%}1!M4^IYLEX*x2_+ zrl}Se&X%%#MGLTUwar{AG#SKHIsjnx+84Rhb(t>X@RCx`m-rgm>)mHJ991kH))-b` zgJIeTe-|fD@%tKB$6yC=|@TF9r2UL6h|3A<|aGp6l=|9w{QezILYn_=Yr}G~3Mk zX4lM26>mwU=_$1i)Mxt!(CH#t|O6EwQy(C*T4@kOAm z(W_RvvOeN)3x6HKi_{|FL^cl1rbIy=JyOhUjeuzhfD{+*I|2f%%(z973gL3mj!wfT zJ{#Z66`tB(s3(m3mv7tn_R9z*QvIM5K1C2DUz;l}kQG<-t+aPEa>xsw;^|fYA4z8! z*W~-Q@hJ)@G3gRUibyxoDBYpd202Kha=|L2`A z{hVC)wevd9)+VQ6(XMum@d`ulg42f$-V+Dtbh+nA7si=k}<{P%%e$*M^E(Zd#%&MvsSa$ z^pzRDPDKmVWd9=2?r~QDMAQAkY0r*nlyRJRuQD;E5}^G{YFT>XI^onh?&Dml;!=5M zS|v^hE)-yc_sm@2M+;RlbVRO3hOs33mrYg`1Mh3Njs~5o;#hs@N82ot)DW<_yX+%i zj&@mOcse2=wlP`J@pVVJ&4A=OaefMZu`#jGB8YKbOpQy;?Kly+czNs46q}a_m(J!V@0XGeZ8@ zWt-5}DM+QreAlwSM|%@DL#unL%e&P5w^B9Pok_1@7<#F-%)Dt&iR2TE7o_!5dy~{Q z7xyxvLHxX-PS=0y4$2u4_NmVgWSjYT>+2okOeEsZ@&_hllC4O@saQc>{oQ=JshtUt zQ!(Sop7p06Rb5kly4xk!&28-!15y6^$GsU|d~9ZY0QWWDmC}(crb}(YV}rEErHf>^ z^$*a-Uj;$TqoT&fecY1DP0=xpZe#BPIe4n~C80vbAG0EP;Pwv;K6HB3DvAvN16s16 zPL(nuI@Op{DQ2y-q6k|Gi@zFFGh4O*4#3|A=?hFHt6?)CXyE5*X{m(|879eBvNfv9NztXejyE-kfFr*xCQ7))RUYawz$!qxT6TX5+zd^Ohz|D83^;aWR^ z4L;v1ypC_jQ%7GZP*R?sdj+A>N8u$y0co)l9~l<f%#eqlvk|Mp?JPT@N@csX z^g8tDQn6P`MhiiOYO(I){#!bn0DO%(cqV4Xmu3s~^hDG9`xm4yehb_=?A*gDGyt9( z*n}^AqG=n0#*|>dVC5{~xTIGW@#MNuK&#W+MssPJ^Sg8Apio^SG(i3ja(4PGrRsFL zKvB_01guk6Wr==--;tEWwpXPfr>!g_UHKMhfWuZ~1SH=%4DmEnhc_UieXreL1$i@F zFeG7xp?Y3NxQIQAFSq#sA{@_bcu>iaJUx#Nwm#V^$y%;fiuo7r! zQ&AA#0)3QsqZ_;74`WeALMZ@h_sDwVa`u4~NJ4vx%||J$MeO0cS7l>@j1P;HiqLLz zhB=|E2hqcc^PR)1uWU5m`u&3aAG_pxgTG*{CQs28p5^TO#cd7i>w3MKFI4h?X?JK% zJVRZ1f1Z!a{kwC4pwPhQ_n3b+9I}SV>5c^4#;IYh#SBY@>z3&5Jvz7JG8VX#&ak4{hM0usP(+qw=8=K#GsG||k0 zOD@`c4jw{t>iD%+^hj!L2ClScY@5c&VZ+y{MRP|n>Im|aUleQc#~OGdLU%V_yMa0! zs1SG)2`kq@^oy(xq?x4i5iXm^DpQ)jHe8S8j;x>1nhYm8I~-E0R&Y$n}ah@4=tG30(D%?^#lrq+Dft0 z{qw-DVd47GyRWaq5kXp&g6axC*}IKbeYXrdJ<5A}r2xI48YgMMg1b49{aCh)*6f^$ z!MvZIJnt&Bul>)3@s>hBKYOr+nH-uN@%)bUX9|EouF5WIqwLiQ%>>(==Y$=3<)C2s zB2oF>gf;!R7Ob8?vYznTokU9vsqkHAXhhW};!3py=+@00-5v4UAY)HVp@xV#2=zC4 zzXS(if`VyR*eQ&eVxqE23GU|YA}!l>nQ;uz>1*uu4*}0|aYpIAHB)or;|ZKwB>+(E z>rEVf57;h0UNRZtFYv@ zGh!KuJ)-*mDk9Di*AMf}cRouQU;mXKQ=FHoy9WD#UQt&$IZuj@W>;&aW*IL{(H>ZlNb}^}pltHW zeD>!@c4(%=JwPa^ywvNRuw&f23wu(X=_-kHZ;hcdva09^drSskAVWVgGdDK^)$w!N z)u3yEmWX6Jj^=KSg-E(ace~vJsnyLbrXS9Us8k|_qMVZFq^5Az2xTJM8gp>XcgS|0 zr&C6RZA|o>4>3oJcLTM&fXCa90V6kugllhC0U5rJhlw-UzkwHjoFcG$QK=vK4|E+> zzH6o)QnYbiyqFR6VEfqkRn0E#AfUCGg$n?41N>|4`+tjOetDI{?6Cj>oCh7jeiaNK z59HwLX%DGXtSkK)ZvIV(45}&0Xx6u@88$K5g&;NCxi4jQcP4+x3CWrR)PjN<^7ic* zmKhUM-_UN4=AK`A|F~iLL3Ty~ud6vx3mx)^7j*nhe)0192P-!No~G|wt76HuoFq*+ z8?m2IG14@Wa)LY8k(Ad!HOGs8^RWYXW)1v1zA3Xoyg;xL!d#pwy8H6(-dPUbfSXL5 zYeeq>%T%DKWsNhsK2n&lVkMbW}SReO+Y-Zno^yw&?= zo2KA^Pkmk&g;NdGrxCf6LQ(1q-?)M1#Ft0h6;KQwxRR-cUYd77d5ae|lr{)e1APl` zG>{>%FIibwp5jvW15EY?hv>zdNmmBoE(1HbkQx3N3x{saToeEnn6y&T33TVVmZ$&v z&c#fy2{c8f1!;B5vKY)%;}byT+|*Wp5#Iijn~qv`QJ}9mP>4yZRRMDQ@ETf!Be}Fi ztURRpiygl8G66jBh-T3T-2lffgl6v#1KjzJG3_i+rJIsAAj@#l1$SI15O^zqE@7il zE=7NYTTt7Mk~bVy7}Gvy;;94^mDRs;)@k>Bya3aViSccr@^&9a<*BYu+a1&}^HhU* z%(v#gAlawe`zagCmvG%E#qm51=0VSHBwyS@7~pT|0a2xA_O<{Z^mlfXd)b4TQ!vl) zB9+4SCR%5f&N~_oe}ROfG~9nFb0+`|fn{=;#T#jqJqYB&bZXbR`T}o6%pc_m%+pi7RXr|^T83&|10=?ba z<3lv~H-!O2UcG z&m*$e1>28pCo7}h`8%vvpvI{JL$=L(Th62K@)Q5m)gW#h; z@+rUQ!%KmIii#CeJ;TUPRO380FM_&+R_$OIHIei^r3y#5VdJM?-QV~Do#P`ITl;6{ ze^RS#+g7h4&J6$fpL&xNW;0zUqb!S;xvaGcfBzOI&8sYBJJuAT705ZO0fKY2chcQx zGc_O5>aDZxMK3oO(wki!@gwp5*X4KW*$d{*+7A=S+oZlPIzE`Ybek$0h5cG=>x?hX z?y2R@$|lWZ?!d2p7QOdAGwx^JtGj2-FhN!BT>Ee?KfYH>R68q0N+~E=LqYaOZ_~+q>QK_!GSSd#43y zGhLLc8k2c<6Eoz=Dc57`nP9-b!S@W)3gKeFZBwyOu2;#T}r76K$((!Jm$?bAvFZh=l0Y2Xi14?!>28V*l~ z1+nsK4$B^72i`NTN^={Z-G7q4{)nC`S}CjUVy4Jo0II^Lz&s13>D2f=;p$dw32?gJ&2G~ zA%Q;-V|>!}O}6?+kmFKB8|V^y=q`W6C4MWO-9yk2T?Nl=`eaQpX8N~EgbfoxbZ5x! z&i|@8(chrgn+oSmIuS%6+E9-1xT<;u@(gpUaaOg2q3Yp3g!CDkl@|JZ9PLSu$?>V4 zmc`E!pAM{JRl23LQ92sQo6qV{NoUS~JbWlCSA$>CN z#dKZqo~QAR7KRFIu&ksC8Q*9i*iMWh=a(T;w_GyB z(j=Aem^P+)Er25UZMyDKS3*~JRwzS#_!!KiE>Dx}UzanuT)PvXc)40}Yck<1#Ql*7 z0w{)pxz6y<=;;(Dxyg+?9(%TnCel-#6ejZTgp(-w z7D;`{P1B;r2D`lD+ zTl@F>%$gUBiZp5;xCgWiyg>asLT$t!C;eowRI8?Towb*bB}hstb_;#dr}stMCaO{> zJ>zNe29+Pz^}Tr4ixG2ek+vU`=DSrpj4ArLOpo^_yF>hOREAoVe~bu;kh3@I*g=9I zt0pn#m%gqTO2Kof?jY(TosVfOqUj={g?^QuuofM|OyHaI$8;rLECK3Z6&xM2=%|eU z&LF$#-i3GMEgNPj?C#-YeLIysgWzR?qz0`+5lSu6Q!#lAyfm-n_Cg8#TYH}{+-;C& zNL(w6bGrybDHBdi>=0pxjVaUXGY}z-sr%F-ERS$@!bRS1Une@`nYybzQMTy4-^}$r^eU3$omy@Eq zyP7INelooWG1u+b*VSm#1!$1%rKmdZlQ53kIg9wtG@1fNN-mxEeD}YA2=}>_I?Sa0 zw9)VQF_a!|>LsYP;vUJ=FK0WyICNc%Z<~{clgK0m{AzgnQLdS*p<9b_hCNDUeB7g% z#$YJxn*XMqFNn-P9X7mM_?iKp-(fq&zizfa%8c|f1Fjmo=R_-d!e5}uL5!{97)k{zxit@AV- zc{+jyZL1e@;Kao5)i@Ag|1WXBrsJG&7rdcX8w%b}y1xRPQ%=ND<-sS9AR-@2ZZd_G zO(WP#_9m|eHJ2>YZ8lyiKYY{2zMq;P9YAQk(n__wgsrI#5SvKQ z5bTtu8E4Yqq36}k+FA5&oSMc>97v)_))!#@kk&=ootQiu9~>~-d(!8v1^mj}WGg23 zH>%J%?=LOB+^hr;cA-H|(C)w4o-$!gq9GLedFB6}baUTuUeN2Yxtx5Bm$2L}-=M*E}b!RXGtR|U}(mtG6?pN>UUubu85^8%6} zr!3Y(rEuOV)=92|iUyiJ&qs{hgjEqm5+Cp+kX(+2hiyLW!A=7*4ne4}-Id;k6&ZqC z!NWhvS;?hp=U81So^gHX6~*nG%TtiZdb}Y*G&8j3*9*zj71v%F+RJRs@fOh)sgIjI zO+^{5=T6j~)bTvra=lwa4+*iyRi;Dy9RoSUk2a$^4nJ<2T*ht%W?@&a#x~;yTZ@;q z_7YdJBN@b_ltuku;gM(+Q?F6&pDFU;d({mFI4&DkXbUkEUpLwDe)lE#Fs}FbvRZB0 z!}WpbWwBnf1w~J6e(``v2EL?gx;pF)&48sWHAMBMx+A;pSvw}1^b*;PkQO$l2~azd zPUnh?$Qt`)XW5+Z_2r$xRjj2ffbp_@-6Rk^O9uH28S5_2aLMIkAp1M>0oyy43CHYMB`_}?^Ae&l}z9>McQTo{- zPo{8j7d|G8<80Pg;r?=2jnd~=rjMI_ZKhhBUtwxzbHKc~z~nIYfr8$v$&CIq8wvA4 z;4Yf^YQ(T<>JBhGl@aG6@A_lB`1t2>cGZG_eNUcpg-5duTnnKC_{&}1zg41(YvsnS zA@m&pX*tuMf;t$MkNR8bj@CplNs*eq7V)J6EkX16%|(12O_Jwk1Cb=d<0xyozKE)s zy^GjvA?x#EN}zj-D{%M_W3Ja`!Docastv3pInLb!I|BhIMRf14XCmV=+Ns2SKGhET9do3^kmsD$5yBHNUhIGZ zkTI?^cIp^Q&l705-k{+uo$P?i<2?JcVEHMK)_jjkzs~1p@6T%Lf-!4Wp$B`ZNEeyM z6xFv5%uU~#C_;S6lvrRvyyJlmNENr$o4%A~dI`C-54^e5rn_i{%fi;SrlU98HpNif z$;wW&sVO?Mkg90)K$bYgKjxzxW{Fq~SyS^c5o<+&Yy-Qiu@tcSxOXxB;@;U$E_@k1 zC=LJt{C$O6%Y3}Mj({H}x@YqfpTcMT5(4YAytN38+9LmnGm=+*f0y8aDQitwBkNl$v1clW!I=2dZS4xU0`Lp;o?+ggqDo@epj%-W8#t1rS_ zg-2>ZE>0s)o5%|`p6RoI*^gVY{%R@ z&iusUg4W8F?u-@!GAFVOT`+}aHiK5(E(%*)Gxnl@_lUeF|GT+_cl_)rely*3@b9fdxCZr1l$Y5K}c=#Dz zcC%GIOQU|hudnT&a1zhE(lyo;#b5ei?gxs=H4i_cyZKvt8KbqoSr6+_3~Z-;GfA9a zZgljB?6;fyyLZmX>{&{cBE7RdFu3`Q`5r3CBKK~zkuIrpYwDXrotdg<%zKq0IhT*) z_V)%grTPj%;u2IxOtcpfW)hi{0oV`;TQHhA;>%L(evE^pS#XeWWjjhm?RCG`<3W2!`B|@1DA_Ob3%}v>d63KMUK1 z6>sNrp63Qzo#Op0OnLuXk{1(zrb|9C9Q;?5ji{ly#YJwMuA@v9E;`cr=Usb%`Xr$L zR>nR+BDZ!26^-32b&HgfdP56xhHLv6v(-#?#n|5B^RnqQ3H%2d(gI)?v z=7vp6zLMPSQ0NJPB2*LqB{n?_xr_;GUXgjRs`!)L8MFrvvQ!Y^7I0t}pKf8D)SZvS zl0Plz+TKgXgMC_E)V?>jTl~ASW&Fm7lR0MNb{lt#A`wYT_l%<17}o zPf?!BVS)%HjAhpbX#4p-HLsT<{W5#2egLjR{&^+mTprtCi|)X=GL2V9LTV}jqL_I{ z1IR9mEluk630C%zXQ}a}8xS%dDsr8iwPO#_0 zAA0@cw>6OUu9W6dcU81QN^b>FYA)|%S1;YRWeJ>E7lm8I5qZ0AIcOvt5DT!h7d>P# zS@7vx-4nN%D|DzLtWouf<7{N8-*&M+TDX0_d+rLx@|&2VdB&o}Jq~(k!wN-ySOJDr z-4)aneig94=r&(;^#eg~x=J+zI5FWO-|U8C*dUB&S0&9;uv1=6rST_db93J0_ixr2 z%+f|3c@J=-?CSB4rU9?vwI8EoDm|`gI=myH~z>N*F|+|J`Q7e82R1>;bno zxNBEP0N0$PpU^;0UNj7^7^6ni#mDtq`z~7Vl`pDD--n*qyQdA!Be;qwM(VZ4JZ<++UNA+FiV7`Q+Cl;UyXtS-kfbt z1k-tz7;klQgI~RN3iNAx`%5p$H&CTm#TPG_OIx7UC+scX!YKH61z6R6$N@tqXkob> zSZe->9WFLhQGEGk!bpe#j4(CO_R{d$<)1g6kLk}!9rXh_dkrk#s0ef0SvUQbKZidN zQDxdwU`x(Z+jP2P0-iR=pXM@JFFsnk&3`o&0RIR-B5rM(zFU07h-jpV1-z7BVU-y^ zu{*%v6l_(fD7nkQEEcN|On_w{rX}`zD;fX!I=@9C3Kt^1O%U|zINes};c0Pw&sfLi zk;$X3MOf@&c}l*Sq6Kk$w7K7Kc%+eFiY6*!rN^Vc%)8NPJR<+Govu#6om@gu1m4I<4XX zM3_;cYV^hzWI1fOM<>zqH#5{J%4^^afKwll9;gJQbm^H_oRteW0oll6ljvM(7`{W?Ph}xSu&Axi&CcoN= z5NZ54k^I}xu`;x#uaK=WfA>OQ$8Rj5OEbdvoSWo|O*-|o*muI`LRZg&s3=%FtQlci zM(;=b{Jz-c&!fVL0%EBABps|1A8@XGJ1GUnn3^hHVVJkk5Mqq!MfR_ODiVz4rbjf7|ELcx(*#7Kb z<39}wwGPO95qFvmz_WR(TuIsfzD;4RCT0hVJ}d^FJQ%fS6GDmfcliPGU+aKvI73 z@qh#lw96U<#7YDi+cb{}SlP2mu=0pM)ghl@5c{bSF3yk+q?UZ3FX;LE=PY+Uh<=Az zEywv*a{NC~-$ElQcjnS3??eaQL-yLDxHG2cS46c7_eXvC?Z%t2d)~gH5mk6$w=db} zDq)ccVw=>mt-U**`}y?c#o;YtVH41vuFoIB%r>P;ri5|pfpveVcUL|Z>x>S0`0t!K zs+9wJ8&oEpvd_W6et$frPMUmpS;)5RlhGj9vXgQp#vsb%r#Uc}?mctABVUt0WJ_Ff z%(XoNxe9P*c+KkzqAA$w07lD#OO;`!%dM{gC7k8G5*8`7BgOM@Z0a)HOvdgHvu(7| ze01-4Rya9m7b@rU^!mKz!2ur?t$Xee(**^6LN>+1zXOg_?hobnx z?`jWLaScz#H8^W#sIh^X(*Kgd^+*Vaghs)AMQsh6N)kW(1wu-)6y3(7_l^2Sb(X!kBtQTXJ zLqonuJC)vQ9vRLSEztJ=1;~7iIA!NnJNEZQ6SPR?+rtAS6|*hurN<~=AIAf4Cru#h z90AOkeB8`Bmf|-g^FO%mt6(*<6lecsvBtbo3#c;@{in`a`?xdI!sm!kgLwF-zF`M;qHRPn|QFJzdAZBp%MnlcaNpB$>mK9 z^9T!uX7Et({vZaEzg4G!Azjg`eNt(?CSCwZr6uul#fmi{;uOXevDWY%=0G;C!Ihx0 z!dWUr52_5ywEma#3$W4eofRhd1{ksGiv$-%+TF!@dgFKHowHAkOLfPPUb=SKBe9N; z65Njmt@c%N?(ZDqZ<-VNI7??C=j)V3+0*7X8_1T7eO|I4euUWmFTd8EX1+>`=2|Zk zbGV21dW^mSP?Gz8<-s)++bIhYS2qM;NsWSZnPz_je!}(v2Z$dxi1pj+!@DWd#nPWg ztgP|wkLE=fW(%X#kw1cW#V_Nuv(`UOT3bmNlL5y}h2pc1Eq}FBf(mXOK~UfKa1RCW z>k$zm;p#;Vr*1IYXZg;RL9t$48%dzC1lQLyu>A|KmHjwVVDh;J9nvtZu%)%G@mZw> z#%VII+CJ-NL89UyhMM4Y){T0-nijK>Llhnkkv8o~>)?^F%wRqCX*1kg)?@hMbQk09 z|D@|V{i8D>kWj*9%8mxXYXXa+*}K~wrsd-IMB+~UUpjrPx|r(M+9aYzP8dI~Wi0^Y zsRTp7141v~Mj0Y74@uDjjNe=vVDKvxRd{9t=gs)Wr}xtD7do?l0~xOw=J;ItegRP7 zjQn$Gc?tSMGs9hHCNuQ%{;;Vji`I&AB<>DQBe@hVN9nl??khVox=N_F&eN0&7G{p1 zxk6+^6p)2+BssmPEZi7NlyN(jEcGboJ~u%2pWV6Miqme&{5WYj{*<~IIAq)vS`jS3 zT^rv0vUy@ZDWdWhYG*Z9CYjaG4mGqZep~(SovZZk2Q;zPK%yy!{=h9vaM4krLQ;ZB zT7Ehl)CjN!f(g9fy|u#FsjnVVk`XoyNibh31j;UrH`2vsT*#8EzEUzWT9@ImH|Tm2 zWh80CrC-CFjJa_;cPj74rBU9}YGth(5a$gKkdE}FPwk$}2CCyF1gcx;VH-Of4U?O+ zY?6pl`(GiaOcsrOG?;59Fvkr}T|jY?C6duMi=B~X5ODW3UO0iH0n%#3T+-$ju!Y@y zmBIV4yZ7bYO!=FiBHvc_Jd4kxEA|XTrWjf`_sUdM(aN* zS|x)e0Vg-s8E&e#0w&=_o$l5TKjDOVeDfCSmpq^yL?y3=k8?r$Qzmp87W^%fVc_Tu zQB-Q6OxM0QbkzPmP2b__L^jLNs?mhd2r?W4v2AP#wn&OiW2nDJO4Fj}&XZUGsc|rN zAO#YVsYl=9O=n6?c~cPp&#nE*oS&|Of-(JcZ5pH_Y&%7ta&nr#_FJy31=RWm&R$P$ z`qWcrbluT-O;zoOe=l18c*w8}(X0odqnfpdg~Yv*sp8AbgYr#GmO{p=2IyLZ{7?&(PfR8AT8$%rOpAj=}n zwHVX~JtC~OaCcsW75<=6`F1kG<;A^f)V5SkIeE(du+pYpjCd7@)PkwsiMp3AHMNCX zFUlhlVyadV9QnVG-VUd`q;yUyO+>`6BrOZsm6e_qOD0^dcxb{}q@LVJUVI}YXDMc= zhm#GJl-V1T0{(yako)^$=g+(c5MvNDa<#3Qf$DJDW7i=ry~r(zXz5wzf1t;SJ&;qH z$^SqHO>Fk3KG3c<8tzh)k(+ggz60<@uym$l_Bj~ncehA`4$44vLh%*ZhfzK%$2QO2 zie|bmZ4@Rr$viGIa$uSz8JD6Q_1}3sdt~+N^gWH8tD~K9#NKv*!^{XB8jIl?|HJytgwIEJKgF$p!QklTf{$Wod z6rs&)o~nzQd-e^txoU9a<61@f+p)o1DI$SMt@N`DZUH%_`b~sBa8+#!E?RpP+=0-Bd#PX?!8KtqZy-;PQLG~)zH>I{` z_(S&oSGM?DgAXbCFN8)Y;6o|b4?FP~+BV5S2~vHLY_zsf*?XDKS1^W{Zl$H4h3Pil z=8rFRY7NtpOuvgr+)in^b8`7;O5;PcJCV=pGeqeVR0w>PzHELvkddC(|uNvhIIzbr}xnb}pg|UXrwu;@7%iEB?a# zp{}U9%p8_Ly+-W=5Ke9;ps23A&>7ECl<6yNt3CP9q>x)yub=e z>55}>pCOI>heMaiQl-x~zDXCnY|D3IY<(p~XrlqIAcW_fMtptH!uDibiv10w@R0>? zl&yoy8eD#YiNPknZ&(+=;+5PRkCgO&IaU1`8I~ul-pNw?N=f~((}+xDfvKpP)@7mt z46)4L6%p6&F28VfdeaWEz$st&^M#4|T{SCi@*u5l1&t4U_L&xzi(I)UBYXx|?Z z_`TYhMa~$V2FIF+ECS#+t^}h?51z!_G^)2#eaVce`+Dp(d(RuK56?;`giM@_b6ojM zUaVLaS1&&o0T@d$-GW8Pax;r%eGDe?CNCI=J3AQLv;NC%g@bDE;zgH-krcnYpNAP; z#Lgn)z_cZ^zwM{vPhj=0P^h7Y0`2cQ{%oC8>a|IpUU_vtNTrffaYlmhf}ftlxjv%< z5@$U{x^EkRgW8?f1iE*BnI3${{zC*C9lyh28LLIF>S-#=>Ei&7XAIr@#<$%gWTdu| zhJyCN<;O7$HW|P;C2s$#5o==4WP-3aT5fFoC-&b~18LdtE3G`6o zKvzUt>j>GPi!}rJVFrit37@D5pBYdMG83t}IF<3rI`Vf4{(;UP-^sL1A$57fD}Tr3 zmP|J=dT0D-gj?)hJ_gA4^<$v%7HPU0Ej>EclizO!rN9=-$A*`r51NvIhw#vv=_A~& z5QwT90N_p1ASbOtmYc@2N;D?0-|dVORfv-kSs7(uX_Gtn+tR!Qn5`y{0RCnLb#`mby> z`?fV=2hGXVXJ|u)@*SRl1%~X0-S6G906J09_E=l-wgQ|>r)STeAo>=iN(?f3esgo- z-70(Z9#<*4F~*^%BVYUUZlR$7Z8mg!WDn=j26)Fl9aG)yXBLGE`-WfbS{aKES#kua zSc{GV>d4|RMyjvVlI9Q5z~@(|;gAO#mlUZGCQ^rad|#u%GhvuA`7K1?p11W?I8%HPK$t2 zgksV9GdPeZ3OBQ~>5 z+au4tFKH$Ai6v2G49bO!f7(qA#6LFBT{T=)o?=D7yjnW{i_z=M-Tqm#82o7S=bty1 zL7lrBMh<<$(!Rg&{Z1BBj8-SD7-$bC(|CAB(-k_F0YRB&z1gB#@mx=yz1I>7j>vbO z(Vv&#E!VA6!qAJGiu`Ivc&fE%=DXM^?&ojI5~*NsDL;!5ut)Ir%~ioAzO_61J@(K6 z-)BE>`!Srw5|KJBbd}Ga?P})0O$s4G4+ME_`awDC(C~sH!tw zkniO$HX|BbK9wB1FIQ0ia{5-8LhMH4)2F&o^Hgna_M^;S)4~&avj3(+u}_;$R}YI& zsCg&2YpG+wwtkA%CJ<-)=zUfQD#g(DsNqHl0c2=9w|Kj`Qz{*P0w8Qg#jQtcD{l;! zUe$F|aeY)miLEYXN?wQ$#^7}++tf}Huds_*(Cm%^M!!4PC!@HT#jn@4XK#doe8+#e z!2iO|)>2Z&?1B6kl($#NP-7E9%+~xs7$j}PQe%FpC@HY$Jj1<7;vohG78L z81LULO&RQ6s5E={-&m$twvkO*Pn>Sv%}wpgd@M8&C!x!=&=`vvpk*<^k1kZ&I$iR z*6F9bJ96%ehW{ETkdTZ4_C*R4Df3x&&J0tsrORTyrKOZwq|fbXg(X&J{q!m)z=Xy_ z?(WRyJAUaQ^ac6g2U#JD8ATl^IiQ=5GI1wDB|e(u#g)U$*S@b%h)6LvIbxW~#6xjO z|Gv7o`odV7-QzA&w?f#LX95;jRL&qY@#rt8L1gQ+h__W}W;_hdvIaixwZ_+fpQmu# zI`|DS59Qk%33Pcv_(^3#0Wb9XmfxlV)H=dm=;1wYBtgSr(*o@FAAZ`Lux&|AY>%}bF z7ac)H8RHR4;qp~~NJ;C$Uz0!mn1D##xB{+-XvW}L&e zPFImgV!O!^{&97F_q9J1p(ul*c$PsjZVf~M&vyB!L~O&Y-qUQ&Pda0Z+M2|F*KTTk z?bSF!X-Y#wWhR2j9Zq}_?4~^r2l6!~Z+tDptQdi_rNh*6wBCo_B*`Z3lour=9sn_X z&R`|G{C%26ssWM58~KbOwzPbS;&82IKeE~L(trOqPB}iH)OFcJF|$?wTaWPn^;Gt${*q%4AGAL}Fbud|w0U(`M<{-T`WAP8=7JG&}XKlE{Ao2dWLXY|Kl z=%><4Ez#L?a=0!q-4iUzq*4ZEanpH~n>0E>f%Rt)In7wH05&_uC5F;6M@AKL?(T0g z|JrncXWE^)(#D&CVJSZR51-aMzzdzi41VPEwq+^;XgDQt zc1Og|&z&0cChFC!#AP2)8Kks45qI_Dago6=Ot$|JdM})*KsO@To0=Lj!#<`BO6bA- z5aK3t`y;G_@cgzeIlkrpSl;IjQri5J)hBkD&UY0e=>zoYkrs!UNn@N<OYHPa2=yg}~?mDHO|7ok8F@)(ZQWZW0`%H3aj2EkX;VGBr}t{oX#?{huJ z57Iw@+scOV=573!Hp>NH@*x5{vX~$fD_gGbpNbaoa1r16m!E;~iRPlh1DWTQ#QTUKwibEnj!CjKm34zjNI+b`RWp6itL zO5T{)4J4zd>=rYNz8vl#8p>4KwVQCsiWaI=8M^IS-y+6~r%Z(dZM`N7>k~Px#8%$! zUTHs!U9ai`J$i>}>2am3o+DXp=r2-5?O6^YUcXRQ?r3 zeI@8~=f;#JKjR&wH`BLNG=c|KKO#->xdULsm>E}z#2tt{zlZcb-X&b5J^ZavS$aar z0am^_(KU5^;-D%ii0MTOW9BK{;y0|aGa3YSTJA=Waj(a6V(-qEUd)Kxs&3DJe*@=+ zVW4=E75INVISWsc3rvQq7v7w$1k>_zw>)wpRjed#_mPaMC0@71#yK*}9||MS5kCmc zSQVL6Gk4dszWbdhq#_P`@*Sxr*!Bxc`c8~ZiQoOp;nffkt{shN*zl>gghdrE#Po0Z zi2}PAHF5>G`O%X_>cD(WA2hY}N|ZgMcQVroI)BFyudEb}2`vZsqzTiHgwbgYQYyc* zZEQQChWOnE`2Ju=T}W^Gr|5DAGsyavo?;R_NY~{U2o5)sY@$;g$}^0on3Z9{@55oJ zM|#6)yJW&8MZArTeteVPq>gGAGBbyen4%rh12|m)D|bm#3&I43bD2TE)!r`hMDDf&W&DcjvSEBe&ZlvM6CrXhgS*jJ?sFvU-3v1*hYkU*z0> z5Z56R^7ao>VZ|hAbyJJ$boHnRWk_HRH#@qIXDK~i)S?mX|D$;OJ)l8)1>pLdl|ELk z1OGOS>DNAWapdH5FJBlbcZ{8;MCkgaOz-nkbTTZdf&w^rqwT~O5wzyu{_r7BF;`(f zw@bZ;e`dM~y5Z~aS9Q#s4J=jSV7+|Emhm2J)~Wx=Axuv9hFJaw-`vc;Bx? z%BL`VZ;_(b*Ur9yNKIRIg){yHm|7Vu22)38-LI$3Dl&$Ue(z&~2qZ~~0TUG>@t2-U zPfA1^sb~YfA@2qD$Y{n0%?4qZW{kpephMz;v-6+)MTOD>%N+$rDjoNxbqoiZ2vovY zvIGG$%jbobw}QLrN4)vUSvK|Y-$m2g^3vf{kSA3=^Eb9*F#Ompa6FJeb6?~rEN9~_ zjOCTw#xL&n>tc&rAtbzVWp|d#IiJ#44-D8|$KRK9HUIBqMKxEG^N$NbvNb2^1Qa(P zS{wj``Iae4-phhpo-P51fbe%umn%mNCGBslw9;Q(-~#Bl7aRLi7IPAHmf5~S4AeD& z5EUGQDXjymc=*Nb83?$xD9#96@f0XCi_3e;b~x8fK6`Vj{e8&K7Kg!>v`-0wBkB0n zm3}va)%8|x*hBXgvXsxHv~+YBzb*$H$^iAtD8jEd{M}mh@^1WtB~1Fr`#JqT3Q^&= zaVEG4aI*aP-HKZ@06NlFLvF3e0=U`C1wHfI6K>Y%<*WQDJ!i&*V<4U*TqM$leV=Os z(hSs(!z$+1DqzIDU1cmE7wQZ95A;XkAApFvr>~oC6fvKi(RJQ8*rXkRpx*wfa^P~S z^?bbE(t5Iflfl~gy*|V3h0sm&=%rc%J{Pwol%A~*FupoAzG2A))EUomONGjbI_5Tl?gd{{|?=3DVBkLmD4WX=SWV^Wb%(!G{?-jDi-kY*zZ?1Wb zY_5IH&+qj8{qNzy>%PyqulH*_pTV?+m+1i8sNvUJbaD{jD0%Mu#2dH+jbwn%8v*f3g+wrn@6ZH2oW6biin{Fj{@ilm<}@=GI9%#56gLIi+SEBnPPQmM zV&EZwB*3zLBZod2Gg`5W2H^5Uzk1J*K&CY_?4rmv>$<^!WO=5e^vvubI47%s=gV`# z@;y7KdP+*(WCh-)G(a9Yn*&dC@1=DK=IAPg@)R<(q>=#mJMc`uM+(B;Bapzw#!scy zp?;QFLXMS4I4U2~(vjY!)l{E?Q?Dv&k_OK^PMoS<60=I8r&e!zpYaxm-~?Mm*PPrr8npHitRE-q&ZKp53uE~<+4;eqEJNYb z6a}C!*H2+PGx`F7S_zl|PPoRUBE=^fFn80JAyq$c4R|F8XmpOBf{Jo|3If6NCQ)M=~R+C3%-y;Ki3lM^!o4wqHhdJm9Yo56U)@^@@fwH$-_ zzu+uR=EvUZx-iy-&UpZNnb)4QU%7-rF+j+Kv4qG0#8w&WWrL+%UIycPcA#_fU5Uj5 z+9}l;Pf`nS6v3xch1v0z-tsl5j1wvp?S57eNwG5m(s-(Zp}`;0cOluhGj*?f)*B^x zdc2~46neU~1M8#3P|ayU?C6@2Cae52Wh_?m4w8fRc{hUNmsu}ix$yBApJGjwaDawh zQE?cr6LEC`C-@U6e!|7G+Ax+)eOSjlQ2eKW%VjY3q}NM$CKaCF+EQ2X6aorN>Q=Hh z>vC~cI0AS`4U_RkMh5`i3^!S|2@fI{RNrX4%jq|~o=TxH1-2*ZNr$Nu&*KoM6!;{z z8aWFN?^oo)IK}tmBfR5crxhBWU*#bv4IY6^?nlt*D~`50)Th28pyfC&zRYb}0E;Nj zhsiw4Tj5T*i*|;Hulxhtw8^+pxr;1>HT6*>z-ENp;Snw!n$1f_cSDMy8P6Pox}$PgX*g*w_;W5C-cPW zI)Erf4i}#?R>l8~(z$tdpqRwBHvhM&BWAnVOjgaRAFR|d58M#~eOAi~55NLu=9}Zvnp|fUnB1D~RuGe}>1I;PV6YyPpNqbi2dLyMHSxAN_+IDA;Ip z4qo^-d5=~Y%ig#s;)S5lz*UH{ve}TG^UM8%gf1JDB0V8&q~zyHxt7Q*=sCc?mU=Xy z=YdD+%pAL>;T^UaaTu{R<}0u{X^Q@?pgk*0=SF^7w#?G>&@wi5Z&+xV(4M60uIlGV z&8{%l=0L$>L}(TOM}Wfivw`C^C>S|hV)w0Ax>>~ZAj=xdry!NSm}=%$nH-ob_&fiI z#)g|1a8Oy(^w|kY=+|HzaIkeoW|!NziVJ~l#4x*a5hJ-tRQH83{($5S3o=P+`Ark) zPoZSgP@>nMS~DyC@)_22+Ey_S7V|>}s|AsP zg_XZ~jm=(Hj1vMyfk{bQ{Vh|>`mfZEB-=n^)Z#Ky=v^X{``0=Kd}Ij{2yCf`mu_j# z3c^qa<4e09xeCK zKw(`8FPUx^0ryBC4EG8;-N$VKdZ@m}a`oTG84iv}RoF6?nufl3cL+Es%w<`d={aNK zbnOMX(&Z}s123#|H!={-Kwk$fyDZG2H3N|hd7R=GaS$VVww6|7;4xtew;H$$&-bV6 zR1|6o2ZFPub)2{w_Nlglm`u90_9h2FPsA^Q%h=ju^Ly$$aW1@u-@WL<1;Fpv0u?{s z-&3KB`1Kb4!^(U9{e+@JVCN9-qO1K5J#TgBN+wJb^>JVYm=xfp{g-{kaILruE1*w z!d7-hlsK7BlN&4c>_CbTFaE`lN;xKmr%JWm$Irj=cZlSxy!xP4>vi3kOUV#3&8Iq1 zv&5o6l5bpTPdY4kU&6gZuC<|NNy)&v2k22pX*_23%V`wRs8s{KtOP|d(-}YN>d|$j zCm){QcTYZwS`)s~?>pF2%~TSELA$^dc!UtdNdayH%px{tM=q!#)ubjt&(7} ze@^tE7Cp=NyEGsv?C-wzb%`TH5JHvA3lxzv#U2l1uLe(hm!=VVia+YmLo6C?jnF04 zE4Q|w{=Qg_{~fTm0R2GFz|#GeHHQD?INkV_Wg$bP=&W*-&PcJ(o zs$fAUoo8>EF$n^}5aXr4U82d}?oG$byk|->P|!}SO&7ByL(1bHZmBk21LLv>qmiul z$XTcBhd)i_LJtu9UmTTy5j&BDeNF+oSE1$V!L$4qePvAF)M%DaG&Tkcz}c;qY4GAtOfEr<V#G~g}l>?GdY_B~-y(J1_iH0mUVv{TBYipEv>)v3zy0V%p zE4$0%>Al-;FZ0sY)SfQN70$~uPM88alr2+?`nY}aK$*+TOK0*OdS3?cwo|4ZvV`fq znU0?DBlk)HnbT9DEBPgkm(nv8QWp;oWNYRzY$o-!8iEUx7tmDaCc-RbUAc}RxY?wD z1>8onncf!8e1A^UT=ulb9OXf@aTi~kC;O;U!%)DZBivOKp056tG52%=h| z@0$Fk_w1{r!V{Ad7fWI z`J;ZXKWLxBhzH&%&fYifTAw!}lF`E}=Ge^KMT^^{38X%|0 zu+n2SP)FrAwW?6@*T!ZX!~Y$vr}G$999Pzo;@z~b{ufaHfQRkjM@lfWw70-khq*`H z3o+>XMw*y_@klID&`WMYx0zO@uyS4S^yirazg(bcREZ>caX2e@H=46p4!@1B>kbDJ zT6lZrb-dEgJ?HkMq&Ux{`iR%@eX}RI`*9v4sI=9ATp(!}Q?qr7>cU9fa$+eJ9uGyj za+hG7x@4;rVe;k(8_X3uaY(kDDhTOD5K?0w}!%Hv} z*g7s8ixc{biewTL(t(Bpwn7Gm@A#PjNg38NHCjy)LXVFrM1!6I2QrMph_ozFPgWqA zm;^tyg!O+|chs8$ixKzBU&C&*h<{zH1_Re)=ld(OSjU&w{`;JYwzpgaiG|deg+)a@ zt?NYp;*y4?06}0a5Xs+)9KW^@q4Tx6$o#HOoJgK*hwKaem3G5mUFGG5(gt*%b+sy_ zhz8f448ae|O8HAf0|7u;{v|v!b9VFG$4Pz?+`DXE_dQ^vF#@R814wWDu#bD~Ocu$C zO$Ha?1YP*_x#%Jwo4scoX4L{cs;zlh9TwcR8TI!3ZE@0w8kK%)gM|u()L)2h*;V8m z;t@m8>r4H3gQrNV8K&&8){<0sGOji-fQ~;Z25fG(li`}Eo%!*S;C6(kX*CCQSqu13 zR!+G}5~dVyND8({17#u_N(SwRq<6Y-R;!&HlRtFK^-#z+hYhZ z5&c`bcbDrBj5lega9uNZx}0uq^Ky~S-2f)Av!6cnb;3@=*JG7&3?9FD;r&ZkbnKf>cZJ{`)zIH42muJR zxGP#-(9#2ZG)({S$@Qc?s7BSg;zrRRBqedWlgK|WGuG2NL?>H@ks+&%+i?5TFLx#x zpg=D>DOo!(>#az-&u%0-H~=rFbrOCIp%H;^irzPyO>R}g$L2>*S$DlAHD>HzEDw4X zB~1v-=@>vo7+SuQ0HMJ;;@#?VDk%GDhH(suXVR?KuTYiXGW0s4?gzQ7Q}0lJCWUO> zmYQ6g3m8I#qxjquaA3;}&Q%p}0bS5o)9R&i@Yj}XSd2-RVpbjpx0NBT-;XWXv)I8S_6^HT%6iwC-e z;bFRJM!z)INIk%vP%&ZAf|6ps6vh|}#jIw)!h96{OPxSJb`2VTVG|sB7>!@R`K{YS zM75@zoO+R{dA46HCi|Qrl0CD^!vcRskV99Hdx{^N;Up5)LJCNE%GhgCFad_Ib=0ip zzx_d^vdb*{(Ge$Jbh?g`;d*gtk5-c(g^&@;qZF$aF>A&pHuzw=7+ZLVZA)??Ly(}Y z#W84OwmH^^y>lsOy4d(cRkB&4_%awlx8fHgl!3Z@>$Twg|0jz?;xbBK#tc|#G~4+h z_bSEK^y%68T9POGw6KRwr?M7u>S|SA2#fCOc6&-tCn-&hU8Br>2Xw2-%bvxZ%AebDZuqGc}q_-#95pHiugqw8{xzBBD_aGIls3m9_t06*3)D3^4 zxX$>X;}>EsX8|SLV}2|E7HT@yYBM`oC^c2N!EGhrv8T-jHqJOQVs4#&JS8UR1%vML z#KG5Deg9!G)K@yAS_}-g)aaomQfQF~(}j)uPuEPxH>++X$M|c)op7~IU#@g{1mWW1 zK#@Ld!s7I`r?TnekL5EuOEiuw#M1Iqn#b-3iD*421Jc1tIPK>SlDLVkZnO8N4z{U4 zWL0-dDAwkaz&N~F+A%!*ulHD(*^5Lp0M}lfaWT%zi_S$N`<>mL#$M7@Uzw6_5_BoL z$JcOI1w`{6X9cy&p+-qpFn9~9S;|f0tn3g2X}3iElaHB{^oqtY(hq61r~bpLvJ5+~ zz`h@!^bkVjXUSGgmOloSmfG4C&OeXQ_wTGsd!eP|c*>GZOKPO+ZF~1!T=+&BMsd9o zwrNjj0|=4vQh#E(LzONQA3gMpO&a-dVTt_seGGpiVwQBL8!$%Ldf!a`RkXv?96A~` zR>&avYNGgK;FxabMq;wpU0!MD?8P`{0d>)aRxdzr-p6}ix9y3?)J?Z=q^Z|;#B7+z zjvjL{ZfJ{{ReIe0WDY5w3Wd$%3h!w5R@et+bz*TGbDQWCKH z7wKxpqoK@Avypok&G!mQKPuD2Y*JIzTkEuA>E0c_gl>v_kowIO4C-9;K%N~%o^_BY zLfAGK9A53?D)|WhhxKja+o*h96qHboba5n$)7-El>dh53)^$9J;ecV)9@m4Ur-S&G zXjKJx*LI7xeIJ80PhET%w0C5!YIJJ~y8T7|bW!$U7;o=VjTiMSM&?Ez!+=urKTj81 zA=HyOX0jw7SIFHKx|nH*4@~G2?2BXm7$uBN=Zhx$>R){WmTT*H%HpBjng6}(GllGvXbc4lRJ9D{{oQN01bDvuv1;Qb$3bcWq!_|mR3K-jY7jV-V4Nn(Ay-g#& zkr#QWPS}UOp0+>gl3o)Af5gCn*5a>Q8|bh5C$oYGGNcl5DxwI}?Af(Lu4fAp8}8i? z)X&6Xy~a{n{ea(wA-wnnctOhNoFrQL%<->I<7go4PkI%u4)bLtI(8`nY zKELv$uAXAidgqS{tRA9!@Eel(!t&P=&*ZUk2k%55biSuVTpQ{=aB`OWLA+h7}ua(R(inWn7{b`Y0P*z zy*kUQ&y?IxvawE6pdXI~dlON71lw^-Mk!`rWpd_@;@*=Tu?7n+V+O?1#Xe&H!usU3 zVC7ANT2L=&+4W_XX5O_oeU==C!>Mh8tx045f!Mk6)l0k?#AMby_k{skxU22)UXLMF z=8;Zi2chF#h2twe9x0~>xCQ}?nYR?ASt{$ai9&e)uMdzf--qOnEM0xJnofW2Q=aiU`?LGPS5j zcZ9lDHw=79KY%aZUl8CIomaF;TK$JLH>h~59btBC|9hBOdwSoLz&%HrG8ivWlV=RC zGfsZ&lLsg>^7}1^J8JN_bXVB-RaKT61ZF_C{L#wd>zdHZ;{h7u#6*8w#eT*BsTVHm z!l8DEhI3CG9jRsgG@sQj$y{LD^_lxRcj4m|lgZk?Ws~nHw(y&hG^atnZkoK-wkP+r zQYM)?Q8UD%h?nNQ*{F zpPkF=9QiS;Gy%N%L+$=XfDRhTp)v%UZT627Mpp#kyj5E+)yPV}E6o~-v$?T<+;bP1 z+a!z(HR9)>0=s+DcL`t_E^&Od&8evmU9|c3L|fYp!S5>Y$Q13C&NHh*Us(Dcm}f&# zB{2da90n7H1M1>IclVT51^!oyU)`DT3%KfI5uL)%_K>SKK6)HWwr`rAC`|bZVCg^= zU=N!ws9+=vH5J>RPXn} zzjL*qfYvY3%CfL_MuYtOAA}yxuqdS*F-6BQQ}ho!DLZd-x8c7uDts#O&d^1=5+0)^ zWoS#2H^lQUAeUl7U_3cWfhzDz#Lc)P0&riX>}($ndgvfNTt5Vijj`{T~()^ZPe9%d0>jF#s?cH&5H?8Gh)YTD(isa)<=K6zP8S z?`H2&$>g6lPFbRaq4MUDYUpn~WwWZma2wr|qvb2vq!|9YeKL|gxd@!jBIIFRx{sX@ zJN9J^KpRl0tu)Zn{a2EemrExRQ}cjgRh~b`f|anBIC;yJcVrZ1^MkWIUJZHC!>R;V z!tK4UXpuX5Hk)PT^5i-l%}s^b$!kQrE4w|>A<79bAc(PFp7=gr$WXrQoh7ieBJ*MY z^{70QhRS5;_o2s+hb@`*&zFTFa{--7LTa3_<4p|yC%h~l@8mbqIos+!{&w1bGCdRy zTYpcd+)S*j3_3&u-GIM3@cu;8nA_iC-zSz-A*pfx&Vg zD*RFH4WWCwF5#xZlAibS=TTsjh!n%2l05Qh>U{oD8g~kwxtwH|DkM}K$0|M!?eT5z zlEPYbljn;`_}ke|tv>yk2I;j&b5}A)Oc7`OKORghOS~kgi!_DbUjAgOj+Siozt60r z&#d^V58OxO$}5uwl)`Fn#zRIe3U%jv+VTN;aZ0`M*3QJcIouHOZ;CTU42HbGFzN% zWyMfvM)Y5xOejTQ#(FGUZJqYLmrhdEm~!$k`GFZQbtTjh!Dmrf;|NThzs+D_xwLDW zR(T0=UQboe$|9a;sL}5)v^hA4HcWsBT832lZ6+fs}GKCqeb@M}1@VgAjwO~j1>Gh~; z2yvri22)ctTGm92tWSIDqqIX!WIy0Awgif@+j6TABQ_K2qz(ec73lXSnFWSO#Uuw0 zyQKO0oZ32Rk8v2Om}D*^r;XsOmjc^Y3& zlK)b#B0^_RZyR4OOVW~jxT-5!UC|Ih|2|GB7Bwh&W)lqbj<5j+6S+ObikhXxy7Gj; z8i!6+pbKCswX;w$xpN^RqLH60C*Dd0TP217rqa_xaan~B7v@OQLZXROpbKD`>6NBi z0HMWLcBY3fk-P;B3@nPCUX5Y<6fNu!+ULW__vog8#qN>?$BeCli<}c3Z$isWsN7w4 zMX$0TaI~tktaa^dTgh`)R7_mqDzd_aZx?gaOc&B{Yv~_E-$2z_F|jl@`|$A>5^sOt z6GH5t=+pu8Udg4_+T0i6S}Y{kdkuT7JKqX&HzPv{vj7W(P1| z^wp7;w)3^6%`63{=E3rmV!KIS$>CT#xD~ds7F6RAl;jco-v(lFg0|` zxU3)NfL=?m5jU+p9VqSuf+Fh_q$d6ii|2q5CMm(_^WZ zQc&f@uA*u+atF2Y-KFNkLWUKAXF~fW!bM%8@8S+UCh!4CpLP{Lg5$yjD0Eb~G7-;W zbF6wKYih^C(u@*sD=M5JJmHVPbJN*)mR!P`FcRUJV8>ocO3A%VWtnnoMo@w-a{tzryQv6?~5|mH_tC;ws>}Ziihp(SN9asHsngJC-{(z-=8Q^ z+^{VBzo_tIp^h9dUVH6bd{Mt$x%7%tMF@neT2oO|USYTF+8BBmk-cFCWLrr|AG&N^ zhaK1pE_eP)KMWzUTkn{O`vq=R?I;`gt1ES{KFJ$Q7&SaxkLk1T zf^sRw1v1Uauv7ej98`q?)_4rNADXPE57d3jR$1j!^aX3j-hUGTKJ%ko@^>C-oD{ss?>Wxye@4seVlKWEF?`J&x zgN*tq-W1sP((L-8Xx$2!KDM`aYG+BH@l=<`paE#aeGkP~W6yGB8`17O2#kkgD>Ms* zGZSv}2+kzB-15>Wz0&QUhV(U{A&ruFg>eU7Qcv-6Nsji@mM(c$E`qowS!b1I#bq}I zn);9+YL-(f{31Z6SeLB(Y1Vb%qs}`(wYd;QFFkjP3_U1sHDI~Fsx9N~B6_Zk!zF-N z(&KkM#?vfb3Ix;3Y^pj}OGl+V-(hb%{$L<1Pskphm&L2eh3sV6*^?qlX$Z3?j?Oie zn-sb#0ly(Io;}WQY*Ne%mmB|VV+v+zZ4dby(Qug-lDMQ0=*=UO6aV@y&y>D(j6I-B zXS~)=weV+Te98ChgfH|!Z!gsp9oammQ#9q;wqQO53K=p5=Z;w5TIV(oG(A z2J0FtD388#|Jjf5EC!{!k}ssKq9n;elhyiBDS#Q9RK|VnN>9lG&i%gfFQ**^H-Ht_ zQvjY$k87Q!OV+7sXxtrb4PC@6U2cN$xwM>L-P-X{E&z+&r}7<_4U{TyTwPfEABA^Dnup?AsvLJZoUU!vwg! zP&|h8>e<`Cs|~gr@GOk@V?VI^`EG#1k4aejVKnJt0NfGS)S%k=hUKg$x7u$8qY})3 zN2kIC@V6ouP!Hm09=XhQ)C(4`Pi?m7_n0#RE7|tF>Eu~J{C>dg4QK>CB)zQQ3jjAD z7vKiSCLaPQ0O_bdQoN;UcI^7@B7RXQ_hL5OU^B^W z;%ouyiQ6U1znBavjGgTe-H+bc-nl`0RW0FSkC8dHUKNcy5>#r4vPq}3B7Bx z!mjA(rErFcN>kG(Q(ukucU`hZ{gfCMwaFIi$+oJbp=1Z7qjIP6w1{UKt*6$H#W_$; z6)(!owVG*^06f-1^mgtIzVy;vZgKQ-X~;`+ItL$4tmZhrC-2f+zk=?|X$BiR8W`Si z9r^@`Lac6|k&-m%&R%*ZU6OBY$w_wN%A1A!a!lRiX=iCRs#z?e$)#E~39JPEY{`3$ zFNe>depg8ac#HWYMYmQDpgy8>%rBoU0ygC7*TXnE4_f zn)iT)&r(cZ;b2eMB1>HzrS{~7N7)iv95g+#oceOAbQjASxR=Qcq9qA$6Yrd7YrgIDBb(@7Va5a) z#hTSRn8JCTL;AP-1nMtl!Q6>Q_8j*kz#hc{%;jw+|D2ae8tBm5X-jYVD+zJ`f_|^t zV5`g8_X$JHVsCxA(Yr~t`Eo+E2DaoU663LkQ4Xw|dsI zYNfVp;Ctsg>J(@vwN#~8pZlw6`n;64gJ22Ezkwsk2O)~}u`1+Uy=Z1J4BNGk$eMo*@V4J7Ixm`FJAAQ8v%%>z=GPkCvigw zE|@+c#=BsF({b_}mJZy``{Plu;bI23v)hm7F!|2gcX?_OSQu?i>iyjtlD9x2%Hep^ zKsOD$hhIjywKc6|>oC+9h|!flTbM~_ofZANLgZmq0@Zo2x_Db?>1&0RX8cnh*yWH# znkV! zL5V8Nqo<10jggt-HhQ<-i3Wi86$3x~XqS%p}X*({nwHIe3N-6DI{8babcuEhPpt*qfS< zA>i2T=6P5e?DWAREjNb)$rrDoIKXcCXg0V@SI)`1H_139FyjOvYTh$-Ii`SGdLTGO zp+*^};nqH~?*kj=M4x{LcuqI<`Ce|~ch%7;!VW}Of``oLlxWq-u}DMoUFP9mmISwb zpCIufj1L9Uu4AHAksw0F%AGF>ppAkG0nv5!Gsed0b92%`_}l)lyXTW|V=$3vg^k#O zU;^ zM#&Ym@nu5aK;PQ!*ovM$%oV$ksQM4_EZ5!ozqW1Xq9U-DRXOwOy?1XMB8~CxD$gs$ zTR;;s`Lw*u=RVrqk?PMIgx8!V(l|#?GPqR~s?nNt$6}kiMYM>c(vZY}x6ohA*fb+( zPRLf%xDk7JdhaSYN#M2<|%8 zI4G#iCyu`1+A5centfntKJE_r*q*2qbE{V$SOIGge`t z;pq_DF91PIVk?@Lg@A_LpYn$1vg*n6zJ@X^Mw#EbVgxA7Ll-Wkm@FXmi5Q9 zmERX9a!KrSfw z_)0Za3-u9^p0Ug%3d~IPU0jBSHclQ+4hI8qi6c(EEw0oVhB>(2AzTBKqPO%qJ(b2z zhw;_Yd$sX3rg31`tf^^)>CRo1_q1OerATzjy{-DRrdW;kZA_TcCRS||r(AlN(>q@D zUx-3M1&R5YCXH{2C>#pgD1^0rC7QzODQmI7!-5+!xcq%;hFo@shk_}&;{tEBE{FuZ zoBrb4?B5>)lj#tV_5=^3F4=j#ICC=nC%rTs0+Wv9L7UsicUO9mm=n7#%>=$(A6!x0 zkwjZ>5ULZI4;+a+Y|g8@ULRZ@jo+(-mUZ=xo+Z}5?7uq3)BbOQdMFbsRPm-9+)&Us#a zwGVj1W|TIzLFKgOlm)W}-drYx5(8KTCA1BD`;G!kxQbZP`h@E#|dsIX;+B9#0VmE5w2} zSZIW9e4k^}^$evA^>z8uf-J3aha=4-TYl}0mO+Yk9d_QQF@%gC(4XOE_$>w-Ze&gk z2oiwybI^Sutu0q;YzeVpx?ZOmf=dm7ps09Y{b5S*#p1E5@T=sTpT4zN@ylJSVsA}l zS1OubE$Jh_AN}LD(luk)`&V{lMrYlxl1>-sdQ9!+&i{tP;J2jKg52{`vwZP?8XFpE z5=m^mCT+`lBPsxrreHxK_6nR-EXQNii4&`;_EXsTo!4Mn@Xq@r_4qK875>1P;07SE1tK>P^9w4Pp z{=%C)TqT9@d={-Pm%xCIX7LEoCxVs8&VMBr%Q2GxmSu+a+%@+^QE?+9%)C60pRg{^ zo&CU_TtmE26ufh6AJ19so;jhbPNpN4c*&Z1)H~~~QlmVnc4X2_a)ay6I#W z4f*0xV{UE3*$Z`j(%*RN2%{;K>x#na0(f>mW~dCzaqU`r(OWheBg))tx`%}*^Af0bz*l|7PY!@HrgOi{0PmK+R{Of z2u%!EaJF+NB|Z2C+5{Y#S;)T*u4U5VEr6}7k;RQr$^0?KjUCvDWUZYsv6aKg7^eh| z7dFrS%mjhpu=}5Ouf$W^PpYh8Aw}o;RY9#PoU`X$7a626y~YV^(u~`VO7>RQW!=|* z>zYTF$ti@`Je1mVC*n!g_fFltgBgg)lz`(U6@ws_e2itQP2nrldYbk@AVVN1jWD*h z)i)gC>MZ$<*9?8{pUzFFxy7vLNdJ2ZN42pdt5^G}4wCnPe(s7w`)MQ~z^1y)xm1r+ zeAWe~{n+lMA?3vXkND_E4!BrFLV|C_>4$my2Uz&S!~lyGUpD$vExFqOusPGD7V8c~ zfII#d$3mL!;VOE#WLuO_aOr&ah~U*=n3taq7h_{BTB0~pfvD74{mT8RenjX7@LlMK z`w2}HjpXys>NXyLrkl2qX0DV8&5XNX*k;a0d5;e%MyehI=gTWv5Bg}f>uCnUUr z0*APZ4?M=eN40Dw*4!_$3Xhek5MBaoKm?;(UCH`ok&uBN^=Cb>e+Ysm*zB! z@W`8xxwGE8B!3BPc-n*NATD+9oMfz|1ZMK%HS`T-Pzze<%aDPVmR5R`(k@=JL+l@T z`n#kaqRY#@Bh1ZpeTRG;4IU?%4^ko&Wp*YckjO~W1rWcPsbbM;kt+scz_Zr*ra;N0tu6aw?*8tli@rz^Xh zGxzk2)r)#`Kl=ZrU=M?BDrgqN2g986bY3Z~Hqq#=?~})^{oU%(er<(h@rmo~zxo;X zog;Y>M-4b*eZpE7=weZ}j%$gfDI8d&mn9vh01&Gh_GZ$Ku|ys7U@X+b#M?L0uw3tR zqB+qkA%r@=9h`%yLX{TdAT zMyrWxMZgQJ%5N{fRbdV1BIC6gGpGLA#{`$Rw_Hh=6ky?&8=uAOvq~AU?{#niQN5qjxc>iwXp$ju&=*x+hLVna%m_a$hxb0lo_u>GMLH-k8qS-gJV8)9 zX{)2il7M>R^NT&B*obYoAH5aaH3wC7!g33Lyy}mgoUIPbG)WF#J=6ePS%T{rw(3GnPfhx6X}cfbhQ7|a-C)WMU&MR zYcfeGp(D&m15#r2Jpq7b`cB%cwlLAP0v*+2MvABUL_OyByO~pI-i{vNDVww=8~dk8 z{B^B`F2*D>->@K1moc8L>AKh#2e<1Zm2q#9!_ntCor}98fWiFOvtX3|bI=H@68<|m z_AGe4EYwJ4j6$17S79tKa;clr2GmtN=mh`r@G(i*y8yS4k1x zB)zDwxQ5X#g=l5?yRkU27B8l13$-L^3O9~6Eb0t&TN6DEdH@cdk!f-#S;9MtS8bd6 zF=pB@aaQzRG-&KbViE0B!J*QJ3}5K4g=ztTf8!;d)h3rB|hU04)rl=@ighu*ZTXb#bcWF{UE)b`kbsB~A1#P(whG>d!%QoQ$g=9(R_ zD3*;(!|-jtd~{DMC|u|6XR8ea$As)(YIX|kGptKJQ{%R2um^zUFL#8ze8*lyeORvm z7sQ?1PpTwI&`5=qT6T21lSQXK$yx>{)IcuYjs|;!>hB$TrCD#4wL1jzOK-WTDkrE8 z>kL%fYTaoM(#O@Tu^!u-2{)|2;G6Rm`zaHw|`en<9$) z=4Cn)_q-PU(ez_`Oop%Pt3{|j(RjAFqZ09V0VhD9n%pq83WnD{TF7n4Gdp=-8aAg)0;`|=?w$zPu*Oi2gf2<`k+p;;NBboe0_6rlG8^3A%kvlFZgqjQrhKhb6?tD{lOzhqiM;VWO%Xx%wF>I^re4 z7W7-dwCHW>PjMAUEa#hc(bHX+d1F>LAANFu`5p7GD{c43ulA_U&jld-Vfew~ytrpo z@tmIby2_V8`|adp`H$?lxCG74g!Mz#ldM$XOA{~6ayz&v?eQBEKi0T^uI=7S zb#<>b%7x+Jzc}ByfCl{pR7Yl$$hjMASiq+}TpOBEffKF%K15aJIh}hq?&|a^*p__P zUG_LL@SEb<%xr$L&M}UXsd-P2f5_p$z5=i#7Qwd`biX_Us8Y`CJ`1V3H5!lIaaAfw zMsT>E%8K$PylX4_)tAly7;;C`*B5d$?||M4|Dm26eB zJDWFm$nCtR_|)bx5I>Y0=H@<7ObxLo>~)DGNCPAm+HAZ{%+m9~4+6aS5+j^nG008^ z1B(-0z8@kaK)20#L3$Nx(b8d5j|pZ!Wo~W|>CBu17QKah2|^AU$WjFdYfs8S<#-zk z2j6sT@k4&kic1+T=r(}OUU4lwW7<~RlEN*>dj2895>SCfd$haec_PumhA^HSFqiro zk!R3y)N0p-keL44ZCG((hM|&cq|ZjRzhYC>tGjuHZ2E+J*5jq$ZEfl{s5s@Y(vitl zuMarzysTc0mew3P1_+Z`T_fdd0Mi|2hInc?{KEB zh)bgK;QV}wr>w?JIG3#BJfp8kh%jcL)q1u}U9j#Gp8FzV&!N$dtM`r?+;g*M$%M}$wNR(O{0IjurXti zrmHDIqp4ea?t7bRxSfZxG5=w?#nDjS@*)}p*U)=0LRxe6|L>&5+7{UJ5_2xu>jf$Q z-SoauDFg-v`p*mIfHl`n`G9VECIx5JlO4Y2?Q%Eu*TLy>Z ztgBAihGeqD+y;pifeVr#VYdc6Zev7gxY;*?OG7fm6!ktTtdkIz65!SUumvJzsAP6! z&VR`|_F!qLa~6VHAu54=Sf=ei6lOG@iU;K7wdlMLda$uabz!6PcI7A$vS+>P+guh& zM7T6E=*hN&gOe*i{fJ7$8rH@0DH{gdcWhCb;F==NC@Wt1%_t+eANb1k_t^Eq&kB*Z z5CWD12fBGpU?An`9CSx(^yl6neX+YshgCJw0iD?<0jr$vLCM`O&Jy-i$RgGkGsY4m z2>y?xv+!&3d*ApFK@<=XBn6ZdWuQn&BOL<)r9)B%j7f|RQR$LakZzG4HAwcZ*ocmnozOMI4ewY@c77))nw~gUtWT52WfBY{a|JpQ`+EWe> zjDykCLsK6cJTZ_mzwg2O&B30KRN>?GIEF)qlV4zm9L?$3C1ENa>%#hKLea$AQ!Bi% zMoQfkOCKja|1{yzL%mE6t2^2N6MGp7}^GC-NP- z`&%0jK?uwE631+e16}$0PL70BYIe_}JQ>QI*wVG~=OdV>Eqz*RAZDM((uBI zZi%h$;9oqXan=w0j=Eb{`m@@Ru{zk*`T;zX_utPq^IMulrLnB4Zi_`C!zDlk(k<+e-1Uk0WAS!V{YWHL z+)#XvFYH1r^cV|y5kI?F2b58d0DUDMav>YIfN-1lHtuHia?R2J!MgrfuqmNE8ooOk zzE$)?+?oAX#dH0lNFfp|h^LpHtEn*C~ zHz+JGv=OJo?ay4(0y^urh z41}pPK2(??yR3dU^K!MVpRl@0^`sNfzf_;#QomUK(!>W?Lr(pgHmzV3J*BLkS! zE_c}37Y(MBrYEl{eNjL4enhl1rVn{2GJRN7op|omNm9lWcFEag4I6j_n3q9_)=W_n zAVK6txNYp_*b1c#opOC6Dz>+eut@t}aKgl~gjkS&5Z=XJk1E z4)4ym9`7y2TZ^<0fE!o}I{C=j83&N$Bj4;vT+K`{^;A^XHmAgjtC0K!9Fr2z(nS%! zOXF0%33WyW9hVu011x(p`XM@G+{R*RId*6AFCAOdMRgCKHMDZWZKL`>5R4clrf-^s zG!}p~ng;;56|pS2$Re1b$(&tYuk^VwPP!?!GmsusH)7^p&(dAEDH4A3qbYOj44bOf zyV{$_!%U6H>hI7ri!|W~&!^R@mlHA@f)-mis?`naH+vUGA93E=lUlC7igbK@%JY3y zLO3wn9yKd}@Erp0h;cxOQGB}TSE5(P2dL-IR@W58^IYKKgoGg2<7?DL^BjbPr>?m8Mvuu8yj4i8tnom&A$3B#&_g@6;Oy()miF#T zy)iiHWNof%uH|0Qsn0F~f7pwL2mKJ%U|uPKxn|Ga{idzfRE1oGGnnni4j7{4B2f0|$8;8+i-vrcDd7kt`Q!RcEw}Pt$aA zin~`iSqoJ?mga8fiSBX!c|*IUI8mp80PfgC?QB7KEf1sAbL9fUtY!G8!0t<1dAF08qXcY#joM7&tIUuz6Y^4K;6e#d0g|vG6Xj=mV znVSv`s3rovE7XMBeocF9I9WO${}!OLm*gxvl=XbR5GKzPuKMn?@Z|mxaD8%0Lf>*g z3BUjcDpwOq7bOEsp38nrv0)6hy2%nX=wF}Avr^S-D?9&vl&)t{;&y6bjZW!ihx3Ko#tts0Hz z%r1*?)V(b!JW(Bu`$df(@OE4yx-xUS5qjX~s*19yK+L9(4pmj=)#?Y@=+=iQIE}X# z%bSlv-?_hDt;bIRR0~m@F+K3Ml!h_IF>EeVkNSKf#ud<+p-lNgq@UNnO5qj$B;Mc2 z-Y8P_CzC1SFor*E$#6o2JJjN3uM{cJfn?zJq^%#_bE!RsKla1ADDoe(m8_0<^Fxk~ zMZpNxKeZ|2%h_@raX>~ll?9n4{>c=7`P{?$%!%%0t-~%c${TyLJ(g1)CXQlje`;e` z-6S*D4zkHUX~h_xyIZD69irH68S++Am?fj*Ou#=^2nK_G#!0eY-04$*!X!wt2i=mZ zS)1IkG?{w-uIR2Ho;RAnfB$cshM?XSj;*gP?HOYjTXQ2HP#LRr;DC^?&lI+&bQADs zc@9$Wc(&TL9@g@tk1zaP0BOg$N15!iwLFa=4;_CF6G6dUe?3n0VLsi4uhqFsXHV#B zVCdD%Ol~IecP0~MaZ97{C!ziozvU4UaKCBwy5wD%_~r*@v%x4K04wdQXQs*VF;CME z!6>JABW&{Kb$bjrMzF< zS!dKd2jWK#um#-K2i>u@(5{r!!bRC(j|SmRDgHD4@`NQES^Kz4F0HrEP@mviDWj)= zK%h5kF;7HxK?{3UH&|THMLU;5m5u=LV?PgpdpF17I@C9y@?dIEu8FJRA2+4nq}qYy zTFY0UI%c$}hYxljbi)F5eT#4^Seu_&AIdVhKeJJ!R3wn4E{JCR&y-|ru{cU|h?@-{ zbUF=ld`t$z-n^S!kyY-(H}-!C0OnepZ1<$?R}ZduCC}I<4=`+<{P;*yAL~7C`^^CWrBkyZ|}Wh#n6t zum7QWRtPLHK^BNajU=YQ=pyH)u$R!bnZ$)zAh-LPGd?M*iHo^6>8PDONr$bcld^Ce z&b2QsvF2p<%d_%-tLwGtFiTaMdPre%krj2z2*y6#Q(xgZF%~KUxn7=Jh^3K{UfQSq ze>7GTAuJL0Hq@LEh)Gax`0oERYHPGduP`Tl+2pfk-PILg&45R# z%TuAD!3y<|&y%lK(l}@DqcYUGHL(6kK<4K0?1~xt8YbB;uHzWLczH8(>(#jG*HK8{ z-P_q58V}NFu63T=ZM)DuqTlDM{o?XEa5|fGyY#ObW)*leaqteg`Ao;r>rPmm9E%!q z8aXc6-Ar)QaRY>l$F2fG|2Si{Ncc?+%vEDL%$oG8m3|{Ljr-{c%52KLwH7GO--wX8 z2yLa7(|<%eKQY3sxI0ceH5&;Z3;PYQkE}-09Kk0s+~Uu*zyO`-v)GiPljfc6!U)(J z;Rx$!*jwrCrswYN0+bP;j7j2l4!Uz${gi}qjcKZ9XNCHEGuuo+PCw@#rI>TQXeBc7*vlKVH_CHrhT4D?#(vu!D!bW1w9>^u4P){yAF-|5~~y;;76q~ zOY`tz@d~!#F9d=zP+#_!jl2JH00Cj3nQzjhMYNB>tF5fO`%@{8{9Lu`>U3yKAU_=2 z;Rwo)f&!UbsZqcwscz4;XI{OPR^otI`kFbf(0GkKjDFzB%UsJlPW_W(iV=qgtafI8 zksxzHAv~ij_msw*Q9m<7|6glm*U>7i8anUai$Iz@Fo^ENw_k{CkTOvQy3-;7oh8#5 zQP|sN6FNbnAm?9Z#yXitDXU98Q{nA*A>`LMo6>0Fzr4B*7oCb0j7=@-#RR6?oOhXq zblTn6`=n>-NcyIkoo(;Xa;DNuP_yK+*L6H`HxhB2=UVy$`0>)yHOa4O?cvy$GY_{0 z8Vq z=Nt?dU4f?^qgSoN>gksoYxf{11;;<40qXuu;RRA35=Zo%kBNe_PLd`2((>my3Ct?% zzuCY0j*yU{h>k-r%{QC}ufIp7Ge3Oc9gL4Nfk=|K%;CTuWpnwP22$$8WNtQAdaNdi z)2jC;OKP|~?E!K>CduxEegz2A^x-Z0xf7-GWEDHB{L2T>o?Yc>H-0a59Tb)pe_x+; zw$7aVi+{&fm8O!g)@>N3Q!q~JOS|_+hxZ>2u9wbmU zB?Ayo&}{6b_1!a{+^i+-`_fY`7V~ z2uyj45H4gZ)zUX4VAF@qmp-A4dhzy!cM@=gk@3l|ak!v% z5e0-uD|{JiG4d z$aPYV3RD4+C42*@G}6j)Nuad5&4diJv2p*TugiC@@EsLe9LMj%tN?Gsz%Ws@SvqSb zWvt>WQ`T%Ko6m-J)3{6RN|ef|LPI5b!M0&>?B61*pK>bd1RDL1^?EzPDm>@QC%}z^s|X}-1QXn+@r`H2bE)hMM@}wT8nbdLXQub zHoJn;$Fd{mB=03#cKWWR2Ejav`sz|6Y+OgfkMgUlC9V4^h`}cF$6Tw^c;`I80jMN4 zi1RC{&3G@uqOL2GRP~;%2Y8Vq-`L`dvWK|8es~yVZIv?icX0vDjE4wYcn@uD*X`F9 zrWa9nOXYm_?%69TVfVRuU{TgtT-4F)-}Ei}^j17NQb?4wg7(xz_KWOjkx^yrVrr;b zi~6oS86LfL0$T)J!H>{jHvdk(aD{(&CcNUCFb!IVGj2DmrU%25k{s4NVUJk|&(Xrn z9dG>(GMCwB-jmw*V=u--cd+esYml*-*rF0a-dM|Y;WK{xASi%z&*r#es`XY;Xfw}} zxyDIX;GHUX&8$gxE>6>-_Y&KwP9=6Hn_tRv2SkdDtGeR9n#rPsd4MScnkRrg z$GXgmA}Cnb5YZ7f6ifl5tF{-}UtCX}U?Q?)H4u%X<`&NlD)Bp7;+(P5g~q00kqN|4 z<_2}+R-Bs3H{3+tHPVwD6?N!f#244LPpy7#N>Zl)xou7c&GB%5OFy>~*`izZ*QC7U zN0c9uL!yoQTwBr|Lw2S036|QIm9lrd4W@o&f>7fKbMdaxg$1Z&H5N(ou zFTGFA$l!v?()hWh)@yq=J_5t$G{L^SaR9V-Ba0C)>Q{Ph%>8Ym78?-!F;8rIisNy3 zpOk;7D^iooaCnma!FaO)CX))f2zyCZHJ<-blq}gU)=oD*Sqc}u^4^7Qgf!iefBB0y? zit<0`Jh|<%f@(_6zpJKg{te6XH9?(wEzttVa-6~Kc7IYClh(xfS%QKbOw?tgiX6q< z`uu{JzI3swCV-C3?La5gFA8e;HqI@~L+!loJ>~t&d9meB zau*^WFSIXBwqr@nLh)+Pht`m$ekvK`9lZs%dLG!Kkkz!}FS& zDqPq0^*6=us73=rTibTTTbg)}>1BdQRK*rks;X884?u2Qjt$Ek?@HM1PR%jUcPfMy zxrVM=*@g$*IvYRGSfCYEY0iAk7)na-W8*ALJ93{S5&iuZY^VT%+u$5KTsiP4lW8tZ z(XCAo{05M$VJow(oGpp+BaG*gy)>fYt`t48pKsJjRdMUdn9T>tFescwV}z3!!fNP!>4l&#>0% zn(=#wycaW9r5&afr4?c~CHRa2K|i?i z+~yt>fPG&dt)kvAjn<3mVLnQl|Q6WP$k7< z$Tlc8vqtzi;N=E@Gj1a5 zaPw)P!D9dE=Z{R+l9 zq6E=~y#l*0mh4q@3em_#iPnGGenlbH?zrR0d&2<-N-+Imb3qVyh*EzqA;wzf{W8J?NSF zrzWgM$hVXi-0*LO80{0Q^B$@hvg4_;z>zEINonvR*naBe-YbG($YB#}dYLwkvezmG zpCAS`P~cVUekJkvUc}m`vDU{#7@;0G#yWOyT?kKHXzpRAv+Yr#*twOPuEE|rQ)+r96Y}TylQRC}0-|i<+#mb(Oc6nJ+%UNaJ8^*z2T=8$9 z*V|}*nht!@2t8v>&rl1&-Zx#0kA6l){YMR!{W!SE7vvvPZermm%iXYd4n1LKt*uYS z@4oCFWrcphd&J+q)$rgW&4W*Gj@UH+oQoyr{bIENu5SA?@3Fov{)W>F0FWA*Md7bW zSgqaL?L_gcMei_Z7B3O#&vG~H`;}&;OFcu!V7<3MWsmDt<;45N4SP-Ij*}NPH=O-N z1g%oeRD#zsRMt)_fBwBozr@_mRR&V@d7sHp&7z%p*U>j$DXX^Q&rnhQi2fH-Zx-NUE$; zdVBCu#sP#j01INzy$ttvb}G0Yd7QUaK3(sS*+ALCUHPYuQvHIe#ioA>cI&-9T1^=m zlYyy*ORE_C2hwi3uHbUJkG97hg1k!{QU=iD2huVQ-SegfQf9$udJv~vWbMt>jC4)3 zKyO2^e5ZcgPMo9ZH*7acaj>{-Es|XV? zR2$2N=)C?Mf80Q`o3B5$pWobu+`|-R<#Ayh#s4ZGGaYZH3jh8OG-m?){M5nI#&{g_q^ao$Gs&n(PR`ct zHwOM}!5j+FH`A$e%)cxgQZtn`$@F1I8XFbX+#%cuzhyaXL3-@{yiUn=c7)WU;m=2% zJ6k&3G>+#s=<-kidaF3>2y3Rs4V*`%*Gt-`TPqzCNWzOa=Ge!#?gcTm9oJdLNnopzH=C7WRtEe?`m5^!jjL^j;H^D#1cnA;fAXIz|J=L(S#gNs zDEr!wQ~-JBmPu3rekYHeI(cOE2HUe;Ei|34c=%DhH&1;)6p-SbA2HKdfUJzu3nzZ+ zwz?yD(ZX*cmZEd1a!r*b`{872oky4X13h=|IAyezl&e;$imnFzr-JuW^L&>KF`0 zk${2qaTBgG`xCU#G02e(xs-?lpIcglHgOBP=g>(qIV_SJt;$b-f#_fhpYNe4y| z_5K_DuRP}fyjJ@HQ&hzfL%Z>E#?qK@lhOL^zw%rz!>3m1K`EXQ4y8D1&sXo- zV-BO@e;qn%I^C@8V|_hopQ!n9Bm#`T@1l;r;2&w{i;O$ILXHmRNzo@vD%Qa|a(W7c zh3bf-f2tb7lmS^Ppru37|r zpH9suYd&#Vb^0cZK&$1M)v3op=dhBpc;O1 zzuS&Y9mr5W5x4*S2nk^ksvDqmZW!k>Q+owWQTyp~b}edpqCMtNz&6bcxRWE~WnSxw z&dS~j0psI`+B{^3y<8cGVluN7Abz%c0>T!X4~6{YKZ`aWhdq3K+ym@y$}s4n1Z1KU z5H(`d~b|FZdEkQx@xS24Jr=gLqBE>swBY&Micyk8(d|b^BYPo$p5c5X0%PH*?IZOuG>O&>dlVE=!kr=~ z3X~CfPB$0b$MyYR8AWP+zP!^szNzU~*HAr+MywiR$6Kg&8*Z+hDtLLM&%bWEdRho?upFdL&xh}aXw z)+hWb%b9X}1$8xW+GkToC$Rwx)(W*Yb+0ZP@dCkd7;k+^6_3PBTS@h;SG0~7hho0rk&@y z*~(CV)i(y3JPPPa*_7qM_{J3oJM~I)-JO|M)kHSAd>EfB| zdqN&jpv3bui+5Ky-0CAx8e?12h@MdYr_^5>ET83nx!UfP{5~qWEXx$(EV7K46q5hA z|6W{WcngTBKyU9279Fd6DJ|P9d3NBs~Eo5O;S?X|U*cf5o18pq0SVjZ<- zKE-~Hbf%pnj)vyBZKBBX0y6!e+A|t{fk`0N7yecVfvLM0bXxVCPB4Jq;8$D(2oZa! z7L-pO4aH^G-?hMg&usuggS*8o1d=u+MRI$z(T0x&LrLNqfb0SF2QBGWv_Vufl|2#% zn!WDKu2X3sL6_zZ@~Hf7cBZ&^uj1bgZ;ObT5if}@G}{4ehQ<>LeE9hL8n1xT(9Lx$ z7Na%Mw25z8uRWRhHAf3{W$KSr|5C8{Wv5zj8(;)s+VU|?HiYb(Hj#k$uexVVu&TuI zfylGoX97ZV%Hmql-ac6K$*)lx3ZFOXof@wBvips76bXe{H;f}jsgDlxhASP?g=n|5 z(2G}d_P|Yo27_#T6`uVCrwk0_XH#rDucR%VJDJ+NO%eLKU4CN#fQc!Zn0fba4|s5o zBEA0u1^fd;k_?T=@WWP7gyiYgrX;cWqPl@7zZ@jW_ZDBn{|3$_#m^YN+5Xn052LWz z`Qbn^HRVQ}CxBtr=j3smr+Sw14KYSR`jMvRGlDr$>Z33!VAs>7o}0^Q?>WKJ<5hKI zajuJP)K82|hulb*!{yu{jK0zAOrcl^dg+;CO&sSw?)IC7LY-O=-E7=#Xpz#G>hWZD z+3IBuBi%h272m(QEbWV?#yPi9tG^zl90o-7Ej`HIe5pAj8MUb&xML z?sdQa`qz}K2PX4oxQM#*wpIKGD%eQOd8+!bGvd*@T5*|u6Cru`IOH%G>BPIg11?vY z^Z??oKsuGP-qlBI%?BRloN^1M8nLwAVred!S8pS2K0ot%!&fHvs?~I$f~e9gX7L+i)96LjSuqPty9Nb_?za~@ zq-1&+Y(7AtkP@=#nNg)FdskUN-b%&s;00{;+mhuxUdAne3_MwIBa9P>Xl{s>Ozzzm zT>G$M8~9Cjb}TjSmx-@PQOYITI8SBfI`DEm5qD}C}#fL7QMRi3R>^$=%diYgOK zze{wNocys;u@ej|H$_?9ZJ%98J@B?z3b^>|xJ`+7n{#OZ%+39G&;Hzy zQmq9e>)8dHSyBofrK=#}f__dpwckB^YPrnjyz4fQ_-8S7--;UC>DL^;`h@@+8exsl zMXV3Lou04JaPIshJUMk^E7CL1PcZi(TEt05_zB{U`5eYI7Mn$%7DH%j1b_^aTa?DP zm*=0~k=ch%r6sZ40Spe_(Tr1?%NCHE{n9PMKtBean>uFyieiXio`h$^pB4Q-d$XL3 zmZJFylm|(b)>;;*RK=%mZ8KqzV4Sx{{yk(OtJ8;HW};%ag~nOW^mis}b*lcvXT!Ao zg|;fd{_z>GH+*0#$|b^BjVHJliswGvM3<+!h97tPp+&ZgIWqtY2%W>^=WO&&*xj6U zpCTh{)c)1ODFVXIm3_h_4n`$7(7nT?Z^iV`zmFxa^+!=cCDTH!p~?_wMfDz;G_ibW1}U1e`|$yVknK%VpC zTLX!?8yyOxUz`~01{=#c&44X`xH7+ayzKDJC$-TLti_yAyt@b=KX+zf7P!;m8rnvR zxmiUa5{JXC&W9C%ZgK6EeNJKc1C-JCx5Edf6keIvEaoq4_QrL7Y--z&@4o(xL130U zFT;m@ZE1x{0vpzRlh>R>r%pDYPR06bkcXfCPur|+#!to*W{^B= zeX>khFJ^cnlIkQ=xJj%Iat!0s`trQv*>9vpBtQ+C?{i%$Q^-}4w20uegIk*^H~0p) zY8KB8lp#G?luOR(72cu%5cMrzxU*M2pax9r=!9NKSp4oy7`>^wlXSA0lUXko7V3yZ+xheumHH<6R*vN4xxh(T?#^yIhxIR>z%~H_TXAJpii!P&>L`2mc zm3hSQ&1Euy=8jXR=>W;I4B>5CNq~c{Zs$@X0Qi#R zn?3@Q1U!6qxj!}DV~ZNbVXMlv$li@+!v#$>2XfC zO@`_oplx)g_pn4qu!tq+_BN&L^K>f3cCaI(L>Ho6T8CY_+4vwq^NKHiIkcewvUh#l z&v_sTbg{>e@_|-7P@q)c{PfHTkZlt1G=UTj%3NzlcsacP;p_5NYBa$6%r42~b`-^g z3oKoDPO0Hb&ecg}LG#2zbQ(3?%dqXld7)(K`2856lL)-hl&&|O&PR#l;qd!RF6H3R zy`}m^`CCdB_o@Pfd&?_IXX`Uq`RE?XybgGTUecjdIyotKLC7dj*>@ub33J1pcecsN| zqFq82Nk?OybgmeJLfh7vi-Hz7YXmId_soM_oV4qGMU;AY%6?(F*k=tYE=>Oeoq>eb z{sT>AQ)O`Sw%QSHH-;gjnPM|M-gh3mKvM<~xTwO0OmzVfymSNuWzN2K77+TAaMPB6 z-<7n@JSE&%R>aj}N zjkJWNJAVpWRqDu2Mca*c1->{bVtW{q^-`=+kb- zwn1$a@IT)Jq80yk_yjg2Gp$&-tjUCc#C2OOZyPHV8g+wm>#SbD6HVf%4{;~D1qRDAP* zk2S2H6G%h?%+GmIN_DBPCn6o6FBHD5OA0)m*CFJOy*95Tus0~xX;9sOpw3UXXU8zc zlv#2Xgjal7f2PxHWg7py)vF)Yy@3a zd(gxo05A=JKfgTFlG#yj1M~i>7ftUo+Q<|}`XhE09kVhO&`(v=pm+`kfsgJHFNOazR;n?>|r&sVc%htJ(Or;vj&JNSeoblXuJf9CfNM zS+Q7#o6l9rlX7}XQLKuZzp1(lTexrt zW^DJ=DRp{8*ZHts0T}sIdN;1?WPg9Kf*AImIx6PH(hETSad<^4^3{JsZjp1!bI`tj zludRkj7m~mWI(x*z_x&`;PC@XX~P!m|5fLV#xY^MEka@wY}on9b>@BKj<+ z213iYu9DZf0riTxJ2Kzm)8q$MDaexMsmG<9q)G}4$W;@CWyV^(C@5%I%yKCOq{a+fkf4Pf^MhW2=fTLo`olSz+Z0>V_Oa`S77#jiU>v`HybU9pi zs$+j330{b$rs8or!B5unZx*DCZMJWe@!*fT8#WdzZVT6zWg4kI#V7@w0;1;lu3R0Q zPG$6MfN=jS2F{JP8rXRO?{88%HrOQBB38DmaZKNrAMg2DtsP=giT zpW|OxxfeFS<6_5sU@b5$Chhc{VPrUXq9U@D$#&nv1zJZb7Y@H&S|WutG7>ZC-gA`% z`W!t>9l~I?j4iaM z2%fx@vC+$7yrV_4`;adqZ$3MuteG0hUgXp49sjzE|9td=cQ^k=fnr|gSxAv6A*awuxY&6FA;2fFy}E4<&rnW5xJVd&X)n7Y+CDIs1IdQrr@Mtv@i|h2RDnZJvw87eJQ= zBRQYb|BwrTp3njAD8nBB2$gd^&7)+M*_s12FS#~5=2JsV(a&=rLijWu0O?{+!;jjJ zN_a9@tQO^N#nYtuPn^HHxN-#9=auwauY#H=SIlI-uRHPboc(l#wocVWg|(-=?C$1n zo5*#Rx!^j9E!qIW3W}=tDj`y81`tDCcBO56qlpe&K{4GDWXf}dt0XX!Gf%UPzCHYv zP38w^;`VsC)Y8owYuvn@L;`2fXFceM;yV}7IcTD;-_Zkr>o`byHhP)N9zy3N`=ApQ zeht@`?fiq!@~fU=5zQU=|7vnxaNz78+Tp?uo1mq9Eb9!%6RTX`09c5GT)h;}6>-|+>>Z|cr1Gf|NOj)^H!v)LnK9-Q( zNZ#-2oJ5`9MFXn5uLQ$nFUAI4-z{c6(Hzyy8$WustZfVHAM=e#hREYYr#H8D+BUzv>fH*}31oZLm7% zbYJIRf`oNcX4qKjiv7sLGbEU{zT(r3-;%#+L)H>aYC6e=xLGkCZ|Bh_LbG*L2z{Sn z6|~4XX&I0&02}&-Xt$baEK)3rc`w_7gA7}}Zw*NO^1i*NIG2krcEAx89MddC>T|b; zd4}I*I-A@iqS@G;Fa5~|%0B(PH#^Dx1^PTULnLO24RRPDLQSJ-d(hlVjCwL20C|uA zzo&kgUibwin1Fp}AmK`T2ncKSlx~1Z65(y$+z|Y{0;BrC>$Dg&E=sZ7@JV&FEGF8J zDROgXA$b^r*DNttUer`ZZ*!XB^?3J}+dc#m#!n>hg93>dqJLpr4wrJtrcHlxKCIuC zttUHYxt18(jtXLKd*_S5e`#@<0#_?{y%ay;B6>A>KB z{g@x}vsaWo_ZgY%4)XnWMXM{F5(o+rWRkn!e$M}KJu8h9fW?Jo(0u+IU}3HAh>XDYVd3`ReaM#$~6AKRE{|A`&#i;+|^yMLqysB+p9mQzga4) zDPU2=owMBtN@+S0cbjD~3ILEo)RQmjam%nVzzT(Z@)3y7NMK-l`iLaObpYr0t=z@l zk4;MJL66hZKkh{*hL{v%(=JTjhOak^U_#VdPITaU{6xTu99zJ;(`H+{^m5F!zv24g zMa{;Rj?ds>$L~O9*Lz6rezK8v03Dl6zRB{@e6B0c;do7}9>pmYRT}t89Ds&9itiC! zCc)1k!GfaKgE;+&H->;Y9y*&^Nv9|XQw&W<_^8FEjdLb+mg>{UF@3_|yT598%_NB* zR|1DU1`kx!mm)!k&R0bCz8p+iYhBS`a)nt+03a&&`0{bb0nc2pbqRowpKfsi}OX{t8 zd1>`>SYvR#!sR!Q_bNc!g%wHcqSN&8c|L6fwPnKdF{`6T{Ph3EUC|Y>Oja`J(A>3l zSd!wN|HnwRNeN=sJodBy4-|1bWnTFg-)$S&%tMgI;1Zh(M6AapD!;SM!9XGWYwQnM z)zDD6OD15!4&0wFeEjZBYM$8~yr$J4c)*hCtG;x&7tF~(; z*TQ^7dswJ0lND@DeaE$8PH1N5TdTtWyF`H#lQbQjBkI>(?@+qcE^g{13c%_o0y=l{ z3!=efXzF?&nPS&3rvGLH`n@}3Kb#YrHh>qqbRD_qgWmC>5CFK#IY`HpU$)c37+(RZxX1?|N7+RU{7RnsmiCFN}+S-4+W zr*8$o*+(~=C<5S}07tZI9th665%l%dHK^wXxB<8u8Em{W2s;yiyGIi4g@8 zwaoKl1CR$iA-_)F=_q85R{~eg-;UZX<*?M3$&muCYzc56T8f`5A&6DNIgY4`Ts@ch zy>{EM?hy$H&a|mFV@jJ3HOMwo$+qSPZRXXA>ra|Eb)u0{ywz119|yn<{ru}jo<1RHFZS#bd-O@OUz$a zqJFL^_w@VU@HjK})eP>%8yB2`jLtV%hsd|B6unkIFw6X^SM!KrxRxM6YiWty&jjxl^dmU=egtnRm*pF{#`u|Kz}c7YN!s-<<_7j` zX+fSkXdqhrOD(!(N3CI4i5pp8^~%2qh2IB)V&96S$FE_Lkg$14Tfi5X;;HAjEjs6D z7dm$1nOLf8d$JTq0mr*Wg7Xm7ZZ4F;2GQ`v{)PT|sW#_s51LJ7cR=#`jlPEK+eyVs z!D?s=@0_-3q_#+zz~bkg>%gJtE`R-}zrLGCivTs9hTYt80dsi6Rbf==mqHm}YQRA= z_}RK-FB*FJ6mG4X~PiKcvJ1fUD={NcKW`I^3VaHF^&sMh<;y<}dPgQjy{Yg4;V z4X^-$O#R~S{aIOqF=|$`mMwj;W+GUBzD4_MWW09bHXn2>97yUJ6)ws+ls~lJ{~CFGwvbGH zd7O(=-s@^WBUf0;%USPQ{(8DXQ&Bm{;Skngu>@4;;=kecW!wGAZLX9Z0GZaoBpaN3(;8gyl0A&>!WVS3ra{ZqbDu z%%>Dw#+gVvKac&M4c~1Ms1Y5K=3n%ryh|s{niIS`_%K0;CS>Fg+@Uw#jg47*WCt)| zL8%FGRHo(Wh1ugrZ(!96zn*S~O-;Wp#Bh*xaKhs(Cha%@BNk5WU_y0Gx973H+=p2W z)2q8uA7JIzE;f*dU6e&}x40b7HVh_~Iwv8HGbB32N7*+_jXLrbFRMz2(vnV`_Mr#m zEc4n6F=9h~6=Fbob>!RY-Di+ts!d6j*JGLgfdcDs(&@~u?zUDz>3;y7M$gAf_QjXY zvv1Kv@2tmf^s6m^@ak*IPVTrycE6GZHT2K-qY4uJIvhYd74gZtb#Yr{OoWYxaWEFa zfwE^)os1Jc@4jvd?F_QsQ0-40lz>0MPG)emoLuP5-+Q2N+s?8!nhMyB?yfGn zTQP&NV79qK4q@`EbA6Y>xQy$ORqlochR_S^LMKuC zrpajIPTkp}2SV$CwWJmIkEpAxT~!W~{3F*~>tx^m8PNZVc;mVE+1_=&W2g>BSX(*Q zU9~+0^7X64xxGJGd@~{ax}e^$ST$2pWjssF1cFWY0=RUl+e7EAk{jZH2C6wK?tVX_ z?6t}~2Y99bho@#dI_`JO$<=ej$Idn7vEf9CB)k=4eMuMSc7pfseNE~Y-68oZt9-5xQxrr%Qb3R{5dmqX5$OiW5mJ%^5s(f=q`N`7r6fm# zw1mJ$Zgkh^uK#oUyxq(5IlF%+uJgV4LGe^slZ5Byh4bvGAMxeL;lR&d`)z?KI(Y9b zOlm(u_J-HxKSas*e95xpcD<9*S*PAFd^Dwg$JGt+0cOL6Wz+7A3Ft{d!~|>!E2lp8EstrUaJ`*e8p}(SZ>iPIV)QURpml-Bkm-uEw%RrQ z*lctSxX8inApz^&#?~>ouUmv;L_~0$ECR|+({Tjp-H$3G@Nioe$*j`vr&C0JtnPk^ zQkMQDw(00-IrhPi!2KO1eYnSHH~WPo2n?893CNDKz!5IN`?KKl78rx+GJzY8KaBAMHaBs< zcUXg&NW$+;$p>%FMbu&uys3XHokErq1#XVtpJ>d7zMzki`U=z4vKVtXA;ZSge-%6X zAEYOf3~vD~JMJ1Q7pxtI{zE)-PY!(mHo816;P8k6&&iJWqK<|7Q6yLv;T3dYcn(EUa!y_N)}xNKZ1OT-S>^zF{nw5LYggo?d`);1;Z6$Mf~~xA4n0+u}u9` z0uFgNc_MYUgWBor=PHrJH>Aut9Rp_gv1E)5tF`Q>Y`U8D_OT$6YOMq zI!PEj(9voFCc zdhyM_5}h23L17L{G#m;6J37wXfT4>Q91yhxlFZX3Opia}`P7`r8_|-ICh_urkpTd^ z1w=on(eukzT2>P^5_r#;PqX)6&G#Lje#{OtslVx-sif)O@dUMxJjHKMi$o&WglhX-X2O!_DnMfX6;yBW8=yxb1maco|GqbiuanLKXLa?a7>Vnz1vdk)+x+W z7x4PR)tVk0aAa8Et0 zDzmf6fBa6<$V3QnY$8nUv1?1JJ+_@5-X61WwKi)Nw$$wlG{0=eH&~tASW~J+wdhL zlJ;+nks6iZ=E#Y}-NWTBUIifje-xXjW1+|xz3|{_VFardZ}Na<#`8lQ#i?s}$*O|e zgD%D8hF)J_7EbsJ{X5@ACqiJ*nxUzwO0?}tC6xQ*0Y)BdHWc7O?(eJci{lztLuxs| z1?6v;?ROf79S@3FhM96e;$chiW+(bG za}snfLhoM-lqjeMnI@1^pUGg=?6-_sH+gn^>oNf4vBYm&YbEzE@*OQypf-&IMp-Vu zPuYRVR?m@gR`*ScXM-h3uqf3~AA{{H6K!*tjVUWZ1PBcw0DLG|JvmVBHJbdA`8I|y z;a`F&M|GqP2H-ugi*Y=SqG=fJer=Ac)L7P)co49Q>vS z_I5Mqo2*^pe%@B#cW|fidlt+rKyehKzb5lfo#A4R^fF5XN+6n-n|1!SmsRjohb)u1 z9kG^=?1*{vx!@eN2odZg?DvW>7>gbH1v1w7LaL13ob$TJlSI9c^GqK8XK&|P$~WR7*EDn z6wPEf_d^Z^&?Wx|X$hSAK%wz>yimr~d3hk)?en%%*7UE)t=Hmm>?39&dtBZsA{(Ah zcsA?sDZ3fkiQRq!)R8M*!2xV*GxeR{w1LY&&8%$wH{p}NB0n_ew^&~-AZqM%Y>3}d zxPAWd6{rd{=eF3Nw(WxbjMo~axZSD!r`tG3mdBMzk|5TGJ3KK7tcF8tJ-xhRS2 z^s$u)(Ub5YKzDrfx~BKC}Q6#KW$sXRXT<{shk@c5=L>O8ejhAMvG?n+%&B zr;g@Q^7Bv$Ba;HL4AoVi$_kAR*4Z~FYdPZymY$e^6>Z9~jh0V?7VxG27E0fc)+>~A zxl@X|pX;Hk(bl&L_z;w4^#`znJF5u(5|g4;YUZr@Odh=s=neuJoxbBZh z6Md)gBMtS2yNN$b-as)C7uXE7EXOYsok7lW)yK&CMY$Jstr?Si0~CMr2_>K1c^@i)JFUv%I__#$#a0W{&=VbM z+B8QB`8|z#FfV;mX8}}lk}3#|+H}L7N?olAHpf1ELr%*jqeb(=GwzLGZtg9iluGo}QK5>~*etQYV7I9i*&8uOGqc9_~XJ2=BCwF%@TMks(T6Lq(p&g|o zZ+pFMUS3G;9ck?fP@CYtFwlu6sLS_l)gA@0aWu(?2p+EA603;ur`}IRyqzL&zS#BY<#;%2=ODEDV z3@T%t5E!Z2>cZXm5K>(UMyXl%kW5B2CeR5=qd)Ei{K)biV>X~RQz+1DLVqzwk0AfWPyobUy13rfCjR}BbDWn%HpjTaN+w+9&W^Ked|cF zJ5&a$ns5DW^%2>YM4(UcWx`-9-`Jzf0=b*00{N!IMQnQf7P+yJNjGDz zA2yBpJ#hsRdpXg|M3;od>}Qj$E@1r;dak3!O5)wO{KGqUaxDu>V{B+XE`OtL2wzW+ ztGvv2!69&-%y=#n56tYyiOY+N+ow}c$3N~APEKh!7opvq%n|(W1Sii1Rt?{;8aoD)nFizO z4(lzNF;hld#yBVIEi5fX``x9Db&ZctoI*-J1pYsg`PJ1%GWnC&@>E{zlS9a9wLxau z9RDZz9cO$M!LFTE6En$?X&&P@)EQ%=_lHAwn=e+96p^KBDP+#!y~0)^x~ROmSjVTv z>ALSM8}_f|`ZEMYo@PvuP1H9X`24Oy{zzw1`p6b49WD*}b4XjF3Dvw<;Me~kW}BY~ zwm$|Ct$Ic&r+zLhzG;*{ZXut>EC3;%k-_1YOYoK%&-=7$0B7B{IEO-Sr@t@3)KEb9 zOuc4*FCo|Z;lvqyb9Kf!!K2X?>_502+ZL&iO9+>ZB+aq+_G%usZ6d|MYl^cV1-5Wr zo^h!s(3BR<{6%ju+qc_ffsL?JnG``XItCOR`943aT==A0;7X z)+H_duB4e>JSJKgfXe{HwCZuln6;-dQ^pft9rqiYGRQrNa98X~|JIOPdfr}U?+$t3 zLKlV}#%%ZT`#fhs+85GlchA;$VAFNYCyg;0@PP4!DrPXFtre%Ds`>!vy=JOp#>R%m60FctHzn+=t!O?H0wrv6xB581tQ zoa=QdxmwIzq*GKVx4$O9e>3~w0DpZ4uKU1^iM0E58T~%9wB~q1{s9?h1KYPWfd~NL+|g) zxE>!q)Yr158z~F}caHT)lptI92l8HRIs>NE<(@-69FrZ+m%-(nD;Gw~r}-WhlU&T8 zSgp1z1OoCr%2m;OdjZ>$_gB}inUj9mP`y*ipPH#i5*x4Y;2>ObbXF>wFHdpAPRN6L zz->jt(zexFw~@}~wJ**-PiTUvx6opsm+aUB<{A9*gR%8mW+cj;#Vm64!DKn%w1dNA zI8)_u7LHLfEk1Ite~PubgnLi(fa0v34#ZOLeck?0*sL+-3H0iOv?tbyrRiTqf#4@{ ze?(lgC6(C~9V^o%_lZmlTY`%7xTtIi=GgUxYbD)x9E>n1uYmg&0oT3n3`=64r9`Vp ziILp8B4X63Q7R!P)AN9Cf!5zVghi?TFlCe8%ow}!GGD%P(^Bza{cVb3FBJ`lXA0R^ zqTf?ROB=EcPa7gNN4CD*^h(JGU#`u4PyaBd(ndMpkMiPooZk|wHaF9jVGt z49^3&XyeLU8>l9R<=Y_3SsLL$q%Gz%#FbxM_EW0B`ZP;k^6SU_c+v$={Kjc}f!H%S);2cXQCD0$ zKP-7twVqNx`WVPi(0YCyiiE+UGL7qUjc;Jf5q0&^F3i4U(E~z}PiKvUTfe-2%ZF|o zV0tu_b-yNYyDPQW-GOz4e;b=Zu;K~B)8f7da?zMPjF4`AknO&X{&2B?Wu;(WX_2cp(k`^<};c{mW z?@`J;`1xi*w@c^JEwGi`TX)=>@ZjB+XPS}iLsV3leY8Spd+Z1821wFun>UPJ1a0b# z?fs4p_f}%on|r*K_8gS$CgTkI36X6y7|aidYOoUFD_LCpqJ_Fu90#Lhc8A8Y{pXIP z*ItMkwTJF)st0Z1*9OQrxg}i5Dp|8w6$#Y)`-6`J-iuC}563PMw|7d0KVq}p)x)^|w!_2{)!{=iL1Io=JE+Qf%%(BD4z(eZH~jko@88L4x< z#9q@a^I?-Y$168Jr|UrZ%msooIg)cL)i0boocYiuCaYhl823%GUk&QYCDbtI=Q4wK z3?Cr-H`I&sJ8i}8ZtaL|W1jjj{pPA)t*!fOVV^pBKHEPrudkO+c@JyPtw^W-8NP^1 zU<|v`ydAt{Ij8Zt*T@`p_prOt5$VL3Fy`6?by@^4a;32;AUw-o8G# zyOmUzLH{?z^5@X&)PBB4D@3wFLa}$`+U@xRnZ27FZ6SwgSHaCJ?_DtB%;N%j$)tWH zw&l?T{e#Wq#x zO5aVV5K#22d$~?Ss%gPys`G)J#9j9m3Y0&^PQ`Lc#+k+k_o|&uPvwYg>yZHFPcH}Go~irTe5i*un2*%F3jC%O z#kF@1zn5F78V)8Q>ayW=*8N_ zZFK)1W z`I%>HR;zO2ne;~m3Bbj#+m~LnG;%hKF0X2cRHFXUNMD#;%!FJ-Fu}BR6U8*`x=EqX zfFO9>wN2tgp(c~b0e%*0C3iDP+AdQz3s<5l_8`q*62H-$;b*{ z?QKtHjY+V#{!$z6=4X^PCInf!Ui)3?^ztY(~Xel+~~?~;DDm{(iPKFxQOTTd^)|NM#a;so_pEoN)TlfJXBM-Cih?t3LngR z?~!oa8_s}&EbNKiB=4cgCQ5(r*Zof zA>6H0!%HIId%PhG|FUy@RyzXziS^%a`xT_@UbD>gyk7K3A(54CNYsfZ7(YnzuW`iR z^kqld3(S)e5)zoEQs2n#_A9Mcy)X5Z&%O8&d)HqiCKg-8$7m_)j{D?-+YVdt232cq z(bi?eMDb}DjPb#o6!A=T&9gg9_D<*-)vo*M(i!NqmHB&m?slExY{*)ZU=F7W8`A#j zmV)GduAE*L-4|K0PBTtFh&-|gDnjQUGM(csZKnYc7A-?pPV&E8N`DdNEOpeu)IJQ>j>liM-(bRWr8;>Ex#$J|MB6@IDpp~2|k zePm62I4U=a5p1#79!WHVcczQSopCnzzH7QmCNFi9Q^?(nl2C|?+3@ce`#QI#3D?Jm z8F*jn<+yXGlqb0K*puYo&|kRXO?56jS!)ulTyrv||MvQ51#(3E>qv)~B7`oX-YT zB^qlWn+7J-GuZNhZ9$CUD&0fbsP-sFKwo7UOW-%c<`(a7-)U&j2zd)I$z_5bZFS{Z zZ%0OKKF5}`G)Y}$({HIY6b`sFirN%d?^CozdkDcN=3hFVrlI_)1&4(B04tt%OZRV& zcA{yWq1%(=!T_7aXDTgm0&A7U+=-)x5onfUX;jL`%5$#K#qjd#3epxX%=f1Zm`g-K zI?nf8A=HnMlKGiC0y(mN9$1$?)^~n&J1(pknd?NSo5}E~S$z~@Bt?={+N@0ijZLZ& zw4N~C=5G4vA38G`;kf}1@DU&za32x zXN?jlnsr>q?;4nu%1<@H48)J}^BXB-ML*Ox=Rz3m|VAEa(>O!?13 z$!EBKc}0cQr#UoXrYYteIIIb_l6^zj>^i#o$iuA5u|F$q1Z^uk{hUD%Y)6%se-fhJ zEB0f%f#}K$(OcNL7(92T?lK|pq&;KQ{8cQDSZht)gk8eqwH)v4@7E|4P}_{0vidUw zDW&N+{j{^b{QM(qeOigsLQ(D&6C(X1+*qQKLiZs|^ffO=C>kF!01%;q0u2YS;~3d> zRV4o@>4Wt}mZ-*j5sd~%(s_VIvkqa6%a{MeigotD3!tL!OeVScKDVeslp$b(eGj+_ zgE5xCD0pnt+4%)|+kS+*CAF5F^Lh$(h+szZXpwCgaUFu+%a3yguz9woyz?&|y)|c5 zTOT2pkr+mpwEmm7XNiW@*|+hKJ>L0F^1Yl*UIMvyWAf3=osVMO)UB)77u+LO(V3X- z1=wm;yu&-T0s;ZEs19N8ijU^wuFxztcnr2>(7106MtGW&+{nw2-JLu4W+<=l>{p-2 z!Wp<9%1< zw})FqG{(jh9P_OAJ+Ni2#D->nUEm$hj6vXTe4O=Q_MlNKQ3+4|+e!HA1k4Ncn)&Qq zRA_o~i*4~)?rH?d?PgtSIh5lB9G@R=zcM(2D(834#tg_8PNL!&-9=Or%AW|pj5j<^ z53>d<{i=Xl?ouTtqN>^rfPLY_v)+UV|c(lEOJ8TsY9vsB5n_w8s+?q>YUa4uSu;vzBRQ(3Q#PbvI9TuCdzYzKl;&Gtb+(1i;%tr2H z*|pf*iCo$pPK;427g5Jb2Mg!o5f@#mjC}98Po=q!DrTkf>a3fIaqDBIwo`*&Dp}Fb zRKj5esl=i*g^H{kKevve#OL(BTL#nqWIrX6%ZCn>+ui4086$PAZ33&rKCu>{l@J8e z*>KVdyDrpLv2HCcGFGHriW0>wt)1O9ENL;u{C^cA+mNwZTa+lcO$m_ii zFtl~JwtDup|2~Xr9&EARe2&M8nA)}BT1)FbD^x_@OBGDSwO%v5`VyIoOf}L{r{Mja zYn=%G*9u8}8Cx^Hdwyp#z*xq3My$q{b{|FahEsG+K^}EQsA=R`Ym|vQlk$)RL5J$-h54keWTkC^Xs~T`c-co1Q1sy|BH`SX_+}9CrxiW)I`Pi zOIeol)qoq_L`s1iCjct%$81M6{^d1;2_BpNICTJD4V!8uo{8EMAMsams2AU04IgL# z>YW2^=)SfwZ~OdIoG#fhbc?}X-^+Zz0OeEIty|{&QKcZI;7>E!5Fa=9c5A&>cum3E z$QO{y2S<^NoMd&91M0nS(f@+YY|GqF8M9S3_7p4A)4|rQPm4v0ajChMYX$w-7 zXpWDlSj|{LnAl1?)`zTM;eb`~)#`s^p_93<#b1pPd%0l!=FfLMl0cjR7q89HPC!jiOS zp^mfJm^X-=S4?3Ro@=H34eP6~(*9>?(RW<9Sa~qEikzPelk9yM+(!DxMm0Prt`{ z69fk7k|5i{mnU)>Jer~2DC1O%(c>C%3(a3Qe{r;N=D-CqR?)0X&c?{i_qj#yVh2;o zV0nps(nzz!leRi!Bx`&`Ig><}kBz14D6IE;vuNkL)|Buq3u=>$Tz-@J zC_;Vorl&oLQZXYicKhtT2SjSiwIsam97?eyq&gEnE=Ff1`JQJ3Ewds7>P!*vo~NhB z$MGGlVO`aAhtRQ>N>zj?qXb+a_Wi`m5rOc|PyU_);s})3LljI)i@nHb{`mlmSfT~) zs8+_ON}|SoK;AfK|Fp{mJ>H4E1JGgiE^CBbwZJn)(}0*W6e~WO&cs%4*^zpS(C=q9 zeE;BnZhftY6kq_e{BU+JP;hiykL?&x5s5{(cFeG44cjtvFLO#Aqs1CoHN6dF z_4PIX4mc8%m|2F#+n$w5gcQ3Hyx}H*%7BZUu#$zjx04gg>#h=AQ-EMAe7Q?Vi2Ad* zN5E%1GegMFoXcfWk8_mmz$r>$UWKcp0@ae_0uINa3OD1&g@)Y}U&`>Gg_PPcH20M+ zNwh$KlI(i3ZsHX6ID4#?LPcj!-Gqn!hbbm=1l*z9+?ssjl!cdGB+k*#m=Ty*ZoY>q=Gi3=Ukd9u07Opnj*w zmV&CPJKNp&)t+h9g@q-x1+kl%trEKa7;5!@|48STN7|NaD)U`@7f1n);}NDHWkj}q z#b|R_*p=(WtQvJ1%};1;Q2VJY>H$)BV&o#ki}+>(=UkFDCF`CLdB(%4!?JWh2N0n3 z7Q%8;@S#AaD$#NLPF&U>KZCjlhD0nRt%WmeIBlzbokMp{6o3<5m+?KvSg0?*UX-a6gIrcs%fsjL4}(NaY(lvX`Z8>4A3`(wxyYq;`ctMUD1?s@HY2i z%`at=$|kaa*VlIA2opASS`qea^5*%0LXm9})nr`uh62rOOYq^Ed(ZSeqp6Hz zV-v1QAM&ugc9%5jxRBkfHGb2X8yi$)K5f+f)}(xB?p%pa>eB7~i*z+`AFGa4;h3aU z7uRV_N#G?CB|t8fqU5%YEaOI%UQ<|1oPH|3EXd0p4qdRwYnwGuRBGdBpZGrUKv#QW zG>r2Yhc`i@19F@nI)Uy?Eb{?336qnXYu!&f*Wr#*dw}3EX#5avWc7~Iv7)aBFkwV; zA9_C3vWG?d_(xBkwQ+M~OR=Q>f0VRp`f_6l&*fbaNoI@SxoceL=>(})8LCF4d|95) zftt42z31uEcVVSE1w?J|T5-;nq<0hAWyidtXdB?n3FzpWLvGwr6$>QAYJ^!lhDMTt z@l07a_t|Yk&5MSu9Q>;IOElKIvdk#3eui>8^uUW)!}29ve1sR4plQD5IyA%JJQ*0l zZWnOU$%JshUK~8#BSLLc6pL*sZJ!`H^MG6j%j7jJC_Q-N=2IB$?h;2qRs{XlyF_Dbn(WKji|ci6mNb}4aIXLm};5bjM8mwivpuSI9vRoBkS(s-C!l&ZDxq2;A;ZWTIkMqgn;(Hnc3=2)`#Gkb!X@dZ{ycb0) zl%XH~1xc6K@mgTg$NXJF8RiAG?dBQNYPyIyDtPqTs7MV)O2DL8)7@o@vztdVrha$8 zRj3Q^Jaxgtmj-WD&DB8=V~V`ca&+a$BueH_r)93MuI$p~eJfZWcGWwV>H1Mrrl=qy zug3)@=xg!sw%v5*3MoLKD8>)95mspo`|en6I1i0V=~WpDg@BW4nZVKv%Kdhs^1{LJ zSA#*5sk)7|`+;dTjV>ilMO*azF@JeGw633fIjgiBs6W{gV(%&#NEmca68)Xjx)u_>@9l z@4Tp_8I18RuXLGFD-*x{53-})_T8JS%v=4Uh?%a1{$vgK6n8toYSOu8HT9`?CWR)p z2R_dnUrjUY!;&kjzS#;7>SN!|r|7HMKkD!&_Zl$4nHEgQ7oMHlqJOQ>V+6eAPS?U- z)9(x9*b0@7Y@gA0J2^@WhKiWa{h+Vi2mi_$uuf9l6g_{^yGQQ`u8N}6;E^K#Tqko< zzqF|2^eil9JI#Z4E)z2PxLLX^v1Xh;`hxs0yl0edsdrhqwoaVBK22|8w5(>8)+hYe zQ;zx*P&L02uh}c#IwY&Ba(rQvBpsq#2^OkOf0odj9rcKsp;sZxf!~=D{2Bqu4sYK<4q{Ow3k?6 z|8HRjM=hDI;)*RS$*d88*DDrNVNxeBs5NYZiOZx{q!N=kKy;y&5cL*edeUa%2f=pHRAA zV`4YC%=(%e)B3?xd@g>irfxs~M-s)Yaplj!oTUlVu4p$DPEpp~Db%^<9|4-TDXwYl z=Ba;o9Q4q2d~+#KElO$A=$ zS}ro7S=q#Jf=-aUY?VfE<9%OC@M+dvM0c~a6IXUg3jdApopn7Axiif(bd;jFAI*GV zJdIFi_a}!k+3_QaIvhkWi5i8m+S5n;7&Zk{`ntGpiG0`3Z7eduVW*_KpEN;^O;n2a z@1wU5wm`FYejm!tNZ3+b`A zjb|-mFic_H=rPpPQeg5@tb2y(`OwXJ&Mo+FTPL0-u5BAfooUTO)4Rv6eEILN3?^of z)(RUZjsi;WG)WI4YA!G6XK`MgU@K{z($$1bZQ6o)DgwkPtxjyy0)#X$K5mY(HbO_{ zN~LClhuLK3%eI1zC5gd*5J$V;0zBSL3w6%5m>D;5;ClNYN%`A9V`xrUR-UqmkwMs# zjj6n<8XpJ!S~2@S=BALNQf&`VEWf@qCnC9I5!=(nb=yK=yQ}XQ zd*u+UCuBaM6=uMpk^Lb_$+P+=Mg^`VfdgR*lI0`J+S74pr7B1l`4 z*DJuf^L|a)nmFB%F1MG;HwL`LV&^+RXE-e^EmyoH#JL87G|!RovmnjKjqqz(EDA9- zV`qLwI)|niq8B^ZR87Tm#GW4D9EsAM(8CMniuXRix~BIWx!b|%&1Oe~Sv;z3+BeSt zF(sCOwH^qt?_0Q53e%0pEg1bj$Ej#gE>Rd#Vwb(umxu@Fg5s)NjzD- zMB|{r84p{jOLBP$9c_(=pp|sS=Ztg>c&Db(cLct&4{8xAdun_?7&=Oec9|!nyzXwO zqgL;e2ntnlN$Q5jB{*5;ZrT%0TP}Y17tJ;BeOzQ|y=@aY`Rh(IfP}Oe`4_BEHPczzBvd!VIKAH!fgnU8CftA zog-vi+hvI70wwt5*-Ll9zZ`bd=7R9soTbyLT`Qbcv1fN2Ea3aiIP#+gV!B#CE-IUI z&-!~o!Ue*v*{zdw?*V(4uRDno8xDv0$0nXG6Q^_dm5Fum-nvx5{8R4cAYZLPPctgEAi zeY15Y8`z9eG!o}4=Wq`*bmELQCp?8s{T7dqNsjAA4)6htE`L(*RQ`g}liSBx*f2lp z`RZ9KDQRkp*4nrRI!@(o$1bb!CX@XdJQetiE>>zE5ECGNpb=5K7h)_}%QEIgYjTU;#Orro^i3(@VEdmP3FI?jNP27%V zB8I&;YuWwQqvC;CnV572g^HdYSgO0STvo{4c#*S2I;Azs?H1BPX8#?n0o!R|2vIZ_MpduJ%PjC0U|$I4{#2l?@cEbn)qbkraN`6B z*&^1>T+8~C%)DC;%AYpjSf7|^ztMrY@h~ZYV;4zn2~=?7`1DDn^)M6vwu-3H^X*%v z7>AwRcgt$g7+}JLn?qUNti1Qr);SF(IP%R$eC7QR~Xfye$>uQk2rFRhPg4vBh71t=oSwETp2xg8gt=!jtna6GsswPy^GsJWKSD+DI0dfBJP zYyMPimis?jYHLbLw$4^4zjYGer;n=;|E35uv_%a@2$pc~<{^P~yR6tFADhu>>BS<8 zma%*lE6wz`b)f+yk~dCK2KH3$39@ZV?Bs_No1f}PXsYDsH&h^k9Ng6}C%vWF>oTUR z8eIZ-1}MyIdR5c9Id8Ik53NzcQG$Q6UMo2Lo%u`_4K+MZ`CIYR@B#mo4(ifp>URQ8 zVJ%~~(-Jy_bH@^}bL}6*zA9K`R^9sUPa~AF?12-Dov=7#Z`Wk%&urr8N#!>2&c^d8 z-l>;5Q)|mN%%`?FN3FMeH*lw$pe*dsnnIC?-xoO~Zhubr<7TA``Gv(}$Orxm$9NUJ z1Hd(wTM(-x{?ZmYVdtF1V1OGJkN`lCTOh;2{w$rm<=Ez;Vyur_0pZ|~r zWQ!m7y{|u@_OstQqgBmxK+~xrZV6cv;Nf!vn)B0G|P>?;b&=J1EuwQqGN9QQSOqsdF}(EJx29}qP3A1CjFZK~4c;cEBZ;XAvK zlRP*w_pR`HFpJXpF49HN{&TbDXSO+iYJ#Lw4sOsWIeZ#f z!kj9boI6w{uc~87*BRLv%84mFAQqmhdKcooo7&tKSOwwELN#yC&he+P@;Z1sXBzGAM{DGDaLaLGJbWnoDQ=I{A%{L+NweI2Bx-gS z#VwL7%(R|t$6-{b?G_C;8|})gON=vlapKM7(T&9ggWC%m_gnH*irl|_V6T9wV)}eq z?sMqNEK*z5x456A>!`ET#B$M+-i!c*aU``LZj4`1zeBB8_Ns#UC!rUrp6@S5A4emm zUFV7W%v!!hyZrgS;^yQ}TCJ%RF*7Uj>wX<`o;F)x7IMwg?tWaQ# z&sSj%`1ZF$X+}(%6U=dnzrsE0c)Hw}2PW@*CaaQWi&)`}b%}b!yUJD8gOl7+sS-+^ zN%40lHUfk&nB(5{i+}qwc0|$vP2VX0n@jTOhS=BhYu|+aRb&r8#C6qIBHk0(d~TQV z@d9SHH#s7y_OWStQ9x{yiE`6f_lCQ76@ZEr^Y-kSF#+k@sGX>fqG?T2J?8%kGNgPf z(KiEqhL%aE)fp3mPx@*_fbbu%b4#g}x9QOMxBBy(1+SvuA8N2&{AO^jM3GeP=xR4& zX2-c|=CA%^u))Y&+y`5a?1~xV2&t!EIM|P@> zr!B9@c`Eh!n<|5xrVz{&87~r6k7U#HZT1e)h96nNMtzDP?kfk)J^Idh?jA`lx`N9O z4gDUmThu3YQ&uA|6Z7%`#Kxcq&m+Em>&8FH>z=x>f#MJh$)o3fioow|s>c~a%os8$ zVF%^V*IY>+mRFdqG11?$X5lDtbW@yS`v+(wPVLsWFp(q=Yx<@XwDhDb0I)+fEYHaJ zbQRt$IuJsXxkv`*s|d_iqJEINXXrRip#&t03@NLAjoMOEeqwk~xf zbK3{(N^JnsutOBwH*F_#|9%Mo%Z3DkwuH!!Nf|Up_XQ-_$#X%C~ zx2&z)ZB1L@;I<4gQmIfCVZ<^nXP0*e^Dclcpr@I?a^k&#Q+=s2dA_!VRT~N{p%DX4 zVE8?kaZ5Xzc4eg=eUtlnelAKIX9SF@?(NUE)Fl;mFpvE{HnLIs~iugy*+Xv+lzz=|l-{M!^lqm&IamC>Qk77GIf7 zxq&(!2;1|kzKBZL2p0e3wH0#PTr+sv$%}3~NAgdJPtEVgp8J<|$A_AcQ?QX>18YZs z$M`h#(RJ3oE+bLXBO0a33xDpH&t#ystW=n>As&-sF>rs-JD2$H2zya{I z#>_++vvcpQHhc&FvpR~eeIB|(>NKTVS3|PE;SriQa{MX}S-SgZGJ_{s`(S`n$*Wi< z3yRtlb}@#XOIS6w)X@1!bj^)Hs`?x62Ut@*5uV6WLy5N6C(T%mXb=Se1ZP%)D}jmj zoryWAqjuo-f*oYJFPH)AAdoY`*E7=p(I9=zpZKeHar^ZNr*d!cya{)T9j%0y{lD+0 z%4@$xN;Z=TX6q9+R&3BsFYt{PC+cXn{GN10xGb7oEmi-pbohV9r4gc>msDIpB>T*u z)Bz#dy|VO3PR-?R3O^KlcLL@6L-tB!G)he54o339g!6g-&WuqAf5a2H^m_+Ca+lMy zwDugzMcsU!60uFySgA28ZM$|b(B@8tT6WHyBTjbg6%aK8vPUBdU8?EhHkS$e6AqJa zM$FO=yki-hws8bau77n|8LvH@OuhJVJ?9T z&0xjZ?2wvR@)H(g7Hzudw;P~>9QA(b2X}Sj_&Erer47_yt#W;ACh88{KlDIv36;FAt6SUFKIP53%VUO?{qkvpcAFP#5_IBf6Q)Bc9bnSbQ1 z&fYuTREFYSLtPvy22*9D{fA+~PxI>6t!d*E0V2X~7z0z34O2t*5n6h_{5M%IY%+5H zy9*T&yzNKYPpOu06N~zcTi{;^clgF{PL1fy~MAWEVaAxXqzt|>NQ8<7y#02$xqwV7?M)8&MuH>S_;e|3o87; z^c+aAHQkI+-hcl^v-Yb5-js@45x-|azI%pGF&1yTUsKe-TqEsRzOs7fcb;k(fMqku z^f5f+n-@aQK$O(4L#m?kSL~kyn($=~;f&)(SYx~&v0Wh7LSuNTj@AzaG7wE9|4ID; z%i@H9K9!hwx4#$1V!-n&FLf-Pe#gg#wQKon)~GkWw-eg`O5PE%=SqJ-wz)IPgNOO} zweEn>2p91apBAuQJgs;#H(+PScKRX3Y{^AImgyfiA^zsgLG4vc_CK*sp;F%u{EkS_ z6D;|YU*5tDWx!cjhELhgFt4U2=bA4_FU?uQx(Ewzk!-BeS;;wP#jp^0F^^+1elX(PK%mofZA}jkkOlPvulz%}a-jCGAMl z;5muiGKiA<(fR3_Z84JnNs=Qvn^JNcO?#f#25_)EHmL&eG%Nd(`?IqRsCSQq1StMT z(s?*i{r!KORFpj;TV~=~S=qAp3UQ5OUR;vBlfAP;_O6h5ZDmL1wXePR9@qT*j_>a; zz{@%3ea`Fod_5oMkR_GFoQ+7U5vWzyLu8StYWO60e%cG}FGX&r->BAR6iP=%z78Z-^_57h?7bBl)uLju zTwLxz=o!5bKFj~qztk6QA8(#-bLnyS_B2nDtivbKxM}tglgxcST)jE*50>yXkkH=? z!}Y9$tMcqpJ&DNsIdxBceZYs_3?ZRr)&lpNSeq95gCo`=cVcGsK+?){@cJ~_BHoN8 zPt8F+WvTC=NcrOPCsu8DQ>9o1zTgq02f%S|Ox5$!ec<8L^@$}J>iB3%AO`fDrbVK! z{mcxyEP>Qj-6!L?=>6>b7GC8RV))|YlyOwpUFUYt(sA)E{_NbWseZx@T|cressb*-g{bf*W6tC`JD7+>TH{iL zbYhZ!9dMBtFdxnpe>WGTqhSc=+Cj^i0f?^279aYvoiVp+7_9{PmH60f!(yC>gO7VY ztQAp%nQaqzMWLGHgM4vJWHynd12Q8ReNs6G;fenI*m%3N#WJv_Qt zif^x|ob2LfX%h>U#s`YG^V?e=n|ZZirv zzJ_sy=Q~6W<0mu&DxQ41?%43+C96HFT^kmdC*s>8nY*Xmy8!o~aR*V{bBr3h{Z7Y4 zzg6)I2ai&;hHjo?)F2W}nzG)EDIs@C6*GIxiDy9LR=WxjBk-CzYSP0s0OD-*A!0eZ z@VC{WZ$|}xbipRoyIC@lsGlV_WBmNx9s1UN-ny{?@$`AtoTHZj^|HA=D9*LkmJkn##PHLOe;I!z5>pH#413emL+$N5hu@ZS zWs4?ercbA6rV&2qJcCQHw2bFDa;d$>OmUHz`!;kRX$199?p5Pfb=(z~KfM2))u@;G zb}J2Dh4PT^u%(DXP?hD-O~DJ|`9Xm~NlnfxYA4_TeT?-20_`!Aor z3l)ZO|8lfu_*nHm!AG_Jtlofb=?Jbc+uP6q^ePXm$o%y{vK!r6?18pj>PkV zp?MF6tG~2(d~qf=8?~NG-n$iMRil1gE66*?6S23)o$BuIae3#Rz=z>^5r!_RT9C7-EJQT{e5n13dJ5kG={ghU}t25NXFW7yM?Ql-X9NVw$h?JlBahp+S#roPWlB1 zA}J3E>J0JKo_;ql@)=GPf4Y|OAfvgoa$97ZwaCc}SI&-S`fN|KRH5kE1QXS5Q=2yn zD^}qQZT@ne<~=A>qQuGR$M%CA$gYu^H7TB)NY*^ye1Ln1a;pL{XBmPTD`7dsA-Z~RAeP5sZMC)6uw1oNr z#T9OYDf3>>AY5PB9G06)@D3d zB%U?;bNt+YUx4LwwKd3G1X_%nzAwQ_zYfG<_v zl5qCTrFPd@CUK<@NwvFIW`1BlqLGs4??%f>3i*)7i~0U9T;=6hYpB`R^CDQ+!ucV+ z(_O=^zOaNhbtk}HqKZucWgU67h4r`$w(7}vQ;~L4mGU4>aRXkMd#Al zm@*#oIxvT^>OsPHl}3gig1Zj_&^l#~7KhQhHPJucIl#)D09u48|k-e;QWCVd>mib`G zDf@Pi-{J&)3Dlbyy7)5NG4+A)AYeBQ!-o*Qa3z?UAG5DBn)hI#kQ z2sDI{|9snJ@6cjXOBbzNtJmOLJXTX^thaY6)&pO8>TM0|c9ua*`atUIU~zyyeX5@N z!R?pXa4|+DLI?@0pwvJ0`mg&`JhAuIb#^yporI!YvAus!y9ER?>r5X~e(}d4Lz#+p zMnlF{`Yj7#b&o7X4#oUFU25kfbn3_EZH8WvDh2xu(^G~me-GT3!gcjziz*EzF|?zE0jTjlGFg(~wZN`LwO1o4sey6yaIiRa<_QYdsxi~p-4J2{VV;M< z8E!^5e4E+rOObj3K5|PG&_xg|Bigc#)n8E2<{u6ca7N6>`jRqQA7f1!!1o^eH z`QATUyQ{C)0@kd7*>NRv!pG)rM*lQ?=pAgSQ9Vuk?~y0PSX=h<)(zm4<0^{o-|bg% zrjfWG#OxFe?I4afZ~3&^oB10Ya*Hfkft)=tiu_M z*#Jx&ctz6c;lok-%NN~1W47=yNN4{pM{dBi9u$Tt zq&R_X{D!H}X$~Yctu+wYTyj2geo{wlWCX=iTD^-9wP-R{zTk&EBp>15PPjsa-P*KY zCa5(xBMy$`ifqmn=6mL?8d^SC)QLGreE!5T%9V4lnzvy>4~~P3VTt#mc>k2PUT(0X zeqPgB4Yf17UnXbgzD~j7#><*jj@f;8Ktug3+SQb(ONnBLra}irHSl9DCsn}1{wCludIgO{D9m`psK>a%8rm$K3~ zCcm7gORP=a_I3mlT@+zBEfK50uH#&j=QLab(KdY&?kcXQ<7iey6lwOM?s$1Oa8n8& zfso*7PTto#=AWe!IELpVgku!w+hdho&iT;Wnjy0~J6@#RDdMx=cXgQxebM=0k`d)B zzpDLrd>MNljl8@qooEQ$S5Mn?g^mvKKS#+U%bd6yag&{Es&<+kDVJ>ifHE81dK*81jVb~CCTI?~mm1E_s$)ABk zq_>w&S%<`Z1Tjj!p(yM82KO_7#hG(s$8&A%)i~zhV>JM zKmZNy>3B>b$!^aC)ps*Hd7vkQwRX5t75ocLG&l4LPq40QOuli-HqD{~?RE)F~ zsu>6+5uafuLY;jjZ(o8hLtp?0lgrAn%6MLS;27!bt$9B!X?mm95oB!sDQ6Fi_7mlR^#vmL)=e8TR z*r(&^H@q!U&<0jtMQA{412Bq><6{Ry67)uATWcMT$!fv!Qvmnp?|LGZ1C>Z)yJNNd zg8WQ)198W4nM9J+^f+#$Svfj5MU&#kk%6jPHGv3KDPCGpv}F>AQB|$3W(aODdZg+9 z_?8UQO4gs+*zt>C%3`kKm0W6DICge^vZug$D8ThPB-#57dU}&Ae%k3C9p*rU8CSzG z@TrwiYXu#lJSnuEr~H+(k?;7U@3DoK-77d8U!9r4@+FhRg5uf zt)fo5*B3KpzC*8fg5VdTnS@}AM$Sxrt;Kt$5 zaMOP~q2gJq4W+5HMmudw-PbbkQ0GRND02%yS0>NgWf&>Nn>Rw*uQ)*)2_3$Q7&Uuk zEFsgtCNq>~A;|kD+Ps6W;Cxz|_ic}0A6|2nTF5vYmSQ-u`Ud&st0l6Gfcc$>IjR7I z)6m;aTcu>1Pa@UMVafaXs3n_8-K9?EBQd*I$+9BWA(c+fwjUb1?R5+}_Q@(bid2So zq>h#vXjGowK9N*ba6iN=&9lL_=%SD$RpmyWgF)@gOPB?#8ir> zNA#sv8f#K^xR3ba3RUz!N6TutTNF?Unik zFjv)45-HsdHgmdFc!;YeG;G~6%&r;q*?;UI)a@=6#AU8x1M{-1+2>3yf~vgCBxgWs zfYiiq6uaK|DKU&LI`Cik*+kFSiS^^yTlF!iK|!A$(y+g|kyr;{QXo69L<#}2-L zB4?Tg`*r&wTEda9!*d>`*IkL5X=-8jM7`rW4!zhfHSdS89agV-w!=(l9L(#hgteE^ zAo1P0&YyIUAj_O0DNp(~*4-DUolAuGlz+-+o~ZXyJusSDQF@)Z^6uS$wXN=*_4OA}`M5*4^M8(6CsTQ8~1d?gvOJFhfsT;r>J;2D=1 zy8k3pv+(Ot=b}w#!RH%<>0pwpx7~o|xx@@|xi<1oMas9b(j{?Jsb$S83!O11^w7PI zT0f$wnSQ?ct%lDJ?4WU3jHYK`!m>GSL*~leH2H0f@Bn_$JimQW4*w)4e5Z8@UjCOZ z57IO1Xwyz2&24`*{GchVkqfc(3KKbCo}l(^H-#xD`$3?pue|fl0)5SVmNVx*bo*h%(-Iv%tw z_OOefNK2lJ*qCSN{+sj1u-;@7lCS|}>1|PQF}~vm$x)S!mW#sDY7;`^k+>h|DB5x4 zG)-m6EsY<4+~&b%-j#-FGDO*~;1~jT3TH@}2M-+lpMLaM#)nu5Gx8f3BhLzMi-h-alwi~2=oehvG)B7F;0muhID=YOsGu^SvU$4z~7 z0on41!cll#W9({T_iXy6>>4-0?@QLt>gE1UR~svd?{!ZxE_Ez2xe2<`+%hPpU6Uo$ z=5ic|6G1BOX@Cz|kp~qb{7u6BvrtZ=J3jN{iYbrRBul`_Z>%IGc+T_{JP&-v`XBE( zV%YL{e81fD)*wa+?d_)a9KF4ndJ@oM_6NJ-&v)WUnf#p5)B5*g4i5Uh1;3ugKN2Tw z7Q}s7j9KOpuN&VcrB%JD&H|2jj5Ep4l9g-ChwJU5J!(Smt35ovYX~YhaWF0=DR!rC1v75;O7t0<3zqk6FQBzf*9m}*VI$PJChCc*?fmXHOb z^Mf(-ebjUxFt$W8F$RB?V;oHEf*)zjhp*8=2OfJtSsiX)ep-!mt2Alu2Gna?2QXp1 z`t!bZq(v8-`$byyz3Pb9kN7$8+2z~}M8nCv(p^MOvo5W^Tl^4>&yG-x`?TGmt|DW7oN z_p>XBV5c>U(c`O|KXRC9oPR8M-Mkb#?Y)GE^n2Qpo+q;yxP0Z|@UV1IR?@n$H$T4H z$r2`3u-fsAVE$Xm0MiS*u~rLw$)zaMhr2F=v|AH{C4W6x`jm?C`thS8f*F#+W(-XG z9lusR|4>iuR*bD%1~bg+p1;2(NpPA$GXMIsWrTslNo1h6BiF=S2>VKiB(Jn|y`k{z zTROo+_v@3JTz_*^Y@pDDAJDR~!>?H!d7w}f&a@EXOYt)Yrj=)e^_Y5=X4M%5wfdX4 zRo`t5UC$E0-3HsBIL@J`d353d$!I%!??*n>T$cTII?)IcJ3qR5Q)0AWpQ;9lQO|>z zN|u^9ctGY8=cn$P@fl@7I}n7hu$U(HQdeIrZLfeh^xTj3gSoX%t!5v{u?{cWZ?f%s z5Swz7P=rag`+V~D?a8TdIrOH)A3TkTuKCfezKb`?ZN{Q)FLyHs^*_CTNzL_ofiy(> zF_EXJj5%KZ1y@e-jNNCzDfpyPH0_@|GxwTD*UQ0P^PUPPq5_Ojzj=u=%o6j>US?_) zze46`&dY{gVYTm#%x&FQ;?CsDHCc8yQ*z?itc5M^6K0P)>{j-R`Ey1UmH8!BJUNJt zN^|%I`ovy^`C{`gbOC&R_RSC`Y3G70NpyQhif3*8+kuS`ulMn|l4x1Qae*$5aw&~C z8a6L7ko;XxebmH8x|LGN*-(~8AAjll`)_dLyGx|K{mMuYSgDbwR==8SBpWJH)|52Q z*FI6x#XF>5nRld{*P5M05<5)3pY~Fq_4slCZ@#pmN zLKb8K0$sZwIh|!q>T$|0Ha)kWzX){uDwf1IT^;#uz6d}y?n+sQBjO-&Vm!!_@y(Cs z;F?LlzWT4{@`c3gh_* zEYht%=5|+}%4)C=jY0PDX02}SzdR1GR@G$~`4*Vif?YQGO9ci>zT0B;6Ib3IQa1#u zRlW6LC$-g&e{^arCsz2Yj^_6rz7lJ!RD#h*=K#B%de+}~Y;SLeJ96Wp!E(ffHlNry zf~2REnfkYa-Tx(Z1%HYJ_~vEb-cu6=|X^%uBtue zhrNNf`+weO5}+36+hW7!YnqGSE+YINZ|WV1|Fo@`=11ITcrKVt_%bM#``JcheRp4` zWamT+WK<0H9X9=s{75qN-z7oOO%9EYa=OePwtq65@vLt-Q{NY8{=ok(-`%z!1DYv5 z6y*Z{VFWhGxGzE;fBa{Sc)MP6Ec};8xs=kpM&4~5gCHq=i9U?<`rTnh(th~EqLM#? zIaM7Z{fQNMf8mMrjcNhfQn{)m%157G1c`ovc%&?1$GBvLGzgZOhZ=X5MkP);>*{)W%cB|MB>aj4|4D}B)fvq74}Y;g>)6Z1hB*T5HA#IV zG4tz5F0RFa>9tzTXN9oEnaI0cC4RWwPyU|%5vq9?8Gfp!CRSxG{5M2>QldJ|w_<2T zf^kA+YKus4>{t4lz7FWZP?9J2b_0G98Sz;pro&9a#2VSLwPcjV?Zo(GXSPw)4_PPH z(+ys<4r4`@UcIlr0Z3yqtgEllr&I~vjxB(+X)OQ9W3H%8U))r(X!>-W)BO&-%dFFm zyZIhUKON?Ddho|TUM&!0E*tFC6u15o6MR&GjQ#32^uecUB6BVI>~gtNN7~YooWD+C zs?4#pOAxbbd0)xZlcy%KeU3iZ^_4w3*<)bpvA@UAy*@ERAOC|$v`s2&qoY7{&xOqS zMWfF9H2V8pj5YH&t;PRg>GxMC z$`WpF`abPR+ny4WaKb-YKFPTI>(@j^MfYMlQ98X?j8#%%5 zQ*d|iQ)~Z4c7;m4HsdF+b>jCDiLCXsOYv7x~`uIeg>Jv3V(oIH& zV~4cthQx5uO=_jm_VHt88dJh$GbUS z{@=7@pX^R2+z4|dJ}D>sry}Qxd7*T>L55K|Kj%@CH+&KwZvb0(Bom$gTI6_UH06Af zd(reU3AyxIzBXM^{ouN4Lu;BpoBXgDshoWq$B(c2BshbIyiZtm4$*$xJM@GTjYQ3U{?#*nuWfFgaHON%jio}1P;SBun(q$W!1`@dzPjhGI)+9+9J)Ii_S0?Y! zR>x=DI4GP&e}wIHkarqKTylizUeU5@#gWe|3xQJ0c3T8SCs&piU&SRc=qkg&#~Nqm z<96Bs?^X$0x`pPR4&^CXpQu^68f)Vc87YhpizQDM^|nV`jwPv4D80;X4f+bMXr}@r zc%S?d^w!_P=RwnO)>f{1mhRd5v=|eya{KoikX4lIPe04Dd%=hP$Y54yDf*TeNuR{h zmE*p&nTO<0HgMS$!{qyW6i0Nv=cH~IE@oNGOf1XUB%+RrOlPWoM%QwJ+Lc$Ch*TU} zAdz;MQycq-MZmOKAB`b#d-BR37p+K??^%KuD!ET{>#`j!k8JyePcQEV?U%(APIP$a zXg+C`>ise8zUd?#?VB;z2Q2Y^3BSZW&x$H)4w8O_jNQ(D-+ELZzvAGrdb@SYj}gu< zNoc>^(D2WMB`!*zpy=bS`16_?Q@l>r`tpad1`5aay%~M0Sz2<%f$e&MZ^vc?OI1*`?kRC>`k@zW2FxXRuc2}c&LcZ%FDy1acDxcECQCWn{>7>y=@H%1dI zHNlprpEeq(D^0dAJpVGx;5A?DDy9(mNLEF7{t4`;;*HoGLp;OICfhU_Y;()9sxtHc zG0%FFg5?sR4qTZxys#IjB14fIY`}@=01^+%-<3#(nBXOBcb6@$pz}G zM}x(M1_rch1rtrL1FA2u)87vZK5`mljO1{SW|_EtZBf%$YyZcN{hzkNGpeXUTnLq|Qp(onIe+sU$)!&=Tsr58tJ2W$$B^#~(j^>h$D=z4mM zKwWbzYIZ$u^`_Czl)7a~bDhg`TpYXoGxWA#_EzX;9>X0fIn~$0rC3M$U`wHRzDD-v49DB0%j8$HU%0b}T>{2RK&cO}O+#TJsG?T^YgH2^v828Ca8Vna(bv1f#De0B zAVc-HHFhTPN5BB6C!+~-ohQonW>?5~cPNN#a*k(z_R?c*$F`xx@?cnpT7uQ_x-sQ&~=r`(bzg z@8U=>)f-XhKa+3TO8)N4>G=`&5;mqih-a~mcw$lGNhTUprqLTN|6$g$}be2(NvKy5h{cl3<0?>oL6A{P+0!+wp+Vj_2!r9LLY^;1{_s?H290 z5pxZL;25lhLjNR?W$j!ITVf)g!Tmc#mqyL*{0OvnegtB`HLN-on`Q z_76#CHZu6e0Fp50%X!uy3hcBsHf5*M z;bLpOsn|YexzI=rj5b=VXs;FDw9UbOO7m{A9YYTt5r=QvKW!2DV)#7mUGu>FN8@%& z3>2u40w$v^giLRI*Mh^_Zzr7?gl5=*??uY0#cuq#=h`8StM}->c@3q#@2B3*WSZIL z;;Q}+gW+WVn6NDsKWyZ%3>~3^KZ7TQw4ly&5r34unPB&O%kXD;0c=BTn>lQiMeA;W z1!IFzLP!fJ#4JNkzXoa1RyxuO=f@aaTQfwkb_Et7;ywf|Ubjr1=E^2?9eD=cve404 zUO1F?QFxtow>*#E(jdzE1ta40g8zE!SPr?>12*NDwNJ!_32)679SKCbVYYa`jSf(v zQOL}td6gv4zOJ$1I(>H4&f%cLusvv|h^+ah(0)rBd!@XGwWi|H4!qw+S+=@YLLpC1 znjsSg89)D0!s_q=~dVxR(XzSvDf0(hij>LW2HnJMW74}u>*qHmuCUBvZa z?Ma1ZcbD_aJ!uWB^7m(N94nV}Wr^;Y`BlFexGgKlkxyLi5u)>CNA?HIIl5-@P8QZ(0-D; z9O+iG0&{n>D{PxmxR4G(5<+~mr6EU#l!K%23I(9xij4HRnlIRl8e&uRZ$)|+CakHg z$FRSIFD8n}CoUU|JD_~D6$N`j8%lDSYYt+#_F04)Y8H;tdKWCszFdOD7yYWh-%b)m z-w9uK@MQFHLcX@q1=2^q;_q3|8^2blUwzM2eeB>tduyiEZlA_ZwI61|;ZLVk{WoNz z_so9C<*%!@fU&Isf1hG#mL&=8UlG?oV6b7^&JnFTc(&F=ZcOlAPk0FqkeYnr&m)w4 z;Lok>(cbEkR&_>8uQMuS+S#I~3cqGhOK~*dMmil;#V&So^s|KzPF7EnqZB>?Od)&# zr~8l?MBey~vDOP+Gnvr4M)Y=2@_yh^_3s=kCDp+H7T9h=F8|s4ur4yBhfC!6VuZh+ zOh#&miQ))F)9)Fj{9at?QYR6Lb`%l((ry5#0X{E#?`je#b$>$71Sd+)=Bb^~g0#!X zb&thncL8VZ*&JpR=nm3%eED`URJ(B|q%Q86uej^;EHW}x?Y7iMED!d9?-}Sh0c{9E z2#Qj`cq$!zQs1@0RHcd4T4@ealA2`d_ufV}l4AB?93MY^Rz=4RcJ^5VIhBS+8Uvp&>aL00W$}RY&_GH=%1Kqc2cZ5a>9v%hMv1sqIx||gIs9JWg~e|E|l1K z4oXARjt<*{RT@=x@Y6oz^@6K&ar1_&TBE@RfQFeRdRVtbnAvq6rD<9Cy9*id1k{)T;h4Or5s z6;BA!ndr|(TNqDQN7gB&H(*fJ_=5~{qck-U4j(l;d+?#5FBQR!ecRS?-#WZ&e{$(&s2(LcB32B&^)wuYK{Euqi!efgjO zW^w5Jm6MU&kjz5P)zkKaZm5qt>nAGK^bW_Hz+92StitF4E@5+er_8ks{=;qt0JkH~ zwyRht7PWAo^}OB?BIw~)d;H9UbAYQ{3dNS}A6}xHeQ@nRX-I5rt(O`VHv{$=wk!6? zCz7S3?zYFZUhm>ujTLbmR9pE{K>;~`L472H=I5f&$uDbG!x8ej4NmA0`Q$lb?Jm<@ zT2oCr14JF=5%Y=8X@1N&H$l*Zz?8e~{ig*;u7{d*U7wiMUO>oM$HinRPlbExD|u*& zbp{#3>~%V}ZYaaVAN?)z#89!bCD>Sx9lFx7s7mSL z6Q7+4l^@1AhFc&gL0y(U(PE}|la#K`_b>Ko!>!+lS}Yf`i)}V(G1)Y{%r|sMe)(eN zLl@Tq-P*S!rDc+56;ZHDJnPuPzLfhZs z8bnfNziB#zM1G=mNW4X zm{pAABWT7;WhUcsTymA-x)j)!#OI)z+Jk)1+rc;09wp`d!*@NT1m;|%a95xnk9kW> zSACQTlV1FAh+I3##fP|jn4Sp7Wi7$=JhP+hB@>HoKP)sfY%h|{WSC$v*t621-qdHh zfx6kMc)zLEjFd zIxIc{I9FmLvTk)|$a`rJ%fsM~H3R=&)sa4G4zF+b9CgWz6zAA7IQb`Il5!Jjy-|Kz z^rKg47*x=5(z+3Tf5=Hc|N8|*A6wGto~_c#Bz4;@@q>)etXk*fZqRX!SzFC{%kRs` zEhak$M5KF*5m`%K@!DeCjyEa!0cCcW;S^3zT*y&?jAuS4m!Qzt*`-ZA6<2-Hi(q0< zx&6EIQVME{+0hWZ;IyQAp|gmP3)u`%m?~}Juo+41s`zfowUM3V=Rtp!eK}$<)m|to zuT6gfF;0`c_v!*qWWY~3Z9&QZ@W!W;lit6&Dq>mju&VCV9^2Sxcqo12Rq?wBFQ|rLnbcv+=OZ z3$q3Pz4B%ZOh^;vW0P42IwtcKBTIx_0?3J-ED9ysmUu>x_7Af5yCP%w>7Z%^JR_e< zRmNzXMde3&;`Fp}&z}fD(jAE(A5mEsS!)zazBg9c;0opnGGa$Q;Z*08IgIah*jGZuB# z2mkyhr*SD-M|<$k;=Zu#2TlT{NDlfjOGB0yI!0ziBYBowqu^Nx;bW+sG)RTSHpO@h>6i`A+pE_@2SNu(9%0C>4TA1b|zeDD{TLQDb~Weyezb( z3-RC4I(A4!z6#AKO1J7}%9InF9)N}uG?w+VT zTiNjqg}rstJuqDmr>#M&C;(CYb?`@rd_&@{e1-fI5JyBMRhU5&WKnY<&Oe{{ z)kUp81%LdEq0Q5wYl&T!y?lAO$pPm5KvWtRjfdMLjEd9z?U>H9{dY^+p_h-f?$Z(1 z#tVZqb=@W{X6cFZI3ZUwRDT|V!~Yf(vo{4H6dqWl&hrj%W0ma8nd>J`!Q6R4Kpn^-)_b$#mxxJ5PU_JU zt)q`4CjLw~{vp^x>Msnen+`|A&s+uqE&Tdix!fAq5T$&U>0R#q@W-^&3YN!A4bp%^ zO{{I}K4O;uU_ay`97MUe>3ybkMF8o6!8}1B(!dtdB&fZF(s&SQo(}-W$zDx__%K73Tb=wvH96KOj-1URm;e7?-Zd?boXboguY&-d2 z$(%CRDMU#SmpZsl>UIj`)M@#~n=OgECebkrWpM4dV&?(6Hr1Q3BfCtdSu9z(+0gip z^kPTP$>TjnR&1w7IQ{6pkyJ{dEVx8~u>`VP=8DSmFRpITO-en^j&Mq>(*Uc+btt_% zE$EkQsQd_}&*a|ddqxF7eZ_cH*mQ{MI*i&7G~YpxtP@0tybs@VaP80_K-(*b*QW8A zEU!A=-NMo`uC^z5VVAm9(q_RSOGguX&uAR%-HU9g0!Dr=4D;KB6p81-GmmBg{|cRs zO2c4|<9r4*J@fVl1@#Sd-kj^`ZX>FXgV>+n@uKSCcDhVVF5Q;#ciP zuK=^5`E>8)L|7lR4;S~xgRngULP?(d5i{~AF@>@xN*Fw}FLplqQm0wg6m-?NT_zVF zZR*uBtKENzSI~AzXp7-Lxpo)?Uh-o)?Z=jRU}3G^HM{T-En=BMV6ca5wc-lWk-h7R zRmjdI*B!lI5KBKfEkh_Gnq(xacuRa*WGl44#F29eXue#I%{hPNyccP)cOpyupa zx(r@~kHibV@$^gf&YAjoBlEw$mG|LZe1{zTAa<0HiTfW01%Kc6IMROMZf#Xt)i`o_ zqg>mQBs=CaB-C1nk?Khn@&NZb_fdtA zN8Z6>T2tMBevCS+LE#96iW1IbNnFF`)xO9Z4Q*9OVqZ$Y%|q{zO`^zqVhW{61iING z#*-^_{rwnx^QsBzZWBK8suY?+)Aq6oFSa}{f{7 z=VkNaSd9!?6_~*-gc*tn)k8?SMRp{MHr$*Zm z8B6e5qR)x%n@GT}?1WGz!<(TKjD*R}JUg*@jtkI6jDEdmN;=1yRRk5tOq`7HMme6^ z_%}JtWfhy&M3=Ti=69Z**GTAg?l#VZ4JWj8 zWYhVi4g_iHRxG@9X3MU9MT}Ji(QyCaJyxAiO_6tgPiRViRFs4c?)_9Z?Itkyn}qttwfY8#jM z-i<=i2Pzc@R$U}=<6OE9IlB!fen%=KQo_?_e|2^?{+(I_>7fWnlM{+E{?nt^RaD zK{37^!T@@sOP?ND^0t9GmTiXphoOl2;5q0A8x&{_ekY=rxTdDBi&|%He^GgfHK}bR zd{CCwAd&W?bgQ?szq6GjNxa#k;InWOnp7xjk^E_=+Wa>MAkj;moc;62*a`(J5 z_mDZXCyq%pciKzqLF5LPYdNtMN~hLQa6ouq#X`I%AIWIULKr3xqF-MpLyY7Kc}&+o z=oQm7y>zr&(+pcdF8_iL8yZFZ+(e&cV|N$)E&JzM>U$5SjV18o_oOq!iiLKSG5S__ zl>4KY@b5qT#cp*RyQ&`6hr!pCg8=CFDKd;1h)MwT>X+lh7P%ik-u4jb0+UeUhO~|` z5&VZ?h{0CZeCW_Gsz}^du=z=jL+MC3_VSyyniEIPL3z;e3${xsg8{!LWO)rGiwc}c zF>sd{MPD^DFIC4tC)DyhQ}QjaGDZz;9%Y(N~5s~DxW zQxeJfpIs&Tl!a$!sHUQDYf0-Q&AmwM!siHLwDy2UJH8H>u=}S->&%INGnS7ukCm05 z5O6neaQM=}kIMO{F?kF;bx-0Bs_>mVM6<_sq5o=PnCdABi?3mEHoHIS$D3Z?+Z-XR zHl%iIr=W?7uncY*QFonnTB#&g`?}*0qUUnDj^N*~GV-WAgGPRymPmJKTOyHXO#NT5 zVL$C)$0L31QNBznvsEQ#Yr7B=(D09+H9_}}cdHWj6~f-h@qXEH?}y zClWnYn9e>}f#=vbSb`fUOnbpnw)wYsFw4LBgP6_X4KG=6=Xz#kRgYNG)7jp6p(vL1 zX!BSq9$#N?RKGul&8Uy`TsIqM4Eg&7mlbCw3+T=(q>}ALt!L9`2=G5W2{xALC|DTV z%|C{Wu=YOLdZ~^~h7hogpT0&=q{Mv<$#Ol<_3N;1R)FQsY!kSu*)I9A??OKss`Ig# z9%Mg)jA+oBWI**%+@Uejycy9z_|O)(nUCHxkKpXfnMB07Nl*7=JY*jUIULWwVO92y`?W@xy_&ccK~ZJu0&1INV~gQqH5320pq+SUElSfJH)`^^S@->MELuR zixRGV_(`w?&B5HFvrl7`HqDv|ntxVBlM0f%(ZH!vJPU0ZZ;1By+3-q;8NEshY$La7 z>jR->2C*4rMK>RLxAHcn@Pyo2?pH}g4cj65R!x}mKBj;k7&ANl=Td@-pI8)Ox>eLn z4jRuvyB>TYQSE|(TBG#4UWM8D0!d3NzwdD9Ne&fVVoGJ-jB;%JtGK$zioofG3uQC} zDiO<<&s;7OGGF|1BRx=E6AEv~F;d!NltaRH9C=)pB8BNex~l1x1_&iFyFw{WT5$xQ z0B2x5TJ#npnwu+uanJxd~i>R&#PF!o*y+{KnS0@jL!Z zOciwMh+L~W?CN+f`Rw9a+WBE>Arw~yE39nq=Or6_cVDG=i=)7>Ffvz`d%e~-)}3TY zPi8De)EQ9ieCfVMFP7u&9q&ze#K?U6JD+CYSSm(r71y>VZl@{zWV%O)>-HO%XD}qh zHl!8&-Tl+HY|h@9{`61mL4=B#<6@)fF75<{S8{H?K*99N@0(BHzxDa~HKDDmv5}_< zqx{kvc+Y!r;nTwDsS7osFtOKE>|~MAufD7*o-!t=1j85Um?m&2UfEEqHqvv=_4f;Q zVUMq;XphkugZ}P$@|U`Q`na0_#Rx4qOhVZij{Iz)vk$Tv=(@w8Kj@!`Eo1yZWlA`e zRW-{aYM_r856ALAX?r|$$ski$%Rj)AeGBdu!~TAkr!$6Dsg7rAygd69t+PHCY>W}XMbiA;g?sm|EKHE9JV zy$B`2;sC*i7^`(yCZL#LBrAku;~u|Xrz9lOqyNAB6+;I*mHx(drF z;&Z9QUrQ#|AH~@!`M@V&D!r-V!f=q34oiEhX08iaQveX^7_Z_>ZB(THV*}qpcj%3Z zmQlKQLEl{*i7EIj%KBkd8>{Hj>4&w$t@LIx4K};MJJ9+jt;+89+3b@Ydp6{hy0pwp zghN`mrGuDUDbYC}7AY(xaMe_PExzrMfM>zDt9yb*L{CU#cTp$x{b4)TpUXuu#%h2$OCt`*&hL(C_`+`~FwTszEy|Ra->@Gh zBFw1LLWb0!pBiq4AxZID%(Yc%35t z!TfR{;hfTETtq(Z@x_7C(++LoYo;0u5z+Km`Z+nLk1A-dc^)H?>wNP<$!AK=CC2F7 zH^V2|@l%^<1Kp63XP4*v2=~~f#*H1$?Aw9inVtH^$}5n2bCo6l(XeovmXCcr<4Jht zxeu8jcykE8kGQ^GTF|yRGCUPR0md&Y>*yB8f#hwi>H{ApH6#rfAbJrQ{N>J%f=Yw_ zO=xoqRUFY3@YQ`}QKxa*L6@7%U4>TfscHb4M;_hblit#P{b7g-e1@=Dbtbh&dOQ(e>^NP8P(zfy4A3qWhnsLyfKNA&i~g+x*Ots8|* zU9AvOkfc3oTwiAk69GvAV?=qC_*^?xj#WmuH&^Y#}(Q0Wkm zSh}PH38j&iSOKL&QWjW3x)G&g0g;rDMx@mk&*FD$F zIiE8gJ<-lAPS2(97Om_>g{z1PfjGV;aBn4ErulIc>luYj@rP)ue%V>W&Zx3e6e>1yj)%n*0 zbo~T}vV|}E2 zD*pK@>>9igp08qhPb!TsHT62he`<#QDj&5V`4@2DVm#FWu{5^?{tI2v3_n9C?~>ve z*7P}P3=1Arn#lfA|YTHf?E zIud}8AU)qcBjeK5opKDc$w@F<296_;OvIr-+=i?_BcpNwgsOWZ;FJU?#&SDWE=_f3 z?qMcOm`D}g`86P)REUxrc3SGu>fPOLr+e!4Z7As`pcPS*aT-^$TbagD?NX(YU}X)j zxPI5*+rpbt(C8(k&L-_;Gv-2<3)J6q6KCSk`QPU&b*eeG==eY~Y>*9&#&h_(Bn ziO^dW*ZjFx7NMjJa;PyU)9xfyM+e*=*-uZ_ngh+`%F61y#5VR1{F2CBYrQUl@nz{Lm&V_M??iCf%m8(whvgEr6|Vu#QWP+ zdQ#`!4~2FJ)KrzhU+RZmU`DX59)MFQcE$C4rGTb>0o3hv6*U3^5^O6Wk16B_rDkU6?;VH34_GG+B)Js>{WAW=uI3f2 zb7Vq;qW(rKDju*ZAE!WZ$=j8z_4W4M4WtEHNkS6P0#B%b>2#L_+s$kbjC+}m;2G& z%F1OsVtpgb&nX99KAty8px=Q_7>{r<+3Td`@Uq&R|TrVHBke2 zAEjf%Nl;~T2ZLW-t>70>!f#T9!H8&ks+naedtz*B$a~edU1lmtfkVyN+2n}bd&cB82?E_4KIb2wx*&nl8vCd8%@=C4M0*cu^_G6wAkKZbM@B-PJd0`EU^nWm6~E+*#yPzVf8gFzl;7ucod(Chv}*6LCurSf@a$R2G|)d_ zod)yrD+lI%lTq^Vv3JtF%g^3%&YAxYWNxD@Y*=T=?@4t504y`jWbj#Qu2qSNFFy)- zc&Dy^+pl|uXW~Ot9Y18X?D-*w|E|@&MPV)=RdO@txl+thyOU)4*HT3B!i#uZ7P1@< zO%)gnw&EF5RA@xotZ}U7Sg^n+&*yEi7)ZWHa>++EC;VDbgl<=Woi6CVRK7i~YQBt}s+BtyAsd`e!AS@|{0s{DlkM z*6Y7OBS-e}abxr+!+DO-T=o~S^znEMh?7n($9-lC(i05(#2jdH#OJ1Vqxg)m=2^l6)EGtWnQHFSTh~iuP{Pb z1+?lhy22~l)c``Gtd1cPm{^mVs8cC5D{`qdY<{mF>r=i=h(c%a+ghx2uQJniAPhSi#1#j1R9P}t1? zXDFALThDl+-WrfkrH6a4N2Ob(zl@liZ(n8M$)8@%bqo567cf*Uz+NRe+G|OS@7ha< zuCy0J%?S$j=>*_)BPBc&17(8^{wa8K)pdU(F!z(IP=-#W5|I;^g7yZ=piHDLiRfXO zrZY#PH}HkQ&dXTrgcEw|>+|vVB)7ZwE{dJ12v5O-%=Pwt+e(%SgVqL4Ia2obA(mg; z-AD2P9_mJ!xL0|vX9D?@0;}e{rwQ;j6lk4tOd1gJP|ak90IoZac$SZt=^;73A+W1ec3nH-9iO7Q>1#_ z)_bsW+kJXAaU69@cMJzE{ScIAS4eFsTK$P{m^_}vAvk9uf*E@2+Q$u`e;=)Xxe@L! znrAeb&GlUBPJ(QZ=h)b`SW=O|7aHL!*hhJF=}ihk?qZg>GfGAZUVgStPeYGMcV!3! zA!t0{lm~R|g#j(1q@u9Q8&RXGez)^Y!*TSCU~to+G>%Z*OlC>nn1 z>Oz;Yos78baUH~78sLss*BE=~q%`$fZ*z`(pa9MB{b_ni9n@L5YY<3c{48XR%*XrP z^pWQirlK7SDfZ}c%kT?D&3_V;o`+@M(4xBJ>2lhwVADB1D)z^cc+D>%)#_|YVZz%2 z?%49zAA0-0%oRRRt`6IaSGVhw9YV&rnZxF}s{!c}tU2uXE1{$D19dXrs|UEVXxSaE znrq*NDygCpRlXk&E69-ZV2gCTvpk#J<2+O}YpDE~%<0Drrm%(357@x7GUA_ZDZ@Nq zg|<@Ks_uz?bQ8n?v+j9ql%ntBVc$-XQoNKwO@IPj2GKX+&{vKkfg z+SfWbvTsIlU{A{eS;S&;ssHJ8a>Hxof3-S|$a{Yk7w4lBj%~lg8Ac298;Pj&8 zbAd9u%3_mpfxg@YBC64G*#h;#`YE@*ym2%_$_i0@J2spi@EoMaL)Dcsk}Bs#8y^%yZ(Ik+i5mf%%0-udD?=`C~o zjc$@b0@5b+b8-?XYQV-x2Jp;y0L_2Nd6X0!=D9l9@6Zi8-$>dg^|WOhtM-jH`~WuY zwMY;omIE5@gDrFu0p+gm+|m^w8CD9Nc@WJrit;Oe(yBx@*C}CRwZ|;sm+_CK8#uAz z`ltf6_iNcg!>w@_-57*Ef|GOM8sKNdC3fq&?*Thz;VLWlOijpyg(=~|4B``u=1*#% zZABaOeXRaa6FOZfv}!y(zlR6;e&Mdm!Yu{{c!D5bZ@XPVk$SYCHYC|Ee<)j80Fc;+ zP)SK=-e|ug%_PQNhkUKnj7fgVFvoEWTSXcFX^@H!9jQ&A>*0Hilq{M_dU<(p2P;8~ z(C`ebH=p5u(=i1kVf3uPUYu3=IIy>4v8~jf(C^gF@2DN2lJ6A=JY1A*a@egzjfgSz z+4uLVYhT}v?fXyAms4Koy7%A^9|}wDIIrAETmtSS2F=k;tAc!NjOUxB4?*~>QuMOF zw!Q#*Plb6W`pOWqEuSayojc8wyk`mj}fa+4L!0lQV@yAU>fHmr~I)F84Wnz&; zw~sv@NT;>gGZA3BBMu3zTJNXWOM=VFLHy7sHK`6n(RrE77EH+h1%%(>)A7_%5Czam z*ierSc!Cx-J3DYz{1qUQ6$>>GE=Ye^2Sg>YfSMj)aJ=4#-*gQ2ecrZGJNSFX;+e_q z*k;Es#?i9}OGvTgyUV!B5Y3s4_V|nw z3+Y`D@_v^lXH%<58y{NB!u)dfAMLN^kf0Au?>zJ~(f)($O|H98SIx}z5jSCSHsy@!EmYBF~xL|BRXHkR6YpuKQm`IWxBSrWWdz^yN0yhf< zrG6ncSU4415fYLs=z)O3sNu?=MG0=3<$0%BM?6v=c_fs)TR$}#IfQ{{^GvzhDYfPd z8te@6uE@Ka*}@wOg%W9fxoCH(4mWm^`psZsYnGi5wNK3;VVo|^1^ZO;gI+cTs6$or6Vo+AgeJ?U*mnh*y*-IijE1%;j~*59gP5{H^26 z?ES}J8Cp(2F`D-i1z>OAd1BJJ72-U2_bf;cOqOCev4(grqEm2K13u0&R2jXbdj)K1 zgy+^xgMdlSTSQ4LpVU;_+)}EsBF2=Yk1{jQkko=2h#agAKSorTcYPI_$d$FF?BjCUi4QNF}FG9T#5;GAgz+liX6#P?>8xcoLUKfu|&FCK{Ev}Z{BB(8^j5$x}P zmVTnwlJrrrtazdJXPO33!4{StE_dbLGfd_;P9VxCJ60ET9%t2#HHqfa7WKYArFJk3 zLlH1px7R$ycVEV?zPwm1!`}jykfqoz)3nCR*e@gQnGz*gv?I3TX=xu>J;r8cdX~`n zh3=KZmxQ8TY0dk=+9hCvAxuJ5I4SyETwS!|%Lmr##QwpiUgbgcbCFR`cy zVCOvZK?}={`-I($DdDXgpxXKE8!oh4oEHC}&i5hh+r}3b_0K}OumTqv_uz9>-O`k| zukFxtzP?GCo{V!jyd#kqLt7D-;Dyg?)lu6xmdc_UitBpm@*jJ%uy^=LF3S`zWwRDJ z=Ft=Uu3JrWhx~f@Ht54dX-)WN?!H@=60RvJOeW2Z#;N*C=DAMrKCX_O z8pqN}-B&;NzFSNeUhQWh4v7$x3NPHQO`?(armK1Gu+i|yq3zA)+P;9xqO@+)Bl*odDl3z6CMu8Yous>-_#$O z9mB)ODnGVO2H7+vJ;X$xokP22 z!TEFcn@6?LxxDLzEb(@m{u_i~VJ9wzjWUh3vk}EBXD@?kPnH>`>cS&dwZsFMznzfqt(qp-`I88nmw*GHw=b?mq+vxZ!je94W#J`nB64ogKVC`a0_Nqc8Z?`~`h*y6k(i!AKRH1xty4;*W{m;Z4EL1&Qh`&@{ zmgH!9l@!}&oXjM;NwuIRkS8u^+%=x-S6`Aw!KewA3}P%~evYS_6jPlx zVW(DfFCGA>j-S0099At}=08uNhCqeu2eKJft|z@=SrHt-6=%^Jatw*H<0ossuRG5k zpQ~23oH<_}wRO%E=`FS*_*73(ZXg}zU_B!|G`ek{?eomy718RX_d9IY$?u&me2v9% zd~uG+Y?bw|JkBI0kq$-0cB$*liz$9CISSctlU}?X9uwSy^_x2fJz^vQ!WSj6DBWr} zU#)wDQeQ`@;`IW1rCfXn{MM&^;FR2=B(;g9fjYAeR!Ol7bf8quU5vlTE%%s|=v`~4 z6u5bUKS+H0L|;h2ro4BoJYEh=(K$j%3Z6B%rFc?!s=4`Y=pZ}^m`HM>7U*3;Lo?b+TtKy=3i<=(Q5eO=MgJx3t^L88oS2CDB&GeWdYT0v1 zr?Fb=I%3|Cn_H+7mq?Q|qQd_{1s-GSolVf_CFa1hdi=tl4oY@1?V29ruV9+Q8mvX( zTO8bH5miNwZmsU=Op~6w`P)zy;mhz4j-i_=^p(vY&gQR0y^eXw{ED`-%>qQ?zT7DI z8Wc#}e7?l++tv&TQsw>{$^jTtdLM=% z0z!bZ?#o3LDWQ@fpfoziAyH{{uX`$YLcCgNcjBKg=x#M}oHNXx(3PgXn%5<K1DjNA*T9s1(QW18jDunxLBH!|;Jl?0A|9sO?1V7CpNnW}m0v5$(Mv%H#V=-xPE^27lE5Jh}eg_ajO$plA z8%w!m|NJ7h)vRTTx{gq`*C-LXJ`BTGuyJ-NsHDR)+X1Zhgl0{R%+S0}e~=$>DJ$w; zeP{W#ks5F8*}bKFf&gsaW7ViE@Pz^v3_g51#$@rIla#Ft?jYxM$ z=O;ijs$Z1TVK#qWCgW+~Zo^JB%^IwMu%wILZF63*SIZP9^5j?XN2ZKtmq}Ff0M!VcUp; zj@%zm*l_nEP>R08aTXql;_K?HMAW3@m-E6rU$Db(a)8!}*R7SCbIw-J4SPG&MyDm3 z1n=E*{X>T)sE~;Jl2o|)qWT1X|26}pJO1Kb;+<0PEq~=Y?6Wx;;UDc5gFyTt4SHN^ z`|30caE=oWm52MLlgr)ezLp8CBi5W?g1V}4bS?gt(#Tf;^_ky|@qZj6T^UNVesm+T z%Y;fB$$M_tv7AfOQf=fJLszWmZ{rTmgaeq>g0?IJsl4C&Q*QWKd?n8`z}VYx1BXn9 zhA34uuU|Z7aV@z!(@CV^#r<=8F)^6fOxPEdM>iUo822mp^Q&M6Ye(9uo$E21Gp?iy zGQ*=q^J};UCl(J&T35VOUI3#pw|W3u^;HZ((L8vPTNS-qJHD4Ert#yW#O%0c@`6v6 zP&V||hffB6PkKYf*kCi<_d?8Ka$Hpi*?kCbcc>~SMpC$9(Gbq_&1MjlD74t5Ahepg z`#a3NKHh5M#cKUEI`Kv`vSXVvJ$GJ6v=(Hzu<+LdPg0b@)};?OwV(q`6(F*)-_$9} z^7CTzG#3h!AZalM`WpKs@_wl+R^qV$P!P~p82e@Z6><0-USwB6-+oWrBD;sTs^u3% zOfWBuDFo0xR3Kvm<&x0A4ENRP9ObMdc~fLV3vIXsbsQeQBKFw7ex)Oj_7tbmUpYX-OJ~!t6&@d+eCZ`cPb(wk$NAOEus`3d#*G03A zun`lV@up)vhD(JeJ~Xs6ZAi}j#oXb@rp!Z34sQ55G*z+@h$7a*1r(l>%Y-u~`&u;s zYwpVFw=K<{`tUCY!F34Y;odD}5bc9a{mFo_O?{1ZvVf|~F#`8{EMQiXCVI>IoItC4 zNl4~jj$tv+wymV8@FUpNb+wZ5BlX{{pgGd(&huvtx;$tuznX9bJe_@BBZ>_GQtR{O z@_3U0L$V9r-v2-<6(_W7+>;IzyuXg^M5;;~m2!q91{7;wSupPXJHXJLdrpfI+fVL4 ztTz^_w}^~t`c}1i6aw~##CWO*oc|}s>a4`dm)9<#q~N9tA<$d_&H2&M!MEZZ{oxi1<)*GWw~u4)EU>0lncmCx z&k&I8-p=uX0kwI!BVslU?_I6*OD+tih%f<6UgfhO!(Lphtk6}`sYFcaH4it4q+G;_ zvaQ|g=wziX2=Bg>kra5Fs^+Z+#6=Z&we3^-%UL}+UweoBhu1tF3r*;kGpVq}Wbg3G z6L6tS$!Be0b1vCgQ_Y(fsD+8S1g%zpC#NRh5vX17W1H&wq@hY1BK#NU6vsS^lF19G zhd}Gs9d$)s&0!fB^AIFRnbu9EHP^*7;aVaJZ0d$+$={<>UB?3)cd$EF>t-K|4F-^{N5BbWNi@v}4Kr%Zow z`UiivV&ra{)IO z^0McIcE0&*hZE4t!kS}O(%`C8mky`4K`H~EK#jzC2Wntscmw2>I&dgFHao6qqFEqr zryWFqC&N8EaCL=r+f>8I7XD-$0&L!{Q?3AjGRv*T0_Z`W#Ib%$`BAD!7jrvajcK9O z%(v+Rrn~n$ny*n3OBS>59+;vGFPW!c``L!g&a?yZ_e+OjnT~Jc4GkUf41~MTd<7-g zoAannf19>vNW3y(FiZlUWYSSJll0XKBbMkf?0E|IED-^6}urR?I=2#boqJV#u@u7?1wGdPwXg`b7)l^hjoYx52-|Hf`@JFZ2XA%9dWv*Ie!4Tq zEvt9f9XO5!)HzfcjycBX2kJP&asDNhVlpn6{HXEqamxDz z0s)i%K%$#6L`_X0T#Vzc+@=+hy(fGJtLq*CUfb->fWaRkTO_BfNMHb{wJZUz?=lzY ziad-%(cMq!1Cy2h{YO?hC!Z%QdVn*u8$R0nn58z35on{o2jp6IoW4vjwywQ6z&%NBN^2sCr3 zRKIr$rhn>W(texZHC={n78#?c0OD;Tw;Oa@aPUhc5$O{e_-Bzwy050{lSwsr|9(|< z+;yX0RvMoND7FHwbvvI?ULUP?*h+-wY9rd{U)^&06fZqpRU4Nma@`ktln3?KB@F<^ z_3Wn-vY&<231cF21C7)=UW6Qu6cs>R=w8ZZZ&mO%C1Lk9wL~Tl{6j{urF?^}m_9Ck zOLej0Kr96)Wmt?1FRfqZY!i(D)GV)oSN-9BSU`78ZF~8~t*R<&X&2Qcx&N!r6~OaQ ztU`&uF{auj!40M@!LUCS1QJs1DI}qPIUUPnO-YCD;mkP>VO-nt-Y%Y2t+f(w3RiebP0;S1gnM$QG;SqF0`57ZR~~&T5+w# zo`BrToHt?qpe|^(IfrO8t0huYT6sI*vAV7J%m2~Q817^1sC_40Ks*T&dBxYH|FSOW zM*QtW8sLujIQxD_dwmIQ2;VcNs0q)_w~X<4_CIq(72ctXsJD7h=GU$ZFCOJXiF!zH zynkw2XXwAX)NTJb82cY6*W9J|9DwlSL7ZZawo;k#b?U(C3uhJ=in6!r@|6YO_Tz`! zU;31uKJD5s>T{LK8P!g;3n1da@I`eSD}8AD@#&c+zc08wjWiUHYaifqg!8?06f0UF z!ONEx18Lh4e=V_$Us;`YtG(N=9wlCs7cVU6%I_%XzV5DNH3)CgJCDjeZa1y(TujWw} z-&Gr^-RYzM1?2YHgOR_fEOU}YYQSnpvaJCeOc(3*S@jumB?$;1Yb{mF zOS4b;kJiVl|1$lopKX`c+;Nt{{sTCB0~CV&Y$)kEI#o8=1%-Vmf66nVkhN72$zM&( zw{s$WuF!KVEQa>_q;%B!Z7MHj=3iDZ1w>{Jf0Yo!`SfNKHBh)CFHz(qD6zNbKPZ(&AmyqoK#tBVO0pS)lh)lzY!3ff;Nh!akS1tu<{QNG7TJ9W9yIY+GK8^(QT z)yy-WZ#oOWeyY|yGN7F!-OiMksNSI~OL=&WQ|TYrxUE1bUlG|-%j5mC_AMKt7LOPw zb5$WdH?^MTzSXJB{BiWzKt-rjNSsi?q!MN+?1xrYD3V9L@naI*372mgoW6caSfU_g z-IO;!YUP3-=*0s*PZv_$>>K(z9jX(V55`yFV*Co2yo4ciN=#gCqfM$jW0O|zOVV@f z#d!TPUwbs6gaUh9{+EXx0sz=^6|Sw3;Z?>0U^KE*%&YD&d_+WxKurLG2rl$de*LA$ zqqXAOm^KM)5?C^HE*aRL@`sokOSQAtO&eb5dQ2BMS)H?tYG>HEa`uE)KPISch$BZx zfO#rTtqE{jA#!#YJwrRG@OgiUvyPXB&|TB0+VDx}Gqq%xndL(dtLKcIHx;&8CWG)> z=?2}5KR!KL+tD2gTN&Wj;2MW`t%f|dWbtEwJirgJsOYqakyHn<YhdpDejesY}~bo?YJ4*S7Ft>WJbOlP91KH zV-?lu*i?{wPu!hO7kl~ig)Eq<`9F|i-8&B@U==z}AO4Vdzr-!d;I5vVPT51zLh|L+ zC`f3lniZz18!xGKu=aSLS?=`j9e~W+H@IqDVV>F4FEL8+K;mwSV9X6UEe&Kk@XoLIY2&hBI^^+2Z(W7oQt#eQ;vR$9qFP6rIqqH$Q^l z`(?xOc7tU}Hk9&jA9nvsa-tnVF@47-_tm{@jxl?gAhe=5>!Vkz)A3#hZmd$YM|Gzq zuBRKBua<))y|Nx=IR92lr3{M9pGWb{IRxJICAgW}q^?Lv#X*rq>U;&9C;a@tQ&+kP zFq_DrXCn@g5L27cEf`{6&GNq;!*5%*`k>y?DHeDm+3v6aULAb`VhfVSp05m5w=fyL zJSYhrCixFUs10xtqS276lgWU?uR1GV?@7$=DoQpa{mC?$<(eOWGlv0PH2wmxGo5*{ z2K*KzqUv@;0Q2(K+U!(zdD@kNdH|lig%0EbBhb)k37PgC_pYJ9TKfcx5tixrcHE=l zXde@4>nWxMlFDRH+%bIx)#Q5@TZ-_XOU-&hCPcLiK=zJFIwlWZCs}u|AriVpv~dm-Qya1Zj-3gk^0!! z;NJQ)$%BmG{MlI^;>4F0|M}}o{VA&c#Bt3!C64S=kY!jVaSoL(t%JndlG=UBg3o&n zv%p6npk0bqcShf#tnEf29LO!a3_$GDMb*wDykIp*Q%;BtJ&o?CI1`!`+SXY?40);) z;JaWV+3-HAiJbtgu+dp5L~SRS*{0OBII3FbYW{hvxq=Aip@gmO`(`&W!YUxMSj8=^ z=mq3!W~77~?C#V=(zD-6T=L~GaF^fHc{@XzGd6pYo|^?K{Zb0!jb3JI!2CE1NBOk5KjGnQrtvrT(u2Ng#L=vcSW6Gj^Iw4PoQ=IS>K;l+P zd&;?piM-mMyA4NvulJQR#w89^dg{*dGR9ZCMI8fvW9M&;2jm)}x~25>0*HX{n#JsP z=eZfbQ4qty+dGwIn&;A-pop6B=X1{A){2Djt5I{g3p7Y8NN&$ejI0(19{pt=1(6t; z7^XK0bUW{=dU!Y&wh@K@`qhk>fFw!wN0+ilcTR%l*u=i|bVxn@5A^0sXoi9IO>;+? zQ01b+%Iw73aZ+^aq%%FL4$#9JVJIq%0xaf$yMuRSG!-#t@xqgb&AWy~JT5}Qlf zR6SmKNHhJ%x7kGDg;eIN{(Nr+!1txyP$j0m>~LZO!EC1-zChOx>^3t^1XT9|1jjL> z?F+^x%H{nZ3^htC@-K`%hm!Orf70U$eoVv@w_uKz`-&(>NNG@q zWre>3;jInC4mJ;7J2G7ce4_bgHM6e$6m>+na>uDh-sUc7D^^)DT-^z=bHN&526uW- zCIb8aCEvAL%v1NL&FgA@I=q*xNQHglP+mY2dZxh?ahdV;yUjh}#}rqZ!<8fZEvR*W;+IRcWLH7-Qg@T2}fwB=m z6E_n|J%{W{VbKp^!ADsqUcAfftW+p~#`)DTvh@{R$-N)- zBu>sfVc zDO<>E#5BG$FD@;a%Tz@*3@p4KgYkeL)lgm7_mwVU6Lukb1`8KzfHtN)GX%##@;;w( z*R(egKg}h+B4hTv0I44~4GS=Ruw_)337MU9b#zutquH{NkS!yJ{qF2CNBp$@XSC@r zG@vetsJEIrFQ0ZNy}$25zfw`&EXV^zjgn^|_ zZL{v^e5tvWpZo063g-pVDaY9F^bal!EPjyZ8Qwq|z4D_9hC#zSjnBM#8> z>y}Z@b=RpN)q#3nrB_Ewp+-pk`R~lUJ*3|bu<{xwnGvo>hoKfC-xv9M+6Jvn)=~}c z6qQRLA-6)()r3_JIAw>vEo+(GdG#4f?bAJqV{5AOH|?yNF9x&Uynbi%fa@^pNI2W@ zO=;@d?%JaIqs3D1Puq&Uw}j>wsi`I1t&KxLJF{zlJ|R?Wr|+L2s66;|4V!VfBkkZR znvD-fyscA6MsuW?X7uK5$13Ej>z+mDNCICon0@dc!CmAL6}uCk5GHDU^d`b8RRx`v zd8sU1LuJ6OX1!>dsJ{BEr+~u1Km=Ir@2&$64-0H=??3DO95*bmt$H&8-jRm3@>;D- ztKF5NVA{-QCV=it)n&E#$7kg+q3$_nps!?e^YA>ct}(510#0N@mZr+>+ec$Wz$iQU zX*%7xP<<7@Zg0;_cN|vnbiJ#!zc*c!L0i?QP{@ga$P-3*Sz~{|=+!7*AvFmy-Vw+h zSZO6Z?qIzj$z6!CK=O?`YS2wt-u3RcMmy*MZbEv!W{`OOkD0T^s_aPozPb11P zP6{_S*w3!m7$9#!Jm>&&bzqr+sBXY5yIvs8i)c<_xQAjMTH0jy`FoYaX!Z2T0aNn6 zwMLuEbVj==*p~g^Kag8N=$r@JR9$ink=q-BHZhwGPu(0Fo1w@CCsZuoZ>-U=~j?a)y)quiYGcf%TGHtEe z!IYtyG$S|FZ)&PG6gCoiMwS}9-gf$~U)pB_oJ9kQLEkgr%qxAeE~Bh)&E~E*qx~^o zu&x?>8DQ>!c&dN5Ke%8?>hw%(` zTXE3XUBoi5su3LlGPDyOH%~L3ah4pctDjh8Nqpm{RHF0=`!dGkn6j~QQ_1PW$JqT? zWidJ}q&{sC+cct$Ene>CPJ-(Wm4ouuPF7tlzG$4pHn3q6?QsFMKclLpz@q%npgTSQ*D&F(6JrnOnEUgm#hLyuGDu)b_7Kw0oY}1#XNYVsQ2a`2 zVr1Z(ho_e5?RNi5sGK9TNh;`^XP#(BfHUlzbrjptacmt-chpZS;9k#|xsZaVr7m`; zU3=tLsi%h*`Jqvh5LF)Cf8yGQ*~s+rzzgMthgMS>-t^56hV{SXJDtQF&Te?5w0Z*l2mwYm6v0R3W4)V;^u!T~7tKUUH3XzhA0Q;Eitx)k)0 zTgCdo4TO#|p4J-s7zA(_4#-b?uzbdmq}^4oEQhK!Y&4WvGBW!-)fxN@cLs)txg4f( zw+f{{n#L`0lyE}riy60^)oW5Wd#E1!d{!CVBmV9}0E7nfAQN%xTqudjR?q*YI~ak+ zLYOGr(-G%U>7HILp1k@Mt{6`GFEY1zc;*0IWWngN=AW~iX%!U1@G556OwDUu_P`m^ z(rOqEd=_7X^os{C1O<3(c)ZSEvejDXPQ?vswF?@;^f6M$S#0U0rXK9@;sSW)R$?(* zQ9%YlX(9i!ik+7-1kIBrw_J{t>G?ddJGx=ajq%bcV2u>1$r&4ehFPAO=WNH|+vcf? zg#^jphCY#wIEK&v?z2}E=J)L%;4a5s^FbTDIlh(PHWt4Cctss-dA+EJ<`_;;4Fb#% zr2fee?4Q48q^Ck|m7~2Q2~G7io!7W$I>sGX;B)dVq~8BwN&lFlhSCe_w(r^ZNdiap zBgMvRU6l8`*w$#oGe^W5j5nvL*diJ$*n_@ey9*>Tun!igQ-5=I)j;^`g^?^5a<91p zSZN2oqJC}TuJtW|gY$nNfqwzA`2BS;x4tQ}NB8)7XYnsZU!c&3By{5il+c9ylFF*s z5+n1=M|NQbo)aiDOX{V9_z_rsua8DTNM;oTL$KfnwH~jtPqk}~svqZVokRZ~Cus0F_k6Q(YCXVl3AEsEjIQY&}cUZsHos0mfOFf)2fspRr@a?hV^#;ex zX~~YpY0A5q()Cg1o_x(iw#G?lr*mc!(fW z?Vhp4P;MdLf9kK#nB9LQo>>A?;px$7l%hIX5wnVA*W8RMXcaPEG}sQICzt&;XR^ak zpW$Yoqb#2J)-YT>igzUwA9s>{By&UkzMSZG0zTWsoZs;_ZT~tWAFuDTpq9xB#1;gb z1dx>ood^*}Qqnb}g?10_Psks8uv-TE>zJa-8-0+`ypfETjE}`kD(_0o(c5U9JJfEB z+Dn7C9`d=@J`*1&X5N~W?H)`ce^ebt425iEyqu6u2Z`ZR)CHd(lA!OoyH59}h`<~d z`T8uEP3b=R&dxcVi*ovJ-Fua{{1cS&Ys0O?^6M-o&MGB#$?a!#S$>jkYq%x#B;iXA z!z4tjJ7+{X@Vsw`^FSiFN!>4-NM3!FA2%d3=yx)CdHWn{nSw~G0I<8Y7^`?|EAps( z@u=(bY`gHLH@a%$Il2>nKrsjCmo+k(i&FWC8<5I&px+bdxGuMO6@Se4zb4w;LCM*b z*=UnA!z>>HYkh=M{KwA#(ld(P#z;r3d5$>RbbnclPg-5fy6;7oxL-lAg`cQ0fcN)K zd}J7R$_iK{vU0(ezX3W%6*S>RvMiLnZIiZiMGZKEB<8tHS){itViS zs!t?tC~NGwSAp2bJdCJ~?3+2SHB6@y2>!E9%Zd`CQPq}?Dt#i4<|SA0i#JpTLNf<7 z>RY|}>f)6qO+;dG^PzA)g=*H1Gh-uwtP+Z}S4Msa11_;Q?!DxbKrLoJ(NgQ}`!Y)! zW1UH4jW5j=vno|xEBa1<1oz9z)=+SFmdF6#-mh2>q22JNFyLAfBs>ng>eg3ed*Xd6 zCs`1jndc7O zNRqC1%su&*9W){K-ly{1uw_@O3kb`u2dGULc$iAq^yG8Z)I46fwL{)C(Udfj)j&?= zx4g-(MzL2W%p<5~BxIx(FP`w(H`R2=17<&o%DyHVt)-Qy?T1mO7T?#tJ8eOW^8lm6 z*VDq|7#&M5jPxhRM9mo-?{{M=t5?wrTXy_Jg8Nh=C~{`ZUw~w9DBKg3Z!ehtHBa;h z@1IbD?XCPol}wXHsb`}`+YN4Yg1=D&MfBZJ>x|VdL!Ps(vFbEB1uy5v$emUowIWke zxt&)s3BP(XISS_`n7<1x0w&)$7qNyzRH03x&nA}M8CUjdyz3SJuHMp8bEHPfmf+BU zTHU+wAieG1oY{uNmD~!Dj=8?3(rRt}xQqF68hU`0O$uGk;*!vTxFD~X5_CiW!EYoQ)3x-hV zGP}~zog;ww#>9u6}3NYuId7};V{-${0!OS)sCyXiA}B6OzbB zZq*gxxY1T&j(m*bbi}4EGLNjj1E%pE4M2BSwvZg%23z< zy``}garBHrU+qd^%f7t0?aF}oSzo4lc z_NA)4CBpX$uHxu02C(J?f7C#K3B+jhT;cmvVy$5Ys?-Tyn8(;wtR_G^jP=W{hxEMg zgK02>)u8q~fz?dSLl9e0Qa5~a@ITNo^8`b0;<#Lh+a6^|swugVXy}Br${P(S zt@KF-1N~1)-DD-r+0VBUzsY$xJGeK%Obyt*)p#VPcMqPzIw-)O=p7GK9}r?B z3lPQF?fi2W76DXn53tKxJKaJQ!wnPR2-R(Ruz0YdvF;A^2)7O9I|`9hp(tCbi%{=p z-E^XExMBA_%gNJ#v-R|0&)jBh-BtW+Vyi5i3~@&+gXRTf$z~W@JQ#(?$h8mePUIDl z6vUf4U%}k;ff_0VY6y(4CiVMpSkq?D0!MU=C=SyN`(z5``2h@; zba4BXoBw53jm|C_0Np;u3wvS$O?vjB+A&_i88u;lyY#FNQyelJTp$|9oAdK!f&IJb zo}TZ`n0$kdH*qdFm>k+%`ie`fA&C}&I5R}F_M7TXDqYG=zz|&u;I1QAJ5N=zZ3u*h z#0D<Qg(HmV$A=gPO+N0ZWZR`2FhU4Dq2!u3k63$`xDyUk z@^~5ui#-Emc>M}ZiG_OjdFb3g!0Mh=2A~OinjY^s!{J!9uqgAnBx4i#^H^z_I=XAx z(O2=?m4`^E6KTe5?w94G_qblBgEMZdCj~V>tt|X!v!`e7Ntxa5JVa6_IYwnUuiQ=G~~s#MPW znzuA$I#F67Z^0RzvOadkVJxmuakrD#^GLf+8+Bd)ar0Q!XAGH^*wV?_tEJLB>dlF| zgYr2z@SDLqGH4Vg$vVx}9DiUufbzbeQ7KMBcx7Rl1Vult%D6!Cy`DYIMM&zY02K3t z2;p`Q_j1GP7m$2>MzIm+Dz0<185(K2WJ3H3h$2HB-gp{z+w!hQz{|nubGDPbnxB?H zt9A52HTN?0!>&=$7PdEUjF9wynf4=?Cnl7F5q?fRg+{|Iez9RIXon`a0WWXpH@#it zoJcB4$<|O{ftG0tTCS%yLtNq+R`Zk5%*C>}e~?%L{uabkF18GuP3*|@=gagpQS(;1 z^p9@~!yRsIdfqjpGmqPc#i**5{aBYBQ?wS3%KMd!1z2IaaQ zjrZUULZSBxgoOI=Ho)Jx%jl99ge-9_)S{kpbt<4h{P@#tX}cBuhIGpj{t4wLd0p7O z`v+NMnRm6gGjqDc@IqR$7M<_j6^HyR%&P-Ia1G@Q@vLm2eu)d~g0~2PUxur{f1vE1 zH*qk?52`xE@khLG8r1U{B7D*_GXM;>S#BFJ%4F+goBNlid2yZ%(z`HkBZogua>H9& z*&z2sfAwK(N3RLln^Q+>s+&Jc;Gvdz_NY@Xt6$RO029ZS49sDkmCUkaeW|4SA~~{% zW%sTOxd1X_cCQVNV4;VsSC?oft?JrZ}To7W-FC6s# zqOsM8=k6w~qo;b4Qx_F#LHRO;k>+yYTiOLh4=RT^xzz*(aLmc?JM$!c!UtKkm>(f_ z4iq=X>2(S6gyl(!+!q-$I@J;kVMgXt>@`ox+1}+R!sM!Kz#rhSqMgG7G|@~P#x z<%NwmN<$Yiv>w0KdMn>cqOk6LEF%@XG9P!>UDujg6wE;i!_hpSz__-x=~u7 zOgxS)^#PE%@()W>rkm*r+-zFu@-dLgAvox4ahXt0Dz{S=2n8 zrO#$P(BXsA06)5ObEQL|NYT`7G&At{qYOO!IjCSp{1A6o!NaJ9S5hXHSG$K|>f3O; zEBc)p$%rohq3b!6+x-NbmHFR>?Yu?2=utU6b#;o#sS4ALh1Q-IWOrVv*6eZwT|a)^ z>GD-}bag4D71>{4__+R0wH}%B(y^S38b8uyJ>-YG%YH5(VquU{0`y7@A~~Rpl>UBp@Z`2FA^ zU>Pp;wg_i_CM_p)bR0_d#-6U&h|K0RcIX(qX89%G-`Qxo@7@?ZuXGg4VPQBsa(md(twS>Br5sGB8Ge1RWItTp4$BzH8;WxBeFSIGXHhV~t8s zn+xS5jhd$ql0fwT&EH8GqA}rKbQs78&Qjr7i)SOvPF^C+y}Nmyd1r$~R3|h=xAdmv zpuZo?ajQ&Pe`&&Qr_;3nHmB?=!ct6g-Z_dXb>u`=f@wyLWc+X6{pK(NAU?R+?R>YW zbN=#{T!oIWxbYNGazxHaSbo2xCp*<`l97{-=6_90py@rokI(ecJ16#&RR}JClC!sx z`}%Z=Yb)z0x0-iOSz;VC9rTu)BiJqvcHp=rG#!w;{(BsSXZ>Cx$W@&&`Zr6iE!xP< z+c1zBx=WU~TBGZ1ORGvro9@M0&5|DP>G%?~mqvs7NX~YLSrJLrmHqrkK@)rZV))N7 zBY)XpYfkdm2lxKB;#HRTk}G*s&FKPDKtinLdPTkcX`c&8+wyw;rK?j(o`K@D-zS9+ z^V*&pp!vRgz0b4;9aDMf++48f#Kpq~Kw@$g$Vj@TlQ;43@w!>rvNkU!8t!F2Z5ej=6JZJV=w5)eg1T3@bl2@Wx^@C zyA3bn0`oobePWO0j#}8)9Sx0lSX?&P$~t>NC@|`OE9^efAl~$w7rn;|-!4!`J(*&E zl8+jV@|{26Sz!XURnH!VAZ5Jrs_YtW%TBuV)m_es?;ELku$QlW(U7v)=?gO5B^6Ii zFK6d_&HVpo?3vr2@-XmPm7GoaT~iSye!Acf-fvcP`=05|sOnmdBz22dn|Y_!JmvZM zU&V_ak5w;;i<4c&T5}3~jRCI|y+M}o=&eZns(8k|ek?Z>TPurU%h`F)2!0QR+Od^-@8F=m!R z6|MP#P>jlxdb)J`%k0LwVvDn#%PSoRz0TaybQ(C*dH5;!wS{(erwpEruKY=y#OJhg zAG3aBnWK8A-J+XALG8s_EX-wHBpq%_ZfO&QrxSTTNzDpcNdmv>;wFxO6E*jhD8EN4 zkH$nUDz;e2sluBXC9rSMOtRl*l#rNjqMcX$oV!z=M}KG6ACySTh+LrFIVYJpwT9Q% zH#60>7bsQ0!~+pqE1~$e!~w4Igz)IQT9+Z;)y4Wn`skzamLvu>#AD%&Q0<}Dd|DKf z_)^EgSZ98vn0^coPRw}F`AOZ0Ya5Bv2>LW)ugheaKfK~|sYPc5 z?Pd}844)9`7^G;Jb&Dy1+R|geb4C>&%69{#?tM|Pef=+ zHg1$u@8E9hu?%m@P=I+)$%@7T;?=Tu6tiq>CY8WUL9TR!T*-iuci;_=#1G>g#X(L-xtPp?2>W25w(KF~Poa*bX| z)(74t9eN;VTUQ&j#2b~8byMrfc!c1r)<{=5#=%%)N&Q{0?7Y2}qAqmf`}{04q0@TDH{GZIE|MC7SPDYo@4)A}j zF|9t^HVlP%yQv81EgsXm{&uO5)9S>AG0L*RR&8#YQ3dmHO_%klvxc8x#`Z8R@BOtJ z0uK=o`3%0mn&PJLHO)$@6GC4E9yT2-CA9l z@Qwg4@UkcoOh;ViHKUDo=)HZ{lJDD~3-50!i??FBy}*ultE%>+j(9sXA(qmGx6sko z{QX&e>1`&`8~BxKDTRM5I64>Olh)OB)ZW(cW}4LzN)fKsSgr*VY%upc^G}?$#8fTs zYwCS_5MEcJe(b?2Tle8{XGr#C`yVt1Ow+Ajqv9+CFrzR2#Rj^82A77p- zs1_$v+UZX?ODtP5TNee-Ftp1~w5Ip41^bRB(d$3q(2Xrk7sUrtfs~rJG|2RA_CU8S zVC!)`!#a-DGEQ^~NM1jqaEd1(X6@6FXfNdF0ZxeOzZ2#Y&0q}PaS4#zH>f0;yz!oq zsEMPzj}s@Q>stCouY(lcT2*IEBZKbaqg%fLg~>)us(ipaTPTC0;9KVRRG2&hF)jB+ zsm@AFGIlN1mDtYqsXqPj>-0j?NTdBLsxk_C48lq(zK^Yze3m=Sr_cnxAV9BZxK-ky zf(udjUnL8LoRV}<0k=KP+^06BN8jAE;%OEmNUF<~WQMLWDczhoTJsGr{Jz9$niiIu z;eHZedCyw2>A|xopCbKw?~K_JHOCTZMtg^18yb7>xM*>y*qUO%+ry!~z^@a7 z&>}RnztlYL>tn8cAQ3QVeNQvHo-cK&{Z>$b>(jDYAdn%AyfF$xXRwc#``Nm(Zm5O( zAMp~qJgh(>gmcFaFR-&v$g)vKCoiXM?cKYLMV_f!CYFY;QNwB?SPjRC*D;_0B9QIt zUBH#$OSBaPqa9|9kCHgxT~Zdw+;zKO7qJty$dQBbsiA>)C7?bT$21oT4N~P?{eFp<(5V2GG!8+;v3kGs8mdQV%NS`2UNn0tkN=g2Zn&P z)g3mT6bBy<*opG=O4F+B_PiKA&pTY1i352JwY!?XVBSj3Q>a zSBq~!QqQi-np{__WgTsu!+G~<@CD#FJ7JPd%MHJNOr&q?1p@JC32Z3$ambNMme z&vw^oe$)HLUm}H*pnFY99zhNe|C`zen!68(mgR*r3?hE|@fEExsYHICnpi)2VPCOv zH0Z?XMBUH4Wh~kA=}wQr{g00o*qf=v@V5H9;?3s8EgsH!Yl$xW<@Tu#!HkGf4yhbB z>-$9?32#5UevNO#?Am_>EvkoUGUCfKLN^o_qN!RVc*dR85Xob9!nY&TBFPgdtwsE4yL8(?$Bg4ej6JFCZHIY__m=FfpHxC%r;17+ zK1=DezV_!4SS(?G=uWPvow5Dmi=QQ$t^&fjE1bYsMpkNE)9o8k&LN$898G`KlXar%+BtczXEj4$`9l870lPu*~=+bu0+WmP>7U#QZbcg-# zdzR^tAqv*71f%%ic6bX2W!gIf8+3$NJl()$+cTSuWo${#;3C2Z8hXInpipK{J=N*N zGDSD`T2wls<7pmDx;m8lIr6ez{xsSsq@9(j@iMbIg&zHQO6bc%l)~M^c#(Ejq7Y@z zZsRIMm-OxV1pKp3=~PW|DrETrc@k!z*}md2l1cDCg2#th6vuPXzoQv_Z5v13S(sIl z%trBuK9r=%GUL^xI3v#--9L!^Z0{&bB;lbsHLUbI0}gsS+uY7yXQ$%jNek^w)m!rIkRQ6T6g)g&y;K+< zi^MC>h6e@6^n#xoOsRJ^-iN1z%BZq@rl(KzzZ1o$CBi{b>2nqCE}7o5={fjo`RgJe zCOZl_4s|aWhN;wi*m@o^^nz%N*^G3eA&#NiPi2R6fjXchaBwHuTTA?D6_EOrbO{PN zLL#eh^RZN$UfWvH>OmTxHkeK{aNP!YaUrs|?X$5P;9|3A;*0=-y*B{blyu3;=^)u9 zmD%%wF&};QZM)Qd^X-j^YO0VM9bBfazr%gSjsLUBO)Jl9&|$314$4M!4IVYAR2sT2?@WoQeL=;SkDWGkdv5jXAk~ zF4~CTczd$oDD_X%-3b`hHoQUWC)V@zzAiN9I%RmIh*ojr_@xyE^U9}{>-@3vEwd{b zd?%>V3*%kgUE8QKLB}dG6NS9+RuoNgiRO*E`}g=9PJR39qpvU5Xu!F4Z;3ZA2py!0 z<2|4qA@JOw?;JZN{}F_A&w~^iQ%*<&LSV}DPN-j$N_C2P+{|-%h#|vNHv_@eE9}%q zN@hc%jqOQHOTbN8Vb61PYGU{t{JdYZ%>_CMOElP5!@AELe+|y2%H-GX&rmEyzj`f| z`kehx2)tNtRZ(Kad(C!iP;8M0PIo=uksfT{(aP_>`*kjU$?c2k4epoDtV>c1a|{z@ z$@U>Zvd=D9FVlVX3w$Ma{G(aAec*4lpTMQE`1vhsP8VVZ`9w9Z)v0-5e=L&6ymXhN zk(Gw)8J_SM?>ruAa4y+EA!t)0(Ro!Hd{4(k82j}2(0^lS?|4COO5Au&aM6Dfo@L)e zwEJr1W14!r_NW8bIctuzaD_0-YYP%$I4?y(4j=D5CLk3IX&qymOtla!`l&Q|Zme;> zqCZ|>Zk8QTJ^mYV#o4mp#B}1{szG_TJ+B03rch9?{PRtRlD|^P9jAlPHs$JXymotp z)?pEH=@sE-A!7?$c9R$CDPN$WS5}VznNYgZX`YOimZaM6^(N`Oja*|`H29Pp(`cDw z>NdRVLH9OfiIClOF?R&OjVEraVkBm-#;?uT^EbmP6K}SJy8rbac6wWfRyEsYI5&yJ zo+ie2;7sm$h!Lc|@X0Y$G)DlgOZ3T+fJu6KED+k zM|txNzucXv+ zv#QB{BENR&e;?BOj9+$%ZEybMLhEsJFDFcICo>~u)@2^ieaobRJKlY3d1qv+p zO{P=6V4ma5gWdb*Ch6Eyq;toFoAcBcL|t=a+PSUnSFRyEZgUR{*;AhY(`f?h25QgJ zEogXWJOoo5l7?Vp40ivQf1Hl%z=r**R>*uMJrq!P z%`A{6aBL_@%!nnFR25Rh7FaxEuVsFd z&5|_!g$Gt$5I}MAG91chz7qKEUB-!Q6~RVPCVp*hq-sJrDnm8i^@sf9?;*Pqjp7SS zRTBmvahx7Ce6_WHhTEZ9a@MY@lT7yydh@ zyRvy~aEGPqH-O21eXx^WIcZokUhUQFL)+r~h;^NJ*a+uo!_(ND@&tZ1VMu*FxRUgU$^HYmu)Kw_cDhA0a0dnRD1Oy^0|7Rf5 zY_+y1$u$vFIN**WBdwk^d-ca!(xf^eEvF*Ex3UwD*B~#Rd2Bs)I8OOp?UooLPH<_h zbME1+&mxQ^&TwJaZI2_7FR(h}!6cCOGciirx|m0FXW7}2DM8FrnrfOk1)OA zWRB68iU)sN#wN@RIl~8PvXdTn_O=emEJLiW_I+->8IvP5>MfXfJnjx^bN9EgdQROJ zh~WJli_RN$wrB&n)p3J6>0PI*ej#Gn)4rsPqfex#Jfp!)gy9$7n^RC5y$cSw%^6d*DPk_@MTopEE6fd8+QYL z?E-tCIP)`KJ(cPOVro16Yu6tjdmG%kvaX{lk_=so>?_hGvHklj5p87B{xhR8RT+R%b7ml7Dxvp!tJ2Q51d)c1#~&{Y8dZDF`p|P`ar8+%lN&ayc)< zbIxjKB^ZK)=QKfhm~-}};(T5@$utLzNI~Vbo8S8ndPwuQJd>gPl|^jKaKYh#bq~Cn z8M}8{KJ|0qmFb+1UONmvuV%WiV0f6Wa&hw`=~Evs5JP+alP3jT^QechXB@kdE0m>& zL#F&>m?9aeD_*%k!!j8weNN>#;h72YJ_yRIw4MS-Zeat-$H7aei9C{gJACGeP(&J;^-}+2yo{wY&F9 zvOV3xwIth)zo3Y3y*O;y)=BmJGv4OU*q=R>zI99_e45@3V$M+YE(Hd^oEaUeX=cFu()e5U zAzK1u`bFT9>8q62brie<}j@UukGgcoVy<;iVVn}I974IC?(In6cowy8`90zNS*D*razSwchsIPLm~g1M;{-N2NE`k926zPp z2fC{Km}Y%r3GXglqV$?)z1=DcV>~U}7^@(-KHHilqT|y-E>G!4VFhdJDz)Ce;k83s z5hwsoSnKgL{d3SL#57Y<-v_NSR;N8=Q&3MlnxXlq68CcKP-6;m?N{6XlW}Ylo34E_ znYo#U{(0Nqy>=>J6vr0%2&R$q+&$8_)8l>bQKU3ZoJn*`#*UC5pQKJ?GFGs^Wz8)< zQkn#!TK%gMk(Az@#$);C_gc3b(}RdSn~d% z_m{946|{2Z%GzDOiT~9^)xB+2 zskxp4FeXx$x6ymZr0*g)u=}2^n44o5d{Izapdr%Beq!5tUc#Pynpf&2f4K)-3?|!m z)+G6FAPLF0zB_nvoNp_44BoYk?u7(E&n{r+h!$>hb6qYtL!U^h!qu&5MY*XW>A&`sDKJ?Z`Y8|KaP&XuZV~ zWv=2RAjyZ~f_W6nowyemqsH7fZ_ohbP~ECss#yM5Yv=OI8U`JH_ZNP4*Pt6I(oi=6 zw-aU^K*UMho4wR~ynP79(zU@j$jDm>_K8z^iLs5K!Ce_H{MnSTP;kTJNQ)%0Z^C^x z3ZwC-qe*pNn?DQW{KCANAKj)^_Tjg5kvf*#86lEOz5xbd~+ z%dVPViFCaxls^u$h&0s>3};Qo)O(%Xf~oRNC{wvNr$%4DkMET`I;t2ktgt)#(ImhyJ5mQz_1XDqa_$a*6e=X z+%u-hfyMl)`Kb4g>v(H4X`I@#;}XH2?I)@nkf_lcaH!UHmg;~q@E6KFXI4wV85;U7 z@Wp->ruYdu<)cf-EuDX&{1#i2bHl4`&vn<+p=;|#5lN(o+|?bgVJNtdrp=(GB>380 z4gSoXs0r?noQ@~ydhCYN&|N;>O~21vM|n>3hB=t3tQ~uapX~LX9e-hxR%f>$T;cPV zp^5Lfb{QNX?)EO4z!xJ=@!4`GJ)yja9QqGW7{zTi^Lu(!7vx8U(7@{|`B5GKsh8#= zYnN8O(kRe~y5KsMnk9^X<1Rn_-1@OV>H~!d7*yNww^~7Bam$TyHA+5_i`AoT?vn7GS1KO z?=ZPFlx+LavU=kE@7%b(jSdO9NpElnY%p%SHJvVx^B-K?KU?^~=DqKUc|nJKflSGU z#5f_Mw_-ojpG72PgYzbUj%f!&0w2ek&U2?Ph-u(rak_nCuAO-?pRm=>!LK2rUfhA}R4rjE_bTsuPOGru(| zZ2a{f_q)`&4$X~W=RZfJhka$rA>0Z)fb^BPKDu=~1V#G`Din+WF15gw_2L=7h#2wZ zf9m|K>lJEM4`+@3nAkKnMfY9})Ub&O;mQC7b4K@_v_h$LqRO9NNP0y+N$-7ZV#la` z#1;E^&-8?LE)K2zKXtxx{NN%y;m;Fx>mh-#k3L>dI8xFQWC1{-(X?h7uAWdeOo^ef z{5^|j;~;b`aSze}3pj$S&1wwg%I%&KpXHk4wGy}XJ3P!L&wLlirL-9Bwp56eFNb_~ zb?O_gFm-?_XUt4u>=han;Ktw%Ag9N=@h`-&rtye6tnd*$e8c@W3#y5C+(RoHwrl6D zL}W0UHJIY=03e#+B1<~UWo1zsK6n*}-8xnB5X^BAODCgQQ%ZV#Ay=;AHoG7&V?6%4 zKq}!sg0oe^-#nkH))0tkcfZ#MUc=wbX3*24`VKkK@?W%UU%AybH%Gt4Y{?!7N>XJU zDA-8z60KuV+lO&iehEV??RSoVXxN-!)OU~yelFxtN}J}Hj8Bwc>B_o+xgWR!@k9I9MR;`A-#hi>;{W(n+0p~l=WU0w*Es3w^LPuSHf$&K9g+9R&889 z*LsC_>wh$L8B07_>QplR!Q0VS-*G$bbq&~vSTXZiNTc6SZndy@70j-`SbZ)-uV_$R z({xQLM7K^<=sgbxY)V|k!>v-eBPoyabDUxY{-CHuGFB$^LUc$CH7p$hknZr7l`OvV ziD-A)c;mJ?KCvm$1%VE!@FL3^$&8Pgw2G~CPKE1jgJY=Eu}WMzC{AaY7(pV0E)XGD z_#@$8DeWhw{7%?#psy6iYQTv9l?Ns;FkE1IJ4|793bTnATQftm-kn>va5rO z(4$}yFeT*S`aC6#CfVf8U*GRQv17-a_|!2ZLN|W@wgXWK1&xw>ht+9?K((3WfFJ;C zNx6E4^Qj@CYH}4nN2s5a#s{u1Ws{DembVJ>m)q$*v~u4l0wh>~y&2R>!^8gFRzbbb zE$F2lIj!L5@5IQ|lN;XxYi~E@VytUJe$zR#3;N2h^w!lOpHUPPfLxoc=vHrsI=@1u zu_BN2lbz24;x-cHf+c|hWW9Fb-DTAWYPeY&8v5u_|1;&Yd zjCi2*Nqk-OINo%ZKx0DCpszySnNyGA?~7}&*v4-;XvsAnuPiB*bZ-$(;+%V9%@+bD zlvjb0wwF7696BN=tT6djn&)z#wl6ge~G>a`RNxGtpcbaKX~mjG_5 zKW%q4SsBw*r>)&<6F!|*rkj~H4A_o<(0Q_L;^FPtA@{zpgP{4x8&1#hek zV_#>P%x40Ty+dCiTe{2w^!|Daute1hY6guiR`b5xd7bh|-Qd+&9=oUGea6Hma;*tk|gAwcdGm0`D~@9ZR;c)Zn?~_ z$ND^gUW}mb^T{Z8xbo0E-Q$6#m*aORr=8f)onzts3cjMYH`DWfW9-vFWzvM>dCs+> zMp5Hqb=LykdLkxtd=*8sMN@qCCte7a_!1$=RFi!bz0T9x>RqV43FS!z2d}S1(`=3& zj?21vytv)-B_KFl!>$VM<&JoTc~RS_E0FsJROa9?uj;cev%P!C+bY%vD(s@^U6!&l z4H$k0x+UvzX{8Tn)yx72^IXt)tULwgZmA$;X!SA;)~dtpd^kj4vi1j_ZUud8hNyRS z%7cyAXlRsPFI)x3tF>$~t@0=QSpY@F9nJ{6ld!k5ZsXy2lw%x2pQ|16y0XUw1;^1L z(5Cza&*e3Y+i|?=h-F`_SkUnU)txVKR~Pn4RCcMi6?Kp`W{;qus#}Ut#T{vW0kT=p zHd96}ynyy$l;S?g`Ti+p>ySYVoN6G$!Ysi1okoX> z>Wj2J{v)Vz#)jSU6w>z8p4K<9TrL?U68XtCPrF@>J)s++VO_00Z~1F_fr~*o=ouCJ z->$yG{!s`)+oP|^S^<11uo9xQZjJaEytEn>5=zjp$yzpK#%yR|sJ3imImRcn>?cFl zj)N$eD_tR$R&gnZKtx-xb9x4EonSmWa{_%+9gs_Wfr*$eQ#qhB$qk5(C4xEesFOV{#*THIMIV)GUf z>IgyHOv;zv_E(Md@~{_OX4@8*dYOb8TGId?|H0toFu|yKmfr(b+xy;ne%Z4vbisS39Jef3&Sp zPC6xAKUL?_6$;5DtsOTs!}3=zc}m7r1X48UtaNc2Kw!8c(d3B?!>LtS7<)z`hW+&Yed{i zS^t_mRliFH1t#a?7@=2LXF}ZB#L~3RLE%*|d|rwtW2dut-GJ{X+)Fqlu(?iVo#Zv{ z_xm=zCcP#u#ie>a$7tAMo(5||ojQvxnky=ghAdp@;gUG3zd4BCdSmn)*=9EWW&Qc7 zzs9oxCSsN~Nwi?F1YC_X!WY_Qqyy5vBLMqgz9j zW~ANf>ZKYa9JCs66qAI2rFlDydlxY^r1BrZWS#7{Rx6Yv^~ae7&vfK3yIj=J~B%}vx7WlMfOscsndasV@bmCz@BVJxn#Y6`SI zh{FrFHIjVM$R3d2$(XlS;!8*}Dx@IGrN7j*ipzQAN4zLc;R7`zHEbAHk+IZI2Q6dG zesz(+`lTa(IRmgJfypx{RGjjcflZ-x@vPgkHnvAj3?9bdatMOa{$7M%BUp6gtGs>!K*Q&gV3sWzwu84fci##Yzt)1t;Yh1fGr z4hp)R;B)7UT*=^Y?Ui8#mUYi3big!7tR(XTJN>v?Cpzm?zXmaUXXfK4jDFj15KL-b z{Cmc)EWv}jt*h(8j?e*b{&5s|$hEY#YqfAMEXe|0BUqM1kEoYCRO`}K}|U`PF11~@cN zxJ3#Fl~jG>{1NaOL}Ptz(E1TzzV>G5z(q4#UX+9bH9B&cz0&SNE~*94dDd%|4(tCB z{I7x<(pQ#ppMAM+sSslcYX1I5Pz{DjTURtP$jI#HNG)KrarGkTiN9RVpEXgQCwp0m zDY*jrw5@_>KQ_jUFwkWU~j(cohAO27X$T`4K-6|@cbGbD^=te zp79h+l-^eFe2&O>;xicIG^b%D`XkG-pz3TH5>HtS^PVXg*A zg9O!BHNF!X*no3o?D4V%>^~(Yi;bV|gH#`m^rOYQpvV!108f8ff>dvSLFL`0sO3$> zaz9QN!M`(n@02Gp$-VpPZv_b5wHT@Dyn(P{faJ)vHjN%Yr2W{}y<<7rJ}@wMOBp|1 zgB+!0(m%r#-(ulVZ#5=9GBes6A)1O-kMl${Fq#XcEZLu7C}qihbZ*ngwem)cWn7CC zw7M;=@!(vhWni^i+F3o-!Jk$KpYD)}$GzXbzc;Y@KSpF0u@M%xcGPJw7U5ldyvp^F zmx2|1JRKSj>H_-I))4mm=y6070Jxw~Il zP(4n$n@7I<-(D>jlU3^kba@_t$F9_4++v^Bq^MJ8S0d zg)uCpUe~lQj%bSkfAp4ik7{VXoNdipTn;CQ4HOuqYa%I+kw_}q;Pe`rxqrD}d!o!Q zo`^L`v-kcT{i?1xLd)r12&Kd9q8d`z^Eo9x(#hk3lMY|^IK)lmA57W7+t}zM615=Q zL>iL$7I?F$20`34);kiS8d|;bW^T${(t4uh$Ub=3dRG~pBq4N!;M0gFvwYk-$hawr z&AcbHh`JgbgMd5BeYE2?F?`z;JmWKAnH?i!cH%5F8rS$@{8j&Vvgiz)?%I>*!v3z- zNz3=;-fr7!)>mHoYjB)+CjR-_TC54>BcC6{-8BI;dVP4$eqg32PXyAhwHvn25RIpK zH8sc~V>?#nuDa1sfujs(9+1)r(wL8gZsXbu))F%ua|4{6eH>f{an45t#(AiZVy6~3 z)=GeoE{)m~4tvQq&!(>GBX_MMl7Ry)!M3_zi|8^ud%?f3qiKdsopd@;Lv%l~lmd22 zD}OP9RRP2Sv&!h<+tljmGt#-&;Oaj(!-&<4?a7@$o{XPsYIktt&D^G19aYXP?!K&D zctu^jaTF=HxgA-v5(~LUxu|$qU1D|O^1?Dg{(WE8aIT+`=rL066Pvd#*I<-!@ePWgd<(uj%L={p@^w3p_*a(m zWw(736GH~AQ<}`#fC+*S$Q55V1t|}|WqL_(*_*LInA}FW;8e=%F7RCD7Ks?1dm?S` zM&qBu^6q%#B3`?;rg~(;)2WR!_bhPwDnUeg;Npk{M&4f*7)y8EdVFhevNSop%NU$3 z+3n4l>*b!bszn=o=cA3G{s-XN8cF1n3ZOJXelI-rZa-WP!w21ysr2@<7lu;?#@MG0 zEG|4GJ|EJg_E7_7Y&Utoi0}I_200 ze|+V0gZ%7V+9@5pZ+TBD%tJkD8{%Y~^ne5Fk33k8WF6;s(9BcF*4Ve-h7K*Cms!SYL4(0=I1rN%72lQ5>Y8eFB~sCL`;qEoxG(1cBPDaxmBo>s#rE4hM;0r8A;xP=P`e$072Dh{Kx(e z`LgY9u=Z*iOBwqX^b9@);Bqfy&WV2OTU4_29=D@JbR%%mlRCQ~%bb9(jnElf#4|Z0 zbD7(6)%<-KR8@3|&VVO)5(qJ9s(xmph-3X2TMB|x2!3IDSu9^(llp#t>Z4AXxdxL^ z+o5Dsmh-~%8Qnc*7Y9cG&Lqel6S@V3$YAnOh0{W5_Oupi%;2e&hA_WJ@&xZ~xShC0 zY9gs0@=+UoKGI$w5i$V)=2J;K5?FpE9^iD!PGe2JVvhj^8xl9zKBue(B0v4Pu2dp+rYV3Q5In}t72?g0?b z5j>dKA&5ozR99@g>5=t_m?#zIpryLMvuDPve9Mk-T>FZnfk`%$A|&@-Z4HszgHAIv z#<2i9WQWz%psnyQ93K((jed{$Uq*c74+nv*UrsQ1{qUe4bm|FW_ zbZO@I{OV4d7xFCs)_z7k(8rt(-vlw8BwKhm+9&>HV8b~F=~NyiND+qmFqF`oJDDWP z$eZL_{Br&O3PPb%_Im-28?Fo`0yy}Zhvm(eoBjzPf^8gk?u2H(8T(iS=Os{m46?1C zhBvd+*-La@@wWd*pqie5Pq54VJwj}nF-OudQC!XT6xstC?6qYtMNflP;M@ z8nXigjcTa;p8vxBi%z=Wnq71H6zI!qs`XqeX&Qb^jGXrEIsu4>o3-I5In{PN&;0$ zdMs*0!c4hL;cqTafkLIdv@C;H(pH5bo08mWVDunihk9nEJsu*eE>7t`S&B%gJ4x zuaaS~PMq5(aa>%ttEr`@R>-y+F3Cy&PNCu3-vhR*`OCO^z^UR%j1oTjfFk|?URX@a zY?M4l++WbM>z@0c+W3}_SAJ#P927Y*{o{5iE8aBLVVQ9?`nQfvca?W}hV2FpvRnbL zYiR4Q{uhDX_)=dte*TOstecf9;W8tDe=DMJ?Tev9^k*_S>wW&z{(7&(k2JNKwxi%n zMPl8UUV?5{Pqnadef#6T^2v3i!4QJq?~fm@?IM^F@f!8UqGgs4)&y)s2y~aVEnidm zT$ITCILeE5TX3UO@QI1iN}Hy1m?2BW$Hu1@KL}%?Qz!W_N2{cBQT1QGo$z;$d7_8? z3im>GwYo84aaf9&6t|S%Ro5v>R|x<3jF>Y#F9E@)sY|F;GIonvZPpB)F8%;HpSvg=Sm2)5b`%xn3gAloISls(< z-g2Q*AB3^9jOw)%DCPh^Ws1cgu0{n;y4-pEU;N21dDxDZWK-RnC%vvslNM6(y)s=F z_D`#V>nuw=qn#%5Sp8xHf8ov|z7Y836(^NSE0+z{O)})BnqcQcH({|*W6#q0t>t8x zw@t?HlHA2>o|p7E+NCcmo%*FkMgMTXqgkCC4{+Q|YwaA}0gI}8Zi`eSVngiT`uCcX zfZLmZKTIgxF)9uC#OWgMh^X?B57S%@!31sT_u8{phr?+TygUrbDW{YE1y#SvP5qBR zmT@OTldid$?A<#OfD2I{e_>a28JI-}02aXs+9KHs0J`~s?(D?Vs7HWD=aao;t`^d# z_f>CQ=C+Tke55p^Ij53fQOQ87opn&k3oyPS>yl-~s`7u%-o5v`?S1clAxQdGxOVcI z^hvrMB|gg+2QhaDWISYT7$P)hvfJq{v3EpaW(y5BZNYZ#KY~R_-fzczojV&5%~qlR z5U=yeM~-&Ym5AqW8Wb1UO-GbzCM55%ERO26uXygA*q@blUr15y}4va>s)&-~2M zUIRBgUqs?oA}bv5qZP-~SY=#UxHU6{*?L0eN6s;HaKp~=@cN{Pa8JYZ>87X_eawYi zg(_F}?v2({`iLCwc(7JIRN65K!hNVKMTvS18_T;s;=Lk-6m+C=HPj)0ZUngg$Y-xg z_TQV)+0Dmcd4lj@rxSCtuAsj}Une!oCJ-bg&F(}^w&cNv{ZKDHH`Ir3DECTc;PL%Wvrj}?@WIn&#_#tnYEaL< zz64)De%gdDkxhzCxLKVJ_d#GS1Rt#~FdyBL=u~7suNq3#(8c|^B3l%{0lN4O&LKqZ zpC>$8&$li`$&1@Wa1cD81@kU<`Kp$Fj=NJrh!GsPhq77DMA!^+o&gnZ(A{`?CRczn zT~`(-;)yKNt}MA*yK};IkEs0kDC;Ip(R~5h7U0L3>X(?ISkgFjYOAAwhqz!)2Ckrd z_tu#7qMvbb+=-F=afSghi%xnfWvbclYh_Euyi$hBIMynY*}-Bpz;vy>2CCbAZ;?S8 zU>gXe^hcYk1uaM1;4psvJhZEcyePHYaT;wBYVkQLNCSgtpWamMsco#fS0jg>!1qI3 z3l(!0+nShfGH#DA8$1Jbl==LiIcWa!C#P4qaf8{T{m6AFh>xKC>B*-BSKBRuM|7xd z320m23J8wtV7QP07x#|}d-~Lmj=?j^eaHbBnYCZ+C#=JV2$NU7@+D2Y-x0r6W@aNL zvFPtOd&$ibL3#ddjgtCiG1;YES-lx)&KkdPpMRrNM^`R9Ku1_MfM0~9V6Sp zvGX?DUN+!D+<*z2xk%ag7qEHAOxmdON91dwrl>04ddRqN!L6Ke;i^ zS_h@7_0CXTqyN;V##JfTdaXvZpeWl{wzToN3Gye4gM*Rv6@rs|mcDY4&7IUlLRMN< z=&K8S(S9BB~ zy}{%It6};l!s#fm?RrfFWo?)&10By1b^OnM^>_aLo|1Z)VIPfWK)-TcSJ$~AYQQ-Z zkzz_s^tJSvf#C^Zl?6U9yiMQNq%Ec^k7J6>Yie!WC*li(5#N~TwI?6=PJX;L5y((% zleYk(>loO#WY^P4X0tri7y|dAA}%&v;qDirPf- zc-?yXo&0W_h>NC?4LR;P*dzvhnB`cYjE*%2c?|4?JRat{(VF@@$&dYq0KcyJ{>54s zPZjD0qP=@us#d7ew0m>%vl8QcsCDvd^xoTwnkx55?Y0*WcIiL$;n%rX`8{t8gEEDm zD>2>hOmp6rxB-?rul8C#O;X#XX5{*}+L6b7My3t>jO4e+Iqcu9r`q6U<&T#9y|Cm2 zu;~1)}WaMK>qmF--iIXO+h*{EYLYnC$ z;!AnpY1|{78^GJ4>ejgLcUbwVNof?HqE59Ro~Lontsb+u)`R9Ba#U$$td@K=%xQb& z-|5QKY}^;*4a!jsOFH2P(ra4zvU1d=pQ7p$pO@e%Zc19u_`o+kc43A1n2JV3Q>30`o4*$`PyR zaQ^J=w*45AD!b>On(CGsfY=J}tR4USD<%xRAWPo05P2)Vf$OV{N5?>r)8{OQ9h5hC z1B4}+US7QP{3JP%Lsp&8LK^b1%FJJ+;s;#GPnp`AHyjF#0hEMWOBA+-#Qc zGG1{Xmj|;8f}Y-EDZC9>oX-{MJ6ujnBpYuPM-Q9i?sv1%e0;N0qG>$aw-^b&Xyl4{ z2#PPXi?ks$TD*Mr=Q=Fbjbgzjg?{U+^a_z}5`$0RTYKL?Q3OmC!&2fDoJ9i2Xa5dg zDcbZmo`$7!%=5MZ->=>l%2cILq$-RjKjL5VCj!YAH(ZzvL-@N;m%i?G`3W$>lm3o zpTAhVet(1F{X`eNZG^ltSZp9aXl;718cncSBTMNK6|GEL$zxWvur8Oy{%Hl5{Ea#_ zPT3UG=UQha>L1~mj5A$6zP|HhFH(3b+*^rN{6FC$x7r>IFec=Swx$=}QHYPuliBtG zmtrkR(!S~*23E8@3M+noCTsSTm24B?#-PqJuP};ikMhgdJecy$Z*%~MYZqO8V%+|& z=V72i#ZPC!b9tD-ru*FeK!m;+O?fS(#Py-QcG}j|>nkqL_6pJ&Kbzbd6AC}5HqtxT zDV&_r?0IMeJj3@zH&07{-v?GO-GFJzxIVHDoKRB(qj7{@bHhqBno9=r5eh0Br(C*~ z9a>Sorl&|g0}3O3t57!8&e^tc0*7u!*=cJzu~E2-9~U5sd9xkeW-YMXKH6BU8_>z? zx1eBKVov1>fZPeGA6>bQ7iK79XXwqL)?PZ}1NPPF@8-CwrV0`+MT1 zHoPq&BSxQxvI4|b&BaTdeWUD)EVnZ03vyP6u8!Rr!Wc($Y2l~(b)9Tnsk;aSz7-gCog-+m$M?RT=w?V z?TvQ&$PZvsrx%`>vD2Rnn80I(Htus&f!0{T8lA?#tBy;Kf*xxXdGK(5CO!7frJsPa zmFUD{_mRfKGKj&r_`6#+)C|94iGx@3?0>qcogf= zQ_5b7K4edl zaG^pj2YVd7DmY&+*1hm5AH^~s%=W>)xz37qb>`59Qg{MANygX-ds+{gt7tPMe{Wg3 zi=Wtbhv6w#{Jhc0ge&H7O$P&Or+O2MWFcP%N9^kC0B0m$TQzJ17~DjDB?P5V#^ml7 z+K9fNZK;dPgGZWMoJn-e*8deboIA;HX|b&fAn|-dlk*=0{?Pd$iqKGKWFy>47iHZ@ z&ObZF7Z2Dx{z>!ZT+xZopiqvn^I=MIH zC{nKmwE#JKeel9jp7T%fatftx?qXKt&o_rXYZ`D*CxzOSPWa!DeYnE%B5g?y&)eMZ7)3{vKkKN&K%a{Ir0Mxl(V^VjhlKQ5@PjW)Tuw|`gu)jjo?r!nb{j~r zzN;elIHu3z?iWqAWJbXNUMfH$DmdT_|MDC)H4NFlG3(hwwHak=PW8lgzen6DwYFF)e8PNOnz6sI-x{{9Ev< zya)Nk4%r@RFgJd4=(}Tf;Im2lu<4!jR&yv`iSXK!ok?>7lHB?F@_-A8drWz_G?@zV z%cH`QejXFLnwr0I>JURaxmFkOVpn4$j%S~Y!q&n{Pv)g-f7$J&To+kyQ<`}YD~8BW zG2B?C>J~e1Pohze*4=8H)~lht74?c1Y{@Vn?F0G6*)tR&1Xa?msltTwPaBZMFG#c$ zw@F3S(r%abg2Yi1Lio=p*^|xSEw$(!aqDwo-{<-0=^fTVrv7c>Qs%g$2B`&_y``Jq zkb=Uvvb%#z9;Fab0^Y6V1uU9zX2aX9r(a?K{rE$`eV93yBSzq5b}=ma*tR*=9hs*KqHI z_ZJqPv)MSxu;p{*R~}=>hN1&0IuuX3^5<2_{Cp3Bdhgx)n@+H+n$0 z`+2jBcxpj0w?0<)Df!e4ucj*j955uvlS~5>#eAy~c6O@AgMCCXU%Z`EL%q(O9$B)T z_^3Hlt252|rB_Pdq*AA`5!Cy>mAj#xizmm^d{lAMI08fmQu|8@CdCgMbard^XK;V$ zp6>Y9WVkjSw(UiG`c05<-!tcSe5&L@--57cc;5vYd|tX+LgWn}dK`I0zYwynjn%S^ zPLOgdptT!FK~C^G^{S)i+{x)!a;y4#uN&Ni=%b==|r?^C0B&mxj!fl7nC1+tH;Okc=2bYd`gm;WKk(a+MNitFgp-(NvC4 zllzhw^DNCQg4ov^*tRM^8rplgMXTx5)mGZc7tWF;fm-Ih;EWQwgCBcwYu z?*emF&83K2lI2jCE8&c1f6Xq$#}p;$K;CxFno1e*AT&d~8y*zA;z0|B)AnUInu-cg z`LeFj0uD#$doC0eJAMNkxyAV(;T!s@Re#S~K_h0@#;?`A)^%TifD5nYIko9ooOd z>YwQMmGK%$7;Chsi?SyMc-ha-G9EpQ{qg%|Om30Ixhnbh462zldfa}#AqP}gc*6H3 zo$`5P8dXRYMEtxxkW_N+W+`#F&}eeGX90g9fM@aiYxOA;bgd@b5R4?YRJR-bhW}cs z^=zo2D;c3uxH)DLNt9FEZCTvIXFGthBA~uhNKGy85yq3Yjp;753jrTYA~T8;v_{6w z`7>_$>dyUanvWW@+DVH}i%{?jgx-zLS8-wQB;scU{$m+cz6f@(sSJ>Hi&VqNt-@n& zq3Ven@>9*DGD%L}s@&N3#iL2%>Va68Ly{@%LL=H7`ef+=Z2d4 zmSw1}7X?(>gBEUpQ=@nCToa=-mzt4vjT*}Lt3ci1g)*D_JlT?H^!ogwZVa7unlsYj z#mO+yD2c=EY4J&VAwRi&@pa|$-FE??nYGWnCQO*eVHe<&EibQ!43U!D4NJ8_RBqhF zPKJvp7jd1vjeI%(SZnAP7Yn8*0`P_d7AbgPk+CY|vhL5E{)Yg+IBiCi+1@opS0f_} z4Z-o+mai3lwzBVc^pluQJHb?TU$%o>sbvJQM=S2wesGesH=FC1WDTa&L|U-YN=putifYwx&Yf~_==O%IU6>7)U_TbH_E>=u7WI2R+E<=3VWZJ%>Jd64;E9CXxY?6y778XTa!=jQaXOAtK8(rx^xysO z?ze^elKoZ=xHGrj_=OHRP#3mHDvHBXAfD>V)9NkPTm5@QM(?H)E` z(mUSOiae4$Xn*@s3o$uwGX_#WlbnDbuP!+~;T_&?nc>^8=Sy!<>7rbZGLEh;@#3b5 z(9f|!Ue7c}1I612$$L6cz9dV%zB>DSUH4APHRGjN)d6)|SM{2&odV%eRM~I6t4l6P z{Zuo)xgEpUX#e?6N!}^}#Dq&}r@ofbh`bM(X4BY;fM75#=H~B9w6AjI=q1njgUg=1 z)*!QzIU8Z^(}~Z#npqcWzjD{q;*r#x#=j9K-|J}CJeL?r?w-Hl3$>?yPWgfAuKK{Pt$aBWbna1;t+2l|P|PXM(=Mdxc$wf<~jh8pWP-eauLs zo(@K;7-=N`HRm7vZM9!SuUaUYyeny1?vIO~7w*XO>>w2Gqr#VJk}zu3p^L|wZSS8O z35)RJ@?z#@9O71xS&%DIEbm=DUcB2YeD5o?XVuXQbtM%g7o^ElANjUadmDbzT>qUZ z-{112NxABT`pkG;->@vYcti4G-Ts5na`EK#pPXp;hq!sCvtFg%>@)oHHQ1FNU(FMt zQeW}C)d<@>1a>*LmzK9+;*dW2$*K_XuEjxoG30m2+T-tE_uzvZ@qDDX*05}TKsC=^ zEg6*ZBy%M7BR*5vq$7)290RGO{+xT~jC_+vG^Lz-b?L1A9>}Xb%LPlvF`c0TgT3L- z?wO6He@=i~^aIDBVnO)kDYouiQ|)p$4O8;gkMn4Vu%OlNsZ?W_@n&lLbz7gfxI3*M z{cCWxZ}2o2n?zR9|$OFH}us?K4Mg!1y?kv6(Vio6MawGA|$Z2v*%l;IrXFFk{e z6D=wn&5*)o5gvD=tgo<)VpnkblNNsBxM!&o^RzLp0KvuO-+uY5Uc}?aVd<40wqAI( z2Py7X(G{$vJkRUiGf3+YvjY3{#=}?%Hd0Umq8SBB+L;z$t$0FW>Ka0XXHJeSnJ<$ zDEQ$N-4p@XPNW4 zD*TTn_WZbB>w5~bXlfMOcz+DB<_+~N_M^P8w$}PyS@9{_*qGRrS~!fSC?Je7cB9fd zmI1DxB%$q-_Xmm$?7;O+GU zcw+2M56mjVuNcXrmW>9MgpIJaG6&UU3tc=hm#_?OS0>Y87AC9uRy56%jsp4OE>^Zn-uh&f z(J$6m!=gXA0s&v$cE0){tP=V1Q7?zdYx)%jEgQ~8ZV_vnNs~zY!hRsP7JWj}`%SKI z=Mz5mRc3R5;NQv7j5`+}noY{ipQmZUg*~-Kml&%l0X_kt|$Q zM*NxXOSAQ*K@`O7tm3WS`;U;rA;!x=Ny&>0DJwsBLcoI=n~D22PoaZx4?qN}N?um{ zBb>8JDF3lM4d>3}uY3Bh7TyWX8hKIcUCT?le?9{7*4Yl|;v=%otdajf-7cv-WgRyo zBc43`%py@Em@N*?THxsQFgVzl?Ofv`^l<*ZF>b@3XtG-f^T7U z{A@1tYSvZhLh{U%TTg%Dq$SzVm=|%i1O7UdNq`M(tM$t{d)W#bQsF@TYZ9BFSYR#d zP?I`#Uba*x!JWT9)G_Pua{u;=MQ$A2x)cg6GgkW}(wJAtlWCQxM#q&qV-_!bC2^!N zihotbgArPv+M#BWi_p$&`Otq^+~cMXagDhYs+V2Gbc~=_d~i5s+6bd4; zI+KM7G8W^%tn6BikJBdN7v09}ZvZ$e_H9(5;A~JM^P^4mi8Ln{s`s%Qsc($zbGZ(9 zcYo7fV_I~uf%yH3$d#UB+M7n|@5ro0ursv~)emK@egVR{z4s|Rt8_^v#n(GMSX1&3 zwT=pUBYsDkhTkY%WM_lUX7|$!0e)B9#=bQbzQ`uNr(|x1?=ylfN}TN9k@tPwvA}*g zJ-%X6ny@lp=JZDv*oW%~k_rI(&SuMGth1F0mQpToH~>Cm4GtiOr(KZl}zZi|_X zrZXpWA3v@aHe%3N?)S5QDnsU=Z^qseS&%gN<3C_!j%1qa1UHrT*6bThnT2THR@V9x ztac{XEPF3~Hi+8;DtL7l;R-GJ;YB^XU0}@4CMyU$-W4f@b_OekG>d^4Xn2nAK3gtD z(0t|#)%r%1{JjnRH}tzJ4%KtU-v#KUI_Jjz3VX6lb=|z2*uTmCYP^u=HKAuo`gZqF zyGEKVt&Y~X+e1^apg$mwoQ^qW{zs8eskV-2KNGJHJu3C_A5}VEMtZc*g_6QiwA_L( zPWDAu(CN~aqU}5MO`%znAGO`!JhI5uMQ@gaS}C#3==;;$N-!r$e%&iHNcuK6gx0m*|)hDNrg z27SjCPrR2$iZ_cbAB`T`dOh;`^uoi*P9Wse-cG~KIfJA^ncI~vvKakC_%)5OBmPwy3tHD$;56mpNoBh6{WN4b`^e|yJc7smhO9b{@o=RM^Q~Rjf4(k&8z^xVV}P!`_w}HvHwBh_f9~i0xVH_gv}{i=3cBVZd-`N z@|SS=AGUCx%)vO=Ms3MwH&yG_L@Oea5`pJ>XG@HqW}$48%XF(1OJ~AkDR~u*fAwEX z{lTWT*#Z;9+jvzm)e1(_{O|3`G?x#uZgJlCJUGMO@BCNO4kO&d>n1p+5bDWEe=cjg znkkjWw}q$B@nxCo)CEAl(At>LB{Gz={t=c&OYPkkC4F;is8sCDI0Z+f;_&Zy+#m_* z7-8wLakhKb)y-8;ycyuou^4JAKUG$`JFS$l`o$u$eF8{Ke_@k~ivSnkQGZ_g7@ft+ zrl&x=7`<-SPBp!$&(@1%SIPQquC1${qV0P2FE>+v;n#2jSAJC%UortH0M3Ot7@Bdp z(utkOWlCg^T4LeYrk+bPv!7!!E8l8YW>A}23ShbSrc75Yn{K*tof+w zi>ZP+1N|02*d!Z#vOVo5D!?UBCQx+u_2a_4 z;zK#8c8$q(bj07kOtW{)4zqjXA9H(htz#AKIInU?hCh!|9IhUnoh$#q!-Bz^Qm1wz>wLB}lH5Rr1f}nK zsFUhRMr1eHct@Z7iE;)3*^R;Lk89$YZope+;=i2^7G=Ci(jnrY#-rzgZtlJPRHcsA zoLF&?obz!>eg%}curqUviJyla|9s0L6U(SSd(ee{4FoZu3oz z8!_%3Du1nw?Mx`fuH4#07|HG(C9I3y7cMC>^gm|{UL%`*aY&im_`#pNI!vu5+|XtO zo$TUgBQQ#|71IIRWfmtl)wi?J$Dz}%5oQ{hFX}CIj()r*AeTRmx&P3HJ$C zBYzd~fT6 z>bq<}Ze3pJ+nyn0U7c&UEh(H3I>4Ihw_%~ICZE#P%WKITq+%TO4=(PeFKjsXdDuHP zh1qGDium(3Bi7>Zu-Rv!2fW=>o;`b|qMKg6CVsrAJk)mdbNNhqk$bib! z+V-I|FJX{czq=^gy!wj^WyVKqb9JJPHBUojL#sb5^|jAqnJ<|p;(uNn!Lv=cnK5Qd z9N5>PWBmyrqM|#HqMPjG)t^ODyOx5o!k<(E>7bN0$l9p*!PB{BV-+fAFG8FMmuRMg zk|8hE`0W#vfm_mdu85km;Q#Z5U5+oN&DYK<5K`U0$k6*_honn20u^q#gGhAQ!0f3o zDCMnqu_l*5UH7Z$9xfhBV&S>(SyCy;s%DI(pWX*X5B9Nylh#W^ZY8E^eLI=KmoqX! zV?=6WwS0Ak91+?m(^Q8bb-{AjdVH_^KFhoj>{j~tNs_o&9!G!BK2!imw6 zZt+B)VnMW(CO+Wdrhw7rt5O(6tGUiS(ys@6d%rdHBF^Drb8|l@PW@B9M~cOvB*;u; z2j`$;Y6*o&Be3wE)Uw>C%WlR%*w)lmzuz*W(Ln*asF$)j)mVV+D+YsejntiM!{XwZ zcJD`36n>j(P`h))pI-3oB5PDBrd@l>!V)EBh?ZxhB8mYE&7ZC&Qf;&}Dz)(3XT}Ko zu)6#hRSS_k_4F090Y*o0e6#r-#&o)-8!C30%o8w6#6IK_XUJ4OWmE9{Xnmlq@ z-m+6sML3Gc-8+1CRG>Ru-HhF7W*o_qbbB9s)&M|!T7ZJHpGjehBBVsp#3Z{v^-KM1 z8t<93s=S3hlT0p946+a*5x1&3drg!iykD2iPWU=tmHp|@yNoL#Uc{i1Ge!eT>2k1` z2dcMOn49Zs|0l#mqdJ{HB0#Di{$O)*7(`RBD!t$EZP>}C zmF_r6+mgP1nJ=`-8=O^+&8qaPQplya*;EPJ>QAXr2HJ442V?emlIE7iNBJm?%)zuG z8}buxEL2RXmajOVr)3;p_&lM7{(>1BU2%@ZFXh(P;DT>hlnxQ`-oDBUy*APvVp8Z)0Gij)Js zhE|Q#0jk1}_U7O^soSdJ%8T&NLL``FM5A4rWXH4i!7xxv@gX4aE&u{=jyStJl};(T zWDCS|fm8r8%3#d$?S<>jp+pZC+k;O%GDrDiLW)P~oG*tb@lo z(I`5`NQw=rN##1*aIdJRmmH^y(aIWOvY`x8iZv|fsOniG?3d4C_L5_ev$LYZNKjAG zs!hQi0l85pt|22tzZ3FzlL=|==UPKW;i2n2zqE~aN`?2c_JqF>_CW*_Hd8=sJ#6=C z28b*U9VH{hwp`}1j_>YLs$T)FCr}-Th`MJplO>3@c)^H%W^GZ^Kp#g9;?cO3U)YV> z0;Hjpi+wwsjhJ64BhULyqaFWXaHsxXcug8GFIgH!2`~<*VB(r(#B7p#egZeOcx9o1 zBfHwvkPXE7-z1s#NJ6)^0EHd`aaOf#COEJXS9jq<2~p0{pgMYeo6;g>&?XF`9tH2` zc*l&@YvT@)jALFSR|W6KhrJp} z9;&HwdU(+Nbc1}SJG02>KZrS;>5iu>N47KBXZmNIJrZ68Hu|6RMPC#msPcK20S1dO zw%mpsP;2!GAlleP-X_)2i~1WGaPMM+_{93^3m03UudmV*RR3zD7?D#?|8d}A{IF=7 zZvID-nci3)uH1kt)K)pW;hsC|Tt-seC4H68fUNx2O`Sjkc)TM4e=)MFGWt7uiIH_O z-68&W%72h*`))en?e0KY3mdzRlVC$KgpYl@^0PlF`BBF#Uzi;p%=dq_=_-ZQUiHy4 zTVVf}?3?N=70xEwnumi8NXn37tbQw{SK?I|t-xHK2R~bbWclSa!hNT6sgX#UEMwvF zkW%Z$b~vOqDvv4N3!jAg`CcT%pZ z!JyCS-Y=7$@`f&s{9>8>aM&!%cur&TJwrpBGrW#K$RggP&Q+-e6DqTg45Mt(O3(f~ zDlfJMp3T5dB!{OqcI<_qs)B4<(Z9g25#z9o-ct?6;&N;Nq{*@Ega6Sd0_AcY8YoE6 zBAcnL`HobJb1xnD?hlUag1tjL+4bpY{R_gDhmuKsO(T7r1b@b1|4pf?@uLf$Uo~w( z&HV}yzcl51;?yxF;q5>_STS~e!t8Rek;Xc$S_@W$GfJ#2eZ8bs72EE*6(c^52Vs27 zXovg8>Lpv(za5TUUF{n-VF#z}Qq=MGXIyQVn$&G`1YhKCer>4s zC@hkE?G=4g7t4PTCsomdwMz=sS1?uD8xg=_v=(mp=${odkYqqD;2sSu9V#-VCz9YK zE^{~TaK;aDeB9nW>&w6JJvC}Lex!0yM{ANJL33=ON*7kjGW^4d_fZoV>hW*16g%Vr z)lGsPj?Fux`o7iK%PVKy+8_)Q;(;w~X0pNBe_90|Kn;~<4CcRme5$%RimD{r1;+BP2BwR1j*fc?=a0NGt|z83*C&rAsaLlt4Mo>Y zvK@9`6S#_QBSki-;(kOP;`Ngk^nMwugjvUzhchQR ztFGhaQozODPWps)a!AtTr@7nOT;#<|jEwbR3k7FQOWRfY;>!c-%l$)22wrK$SIWGR z5p{J_XYUJrz31n#BTj6FfB)|RNo8A0y4GyZ3}@O&f$skxv-&Z3yzdq3hgl8#caSUn zK394z9BdM{@11B)ACbNzmC?CofK|QK7oq;_U)INf<3Z~-(LpPWo z;i~M6%&T^(9TX*(zIBakv1EGJ!C)haN`T zo6I**&5dCm?XUAzjV-kX4~)_>DKC_cVB9n{s#LQ=-0K1b2TVtUVZ~BP78gf#F@1T~ zv3(XE{@UCTt^evtC^T$A2O@)}IQDP1B|`BHy>1Q;-GNNpI8PDv_|cKj%Az^G)X=xT zDjPOSRI3!kh0KMJFLGMj#u9D}Zo3f0q#S1-p7^p_AD`A!H;!gXf@E(c<~5q5)%Xte zkE;(Ro25rKUmKO3S>M9$KLe}7)HjmgS3$lNwKvm#My=LF8$EnzkAP-5P#6sr88?9V z1p`&&Et-#Rhm2!eH#58D_r=HOhlZCpX1}H2W8;P|xMFL2qIU9X>ptmih${5IaD2)L zN|Z&c1VS#-YzoF$txu^)NJ@;4Ui9o;!qAP8wt`seiF@CKy$*Qo@yXZaRfl2@rCd=Cc^Dp0nxK}%4|B}g2UabC z%aVRyWz5Kekamj1x*fu-vPY~8r)ha28J;*dGb zy_%DP0%ViL{G=6^@pAfVa~JEE7+S{o^0`#%Qm)z0n+h=h3;RW1&QDjE|OY_vrBtVYJLDI)LD}VO|~fgR1*jOU9?H+joi=Ip|*E66Fs|BJf{) zv2FZ|(o*jFgJdDLZSRwaBsxteBXhdmm@mKCh2)nS(Z zK=FArF$-iSc(sb4W`ln-Em?#0P8!k#hAMjoveD0W_TmVqM|w#>2_{X7{J$z$Uy<{5 z_}YBkSbkVqfV~TSnzMA`_dJJisZL>pLum6u3o@2^8(QiNo|t9ZdE}?c?O)#lY?VMn zk_I34s*?XpvEQd79zG6M;-bW1Bj1=_Gg~CKnhV^`1B6-|j~>-J)GJWYQ%~Y#=xiHB zqlaaeqU*#Z(2ZeWi;b<>0ug43$%3I0Z#)*$JX{a}J5TQ!Z2N28vc4IdIUjI9*}q9% ztFdi)<&RsW8T$NShL~BS$!tIC1{evS`qlWeOswe@#;G9l4Pqz>uq3QqW0D)v#>=&< zM$)3?OE8ysz=CQ;71A9xc{I&hKl<>V-3&m)b+#};%JRMtj8|Eyb`m|-}BOCI* zOv0I%YSs0nGu^+pk0Ga{eF6ibCk`D50$DBZhPhcvRB$opTp&qFf$rk)p=awT68E#I zEyD3q?~)_`Q(@491H<>_cyN+S$evh|CP*Su@sus+GAm%-5L#?DD;97l6^mVrfNpPRh8o@XRUS5&dQO7N~l;H9aEh; zUt-R*R2;Nw?Ax&gQnm_WqK=?Gw;GoymCRis-QGX%9oPi1)I43jBE$sVC~EllpL#=1ibM%%0ws@o21QVB$|g4d^gLFj z!ISM!OSXhMFblEsa_%HbSbKAL`R0(FW?7QBq_Oto?Rlf8)WRG$`eoIhu>x`Z-~=fJ zf0?aT#IBXr!&Jkmp`=;VMEpcMJXv(Lg{RT02Dz`RB*OMDgcDiwr!;Pn>0Te@De}9R z9egFxxDtl*+-U|&M~9XGKA9Q^7F)fTX$CRm07PWF+Ou`jHZlS(JDS7dqZxdxMYe;o z@#{cGmL*M$-2I$&G0lhcUsRCr8-UT5KTrT#0rl+*L3R31hGdDkm+O)>8!OZ<<)P;= z$sd$ktAf2QoAi@9LH|GvA4z zY{Q9`Wi`Y+pX9rfIjgU%>FW;qbjhLr#^LIZ7AUjLw&VX;j86f@u5Q7 z)yV#NFM(jjfNTiqed=&S-ouR_I7_wZw`UYU{i*;X!~vaM?M7Zz{4`p=@RtZ%C4mzg ziixqT+Xh7!rI7q&onx{YaONqk_UYJqnd4<>hr8RrV(cQ(rPN$C~C={?D&caCoA+#x>B zNYW!c`mr}3s^#DCjf$K05z(jJk zM04W(C#fl_JkGC6XwJ7MjlQ^6s5kB~>533I-)nO-_KpeQ{{EDf?doo4P+je8cJI{O zSaAVo$P!XV&j}=KsGCm=Bry8PmqMr}CQd0?b;noXC0lt@SY+=iCjeZ+5x-o@Z87}_ zi4uEN(ckupX4|UJmM}src-#Q&jl746Q&P-udR1O}L;LnoO?1J_jtBy<|; zYh=4Z_XjQ_Y%fBxb2d*??>7>7+07-?7nCKIMOipdxt)9S#z73T-~Z> z_3K@|C1y4kRLJ=u2Pvb=a;$Sr-JCFxKm#%q3vh_`JyM@eb%xo*Vd(Yp*+jN&RS2{; z;aiyTp5}!^Mi2o!p@|7o1+5w zyW$sDj=Z3U(Y(wIpN!X!8>1V4qvUM#mi>&(7KZMGU`nt4#T7gcuh;@?H&u@tsA~BU z^4~3OogP|bso)(4`iQKn0Ax_bOve}+tkV|ByleU_arkJcA|GUXFxwOAG}CRhTIrW4 z_;y+RH)|4LMpr&?UES(bnR}C*RQRYHxQ!lTdfvw!F&I;0+cSj+m9_h%eayg8>p^LG z7|Z48m=%0L?#MljB0!=%I-w6{YkT>w z7l~QKsAZ)pl$QCvW0@4PBF!m&s*GU9arLOT2i~+Z-={uU8Q-I>9Z$iFFApu%ckfSW2)_F5`M&TJ034e?@8DzJp6?Oq|*40 zK4z1t%$QuR3-luO#{=%fKcH2`@u-j410WK?au}RC!M^L;(BJ|C(%y}!RC8^Ltx@G- zkowIrG5(>hg8aZhejP+G%sEgYCxy^txh|AR&goV0fK7kf!Pim6NsZ?){n?cjL*98| z=4n+3clV`WJu7Lhr|WW$8}cVLQ~PzcW4?0b8=nj0ml5IOkwDn?T@xgyuOrwdEkORf z9jRzL^ICDrs`&Abqe6)>_dAU@0?TcV>#4PvQu##AI)U+SNKj8Ul_Q95Q^)C!x(_u) z%8<5Xd;TBTe-L8XiF-dA2Ue#3u*Sc=Sd==}&Pi2hrih??%q#wa)$9H&{9y^#5us2q z2kU7edpZrrTZ;Ta7NG4uFi7{5LO9Z>2~QbWCQ_gyH-Mh{uJra8&Q@`^ET**dZ=(T~ ztg-`TbAG$G9~a@#NzCt)NF$at#lCQ?`axe?wP`Loeycl~M7$g=hcU+qwfw*uid`Ro z@Knxt&RxoXhRcoYul;b24F7^!VA6Nb_5vS-_|fh$>;^Hpx}S|>W!$;^T$+oA(_&=i zHYtTnA%gHXUg(SIquj5-YOP~tsn+Kb3+tEPc@xZI3XkQ~z>Po`a$bCmjw6x`*Y)|J zjE~ts5(C0_l4SQ*ZJ{QbSswc+U5+JzshtZ-2f}b8oCM8e zF=_o7bHDL?Oz#>BRb8AGOLDWVM{7gVZ9lW#N6r2<`x-2L9sg^NuTj~S+p=ne=C76! z_M+2d2Bi-!2bl-0VL9y%Nx%MzP{;DpBQ7~|PA_=Nh{MF6h5q18zSEHsmEI>60@9tB zZccZZm{7*qRF}v3I6-F0W(E9;u2{x;+I+Xxe_4hu4h7Bpvroa}{_n%7q;Bc;C!P71 zeC2&rlgoE4bJo~fkwWSUV(?fAox!ZhV2@YRWyYhrBb8wzrG*oQc}=%XYJpC|P0qdTEWV0c?oor*{^n7or}UHNWLe^7+|XF!N#yYR%!No41B z`@=p#nwt8*=66Mf1aNpG!3O26wtn%%q*+$n{>SfpZ*`L9N8}dhD#wN{WR| z`+gXNzCo!)p>FhMLKHLVEbBOnc+Q}2$rj^aON2PRpB`@v4=9mi02)6&H`=n0*0{VE zgcPXy^p3+jgL`dr-teu3;+cT<=U^b@>p>Fx;$qkdYz#FGH~Bs7*)Xu)IntLKvN|p= zMOgbVPK2ymyap%U126_gp^4g?5wQcH56kG8dL2pj!7lGT=Ot!bi2ctsiaUK^z~^T3 zJYD>{$>&doo>9X32V*;8WG{j=^|5?mP>XS)M0kswCNGZ#sL_xq$d*s_E(|k6I=r<= zI>q1NRBw3LIU7FYt<0^Lv`{uB zH@i!?cgAycK}d`+pQ~FL>Z3O}=>(jD(xg-_Cv^w#Xz9A>Lg`oI)p6m4L?`mKlK9pA z(zWS@pc?$G!HL$o1@f?30li&u3s+c+q?tt_V(Ax&^V3k~^Cy69=O9&UKNKboYnvWc zOAF#Wei3Hmw=YfNS3Ka0tV!n}6UO2$=r#%0e`s6~x~R4OgS?wA2+Ga^73#ChU}S&d z=l3rLTaqCL%B`UIsJT(&!SV>{&ru-CDP~WSf=u(JP%U*bR|3ILKcz(5ZHVp!(@i~P zq}_iIY-3qY>$}ib{hb%%2(0(3g%h>v;>NzBxtYk#QTL7dJ&LGCVOyrW$O9=4QDCt1(VY5x4i~k-#{Gf81>XI;-K-euP->q-|E=LU z)vFRqVY5=Jxc}AZ(Q($*jn(~@z0k*Sm0|X0B6a^kHphYYQLTB*a-0sQGWt$n8b?-b z2vX98W70C>34hKk@#i87l^5wqmR*DYAYbo@{@GG*8Cx7?K`D$ZfyipSHg|(5eOzV% zXkM?_^RkWdm<`uF*3oMVc0w#H%4=;M=0z2L_{LUK;{cxC8do*w%PbZTN!0pgU%}FxDTG=(~x2Fe+ZSw7FBXrfRcsO0;3IVPdgj1hq-obIy7B`62&Y7mR zZ`osiJQII4Uj;o`$&HW#%XlFX#PGtLE(H?r%xf{hNkzqer*ikEhvoE@ew4 z3UmzYo3&OJE72=eIj|p|1%(23Wi5ogw%YS60Y0nHSAfu78mi%EnpKhC3))aiMTq+p z=T{P|52y39&wgEa5N3wbx3hGho*OVJOvD`eJ^foiOZIc)pVG}<=WVMo>4}efG(u#T zq+<3SYngfrMCA2Y{&)rhw_=?Z@+N?g>F@mzb+CJbJ}$}9V<46$($3(RsSdf=*P7(q zF94%6>o%*=n(*tj7t?1#12a}n@ZhIhXeiMZ$n)th$665qAUpdYq)$+FwJ8`jaD^#?e3?&M^jMQL`yDWXVt=Fir(u=o40u{p`)4T zkFgba2qP|=FJ%w;qO;EglINr4um=(ogl+d`&AV#{U|94zyu%X(H@iMw6T*twk?-9H z!$|hhhJEM^8v8jx83PT=wA}v>Qj&sNIMw?0A%i>as6}J^ute^FuHC8j3#h6vlVI0z z_4M?!%8|ovGJ==dgQcAk>AQ)z9{rS%AD9|y_0)qY6OnRzu~fbzF1OH@-X&gO!UpR}h{$Mp*Q+j_c%EvuA9%KJ+WKfyrOGA!i2fFKd*9LI>X{Jtww!==dG8b>1OyNbKk)Id+9-*YTG?D77fm1B={6MP8r!`oEa%Ut4#^B#4 zX`+`^?Q1IXPwO%rg&QQ&Hl%M^SYu}nHXA$o3gPr_y%*DLIQK(-eT=DVaa^GYVTULYws--treqI z2||_Ft5sX5QHt8TidqS=TC-M-5F`|p1ywoKiqlFIrnp4_w~6prsH$5#{GFt z2C)|c)-D#^4JqCJwe+x+m1a>0U=&c%%Rcurn&IuEVeSlh3h8fhzhkaJ`u)xcmPu`J z`|jIMOrkNM)Kybi?l+h6Np|B^EAA3fPlE9r?{Y`Y>)XP1?kxWite4Z0=!bfX*o3GJ z`MdtW`EvEHwNX0z&&i$(F5*YRuAZNi{3`x+rx9EK7oFZ}AeT?n@$=@GfF|vU|4YJ7 z|9*nt`yV$Z?3V9OH5OJQVa9-Q&awzo@%=y`2@WVyJw;k2fZ_)n%t#0?yeQ%sqqIkT z@Af!jZd%uwi2NSA>ZtuR_T5`f!1(-N7_@#PGgc_cv0*MaBq0+;dvCX`L$A3tgl4YG z4tfg*Wv8^XoO)~Y#LX2L;B%C8X2kjiD0`2J{jL@9D-d2nuZ@k)T6S;_(3400rT0R0 z^k+CIuzFm9F94^y05}&3CRB;CsxQBA_k6f$M7KErop8VVaYv!rD?!L)%;F-kPh$_o z^iBTrqw5`17;JQ|4_IzPP68(OQ^E$Vy_h5?fo4h@{xe%SeM^x3qiv1V7l4@pgtu{7 zV6d*!;hu(DY6){z{GR!LHQ#)R&R3OHsh|*=5xWbhc8V>T84#ER@J~+=UVn_?z#gUl}X?TOE zP=+X-)h2lbNML0KT8^sR-EO#dmmwaIqs$95Nc_nVfF;G`un-;X!5eq- zhArLC^Y+=>bta}LXvDc|s)H2pG6mZIQp@Rc>57-aDfeFrkx68wma-Soi#DkZE5-4 z57g2yy|{}k%(aze+~Ka#7cmj&gx!k1`f3hYCICg#DtF0s_VHnL;?B5Y}^})7Ta=|J5LQ9tFW_xCJEo>}; z0?SdhypKajX?TTVR|4=KXjL%whlSNCe}6~jQV$>cR$c&Obd^G=vCC?qCrLpG{GSBl z@$N=sjAoRqaX?(l%=j>%;jz_+ye~HwIs3smvo-CY&Vi&Z5a8 ziiB~MeE+uTg92HaNlVa^02%^tL3>E9^9c z*L707qA*NYFS}$q%f>AO9n!8uvG$*-4K-)!+ea zYl9w0Te9CsWgmR`#eq(yRKCvAlB+0)HnLgj;f9u1W0LNwTt_3Y(jczoc7>qTi~`?j zy3P(Lr6ptEXsp(2O%D_Y?BDlpK2~p@Rae`8CDHwPvNoL=R62bQXa6yp8xW+uMRR82 z5!eT`$;Z@NL$$uQdgDsb@ojX!#{`CCAV?m9O_(gBy&WnIuVFZ56rlFD(YNSka}>Hr zPKG1(G=c{i9*`KCT9HI0*ow|2$%&8yp0v^}0sv?GR6V=I_-x@seF106DJ(NUt1$-PO$Hc{HfIa90fSk~x_%#MYKGy!+mQUdqNp2&*3k;l}Q#)l%>e+tfa z$*qFE8Dd*Wt0hj8LYx3pkYBhUt%!yYFym}>2?3dZI;c2pV|YFPtM_$KORYY=s}&tG zNW=8i*ojoNCzKzY`jN>4NMeP>C@nN80ieBFXP-X1)b3+@<=Ln~W@fQWHyUiep8K4J=dXXL zjka)*K3nfnQ$B#|w09zFw*2|5)%LWfg@59qOAS|M(N9{v(0lIg0u8SfnuEX`@zb;Y zzCIn5)5c##+4`RiC^a2zX$g!@iJ8;HrrZgI`K4Dr?G#&~sGy1YW$aHv~xsPC48Q>s3&P;^EBuE;ONO?5J1tf$A+K}ibt z6wmyVd%kUM%Wg@%#vg>#0%d^L8P7e`-{HG3-!g3>qT>e=;&{n*126*oA+^nI6fQ@P zg;+WD(x3NHZ|kqAwPuvjO#~`$gghF(Kw=lF`3(aS%mwTk4`i}@%)W#;sLokr1P$ZZ ztK0$Fhn$Eth4y89H3#}tiprlF&3LoK8JYWeWjc8Xr0~2;=2<%|LdCd0 z6rO-Lj@K2+aAJ0erk;>RUKpw{uElY_iLr4kgd$MeXF#VB0tW(O)aZD(T8@u??HnavbOs5&!E@;3t_x?WL*5Kb*!=5B_=9To5?}Av=@&w8 zyO?M79y!5?^=dfrZel@b+K$klrdvNh-T^{%q1V(on8;yW%kaGkr?fnG?czq3`WTKc!ZFZ$?;5+#{ zAdPZo<=l#9r0yMhuIz2#?;;!Ii-1xw71FAY`FP!=`kS&+p;Ro2FNaGXSn<%g9ZX#B zxA(x=fB$-=rK{|s!076E31kCWQm{pT6#0@)ZP65YrK8J(VW;59}L7@&mxy-NWCOxEFFdEG`!`H zLHb@J?b*!3OZbo}23Xf-oX$$lqJnl{wn+qK9hd^)Y4o`nC{DDxf9YxQj6Qj|jSk=Q z^!h1{!~h@nBfbPfIi4h*D{|K(OX{(ct36a>J-)Bx+(VH(p23>vryEH{>E?9Iwgie$ zUN<||V0yY^VFh^nk_m%<_Hd=Y6^UJkjzG%_yQh(@y=DDx?{uYjAem^lfL#V;>Zpsx z%|jsyohO%e4=YOkNc3lS4ik`Na^((vcS#WZid@!lag%pi)88-Hu3B=5c5M2ze))_E zUN@YOWDH1poXsZLf@wSNehbtENnJJaugREeUeive8s~JL-BlmqkXFxxrp3*W&pz5E zILW<}VSEs{0fW*`iius%cCAzqJoaH9!?+1r^w5OotDV->!P02I33GLfXJm;*`-lK9 z!{1`ZjTSm@{i1$LCk1VwBq`5r=VTbAC8WE49tyerz4)APmHU@gJYpR!GB{zr( z^fzDkU^FrJ8gp|~Y^X7Xtc3$NCXmE5mYG~teCLhjWh_w)7wISD+ZPD^0 z4$G7RSv60}-}j*|PKr=9K^Ei`TSrCR*~{h7BScNa_V^QtgzNYs_o0j>7L z6{jb6q)lC_6n2*eUZ2?y_aymN=#DrAZG3&kL4RgF-L$m!p;gS6ZA6x98nG7(2dht8 z+L|uf&}6|#d_by)5`>@5z^KE}u zzQJ*s50IR;ZjX3sXpWKFvw%r^cTU@9+DNG?Lb9(E-NPgUEP} z1F|ae*efNQ5_6X{Z-XgIvyLaBgCZpNXBnpql_e@CKYE15*3*7%S};yr0NYsv=`0!- z`7JaFGj!cvJ4=K}VA-@_ovuf`tR~JPlwX%)Kr4%*Ma_vPIS*+*%mY-Q`+tsr;Ia?y zjDO%@gBQN6gl8*OIaE31pEyW(eoO7n6 zWn&Zl9(S@v0{-j^u9ky>LK;nGHO$b|F2|n<&Hq4UUHr)woA&^)?7K8!vs(+5^2Ss1 z+(!k5W1Qpk0+O0_Y*W-qK7LMbbC2gH^H2BBgZt!YHDmEsr&G0@GsMw!`c;52nMid6 zb3?gD=ALFarhZ{;l(-t7%hVp8I{)k0MbVV3N^qMaI=Xw=c>Ni4GtpPOPY2=yb~I^n zmuG7R)3JZ1o|U5NsBW$LrY#63UJ=fcUU@ex=^8M6OT}6C2^p#)f!iu{^$tL;SJ{+v zO3+Pm407zm)w?Q*5Jl-wobi=~m@V_NA`KG}yO8*MN##tp3pUlV(rC7mR=wjr?2m}dSqr7J>AoW=s3es*J*a~`Kepr&{x%1sce+(f zJe1Df4kChfa)0D6{DI{AzBvJ2>l``Yw?8pZBt3e)5B@Q^bKO!}mFV##>>c0nI#LVO?|DWnTExzk+)6nQ`yW6b+_x za3M?XA5PSe%@|p^1&9nAdxOO3p!m$YMClmjMspT;lSw&1Z~SM<{c;&`pa=1WLy16VUWjqdVNc8^mWzr`PKfwF0$ z_o`+rH|djLG$zEU@9}nW>ja5Pz?Jvzm7ciG@_B@46qak24uQ507OUQPhtr#$k3uOP zP{Qq&kt%CBUtapd8mrR-0T+$>3!9q(G#v*p4Q8!v#O^{2#xlT9`v8tajGN&?(A|2F z&M93WlobolE$BFUXspTLn%Ser62={pkr@;`9h5@PlyLVH(N*r6eK`AeMgKr@G^bIP z`}H(9%F^8|v3Y$pZqXoTff_X45ccawW`Ltz#byj!L%dSs?d+a<4$7)f(eKV5yB2TD zJhFw2q{svK=wIynMRgNCHN>+TM&SHDc>gc%TtFAp4uu|)Q@Vuvgbp(bZoiXb$N+iy zdu0S<`E;6naDwbeuu(NU12|zBVi&S@yjbzEm&1ZuJo^$8Lb&*`N!Lno2yz^*o~(nc zvEhF<)Mvq+dzyd9m%wPLPoJE>K_)v{IcCcSWH*A$s@!FDYBfd`f=V{N-~Rbkq-#DS z>Fh;3Cll3vQ^bsJB7etSxkDhMyFk1JnOtCA-WS6L*oW{d0Zm4Gm2CUS94qU!iH|J|rZPXyG5MX?7qBGjhRZ&`!_BP&!PiJRC>k0Nh5czi3&ViGx2G27KUWQ>p z4D~s7s9oYAtZL?^xz za(mvdpW1SJ}v6k=Cj2BrN^EdLsL4~Zq0j6A2{Pvy3RB;?5 zIUC@ZIej|oCW~}27!$!7poR?v= zM@0qGi;+{mo;yTtX~De$?Ml^3rn>=0+Dn|k|K-$5nXiVM^ob5(+9MSz+rV40N$+u$ z@(vI$g4+&T5F!?7AYIjXvP8OfWK`IS+Ao9_u6Gs}lvYkHc{b3sB-nu4nqu2i$qS(b z@PK_Bc3Eiex18eMd&BVheRyV>@Fp6uZ&pA>KKFC&Tn(i1sFRs|Cwv9-xLHm5i=YbW zMi_=V6z#cUJ0EuHwhO zHH~BNuwSvmRH{FGDMvmU%1D|w!JTP&0J3?#wKl0kw+ZA1_|*g|wOT6w2cq(Q$G$Qn z7QzmEg9{_>2U>>kqtwCdnkXh%xyHc1pm_c>k@E?|1pWF~7_mqT9Us>Q#U;SKaKEZb z)|w59wmI@@kvi48Kix|{(IT+3ka@!^MEv~i$KHp!&ouXr3`#fOto4q11*q{c0iLwF z1>`@5=$PBmJ~De+KEA-DEp8W5WIbP#4ctJaAzRiY%4mrwGjT>W@1ZA=Z=p?pPw5Kd zH_1Wf0)zc^RxFJwcZO|RVA-0YQE5XV^rm`}To30`Jpn|7TDEc1jHp1=2n%PHP( zejeGMl`q5KyYXI2Ze=2FCB8#{Aj3EVNDWAi&_oA|0d@n)vD9vmSOvXm|13_BolM4K zKE_hR$YqKZD9sCYMPQSo?(fbtZ}Ep@WF3+E&kygQk)7~?(k z{3c(too5q3pRMOA@@;)mD=m)zHYyihtMv)}laqtOrNY}j@@GHRHE%8Vi!N|nGzEO1 z4~7X1H*r5DqGkWs9^4tdFmYb;UqkXDhlM`c1i4rc3BVWzkWQI=E6fJ^7~3#q6g~Fa zO>lwl1G(_UW#!rG?A82HJHdIted5>`;Nvu*hi2x8@@E1N@TZ6n4)jec9qj+P3$nCl z)X}THr~8}eyocwm%z`Fy+pm{On8PLRIULB%plAoV5{sr1q{ny$j6!PU${ezq-OGr1 zLPxzEmBHgRi_f+u@n2sM2wcy{mBfsWrPoO! zoxRi&>rH{uegGai9hLj|!|oxblzHCSyC^V&H1d=S@o>{;Sm7#2wXM}bP79z&xU7ru z0J0?0FtNaHZkz18Ct;F-%oQ9yZvz$T%{bmfS~u&nZ9kvMYqHG|nhIpJ;Vir*VEq!! z=2Yl@G6HNZ6#md`R&YWi0c{gH=B}j0?@r4_14ziZMCR?;#3+~xgh;?!VwO-9m)sA$ z^7(0Co?>%s2O#^<#U(v2soVG%w={wWK;QyJ0^#E{-6mj;YB#9i4&#n?D{2}eLBGj* zBfItTN!Rn6b-@3s%5gBhFn$8AId|t|%$H#X4wk;8kNootz5qk}5wX)lw`dtNyVK$! zcHjAzG}Wb}UM2}X)36CjcdL0LouD#Cb0@LEr;|$1_oTBsCHo0`z?j)xXk}ai0R8FK z^f>FVX+QfVvphOu-BF+ce9ZSEeS*GSyc_xLnI7=>($HCQE6?mdklp$LLj9EJqO!nx zUYe;8|FTvNkZi2F$9l@0Jrl(YQJ2ehSGPi0@vy4UiU`Jn33sF3CNrXy`N;f*P6gy;peI*HC(4{bw_fN;dwM))Hz^P~}=r&6mISFlOC$OFqU* zyHmMA{y&$os0i7o5)ep2-J`F|+k1nwK8G%~9VJlje%R}rhL&a|v*&ej7sp|Uy{eeN z9a`Xp_313}iS|f#<0&<$))MCw4}^KN_xhAkKz7*K2lm1y4ePKusJc)vNtxO*(QP*j`pRdpSZv)5;KrH!@5Yf-}_pTaE{;xZMA43l(33 zi4*V;i#PJD?_J|A|9BSjzcg2r-l8*t%i;yd#(^ z3#~=;vUzi*KZ3)1A?z`xC-#H zi)T=$y3l+lVT93(NH)l1Lt??M{*MwZ#->bvFTT1epm`x-Vl!wtmX=)qez7j1S-WQ&egpaD9CVb76Qt z@DMO7!oDN&0k_Wi2Qz`)h37W|U)?lRMi3y%ji-I^HY$Rrx@}IFuBN5OYpc|WkT%3o zg^PXGEe9OM`yV&9$G?H`p;>F27&@X{c$9y~R0n#Wxv2pNIni0^UD8SV#-O%;s-;uz z_M+kD$%|XxCzxcCU3DXsG52CtAj|Jss<%{Yw7&fYjEcQej<$iPRLoyA=CfB*p*dC= zq(Wdd6vhq+6l-dG|JH=L6Ub$n_TtTVdWJCGr7(7BXh_N14GISdbd4jkJ38d)I2~JM z+D0Qn{N`7Wi(9&KKG>-tjV*(>uIU$I-IRMqv$yVs!^}JMlJV}wXeL(}+oC28U6#+_ zqCl!Rah670>P)+lP(4HPnDdzF7&QKY`Bpo+_=o9v{6qB@y9xbr&##;kG!ZYhf;k8V zVo$SVf1ZQj7vY>OX_I$PZ`x!!0;p{2ni3o7^i{wgx-H*n!R4&%3a8B_GhN&|mb2u5 zzFiAgbMK9>uX=cSr!Nr{y5qt2uYfdWSDsu~1pxn;jo~vs=@Fx_*0KVEn+JDnO>SRj z;=RUW8gh?XOUC7l66)_Cl&Pb%Y`IAx2x33aoEZik^?%o#W87c-2;>rae(zbOWNsPc zPkUynaK&~*!^znSTiOXkT;I6Ot~aEAUjmaWMZ+0N)p4=w4JkdF!6_)dyWs-X;L#QO zxpFVr$@GbbdAr|$ykzyHpW4+L7e8(&cnDst9?V2I@&wAgR;A_3N}|M3Cx}h=qavFX z!ZBWl93DVWW5GoBYV;d-${Cen({2H=a3-}s1-Jh4{iBm}f1U2mU<#*b%Ok2i3}`i~jk ztIAzOvPAea=H1^c2@lcTq!4g;=j?xWgd7k-)Eh0alKiEzWa^ z#FDpmr@2BEF=CiiO-_YpK*l++U++OJC@Zk=W_m(kwQ4%@z-R5KFxwcVI#Tz%6~|B5 zk8TZ%6b1qf%O==_h?Osmfh8JTMpn-a3ilpwA9vYf>nTqIJ`6UJ zWY48!TcSd9EmaK30Xn$Is+4xt2n=}CpzU**_7{Gm7F^|}&QIxJtB+m$c0 z0N;6MY^fo`tkcMlLO483STM4PVTaju=4u7ropv>!y?N0RY@@3~wHSK224rp9&yb$x zI6j9hjTs3XpN&1)qM!YRF&;Tna^SfTWCxnQchmh#G9M;LF1bDsxIka8N<9XiH&C_M zja-V=47EGi6e{uUH*ZbFzqX&6Z&*I9PxIi4HV|lsPYWNpE6F`|#A&JGLH`uA4=y+xGK(5F;jwL<^FSX(RgB*eJ}eXIe0~-ij?ha>g0LvzU@n>TIA@#ntGm@UOyD(-(L(@e*oWWmR}#0xvTROE#Bz_HpAne}ZC#Zpn9 zZf-_-{;V%2Afd4Bn^y;Sqa3MvxL$7f=tQXh-~4i=y7X$S2+tUvxqb7e;qM@`Yru*vIriA=C-IZVdCl{TgKM{G<``nnOsJ-_zCZTBU_W&!#5xA(_(4=h zcGU6jmV`BBzKsrYpU(EJPqUFeZGY8?N=%r&f7dYR4-Y8YtlowxF`tktr-Tt@bey6Z zkUTT`yM07qfo}g7Jz|Q>A;|-2*m6;ry$>zTutE@O`LIyT%|l4SZZL)e(SMta++9%S z*rP^w7Ut#${{I94p~)+r4?|!-L3j|@Th`}E_`mXfiH7~HqpvLDlW%(Z#j*CQ8{+;( zjQ`}X1z!M7^AZc^i_>u~eY-EUMmQG>5x4LS>!juLs&!z{L0d@w<4jgVL#9fAL`Z%B z1x+rE<$#UI2GxRr9$k0un@jldHE(2&?XXv3q^rLH3E+un-hVDQ2ZKRH3m6Hud)J`E1UimsmGJO3iIkJTt7$` z8&qPt<=bV~oXS=dM~5nrH*nf2scB%h_DotPPs8?Mo;tDq;6B)cs+ft(4u z!3~2B?@`@QCJ=|WHO@Ggaa}m@&FB2dLQb^zo{|chpvO;Ge-!nwIvg8KXL{8BLUv=v z1gk5FW`tnf%>8m2!$z%LwBc+4n-fI=JN|V?@VFTigUt9M9V4WcN4x?!=iRvIVgOd)Xg{BC{Eipw2`RHKd}hK~;hhEi3Jj9g zDw)WZN@a(xG+056H4*vL?kTP-gWB=I4X;bcs~*x{MO z*y$156~e>Gvb%^xr5D*OI(+9VKh zC*XiJgSWgfc=WmHF;2H(>*=Y2wpzqeSM4JztpX^Gir0OfKJB(yBSrG3H&P9FSl@MW zhnaBQX(W_Pt~AN)O4IHK=0z6M&kI@~;?DPS`elU;Zw@#|M#Vm%1ylQ*XG*WJ2NMTk zC|Vu51g#M^r;HbDtu0}nht4uWi9UTxAUU^&U3Z!#4+1>tl3*wA`uzb|;dxs8#HB~_J*^Uz+RYPZ1O6-Q_;mEjB>m&e=fTN&H^ z{%%TydJPt`hTd0D0oS7ObokC21IDi$ozs@TI;4SmfLv2C=W~DO=F81|{T*gdZ}%nR ze;QR*y34w)BWVth2uCDw`IkS~S5F)n2NmZ+V%9AA^hKO5)g^nR=)yg&#N~@huWKMd z?CL0*k>9ehu}vQMmTO4~z&7Ew%Z0Qi_jMq>G7oTbbbG?OsZ|8cAFjykKocS~UNpJO z-dCR>z0xKxqD6&u&;Vxz-ek48PU0h(YEfHNcA8rlOgy@Rh}pcX|3%fouOg~S{)%y( z0C}kLH$~7gz7bFc-X4;B6hh0N? zc4jHjiy5rxFPOf`V7^xrjKE69>%kdummeaLD7$FbGT_$&ImA?j4V~^Hb?N&eLZ@_& zfX=n-2Q=BQ4HwKhYqK0uXnFx_bYS$OzJ4l^;eEi>$i4gGOQvosv#7tMIOBJt^X&CG zi^dvE-IU~Y##(q5`FP;rZ1B)zr8dVvnjOb@qb8ZKpT^G{v78`MTYTSb*3;CE2uY}jHAM7=4PQgCrz7h$N6!A~|6(&$Q->YTkb4^^z)(CD#+Smpi8AmjvC#v!fXUV^chGkutgkAc&rto3Uo z@MUt#dmL^7x6|?qxej+EODlrZo&9coHM^1{1NguI*7xUCOF=;83?ZW|n{A>S>pyIi z>ki^g-J=c53kWcVp0vCQY^*3+<^T|-DJ37oy6fYBkRs9hhKmI0uk>GC0?~3k3tN8m zq)G*2?p0$tE=(Z-ZgV;Rmh8C0K-d$XXIrkMO;g&EEO+yYAsb241D7|=^xZD+xN8uQ zciOFsIYsS(9gA}B)O^2uiBAs{!2#)+IG)NtB`seYEZVAv4?RE@54<%woDw&JqL0(PWs_-!gI&rpBHK$Rqen2YU2R~eHin66xDrfEsW%Trem#Z-$a=T8ONS|GJ4vwS( zk!jdyPHBf9`>2SRO&_(m%~3>Ukl$%Okc*0^pJwFKM*8g`qud3zBUDajCi87u?_)Cl zu%TNkA%l=FclVTY7Or>*U@Nh|_FIZF>!$yFYvM$ueM<7@EuOx;Z{cV*ZqHl!o3uGq zBrZQ}7*mm#(1A?0wx%8zC!W!94!t>@`Dd2HcuoE}S_HrS-gglNO$%GS3y7Wf-HZB5 zbm8-qgm!S(K>YJ@6i4}<%Er-o<;DrvK9iL7KhUUvW9+A0scxAEuoOuqwuT$*Si;nI zv9pfJS&y|6SI2sGHP0nt4Ak{-{qiMqOY|~xqXTn$9SC27KDeHkzRkxR`To$c5hbHd zxub_}LQk;AYLBo!v=R&#!FZez=JU$uC#55@&$L&_unicM2V7D0+|Zr$5i;`A0nmUVfBA% z%Sp7{S$=B);JMgH{W}{GeKQDaQ_@x9ayZ~s!R-$Uv=j!@)}-zp_k44v&DD3JzBwfX zK!=JXb%$4vBVUcp_hZ+L+&NP^-U;PVx4}UGp^XS$fWyG8LpCMV#x+e#Ln;`+;z#ym&Y zWr%jhDSS-OhNKGyv(99ev6wc?d_KObv9t8=zRwhFli5_ z!g}H2B5vx}Q;`Jk#X!=Ne@&ZWb`s&1Hq3s&Sh9sD z;2$bSi1{NdM+d`LS#N0;;&;0_B?a&l!}1b--J7mB=x+2Xo`dkJFB<_=g!9*c6lJ94 zW%6=t?_Ty;-t{)eiNT&$VJAObv&wh$A2$Mo*H(2}bd#jq`YjpA-QgnO8ysd$YFCP5 z7MbRhNm7+BILO_o@r~F7Lm=}uB_9O8uOuY$!Mo*nFg9tXjsKXaTzy@A$Q++v=>e44 z9J{FY16Y0q=QN?*jd=Y|nfE>(4>}fBN;CnG=|?$6e9h;;4BFm}VM7r=B*twIt^Rg=DkD|bHosP8tCGuN)apWqMD(TM#; zS%1Bqb0F7ZT{{Tn>C0Oe-qQ{1Q065oSrp|=&2tOHIT_T%15sz!T%5Hg2Shc-E0wPb zEakTY4-^0)ssdVK<%__Ww0)iW<;aDtXeo!RoOv>A!dd;{~k1_+&wXzMx0 zuX_-?1@-lsE2FS`F}tQjSkp_#EiF-I+D#ShAG3K*lOp^hB<+tw$j2}zq)I}S6<#o| z+cjEkBfCNZX)8l#*`cH=FZ^ue>G!7@fX%WF_Oop3cVPL=&H0YhwGK3K#m>sY5w)It z$g_Awxw4F`QD56pIT>9PZAP7SQ|jf|%Cgn+QoX!yMKfbbFLUqr&03)xYJ5l#okBa{ zEW<%}nu(p0Q|%{&e#LC^wmO(>-{FiiI5(fac}VJV&1`ARgFL(%`7)%E(4E>oN6Ix= zkFeTFzxZ8dv$$pG&T2$uD!HObP`de;4k-4JG) zt6l4aDdk($($;G0I5FhhFIjj-Q6fRypL{gdwCDglgEA3B2WJ)cw#sM`J@is&ZyigL z@kJTIp7wi(7m)OEM!livI1erkB}OQRFwCjB-(p|KPR1O%gnUlapt~HMccvPm+h2>k zJH1f%T2Et7wskoJf@dlJ_vAo9(;XbvWHVNq5pHbPH(zZP*b_YTNAo0|0eML(sA7dt@c69; z;N5Yc&gN=OJzTlzDBehNiyt-km__aYs7v9=J!uIc+BEGm12p<-#giZR!%?SmKUU|hIrCloB9^Bn7qeVo?s-$lg0c(qB5dvl zQ`?krRZ5z^0@n8RA_%`zjzYYyQq^6XXushu`BLPss3Watuh(#0@rL=CXwaRraDr< zL9a@vi)>(e)ivI5LBQNOcV)Qgvz3QaDu&X`!7p!Cfn}DJLhC&V;IQrO z=8dq()9qsfW;;s;;AFE_dCP1sy0gMIb61P1SEY)90J%TJo~ zXq3o~r0$myDYgu;CUx<=M>Y9P!Y)xxvt+}mR_KZ&V=Emc9Jk?9ju~kz#4LqS&h(dA zOHR3ZO+7;z#ql5H=mNUy^PKLqQD^@qhM>n)neMXe1j|;FSG+Z|;3Ygj01Nq%CvQ1( z`X7i_33pIHzPO{b%_5Y)L6IQAW$?xH%m9}G*;<)!uQ(23qb!=55lWLAM_;|~IgkVv zP|y)Y@|B6}<`1unhxCJLo&liYCaSrdfDoEwci?K(77;V|r)MBxkhz)TWbLSUGb3hw z_#cY7Y4627!72eiC~cF3j8Wwr?pKCuDsmIuU6mstQ)fN@8u;VOH=&ONflOwn)Kj$_ zlQE3z{?HMDQ2wP6jEVUUj@0g@ym|}EvwrvIGcheu)awEj%~Fn>tGOf2sEKdfp~4+F zh1|2^4d+b#sFO2DTFRIBG=C{000xsPVeN1P{|`h#ghYo%e^*8ts-3V!?aX&e8f|9u zy1<@PWkF>v_yASO5PHyGH6vdZyg1jRm+U;L_pG)%NObzM&v}PI08cvL?3zCtc|;dJ z1g8ec&CF8>jbuL)yEl{umqYa#F)Dl(*e!rp+#WuDNh@JY_Rz3^tlDb^OpA(MBvmG5 z&<^)1=L^S)4>nv7lC8}E#>AM7>R-j{r+&>pKWrXiQsFmv+fd@I@zF&l+Wmfk?d82V z02;5gbrcL|K_mBH-s=06eqsrh7<$w*pxPP};Hlf1#C*q8uIQU!d3o6p&7t_fq+B?^ zF>;QsCTa7m4}gA$HiSxbrv8IeE0WfvG7|z-G?ce$lK%1r`PEGg08CZa;3?8N=`ZW+ zx1T5VzN%%&+f~yl>Y~p*AVbePi?05=Zt(<2iqm{1c1aT|-xOLlgC0J{w*R$x^Z(9` zJpSi-BfzGE*Go*3{H!mZmbmY+GwGp`E)-u$SvX+D5E_)>w|HSei8)wI=QjlI6s9m7 z{;v8*KkQz@tirb#c;`IMlPj&D(`!)RPk-z>nVkva5H^&uk{cVdP7l(8i5=V|@&(rT zSzhcyk9rwHfv2$2&8>vV7q8S0kb#eiE%dLye%hdaspIL30FZq&TM;}V(Jf_%9KjT! zQ>NkAlf$ljbY%1`rgFvm9H&;4vD;X^H&}7;m!I8;ly%liP+}_)xSt0I6O%XA6lI6Y zAG3hmst{?`dO$dDM7Ms1!;}wvlweP(1`Tp{{j81=;MR=N zmzGTSDQ$1y)ISgh33TRnN`_zY)32Jfjo!^U8>$-I(BYdpR}1bc)&zXzvV289f18C& z$u;Kd3$?%f59B!cZOeS0v!EIE{8Qd$!K9HPcD{pV&%;M#OB(TamPD|v8I?91FiiNF zWnWgqXe>5?B6$VOz<5A%eB+h45nC8mah^EGs6N{afMQpp3uF&@`FHG4N>y8j-&bE7 z)Ro86G1SuQ1juAr;!LoWOzqPH2z1cT-`NWLxpyLUfo`}&y1Owmi0y@at&8!mH;hr+ z&vV7*WHV&SFunUT&ajni^3NS)UybPL0xdnC$6Ig9G2zaT3lZ!oKCj9IIptX!=)Hl` z(2IstHbs6(RT|6jRJ?aaas|17+VNTK)8v7^hL7axduXxdmCJIgi|A7J% z7T1pQ7uUA8$dU`yt9azWy9E#aehP`cE*n+Prbf~Sf2B2_P~x!s)tPO!3HXKRAwmyW zF?A)9^r^+lDQG&JQ1!N`vOwE=3TMfco~YhuU}DDoxZ|Fdr#RfXEp6(e1GZkKYyP%w zgD*4ixfFo0)hFP6tkVUpR!3kt zXvhLbBfVQP1CYhdJZIT8puIE!1o$nm9(rZbKeNC4yJhV4QwEhEuQTSES>pQ&l zk?q5pN4jWinYZN6qPP1BKg!-VF3S4J$Dx-s=pufOa~DS=7< z$|unI(XoSxn&@xI-kJW{sn2RA-1F#H;RZ!q!i?1>1qtB|4pYRp;G~{e%zfHgR~XTP z!f!`jJ^(T4D3CC3BPa*|6qJ3^pKfHcTF|%ABZmIf?ApNyACUBHAGNP}Ddy;6%%|tu z-!_SrS8k^1tU?fN&F=w^q}+OaZJ55w_pRijV^rc_C}w}S7a)uhuwnA|7ZEO<4tdzu zun|Rhr*v{!8sJa{j_nkq1@A~-3ztA+D#HZd0 z+OFO{OgtItNg>-XiNR)^?@VBF$(hM?=o9u3#@^E%#d@F(_|ge97<_)Q+dM9rIkY;b zj8g0{cKus2jY`vt3f7*gdCdmz#CD!bMCU)$pDy@UzVi&7%!(Z%0D8%$96S_I+TP53 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�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%0AxAe|=1l;_a56ZmVm?)(=ZG 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�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⩔}nS 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 u&(J)KXB8RT@IhpC| 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%0A+@1DHz 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

3A}-;d%4U~F(}*1CO`>G94bMMW7~48m zgyE`5KD4N9Zsll7^=>dxLbA)J-8J{ybOgB^TB@wqEMB2VIAr8FNu7K8SAB%j>18TJ z(UrQKV*0n04L({R!joJL)Y6x4PcGNz%%+umzk?Z#j_YTla7sUfI-E$>4m|=5i)Wqp z@?RpYFs)E4o9oNWaau%>Y7_8z|L_Nnme4#seN1b)(K_d9roGV)3jWEcq6zB1t7i=0t^Z|tWj@Sd(qG@s=J)nO;Dsc~n z4p6S9nU82nl!`SH0M^)CkQ&W&|sS%eitqy1g zimw%$l2isaQZ~9oP!Uzc6i0q1z^A0+2m@V)iOIBa5nvNXy7Qn9vxDge_Ttr>S|X$Z z&b>Q=GImeglk-HwlIn5Nij50H*pW)3W(HSVZd1(LcqvAN&e7Az0tGQj%khKzCs8`u zYhA*UEwBB*YJjV`I<`K03CoPLM$AA{uwy;$F>%my`+xuJ^-F%KG`N*Y1ziR znvfYw``2KzvobmDAe^IO)NrQkKL{sq|F>Ke-2BA+8n-6;HC{_fG}9$KO{VUk04^{J26CmY{0-H zh#F!)9n6OeH&9j`l4x1Hb9&g>zNBXHN*))b1^t8@>JhKc5Ho~(YO#h*o0bau!FwJJ zE#F)9mFQ9H_zinH=>A|G*r|p)Zv|UK%Bli996wKSG)(&ZM#i+q**0a;8c9kM;J2GIK4dzE-AoIFDc7Z1qz9SHyS6t8u4SS07J7%p*dOOq=M**jV9>8tOXwym)3gKR{!QB?@!>|8-H))VadB9Cc`t zw**}mJA5#i<)tf~+!<1Ks=IwuV=HP(S6)(iWY(yD(jnO{k$`oVW#V^Taj6Z#v-3b` zxE`?eK=y?T<@1=o&{}nV9=(9nS3Q={Cdk*wTd=EF4#pS_`^mTcm0wWbGs6vezO69ZL{ly2(24;Qeb*QSTD z%^T_`D6GAxE>hi+9Yuv6Rb(`S<%vS#K|iJ~xEx|Ja#;e3aq`6X%fv`S-luGigfa?@hOKxM$eLDmJ3IIFyB z7mEC8wO5f~+QGvggnU=qMid->U-FC{bkdGY5PJ-_G@M;y^VXA zcc`B4FAQn>nNC4Vy2Z4+{Vjk_P6&MQ>1vYg%vRStCS?X0E!m!|-(6dj_Hhw%3-kW} zsOay=TCsx!L{}L*d9m>i6py<3Huhdai*x1BYoUP!`Gk8rcU2S2#f2VnlrAA(Z#5ow zdxv4kjg|$gm>+|1xbz>Xk-2)~%z|#GF`o;jAF;$B7Nj7RV0{oZ_kLpFcR}yHuCO{` z{0@|t*7dDq^6d1EI)R)|vGMe_Z$}~N2uw19<CB2!qLGR1bdX0{~2!c8xc`ss6+~);UM>ReE4xvavXeh z-%>Lf1W(@$96rs$lf3g<0I$d4T*2Jr*&?Of`DclQWst0wrzP6oI9}rRCUGh6+rPM3 zvc%Yp54MdU%^8{jd^emsPG-)-AU*;oh3-p;!2y=_Nho2a-80w-sW>lN<;EOlRTa>$ zvML-;Be3m1(ZpzOs8-j)q@tYlGq*?d8%(wbK6e&R-aI#8yVhlFjvL6?;3ninVI>1z zH$Zpz_*uoQ2%Y^bUdWeFiL!U&c0`6l>p_YoXG$T93yi0^Bt@Q>U4E`1=i@9_y#awR z0lmV@quEYL_f_zFUTA3Oa9ER0HTn7TlarImKE|sZsk`x3bfo*0?+4BMsg^?6=2r9F zYxbAT6ov=-iZ=u8B0jnM9lQSCX5(a5$2XwmQ^tNj7HEHEXd9+P*A|ff*uX<+=GJAr z);oteu;v^1xt4+mX5faJ7&g)RE%-zvTTtg}c~Io3iby`{Mvu3?7btOF#gxL5!|75; z>k=zB0&Kkob9Oi9pMc8wk4ZXo=hjqucLR%X()Nb^idxbqZl-^YM5ros1AnELi^_vsV2y@VxeuDaIh+;#(=Kk&*I* zw77utr}?

qBY0#Vz&2N7w*H=crOsW!sXv+amPs+pEY8ckDZFw*3<1tt7+qJj+(& z-vC>AiY+CjB8bUE2RzZeCFucd3n_JiA3cqzZQmty{0=!CC(rx$G3VbldU_jO7o{>$ zBNG2XD2xQ668Vj2$`;&-Z?`-ElVK|&rY^Y#PBoSF74*_gac}RfU>42*A6UM3aV774z^ zmj(vsuUW%rU1$E)WX2=znO9NPT~GFFg2z9qY26NdB0^WFV+}JlK?4HIV-xA`TRd()K)A(4A9ngh`@QdTT*! z`Uwji`TmG*_yjNCG;R6H*=oA8lf!b1%E-LnxChbfoPpC%`2zvLMT=p0cYL0lfU2Be zXVOR+({m6jD0MeZItP?gasfVSY=iBF3Cx^*R4*Q)Pqp~>H_x8D`}kf`Z+*1IbOb9R z|5Yv+cDK|vaW<9y@#$qYW{%AGS)-4Z$$H}|uBGYk>(S)b;ne(_)eewvne*rfWJ+vJ zCrko%HDVe$3Jd9@9^~Q7m7afVmVfrIpWY>vKTETMHd(eUKKPO_2+KE&E}0y8lHL=# zY>T7Z{voaPb#U3#U-K(T+C0Wj?^ zuB+~WwuuLY+fJ-2<>w&fN})N3nc;i%Q+!CoHgRmlNJt?7t@rp@b8D^Sb5o$Bu*RZ$ z@5&06M3e71wu8^0e!9RW-B2h|V!9wl#TiVyjKWdKj5C)AsVGqA9?3GIS5)7jK2IYt z>EvGJyOy7{%mDbEN1x$z3bieAI!6rk-Lwz>Q8N*kc_{(d+Ztnr4yj?^^HaKn*bVi9 zCR;zoI}dWZx*JDidgieSe^*4V{D8M@&f`06h}w3yjC{+tyo{z-=1VP~4H zLtwAegA96&JGDP<*;7t@-CbKlK8dX}f4%OOMl$Z_C)&2r8{#Ft0jHqbou`d)d{t7o zG!O0er#(h*vfstO8Idy&c3mZjc8h_FYPI>37I2j{aeSs!_;!U!}Sr=q*A$l-t*Kczb6(gs|^sfKQG2WNAuYI(L1%V0UrG zrz8y{b0mCwge-7e;NUoJqOldp%@ntY^7qMYym^jAtk+CUKUqqV?(mN8U8kK>j=Gd} z-GlizB6S5_VsE4oad(7zYL2fx3-!AQgE^S$8`z3AMN&h8asPuDIIx1Fk547$isx@= zE#lcn6;|aI%BQFH)>z-5<@r1l&9B8ul5sOXK85`bxqAJ>rLS52;o9jmo+5Gjl8|6`12~P^7>f-)A!wL z|L4uI|3EKpe9MMPh2{Z|gh}IPX3hgxVzRk13!w7mF%0N-zUv{DY**Isax>)ddQ@W4 zvkNWb_WCdycfiZw%=J0l2gNxJ-t-{vYiz06?6?9$G3K7BMLOdBN`pdtOKs=F46kcc zF~0;!33XVwX^0VMzz>5%0b7>!lAIQ>w9neU&>1$ldek> z3S0BFG9GG;e|{yKSCR2Pq$n@Fto7+M-qcd0ha2CDp;Cxhq~osw@tRwn7DnE6w2FVr z7voA{`t}#fR}DT!9;tqrTb1f;o{vjjmEbokFZzN*{y6r3G)&c&pNm0 z(sPT_6h{BX^GAa0P5>1(nNeQCTPW1)Q>XmuM#MS9W@j7GWy@~f|l(GF?08Go{`TOI)t=8(rXXE395lyULmz(}!%bzzM9It7$yrZLL z9Y|D&p1A8p*q(B#TuwgAr(!YUQY7hXzs*OQ<$wRQ&}4dG>E(f$d5Fqrz7gD;c##rgy*Sry&$sVt;4Q8fRm3glZw$_53L{I( z)hAa#0rRxA2MBYMo%y}r`h(w>1E;d6d)Cb8bz92|Z+aWZ-AWH9#+-FKbJU6E)#S>n zJO2YH<8{p|5UdOkE#lRJc&;Xb-oiQ%%R~Nk+akuvrZNA5q@Dc6jP?Z@`#H7|bL7o#jW#JRF#em2#n*0)JxE|>7*$?URo>RIae=>h z*V_{L@rmiJFv!+AGz_h2p&L%l)x0;elBse$JDGJi!?VoH1iX9T6I0Glg|Ka(>>X+6 zri$Z`WUU)yYNCQS7!#Hs;A#-&le^1w=sd{Xuy*y8n?cl~UWO@U8lRJ{clr@k$34~7 z9dn>ie{6D65kDpiAyReNzeK-miW>Hab24ola4`1z;Kz><_FtfopQs%k-qPf;wWIC* zD3N=RUl~3pUwu0>X2eKU;ojdPStGOPP8k3=wqdiHNJ)30r;QTv#1{|e005%SP;fRaBT2J~j;dOf zQ9f8)TQfBFwBCP0B%`6nR0_|vNdMf1Cudzftwjo($r(RJv`xGrFWf^6+a`&GgfMiC zg}OPtFCKX(&lI|VM?%9XV5D{;Hb%l}0X7qjwX|{4+2|;Tw`{JSMJy9l&Geh}m6QNr z4!yr$qYmH7`(4f$k0W8u10F*Iq721ijc1{xzCjazkh3hmImKlqRX^v=Ez-i!Xj>f& zUAhZzT(_4Hf8vPZV$)Vc$%Keyy7`;abvcF~V6dkF`Jzs5T#*0M-hp6;r+Fm3l!+FH z4M7z&5w#XQKFEZY%M9JEpKO=-;WgSEwM6^QZa%CAj-#^ISo0r5CtB3YS-EHvS2J-! zadcj9Ugt_2#A40=1W?cese3!e2&G%H{R%Ep+(Csrv9Gs`slF>Wh>#@_+>jr5=~6fr z3HF06-MiCBSL*!zo49o}yK?a+cO1dAxHQ<(Cv9NpFM-M~&Fp2LReV8-Fabn^;pH!EG#>`Tne zYcYZJ;ZlRFELqib3(Se;I!Is5)bkcNw=}fQyJ+E** zpFKLGD0N-t>sK`;%9QB;&GjM_GCLwzm>LMd$Mb0#Llo=6G0z6ivs(I_G zi9%$Vn;p?}Q4pqy2|u9*1rDXZxs$Q9vl4PdBfj1oi(q`mk-`B_8`PUVBmomehZDgu zt6CsJCwuwY@2@l1HeoQ%i&1j>);f;sjZ6=U=3XlaOw)skXgNv|8{6o#(tka7?kJ=3 z9;Ju<>f;63n$L_d=MTpyuphN~h(-KTTVVwOFNYB(xRc6OHUlL#B3m`OkA)H&edqf{=t5GJ74i<4m(M1aH|liond?3WKT9XvkFkG_ zr9E^ob};4|nfXZM8*}8&Gue%v1=Tc-#)Bc$r>-jBN1dU&q0}_;$QXT>$XUKIf}C6^ z712OMgfuXBEPy!_P>bA7HPnpO^pef?W>!zn8gSkLSD*7e&|Ej&xtRnW=Ae{>DJ!oo zzWR3!Nt|iajxd7Do^yv23CF_B${?@LpKGK5_1t!v`ACf(@$DsHoN|-@$)EJe#r%42 zf7~fWGjm86%Z=URw2XHJBt#Y^>Q`mRVZW@4UCQAD}ak!~1StWd2 z@&t0-x03PWZDQEJoWP5yJM0tE^(WVk9?_Q3YXoI#;&Q+8EE=;8VcW2%B zF3*#85c}kucu-afYp;vR3NW&&qYUM~rSBny!~v(@?kV?YmJ#;e@cr`M{=jG;aH^#| z`2hGw<+J*FbvIER_nVI7vWpO*oNyPoAaiY%!?AbCfb1`m)6Bzslq=zOiFJ)H*_1=s z!p$_oZRzY^SpsOi{U3!<>`w&K@FV0sq8;N`%`($!A9&l&8(8a1)`-jiU+-^GRNuNd z+XTzp?{PxYkGk(sg(f1eXq|a8HYF13D$ySHe|OH{Pi{{0Dg3LaV^U`UT3ZUgmTlhK zWXD(Ag^sZ=vX~kJp8Hf-}kQ+l{i*}?3HqejBME>PAK8nBaY*ceQafStPml4XJv27-g};7&+M7a z=lkmY`~3$VxBHxPzwZ0Go);ok=m1$2ZJm%<5m1!E8E=PVYSl{H0<(v4NWG=IbC`$y zV3M#bw-FbAac-uU%+liR4XU?^GLXSOg$!W`TEyXxWGrxMq-2IzGf)%T$0 zS?Ujl^JkxDxjHZrDtj^hMXJ%S1@@%*N2eeN3h$-SY@OwJ|pcf(pyfgZg@}FFI}ueX_kQtMt2?8!85~AknbnDDlV0Z4-N3U z9EuLqsXLs-^o;LIEYrS?k!ewjbbCh)YA7RC)kJAcz1sg!07W~-V;OYvd{*yY=I~CR zG^DX9yj|*4UYz^)tl26{KfkK$S(B(yCH9nI{HYlIkoCFm!Olmqk8y+Uj`D|KtJ7@2 ztNt{9gZtKyKL4tH@(;l;}FLW`_`g?>FF() ze=H?>OX5ZLj7wuoMV6!hG?2xI%Al)Yb8BugsyGqJZF#F3z*~=N>V4d!r%~W?wY_3c z>KRUG&H8RXJ9GaPqtXy7fsTc*_j>0w+21^#qNar>jeg2y!8!lqe4xKg$8B9xBxTOp)wRVf6#(Wki_Xss}W{3 z{wYuSf=<0_g=dY4p8P+=gavNUCncq;d)&1SisoQDEl| zFoLLv+ie}KL}PVzM4Um!l5dA#Ujjuw3xt@BfE)WvY+r?T}C$ z)EX8ux}#f0MwRE|ozKrbx5@Nhlab--4R4lFpA;DHKl;`7fo@H$p+v2s%z&1rVvdwc zP3=w!%nJA9_4#M-g#1i+1SyiO;p#V^WRg4oKWUW4dSzdp*k*0ZRiut;eJk_g@LI%b+i zz>8tpt#bF_)yU5^6m+Er-K62CUh#HBAdlMo#07J}3i3(^Z`k{|Erw7i4-+P4Bl@YF zZSTGOyQ`Wz=LSUJcXIqY?dy8OMS^<0yzTm<-;7RTya3+p9p6Xdv6-A%t`Wz@6d!v= z|1G%EQ1iz5Cq_QoPuG`zqh7Z`XvT3Pd8Hb!BD7^tkboQkCU5q`h|foN?7${(bV5< z<3xK4W~HOeFaALHlROHCcP-+k43`_DGjS23qwUWrtJkamzg;n|qt>@^RH$d6GqI=I zs=s}}_Hp$nPrc6my1Nelx~Rw2cLo~f^OLOPm3m}ucFMh?xJ;!?Wgx(l-rU@=2lFkA z&rfw|o3a4?Y3HEVvrW{_=JidZ*%GY43?TJ9_QBqTwvssa|&IAy1KD<0qk zY+dn%OSXW7;@c&!sgoByL7@-Xbd^d|(-Zdtv3r`ajU**b?;_rf?)oM?=RBV@y2zKl z6Gw`^*)7)971S#H#JEnIZq(g0f9e#K!9RyCxfk*G*vQh8-2LE5dqU(N7m)I_Offg( z_b9<@V_D9FEcvfyd-rZD3ff+5&lCM1CfS@%r5=QzoWH*99|)rt8LLR@XbI02v?7_9 zZFrG+xZ`Qb_i3^n%aB0zG-W>8vMMia?9#%)7~_puSc>8)bc;X(+XWmGA}CY^f~)KE z0b5D2Zq!7d?0RJIW*>K4=P| zwYCgQV8x|aV~Shi_Ij+UR8QsiZh{Cx`m6Ov+6<}eNJM+oEEd-?k2bGal2tvv!5OFG@VQuAIDGGvTU3Wt43I;jG>$Qlvc~6gUu0xC!_8^i zOKChMo@^=jZu{_g<%L-A24@3t(Ce>9n5PQl*yfgH5dSTacgT9$zt;89NPcgB#THc) zf!-o)z!S`=-p_FRKq*R)ASZ0}n`6LEOO<=rS`B=%1_Ezf(5D^Fyq6M=^#%uPb!_?1 zbv@HN0?Suzt7-S<{jSzdfV*$&o0k0Gl7afQBu67AMeg7`Pv0IZF3| zT7O}GKqB|K9-4-tYg$~^4FE)HsuXn2-8G*4UQk8Y6tIcz6gr7d8p^kpR5|O}kmAq| z__-St92q{|8C37^3GRA@sF z|Ayy$7C=>rvVj}z-#U;W=3N*dzG<@sOW5RVaWiV`6NO{E zpb>%f&swLA7@uKEQW6{KDufW~Nw?gE0!T-T7wI?~{6c7@b{S3N@*w`($?eU67pc8; zQXTO{vZ^AdKua^uOKtok?yD~d=FvPIe8{Q7J##ZhxDphge?P3t?9ZPbr z^-gW6n(C7!)UU4;a3bxrvqmog^a*+V3VD8Xz&>j8w!H4kSEeHlUn*i+!Qf3pcABqo z+oEn&-h@8iH07;l1sw~J%V8kEw@%unB+?zIK!_z#4!VN$+AhPWt-0Q+3i|^Xqdu7E z;Z31ykBR=c(WGmy`mlwL}=qxc*`oj1HbCYSsh7vp1B|(JF)^ z<-qonFSTnLA4i_HlYxyDL&EOMow#ac=jYDlav@)|yyQ(iNxh{5y(GN1kpb9gRUwnm`YdrovS; zIsZB0r>^8Fl#P+S)c_5a)a>#5AH9%9+yc52&Sla#o$9}g0YuP_2#)82Fefu8&1)zAsJ-uM@NulmKD3qA!ry1=+)x}7CNu4s7PK!6B2f{m z<3OHyh3C^+rY5#R{z$ad{cw7SduR$=Y3@`7=+p4Pdu5#`fI3(e6ZlDB$mzxHm0s4K zy2h#(t`Qe~N9iVz04Ppvc;I*^kL%F%TM>uRYw+;cg{JtCLCddt3awc?s}I$W_&wYm z5NS+%k67P~sxp%0@^$kyGUen@{@E@R=fa+1i!yZ?NiXvnoKlfg4IVhkNz@g$aCqrDctm-%Qa*S{@eCZUZbZT8RczPp z&C-`k%D1<`L6U~k#!<@HHAB^AZZE68 zzJA}2Jv))oaXkS|s^6Pq<`0tA!1Y6X4kT~}q;`VG^(2j1)cpJB8>#2Rs`iXYj6p|_ zuREagIQthO!JSgU$)gwXD^zPO4AcZ?P)JI=`Xl^_1o2K!LGUHOifNG5WKmH4_=#pD=-zmi}uFf~6iy)rv8tnCwgaJEt27(f9N>SKFT-0Yklc@}p!f&^G z?_xwci*F}bN8fpO{j;j7)BaRT_8V|F*RD$NXWL`UoOsaE*gjxOA6GCD(L(HkxH`tdbLyW(obvIQYU0&9?v6;VQ5xv0L7OgF4XL#oR9RPJ;{gBl zQ2JKfUA7XSqwG4Ssxv5?W-#R^DS$OlOe-$D&>n6VMmg9o8_v8ueCh&}y7sZW5M1TQ zG$~vKy>!Su{reBR=NVO$#EWmX+FHD4U}_-1E>49n-#Ti;6Wm_f6X5WuRD&64H4-Ii zb;@3XclQ3e#`>4W;^G%gvGYV2%CMjNQih6!{QZ-sZ^3-xJdAPZVD z9kyuvwsFnemz54F*A*v@Tq|brrAJwvuY+|$P%DL^P#o7|tY?NzT^+4C-wgV9-)M9J zpjXeni7mS<1ocU9ikv<@{xi4X1_Ez;+D66cdw^mvb_3Z&+gYM3|0qHJ8`X(c-eh-1 z=u!aXv z9TKwSy zC&BygBzdK5t7Bef=u|~RvwpWIGgjQ1LH~elg*`FaDtyvu7d#!BQS7WG-`BPlHZ6}N zmkdD$+uD+DJ8QJtPhX4_@$B#{7?Ge6#M_Mtu4T$CKL8*M57}E)1|d0hBS?ABybAa0 zH8kE(&Vjj62b!r#y$Zp-tG!9IS?z6McD3|}>(zR?3|OsAP*22J_CNjbO!frtToc|! z_;E>6Kh$|!$&CWn)SGs3L;5b82AYZ^S+h1GcyxuQP+dtD#~Ahkfk=C5?LLy7;r5uC z>M01$v8`quPXrr%W7?fkwZsnk7Rx{A={h@VkXx??}x*CdfW*c&Lw$GDkWZc`Jt3y3onUxJ9OU@BE<1paB zU6a|7R5#XE+r7AZYTS_vR_e&yOG!))!oKM^Ym(H+K=zPXYF6@7qG-pwl4_?y+M=Kh z`%Dg7yHC&qHu9JA-(;lwu{*iq7>paq3gizl|B%*iIi!2tL&23^f~mki#|%N6()Vg@ zylJ)aHt*Mlr*ZIb%Mr(hM7&@fkD|Lh+BtEl$mXi&)%E*l+{#zR(Gk>99?Q3XRUB-& z{$jRVx#E5KnZ2ZXzx-f>b`YsXu;STi%RFBPL@34{#Z=Q0N%>dNuSRr~OcS3(P@lXT z&upr@o~j2H_Pyv=KOI!+?l%|CC7}8)0Dh%J$$LZjeMGF1I)C@Rk&KVIsOaYrg zsDsjBl!%*y4`%i9&yA|u7+U4Zp(C_sVt&Ad#OR)RMw41E!m>Kzm-by+Ia_hrX!^FX zoL&Qnddyj|%_SZ3DkZy{QDbz}ZD0L)rIECEInE5?yEURUs$9AMDAY88-<6|fmJtmSyNTTFoDvI-9YahbU0I^~M=qGUicftL zQ3`j(d)PMV($?5C;d&5?8P$T#TrDN09wfBp7eBbzO5Zhozb`*=Jo|IyC{cR~8a9a? zb~nQ&6gw}ejt5R&MW~L@^*&Q~$#1(F8!&t#YcJLMw0gCUTl_^vS29{*T$^6%EBnmV zTu3HHd1#D>+i8#7LGqnWgYu5mjjD+t{W?j8z2htX-{F6zf_B~jJ(E{%i}408 z{IaY+aEF~iJuxJ!sfjAGDNy`r?F!hXayvL&UtT+NpHw!IR9*KDo0A)DFuyA4<(HfF zJzn)?ja}r$N37dDLP<9H(YMXy4Ae8kcUa%zL(4QH8{`yokray_%IT|0fZIwUffyfP z^hIfDG(ZW1Ejj4?&1&!@_+FJ((6Tf(E#4fjEg-immpx={_W++a3&cZZ=PM7?);s&N zSbK_pwPc<6jKZicVp6vIOj>K-5cb5jZ=qa|Sg{x}5F%t52cL*+%ObTXjV1W6oU$kPQ9*a_Tu>^(Hg_tI!#Wzk@?* zs$)m7Sio@Oo#fM4D6g_y_0OL-cxV*H$&UIx61=VsW${mqngfb}Mnh+rQBn$%fTwz; zB4)%2P-8-6GhloZXXT5Rs&9|l*pa$5DSwNvzLANk&CwNcNNqUtM0pol&t>aW$nX|q z4{6>Tpj={8oyNx{s3MH_prv!O_z+N^r~ZyL1n$PK@u>v%yi=fKXKJ##k$1Oum{*lX z|Es1AO7qUjM8$U1I+(a#lwC{$CsAful_W!0{mY`*%CQB9@gd>f2(le{_ACr?q^A&> z`a9>rVS$D3{BsgFO1uQL59y4L9TK{RcwG{%N|#nKeJl{dJ`uX}nfXF8I=d^bDrMyz z<|04AT|9-Igxd#e-|iKzXlhGU+=X`@y7l^|>Nhz%coPfqtD4+sXv!_~!m zDmr;eq?N7562-G12zR6bV|{(1_OmQEurCu%F>HJ0twen5ZJIR$%N-IEJEBt^uPhTu za|Guc(OiP=F3J;Xh2_BTrg-K0_C|+RB~IgmP->$5$$A>I2NmUNJe4m4cQyuXXCbm3 z)^hTD3MtUGKWegYQ_iYtUyC8g-bi7N-!Gw(ndw+etFUy7Jw;L{=(LgTfk0N2hdvZl zAh*^D9HzaNX<&4)u%s{0+)UVmFQC)mFAgsz^*!FW`y?*j1;fYR35s=jXBSMJ=aw4?Bl-H|g!D2~N%X!qMtvGAWlGlzPf<^+t z&1^)(G~wJgem-p@XD{4G7JLN8xXRcRtR`SdE~J%dtgRo&d?)}eDqjk9#ffY%5@GaN zyr9ZqTeg7{ypv1AQIj+1_B|LgkRO>X!r^{Zo}fD37W-ExxW6px3*$1`i;OWL)TwPk z9v1_&`tk@Xa<3+u=2uDqhz1ky;n@%{Mm=6=;1}}x3ySW_E|Q+v+?bATkiCu^Y1R{am1k8VJt)r)#)V%w z^7fFADAuoC7{dkz`B7Wf$KI2fCBbMF-t8GXA?%io28(^|bDBT)(nLt>T66wQ_fGgG zCX%z{o{t+52o_Cn*>-mXNQ?0`HMVw}qQD8rR34Pud)i{cd4IWC$|pye$V4YXV_gM= zXq;})ely=Ymzt{J-?{MY@TW3`={jT&mcLvUP%!4@CToK|-)DHsZ41)(1{3%sT1~(` zf9_AP10`zNtBilJepjNIxbu+@h34EW4lO$SRP3QYw#Ke(+URAE62x)44+5?9&5+wW zb8Q^$V3}XOtEkV={B?HZ*K15HH+CBf)G;Co%f!H9C-Cg_Uf**3JFSV=XI~7Z9e~0| ziq<(RpfT~ibC^|jq2Phr_|UT!T-E6)!Z?{CbW`utr0|z#r#8n7S?Ez`D&o^AK(4W} zX?!<8EKXl$I-dnCNE0O8nJ{Hw8$X^w?A+&secN_68ER6oNK0%x>~Rz?L}ek+T9zO9 z*8XK1992n*IsUL_)@t!TGsaa;5k*)lB->Fd#U4*v(b}C$jO4X`6a(3Wtj|wNuZ|4Z zcp|c~#aNk=D;&uNBrmJJAspUWPJfSTIISL4)|(<=(o}C1rOey8*A!^a?ULHrXMa!= z(Il{zfRiVb-kWr3992-N7U}gX0wa!^!a3yLOXB1d@+4i{)&%wV<$pO|>eYde8E0vn4=yNMAe_!!1H$QZcdf?X)PAFzqEqG*X<`{(Y_kc4CeGzrl=-^>j-i?I_ z;(#bR8FQ#q_qCC?6<&RP_|5?@LP*&1^~5+HjHFkk6$M8IF{JyuU0RCDWiT+5 zfUue`By2>uP3gNemvAqkui0do>n^g}_kynAyv_s|+~jV>oqCbfcC19!P)~1@fXPLP zfJ84g9>pJ6M^;jRl`+)O?qRwu93l*nv)Z~8Mq}ncq4a%YL*U; zl2Y|0R(O8_9Xooo%Xu160iF0VPsc4Tg=Jt0{cZ&RUZRDg9Fd6llyP&qY*X)3u%+t9 znp-JbgWU6bZxnULX@Y{yq@3YSFJZ7XX-Ihg+{+4-;@g9YL|o?KcKEYBhU)VX8z_Z_ z?`eeLQy+v=mUg>VP)Lx1!07P!Gv^dCfye=xi?^Sf9SU+%zG=|M?}O)z4N|pCI)#PR z8V5)JrNq+-@zfGX$W9aLYgt2n|Y> z$Abo>8{$&Pkr&QH@HS@dOff?)LK#G?q~+&jFEfp3S_{83HNaY-c~>csw?7G7p{8p( z#ge0>C5n> zF*RyxuKbO=3v-aXAsgGf@8fpm3dEv!RoTjrFZQne$+nL6;|+~sWvRWv)_Uc0k0i}r zD#Egs;R7|{>h!;&q!P@{{m$}AR32s`HPRQJvMn|dSNfMupzJ0uwh@@r)(OR^cuCu|!QO7Jka`{D*ZwQ1IxMGjT0Bk|0p41P zN1s~yxHH$pw$LyM!}MP)VWCj>@Y6)#tn;wVy1nSV+OJiSZa+Ol6YGHvi&TQiyW*O=h1R7@uS$Km$}c|pJvr{E zU^4|MQZ4Ml={ zh2RT`-oz@_rsAJ{)C3au2nOp#;o9|yCqE8CRU|%mam^Z}_@z5le08Q*)xam6h9q!# z_zU1o^)i-1u=-UCgZ6T$;Zx;UW!V_Y<^3TYAf*CNGOx0OC$A z;L_RQ3m&(pWJXuQ@uV>!L&oUfO;&w$k*rD9PmIE_J`Ho^{I>{WkKw)-4d2o4nzxT1 zEAxMJ;%~eh5^Tl#BQmT$6dWHLE4n%}_Ar6%|E7A4^AKtv=u)iiZJpg*LFs)JLT@iZ z0lerLJv3k*3q0G{1bTcbYeQc{p3OrR_1}>ue|MYv^z8`By8j73h z6_kK!-jmacNZb|kGvL1m=z5kJxIXDU#xsM#XCnzGoL zpJeXy5qfYhL1#IXM{9g-d7Y7DmzfR!i|f5?z4gYI*RvDLNU=K0x!cj9ZQPdG2nv|p zgI+slGmf}Sv%WG9v#*i=acH2$@k_3v?LRh!{D|Dh;fzt*tT_wHbkpb}?UJANRG2Iw z_CW0xH^tKAqtfzZ(dxHPuTmD~vqgBe1D`GB;EzWkB+2Q?q?1KhD zV_kerwMO^QCT&U8y+3#wcbf!C2axGqRAH%U*`>z&xPG>D?;sm%+(D9h;_pf%e>Tt>GltfK;*S{KyN?(iC(*6FqcRU9z+HNQO)(EDRN71K^ zT1YF;28a@>w0Z5msl>;0M1P(mI4%_j>g(z$#{1UL=)10l?7ScUgbNkvsvTY3`E8%0%k|v>rAgZ_iE&g+c*b)OdNd)xG~xkE?J@+ zbuCh4h*#)5w_<*-%fX~VSNQaj5~!kP^#?mYv_GGuRmML(-cx=o>Kdf7E$p&{CwlyA z$0~W%z@ukGAXj$%7}Uj;u=}@9{cN@`LHu7##HqZe&|-H#lck0OfAuaPDB{*_69|Jy zu`?TH=0)2zul$;R=ID1jZE69jp5G5OI=5`shu@et2eR%%FF7gJv2QT>*6)@DOih9m zcYc5+l(5h&{zqC$5K_#+XjvPtzWiP?rq~2ftBo|qq^tLDS@s7m5}dt-*tj36+E&hz zVlLGGVhwEnxbaWv6L--ie;aVOsQg}QMSI=w6u$AA4<8ouo>Lt}iT<|a#M}hQ4 zqhDw%*-5zYXHU2LIub%MbiUjl>KCd@z226KEj^uej#?BNaU$q~_m~CTm-4?Cdwjmx zHvAi5K_Gy!KZau_1H~J05qYUMm3f?xQG_ja#~#El&V1F;Q*#7Kg57Xn>f>988lHl@s9fUMU%Ipw7aixD2zDDR2t;+t;n$~A{A$+<9S2JTdHYA5rn ztusoS?@_EP{x_pRMm^O#kicc|nvT$aUp~6PAy^W(s_+jXnV*HZeLb~*H+)f%!7KRV z&(0Zd6P3y+bXHT9xXkr?%!itAK`{#wQFC`KXaPrKy_XRjnk{QJXH^jzTCh2Bkd<(^ z-owR~XQ;gI#zB{dt+zo7z_`d7qBmd_%4}xxr7Sdy-%(#8eO!W~c3W+*oI#ycBjqFY z(BHrKlB*^9peug|Fl$xi<^DWhNH4fg219M|L%+LbHP$Dq>Uc_|%G5^d5SOY4A!Byh zeeYVnFZvun{YQ;%_CTxiM6z3;CSZbTw=Q9dn?Q?HK)6!MVl8GA}ZjU z>6|#Gt9jdb#+ULXe!s^{)rX<8h53)Q%fCDRhn0{I^JZ-2-StyjH0R)BZ|Y6f1#r^5 z?4p>6g3WFEzLtn`#Q*RtZTK1LKf~_;KZMyLy?H}+J`Ep+#@iea6Zvtl*p01C(RCD` z&D=m`NTB8dOzJD1sDvbp%%}CFm4|Jp=$)rMtEmPPF!jDJc3a93j)OcL+`bct&Z1*? z0uom(i%P(fY(mtBl=t0~G5@?XeVG+xqd9A+kM3Ti^FY@Z(hyErHU^u$mkRzk>-*@y z;4~~8lUj;fcQ=`-oS%OVBQAg$5h9#C9 zQ>JMxT$-M52{dw?r6W-N%a6Tst4KkHimv!r9k9;g>vf9+f^gyN$!2kGVBY$4d|oZ7 zF|v9VjR54o{A?f73?%KQqCJ`r%dJ*toc8Z@iBY#B1*SN;YuhhQ*-GhQC66PW`h>ch zb$Q_W6IF=zuFDInhZa1P=NFoEBK7uYTf3q1nY)MF!Y*qo+#)!DF3>n`dZcc*lPow` z81Yq{|1zo+qM}Q?)_PH1c>j!6JJvyaeulPxKxtqj_h%Cy{WVZU1Hx6*(hx^=qw0Djr|`a+W>V{(Qjyk0dx|~RAooBJ7(;by%#K5=TLG;b>q|S*vM|T1 zGECW#55yLA--OI~uWs|0?cHZtG#*CBm)$Crab?!(P|?wY+?nd37q9uw5(3p5D~0XC3qUs6#|$xzkDmitfrZXL87cKkfb=K0=8^KPu7J$&u$!{oMY zxES@c`)GovS+n(de{MUyss68Vip%cjgAwlG-R*FA#P*D5Ws1EqF16eq05;w6oZJzk zx)pO|Ka<;?54TxEelEW3?92?+Kb1yBCM60lo~W;;IyIti0=gtp7J% z8K(*GhnLUhEXqUU-^@frGA^Fw+1c?pw}I;ubbMpHO^#alSyBN-_R@w`O;ULeD@ee@ z&!3j_y!_ef@47Y!+}Evol6?>v*$3B|Li*k6rU*sPV@jIzy+>j=M|9L{si3BHiJ1jmjnN7;7GD*HIs&&%I=Qu#9x!XY02N(uOOMcdsnVOWx zSg^}ZkFbug?+f-=i~fv$H9T^1>?r3@`u}>Xq{VRwp#t_W1tjr%OO-$dFEv*0nOqbH`8OY zMX`^^9`UAUgMPy)3<1d0pqhQs@ZGl{Oh?)F@-g@xPaiVdGfh%I>)x#L{dN4@v)dme zs=TWj%tTPU-M?Roh#QZx{X7<^{bn;-nqsnj_Q^M7!s1nqjPqkwv&xrDf9y4~`sTuU zTH@w1*0-n@x!Rle&v^@93@~H zu`%;us5l>Rg>8%0_8+t+Gw$tdBE_^;3mhs*nKo|ZY>0+Z4d(=23O5eUn7J%~X)DTV zl=r)IGX35%BDbN0sk8po&R1rX?W67j|2fgjJZKQX-s*tVwCeY__nJnYH1EK zkM!QB;0-cKGEWd;H}70%5Bnsr{@di=4*Q`eFI2OL7l-0^!@7koEZJ!SfFz3@W#3gp zF}`D(Qh+u;&is(@U%Hmo513>{VcBGhZLtr6TffcTdyak93LrcA4Qvf|S^HjN z6=7g=-Vc_NSRXw7N z@6Wp3lDY({Xv3QPPzz-hp>2iJkh0l6AaPpDSx~R3_iNFPNVnp)+byD0$$#A2X!(Jd zjTbpz_gqY+bmKhA)B{Ur^9;n|0RKRnfgNE0Mf>4H|4mT*H|Ivv7dg;?_}K z>Hd(;Gf(TCKdNK;etJZ=Qlk zj(}7#YvC&VzPB;&4X%C(;OQIU&@y)fE^hH5g=IVI5?E^tVLsOS9rJWI9KGqT$zSUl zdibR9CHqn4u~+%o^xUQLf@_A}MeVfz!wDlQRg!5!H?c!Vl$}cp;)AOK=@HmuVX@iK zD9N&-A2Wt3>0S~`b_r6sf76F&E*1I~>CtCc@gJTs?^{2;-BDbSPs-Qt;;Ac&EkP!R3xRZ4y>w20le!zt!;8PvEh~* zwL`1x)2`iZRS#!KP@$3Z-nwYOv|q1$5@0F)lj>=bIy`n88 zb^zdnt2zGT;2J)QlPk01S-pF$V1lD$liG_nlGw=(vq-};|Ky<+;0p4!n*VWv!|jYe z36fbEy8#$si(M??tBZYUvL0vG#m(p}tG4u!qw(1xl@E>YKIAk=USHW-0+LLZ(3e-P zEZvgQGhNoae`zWNF!F;Ys-xu$`onDpJu9xJh>5roD{Ti5M&Q38Y!~uI={b*wFNmM1 z9z|X9J!p)}%K7?ZCW2*0Cw$q>3s%7##TztE1npN0QMOu1#$P3n9myF_S;eA7`!WLG z)&Qn3F`FiASvu4=@WV_Jod0h8 zsVoI&6Sq;@aCWtp=M-}(>gDMkFakY^hVneuybYB?ws+#?|H#WQKtU;XgtTl6vVRx8 zWXs{3RwL}EfvKP>N>8naQSabyYDSlD0${L+)#!PIp0h8e`B`?!kLNE7dtW(#p6k5v z$1NK%UPu;aIDygC$0^s2&%XS&5_$qC)XFFXL#1CU12f;8j)C7YcFiVusU~-897db6 zEq2)SvXo<1RZ&bod@@y6c}XOzX)L~coBZV}R@LT(D}BkSR%U|TqgT0KxEUDygL!zM zB;&W7UV!uzwlZ|-{2#1SdXMr5!QrE&8%sN>;8bKwb$kf)VD}%7q*WWeh!c@+DF$n2 z=tlO(v>Yr{;JEdKFhou=u?i3Z_g9mE`d0$PGCE$xVF zatIk^V`=@Z-?r)#VI7XIFsghdAjrtPwAzmXD-%}BMN!NWGu0Hz5vMseQy>s%BsmPX z4{!n7uQojBx9E0xFbURg-)w;N&B`vT34=j0L;_~ zata`on|N30<7g5WuC-h4qaWCt{1#~Y^SDHDew5?y@SUt-uRMldW+r|Bcs~ZXY9}NG zX&Y9{33JEu$_mvhQ2ejQ^bBu~@8MT0+E0(Vn8Ikj6j&FoS-p<7JuYymVNIhfG{1&^ z{i|j&2OGI_xP_fIF=wq5BjGZ4^K^X?*$S-}p#gE=C6 zR-6y#7*Ae;yw}7F&8<_*7G|d&OQUkUHLfocDOz$PeFX*XLQ%=KDd3^u{DELf&hj*( zkX)(O#;iq>4wp9_Wv*;NXMvkbQNdFUlflV+5eOsaD6JW_f6&^xBg>h0L|NsicPaHz zUx9s}yy~mqG9j~{hsJft!X35jgn!}J$cl^_nknA&1SQsrJts5m(PiGk-fS+L9J&nI zNw8AzSRXu9n5iH(@WvH!UC0-<5=Z8`wS(!5o4L{N!lP9|LWZt_U$2>DBBaA5yCn+) z#qI_t!{HZZYkI#5L7P=tsp2o@t&aZ9iH40dEiHEblGIh&2KaPt+0#y9GaV_bAr_9A z!n@ez@St_&M{x`SN!!pYxEH4~UYFgA-)Qi-BYs+Tda%^*M3qdhwbJ8gN@uP!u+OL^eV4mKyUyA{D z^KjPW_h(--cRB_&xYL`NL8#5gJpG&I#)wBQ^0joro2q)P&;+sE7wvT9!zo&O9#Fsbs z%1Ez9i?Y%c-+|Soqk$CRr^acpPtk?Q1riMC?-`1mJfNr?$9f9$5j(b;ik~*y)RE9RoU7eJG4aP7-6vP6cS*G9 z+r8E;Y7-3)$_t^g2yMd7x>}8(yH`sa2+l|>?HJSkJmXu~~nfk*Kv zZ+c396ni=7EzP=^o`MEawtWJE|^4yc{{?;s$zuM zO1)~4nIW|bxr$ZDLAJJxYMG3*M}gEas;CJ~-`!7>^h4raA!$zI6U%XLC)m9thwjvr zkO4c~AH^&@=y%RGoe9DA3&Y@Fzo0tXAC}V2HRT1a1-=ZblvrWasZ9Em`Y8`A(kr?3q0^^ zE)j}LubbO&|Gb9kC*tZARY{!aM#E_IwjpzH zJWHML@@)wM3AgNyW2xKCf;20K6^Ww7LnPk?#5b`=QE=-$`h6@#BbDr6 z0-lc3AG6A9+&*4}#)aP5ac~f_xg}Yi{kzXz?2^$0414rW>rMqHGKd~B{6%1Og8r|U z+Z?Pi6oX-=ehMD2N2%?zV%5U$tZY1AC>xdQKB8X&n`UbU}gGN+2492Q~X&lk$o zWZ<4Mq>WKVQt(EjCrEfew>&54Em63R z`0X2YO|s65FO;ozjKzHaiPqUfo$IMO^!D);b5$K0y%N%}dq3B{C=(<%GR_ol?y}ML z)mcE5XDFEez}A!!OvW;!-%TWKu>@l<4?->24ePJl0kpbm#9a%UA|@07RoD= zEtj&atHrE1{VNWhEO#<%jSs}?#Yh3vXZWUyw?Rtljr5HT_F5P*8bOkDJQ5cLi&s4X zh6qH`kht(dEBv_fR{fSsx7m(z4kKsF&qhq@bE6I67Bn?J&m-r1V9ZTkocJB`pd#T$ zVgH;(bzSg^e)999EHu;J?IvuonXn13Gg}o z>C8ZLaP?Fv>6Jas7Q4_PhG5Z{%y{K7DU3mA`y=yje)ELrP4}{$t5< z@ey>T5(*mk{-c$5pR4Pgmf|$Y>?qxpukTvCAIX6Xx_F+uINrGF=viN?)g64NMw&fr zWkOtEtee6zWI9@Y27maX(ZfrG>2TU` zVT$&IXM@83(RAMbRR90~KP{4#kr^txjAUgid#|!bRva8MPWC8!Z$kEtV{>fbAS8R8 zgF?1rJGR&N(ff1x{sDfuUmnln{&?JP_v>|M(Qne~$BeB8NDc@+d$2crsUg^#z+lH5 zXuIaasv&beCRZqksx03+5R81?wKTx8!m8eSp?Sj|95DiN|E^a{q(}2Si^@HY^!8;j zL8Ff29<%84)i-oJ>0O)%HhPos22SD@k0qyu%||mHp8b3pw$5qz4q&wkweUQJgL|3G z!*9+veRK0hh_M?x&`#2sQJSda*#;Q^@j3-fp%iCqBmPu)MP9-N_%w6SR>C&Upgu&R ze@D5-=DWaWiRNB1h#C?(v*rV@LMtA1cg?!58F)*~Oi2ZO_Jl(iq$QI;IvHbj@2*2# zBgzml3j$L=ZCqO1hO3Hy#`#DF%+2Q;d&G#BnS6KW{CCnG+4JJPHWcxjF56UQP9Thr zr)-b#t4qOEpBm9EH0&}WY0)qiu|>2O9pG=rtxqAoZGD!I$H6buGEg5z+&dZTQb5~J z7JL6RfUr$yLnGdio}4SN>9VvM8vGY#iFzTCR3)5kebe<}>2$W;+d6-GWvBW_4gz@n zpY3I$8vpejuriJ1RM_hSIZ?K(E?O8Hy}@(?r@PuxS(-rfZDVis*h9>L7$HA2o3-6H|++D`=mBE(+ z#i|kOXTe1)HyB)e*BjgF_8LRFm16rRd8I}jE0{&}{L*lg8&QTVKr2E_HQ}@)Fhd0Z z+zA**+&ug9)8D-j-g#22;!YKX7n$ey`B1ZK{+IlER8|3wQiER~!yD}LlKO44{EI;L z!N&||c|x&WLY2icP0f?X)@Rri+F6e42Lh0oQ4f;)A9%zShyM1%?c6!#ahJ9#WQ(_9 zGWt(;4WnBzA~1F3Ti}dQsWAn<*`mt`p4z#O>9^z`_G@X8O#f1dDT0HP+s^tDPRsgVo0Tl4vsK55! zN+}rSaflhuI*gY(kMUBAtFr9ZHT_;Eoo_mC7E#}c)ydjaHryXx(dSgKL3Wj|J|3GW z@qKahUzCESRxmm5)TrAW4qdY3a6hwpbPS|UDnIHF%_Jd}cY3bxOl%9wS{<`j6(%V9 z5Zr&O<-9~onkX?@J&^2(Pg$+R6ofTW8K#Cc$oq%MJsaI1Y7Ea z4rbL~lx~0~-|geGKR?j_LEbpKSIGJdD#6sT-@M7ThJ=WpE912+3CG|T7FAP5I5AI^ zCaiQ|Zf62eFw;DkqHZYmZH4S8y*UvGRnI`BYTGr>!o<|Hd9W<8@tk0)2IS0lZT4Mx z>dSvr=DJd*lz;r`JeGJR+-sfJ@YM)P=lCG6nO>!5y|{yND^UtXU+v0r6Vr{jXmUjS z8VmCFqcmPv@Q8jl?p6{7&?$aH&L8rL!aonpWyvO_=BMuoQbcDMHe_ zq^{S5P+GnLY=JOAlY7^L0?R1S8G_wtH25%u%DxRcs(w~DGY*_)KP>KJ@uR3uR36K$ ztT%b%X#4(eLEyL296Ti!NrG@HK?;u$-2)yT*sr%qN6TZGIN3c}KvQ`mWk0-4JU0D6bW#vxuxD}GCs>d>P;(Rk{w-Y5;t!eq>>3Q6cu0i6#TJGhBngo*aw zZK?G*Gidn}t85hSynl0hZs>0P-eD%f-SLAA2{3j-f_Hsjj}MCU1u}*2j?5DmE;A&Z zEQP0=e1w8!%9;i$s_tPeF`ukc$u_9tZl$>TyQ=Xgqz0dLN)AaeG^Lwo4QD( z2GJ=LuS~F%$I3r>Agf6Lvf;>FYo6obA(+1q=g8{Z%=;WHWERy`d%So|MA(6Pk^N+8 zb#6tUF(_6!K`63osxp6rTyUqXG?p(n$qE!RP_@pZm4eWYnup1Fg5pQYFX!awmUkmJ z5qYPK%)X@*?n^W=u$B7%-j+)IpO<8-P`@JC}K{Kur>+zH;pAo1u;j4xY?f&~?0wRW|sO-G_XCaKLQ6_>U-{ z(%@ho`i|oUqy_u~5L2z%5cMQeBL0EirP=NXCa=4Gl3+sEU7!!0vizm>!Ox@(tVM4P zwscVU-^oles`GvY5(o`|kLP5{FN`kI$?)=MtrF*Y+lm5}$eq z=Cp_vrfYpcwe<@qaWRs~*40a&uk>FC&d;%PoUQvM70K;g<*$p9!DO`B8J%Oa4xfQ4 zQq{=(*>Z16(PFDDWl!e*y8MLwNJkp-8AuBpcLR-2Q(nmGpc%T&K@r1_3dc3K=q`Hv zS^C#zSro`+=RH9;p*yq)$eBTbCfwF#T^|ec8Pi#n)k;;@&PLk?FYomv=UzupC(-~v?V$@( zsuargY zDO~(IUwVns)B zBTtqZeyE{uVt9f`2y>Ry4np)=VgF-}8&;477@l+vcm~+W%Lekz4h|Dp+Dz!3NcW_A9X3 z58`qNu~)=p4x;eQzXM`Sg->K$m&*Ft8~wKtl3lOFKm2;0SbUa{b=A|?ehxChSl$NhI zFSLJ)FT9vg&wiI++bl9zI1oD*^^wVt?qIj~guv$g;!&Hx4FOl;g6?%vFQct~L50Mw zYbrdNxU+uB;(L&bxsjWjhJkhoMz-f~ZZ6=P)y|n>q8>TzN^&~w;sslh#1~4VLyGZt zcAQ`$HfB086G(J)LkNY;hzVlH30K|{vH}38RfYB~P7sW&GUYyHK{s5S9h62Y6GB?s z+3e5|SFf)H2(V+?qKXUGj#iM@j#oNcceZt0HWJZ(<`2P9z z$ZV8*2<|9Tv|A(br;+!k;6|BQ-%_0QB~%#KTSMFz+Vv$(ADalu_3U zGoiT4W%0lfV;ux(;Y7R1HZbiMSzy)bevcp0w-<|0^7n(6g$ZP`-LSFU!g*Ha8b30> zR68y*HB%`cxTf7}{=%Jmb(OWc}+n!&MU71_@@T5kCosc=@Qfu0zY&+r1$yJJ)!kJc3G*n9+4;+ z@TOPqrT=rc<-MG{Snjp`I~x;ld{N(&Y_{Y2MjE4_BU-G=2ljo$;S45CK#gT3xAE5V zSezW*(qUh!UCCly^vj^e2(79wedb$Z3ApQJQ%@hkMgKV&*u{_hq{X-1htlL`cF$}c zG$a;&uY6I3Y-~pw^WmRnQ(nwI*)vJS`9>&|*^MR)dQzXS;UgDSv#y7`o)-vl?Auds zRvG`0|7#<0RXWxU`$I#F%Zro>XBMH>#U|hLw%pGlV2+vY!l?=VjJE^Q-?Qq1t&1N( z$#^m0QKN?3wsU-;H+lP4{;B*kn3$T$J{HU$EPj?%`*Q`grIU?LU@$Ae=dJtD?ex zk!2!PaXe2{KA8`N)XhJ!?QS{|uuD%c1o%ItU_;H{?;G12jQM%hh9ewmQS4^K9wx*Y zro3MkT&-1N3etg0Tb!QG5IQhwhy3#j{*3s?@YXiRjgv8jKNzxN=spkPTdxxJh=0X9 z|89ZP#rnPI$bNzN&GYDOKL?AqKdYopz~$1G`17P@1aZ?nVFy0}Vm59% zwkh#f85y`Io4tzkk8i9IaoiA?v8bz~yRI6YAN&}?Up&8OVLsZls|I{qpU)SnpBc%$ zn^BWobV)2;MyE^-`KWhbt{-9Gg~nDgH!~BS#r)Mas=F4AGo8D?zyP-4(r}*Fz~9$C1>$pG-t1Krn)!ykr7xH=68RygMdo<446&Nyia-C zaOzEp;iVqhe`sTGB8^EZ^Y#(EyYdOjO-T>&Y<92FM3u;p_x-je& zET0YU{1m$Hx)8hlY6His0IPodT09ZU4D(l>Flo_(M)2JcnEhl5+6hWt=(_un;IArd`QZ)~sKD;gwz z%t)-FMR@0Dl<;E^mz5^&Xfh+1;mIhLZcafEJe~gFkAO>QC@07^?8SWj4#Gj1XwQ9G z>XT~W6FG(F4X2)Dt&IS{5Qbq~rJ5@cMlNfJy7@7FI`(y=&wQ(acK93g_emD$Xd%tM ztyDtx752mo*vW%;`g40DFaIYoCacHy^*4ymGtxVlR&Sv-_}7)OB0k&igT=U4OZSl< zsio^%IWQ(P?oT4$`!l?pfRkJ89ajsDNt4Wyh*|{D6Oo_R;8u$MRq?hOrIm$9--$v! zH!5~%Ud^pc07k7~-ZTzDT(W+N?j=_u;v!X#fBRsv_O-yTA#v zewaUu;kR}Hzw#ruDtE^`5pKRbWcOWh_K_ItUNJ`>tr8Q3MQ?#|w?;k9$#<-DxZhXy zrJEjDxuKQf5Zs2>)3)~9Qdop13w>Pw9QbdUv7Jqd=$YtW^@t`-<(}Yfy6ZTTgFnE1 z`M7wHuFk8y%}s;0=JRj$I=Y2&%Z{dw*hsM~y7|!Qwp;3v-5)Z|jPZQm z^W!3w-ih1|jgLPa=dL?Fp1A(KPoOeLm}825iLuO&`Kx)OklB<#{1pO7)oMNMi%lvA zpW+<7bzpgkJ$ki6{F(f!<1;F^iTECF%`4Q4PADy>sOf35nUQv9Kp)|g#*b6>WcgDo zqhU#9B#8yF3q3E7NM4xzq&kw8PVRPv_ zR|6jJM}hM6P6t?U5aC5MB~P3HjzQ}70`d6DCnB%jV$rkxAA@Q6QuBt^eY1W{vh4AM z9#O){fi!L9Y@KM%+svqe}$6-273mYL287VG{fpccAWLx90 z7*hG|`lP!=tu>Al!=|9>mjp@q&=KLp-rVF|3`M(!KmOGFB-0;YD;Z^$u$s_@Pjw~~ zsT7?*UxhmLeiH19T(PI;q>^A(x?%O%xjtP=8mwTlT)+pxGTavKrO*{9PW ze>6$DW27DI&r9Gg8xO#@v9m@6b~p4XjzK2t1svLrQ~)S-+gZRIKHPn+JyKKL^?kkZu+c&rMlN)v@J#pORK-LAm zdIfZdz73n}l-IwSjK8o*NYT9;*XbscEUoymbF6tA_rkD2nWUI`Dn&wIlXlui(dU9N z_z+7j)LkB!YksPEQ-4;VqIsu{Bix*gztH#yzHO_b5=)`P+Os{jj<#-KoMNL@8Udb> zT-~+anoKhtH`qP4gW}H`3A%l^C~0|pjMcKf$kItBVNAsWKU*9bA1?(EbbGXKAh@dY zY=hk+8$+HffXh=4ch78x+gP2E<(=G{&oEn#0sldKOVZ!BGk0B6``4gL`ER*Ns-B#c zs-Z-m$I6V}?<}#qHP{^2UX~7KDm;`uY=IRIBmrR71 z?^_jH{Kzz?C;MEo$69L8Cwr7P{*qiXf1&qW30-?#9FvqiyS4Z-`^{8@vEBOZDQ!@b zTQjkS5MKnMJs=z1+}4MSo?l85qE<<~omsuBHH)srf~gzFD_XvWL>I{e99t$;ieuoG zAFCuhx$7#g|A~XB(oDQ!xa+b(M+00>euS*GG$-+I5@2SKaXE@BG0!gy@kAG6EL3d2 zycZd9{e+d>M@H=!q5=KI+!o`5YKpR8bDr?Eo%dYE6FT?2zm7I?NZ|ZMgYxFBq^wb6 zD`UT8W~4T^hf-PTe3X2(b*OoBZjM1)AIL~Tpe1{SRgRnU_@#reJ78YF(c1LRKfyvlo%7ptmVonvjJtIv+^wa| znN__^a>J$^H>?fBZQO7;U@?23_cLON@1odzQlY6Z<^2?^8n0r&tiJ!ZmI?0I0ZV2Wvb_PAaUadYbQvOYwx>a={@5RG7IkpYF|AKQZDoK4@R{&QMrzyPF?iJH*hoT0WjSPE~Rv$FL$TYb+F$ zAr36D)-cW=aQ}aiLH`;;T%OX;v zb8MkS$Yd_F0&`!U1kl~#v?RPCN5;Y+D6_>jb z+WGvpoX!4&u`_Cyp2OTDu*t*{!AsEPz@@y^{4;u0&Y6ikz&}X48|W8HuIK$KNW**LB3g1j zUi@Winy?6}C6rlMO#t_W4d7qzGuFj&p^x&rvmQFbtZj+Han-??ImhE-fig!h2&Oly z9rogXrZ_9ZvFVBqAYXMY0_gby6fY06KhK(0_=gqJec`I&x(}!Fa~o4P;PbFAt-@MB ztUC#|4_Hx>#KEvX*)lv;)J(?~wV0mZh%l6mzx4gjVk*gKG!9FcT8l<_3 z3Y#Lob$HK8ciiKfWu-mrVKZga8%$!21@OQ^WQvCowRY*{V;d>B0&!heqC%AAxwZ<7 zJ!;2VHf~*1z>f8^98+^DI9WNZ`?Z7todOIZ?Ze_PGAk_qgS-!CZQ7?NB|U{tVKl1m zOgf%|r&-4%$i}MEePd!VmEgJ|mdjLtP04G#X5NAFILdw1v^^Jpz3G7&Xr3^qu?RiQ zn9)4UBLn%Ud?OVPVdXI)%^#u(P?juGd|7V9t>}+OAcf36OzQ-CS(22Om+ZGT&K(7Z z9I9=1@?Iu!Zr*uwJ+t3;bra5Xv5BBj2w3*U%5wLG<%>jk>(1rU16EDwHMM-{hSb%m zzzqw1>hD4r5<#>3Hx6F zcDBOer}z*n@{moeq;X4cu_o@{!@;JubFbq*Hxph z?;j*Ku`i@}?!bFANIhWMOBi(~zKj)ECP1C(GOLGQ@-9Y?&n=Kj zDWrXyIKnuA@lXg*z_nKqnLd)KwunX+_2R&+@L{@-B*UkAVr|7^Z%pzbjLahee=8P2 z)o^o@Z%OL@K&o!)J?ZhkV%AE4no+gkGOG+Cke#0uznJKk+dS@ETcz|3@u$_esx8m! zTiiGp?Y{+sbr&-QL#XymJc{He>p4+$@C*lg!oto>iMA4bM;~+XhIH>}X633U`YEPl zmA3uuaNf(osqSqgc`14`e?(iu*>&l5tn}U=l}Hl-^985mDBm+M9vkn!DsvMc zB?ZD9pHR0{B4Jq;FhAcwQuD2^60@sB3Lj?I0)F*Ci@#^v9r8gOi{yj7hKtDXzN~(} z&H1xp-wI6Eb9y7a_fyAj$>#bv=E~TsvC;%jD?jDVM8J8;KI>pVhO*>hW9{%VnL@aK zYfiENRz16!(5U5-B7KEqU7W1=O{w~0)$XM`lKP4mH*fmlWm!XqbmO54k65AU=SVb{ zE`O6Tql+AbyCRGAmf1cZN5&A~~-VR4$-^= z3uYDG>29?d`oqEEJanFgOtu)2zexY|0D4!KbocoD4Zb_AU(cwKRYYaN@9o^m+wqWO zuS2!=$rCEQZQaR38zk=BT>9OmNl(viGgbeN+@p~8P2vo$AVl!gC;#olOwW?|nLG<@ zbX)u$#C^tMudOb%`D?u0`Pb#4IzG~@TN}q<#eQJF0%%gnacHctf<+&B54(kJ!#I;d zJdlYe-kERl#Hr8%`mfaU0uxa)@CZ>~@uVkrIPFmi9=fNGnRz?{!j0V#S6nlgEIv5G zyq`hCXS$W!sgleS@Hzw zE49Y-EmW=m?5=`fNQ#gmnD4H*i+}?*O~K%@ZYz2NMz6x|pWf~E^y=)Sps7iPI#6zO z>0qZq%GulZ{s6zfXGzMRu4rIFxFyzcuCO}{ECJL4yY)t=>UiUIYc`YccT^rLE3#Pu zI7-NDrZ@%U^X&`&uvdKjo`6LtgI(wB9h16i)HZq1SH4;Ei8~(!Xg>gE=|JxT=|Fph zKR=C+jT_CKXYAdOrQ*&}6dWd_LUtgXM2DEgk|z$qdn|H%84dq^U(~GUW6NRS;mG%QngR2FVP!M$dm(o6L}erHbg76{7cn(%m)|N<&R!Y1^WmPdv{+@g$v+<|Wt%QyY;vOVVm?!2qPpr%d zV$cT{`_d}o(yoSnxsX3jIjD#qoSSGg{VCEw_mG=TXyER!3&#z#Z!>gi%-(BIp+xY2 z0tVwiRVjhxlyq6%vVr!;Q@FvRN6*`{T|WH9IncrDBklM#Dm{V(bRF*e%6!7e(AM)r zyj`N>dSW8pYHutvp;f^Wp8=2KCWqhT($@I10i2iVR~Z_f5Gs9;F|I= zt@TR|^SMzk|8WGhRea&gN_jO^jE>R&BG`fT2|U^11??T)IqeVjS_pK>4F!_S8{An- zZlEjj>D8#hbER>7b2lCycJbd&Y!Tw*-Ob+%4x)n>s5qCEdFts+1+sP?_c=lje;b{8 zk>%OaxBo6--(`;5nHTn9oCtS^{h?<~o9n4u;7#;MAl@W((1d9D5WKtoa6LM0_SPmMAdZQ*?8>uPruK!tQli{0Vjfnl&y90mPcC7)0p<-_w1E;c znvdcFZ$of9#nxd)(`Y@Ndkb{8%aq7wdivBkS=(Fo3sF=J0fTun!ijF(D^@W9w5|dR z&pT3;fCFPmtGHKueYP?5*0;c2?M<&JcZ#0ebm%mJmQO5a3|_h zpL}N_vgWWL)fAL4Z)sT#E<)nlBXlRRPq+h(t|DISWmS!5h_Yh%w`-PBNwpxcf{L~; zhN7tITWJiyKxxcaLpbu77Ia+1%<7RRqr10XYr@}RhZIkck}n%W?(*{lzgtkl@DB7d zIU$5DG&6KC0OpXK^6a&NwpPf&#pML#N=4fUlQeSlvS1ur0ntmtGdB>cr30+>RzVo7 zXa>bParoC{!7%D9=*Ti=ZoI~Im5HLQ9=%Yl=43?OkYLD`O7$mEFW!2ko5<)&jNTNb(qiuq^4A}Qzlb_3IyqiC zxsuC^58Xt8drRejmYA>YjYK7>C^&&z+jD?)hEA;w%O!?IkbEmDn1l;XI4+MI-L)F$ z<{_C%mN(b?cdp`oCdPq0k5{xvZ{M}@MVW?<6Ya((cNJ$bUxqGuMpJ3n`PLr?t;CFkw`h-t=) zs5xoAdN8IeOv;Z=m=fIMZkmM0je3L$|9Fdh6yDZB2QkuT9^nEuIvK`dcb|4xPTwwU z_;d`aDY)aKRPms(I+@7cS_JiNIse@l+Te`a8L*56c*=PMmWrSLIge0$>`!ajjx5Vb z>_#Ni{9jq5$CZ99ezGGcWr=)`vKVW3_cBoB zNENHo)@CL;sd%+bym4GuKl{hX3~ORcBQ8ttL<|nrcm%9It(G5XZ-|M0bggMTbt%+v z;ed?&p=Q1&mvDs*m5(OH47i4q_3b|#=Zfx&;E4fbpiyYEw}r~Ho`20~=^koWxCdoR0LvrkbB zH%z!b-O{tqwJkY+8`OsfrwwKT?RQ>}SZ)u-KY!i?L&DI}dWzLZTi)aO$~~$E9$_AY*$+yk zrI9*vq@QEHPnAKfdIVugujjb}KOFkT+9|4<-mIr9Dkvf)-02jNOgmRlftlMseB>&yEe(xP<+`p9Rp?`)heW4_wd_rauP=AJ<19_m-gf=FjgBfP0ZQjq{EUM(n7&<&8lB{2Gg}w^lp&Qza@gJ7;YG!j zu#lKe#csl=S=TisE86-{SLFXrR;}6W>C*}QjbA!C6G_}-1Hz=jGr*ji1>aNqY$Qk9 zHk}mDJ)iyaS16L9B<8LUuesp-ex%N%V?fsAh#!s==T~P`Ckbhw%gUqUC9m~#xsUlj z2_biRM-90XSc&c_>3NieDg_~zlAK%W4JNTm3?B;TsG(sn)|V;l3ZrhpH!cfy?c$9gJNH>fvBUAM zPcqBPu)7hE__@<>m+OWiCiH5UwNR!_BuV}zbhX(a=9CH>j7(N;=l z_B@ur!#D(zHZe~mBz8H05G)Q!bIT->!ey0+H~B0#sb(#F24KonCOo4^6^@ic&~B9q z5;~{CCBOm8nqsQn?rV850Whb6x=kBoB4p-&Fv^fuzt`+6n7p2XM4FK6p?_DB?`%-5@jyJy4`a~?U#LtRI zDr{_%I?hA%PR;nDN}CD&K(;257D@?59YfF5>=(NPoJe=B$0qUmZ}+*R{iEuJqzo@! z+J9W>3wy8QC!yiIP=QHKWlw!Eb` zHWvD0^$!aRvA)`7BuA=nOR{F`%>PyKca*fz=~WkdlS(G@$B4g4@69yjS=Ib^zYnB) zpRnl;3A3m7$XqZn9c~>qP2@hKx5ifruZJVMRIX|fQCn4hI0{0?FnKR4F8~#@cQSVn z%rwcLSZmjK!NEe~Z3Cp$ju{SuU+}}>t40}m#5cw(NNC7LW1!S3)QiWz$!hQZ1$fN|8Er3Y5&1~k+jknHTT69feuH~+{TO$)lSjaBC#!WwVBzfp{%hGUzvWN@) zx&#ABUhSO&Zi?4I8@kg$T;nL=NB+Bl!rBv$_X@Q1p(EwZ@&9nmn5f#oO9h6~gCVC} z(RD^zVjM!%ItbfHi*L->jbJvOJtg6Lk$OGf3KBr!@~7S2UYfTmuz&UhbMH|9581pR z?Q$wneL7}@MsIw~MyHo4d^1@n&bX~jBvE_rYiobk=V7S9l;`xKq?J7TKe{gSenG6N zN?oGSJ{g=yZt@fIe^tr3GyYD^5ClObJf}9%nj@K_%OSc9^yx7_2A5`8+gg**8|UT_ z17jktjdh9A4TAkqy55TWr||wLLe~bhiI48apKyB6gbt?y4(lx7C-V@@RZr*LUW z88J*Ye$cT&yom1ZYZ@Y+r1Zy){c()o*Z&Pt ztMiZ1>oU4c!)+Uv-$q~CNgcf3=X;k)-9WJfHBCDuy>ervkK?=EEfm|>3+dlk@U3m+GCsB?sU6}y5xw$P?vm+Kr4Mf$FN3XW`eMXr;2Vc_N z#B7|uA;6tD)y(}iirO8f&j5!@g(OKKRQx$T)-Yf}uJe~MymMQ0+$yW@d*cPCYq?p; z=fCR0k6f?N5Z}#Le^e|VIuomyMTb*2tns|T-P+IP!n!@P^e?5Ux5rEz{?VgJm~UR* zQk?qW!N^>0*Ag0*D}pC9Pxeng7`^sc{C&8)_1e4g-_?WjK-$yu;wMyww?)AHKB>qG;@}`eu5H7gR+42trni)}%FS&9wq7rYU!b)b zyl47$kg-dE)DNwIfAA4rbf`ysI+XspOz=DFYGZ6pt|<0YzE!BFqLTin`G=Q>Vwdy5 z5TVr-x0gDqV}GD<1x7XOaiv(_zZLSOm#x%x`|>(Q(@NxW?vSgc(oIhB8F4al7Eeaz zb}5_Y8_37(MG~AA!9GMC7`k5yVR@{U`oB&uYo%{{`7km>S00N{=(V@pwAW9%+*8^B z(2x;z5IMQMJ)kRb(-FHHH9Kc6@zXzwr9mmDvib6!)xFixySI8n`I(9@Cx7Z{Pgpo)9XZnjgo zB{S%~+;j_N>3eVRzH!PK(>rkgGH?`(0{$pSTgq3TE+p}1W(m(7uaO(#fkrK{vZG{f zWt@8C^Es&3uO@)Wi-%o}k!4(u;k4542iv#S-b(0xP4_XSiBOq; zHEz(+bkqK=OgK0A$kbvU>^(F?H@E-Yf9M&l%ik`=b#&=j5UC<$2d^ZDJS44yVjVBf zFS`P$riNIV_To-I!<%A^OUEkY8H{RmxUoFqvdg*?g;eSAj5AoV@dxWz@T}EeJhXHo z`m3eMjWBthUiQQFJK$OWR~6)8vZd&qwEM=j3<(a5Sw#W#D?>||l)BoqI*BL1$vVJK zUkRtIQEq?KOve+FJxirsxyzH}xAl`j=|rGr5ME&^vp2R|HLkvD@at~W@mkZC3ODNG zQ}JhuAum*1791V%Abx;F29OP7(D;r9YFb&17H*bZ_C``Zio zELg_=S@6@D!6l@xlPQ+~=k(9uB?pl>w;x9ULt_t>3X@uL{-*k99BVY_E3_8);$vU^ zP5Nx=If?qZ-P{c-OCQD$KV2$MbW?qIW37d424OcR!gyRhifC=fCYpK#$3!l6cBqe& z=&OE^wW%O=l_uc#?~-#9Fd@@ZsET))mbud1p9WqtV-xPrZ1MTu2VFVH%*QuEzK^r#cHFI056vREOg(c)po z?y-2c?CpAB*ZNM)d7W5%l~%(Cez+kQDy-rD$m28Z9g%~4)vxADen0KRo{1dK*?Xau zp3&RzNoKfqCW~33zc%|Uu*Gc|UhBvj{bgND;K%Uhmrp?yQ>BBrFo=e~!CXXeF zK7XI|;o2G9#XpVT#+86&2016#&h~pIyFWJVhTsj}qalx*Spn%$m~^+&32~(x0=V5$z*JaKLjHkO7^)=P6aT zs!G)yJ@{R?q2TaYr#?vG-+8+Isa5Brn=ca`TL$vyg(6eag6K6{WJX=!;Fy4iAuSt9 z4_W0>*wH>w`%96LVy_JE_SpbW$n*JYJ1xPE;AInD72>Pf(%7eq21xd_V=&Z#v-puA zsdPWV)f|NAu4jB!NRMcX329mxh!Wo^JAyO7uAb||`wVq+7^nptqG%kKefQR$0siRBh>r~{PBw=YL9Dxn7c zC9%O7`M>j5t3`7^vdDsc%MZWj<$(4ocem!P%G`SZ*wYryqbXSoSWdN!1ng{+CCTvD_z-Vbxu$m2ef&cUkkV zc7<6RDn0q@RrPtwvhJy)E}#B`v`?%x+6RbpE~<*6RLgLcssCyxP_=%;O@b1Mt0)rs zRqhgEz7DQDDoxCLb)4oFktOzz8&pb+V$<>^zy@>V%gg%-v^4gH%S=KG9;Cn0uJ3b3 zuAJWFb9d?SQ4-DY4q_6wl;Bfr_5|qjsgB-Cg2VEm7Dtofe;W%I_8fKV{tfUZ9j%0Y zrHFx7p~yt!vTAL$ua+K4bbGP9lTWE|?jc{F{Pmmajf73d^R=*=loy}i79&X3J}@Dh zbzRP)Tz~~-=+w1E|j#O+AC8ZWV+C*#f?fW@X+ZhH00oadQ}z}b2)Nz z&V;~9jau$g-Kh=A-M!kC#`zMa1Q+n52^PRg^7)so4FdL9A6Ib`j0WBpljQaDt4?S>%8%TgT-#8m#TD%!n z{%#EMAEds%ROd|=R#?Vrnbe8>bc{7%&#S$*0&DV~X~8f9oF&qd0yWOvhg*J6*u)fi z<|ALb7<8a1Aq@>qrMLG<+C=+peuA&?p%eo#8JM^>nQksE)(r`L4`e|6IJ1cz^(_Tz zMahf{Gi?HJOc%viI6f-g-RL2eIEnfw^X}F=(_>(jS?T*&l>+)6o1@{kqu6K$k3#ng)KC*tBm& zA|!Gh68>?kA7}I>`a9T_F%V?-_GIECz~2|1%J6h%{6uMJnnpgi8QhxDa^YA} ze42qy>L*EzCGq$mX1e*T`R$h#)%;3{V2;Mn?+t(R$(9I@FC@@aK#SJ{5y^@Dz9()c zUtJmar2-LS%(tdZW3-^l^bbRw+mayJ5}DdXR1 z;*lOgoW^nlMYf4|&Gv)D4MatZ*{y7e!A~v=Ev;485*SJ(O2@s_w6BWr_ZNfWs90`5 z-C8x6a&U!;Z2RTKhLc@PBm;_ULbE*kpqUR%Kk4JilKvHJ;WzX_3B4rcWC*c}S6ikJ zFRxppqe^xVpNRxFX6Jc1)}2b2gIY?UC3nj&Sv_*}0m1d5_nSmD$qM`spXYC}+ppd^ zUhC9$NUQ^DMrT-+ZLe&5$JNBeuRms(k@o>qn^t?e=?-~-h5voQytSUGjl*1-ebY93Tv4S=?b@(UF$4sJkhm~QO=>{^AO-m2(TqH+} z`YAr-&uQM=h!5-EXKUDUrOfFSz*HZW;T-KGUU1fL?Gi;YI zb!({!V>(^S7PQe!B@^<3S2eaP?Lp6QY~`Jw!8`(l@&^^2XAgOi2#Da+TCX0$-f_18 zs+-*w^;61iT`CxgPTulJxwJj!GMi1&sUSvK-Y+95xcI7VY--{WVVQgCLsd0C$1lG| z6WSrM322-2x`69f`{$>7fh+0q?!W(Z=`n>2L7E$MYPI15VLUqsytf%et9eWMmlQ?x zcSqrBP$q9v^uY?Lqu4#SRG?H0dG?H9WQ%%h#l&hyHx+|Upo;u1>a{5v=i#HQ6r(Na zHsj?iO&Y>+$!RVD40js;kEOGIYr1_K@Jv)nLJ$y;7J(s+bR$v%k0AZf3>b)Xi%6H$ zDCw3GgbhY_cW;D*NR94#-kb07{sa5rI_`b$`>ONQs%P}lj!ypfKZv>4xTm>xL;r&a{gp!xtU~~zoserc+4;%77Xk@cG5VGa9BK@nc z;D}vA_9$_Q72kcft=W_Ob=L!1w>t(CA<^o;ScS&Q1__F%BaRF7^fO3imC9@vGv36A z^(iq4o4q(9pDu%Xdw6q~xeojS{5*I!9HsDknvA=$) z?{^iQQ*bQ*wK(BBfy{%=(-gLP^q$JH(#WTC%aq@}B_FkkE>8qljx*D(cMAfaeQxg| zRpW_U;F1FWoKQSKmOLJnG2oM@{BsE_n&I7czXm`O*s~V0U zHYc1=uH2B-55ERSzjx_WZrMo#V*)nM?6I9y-##ipR~lDaShBAo)IK7DRuH}9%#;P2sTnhad9XTQsfnKCw?q(;}{q#w}B}4P3#7S!6st}W#30u zh~qNP=G4nXo!jz(Z^!)fF-SroQ%sk;7y6&pcxm8Uo>+(=1(uxk0+#Zmt62Ql(wNOcI7IS`{rg ze<_mAL?dV&bhIZQhQ#atryjEWv**=n*H6pD&{XSO$*DgPBz6<>u(J3iD?IXj}4khHRuA z9exvvL!mz=V5!wY_?JR z#te^V2AdkbsPE+>KfCKqs@fVpofr>=Gly3GZ;ck|+JsSe1f$LtCFU9u8O&D2;E7H! zx&&7RcDqXI-e;}n7E?smkpqJF(0lN|$()t2bJuk5j-VCqI0f)MKOR+Gu3Nwv%7HMx zOZxlBRbp{0OxD9~nJO^SpDPzORJr&8$3YD41Hrx3J)g@IwWOx$b1!1S*CFkAv{JY@ z^$G6zC2Qxo`z@o8_YPL5KX{f-I|E!-7xOi{YgTQpAll;cY*`T&rK-M7cEgvzn^|tHOa7v16?iSqx5IKWvoHZ=gC( z^4urdu{f?vJoBw}x}5S(H?Bi^Z}#hFnq_JCgYC`{Wn}Nip;G877l)KPQ%{dF?^f)4 zi`xh^=msC>jV4)C)KPtCAfC$OZ5@bCEw>HQXNT*%l-39Hs025SrsYf1l|J4h4tZ;Y zRa3Dw`6!5%v=pHIoY-N19(WMF5LtqB?r|&hxH1eQCuN}5_q1Iz z=92%{Y*WP1ldu=^WuMjh!s{fSJUBYZer>+@esk?uOE4z)L%>Vs93HfvGrcFYEbd)n zblW_A1niYznR$$Y**q|hN!`0HU^$7&wcb4&))$I%bbPefZWTG8X(I&7#75p}YjM$E zVabUnQ0eu&{s(&{LrmmBA);C*U1;F%;O0i$|Lkzq=N{LlzWe=&9{fVv5v2T8)BMZ1 z&mae0RaSq1dCHZ6!=z`YrqBfTb#b3)?d4BjWwcQ+=}nkxPi&8O2t*EdhYv@bA3%ZVeLKAk3xf+;7 zR7~uciq4zqbuOh*H|AkVvJ_I=AcRQhW^|&%y8iftx8e2&JS!P+~FZdk+GKh0^s>RG{)AsZe}X!BwA}nxzOgFySHq?+OT-_pJ9p< zw|Cwx*!<ZX*+FMNHJ7&x!KOFhkHwWJA*e>D=R{#2D49eiXCQ&YZxlLeo z>H_0V+P@_?F0eKv5?Iss1T=TXI=<3TRe4=$P->0;xxFze=aBO3Ai{I_j$L3=kexzB z5xTL+Gw8LQeW#o%plw>F(dZX%o}VOJIoZ#ks^cx$wWd;hB1_zMqaSZ>qjn9ykhVHj zFPV%)@~La@X{G6FF&u^q3E~R+U4NC^dA+->-#pLOfNmO}UdNb240Pk4hB;j=&JLy^GXe5^g<3v$ zeU(4F-z3-wC_E`Wc+h`M(5e_E181}=#01I;-RYMKIz+D$tm9S z`Z0%U8XuaTG5!zKnElPihI6t99H^7%JdtyK9`fty!yI*mJsy$yl2%p5iO4$G!85+7IWJ8a%e}xc zOv~#r{uIluP+4DK!=xWbFLDS0JuQ)sKbBTIxjN7F2(O2osw)?vK|FsvlhExg8lm5CMZAf69IC^kd zTe2PG9dtb8X_@hGOx8WvklVIUYC5dfAw?+S&>l9a4TRf3z0R}2?)@-q)QFCic7RVk zv|a`1SQ1IswYT6{)g+u{mkij}37V_ktUXfw2bl)5k?%y=o_63r+tl}#k%=O)m@OU>;QSM= zIQ-iSui-XFapB+!_tk3dIJDH8(CQCX4wbTkXNL~_2@Jc{5Q!OhJ;Q_AScUqD@~K{1 zW&av^hBeChWVi*zmtw%ki65V0XH6CE_wpiB3s4JJBQCLxWzDvaSA{(iWd5Qy1E4X- zW487JSH3Q>ZK6PypfE!-Jba5Tf#ovz{S=*{;8Vp63({w~dq*vF@o~~@QEXmyl^C_J zedvd{peM7gU5j$>=1!5?$@vr_3g0h$`#yfO2pU#tbM)@-GN8_ULFTH8-;yuQSubluR1yt zP@4WICE<9w-_*_=wu=wyr(ByRj_&QJOs?3IC|wUVFeCO(St${VV>(mOJ6zjb!2{G8 ziyfSLK+GvvT-Kcuk@#F4M*2+YZu<2hq|f%lr5L5*RGvu@#4Jv&hUOblCqf*mj1n2F z--q=)B%5g^GD{OVz{xk1q>TM<{rDk5RV+3ZhLW}Wddxrl8@*>s(_^X6#iZ)TIWzm6 z3RpmFAiD6>&VwEgPh9R=(g9cgXA^VB|0xQT*&>+V*kw~-$c4i;wufGAQn$c$slD?{B8Z9+!c44af z-QfRYIa(*5DTkp5h&0wpj)-}Cse<>BIFF^H-IpqmlYcGU&_-ir-Uxfy(p7Yvhj?&F zW`|>9EiI2*m3Fa{aMqe|JRQE>Mq3b&!}V9-xV*3&F*(KLmH;@*7S&Zo)OQT0m&lG^-8vPH3-5ej-7|S#h;Fu)EKBczYggZiBskp z_oeaY{L%@A|-M|Rva z&IHKy`qpB+l=_n_2Leju9ng$VydhrHZ%Uq3OkPUuPm9+cz)OFjUz?pA=Y8p4Fl(1! zNPyb0G7BaPW1rji!+y3oE!9d^Ik4#aFm}`zah4HHBA_ikg}0b1<2tpJdy%5Yi7$7|c&k)qHq59@2xWt7o2<;w13}gTj@|}r@7=*lETPLoq-PTm3-15h zk%Fu!J3MSRMI}@d>T4PXJp>|*b1s&K>ZZW=E@?)F=ec2KscN+}F%Q>#t18xe7AJfZ zbz%fW*FUHC^-78n+>pF~>ZVSDEh+LI7YnHL*x#oy#ub@&gH_#EMdllrk$l(~u7)Df z9E1cIH&tc@ChHB6@Wz-tv%xCs`=pv8W#a5yziamX3D9avfFFjl?&nt22*b>9C`^3m zP`H&KwRxA~C}-zdU~|8H!-OhC!i+7FO@myft?h?*?RLo^#1RKh8Jmy1>4>v+JJQvv z4_&VjDoDTNpr>SfVfx#ej#eX2Po*~2@62MAD0j5Si6SgCfBmsA=%CVUPWzghU9Ezt zKr2JWg=>-p;=l=q6RLYHPjBKVt@cm#ZakNR&0oz47nbIr-xk?%BZSPw^!}M92@_&6 z1sonW68{Dx+4~9<7prWq-jBT>w`f0>Avuh z#g3dO%s;B3ypJnkpn_D|y31L!!0tj5JLB{7e;+b-&5g;AVA%{1jtj3s^QGZVOO}Sl z8p)<3IOCo;_3w)-(IBRI5RPfdus=SES}})_T#n)~Ato%~(&X&8bP%azn-&u*=tFFb zeSYTUnW7N2+3|~pR>F1EIs6v-Nez`E(8^_7QLnT~@17H~j=rCrx_i9>;B(-aCZfCW z&xb1bOK!p5{xco7iU{F|{~%7xl+~!?8vmIst?c^2gQzPhZK(O6WMMplF$Akay&b zWS}ZbgjwtBNzkvb<-K#~!@$9FysY!F>V%?;*8?9j16r+j37KPu$89t71XN>K@uFw5r@i~iGMB$97qFP8$}-Tl?kc$(d1^;%v_$q7VG{bv^8g1vr}=<`(Zw56rUw4YL z+XZ%o+DBFYQ2w)itXjS0pg_=vrNXH!I4vvpz~RYNbAm1Pf5PlS=Aj!^w^;fN-LH4~ z3+?J98Mkat@00U_kfNp%B^YM%*C|?8JKG;X%NRsI0J#NtxX(9*lugNu+(oOUF?6R= z`O`G2zxBD!MG)HNtiO7&&GH{a5sgOCb2OpCb{KmPILQnrkDuFZ{p8_q0@V8@dM^4Qp+C60iyjmn>6TUax2?)YE%$ZU2^eNl>^KJ_%mIG8-W6>R7Gg!-zulk!uG{eKX^c|9RL z)A|_8cA_J|f*Vg~sJm_*xwB5~l-9?yde8NgNKo8x#BpH^wBF2plk6%$Wh|qg#NcCW*VQ=q7F`u|p@MAV1?lM0K60BprAb6e zK606xmlt#x^qd zkt2s8^}*kL(gDrY0v|*t^IknVWxn6ttu4ew%i66z*Hk9Bi1mA(n1H3TAxlv44`ZQ} zZ0TTaP%bc-Bfj@R(ZZI@aML#FZ{4pyX`tAv$qD<7lhCyfvq=Hu)Fu>yB-w<14j>X| zD&0kx+&<#2P`(7Dy6OiH7LW^`@W5hgZlHOKgB4<9!%c*HdDA2Oc+`JJiCP=CQ%_=- zJ!_FDv(SIPxpkE)7I2~u{~Ax`4n)>@eEMJ%!Ji(S0$~`lnqU(_BALhF;NSn|m-%a@ zy+NLJ<&V&M4^OK)Jhk1+HV&T$t%*j{m+arbt7Ln2M^MiwWwD=cg|ouXg-;EQj%%MP zkRK&TQAmv)>27;P;6k-N0Fl^U-RU^sLMGeMzeU}~ud5*%{p?3VSCxp0?XbR)7SO8b z(vH5p|14`mmE}5LY>gjIN?dui++9=i*>|f+wO?LjW8Is^>`7#a!e2duE+;p$14^wi z;mmt5rro(>YfrvN9nCrieuu?2w|6kkc3&b{C(gj5GzKR45q(d=8n_-OE~hfg&`o#7dn$~%+CPfri@M{c)WZUqd0NME+u$v9glIMe z89|ZOa7xpE5d5gFYah<0w}WHt=!up+BIII;i5boMQ~<%>3aV0L+`>J-;U-(aet87x z9o4`YdP|qnb9N;~CA#utD6FPBSheKD!-b8XJ&L>URyelUTf1ru3kvf^?5MqfVT4~ceSzJ6;bip+U+U|K63qD0>+ zQO%lDs8nvi5)@-My#D(Ew46&~i7qg@L2!E?{^|FrSz9HI{?ku;oXact3n}^yZ)pX_ zq;|L9F!BAfPYJIT5`l@2;`r>aPPhtAM~~wOx5SFC;2$JNw$HbIf9o#Oa){+cPnPp} zRP<4jy%7J$Enmrp_;bnVi+A~T9~)IyenxJrB7}8X1V7nOXX+k}dSktkh~6rI5mj2t z7^g%#7H&F#1vQA5{fw39^>oVpC; z@MS~$3TVXDy{gpyF0lG=&MQcfcG-5uwe4u87mQ;$Na^vLp!h@`i`#wmPT z0C-p7@AJmE?4py&DM4t`127rpQy7zzYPHi>>f`)RR9AdVk3{LW$oWEyXUsL+;Awe$?aWDm5sN@#2^L zRHr4=@mra)e*AXdk`y)v{dpy1$nM>pQVPjO7-h##n}s%>DZbm2@B0xuYvSuE2CxG9 z(>E@Y+6Z}TwPg3#S~Il;defyT>gAhFO*M&>)LsfR<`T=3;V%|Cgz$`}kcMmhj~+0e zG2bXLAyK24WsREasYwE~OGBJTjJ^RuUawyuXP0M+{dYYdRF<;n{`4c)uskmECS zpI>B62w&54I@5X8>l&N(Ij^>%c2BIW?VLQrvho*A4BJx;ddC!qZ*|GVzx%99a3tB2_T#c%oM!)1LuB5K2e}f*zx+NTJSDcbBEBpUvAhI%1~QyJkTW+{ zhZqtq-X^dE=*saCtn^~TmB+_+Z60HM^=tp z$wTDx7C1cK zT!dD+^_Gy*#)f(cvVZGySq{%dr}eG568?g|S?>46j@WW>_3>Iz<4z#{D#}LXJ0J z3m{j}*0q-BFFVL#Qy|Kl<);e#i@ED>&}CU9LzpGwg(u>Ej}mgKcYWf&WdSb5c7>SA ze~?X6r%MivT;%ngpJCh9$(IV59h`f#E%AF1TK_?Q0bhCDhUZe=arOqZ#K&c;H26$@v)tG_Qewxb}Yily4ofN9VKg4ir{3ywZbR6##gdK^WQKECNAE>M`- zPRIBkM5Ut67<4E9XMrHcy2f?>IWm-=IJD(`ju_Rbo^=JdT+Bl;9T(22a%e)HZnVhw zt)v0~b+ys`>qoN@UZC%vYds2G1>YM5DlfVj;oQ(NFqt44wsnN^U*{1NMs(ES)Wxac!|4OUSqeX#x5SARk}yrBkqt- zy-Vx;eNNo@nb{e+>l1<4eR`Cp`IoHyZ>Xu+CBAA!7}xy?fk@SkiK~qSxX9k8e;w>j zGJ)&NhGIe>Gx5CmMQv3IMN5baFphlt04<^db+{oc96B{n9Z6%`xeTz{>l#-%bPQAa zCMYw~b(HL*^_kjytTgz`SfpR&j#l+CtYRW8*_*FPaGLsjr!#{UKYk|4Asv48z}UKX zqP}V|@tq>A#tzrz8zXa(Mi13)MI1e{h9pEs3hi@Jy3f4FTbn(%9lU9WYa6=hUqztv*6hf=uX+)L<)S%R4?W*o|vnwLX-@{WB?%Y&05M50pLbu{OU>r*T<%)PPyF!880&C!jk z?JOILYt&KF2 z|5o)Rt6XLtofSgro8W3ognVz27vgcZp3Kb^$l+=$6pB32PqNpk`E3gqq+0aAK?BiI z6Lpe1(LR@}uui$_X9h@sagIwCfNG8H(%hJE1s~l(hN#SZ;rL+NsvB@+Hwt(O z$&}!g`rRM(m}XQV%mZwZ0!+4a{61t3DX7O#Mrc#p=~9}X`}x4Qo@JsPm-9)xj+?95 z*RDOG+HB>35<_}?cSrEu*@{n|u)qI~c!??xv5!@Cuj0DRWZ_g8{nA6(f~sqeUK)(o z7(+vCQWPRd7iOF14HADA?7XGRT}JU=Wc+fM>7Sn2niOzz5CjVZe}1x^$}^u(%-@bA z(4d%_^-14Y;!ZXebIyxxU1&j!8gKkaOxf_go?pFx5$0uf1D)g#Xq(KwzCxU6j#CoC zTx+fAhr#HUip)$fa)m;JIw*9)Wjb5xAj?FycSVZ3#d<(4_3mH`-S z^I~$!fpN^aSi`D7DWt5dq;Z3OM^JR6Xd#kyUYuSb)S>LTA5^(p=cFXKSWr~cz!3XE znaF=}Ei!U2S5TGpQ{?k)A9j0tocF^=T=n(>>%lYIWlU!YJ~q%CfDKK?J5 zWU3LJE<=xrk*VLHcJ;_MIWR1G3La`zAC~ACr`~uBuBj!vzJlBwx5Y$#grT~&2N@;1}Fr@nleOGS~m0ewH!6 zaOa#Zm`nA;(@o=6eOO}SRo`8PcYf{n)#s&XU8?cj<`})!o-+08Xtz(npDM(h4-1qX z;J=lH>c(#yod!wHx4GRKoVd|%0~jW9H!TTW<1${&r6iQ=y~hGP6i9MzUPj^ z!?!{Q=m$F&K_g!+pXl9T z{;qwCs&9*FqW5w==-YJ^+t38S6;vvngzvw!5GrPJ)t;p9D1=g13cE8JnVmUEe;XNIsYA}Bz@EM!koTc-9CP^ zu21rQGvb&>WK)Ra*sFGIRnb1RArL~TPWhD+;Cx@&oM*!KW(&@j(_7O>G45*p1ALLn zn&Vm@!6^E$($&OC{s0IijUambiT$N4)d6EY%5G5|u&__7YV5dHCdFjras9syKP06l z)m^qter6n9Qk8fDGSWVl+1_DfnmaGqNNxW5D=6e{gj!60 z%3!fi=ySrh*8d=LdQ@c1uANIRe5dggq50LK@tweh2Pm+^jm4!^o`IW%>FwC>{E9c7 zED8*U>kjpN_3QNWk7hp5Epw*y;7zb8U=?qR-b^+ARdGk9hDz6L%Qt?_d39pwcqf$B z-nlOC;JLp(X>LHiJU@ODl?q^uI#UB4v6kMTV10;)8L0kR35ETIZO^NcDSY)nq`r>Q zxEjI9w+Th;+^f$14`Q|^|8eRk!Sfiuq7DN4dVQw#bJ1`vHWg9C>%m*mHCposTYu-} z*6XKSCNPErm0uB^^iBK_6s4-?w{;ONq*=&=^72x5WmpFa{}`}~_vh1!qwd;1AR!KZkMg-8f{5VloA z>{TBfs@TZ%4L*S~zT5l!8GY;;(}kICa+yQfErl^?kavMN@no#%gUi=iT@vO!*iAmqFFC(Wxp;@A2V$Eq|bl0^wmB@6;j3l}ByGfv%Fn(GBsZ3AM&KOlw~ zCK(+ZKLS(L^OYQBB1p!b$u`-Bz-Xqwp|)yKc|C)Fh9@ zA{S;Q@xG;*hb{|b5YuQe7k2wwlJV(z8;ZTV{MEY~Z~sC zb+?PpTfzAg>zYK9&C^HjQP`GUCHS5E+TytwmbzE%fCjFevd`wv^)(_=D0I*Su{yo2 z8I1Y*QypLG98qc3G~xJnx&cJx9EenJ!QqR$`~N{~Huk~D{WmkX$oeM+r!l%i1Va9; z?fGS+tW<|zWtqbJu?mUt3RvfX$lp*Z`x1Md0c7aS$;vWOx()g(TE#Z8StAS%P%qtU zB||SWKn>xFZ)B~B-9Cpo`v}gSAq!tenS+v0_V1o$+ngJ_38~@3M8*x0ue{t2MIA3L zjKi624aLF@=~e8W+7sc+uN5?qy}^8KYonv``#Dp@TWmm(36?|w&L2wie!psf4%=5H z#n{kLE!=gXx}#c~WQ|ys9Z9^LCU=u~ z6~C$1UWj3~>O+kB#cJQlXV1Z28 z?G}lJ=PCN(`IB^9LJBCs$p@fahfKS5eL$?|ypJrByks(>a@e|H?*B2x#1pWPqFcr| zCRR!;t^Ui%I2yX~(TV1*WJr4JXBx*>qg-S1BU%@l$E^LRZXWiCBerR+hiaxA-v*<@?8+&>a7jyzx<|eHwwEGGUol4GkTIPT&wfx72MBg0w>9X>>bLPEZ^^A62T3M|WL&nZ2QavdT zrRB}&JhIMt;X3E9k@#}>jT}je+cRD7&qrU*yVv$&y15SFTu6St?-ao!KJIx4#Ys!L zXS;1_60MxQL2H(hzCPgN4aFM7ii;|tDA1q$X>msdPfafE#KDZi{lrJs=$C%5xz>fI z#z;r@h!Y1BuotXNltST8Ia5~N*;jOslp;Nw-Wtjp-a@fxM$8tHe;>a%M8e!f{N^R5 zL{3NMf4E6$=%n)+VIi{_O^^;pmF4-xt7ntm1aQ z1V&~jgIUOr0ZaY)Xz)XI>)t94KQoZIjXSavzhXv9Ol3{t&+f{pg*_1pW!R+Dbl0D4tM5Vv_c1FZ? zsLEAe%e75}-?i2h2od=}-#G;(Pa~Flf51=^Vk%^E`CN18Bj&KkB)8e_aQLoU;$*>R z#l2T2xiJM(EOfNHTTL^^6lbw~&Jya5DXcX?{at`{>f7h!$>YTSI;2-L4$#!FMf}(o z&Rma(!4k4T2}`^%1cPxq*@FZ_x)?a-_C@>g!Vb zw9+;_t!Qft%cNaIwxkFs{OiUD6(d+OAf}?IJtDpP6Lb{dfgjERE0*dgh|hasY<-|*8P}r zT-mxT8}Zbh^4!qQAa>rP6LTMDoIcp&OEa1cq9}qI^O*1-AI%I(MNky4! zmVU#ZzV)7fJ+$7|?TwIO2$13%N!ryDd&f5 zUdcF+CsL-jo;`O@6;jxif_ zUE0gZUUi8F7W6E=>1~+E*Tx-WWlg0SRn}qotjPGK8;VGK`erBUUypn)4ppZ9FKhoQ zQJ!djrsdb66K)h!%60b%buU|zM0a057GIyje7$C^`O?}-MiGxUQ_$r9u~2bOP;`tN zn!m>~4*DuXvyWrMs@7g6V-*1wX`SP6=j95u7C@ zpoGIq6rZSV18{SX#`t5GU1S>Awuvj*aC@5efo&)FM*vQxrXiq(;v1$lwYrBm&c)68 z6Fms%_+hBnLsJLtV2roS(|R4jF2@f;yGx%*=S+4>s}i+(6VKE0b0}h?)8{~)TSz(Z z(1SSSsCC$ofrnOP%l5S9azGE?Hy29;Z+f#|?29Cu3s!&{b0zebpLP zkLhkHz^r7ofN6)S)c198K&Tyi{xfbcXx?PsfZ^~s7r}lB_wAT8WRha;p&ggpNQz#( z9V;5%L}TO;{VMwH*c(#p9ATrm?5WOVnunWEDD=;;Gw~t*1LBmBza(FQf)~h^rp8Wx ztkQ@}+=1sNT!@`aZhlp`DbCmU3ogrKiNLooiGr*T0;X1Ou z+gE1mYj^?Fm*zhlnF+T+rP8@ZEtCPg{a5k(lbU|ncP<71x(JTbva!a;OxFrblEe*! zP5$;qz3|JEXcgR}0Yc=mSG6NEDyH+=?dkunIi6~n)u8vPM`{qC&}!dh1{_=klbH_n zAWHCUZ!2#cZ%?kZJ8zp4Rlh0-DdPOvn9{HVWPU%CUF@xP+vHTi_+~s0MZuv%M{f1N??-20uNrWay|uN~ zi(%l<66Q;Td8gTMYM+q00TJdFkLU>f6zt{L`t@W=piNew{59 zHkCS>&%n$TJ2=2!=i$--H)}-v@y0$cAeHgyDy8;jYv-jWu`R%f$QH??Vk%yIa|Srd z4;WRSk1mn$RF$YsbzV_@|NU8p>-cDx>_#=si=TbHP7|db5^BC_4h-!?Jtf~{9I!j~__VlnN1)MOC8ro=I zlLq0_O7NzX{0CV(aTEN@!9@4>X0jwSIOwo*g#WWZnz~y$i^jz)U5><;G}4wuQ6;sb z@oGaA&d|HxmG1lparPQ}XdHZOnqtbGCUe+Jv-JX z-eHhb*Mk@eC>r-Gy$YM-H$AR#nat+8VO9aGKB2<~5&L$zHKze4382 z^p8&iC_T+95~Aj1L*;U^7_(6+e>+ir@H+2xYLAEFrNdw$p~d=^Zz5bfO7P#;jI4mlE^W(Va-J2;7J)+Lf#(T+lGmv zc@-<<3rKYDZdz_(R7!er(Jf|2AyO%js~UUqcXtK(Pq_p!o_{nEfe+6OR`{Oz@1?_k}-dC)>tBc*;4HhHOkMYiqOAgvwKrX^fe5kDl)J0-4?wp@U7Cj z%i@!S?(oU^Kc<+!9YUp!?kuDH=2u7cIZ1hU(sD2v4&pUcebUzB*wI2}>D| zyQ-NJbtE{@iAtlPRb!k_-!LXE5*W6oKwMT1PBEwYSOw=R()auG=eI&ef{%pr8XMA& z{vCBzHm=I61dE|KA|lDgaU1H-4YhPMyO_odI8QHvz80w7&qn7q-nmxW#w34Ym5a4%>a8-H&qt;2dfqF+Aj_DVn!bA+s{;%NNEZN|^EP1)(>iCRbPWpI6x( z2S;$~4e1Wg79MbAi?{~A#Mw^YXVRu0UrJ`4lHf#(*r%uhWPnhTNz$T<;e@)U&(Rss zPZ7F*L}tJ^>=hg@^6by}Avi^iRE-b(0~Eu3_s};%ReL33Z=;_YkOfwtx1Lha2Gf}-R{`bWRG*XQQ|}6TyeX0!SS<&?jhK&H}HRIj`N>`zWXbgqj+t`~kXP=DE9AG>(JJXQ*gxY0z$y}Ux zG)JE!gLJNX?j$u2_RaTt?pIR&|IQqc%JuGC7;D8VAQipYIua_(ic4QA4^Pt?`2_*?j9ts08-W(sRI2id49U8?@!G9jD?Ys>lh9Rt^Q@!zLr#o`17^B7Sy~eWDd0{}@KiuYft;@}Sgg{}j!p61NV17!4;@ zH@u^uj`QksJ)m0>0Ha(*hvZG@-Gr}5?X8r~a_?4a|D_K-8`-H`&8L3mwF-VD-%M+2 zkY^|C>!Yz8?w8yaf;j*rjVZ}gx8P*^8|uTeDTQA^zT2*-JwDr4G+*>}{X{wLW?4o^ z1!e1@7$WdjFxtA4r@%0ZMQeC$%Y@Pv+Oz~gxhC>#S4BoKM@i2{>sh1@ENxbRGBV3Z zseWI|S;VhxAijA% z(8>`QMm$T<@z%YGxvXa6V@x=&Im%l1rG&U{&Fd-u|Z zAs6z#d*Q9$(zG=EB(<8fNPgDRL=a-Z6B(U1{TXjVE60Jw$kU#}bq~Mx`p}N9qc2MtfyHK=G(HR=7x?adv z*qfz!;^@XNC=xpo74;{QRCAi=|3M~7a@1}qR`U(i?WN72ka1h*YRRldR8dc|uQygd z)4Ly>Zl8_(v#!S+UhBYUAYbc6T*i(`*qUcVaL_W2hd-G3x2~>A_<`bHHShU)bsy*) zUyA9q_LJ_N<(x>lt>!k2XO0n2Q-qRK)z%xoT>22Dv2wi!)^eH};*=|+rANpvjJ&k_ zQLmt&$6j%m&0$M_PgY_xNx-Xk_!0B+YG@O>@zB7q>o>=P?9gYY{{CUx;3g$1C{QnD zX$oE*Hbq>t(<%HoAQl`}@U@OM@>#ouv4JMw-LNbxZD{Iq3g!vBZ*ngr1@6ayU`285 z&!ARy-bsvfNP#SFUCHd$-YYQm5mGmrcb~zs%QlFXkRsoKs&`-MMZlZU5Cy;(JZMY(!HnoNRuvuL*M&8Jwqn0S-;p?p@rgG!A2slx6hagS%7`LG_moy8L%CUY zufHlJ6zFqf1mAr6>IS(OE8|{@T9qU^b)ivJ-oIO!k$eYaQ=mn#K}i0}8cka{*XM9i zv|U>Bt>7e;{Gt|j$z=k7RscW7OlR|^FS*jQP=Iz0SN}wAI>Kt{t9bh=_4VWGGnc-T>Ry<*Lj7RaXqzE?l-Q?G3RzeC>ZDv z=rk$f0m;Iy#clA|;1sbFL>A~xc{ix(S0CWs(U#u=hV$GC6c}5KR19%hf*uz6N7^ML zyPrARfT2Nr8?u4YO#-`|ia3{s?`?>(umi_#0JL%EFbFFbEPCX1Oy~ z$&nNArBoP&s%oF|Dy~&gWwf90T8psG@u^nPTa$GAY63NP{%3kO_xV@jTw7dB6ne@< zVXMa@u0LXik)oqE)Zu6E*1&vut-GX)ql;}@{PvKti`VTrwxCOq===_E#bgfeZu(l* zR2LWc@3p0>v86jYX^nkO9=E!^_u_ECNNOOvX#4O6^VD$GUc_!N5I24Y_qNG=H!>zB zU0hac{M{R-8hSBOKNp{M)*#~G$^4~1zSyM)NeT6+*Jn3Pf^X}?Fl3j`6oFpez^G6D zFne3`{8zxZ%L_SlmqfW_D-{v5 z2xb)b>6_|(lqbBICofCXT=B-u(a;r{>s6dArzeplrwaS{%EG8cJrBaHAsHdSPQBAV zS|!|qcnJRwG9gOj8f~Lri~?M3LBYLnTB_hgM>p#_jR()HW=9&0$>#d9t+&wj$>w*L zUK4j~p#wIRJv_(^!Q_hzQS!a@*}(;VlP*nFh|s(7Tt}jqEG*|LgrTMmx!CLGR^+g4 zw%ZY(0*ypzk4sMG);URvdmKKwQ9ON(rJ)tP7p+q(X;E7j^2Z=uh~7rmGZLt`4QLL2bq4%U_N}zyED=8^My`Clk z&+>1>OBnLpu-GPLCS0qoM!iZ8F6>ThK<^pVI_>_2XNmrCVExZp%?iB=%-V7eeJ^0t zHjmY#SE~kWIPp70~~T+so;6wg?qD}%M}L}VsaZB5)@(z zeukE8-yeJF+LGga%~6*sHyXB%)=s(q-7bnQ7Nq#DniaxMO< zKv%P)Tx6qZ;FIxo1dezg@}R7&RQOZIyr>HIPc%x=llB?u5;h#bzj%@d_JBkyvIg`*)}JEj=U-2-i!BRj2qFi-w_~$ z==q4?0l(3hWIih*Smv^1C}|;I-c7v%BCB(2&1kb?lL|~<`V64Q;U0+mKTWD7KZa#D z&z6{Nq3pLNr^(d??DM;dWrl|&>vUTd=^1LJpK43BH8HiFIuBg=A=e!t-+)h;@1J$&WY|bda zkt7Hx`+7p#uCLec>W)^~?p(qhFf^f#vz;pN2)((afc=RpDVxtwJ3VcPwVhL@_^ETj zu~GF0_!0M`;(C!FMHDS#{6O>~H&+u{7R`4AJmG)-&H`-%qotspVe^&eG;!UuxeKN) zIo}*^38B8!2OF$0u6%1^PUoDAJ1(+Npt#bHl7FRMwm~b5t>99L3~v_Q)U!99U==lqFoC7^Rz(X`6 zK?G)xI;fJC!?0hE`j{jGRk4Y5DtFos?C+*(jg;O++$XR8hn2ZS(AOHTl6HOtd;x9b zr@2mSf!X8SDJ*B_lMJ6iM-rB1Bqp*5o23l6A3fIaTQe4>3`i6>aA*jDxtm_&9{EB-djj|)ya~h zPn!hm9P)dPk0r!f)86sd+)mQwe$p?W=2V}0a#=|!X3`54PDh5l><2v^$Ewi#fQB^) zJmJOFyX{d%MEeenQU~4y?@8X7MJI=z!7_i;I z%BK}p)_>JGpG1(w7>=nzgg@EOdy&GLPz}3B{=ujC+Ss7WNof4dk!)*S9Y|+MMVi~7o`yB%IB}tUm zb()vZF0Tr9z%9279G=$pK95Fb3vrJi_nKdH=0i^ZmCsYl-SddqYv=$Tin7Yv+uFtt z{9XqxHaf`n0s5S|9r%g)>9I6#zoD1N&xZZek@w@4B+9pAppw~7{As^-dBlWH9jt!h zXj|ad6mb6NglR_J*~1q6ECb6@jYow)XkHU;Pu~ObZ$W|a zUx~Mz_CML#80m1}J;MT+AQ}g0)xXh;977g}Gu5Pbdl3O~u?%{ybmE&#`;DegHdm)4 z>wgN!t0U-o10PAouo;gbr0B=>K79KeRMQ36AmvWdaYC%(T$z+HxAp~#Ep1XSla(mv zgcDy&OW%YqWO**@?yw{#52u(QcCS(}sOX&Oew?iHdFW2P;W?Wn@u&Sbrg;6AL1Nk+h0h}{jV+|u+N=`l%8jB^xJP-+t$L*&{)8qBp_IaNRU^axJ- zMhuahtc$Eo)YGrp+&|3_qh(%~cFKN#;Hbra$NRB&{2SM5Whl?s2!c&u_lOhwmMJsP zFGW)__ZB@|J1yv(mZ)=;wQ%@zvuk4Ux!vH4ol*5)+4-_}MbdJB7nq6#0& z^_oEX4E}?B=d*jWYq1E;3=m2ylEJ4CsL#J`ZUT^2g}Y+3#?XO#gXS;})`q6J0fGf| zGi_-TZ=O7lvEq5*RLRCdaQzL3r>iEa4^>=rJ>zI>fbFh zR*u2TDJPvkrS9XdS?rL)c5)H^@mb<--u3#1=H0B~%FoH&MeFm*Zp(OgwyOFL+G!mw z^)^^h8T$ zwb^vetk&jUgznlD@am1auNyd0Vh5t%MvkyKR6F_n^x6CcJdqmq3hWaWc!eIETCSg1 z&DFtuodnXx7p3xJQ!tL!{`Ot2!hgj9K%P_fy4{09!!cj=g>GYLUG&0nm2(JP27__4 zblSb|FPDb}AYqG-ePr^sw;US%<(x{h_@4)}soEy{lZfQAv@l5uDx>%WkrfXpl7OMC zX14wbUj-xqLz{G}EA2PwLE{(ojLp6-I{O!MEgzTyk&!y%C!I`- z2ltmAv^2*Z>mL+-j})f-DO6r6V`Z_S|Bj`o5D-Y0X5W%&v@B4t;Q~e&B~LU}-v-E@bNN^P|;5*tcmC67O6 z5$kEyQ@Fo+jk`6}EAZJ>?Ceq}5NCW%k7_$6tLJ^c0I$-Oe^>ymlJgbWqn946Pzu}7 z{_7SVmlyzR)mw7fhu+jIT&vXLUJh!%L7+ZFY#47>=nyBD;7+Cd{w?*EZWg)MS1Xaa zdwK)r&fT3KPUV6Rw-lgl*W`5rM~cz~Srx%-2)vlV##X`IEIEv=j$|0VSyO1D3@G40 z4Q)KWWY@8h--gKngmR;)dAy8;!eAxpi+QrlL#sL7FNvTdHc*+5Zf)(qY$^-C-Y0-d zQhdc%J0u)Nd+zkomLb}fhu!tKU@{;?;#|XeX9by=z26lYSawfzsz>B#OJ06m;ul3j zE{&7(kmeoHP`g?3Es{b{CF+i18F8l^&MR}hz@PU`L`sFVMFfFrBuLcDDwNa?L-Rnym(#z{0OZ2qN^6xd=#%)cyZ+rWqV`b~)CZflxULBnG>` zP#2Ndw)pYfhHk?2mN{+@>x-bv0LFc2k z#I=}}=j+}ZB`mcwVpOa!g_&0A ztR`!IXj!Q!wwv&MR!@0bi2@xXcPkesQ|}P;_|tpbwF zl@s5Et+*p*!NH3^V*gbR?Y?+IyMYb}8MUYR8@)!qtnB$9yE69Se88}Fs^9o2eo(Vu ztzJyUtFbNlf^$<1czt4o=7$f~Lb`1^PHEe?u$Gu7p&w7=kD{wEXtBLsd7g*t2 zZ(lii?yG-0Ab4%6!ds8N&rFLsnno6V8B*q@!L=N#gN1y|*SjaFW;Ur;tYu!z|JGca z9wdU5WDyC~FLLb(*>EiBiPk<(bk~XGTrx`^KSWXFi||Ol|7&}1y@NaAD`s@xF`!MW z1UJbhHaly5UOzFy`k^Y9+0m6jMj@g6PnQHIwJg;F@cct&W`dOJ-X^^s6r`HknxY(k zf!Fj7^sGt)%8wo`nC;kWka#thYwAtN3sMQB&ni(q5|sP}NHo1$2w4BN))z;6om#l+ zkPSnsSzUtDq#?}*#r8>Hhn=-jMeyx(MI7I8VepGJOtET__-=_kVFi$U7qEDGrtXyz z-`01)`eCz%B>Zod_Q;WwOgWnr|2skhxT_@&Nc!2^HPXhqn8?CX9v#$RuUYpRc$B3R ztlkMyR(zr2Z*Qngr>MVXk6=Zbz09HoWB*%27M-nsbpIEq#^+U+GRzJ#uga(EM6$(p z+zM+v^(U33%H4&^zi0|ZG{wxhI^FLxCM5v)auOTkbSc8HNaj&AD3g==XKP{J0rHwWq6YS&fYi49%>3|NAotSQ{r$DgQw_2L5P| z9x7Jo> z_&LZ9>v<|oB%CK-_N~zpf(DP9X7!jmwU3OZ-%;uE9reN%m{sKVgbK?X^|wSUgiOKH zw)v3tL-I>A&`qjV-cDbAHCUS!@DNP=-_nnFBXgzOnNCD4I~RlHKWrHpPRH6+pf9-5 z!WB+=3h;Y^E<3g3VpRI;9Xz?$GK+?tnA*CnugCN^eJvE#&0TnEo7x!=x2Q(w8fL%Z z_d3R%?me(94qo|G85HVyyW_{)LT}JdPcC~Wa<3AL4P(puDS`~De1bVSA{%W^Hv*TB zA0p;vrDG)-k>_NgfAQ=DEqJ+N-9M$bTK<=;mw7`64)neejWOG=tUi}5c`m+X3l6GX zBi!C8`2$tYtbXdD<$GGjGb$Lw0Qoke2_ok5T{u6u5L?;eGKE&)tv*&$GUiU@8$aR2 z!)$Z6fMlL;umbV^@5Q=>x1g3mVrZ&I{r^VXgIBHnLRfK?#lh!QG~)iAw{S`9>s?El zPL5vQ8SPAK4k*Ul{%UZ}s7et~{k9S_0I=h>!_*ta9BlqhK9iQ;5L93o<<2l4o7Li~ zcE(Lp)wD~r1ZKrg$En-6R&HsrNBO;>gk)Y^H=GoCkM;dI*dNk_=tC%xuhMvmY@hlI-Ls2fhPG$$7RsPWfXHn+r8 z-pvPv%=MQDp&#i?E>>r)`oc+XR`eevF_NV8>?Xt+6JHgMkIX2pV~Q+-)R{#7?Oy|Q zSdAhuz5VVe9cQ!4UmXiWcwCo%SjKU#_}+OYJLCDN@JQdwN(M1yfI65h7%7O-d>5qh z6*FxylOK;fZ%$_I$~l14rgtfs1SwbYtA1%Gz>-Nk7zavAOmU&Dn(jPJmGNiK-*!6; z)(*c0?NO?3%+}0dzuhuYi>FV@Fs@53r17YTx_j~R>B92wv?4PicjBMX#qt28I&MN> zw^a2H&e++zO1`J&^Nka+SE5&H=?C~k75uNqnH+ErIh}4aH?6yDQNdAM)iv;QakUU$ zOwE4~qxS*lBZq?8-_0D(B=|Yn=j`i&H&$U5*wG+Xj*pB1WtZp`NoG=yhvs&_!0|YN z8cp~${1SfoMEG+mMO*)NI4)Bdk=QzJt2S(t_+pHMJAFg=a0`K6Fi?X9vA^E1@V3ys zlryFWXOS<~pHudw$a>d2Uu@#y%+p2x?qOtuwz<+5 zQM$RmiH_d=-Mf)_wNma<83h^us)#s4T5p2XLsIuri<2IQgMNu3%$v+B1IeiODs%OS z*}2nFa0yG_#485gHOS3kYxmR)EzK%~0o=z`ribYIW|X@vEH!K%5NjbsoR-_pgzI)0kB>&4 z=YL$$?aCQV?j-P!@?z>-|2B#B!Qoyn+Qkz#uWNyRoB=e;gUW_Zfb>x=CfQwX}Zq~mT2=85<0tp>P zsqhjFtxriVF)zJI!1Jb5)p0yiEz!C5Se&iK!cys>?d35T<;o;ZRwPC?N|apUf4TM5 ze=Iw12iT~(oQYQYfueN-Zu}*I`-=OgYf)dy@H)*oY}Y428i%6ugbg>>s9?Q6-FbjP zR-o05NiFUnxapYCGjp^4#MvLA|7Ii3MYTIRUp5%D)zAUt#`I`T4?vH~Ib_YcHJse2 zTvcB?I&V{r)fQ*&3=n0DS7^mD!hY9R-Z)ea$|^v8SeSR8J|B@-3HHyj7{8mv|7I^C z%co9^vfUm9;VzEZz21(kM6!1Fu>YB4)TJ?a)HR&eI2X+n)*YCoLzJ|-HEr!%rF>@a z4?o-ZxpPTp7+Fgr*sznT7Vu@HB#S@;17Q&|wNWJ^Vy9okZ*i6mG(osm3l(Gk!1cbx zu<4@PjXkj!U!xyR2d`t(^TyM=+CuIch913{zMD8lC$A}i!|Ps4nNT0XcYHuAt{qFe zk%tAi1Xw&?WFwv`&dzSZN!E2`$X}ubIdZKJ^GJCysGW*b2aH7WhV*gK(*pPNj-lFx062&8wH z%s^~*wX1E#L#QH>q0efesBsjr>pf~jFM>FFeoe*K9k%zKSEp+>9hw;Ht@u~)zEnhU z(rXjCH}}-_4<*nULlWZ{o_H4l)<2i5t6M}#ddIVG8J@MI%(8(dO(xfsK92Hl$U**w z=7pnHR4o52SS}a_R6;3VY45Y z`H8ivh`^1tke>3bN?1)6E2zHpKl?fw1L zSQ65vXWs56YkaJk6LTQH(fDCSX6goY%)Ky`D0HY*1y2_BxEX;)5PE@g_}GqpG5M3T zCiwmpS$<)>X34mB4R=~o9qpvQ{jq1Tda^Lu!>YBQDVT1S$yehtA!Hm*Jl2v z%*Tse8pG2fsMPnLsCKGQGQO^Kj`pgucV3KyoFn|8XeeOdAw>6HHQE!95|Ng*%Vi zPBPO8TWq8z9ro7HKTh{f#b>dfk#CRh`2b_&fa?O>Hs8TRz0AryS5j{1eDKegaMkjk z^Su&vLRO}u#=Uju`qMDYHSs5dW`4qYANr~{&f2IH_>pW)iHfa!0(kZjm~Qpg_hUSx zw{%>|K5IJ9EdjpDlV+Cpe&MFBoTk?cq>QhM{*|YEAj>R_mcz^fsWX1Um|yTkgZO3whTvhlRp*W`^CCn@50*AVl9)%3cmd#J|Z#+`|p2H5K6Ay)uLn5 zcTzIcdSd+L?kH{eg<`SbYO!$KwoPqqj9LsmM(HcdDWK~ z*8v<5ncnydV`C#M5B$nH+(#}8UaDs3M&JQ<8We@DdW4*Op8C<`*Jzv zr8(~8%~+#+zL+C}r*syxhB%+?m~!bMSzRN))9r+8*B0adAo}jX&K|>MTkhCgcNTOw z@=r`-la&eQK-iJ!`6$VW(ox=xuNCt^Re1x)c+0 zoMM&}Z2Xa}T->?AB)0gk=AvN8YfMe{&1@OlC`uX80!E<=-L7XX^-@g1$&i;bED);>MyyEzfI|nL%_bq;iyol01|NPvQjv!p0 z-mB~SS4U{jf5<=lShr~mYM*ufRKH-&5o?so*M6+I|KzSW@21iJFwk(q z##)2EGyVr@)brH+T$y?mD1Es$d_6)gwU>^=&!^7~U0iI37Q>$oFYbHOgbetXnkC$2 zTMTs!if$%-`|}19I{ICoZ#qJ7C3gYr zo$G2!aKG5%y4Ob_!2B3KSAQ{XHk6+uVINl+GhbPdqxBucZK9w20} zevg>2t@@>onMv2wJsu?hd@)|<18*3j7l#6?(_n_T`wRa%H`!j=gk0jeUvydeZuwtt)=}R*mVbY0IbU<(_oa zIm!~Xa@$-Inhs^+eo2W1?TJ?u}ru6MkVC(PR6ac!=Lh<%(FkhpOLc=}Z* zl$EECAR{mFAJP$I>}+j`x_qypa{g{{&#-=ee34oW?qOf$o1p({S)YRKvHA<+`E~lO zD16y_t6Z<{!=^ER!J0J^CZ+O8=()@LhZ}kT57Fz+gQQg(S~U6k^=-n|hIp+~?yN#d zw%mV^sX@iaMiI(lPePqU;cfBRaxP+mr#Eex-U!cZ8t zKhTgKj}o$#uU=Q8pnxvim~GR^I9E3ujZH#xt|sVil;n~d&E9-Ic1Yr0rTLM&CihPa zn6^9nB>B1AaoJu?G#zz$uIczil#2?$W(2>c*)knRb8Gz)n&3zDxb1dN0+DTV4kjQw zw4Fw>B;WbG5NVC!mOeLQF(|-#A#za&>aA((ukUUH)n3 zh%?i{Fz(yp6CEAGmO9X49ZteW3TbbiB&**)<|{!1muN@|8teZg zbyEQNz_Nl@IppYb!7sq>x4HHdby)T9tmPG*(^=lGP1!hld6;dq>|YD;f%ja&kdEw{ z&n%^K*=#ragnb{asouWY*8rPOFho38d|*4}(OGs4O|1cW=WfpXk&3^ZPY5#;%Lzxa z$ex!^eHsC1@O)VLdS?UsI0~M~(=%0D`^ifIYPh+sL`Dzdn@RZrFZqrHUY6B6rdCm) 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%0AMN+I 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

D&WJ{~I!QClY5V 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 COql3iNZ9N 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 z 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 literal 0 HcmV?d00001 diff --git a/src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_2.png b/src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9231cd1f62256c051e15ba0bced612c4c21bf504 GIT binary patch literal 11245 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 a^Yd9FMXj~r(Mz%j5*LyAS|Oz8_kRG5=0%tQ literal 0 HcmV?d00001 diff --git a/src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_4.png b/src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_4.png new file mode 100644 index 0000000000000000000000000000000000000000..955abbaa762af1699766e10f3e48f8efa959f971 GIT binary patch literal 44312 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 v9Yd~i{SqOAlEE_ literal 0 HcmV?d00001 diff --git a/src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_5.png b/src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_5.png new file mode 100644 index 0000000000000000000000000000000000000000..c6d2779ead21e7547207896bbb01a2bec696ee09 GIT binary patch literal 25385 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 literal 0 HcmV?d00001 diff --git a/src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_7.png b/src/app/resources/blog-posts/Installing-Kali-Linux-from-USB/kali_7.png new file mode 100644 index 0000000000000000000000000000000000000000..cd1b947fb51c9c4f0d35f451797e25b03c0a7cab GIT binary patch literal 39988 zcmZtNWmp_d)FA9ZgS!*l26va>1Pg<^1s&X7g9Vr1?k>SCKyY_=cXx-6Jp1mC-EV(( z)y%2tt9wpQ-F+$)^i2vGfdByj03b_$6;}cPAkhE-h(I{VkCp@PC>#L54F@NT)tJ{icgwD!RjSY&8 zsXX*J_wGo6pn`>Ux@W(8^YvM0W41|mJQL(z<43hUae^j;kch=9fb@g30Ai3y$BEAP zk_&tO6om^DM?=Vl6Zx19miaeD=z?}c5wyTuAhZZT6kIt^UC@RbUnEz04h4WXI-cpE zRm%7z8cP|Py%bIxn9osC;y77YD6jJ@<({e{?`vMAsP2~w!eZ>G-ZCj}C|*L0xq_sC zD{NDGZrqbm@=U>zA3E}smQO8yqA8Kamf*O}<@h2k?ieFl->di@luId{I0)$Ez))2G zY+gBoBTsJ&tr)JS4G&EPrxaSU`{NHTH7Oj{BdNBvNxg~K%p#^1yk$YrCKrhyc!z!Ib zf{bx6$=SUnrL|U!MfDI@4D`rCl+Fdvw_=ge3X=k(EUe)rAVig*g@>5`D#}N}NuW{w zAg9c2_#US+PXZIKB}3^?+Qg^1Bc{8CsHqH)p=e=?G_Mr-8V3n{)PvlGnO_SdFIIEI zQu7HbHi(JWVx}y8E0R}!CHdSrQ(rifDk2Rj#_B8ql+i`MB}rA2%t`&j(HG&58XUPn z;2oQ~Wj-8GJOk5DkELMbyhNUh7gSs(UP`5DT1K#Im^u{`SjhMt?gzP(jAa;rY$!ix zmOqpf=${QOok;)9a{uVavK7v{-2(IDye3{GMcnzjK+el#5V@jg2%q3&z)xs_(7QOr zT<*f8SbstB&=z@$_Z;yp&7^?o8BCP})w+y$YD_HEH0V%+WXZXF8OtvOj!N^GA}o=> z;wvTzT~}f9r8g06tNJ#wc%_p3p(hCETnn*@J1wBnbIae+D(1 zAOV!CfO4i{MT&v;C#59HQ>GN@p8aHp)yqkQFA9N;@D+(-*?oifEV+cX>$@rl1sc*{ z_{|99K#PWzTSctIY-?GB*3`F6ODl{=@Z-EAuigr5YHBK3G@bLC6b)|YOO$BN0C)#z zbp*@wE+P}eBZEO%kh|G4L1sl#)n~;;I0W|*kQ4ym%djysQ@1cr_6J;zNUGGf$UL|i z*;Eh;+d_Qw$I#&s5L}(4{bKwB5{?6)RcLP(78Zh-(BPmUOQH%2s17%N#Kp%^V&Qmw zmiaeDQofw&!=JG*-$^PF*gkN7>(FOMn3=d<5_ui%%f{Zn@ z5#e@*gW^nSI+&CuN7Fbq**RkA;(Kl5)}<9Q#T>O!$j5yXQfWQ`c9%G++4I5VF#`_D z`q;%yccZ7x8jSFmaa-i@qXRR3cc`}8sS zvexp{*RodXmB7bDmYOf79^la$7Z!HXvq*z-{>c+ z6k`j(g2^v^(5(g=u}ju})1(^mO;RR}{{_f#lzTva2zC-zOi##UgaO3=ao2-H%k)NE zu2EN~byxI|$pMLMepa?56vCAPfI_cp9m4|Iu!E*}g7?%C`;bP%DxKTl`b%Bk>8JFa|n;gMwhfatl5#Efv)gg`}k9$6a+R z1N{lEAanrE-|O`4hmk38oIY`XA0fgDc`~dB=>E3c=*|{6#<^usGd0yU(g@d9%?nce zcy7R$erZK|9yI_eGrXCp{;Wq!?DV{@2hCNX!uKNCHZ>jt-EsRj{5*3T} zvWK5Z_4Vh+BJ@FCuQ6EDBXR1fOlW(1vd9c{c$~EKOowH?J47vR}zY%NA%u3qL#+#M9Fle0s^jR70fDDvez#ibmAyvmd# z%&K^HVNOKqoRzG*VFm)r!3{bQKzYv;TD33}=-xob2-~V8-*KsP;TH-JRzg}@*)7ge z@eg-*cN`p?TSvU5gLhDWOce=&fes>KB8#?Gysp*C#w#~Hpd_YLJCytjBj@`oE0tpS z;`9O%G$3$n(?Iwe5Sy+*4hCT0pqbo~XLgMzOsOmr4=sOhkHB&SGT@V{Ee@JE0HR@H z!QXe0aXuz1tlYo?c6N6|#mTJ=fMK~Gzcv@bJUt;OsUaadXn(KC_UxBq`Q2zdMd-)3 zYXuVF14*?)m?}hL_hxdV{H_g|*LNg#OQABaE&qub?>}q38mHWzKx+iJ0;7e(XSWRD ziJGf!oCoW>D}5BU6uDz!BqXG|XB;dEa8}&brJM8meQ>y9OceyQ*%km$kS$)Cf){f& zh0*Nsx4WmT2`L_II@k@M9h%q47VI-9J6A*JU{XL#8a2%&_>zBEHCQUxpu|8yD?AwV z{T3S1Yy$}g86ZO)k71!tg+0VMjYiNngfn50(ABXi{NftgRC^pfU%O`AP!wVuSo+bXDQ#V+&M2d7OfNWT5 ztB6h(6YTx3;nPZ#ayqoXlmWY`_^hB2@qK$}GRv>{kdFejI8ni_j=I!SQ zw-AqAg0Ow{7RHvQe|sQGlwtv91j)->b(}M|EkvT+4Qv%RIv8Cn^{&6!zE7%P_zMH$ zAQB;@93h7GwDH)`ga=Gy{Mxc?*%_@K7_wCq;UbM}mj42z(1JtT0)ogeX?EFoC5-Sj zIqO(^W@(Rw^puCt2Gmzk7_AeP^SxfR`V$$oMeYA3TyYwOEFlR+KLB)l$iEbiCYVi0 zx+zBRFQreOv!Fd3aR1BEM_Vi)ET44je>vUR4v$5J@xNBcC;)b;dwHS?TsF@~FleQ1 zBq&l!7^8syLRWPQ1N}sO{|o!djuaMnZuno0M?r!5iwYF^m+rrzK(#l0`Uo1+!h;kj zYGBOqF|PlCD;}0e?1d`Q{~S;PCjR@TIBL^gw}IXCGos1%-YEz!CfcC8&{~0nTGa7} zSIeS`1D?k1Ik{N&xS!XkfOHGYDEt*_>gcBse^P)y@%Aumd)PZk(Vd7scDim`Hm}H= zeJ!mc9^fx6Ec8{ubWOdPE)(Gw7s`0-oppA?&!om}dfml51w`DYJyLUGcTV=>%?G7W zj_LTff0Vtv9eRf5mQhjbDU`XSqDC`)9YnNUylZI?6{3$kSdLcC#;7OMMcaEJD4?%w zlOw5>7^PRDc_!QU(Zlj2IO?1}PrRa)69nwF^5uObAuZfa`CCO^1O7tLfY(!9oZl4lS zuOvc(JW7A%EVppX_U|w^O?1z=yVqcpzNE3xm;>H1fRJD7P!y!w?vYhs>ONU!+)n5u zrAxQCo{r7F683vyoo7s0_N7=s0!Df${*;B#s;#F$hkjVJRVn25qR#2cy83TJS_OowR~yVpMh5S*GMsLlGA5kIz>ZnSA%$hEZ|3 zi9_a?6zybu#B|x3af;-1w|Dq?VS?z1K?l!7p{xpvu4vHVbDNh93rT=(m-_c_TgOHO zb^-506%($snM~$mPTJQ;c{L%hAgPb52`4kRs;wgMO;N?hMe_8X92jiKk!T3D|E*ii zmcY=(dOFI?fz-2wr*1!v#sL7FtbJ7`5754G;vQ`s?PBn_-E|sQKV<`LoIne4*4M$l zxHtqyB=rX>bB*j*XnhLsS#QO!iTx5vV0(v?qqlD-??z`x$MD=RGC}#2*LzXuiRyg~ z*C~$5Um^Sm>hW3rlv#VXdW%YL;hcsbq5OX6L6w?1X^A>Gw}B2I_F~-Yu_swvzj+E~ zKVRz*r}n(-KgU1Y_TW8Wg^?*B&w=nN?-oA(b69b`iO^mkulLQAs8J2?&Oc|a*Y#}Q z8xJz(5jXL4AZo$u_-!;lFn~269Z6$s+K1@KV8LhgF`S#pnrQOtYS34Gz1Uk#&!d-; z^}KRAi+EtWyByx5lup;FAXMmTtxq%AL|aqeOswgn@a|^mL4C<-l3rVyowM`b<5^|3 z)%hkQQrU2NIL+$kn`VlR`qmCBliUqL_d4-}ET_i0$9tnzE^bq{NGl!DkVusJzTx07 z%TFyS(`eA_mh4vj?9vGY!|TLpYbEIFf-zPzCT|4-*0NOLwtYxWjUZGOUaq%VoA%ZV z?<#A}!{Y#g?1ve>hkOe~3vYQ!3H-XrRmF?ty7uyY8h@$Suq4;FyzT2XW@#|Oqv<*j6%i*a zr78M_U9~V}J{^VCLHAiwm5YVQaN2F@b&3uwLs$N_xMqCpbmeDWC8&F2(QFOehw$CG z5Xy%DcWZB9V5(em$2PhrtDkge-i`kCnK>16*!=*M=1CZxgi1_>>UuJKPfTJXzpJY^ z(>)0%hSpO5zC&S)O+djj8#?c`@<&97@w1iS{<^R8O9+4vCoG$1dB}5)NP3rwcCoA@ z_q7}!?gs&%Btxs(S08EE3-?i23DD8|zKT6mI|Mmxyvl(%h#(T^@k&mmfPhCWuf6E# zoDe)&e(q|G#Mxdk6sndd^>hISwrbvoZbk$ejZ@t+#NO2AC2r zS7&z(s9$3pB=}%!T<=|7Ma8~FGOqg3OGTfJ`!$WJ6d4QpW&!7;+YO^;86~Q3t-rG= zvQ9a+2bLOi&NBvsB;2Ft+^QjB3bNYgO|MtgQA4~5n8{QkOJmSgKiV$f3$qact+Y|ieX{WbSrG%5wZ&maZ z&o*+iM+)g)lokD*{os`QJz$~&&y?}BC9lL#4d&cksX%qY7ri;}1(^BK5;oPrS^KzM zLCMd<6dj+T9{!l-oduRCAR>1))|DJf{*g(h$zLcuLDiBPD`VpXP=8X3K?lI&q z!Tm7hHJJR$O)P1P#^>7ZIh3hvdwjSb>WbU2YAtY`^ftPH*9ukRrsaaqI~&1C`sBGMkA1fKK~};^`Y{Y>eONxW6q7GF0TZ+p6-%lm<(_1f#R#5Z|xN zO06QR=)O;BiYvt>QBXq=!U(ITGi9d{vZ6)!LnXvzbA%2AZQT=j-*P|z@Wy{o4FFaA zs4dbIaq<&t7?3ZSogOD@?%Sm@uvF>&C*1aqFy?(4rY@GajE@pyN&vv?^Ao&fYpZdI z%yC@968AWo@E4-*pi{mo@g71_a^c4Sh@qF6KV6nkS{m#eso7WsU&}B;{{SoC8tv<{ zy{$5^Bo;A(Qw)2bk@;-Yk9M#= z<@s^*9eZQmGPHm)FK{j!oRZWfpSCa|GZmij_hVsb+1ESdO;8v|M?ajpX8dw!77#y+ z^_PW9^5fDa_nn^{-AX%#+x|_rOC#Q1me1;VUL09WAspWnjCv+0A}JWhe9+POF6k#X0tmIvfnKvY2|n@fapDh4Cv$1sn9yWiSoJ< zO$41f+~5HWnwfuk^5#7eFbv1%-JiUVntA0eZU7PBM91-@p4(x5kj^%;UOBK?W*LGg zMbKmtiZ5>4uC)`bNAI(^S3)7yP@jKxwI=Bk)PbjG;th>Wd-_Sn~a^mUM(v(h~_wrd{Ri@$Q)5_or%%)odvoqo{wLf;3KQG#*b`%a9lS8_#V6& zg=kk%HYEknHlCLAb4#gdi7WkK=$M)DU;n!)eC5&+wkL1Q#i5$v6Fe|KYa0yS@?{`*O%Ij<1pw%vzmvB& z2kY$aA>(l_)sZc)N^&g8_$l4@&Xct9t~Sfwx-=6d0MdD-dth{Iq9r73O>|v;D4%y# zXTMmm9!!zs2f-@!$xYL6BcMAwo_D@+^Z_iBiIjuSjhJy|6cH&WN-jr5|_98_d(maVu(e!4cw{*dqL&vNr+^Mr>V#Y z;knP|X{t6W;`y1Dd-;T+mm`YlthK|&3HVoIvo-NrUp$?3E9U)3sb%B+kZEfqzVQTj zs_SR>7iaK5{GLFokM_yj=y0j5(=+&s+}h`hXFODj!(;wvJJ&C=nb@s2bA%9wgHtA2 z`7#AcLj@AHXPHYZMq8|9((sCN3!lPC!_SE#mEB=H7wqI17~Pz(#L(ldZGP+t4aP$v z3Px`L9q(TMIF97lN9Bgg;;z}US)~aglSaN+vnlkO$lDwV7ZPiD=Op8mX*$fLP|syw z+cknaUYwei=Y){gh~DhMHOD7R$Sm0t9W8TCDK8t!a;W_%}>z7miA`Ol@|v?@GG% zTkYXlPcbUdpYv3W^_p#?Z|@av=f$C_Rs*hmBt>TN?=LwgRtX%9G{Ffbec(yY#m=>1 zx`IyR6$jpnHln7{R)-^55KiCT^6xKKC!a1^M&+-3GNukgaD(UoNNG-=YxZXt%wUBH zZl15bE_W_ht@})e!NDkJtJLQQN}ECr{ap)RCRmkM+zbn_hP!C(2Cj%!0j7d>=P4`I z+oFurIEq%59ibs(PmA1yY_-F0v1%H=QR|6C_IW3CQDZxr$A8?9XL>oE>`=p&oLtXH zxdUWizwXeK6SJ4!Ym4%4=x`>x~bIG*xEb-$dWT6Q&O zjavyiP3H_U9svBPDY(Bi^GxJzmck}RE`>mA)q2R-J2$cgKFZFG3Bq={;jM zS%Q&&INmsrI%KV%5R{)|^G;dH{+?A-WpwK`WT3+?{XuzTNb4VZVXC2j+Qx~6xY z4|SNcPXk%9D8$(u{vl4q=8cB-PfbYbDPcfi z{yJfT*AF2YQfg07cQUZt(Phb}VrIAD?p&Rz%3YpymHh zPMq=J!g4S2$o|8eFWmsUVZ#3a#~u&s;l{lFU-RP~5$q2LtiSUA%UUuFNuk63;@G;~G`}wG4XOM;(7)H2SeXqax{+65n@U#^oEV;jbZx+!=ki;UZ_SjdM+n3JZ9Q5ej?L6w!A-Vcr!=jpE}r+{2ix) zNHId+Jvv91|X}AHXlDZMmf>KaFJGNxz z+-4wu-xLf=kXGw@&T0%RU*^a6>Sm5&S0XHL_5Yo6x<>nu9IA4?bQ~S~R{K)*` z5+y(-_B{gjUB@*qFi`$|9hY;5&pg6u-odNST*cR zZH(txw@D!p%1|Qn8Mg;gaRHAPx-iz?vuk* zsmJ6WU`8T`qij+}CHVbK=R&tQysYv4g3;AM33U|zV0Uj9s@|=j*a4DOrY;k0 zb93wHkl>{51VaoyW<^7g)H7<~1tjdF5vP<$Er)PY{}iVDZk1Q&*B2_nvEhp188G z^Qbwz>YeAK zB;odTJ-e_(U$bh!kJk*{wl;E8n+|=MBe~yvsdVEDP2Y{z+cWrG&bW3BYWk)I<5~&( z?=AMvW`|bSxh=q=CB-rpfe(j!p-_+lZRxtNke?X&GjfVG5uDMSU)9!jz%)4bha2-l zqeb-!d^1r%$o`&u5kg!ZPZr$V%Sj~ye)g7Mo+7Sly zdW*E3FK+Cmh~r=7Iy2g=ucG9V9fr(r#F~Jv2A5974K$NT+0vi3?>S8c z9NY8fE~jk^zu2kXEX~}>R;|f5weW4+9?_PaS)R&19nJhoyp9%VYWMu`UK|zkkYb4kX4#jfNSYU75?@xA zX57ZUh$A?YRYpOb@6FUvYSr~+Yz)+LtlR{zJ9Dr6)rjJuh-oL|0Gv%)*_WSvn3+BO z>*2b3L#oSPwpUEZpEg!M*)z8qFUha`O@N?0HlHr(SDpNHCeU*0_9OIh2K>T+4a(>E z`L_7G_fP)w{rTJ4r&ZSG$z5_8sUO%DsW?)InwL8_&H3v~_zc=$U~!JxjpTaoh~4+r z5q{6xt$ML9b*803=^ihY-6OB}n9+>p4&H-9;t((@`1SOP>su0o0n0DdtyBrC{WmPE5^UYj?T^31}<@7`C=+r<8f8j-wo4wXWdtnXD6>fc7JZ$0|shPl3E zG~exX)|a&wLThgTKtKJ52i8&6+kFKMm0dS0NsQtw^vOEQTO~qdQ7S{}OUpm*XLc`K z#^ce(&%aM^A|HOGbv*(B;+LaFT?1dXFl^58zn)~?4kJUr{4CFNEF#{QAo=O(WH}D~ zi(R=WW5WC*`XI};KH2r*?NzqpKK3;E&yE9nna2;#rj>L{+OaR^ymp%>g+E6s!pHW1 z2|w=rE$xUgl(Jp(^5VW5=sH7ANw+AOv}zey@!fsO>w$7iUD0B>ziB1t^LIvf{@{BL z^vw+H4xy`1-usKr+t&TLsC$k+KsF2JyEGv)&6=B?VYTg0@L{VyJs`VBn!f0T>8SN~ zZZ-Tl#K^2_$C4pnq@&4h1O=SMxKFYs*hm$INYd63M-D!%WY7-N;~ zb!HSHgGUpsXxzpknCk9RSy8`Wd zJe;-o0DA)0v+uGFtw^Xfrr-aluM6PpbBpX^p+_6ki)xofk53avxz#VX>WzM#+P z+@-RY)^_atl#2MZqHT7&)&2XE^p|l3a4ajYc%P(n`+e&{;)pUgn9n#2?QOe8FakIN z;^Ao#_gdsom1*^fH{$2WD-#T5GttdmUun`;+CVUyK)hS?WbD=t_NB@>)xJt;5 z?w8UCUo+H^MpnhMWp}#z&Es%H_V$MKd8>K^N3q?jZtpW|UUp6n%Eud1=+1-Uoz-F7 zlwO&5%i|rZU?^eBjdjlKP;{u?2px~eJ2k|blElcc*h1N+2=cjtetstD zZS%hH|6M7Dxl%X1fimX=z~gEclGK!5bnr89l8e1RT1*q=?W%FI0*?xp&X#FvB+Vi7 z;0^soAy`_bX537$8Ls?Qd^{gc%0q-+AgC~i6~`gwnPe)72S9p`S{1Z*=ZH65b2+#$ zedNweiV?os8d04v6g}V5!Quw<+m(Nk&A`-*|9y|*JJ2(*2a9Jj)AD{Gd^j6!n*jK| z#MtU&+lGpJH?2Q5#1(~}&bG#a6&#}4756;c+rL-hio@f+ldD@Q@7#24BHhB7d zFhI49uWA}4J04@GG;*i=K!s`m!vH5z?jnrcSfnz3-$IgknVQv+C7wFb!lo1H0XCH$ zodC1Qe$+kr?o)sy4muVH+XN?(a`XUQa$bX{0EWBvHxHpNnp7Mn6a)>4 zRw@dW%OE=CY3m#jI!bcqBS@D)?Y=QlR+~YsElw*^zGP5(gy@|-)ZjJjZ%Vf>lMKn5 z$(aA(LU)RV${we=;no0P9PQ+3Kxp7nPpyfCcMwFS5Mea(3bPjfZW5U!4zHpb?T%?` zkb})8e850JtFBl&<+Li3uO5e4ObQGm2l{23AX+epG3l)(800HStDXcjjS0T0ej)MY zU7NfZ3bpEw6`}^l;LgTS{N=%cHDNaho*q!$o~zR3b$HdD;Q2j1)7;&0}GQ-tx`lavRU0e(5jtE$`jt^d%v;(V=TRVZ4l4; zSg}q37fusUo0NGJ-O=iCmw*FoEUG*HYof zch&Ml0h4c0tr`Gc8m#X)Yq}vM}&IDZEM+V$tR67HB?w(z`*a%q%bgWhLt^k^U5zNBBbMFncpoUR&fOfnz*%$?W|b+>qs}?bw))W4y%p z-FPMof1&(|fN}3hfWcBBV$R)X6$eX?ofkgqo_ajCwdQ_XUjZ8#Fo%ZNSxrB-l@z;R z;?C|*>FmnUXrvBJOs$5dnHY80>L>{QZFnWIsp>4Vd$9cl3YKD zC+E$3PWl83`)`uJ!6}b3-pXT`uRF-0i*S~e2$sbu{CX?DJdyU!fojhKx zlJ*zY_?|B+L;8Fe-QWNmWiC-&+pT9Yj4uSN;5%JUF1aV`+edD4jF_vqI(~IbNBW3a z5c|82%_6@MiU6acVjyt)^3{r}%v}SG(Pwl`iV9ls%I-at-Yq0^G}+nW0ev%_ez-wr zJTA^J9w(pj?X`HQl4gk0D87Ac+9vjR{3qGzl=P$dFZmOCoszB^8?B0VXfKN11a&9c z>+A?0r&?tAB@^;uvE9t>$sc0!p zu^A1UyK1q1$F^#s8Yqz!mC++Xd-+?g5LGG6?nJ?_#XR}t@A~i`JU2HgSjHUN9{bH% z`^l8|7D>fQijR3>Zdb!=Wg`Hr=%Z6s1E&txN@G&tYm$dF$l`u1U^N68W z9Sr}aP`R98G0!`YDv6-iqvxJVPlnDnJ`yh`#)1W;`aU(WwwCU%R5MR=Cp34)z?$ZI z`N_BHOB@5as)Xykb$eO0$qd6rD_07k5y}^OMa6ifi?hyz;}nFZ!&ehNB(8ADvi%uU z?)wW4n%>W@-0Y*k)WwAkRx)ZrSgvhI;o9R`CTg7~%krw$q;TJ?OKps6`iki6mr6u# zWD{ci`Ptb~X1j;r2QTc6rVo5wdz-5B<7$V%d~e9OIga2;=VQ!cBg*3*zn9lt9-i-S zmN&1`d?r!RHT=$te6YTCrb5DPTLlkK{)!(vHpz_h%xctbxxKeJ>6{t++LMF`8L#?D z2x%}|no17CTw7?A$yHab-7e`@RcleW@A0KJ5~spY%r~eS?G@|2?Y%?J&ae62j^uFq zn7f+<8*WQ{Mx$=%h@iRHlCrJ?*0$vqw+5{Y{U!&KOk|XU(Y1_yb#xeW$@O7}V?h zZYX*^yzLouOUPxlI33K?=SF0mJn1$;`Hny^lfb`P*$+B*MQm+ua>4VW41or)-<@>| zaR4W(R{aEL{!%%5yTSb}r${PCppQ6QUF)rVKYE!+pr_y<_+0Zw6WxF9+0y*UyAhWV zgPnN+t0L22HMT%siUk3ebF(baRKkU#&b@S&N7&(Ix4) z9@mzviIzulb-uP)c77QOPf6|1-zdDt{ZwOhz)+%cv@$$iUBZaf-x&CEdE~F1!BvSI zbnP{e1gGj?=yYCj>Pqt2964{%8~cL|g%y#+3_`9LyUaOvFZd1^N%gTx|FptKBgSJD zjI^~|u2O`f*$Um@=%e!l8}SecMP5LdsgK*{kt@Vu4O9L_(j<9;Qcu04TPdkZ{g}sZl?tIL6d0SC;`D!EJ*)D zeU5lM!IL@Nejgn_^+Nn1s1P;+#{MJ3V-^-x9Ah!Y^Fx99 z$BR#!Z0xZm4SJ)BZ?HJ%$<@2bRCRbAwF6PPPex)g7N9*|@J3cm?^&0N(JGP`cbM@ut|4`$X0^YDn zh3nI{ed`3ufw(kQidVrux_qMwFZ23S*u9Zw3(r+nTie)Am&iqYVezAe8GGygRn+gw zC;^iD-<{^nhIF5tp35ONJI5;Z^lHxzr)f3gn=F;i$3CEJ>`X+&yRf2_{y{2f>OYF~ z(sHaI*N(dO0|yW}`&y~pJ?zI2JoAstIL_n~N8)9v!KA7lJSdW>Jv4%wv-DcER4*7s z_VhFzv0gWCZl#iN+-lw*cmA_T)Z6o{1v}DrE}p&(h%LuQ{XoORIZKE8Oq#u_S<3_o z`|H9NGW?b+ulKpa(jPOQ8uh#`^)C(hpe1-`I$le@&SXn8!kvD-!>s9-6XL`?C$N_)6T$ZOz zA@;iIkkG846hHd0rGjH)0xwvN5sJd2ey^nW8v@CB#ybDR{NikX)%#Xnm5C}WU;NEz zXfH*;k~?oJtaH}gyity+mgxV@jf!U_&5ju2Rde1XXlS3=t`m#DBWx9=(V)Ox+&H-0 zB7UwragwZuA(y#(I`{#nU!|70`cc@xU$OAuFmgTrFQn#t|*HsBQfur z?##n%wm!g;<#%SJusf*46$0~3qxC9e;Nthj;5-67V+lIU{Ks$@2U~MwUVS-97zhB9 zp}zLh;eBJ{wZZmwqwlhVrK-ih&BYRhR#*$NlG2hKmw%rp>U^F5Jj~0HZ@n&0Xc`%D zKzue2eyAyfQ8lwNzN}A%UtN0UZ}q5$C+eVM$^vRT!XaqaSg&22cZrI<=KW*E7EYxb zI+SxY8YKR+boTjV~uDdEOr8nl9H+)*2BzFXj!oz zbXbIA87$1d@SYMQD?T0Z<-ZbVpF;mn3seQbZPSEEniqPMMtGxF>b2dQVFG~q=Lf_b z_k~R;ar3dJkuG0xR^O~un##(m)T2{;1#s1+W!}7|vlXA&92BCE)U+k+O*#>r=Co2d zxOu*>ovjClJn*-=9M#@fs67=(tOvC;c|3Y|Jbp9j1peQU3REUh+11m1^KP80)I0TP z<3`OMh|=cdtEnhUsx{k5mUj)a&><<7>L#O4*qOM2*tA}4OJ5ZuHzV<2VmgP1`#-T$ z?d1sL!{Sj6@#?wDM(nVw=I-H$Jxc;1#TB>4;L$U5blP+Rq?lXdm5+hnim<_HBYTtm(1ZA6j;(?pF!QEj(o$MN8A4hXUEoSEBP86I}Ei`3^g8n}{Y) zM-Oo}I~XpvxiT+2ywlRckwcgH}PHJ)2nxISg$ zf=!q6NN@F+hpKzSL)@R#UW1VMJ+Ak*TdSpTTxCO7y#{Q!DHfm{SGdR{i8)wQHsbkM`H~BjJEM>1SqD`!xi~Waz zv69rd_iTDU>SgZittKH95&>}8o$#v>SHh;n`F^XNtS5B%QFRIX-`|C$3bAO8_GE@; z?}J#d#(wY(0jGutsZfwAjK*M@x5{a0sc^!T)XjLK)(F4X`&+^K^MH$-oG%z29)fzoPLjn`f7CN@KLnJP9I9_D=(QFItjm*4dKHvE$#lD7> zk91A<-RZpj(ysnl!-=IW*Yq&5Jv?Qz$0fz}?x@!?#K*isEt2E*K{q7j`J9GWdt&Da zqr!dQ7k8w#U0d&sawzv1F|nwY<`bphYe4$yG;L{GtG__G!P$^TM=E9FRYgIe?P zIJmihj4zRAI0qywZnKL>Fr?uacWaxdDR_%3fbK}GdlDjGo5!U!j36(Mb9TJ3} zuADyO^ORI!;`WZVb&%|26!YmLAsG!T*EWhC#HvbR+~^R%2``+v*dr@o3mqtjdZGWoQZn(`su^9R;mT)ZJBhY!dowY@D6;YUUDT(M$EwPFRbeXzB# zv2x(vy{?-wN*{QoSvKI$C(S3M7@Ji`6=o@@2*X*S8ss-gYvP)u{%=^%awNOfgTg5d zM19EhGJJ31#Z~#vU>=f_;dUce1#M#Ff|N!gzCW68k^59yIc!>y#E0EQIVYy8G{Ni` zQG!V`*_`ZIaQi2XO9E@UG@V1JB>3?QJrFG^{Q2FsHe=1!!nCYz3sUewrL?B}VnM|39&!k7Q9P;KisU z$|~T5ZqcMrelam2TfW!jDKdC1tX?e|DF5Rb`3e@LSw7-Nu~If_VbbnGvX&p_(@!ly zR*z!>L0o&BLVQIGhx;X2=$3-VXvMSj+5caeS2fb2)_L%xIUJd~>Y3Ho&21=4wX@bt zoqSP6QOX|CA)FUb1G+Z7B6Lws>NA{3<;+BPgj!-~f?!pu+o60HpS=`OD~zY>d(*rV+g{I4orSM+m6T=mS(c+VED^P|7cIX2V)OXep&<=6 zWCiQk3@29y@QUe&sEGXLoFxE640HdjLol5H!+JrqFB^$j)d znAdj7pSXn;Q8^Tpe1rdR2#I>FW->0L0fWKIaJF+8CfJ`xCLYy0ouzsi^Wa|~8DJR~ z1~%ZvLnGE-l6u8<;}J8RvU48C1I_Sa^$FRg4Se^@ifv#iW>>&!zI{OEm$Hf0BU*~J zjj6%B&+*!&Je^hSFZbqP@s+gi315n85YUBHabYjd9>!(Qo~`+QFO9}an!e1oj?dDu zanx-LCs*>3O*%MGavd)SWFvkH!B*n$@^iXEQ}9eindKSKgW zy()xB3V~6tZJ3Imf_iJmiX3ZysQRbvgrbv_W?Hk2Ik8qPJcBD-dUERh*(vD@hJ`o* z2nc|D?RY8;bt$J!i`YI(H|rx+dVw;Ka|D z-CndX$#8(7T<+eV@L7>ZvutDaY@}Q4GVp&pXIh3vlBB#SOU>#|l*8(k5#ajD*A~AubNZ-F$RZxI_4fk>$;J zqzIU(S>Ec)rbM;wjQ~2I^GHz)K=1N(D<&162U?46l3lGQq3?3$(FFg5l3=^oE%-Mz zgpb21U74RL$>;BvcEgE;FfvMUUf-w5MAFtOVSnl|=Iynkk50K-M~=q)x+-5lZkya1_onJ>vb$KpD<#Eq)G-(Gc5SROS z$&|(p`dBUXto2W!LS_9cGyOk2kQ0nd8hj=wD5FrW<%kdMr2dR3TzkG$YdB?FHr|0A z>ldGtzuKIdT&C8xF{Lq&BKynuy-A?s1RpjiJ8Rq!m{}EhbS+i6cRu)r3(@gD=E$B= z{L=I4TgZvOREA$WC6Jm@?fn*0kV1}-Eh+!tjWSHuknnuLHqE zM{iGwkc~{#`;hGM%Mf=Y7^RI`YE6d#|E@KGc05O(@YCLLX?T%*NRK#k8Y_cEbZE6b zMdKYZ-V_}w+y^RMZvTk?PBpaAc*g5k(t$3ze}i}AZDYutq$zh#^1gJWB%9ZOfJ~>0 zIeRHW{2f=oWz>!47OleiW~5=-7w+7|%5<)4y@-rnqE$k-1c5$s-B!X$=Qp|aTa8FN zeQy)^IJ0&x+G+^!q>DWb9^iOSaU{=`V~CJTZEC2`SFS(3`4Goh*Sl!37ArPRR`A&w zIJKgT&81VfV$Rm>l&i{nF#>XTzOpkF`m3q;_fx=XWiEoxIj8Zf0+r+5y%RmC`t&up ze*}?B;{T)TFM#5Dp0H7v2pZho-CcvbTY%ufoy7?b!6CT2ySux)J1p+*4tL4#|J8Tz zTlZ2_ZBLJN_ne+{_BlPh$C*Z>+;&67C;lBb*8JLX4dx3byTed8w=WQEW~XLw=}F+M ziqAoNp74fRMY_`4++je+{NNbwQ$#lC^!Mv)^-$NFUnyAX&5xY6fcbs(Xyaycx-wms zy+*i00H2BX0{(FIbGZSE1ta;u!PxawpM~3_9GW8RjMy13`Gi#kgHapkY>iI55wfT( zk1US6-uT6&FZ!OCs+CqsB_K|EX0e6mc`~!pOkJvdqVgXG2*zd#N7y>AXk}zTU;Q*; zJx2gP()=z)&NkAo*euKNNDr-S7eI0SIT_r_?ILmeOV0yo$*SZrK(D^Ft|9_yJl&(454 z2J{%mZa3-Ct*c!0t7CH`7BVL_zQW6JZCY3FCoamei}q5HjYcLq=fVvEtn=^VpU5OuYv~H^H&=wQXQ*sp*!mi& zj+G1I41t$Odg9ON>uXD2#}$Yo--CJt5Mer@`xlrA+zIY*BfC$8e$Dk}%h`@fY_{BE zkfi3PJ+pylU~=Pq_Ibf*A-sK$tk|53=JwN?$6NpDVK9M(qxSb?rNMq+d@UbWCVn23 zs5Rdk$UV;vJi*-H<*u(hd1X9Y%jo%o{=Kl4UT8;Khl_l0W@TxtK(+vhN#1CgazGoS zJcG$nLge?)NpG@Uq+-Vb`Fzrfa60UzshN?bIsRXrA&o-S?xLb`Zwr2J9r;id6Y%f{ ze0Lj5Lq2V)ZIo`j$%A~;>&}Zl2)f@(e%n^c3sfcqs?m%^gPs9{!U->850>7jqPpnI zf%H~9{$reKmn7zMz8c3NOgbpdLIMk7cSihk)We@lXTB#x;baL`p4|4Q zL%tSj&a%+;lK~vjdAdXAt@;a9F@X(!x%5e%8)3+W4*l}^ejM>~KciQjE{7fl?hO#e zzg4|o1Rz>3yf=98v$9`kIx)TN(uZi&ns+CzgjY0E0Sg+>Nh` zH{Bf|d?>CMXjh`}svhTGQzW4w4IsEwU~LuH3fbEFF}Jx_Md64t9VK<*Ty6%MY{T|4 z+MLc$Cdwtnb&i%xCei*GCQWcE>F!i>@N9KV<&(OUJNJT&9Zyjt*cOIuQv4@6IK@S6 zfeqL%U?ERZcZ@gwTIEdbOxDY0HjozFV6Zs41UaR-C)j}FUl$bc#xla2at!lQGCWQ%0Sx=^V!0kPY@TYFeY5Por{-#FDqO*sg z?m)MSN!Ky#Eh|BBh4{P}3t>4~Ui1O7VqVAHUKVJu;nC}XYR%hA_7b)8d={uy*u1Hr z>;(p;t6Xor>DoBnhIm$sa3-C#(_{EgWy)8EU18fpcRc~lmAP3b{Ycy0v<{xeisCQk z9=7L>7>P5)ljIa{>cO9RGKFKTzQlh{}bc&D;p@GeWFZ+hDnw13q`g*GfLmrP9i-+Ld^cH}$Xk+=Rf zu-65;H}igRLPvxOCxjAJTo+O?4+oUC>@^enEl^}~m>KuF8JKd$^(7M)p-T5ssS?MRRei2Z4XqJF3Wdf6sbPDjBi4tGH<5#~JhozCDQ~2zO z*Gw&zgRhs06nM7U5QJ8nG8M1Z!6vpQxG|@k&>7qTAxD~rb%`T3`t$dy{er+THG+h~ zE`HM)Q@>-Nx9U;s_wl-|VrvXZ$xJ6GKLr%Nw&s>;q>khQiZc&5@O(DYV=*4bJ1sN4 z7@{y*S`RL_3GLr;ChIL&ICp4>Py$rQf=tUCn~WcteOW{5K1Q3w*=)K8s5QD>1_ajg z3RxE4gK79TU0 zv)O&()SXOJ%08XfU0IXTL8GU9)0o3k+d&Iyav%?Q8S4n)qlOL)YrCvgkjsW8VIg4; z(2I*M!<}u$|ECoMH(5mTqXXc|c>NGHNki5dA$7J*ppe9~4%m3lhMKsExLEpdbGEN~ zno?sJN9r=S3RVSq2#Nau4_v3CKp8#a;hNp{4zwYJ?Eh9_~?_ zCdm^3fXeBVp;D~-&c3d(F%)#H(M*uCv4=Y!n6c z-Xo`={5AypE>aL7*_fX*FkS{l85O77bHIVGuN~fiTuK&(a|zZ{yd_N6Z=hQ~pllm- z{th)(xQ*zWf%tSvWgMihub;oSt%b!Tu{fVK z-H-2#GQ8n^dpG(?0C{fp$CCvzab{x{49pYxWM}UbmtL)@ii%e96Bt?U+DeQgeLjQiqPF!Xp<-?gn)N_^c%AWn+)-xqNue#+84= zZ~t0-{?+Nwp7mNc&b&~X=1E;`zQN;RS;}jE_sg3~cW18r{2Pp+*;bTj7qI-4>~`;S zg3e2CNtrDoc-1rc{h_hJzM<9m8IZwnBqo~RiIZ{v%&)x7)6grVBHa)W575=%LE(1Vpn-8Ub{!)B{-|_zKM|P`ti!q$D#kQfwiF_<{MDAdLCxx~x0u!{m6zKw#M z=pa&0MLMczU4_C!c8}vybhyGp4tDt@e(koysUcZ2w%kyj>-<-3ZvE3apL*`>)_Yqf z!13#=Hkti>``+z=7LMZ$+aGd<8pmL$)F%UcN0JbOgm*UHVb|_u`xVQ&-{*i+xHOKV zFXtQRx;+4G0!7psvu?j{{WbRthX!vY85TLFJWn?YwHWWJzur5X9>GYpqmlJG4g%d8 z<7XbIUb$Biu@10#9wOiwhdp0>v}Y!z5?`4mP1!0d48EXY3-=V}rRaK>ahD6AS*ZKB zjJ(ZX3x9iVcCM|rx4VH|jqDt6N94Zed+v$fEHB4TuhCybYv^=AV={}h;GwW+3AYwj zjawj1&}P%Vi;g9v>Rz#$j=v>(ef`4ie8kJW)nsVbE6>$Xs=FUvropqqeGmWrAxgW> zxRG-Es+fqkd3l*j-T8n=&sl4XpC$fQ5;#(M_^cF?L+5SLH(^S|U9b5W&`zpN9 zPV(AO&1sPKLZ<=wtXdqI`3wD0^?iu;wb<+K>F(~d^PxZN5W9rV)nT6}UaCgjG1u?g zQ`)FeM;xpcQZ6bKjvfGu04riZtZjJ7-*~7EY>e**Zy7%CDC;46{f9(+soO4Yj_$wJO~fiR-}WiDCh_4 z{o_N;Y444v5#NHYB%ku9fKE<$EBDE0?L37Z8NL}JXbHaNL6xJRlkR1C8j|jEablFQ zukfGMlkQidf5_4)C%RbmNnp59xHS;fIE#PfRP(?gdBB3s(OK<6#AtQZD6}xq+5Q>} z?Cesd(tDj=Gdb^g`$76LO~0d36|dfyLTXn&im!ckt~q*V6ZjN_2+c(LrjZ*j0Go+(tA!82ZN=tzl8`v>a11ph&2kunE~c$By* zo-7ja{5IP$aw>Fp4c>qmRV)9tx7zF`uXnV(6LLJ~O;30W9ZSW~K z+HtTMX%9QCUaReLV{d#atYd7@oSISR8A*lSjBl;RL>3%~M!%_ZO&xsVO`ZqF0`q(d>35{J5f*my=uh9muuRCv12U4GQ}4$Yi_Qcnp2FJk6!G zKrosutZF!Vn;ghJ!hLKB z>9>!W_+F=Bb9I?>U2>964-{P=ESsR!biXq^U0*TL zPUHXfvQGh<+R3xua>ofdd7F;fm%rJ7aoWkV#YL4R5KF35U<@2+8xF3|9J&PV91TnGC1iz=* z@cm2jN&HGU|K8LobR&vRbgfa|OJWn~{owAGbBT!^CpN`4W|w6vd3{Nl@5~D<$s_+# zV7mPEYduCE?@+nkukr^93wlPK0g~dT&X#Vn)nja%Uekkx3CX}ejA%3*I2yypmRXFq z{b8%~24eMd*-EokkdRKQF-wUh=g|^MdGnrz8OG6qAqso=(Q_8F3!d}6saov$)|sl8 z0bu3D1wQt6OVPO$^scxmc`HrgZXV#OKhUVL<>yY377LPKq>1^0d!Z=TMG~H zpSg~U=GsFC-E7|49tV-qU`;t^T1_$|nDCyi-+OprU)1CoAE=^;V&3MHZ|+a->VT1b ziN@C3@y%hvr2G_bzYc1bSY%7@Ifsk%>1u2mDnUoN^(TL(6r1u%b9I=lrKbSwe?w6; zk>$;6nQdD4mE~18!b1ieGXPUZ(?DTD_p2v_nKL`OWMHrfuYn)n$1gT zo@j`kvHXJd`WV83`l8$h`W`!;;uzVcIKT(yoVVnAR?yNCZIZmrk99Jbtpw5ikuwF0 zZ|nTq|XRSo>mXs{WmW$0e)Ou3S@&}bZCR19--Oi-OX%RTy>Y0%fFx)d1JOvgPSTvSDfNN!@<-IjVjB9WF#f?{f_^6fku@q;D4%0g)tIvmN* z3HgK$nA>#{DWFcrEpotU;9+Rc5{-A=e1+rj7VfF zH#>Fw$lMZk)FM)bjiT=MvrUYbYP(crS#J9+#w|EPHW}lQG=^jYt+lc=xvQnkFhlJOBJiZDaFG-)(+W_H@bYTcz6F-an8ZLW)H)n?c!ozXfs5CvecYQ@&=$_C z4Bg(2^166c(PN~Z>b?A}DmnD)F^OyX_of-+zU?_r$#cpTitx z$MA4R70$?SX^0qyPi)+{_YWe99m zQgb?c6t=J7K70kj9z5l_>R$<#jh}b7nZNxd0WV*pCL23VV*b`jqt%TU45K9dLz6S{ z$I;hgbQ`f4Jsk4VWUlISK`Xkl{xTl6UxVE6pa-YIWEaDetiRZ|y#`n&W%~U2hpiVI z&Ab*p1<#g)7(^;HPM<>WLKMplbbeq3cbbgVw&zCx$Qe$1KM zPNOuM0+?0Pp{9HP_Y)GD{j5mS(caSt>H2OcYRrw#HDu(H`+l}DmW@!J!4nX5dm z$8v5DUU+NvRGb`T--^F5hrc^nRAip?CB)bJI+MJy0-~pFh9+9G+PNOuk#;+1F2awW z&Nv@pYQPICAySd-IjVm8N$4Dn(LGP6+*%gB@tAz8zA>2Xk+=MebkaMcIZ=h%tj@Ga z`hG%Iq^pAY^<^*U<=DUj{rlWev*|tq!v#F*v0iA#c`~cLkPp<0+g2YJheS-h7F^Qoc@E|~R6SS~QkmP4; zeGnbV(?bXaE7%Pp2^sVhHsC)Rh$2G>VM4ROf=D}*fS4U8nx1}q zd_3SMs8gX;08zBJ0Emi=VMG+dM1=&YMaZEiP!D2d9)RFNP$xeSZ)1QA_GcW(5QO}C ztL+{**`Nvm&u&H*7GKJb-WiOvw6ugD$)rJYK!G}d{S(SltDDo~iB$x|@P6^jDldnx zSOtv<8lPAPJ%Uh5l#anCNH`;;4WCh+a^ofE9Gl@Nlun zXMKTo2N6mV=>`6Szls&$O$hxL;-8r)^axYMIzv7d$E8p! zUBHj?KXHvQQK|hIDE%FpvQlE7NQD1&Mzs%Rg!xedG9&1Erd{Up z`a^^E8PqP*X_k-gRr2rZ?x!r!&h0dC{|!RLv|ELl8 zaA!)^9*`x_^FZWahTeadC`gxocK8GR<)4W%7h%7omwuR7qT9RWLv++sJ%M4+XQo28 zcgjD8C_;m=}=fVCG+>|H&bZiTUzxPaOTQ z<4YqJL_inahoFof9WD$M$leL^L4yLtceBJWg1`B`R+fYeV%@)j=<6tK9! zCbfyzd~o7pR_>a5`zI1#Fi&O1hR8HVMp$2Iq!&^cAQ3JBD}+9HCxEG^FeN1POV_rT z@Yhd&XTcsKI`blws1m75Pg6k?t36)x>W;Y8jh5VpB)BKND@LMjt~qXQPfNWkCE8^s ztdv6HavE*u5?3SCt2y(fUNh{?iOheZxP=$D+qD)-Mc>RkbIOWjWlMX4^(%1zFM;UCw!P_SuxjN2}$=u&_P1xZ(s7FYh<~q%?Z> zm?j2dOW{~8qi#xioRX+o1bW_j5IzXf?*N~t2#UYlhM`gvQKU62Gv==)tSx8>TNyw% zTt`~>R)ft=vrjAxMj=SqANZopY}Txv_+0YsjXk?xL33`ALDP96jjUS#PV7}k%=sCt z!))isIPCjceER7h1IvW^^e@l8uj&7Kwv9g-vNULFBw!Fs?El;WN5w*65=uTI5ue`)Atc@FFVspld4 ztr_@oicgz@X(r@ur|$7l*Ib)7t>x?7pQF)g9G<>}2K+dA$D)+LgkjBRSQ5I@?6{iA z0hmU|#OaK*$-)*WP_pKWeK{^CSpX1}xdEQj7hYhbl}Mj&tIXc;*_}?UmK|=>UC5NR zieB4!zUSHBPuiRP0Z1#YJ}4k`xInT;Tsc(LA1?!peuy27<$1X*Epj>H;$Jo9S8_xBy9$uvUBEwDHSQ}byuQA!!(`IpRF7q5qcsa%h#JICP{$;hl zYP(TAGt}z3-eDJgmIumG1G#v>gmna`;qXS&SONYe>T$t%!fOlH*2z&9$HOQf-+!Q# zB&sKbU6%Jo@}}heVML^6I-?nWnIAW8vdZ#rum$VArXxd!K=1x5UadB~F%pz*h74Pu zDL%!>o^BpOKfC4kTWAd1GdK=*oLa)g8prGYfM(fO4hkCymz7vrFMRluMTwXIy+l{# z^6!6h zd@FsVtH0tq+E{woGuHyiP(;-aKvd~4c${?=ImkwxhQ1PtM{e~bOpV6B>a5GOr{g7C zQbZ^wI!jLLrqfp)8ig!jEo0hy(YC+VLyO(0dAwgRu1jHC7if=+ivH*gk3pQfrMNnV zw-g}<6fJ?LJ<=|z+m461Xv-X6%FYY}UX@i{e*I=>p#NLF;?7uWG6LZ$CcErt&ytnk zg?8_<*o&jhA!l9WH-}Am*5W~ecYDYwmsOPHR+gakkUct*wT4~t3p0Ou&|o}oLTC_@ zpBc1ApsTzEZebc*>-76aWbC>hcLc3kl-wCUiS~YX!}NN82q2=Htpo@MKBUEn6D(x3 zc-b;2yY50Hxons3<)SoXq-THvW`U81&M6Gv(J)@`Z3K6ww~L}@Fx*T{Y*LY_Hc+!sQYrX6kJD>l9LUYfG>^BZb`fahPZ6K9S{v8(jBx!bpt z93`Mj`aNvt#+*U=JL#SSJW)!OzgN9M-niiqP;yn5WUpflX9Kqz2;}0KlS3O?esiXg z{hqLN|1i@)MKJCVoXmXdswcaTy>MFpCa|ui9B}TE;bCzX`2|jm02iQgjVcj~=fWd70VLb4gu~PG zb>{_f2`m`Wzh0UWQtOiEpATMpB5ng^uNstc6xggFA)0M- ztlf+E;R1o~{bPl7Rx|Jc4~vP#MH-J4?HTffwji~J1azCWp!3X=OoP7FEcI5bABJFU z@pz)e{eH1Ae>VEoDvO2c*uqpYV7~gdQCEWHcs1(sMv1uK;xO)yoc$lz3~hP(vCyWM zrQwFSVh7n-5ZEX{0wE-YzSex0CsOd^C;#TiDtYjMF>l~q?Ywe#5w~2|^>@)J=jpFo zqsMOBDWf_YE0I1W_1H~@jShc972|B~2KFz{ufL+gh1OfajvzxM5#S|Fn`ipEy3|vK zYcKV9rm<*y-Av{yt(=+xH&a z!?}yF*4p0U8w%FtFg0HGzEF3Pic`yN^mlKDsBzDf)HA0hvSwN<5alNkY$lu4(zQX*pTt~zSEolJKmQ*BFyJ<}!|%O;TjjkZMRf1GSX zPtmpI9D>v`pm-b&-XtV_y1DPQY7SL(JsQNj*Jp)LO?^0d93W=W9w<&LqgQ!(TrQ_T zuZc&nES6EUp7wgw8fjch;O~L!AmHtJXl7Ko^bE)bZxSiRMK3DNktyOlQm@W58450H zPs3~Lr{{jvX*L!>9l-mZw&c1)NMWV!CZRZ|mLpN229cJZUm+I94nsyggb@uDwHj+* zLjL4*Yjbq4$<0U{tTK#7#6;8bV@#x_bu~LWy~=!vTtu`8yfrt?CmkPn2Kwi-2iQWP zHvk)Oiqo$f!}jqDVnHDKnPXVSn#J%ba!5cFH3LtArfnkywG2al-Hpnzcpalz`a}Er zBzk^)p?YGWR1MKuW)ojjN*6K>$9=uQTGKWC+g701CtmmEYk+u%mn+{;uF1-koL_cv ziPYn?iGqk0kvbD6b3<@1*L&%~dVN%RKtR5eaEEeJsy;mtwG@qUqDCwSL9?DTiDdUL zZu$@{eHV+68b0Bb=7nyW3{j{k(TMQ2dfZ8!mhbin{eghrs}5JIK;s*R?USRG1m2=# z6C&;RKJE;faw^6;JiXg+<+jsAJvf#atWWmOth7An<87PV(-o80$hSt>Jsve}5&IBp zl_{Dn$Es#rsQKu^3f&~_xe@yK`sR#7wNQaqyjE?eF@^nKatn`+8Ae-k6|up~?ZtOXbVTdL&IOnBW%$uhks?VP!x!PV7f4eD9pTnP-Glw;g19^ioC zr*=5hMl?{;FwGs*y(%Op4Jn9l-}$u(2A(X@S_oN(Jc`(212Z8SDLOx@fK|V&&TmYA z2EyR+Ii8NOV{eeC4&TRzq|{#2-2|7{EU+}JPHt)BurT|rW9Cmg(CnXAPx2Ae=(uPk zuNuQwhQr#J<7Iz3c2u7E8vFk0T(-B$a4-OCtyhdsJKr_)*7v?Dv1vlcV3`lOz7aBRJe_2DrsKqX>iDnr-7lf)_-`jHSH%H9{E-w(@_D<3~ruK+8=(r#WOPO3ug5ZnX@rWeW+JhRK72 zUT{jTJf3e6(z&afN(~b>2AYsKx$m%Sd#2sAJJc1IYgRC1(;hLu*n}9S(%C;VC)jAx zJuAEkY@O<0J8E#|Q!Dmt)V7kMM%GkUtF9`F}kXBbzJ7*uF3&hxEk4@=60D?B_}!DO{2ZQc6;o12>!3S zS(99GIyr`DG1bxG(S7M~?_$7;RLWDGh`EdA9+`IY^`(vk4V;mY(U^nxR!A~)Yqs!S+3>n(-%Dp6p`fog&W?{g6;dWI(Xk~2MO zDsPH+fBg_c`-F6C=Z`g?O}?IvIznU5Wp_6halQ}TLY`keejT5jo%@lmK)E~SlRZcN z`(C49pk|;VjH=jRobdngz9B<4npT)n-O*XFp&?z$5GDH$g*b7#M8H;K`LQni;U1a}k& z^TME5*J7z$_pG}-4orOi6cNmN$}_pM`Lesf_pP_oug%^W-3fn1@S8Ad+ua&$dKrJG z-I<|~TFos}u(n%iXL$jda+I5SbpzEND)cOEGRKb`LeHzBFf}p+a^=6@0~=ghT-HOC zkdeTh8%|vq%zm`?&O|xKg!+@p3a=}K3g&J6JS;&$sC{W>eL%OD8ROgOj_Z_1SrsFY zMF{#U6=RQu1Hs_YTh5KM*#SC$ z%tq?9<=>M-Yr_{YfD$yqNBrVoep!0qH(ky78{BztvGwA&QW4?)UGk$d4lLeOu~cQp zGZ@=SgwxO(&Shng04b04e*eJkabR(Hmv0?_ZrOn&bYh|vt^O# zInNE`RZyf=g-k8ZQroB91rCR<0v1gtEg2N4vtdv+wcpfH6zbd&yp3 zB)?ZpJ%mvXSrm2OCEjJrX1?jYtfo7`(}$-$fm?ZG^O^P>*71f>r=uz*qP5Y0Qjp-Z zz?Y+(v!$RPJ)iP#Yn)P?YtKFD4EDlJ2WFs(vLGaGO{^T9^ESR$CPn4?HW_C66)jI_ zam2b9*2d(Bzpr&$r#T#=;u2|ftYqUE#7@XuRavaH%SK#U0CE?e2Xal5AzC#Hydm9^a=~@&$wtu2^dSg=2;^M zV>D5iQIy$kM4ehqJhEB9rCu_BJ4LTC>u+0T1uf4lfJm~y7w?iPKYvL zxii`s0<|pA0`%6sQoASoRZ}8H;4_KaqI}-ZggsEierhh&A2v4@YHHqIrAyYm4u8{A zHF^0P8!H0=G;i6RzH*|*l+|7@Ow9^M_Ak!1C@c}8!tvugkAP$^M?ity+{X!&TOFcJc?|k^z1AGn z&A{WGy^rzMei8p#(n2m1T<#-rvJs^{mXb()g+UE0e+Vn#ixge>{Cslau<`KAK#CVA zd&uz1bA8K~&T55fS|T^_k(p0yZ{Mqg5DHjsy8Y_1A6j;rSm}AmQ&MzGy_oAIuFKGq z%y&Uf750Q@`(pKlc-RFw#tJyD0l6!3z7qXwgGDprvl_%hRIlG64iWQeML2G>X++aEVA{spfJSh||N%1CsZt*(q@MpFKo zM>wY&@zx1HV?LX;Iv<N*)uj9f!;t2<|3J=Qv-%-fFQRAoL0= z>aEtn1-%Ku6ugWvBN>huFja*S1w5{GJ$t^RzJaho(boa-#UCH9DJTyhfl1GJo0#2M zNFWFg^d93sEK<<_AF7*$6_DG=wetb-*_mLH8h#-2A*6q+4?)Q;Kmee?`z`^^3%}J$ z`|e@cwS%z8UBS=AGg1C*jvK`P?&=}dS7dbBr_y+IM%lYAz6csX`$44?=8RE@nUEF=-I z#7L)2t##+UD=^Jb|7VM$^UwE*iqSUqDFCo+d3|ys4B_^m<}ED~2qE`BJTDa+fsn}Z zV&gT#Z!+iIYp&#em@<(%=+B}@%(FvH6$pEAc0R|b-jy86xHODobct{-(4dcAZ`vMx zH0hCaKgxrI=D=`fJ!W)rm$!$|^5D-=xmd?vPT69w^(7A<><$&yZVvQ%NJf8PSZHcU zLG63{l1x*x+X*~aJWGr|C$K~EN0`5MzIi|Y!@gnTFxC+{rt+m?H3E|!-C8iopr9xGeJ|hZqYIVR7Uvv( zK0M{W+~Amee2Cf?X+9L+%H zb{Lo^ydHN?Rwj3s@29??7Vc2xY<|jac(%mq8Mim&hQ;ooD`h(?!ho<}Zs1JuEsFE} zY<_4h6=eF=X7GUZu`+BCK_$P26+cIs0{8=t&Kir1Ozq1)Bi-J1l!LQ2V*R_xxAZkJ zYgyFD)rkH0Fk8T}q1FBwj@=D-s6dcm2Os;`dQX3On`}xskfp*fzE4yOvBf!CR}F`U zf+wO=g`Uu(!`t>)MeU;u^!SYj($lT3v>W)lh?xbV#9d+!CnPq7)b-v=~ zTnWq~(*m-qwNAwy5e);eZe+|~XvQB+PC4(LPRlfTcpUKBHqj7>JcpZ%Ub&qu=a!e| zo18bgBI49+P=jl3Ci!sF*d~`i@SDXiml}~EO3!waWw3&Ixp}MBcMV%Qm1bHskAdQP z7@txUwJapE_iLynP8=HM0Ob9(73S5Mv3y69j3f$RTzp?VPQ&P$$q3HjI8=0xn=^t- z@2g#I%U;;i$jZn_-ud)5tZs82)nrs)$IMAV-tNNi;~QSTHbeQcWCD455>Mv{C`_{7 z>L7JH7#Dd6_`8op3hH>-XtSq6_H2*UWIavtv!9KX8%Ehef{yf_bocBC4|}>?QO}mK z;!S;MtRRi=iYd(@x4h0S!*?wFkw2*lOAnb$n@BCYZ;HR9|B|;gM=sE}?Mvt9V^lz` zy0ICk9vm^j_zPt*v!*y5?hcN6q~uI$kf06N3ei%G&ERk@QsZfMIB+yH*jpTv!?Bs^ zcEl%Ok|o!@H~LDMt=4~1M(5yaFG|4IXTQ|7x0AKU+v-^&BiS#r_OP|WkY(NG?3d(5Y{cT%&9P%w?#cXd?2cHw5lhdQw=CC{F>PJA*6RuAp&wrvP zv~AQTjZTw=&7Sx8c=IyJ6Q-sE+$>Lbb>C|Y&D)Es&o#uWwidYw>TOC;<0*;Np1`6I zD#)1AMRX}B5Io!M+s+TfOkG3yrRDOAp4t_=|$aLj^6x~{2{)m*wvM^IuHx>WZcgkV}W*x+e7 z*;J>j%a=B$bg`4fpw6YNfl?<}CegV1elI$x3@2irwemJ<;t>2aiOI|K$)JAM+UjLB zTI-yr-Co9INW4{|i!_bqr&U~@yy~+RfThN6y5Fs->@D4*ky?Zm8Eed0O?X)?d#>@C z78@VyP4+9_J4E+_<{xx%E(X4)skyHVGOlqIe-j{&eCE@A_ftxKZT&^*n)_06Z9Wm= zC4;WDe3TzrH3Q6JEDA!aG1mTby+<=}@}sY>2vE&NsWQ>t%E{m)02SBHm&VGubtmPU zY9aleT+=voDBE@u0$_k&QsH)8Z)-&sIU)voK^Q1Q_4xMv3iwd{4qyI&{!g+j(Ot@FEPj9Dno# z{ec|N#k@(k)N%6up-p43H98{W6Uwa}>v-QQ=u|TG7E{{Go*Ei9m-DSG7JNDDzXl)T)b*P|1xtYP@=1Aj~33h*bP1@El#w;HuO)QmE z(r+k9Umts18ln8cp#M}GadBp>&(U;omqA!Mz$n9~-kh^r#p*KzcI)@s+Mv!l+%}$u zS%a-cshIR0*FuUl`CSs?^Rp<QV}Zn_pX`p^{zp`;wp2OAJhtIf-)u+eq<@p6G!**rwz^=kSt<- zbI6fT(tpdS+#M&=B995YIBjYHC z@$==N^d$OnQfG#$G6L*sizU!;8R;=&wH3Tt$;GADH{~!h$`ARbT#+ti&TbuIB5ahJ zzwWu{7hi;dzlWq!-(PvMTZHR&1Rg3P(v`E#aO394k~j1g(p*cvq#22{A~jGxJ=@Y^ z^#u)PoY9G3YJhb24HAE=jn}OzcRMxM8ZL=*e6p$8`j=pjFGrWE=4OMkxXi?)=1c%vN1y;)dIh(B)`&$pIZF@1{ z4o^95RKKF1O-qwXIwlLRPAvCp{wbdq%!D;96pJ+OeDj@=*1pFK#~6DkeB_v#yD`)+W?h{p=k#RJ_HBcUD4`MfpO_QzPO> z9f5C~Uw@Y%R$-k>9Yhmd>HtEge&mUZ+f>^xs#l?WE|=sGfsyJhbCGCRi3X=SzL&q% z*2uNm=5gAC<=_4@+dbV_>20la2q2wr3`}f{rlJ&U~k1 zDnxc==pm|I&b!1TIT&Qs7X>*a`+r6lBO#+1*|A!}6~iff1pH24D+>R@qU-kq2dvdP zjn2ytc9*T+Oh(bWTJ4o#A)>dl{&Hlm5nYI4$w#o#&f^*kts#Z_VWmuGh9Ex2JVR{} zPi*b!^RuN&&c*CYzE3a=MTwto4^{hIMtBm7tkH`#@BAqNIa^e1r<4n21@GbkA4(BQ^WP@XXwX@b7* zy|acwR4v1v2j`51{o3v~@ULwh8#!|4oB6f!XcGbE3v};(b&5p({^#^`Fv-j%n^9wH zJLPAyk6~_@!X3BXS@kRXt)r+nEW#3r3DFE9$*g{U;6snO0qw<%ha07*>b}nDiwiPg z-CiyI04cep`@$5{pmTRx)TYArGQCYOFr0Hq5y2nsV^}|AN$_}cDzEKNli2E+Akc#S z^d(V99%;jC)eVNx+l(y_*n~%2y&NwWccm@yIF5&wQKO7OU#L;X_S?Wy^NAaGV3_q4EeM2${ybOdK6Xup*cP* zW;?09zW6;d%z};9AbGq>jAyWjj~s00BB}LypDZd_9lp z{4y0dP7yQuvWKH=@do2R*XmzfwRV{GXr$JgF+s0!S-O2Ucw6RZDzZGq_nMu%uUNNZ z08gN@Hoag_NLAU`eCplg204m`-pa>rvXu%4zo52wT#wUSyrvMHacwFuaq%K7SJ2O4 zFbFh<3luOUBBhq0iDj2ooGK8?&8mNTw!m;>pJPNsBX;~Ei&Ln`CP2^YK(>x?x{L*1t*@txI5EAXv7J>$S5ye*X={2v#RJwt1D-_Hm2DB9GD<73iG^EJ!UlQ5 zs-4sZbbHa-{bKGUyxJr_kLwXlLnz5a@jSLxh+wJr7ITaM+`WcQ%_=G>lF3qFOjeHo zhHY_FbUa1L68_PRz2c;1*PKs`0ams|oXuQ}wXCPy+p^@&-k>=quZ;lz{9RN%34Q#( z2bY7u-c*D<<2JWq(F&j^Lz+0^%b(uH-eP`^?$6C>N#2F4n4@hSQIubWRg$M!eYKsi%WY$;5j}^mb=zz?GpQ66njhfV)ZCt3 zYom=D&cJFUz{gUfC705{UB=EiIWy`KxPd79E1k|KfkH?+-bCO+R#NX@AjK14>Pm;5 zvv3cz8&1Bj**1wODU)O_Yh5#Q=D?SuL=Fv2Cs_F%y4>WfOy&=P`jqyp*}l^3dcPn4 zh1)ct;dAxQ?wVGpH67V@O7r^7{0Spa^Eao1ntO2Nf$i@DDh&Y}9=1V*y5bRS>!f|f z0ei{bGmmdA$7;s|61G@K9QSi`gTHC%6+RUP5WH zV8Oiv5?Wk}6pE9abe}V4W`BFntRL^J_56Hi{kZ13pL>sp&?8rLv9Yl|yt2K*oIyc~ z$MqvH%VpBCTja~osEv*a>b&tY@%iiVXNoTdvRxnV2o`Dxd(&g1YZS{he}q3IkORI} zK@R3^yTBG4+2`YWhiZqol}Ix{n1@aYnZpj^9NadeL|OKJbeU?td@}9PNXdGT<@B6^ zxR1BffO@^Jxi`_7B-0+kgKM1qatdvQp|;Ld%evSViPREzM!5YpkxO@87m7Eyv7oPt zfsT)o?MQ-5p6t~pmyCjb*g9)^wNL!`!aFA}6PfUQ-?aTmysWK7)!?ilm#}j4STN5( zx6$b|B#B$39+gEL@$P-3)EE!N?EJV36qnC8tCQ}>R9VdQg6jxm+b0d|pKJNkBs)v5 zpT=&Wz3)Q~p884Hml;&h_ta!)XJlljPIEcjMMx+Z?05pT&;(rS`KW&%h?F!3Okdi2#k|b5kjJw2DmVe^>Ka)dCAi?`4Xr$t56Wr3Kzt*ZsI{`&w_z zUOxZsBrhYXF524&Ub44z4(|3*r^J;P_9N1Fp~f>1t@r)K`#TDHM`n1w7bc8L?Dj?} zC-CNpbfudS)UgLF!)8Obd^3iWgjEKwy$1a86hJO@sF{&0OmR4_U(&ogwO*Ylp)9RT zK9?>lvz@CAiNPh(c3t(~+*-Eps}}=QUO#l)-4pZj_%KlKOKS%EFqn0sM*HbYbT(_! z)758<`MbqBZJi6p`p}6G6M@{*rGSWZ`v6OY4LPaI8JCp&R)U4AO7XtdE?1zm-{o;K zy{?4w_{|Go$Ard%J@5j*|H{sB>?)%D=o*=eHz@L9)9!_BTiV?ul>?rWK%Lv7*WvZ| zG3wj{>pW+gSXSTPma|{uoS6KghNXl`7w56}{L7tRG(ki;KBjmqYMZu0J9?1l+sdt~ zw5+qv=zs!%Q6F7Ql7b0*ceEQts8#QghFqcvT@roz33$3QN2B_fG^ym$%AB^$WVyW# zOjnChbMm(w92&m8)%t@ayYXy9nmjld+<6h!V8fCe^fM;PR6ooV^_)+_>f%r_cXX&V zo``qGS};akbY;9jAnI2QT{K(b{cVDeVd2=Q)eYWwj?M)s6XSW4^>=+X$hS?rTaeUX zV2wp)Qd*&4txSq8?H6m*gQgISsY3?RZUvS<^|=?@sNgJdJKX(~EC$mBZCJa*>@VvG zB}TYko)F=z;RQWm(JgxJ6M3Y9mF&|WuE4Mm_RS1lP)|{o;2WYC1QO>X3*i<`7$+k* z@}EijkGJ-K)aW?lM$uSb6{i|#O~xtDsSd!NvCeUtPXAjQtgrczF>NMLuovr-7e)xU zU20g<8QcMtFue*5Sgc3Hf$fySIW|Yn4LQ88;YPE_Y>WaDQC^F^lP#_{4cET=9n?S9G6G^G;%pZcP{e-U{)Tt8ht zv{H2bh|4g<+XSLQ!9LI_zVcT`94e(-x{zco2gIps(jRx?$7>=Rg_qBi<=FqHM zD#zCr>qCL`cPkFZiY#IhIUwjzjio7NB{Rd3we8q|;F#~Ma!yy6KHslx3_0pxdq z%W91J>d7&Degw;Y;XE5nXNm+f{4xICf6VV#zk|Qe#%zRsh57`e4k7RcCUH)7;c4r=f)V{2hWP*Vo~E z8E_1tQa{Ey{4F>4cnGw18s-tnE~_UeJu`{#&-KG2l?`GszP}-H==mYjS2=c|yjj1f z>7GWeJF%Kh_-ee`iPjM?S&Bv$*>rr|`Y|_K7^ZLg`fV#yNT9^t?VKSdzU8oB)Cn>9 zx+2t-xXc-GIldg=uL;0y%{r20kj&mnBL}|(9qAL$NMOo(uF>9 z!fNV?x6~uHf(cd>woBReD*ca>oUy-GUdz!0=e--v;vf*0sY5d3*7o{uSw|R54LaTpfK?)#$G+vWIEKE)MzJBJKF62nCAQ*I8*@wC%3&-JUSsi@2j48FH3&OXW3 z=6hYDQzKH@pwZ)Kn3;G<6keZ@FJCc3=X|XpMPeNCGnlMN&Td=!9z~UsM0Goua(Sr9 zsXyA>m($@*cDdqikd)(+n<_u*9UA_~U>T^nnTCHNSC~89hP7T^RC!!PiF*zFy$Cji z=e<~fC=BpWJx;2b?t$(P|3xV8BN5-WMOi%76@Y;;F6NSbDAcOk{A|P@E*^`%JbrT; znCCZZR04?+e}E|W3&uA@dZ+RDx70^fD%<&9MU8$FU;ffN%`LW(=kqR5*9GS7>vOo^@ZQL7 zMvdI>BN=BX@i>;`3+FJSjNT0mz@5o1&unJW!Tqcc^rK(DoJ`#`_RB`xpa(X{^F8m2 z9p1v5}yMK#0!LL)$=zE3If0>z1zA7$n;s3|Bg108RN7r5sbaVzCl@Pm4go5O`KV#j& z+W$jshxVER($h5^o?Vb1ep|OAOyDEKvDjN~#s3R#y<48p+OWt-N?IKCeGOPVjcwLE z-$JD}bz*p}-x3$BoLM#yfxFht&hqPZj7umozjnK`=6(L{T*Fz#qUT4qQE`VJ1?}tPC8r3DMcy;lzYoohLPL-bT==V>K0RDBUeVdgpFbjpoHspEq^Iu<$ z=GTtyacJ5tATqS?!mq}K6X=gJ~I0Ln9ZMj$`)zF=kPT7xC} zi|Mqusuvy4PE{hZ1HyDa@(`2%a2Py8G&FOE_fJA+F#YG%ZfZ@p8Maj-*@LvFrw!*A z!LEy7mB6dj+oh)`3WMuT7q*1-K1VjUt}5x)NElpVe?oWH{o_VhY=K~K(5@xI7w<>S z;?2$HuN&145nE`cGu|U7<3=@|R`aJZ7|I*g!{ufY6@)$Gn=BF+B_$8gStLn;ln=m@ zD!^`jnu<+caU%07yemFL+#(T_fYq<%p8=gUy7#rz=_E9jeAMY;r>nC;TkGqS@hXZN zva!LdtUa@zp615W1(F_ACvd2bG+(T3IT;?>#rq#k6g>9^3$=H%Junph%_!5yjXqGL zk>4}#7(#(dQrq}%0h3M>}$>zeN!NkbvHu*s( zuy4yxT)&jt^x=zwcW8Gv^%J+5SGS0U@Y>48=*+F`ELdXcu52H?AY8vz<9|h)GTO4!h)GGvRW^vKRY4@Q=;RU51|mC@2=%|hDXI<2#rQdWtaxtm%t0ISu>v+ zz279d*+EU3ETOPFKEscpcIlVoggOT@B>#Lv$lMIkJejmspif#Kh}43DuN#KC%feMJ{SGMxZDOho1 z6-ePA;d%X%L4z0jlXQLOrr22HcNa$xsamq;qd^yIztEkn-G{|k*7kF`1A}ODc$aN_ zp7oXS;EqWkk*0l|kzNYe(%TOUBK=6Q59$>{*4jo4RK3oN|2qEr9d#NRIeyif^E~T4 z$&jJ>%QKx<6J_&Rh7o}RnX>Kj)A(Ps<z>MYrKO2B<&{;csrICl zYR5=lK@l)tRoky>x(<+Cad6;m3245_WBE=X(N94#ib5<@%Rn-7q$z z6{)EDv&|DcDYQBL+mvd-%(B(76n_TyCzB+^3muJ! zkpGsL+ah>65v>x|+2!lud2-On9nN7z$XV2vOJBPQ)iQN}Th`f8ruA?dCID{8XVwY^5Rqh+aj4R1~l9%rxM!wA>=P>xf>r zZG7$rNZ0tGPHHfSb>EeFyr=rlT14fd{f-{$s?b(8qqLIRlUSkg??)lms%u%F&=!9FmM(sI(&K^H#Gq|{fo&zw5D1lK- z%D6(c3&ZUJDXg~AMDOgTR{XD=<5Q+(=ii-wv|gir+Rq6jgkj9a1&_U_Dp*zMOZNN- zlB`}Z0^SciUPhIy67Bh{WYYUJS53-=$Tj9`!Ss13QehogFS?xDH;zr7ao`&G^9{FT zEsN{xLb-rJ2UUS3dZw`U5ct=X+gZz0P-rHotHP>TEhFad2~eXC53go+fD?%QVOp3uPp}s7LD8w zUcKb2(f1=#Snp9zeYpQ8jaM1bWonY+f}deCFCSKfc{8dIczYcjG>P!(WR6|ml0#it z%xJ&M4f^aN2+!%7$tcL|AhydDx^=Q{@^l2N|P|I6j`+h&N+?l?an)m`0Y7;n%*dsxphEH5JH8XpSx>9z_ndo z-pVv#);o0l+gS@~c9b<0PfWDZIBP1%t(Y4O{m(@HrVf9CD~W1AE58%!Npom@KL(je zQed?3q=p6f-(6hFwFjq7wa@hOmL#W(LonO|vd)v4cv|!-&D!SfK*>Nvl0(MfCgHNj zr916?+u=WT4uoCw(*p%nF_+b|6q9oGi-3&E=HqWBi^fOSG%@98QcUsZRzSQh8PO%> zQ={hu;Da+>(M}eAs_fq+G-~%dsA6qMqY`__2PRHiHjGfs90?&+fpJ^>SpRy_>J5R{ z)9!$@%l+N>nH-e|_{sg%pWidzG*r+x)3|iw zKI4$&E!#{;n_32~c)+);hmc0L%Lh?#64~R#$!}r8J+J{oi&ji)TZ_fk3P%L{)7Gby zT3`1E7ek}8Wl3I8`H}OBpRtBqwA8~5-e0+k_#NZ>ShZkoD}jhgyOAMJr!Tju>1H3d!eQ1@73CKYhI+ zWWl+bB9PUQsM!?#$)o>P ziVqr`QCQYo#!lfT*Rf?bxN6905u0Bvdm1IrOF3!L25kAz$DaBT`0|^iy1SUoVIRn_ zUJXK?yisBvs$zH`)ilcQ)h)jR(4g^<=`ulKZ-7`oNG_|g&8g}lFpvmvWSF0D@knVA zW}%)lCXTMZ^1;R&n-fpr=BVJS5S?aW9%F)M3{T$i$idg*O^PnM zJZQn)54i4KYg$cl#~W|vwkcit{k(j)(_F$?%=wY}5ia37KmFJa9Iol-OKXt}u2(<)xFl+@QWY$d;s~08+TD9i568n_0q7z>7oXk3 z*=p|XBx5K-TklsVgEam{{?W8_`1UdK7TBZU6S{|nADdYJ?VQMYOhk1=8h#H8yS%NI zq&rLSAJP7cSjY7glSfpxxwHM7!6%9@%9T&433JDrecG$wsneEaMMZ5*TC2#+Ge`@Zo^L!_T%1Nq%$~k_J*rn@oqybcSgr zCGBKr8X#?GI!xNkbS9a0@)v39X@)>Q5+IlmY`_gTfD!%z8-tO-wk%tc&)56DSLeL@ zdG33CT(*SfBYk3RaS-Tb-vbMxos&&{8kKR18= zU;4SY|DQkeLqBC^SpIMSKRo|m_jk*`%s^Ib9C3g_=Z zBN#sf#v5;V;}txA;rxa3SML9s@RvE>cKPe|H|NKl|8Bg3`FHM3Fu!5EJMjNBzI3=_ zoL}txzs|qMxNXa8=ZpLYuh$)Jh0X7Oexv+1jK95n2uQ-_=lJ)7To3CL8efCyTeLs^ zYSx>@bvYdRP5K+Yzm?{0;aH0ti<0~I508x&o=AEB^u_(l?ZCIoKlN_ZcVqwC%l%we zdw!SY-{#_9?qmKS_#2czk>kGaKjwVbjr~CXus6Qo{!-50d@NtGem#bT%=Lo8#@K(V zf3)+vpT8$rFM;{lt)H}P>-Aq~^QDx1PVodL#Cq>Ap(%+Vh(7GhF}Q z@+bMucD_gRS6^R`@W#ucrNPhvk7T2M+xLO`ox>X0;5L z^|mfb&gHT$Mf&gKemC88jzej_q2G7&ZNhh54~k{khn2W4BJp73&GMh_?(;Z`%NwkJ zA8sgJ@EX_q(|`N_ze~qI{h#9r!MPLIoJ#xa!gBZ{y~lD_Z`_D{jKMA1{43o52AB8r zUv0#1q|4ra&Us)Mp(uvo7?2QB3#<_s;TvN7KO&_j>q!t3m-VgSgMLmzU@pqdKthc7 z^B;BojrY$!Bnm1lhO}vUzvY@loY-F_xt>}a`3nqPpo04d%!3$fnh;*F9gO445EdY? zMhz?hINm~(Zw+@xY2lAGB$sbjUJG%vnp-ZGHsYK5X9A1Y9?}Gat%aB%?jIO@;uZHB z+!dvjxjv-%&*JMWS(^N{5hL4=#NP(izMA#=-;Hg%CI?^npZzFwQWdo|@> z3KbXN=Lxw>3p9T!iF{PLVh}0O9|uG_#q!ffj?VF*iA%RshNIvbSqD-;A14lwPwV*b z!x2~RV?4?%9c-8}Yeoux`%56*CkOR1{V4%-p$qHH2+MjTN$%)b7O?vi*2R*cjiul@ z|9m2!8v2A97v!@I_6OPwu=}qH%($}V3L&dTcx*EUpoHrb9q6u6CO|T8X}>D_wV^`8 zxJ*FC_Fai0<-V32%!Oc|`Oc-ySsKa@MaH_$?>=qjvEgo)Ww<`)kPJcHm53va(>I1G zb?U^x)OAruP9 z;RMNu@ZkE*%e>eUYRZfl#(Y*GV9Ym+j!^On9DBTv?KnLN^fP9W&A|u%s(Ix0%TgE_(8qx>e&Qc$U7Xm5*Jv?d;UV|~hy%V|11M_P;(QnmWM50md6O2ZVF8$+a${sn zT-Mif73Uo?xFD#(4%@`Eg-eNi(4fu27Yb!WvwTZB=2H7bsz?Vx#UsaW`M+2ZY_uzRT`(wsB22fd2jQjmEc~jn(jgqyJsRAIPqOVG#E8na(Z@tiUJ@R`v|+~U zk?!u2LaeoY+tymYlDw#0p(^F-*_6=m%(Nv+fD%=abfcWx5gt+mJ%-4% zQ+2)`4iLxj3P(F5of(OHQUVFkm z3>EoLgbtPz0WnWs!yN%^p)Yw20~7H;q~y#5!v#_>CfQ&tkX7Q&h7ti2UuT71dr)zq z$P=b(J+g)KLJ+68KNb20{BaGFAO<$bh#MS6TANuBTM#`pb*6Hn;BQIEP8cU+LUD#T zd6Dp#_{O;)qZ7f{{=jy(FEQR| z+nBM9ZsJ-f5P~H!o>)l=s1nvR)rQT7<-u+ykO8GmM?5M57b@&cFd(H78$s!nW10Hd z>f~802{SB-ilGCO<|tcfm>rhFYDd$cTedZQZ5?AOD?>hY(D%FDO_(AxhC}}il%OOA z42mXNL)_}oEl^Nx?SDYD084j+k;%If7h+z?CFTVr2$k3-sp-ABgb1oyHRS>D$VwQ$qP=FoB;i=7T z&Ppp#AI*dG=IUy*!l~LAx@uTVIr|5;7*7q7zdK@F3z2z*bbik6GeDDkrf!<7vgZ5% z0z~gu@U_iK12)p{Fc)RL>+UyEtK3-dT6qO@=g|${)6Xfyu0&(D>+iD`|9uGQKHu+pl9hiq7gX2p@RTXhO6dJKRtp?4^4~C6Q4n-1cuW|(681Z^4 zoI0#hYwYKAoaPeZ$}d#NabE2QaanF8Mk1HcmZ|K3PGQfrhM4ma69Q7R0ngbjVWNUK zl{5sf2_Cg&j(2+rC;E&JsWH=~byTfk*QaIRx-G>tY54)KYiYkh5G2kVE;j@fi`W?A zwjUQlbCPZGD2xai{gNjar6+&=wmRZ{25kQm2XELLGC;A2H6-5@SfC%GLY@Uy!vd%r!kt&=}a@k>CP_Tw>OLC^T~q zn-^_}Fl)s`T#N+>E$b5HZsKG{!*o|)cFPpP(JLP#HETO{lt}+Z?&^3%9il}K3FZ{Z z>qwh}&=r8-Sx9bCIpT4s$7+$A9k3Z9$hn}v9ZUdSnFsBaLa1tU!JKa9=9f&}_4x>x zA_)P|sf=xqT;Wemr%AVF%7xjXP9#LOo#TINO#yT$Y%fdc69@K952o~y0Y=>DlQ(Cr z1HJt|3gY&ua4XAMi?%WxG_2iWm~CL`k~i7`tCh#ZZX&yE_}CX^4mVC zTv_D8)M(9;1CuSYOiq;})%F1ar(j8h?8KC+OP#jooE>7@Rbo@)$cs)(qOw4IO$uG6O6LzbjR>j9G!0fcRdpdeC{>7_4N#O*qXNC^7P zqMsS>9vZ!AdB$QXWrzht=6vV~bJlZqm^F}Sv4bEIkc3OnSE;nk#$-t}1~t@6GkZZ= z`UFo3{!m6|sByrB+r%jK7wHM=7v10&W!2s!NN@wtQr>AMEyzrF$^7!u5D_|onzn&R z1{u;MgnlDbYc!~)VJlfigb9k?AE4M z;abQWHUDIh$`Ir1>Firm9&DZANTeK5a)nJ~=w%L(ujv?`uhQ&Mq~~z;E1e(+ZEyo| zR@LfUQH;oW9RDh#^fFgCe~+E)h(ILBK;zDol&DbnxsV4p`$U5>XmJE9tn$!^q~L9t zjx2GK6HRPflT&c8B&dy;KQLA=B{4x76un&=8A!;U+_UV+vK2~Z zPlSrp8RLi1aH zSMZ2UJbx*^%5WTGl7f))Q^yc)!L|@MNyzyE@xeNks4c8hwMVTHB4}j!74>Wiwv6|L~FD0=IigcP~ zOuON0BGVt!?pE^0E+11mJgn9ug|j@e#F(wW@;i6H)DM0EPIPWEKPY5Kwu&P@FBpCG33f% zNSVsi2~Y=3IV35GaPWmm1itcc8xfVaHw8?hK2j2H>9n9wXkY;_?8oD>3Vh_$0cG2I zqI>kX^#>vwLQNX5_e&z*64b*-PJqRBDgCgM#d*BGscV5ou!_`|Pi2t}pL8~&HX+0U zoXNzN$c2MyAd8aR34ySLiQ`Ff?AnoZ{eewCrh=q^2}kA6dz;bJq6TAZqE8gE$z@O! zqJ>FoCH&E|a3CY8TSmopASJL_n>3p=Y;mKIOFAg-Qey{&Eq!UQcEQY))*}irR|d|; zpa2F5vuyR}HvYu1q{7$QwM{-`Gnn2Vq37%%PfJuGE72K*5XX07_mukTPDW5V*D6Wn zN&Q6EISrg&N0M)1i(-&PxgKExU53`s7rLu-6>uOWf+Nmq-ouy+6Xh7To_9?9OOA{K z5{;o>1~-|VVGtewHrPp}il;6|Y$)&nLq6SBe}!pOCF}=T(Qe;2DLdb!b;2PoQtUi( z)g6k4huh!~(uusEc8kXsO0GsHD;H6D4E5TK*UY{RX3wa#Aoa3CG8u!VIY*kBn=yeb zCp8kt(bO(^K@!N_FvmbOyNs=FpW+ER#WLzO;Rm(_Ed+p3I!f@G$Y_dih>Ui0YgK+y zSxysEqoCHtTHlRnB2KA!^N8}T*&pOAQ_sSjnM3lqHjMW(DPUHZ&(h^k%t!bW4KYiR zuDdSyZA4=0I&VVmP;jAYbq|$`Pa*hv;CMG{CaM4^oBUDGUFkl|S>()o$@dw|2U+Cu zK!=H_aEy|ba)2pio_$m_(RV-_QF*gd86KV64eLxy%3xhzjeTo9$0c({5Ri^ieeV*! ze*z9=_u4A8ev}BBMzf)g3+0E{WEzzKOjj5(Ib`BcBAk59hQS^X;d2z!;b4%Sa&5MoIa z5m5Xgx2UGEJJ86tXSxX_6(&{8!KeUiGXYjz!E#Jgu30TEIRkr^WcD&07Nz^kh&IP} zWOYG+ZOMP38wU&oU*{WxfDWT2Og7E}>uP3RT~XT*Ek++(uSk$RRPY~Kwz*Cus#Ul% z;XsYV910IW6^zm@AwjlntB6Ylk$z!cbrWMgyHwC<49tQ6s_WXfK0fhxs)Zfln48U^ z0W+y?b_h#|BG;{%HVsB@v;_Uoe``eIXMz#kz&1iD0hCk-TPNpG${mI}^kr2uD~jR^ ztWQ)=G(p&fgjaFS=q`ilU>GL0!h0;chq{<5qE@^9102-pF%%ex|?7!o5_imG%Fdeg|Z zv?H$t$D(_V`AY~>=B4gxK@!EkBnfOK~r9g-=03<4qSyb3y9+dKzf{xZ0xs8XU8fruWxaj+7>C6p?eDzc^C_z-E1 zIceWhIO#x)!8x8METI{$##D!$Xgsm<2vLSxVcW7JISGooDcEW%x)3VH2`n6A6FX(- zB@qpn5e)nm^-kCZ`W9zkP)XyCMM;5>R1ug$dPLW?lJ>@WWC)2n#;#SQEjGF!Kl^Ry zG;>;qDCyY@PBemQ3!?7sen>kT&Y<=nBeRD!yU@++kXrgIieV9#Bu4-XTof9sTGC#g zvt_X<;sZS^TabW2<3JLlE#;jo-6qczfKWt5 zL-asWmSc9Jp=eUd>2F$Yl0;ua)cyhrD#O^s-O9@m0>p;0Di$-f7CoCO5(9_OuxWJW z<)jWc_4^Z_aazNp>KQPI6hhR)7IherIoix+;f??}Mc*L?hd@$D$+D!Bm^0%rak4jK zv+(UV=kS-2d=&Retg?H^I&GeXSvZU_3G|`aG!%F%^{57iZ4$H5B8G!1L`!49ppT=I4pDJG9xtc z#M{h4kk0EG!dA^KY+J&UW+(Mzagw-fB$?ZzvGtmdx+PpzNj|2%1XVb175*qJG$MHW z1s-~IO(?UJF$tOtxF)|~-V$3ACc;lVgVN1gRij13|M$au(lB_Pp-r;=Cj^$fjc zo^9|osbrW)00odq4kCgWg1qJ>KWpM-FzxrXr~4OuJ>4wlQdF=zq)Oj>=nMvuQ>riK!9QuBv0X>ziCEDV%k3Y~ix!1S89>dFsvLsC#vlNK6qK*5|BlL% z63<>}Hw1l~)q09jz-#OPu6|1pFfr4VG7Y(rYRQmoC31jz81Ke1LGX8^dHDls9!#XF zd4QO~b+{yvh|?*MNR4n98dr;;i-1<%%6+ao;2ZgLAsL(fd?5gkfsFNma8)V?r8 zJ6Xp0c_!z6DoO_8a8K<;;EdvOFLDeCA*o-i69?n@h*UwPO?pNg0wFp|ny^exqu3kU& zrTv83R)h-aqnxWSW`v>xh}hI7QI9M@ z@0^K1I$qab!nD>DXVczFnu>Ge@vV8{sI=9|fYm0mx6)4oDcQx^n}xeCtZx|Qy`rkM zY_pXczLM8kyIAlOr5LP+7<|lb=MJrH-4o)bxC^c(bYx7H={06-8}et|(FzM)I<#Cm`v2k| z|LdRojo+;(yP$rBd46xBvn=f@O6Cs!8C5u7Zc?Iz@l*@(H<_=?_Bi9%4BR=2;{A=_ zmd|)dz`GF#5-Eey#6T!mS})-SFk9)ti;t!^N2z|Y)ss`Rnb!m7H|kTLIkl8zGU#Nr z2#uYV`?l7bq{qkMot0-+kdhX1i18G3dsj0kc&~q_hyfwZTm&(LHZrmWzNN_qXZ?j? zgD4c?F@;WIE11@6+BVo<66=p@y4#!=%E>G+!LZ3P0bbvc1)E;19}kFkLyLzAiA92F zKqn-3r#e4@tefvPznlA#Mhrs+IdIU?O3Rk#^5?($fxr6A58n*KH-A14KX=}K>wo)Q zZ~EF-z0?Fs;}uO4pTVME5jDgb)XbUN-$^-2a8Z3ut{fK>3d%`jh*}ja=vg3jvk1~R z1R7>4hsAaw%Zt(^OCp>5c^PIF^OB^~jX$o)9j1w2gpjeiDh2*uCsG@_(L|$Fk>}q8 z$UnboF2icH1XGnexZOJuhO1tv9$|q)A)?~sa9E+X8w%2^v+>M4l8`F1spL7^JvoZ` z_K?VLoLQ0{;Lp&mnRO;886-iP+_hLz$}r?pW2hkoNYg4H$^FHeT*-Vn|5&Jr);Kyf zyyi_3hF~a!XP}#3SbUg6qb?pLJp1CiF8!6aJajWc-2C~x{p^6h`RD%BozJ?Y+d<)6 zs!SXq4eMtyA*I{1$OTO(G5OudhD@$Bq>64)xH=e-B0wZ83D2--Iu-AEry?Jky<8U3M9xX30Pf2u}P zGgh}6Mn?FPQ{IL$OiMx4&DoO4dqL5i%Oj>Sg$akCAFInGt;tCdo3FkC0~gH{HcHY>;qKv((I(&ZJ_xdsW8zIGE7TGnAaV2~{73 zL#sLOwppw?Zdq_e3X5ur2v0psDwP613P28iGzf$>>eNueQei5sQHh3#81|Bjo?iLf z$>%=1gMH-#_udQ)H-A3=KW}{Hy>oULmeoJ73@svvmbl{;VBB>`(-`hO7pX< z3Xm$Ndr(UGF^>^iO`Q>4le|BJa}9EMBvQ2>hMo3ZK%rNgP4?XQqfhJOtwD&Q3>J6Z zza&AEC^!I2857Z=z-3Agz_gx2qMJF)ASO?6FgTLcDcw*qB1KsZ(ax@Iq!IW&F)Xl^ z4eA)3d4LcBoIO`ESkBrig2+0)0RKT~u#IXa=`WLNWZz6FgU8NB#hy0IU6U|suAMQ< zTmqe%GLYsI%7UXcV2o)wXtX*81Kt)GII=#zF(qI=oAIB(;WFX!``H>6FqbyOKmYUD z*~#_GPnqFG&%5LHTW`4;6>k1~{(tU!!JT=emP|+-t++V%&EYzRg>rDQvQE-yq?am7 zyxZBZiV&5Q9)>Gjv0*k!Sm&ioary}Rz%-ZJ>N@A9UNYNZC_0xDm5O3QIht2Rp<_Ux zNd{_=m~er#7{8ScCUo%)+qQPi^U4=z`T`-E1)rcOSK#abDY60I9AJhkiaAscJ&YzA zRyDVP_4*qWxm0WgH>#a=hOp~|5u>+g9KA9m*ItnVK+Qs~^9-p|6Chs4D_nhOq&5xV ziTjSityePQEe-+P?+bb}yuHaCeUrYUl!Q*xa@}iQe0n1c-}toKFa3XRTIr1Z!0&$Y zum`i*m%jM<7ccB?hRi>vpGy}n03sV5>PCS?oOoTJviqlM;Cb|T9q9=ZNeIMSaZc%0 z8K>ZB;0I5MaZGLeF+Q5u&2IK5NWuHMj4p;^^>Op^0_NtCV!yBOX@b42MTLkZ`#_r9 zNaW_CDlsJ;$I$wXFV1@Z>E^Lw=%lWZ@;gQTwF!o_7q@53Q1T$^`Xw(0z%(WRimB%_ zFxlTuiNzFC$>Lv#y1$jyM(weTzye36W=H#u2zIZp-L2Sp5p`d=^$dCg9OS8pNHb*7 zNV4W>sCo)=2qjE(%Ccbws;74OHM0&;APk2krTj9s9CA#Ac?q`oJQ;Eh-Bi!;$&q%hy-V9x0Tv4pPw4;6{EWvr4UQ z-9@5~2}>LX2_HhJdHM5?dj54iz3Fel-}v@#{I)l~R$rHQm6?FEU}rJ?&U$NvaX#xY zKc(c5#fd^!m?7G`I@)W|ac0|6wi{t=m0@Zcq?*RX)Ne}XJgd$!_aVw*va9(=#CMnT zhJvVFT%LV#m3!HA6IXE4k3J_ViaE46-G!N6xdEs>T0Guv-nnJ)h>*(+@WnGtl+j35 zN=vm`Xt+Dk_s1NV^L{$}OJ7a?u>s;nQo)E{{$$2fMR9!#Bv3TIdvwW|tsAN;Hv{^y zG%O6nN#~nx=D7tLdU2sD!C@NhoS8P4cx7?bgCjm~>)L-^yLP?C-cT&iN5$to~* z)DiIKv`vfBJ%ad96j;yGN9nuysQC%pJsk$vxW`fLu z4c^(%5LV;DJs_J_lPevl!nzMdJ)BOJ(nDo{1`U&4qy;A_CBVSs;>Hk-AiURoX+?oK zvpV=7hD#~#T(I2;A6tlX?N1{-+xgVQ&4gN%NIbGNtK;190xVC~j!MJb{Uzto8t)~W z?>#9z(88Jsb@|2S1{TFhh%Jle@r4RGDmM}_OqVy%>f}*`CMK*^o1$D(BC1tAzm-4) zLZHLuWT=9J%%+J>z+j|fn9tbByb>bvRa8adusvgnhAf!Q_+YhIT&k^*0WcnbQeFMH zDt944Q3z~;w(%bCV167j@h?6^5U5HeorkGLh)uv!#7?k>PUvpEU-Wmhz%sjw7YFWA zl7<pioE2)gL4FA(-iT8cy=Pn}QuH*NWkA+z^)Vn7KdF z7%E;M3s{UE7O9jv!eMu7yw!T$iwApy%}$8cqSBwI<0BL&paY4mz9-U z-?&HrQvoj84ya(lfF)wx#DbYoRJ;D~E>?UdNoH9Cxgzv9bsnwpZ4+9|Zskyur%+li zb;Q0K+|3);!YtZeYXw9dOpa)@c}bCgupv?Ok(6arDZ%6^UrKOrpzrj0>I!ewzFuVv z9kvZsQEYw9bMXy#qG#=FP#STkp8*_UB#JO}G(F_R6RcKJt^D1JF(# z3rfkjt<*A;F`!Ug_>*Pu3TRAC2x~hE7RCxkI#9MD1JMf<7F^tuSjORBJBH^8Ai^$X7qiahIc=}#0yscr-}a>lG%0Z>c3HsqrDioxxcNv!aF8g5KIXjbhw%HMQsP2 zOL4lZ5+HG!sClYB;?Ev`ht{~Em!+*^fVG591~Ow~8H`)0*g8r>Bw4nM$`8L$;efGp zBa6EhRx`T;HL-H37ACLoMxZ5zFzMDH!LKX;CL$1u68uFcm4~|wNn~e5Yc@`!JpSpY zX=}GAm;%r1r*dOu+r4I%WMI72CZ>H`#gMGugf#w(s;#wc*9OWP)RQ4lT=?($OMWJu{vDFTc<=WZ3KKV8S)iaqcIHNSmbbazaUddr0oYBNKA9jaoR*9NfFn^k#|$% zcC!|9?7hM=9&I16jdC{-lkVp0X8@{LH^en-1VhvBg>0O z0*urCNR+&MA24%UcnJgM#|CV5Nr37>hdLBf?q%jirs5&BnIpXj3}QJodvg0X#b3%h zvhX!$1r%Is$##})2>LXz8p0NpSq+f9aaFdD;PWe#Ft%Lwst;dpJPbi%Nm&83CSUGR z`hs1qZy*{P7fCD_E5HynrkIlY%HPZ=TN?k&e&$F<)T?k)>^loCXXv9rGBdJ>qqL?4 zD+{EYn%T=H|0}laxY11mLssTBH)bNe(tRIPp4!eIb4=n4(egopL+o%ZA7IR zpG#~G5`d_sAju$Ab}JhuGu;q0HH>hyL_<_g8IveU;CSoh$XQy^w(-v5?4@G+Q8`Ar z18A{mEY6@P(sZncNeO|ui>A(^MXGVfZ zfUAdxEI^Qzik$KcXl4zUcCv$M^65mdYvH**GyPPgBbc&AM8&|fmqI4PsNoOKzV-SE zLi#{ZcQUuPmIUMLPnUfg;~|zQ17pM^*^93-Vu)L<>j--)geJzu;)y}^vlA&sdC}3l>dO}{6eI@L~syUPwf0Tipd(H1~)Dh8sDRD>uJwA$3+2yFY1EL)PQppfQqownbryucx zR9;dgGKI%L)ak{Ihvl^S6TfjjPSKp3ttbG;t`K?MfQolDmx5VT|6q`)NQajzZ033# zN}ELcP|&s*z@kNfyl&HutKBbnA+fR!C<#r4gO}7Tfr8$fS*5kLfO0?XjzAbf$(7S2 z_~=Ym3=S-lib;rBGnduWR7O40u>wE+!_JEds0bWnyCwr^Aw2|YrZ$lkmZ7-(_>l@z z)dZc0qR>(FwH+pm6)+h#egBM>#t6+ii6v7))Kd?f`lX>sG|ot(Gwikq&}~rXs3tju zeQ-=sm?2Fur)Qb?h9p4V1$%7Vqfo!$(0N&kHF%~D=)mi#tqVuIC;?wd1okN;D*2Jp zfn)vn6?BBt#B+wObLy;ig#|K#v)3>ItS1$+}U>@9g?inR;9r3MYq^mRmhQipe9)ifCtNJk;g%$Xm|wTM#|K zR(rl|YMC+EB2^lbT-lx4EZETcFQU%DW%+GGl=#k4pU%(}h3aI*hN z|LegGT|cbFKO%uGrZy@49RhTkT!F5Ck>$)NDHn*dq&9xgvhYtA<3jB072yE z7Du0KnfJy@adQ~xVqltCYnk#}My*hBET!S4=Np;OyP^%_)|h43XL^y=~C$Ofc9&xYd5yeu6ZMY zl){vV3`%ztDY=7Wipnmg9QtaAExD3^I(_(err%=efDH$bqnOR^h$PAof75sKmS))KM0tIve1i z_|9&0omI=W0Z!12hm6{p)iiWv`GYwVq&)*X#NqkssGKFg^d8B!fxfp1J77~LA*s-{ z4YK*U-|18;m?C!V8`RX>nJcGqQi=&TGwfzcepuk0w5ZXPXy@2S)Vj)m$y?AhD(V^y zz9G5aQu`PXId1$mkYx_cv{7PBWrYJoZk)2ZJrY9R*$IrX^h@%axMwCxBgCexxiL=E zDnm5&U2~hELY^3ktAyY)HX7;2o{?RN#@4wR`W%4gozTtGDH{gS@kP1Kh%#$L zNa_q*(~YXQ+_XiYNS5XJz25uL7t3P?ti3s(dr(J-LGJ`(rGhFJ4T;<~lY4s=7jE+f zN?y;EPaSkcpUDprmXZSTqQ}f(iki58a||h0sw^Vi+AXJwf50}zxys@~B7Br!r4@8w z!L$BA1>_nKIj)rPplt4UP&KFf{0-*=Q>q0Uh^F~zJd$~n)1V4(T5A4=BAS_A5n9EO z9UFSN`L6G3q0KUC5Tr!nKSc3>5Rq9(HCDuHf!dLSnNV=@re0=Q-J=iIn4TALBx0o< zApsnd;nY!;0lByU4dQsk@Vye>?1dYHL zU7jSgG2j)J8qzsX5U69aKYG~%F)e~v`DL@RJX|jLKY%Ka1Eo6GZ{v~V;Z=C12_n@Y zGd@?AEk!`26-MdmwHI^C`3>B6agYm@m<>Z^l{k_t`vi#R3ZMX%27{9k)DoG0x(up4 zc0OE8!QXa3kRrsOT6rMt!qGJ#rYw9|W4oF{&r&gPQqU+IMXxu20E$E>%AzaEDOnQ- zsr=e#1M9A;Yz_yOUsZ1LZosHH?sosIs4di#|Fg+l0@&A69N-0CHj>yTwa38@re ztvAcm3_|som7vm-1?uo|N~M_aVZ@Zpjz9^lIUTJIsAl@FRb>h*LKx}!qT<>>Ru!98 zk<`A;!4=XAcS|a_38*c8(W=!#!8BndnZvS(BP?dHi5!KT84?X;KtYH>);rE2L4%j^ zymCHnR;O(cks3%2BV_mPaBHJc>aBgnq)CO+qbtmXM$&I(jIy}vJ8OO)OI9AWwql&Q zP9m?%cEe3U)f+K+i1IWD>rFJNQo502vm0!nAbP5;b7w_Z3)Z@Z4GQu3%%w{Az0e(~2ryX;5p~gy zdWdLMQxKK;{j9jtdJ-@xlFUITLf6@CXm)D|7-(CJ4U$V`E}d>Wk89FGtG(8waruYJ347?7;5dDcs+8)7K*NPISrj73^e-%y)VO6RgeP@-SaM+8Y`-Kp zl~etf$N)6L6*9Cp4{O9jUIKZaf=N zjnlzE@GdrMYT*j@>DaD_DPKZA^K)CK-ls&}=9Q*COIBP8ya7f4$Ei<+2Em)bF ztLrXTYW|`*LS_xQM+QNF^PMZ8NR6Vh}Hj> z8@=~(sKL#xqqI*=pxG(RSklB(S#~gki)T1YivI?g*4!Cp9Taqhu(ZOT+t*jaMb3@% zoLSld;+m2j^~VaS-SA68IXW4{tO18lGEiu0%4By_jZ4&&K|~qe!yY+OmX-7DOSioE zd0&7G7~lA>Pd<71@u#jTWA=73BFXnW@Z!6^^oyR`UH>~C{hg<;UiWAb;`ecRZN3pZ z;E{*!-|hVQKk3zvKY96`AN;*~;S_C~xe9zO6+3!2{_p$_TfXi zH`vr|cz75YDB^!C9g_9u)i1sKzxs1uBj5cWzT>?=@~-#i&Pq6w;(;2euz&umzwAGH z)2q8n|B-jSe+|P;W1^%zLr#^jhrjp*f9;ze?%w>`$?3QJ@Q*L=Pggs$JkW$Wy(DQvuwSDzx8cz_>wOYAN};z z>u>&nw=b~;6AXzk^}br*wqgC1>nF`w=7$|?g37eG{M<^?Umkwj^ng%cS7B7Ejm#YC z)*O^@n4e)QX?GNK4u4$^hdutax}^A9$;ho-+sNxC80x(x~enKE*KIX)L8CU@Wd8M@TPM9_xW6!G4XN)74+u3ZSFZRTB+=ObqCSntgy5- zj5f>`#j0n{XjB$SHUup|{7kJ?0TAYK%uMKQ#?^xz52{HMtf;6DGA)v`M>xm?sgLVu zKpf1QpM(9_Lt)p4nV>?4&5c-AV_s~!Iw=Bx9HGvRSFFB{nCMfc-OyHby&Ssw& zjROpT(si)jd|-3v8&TL5DIV{WsY`R~Kh3Bicp2Y39Ud&v=$rhh0hLH}bM0wP> z7LICCjBlE?(h&^-3X5-ivy+pvt#{Xcpv-c!*;7A%J$Tg|Fw^K6<19*x2jR@}AC-IX z5g(&)>Q~l3h#lgXMIcaBy)-1UeUEVc9Ys12+ZSHj;`uwI};)*%^zBq&gV(CN}y0|YqYl6a&9PD z^I?pP3fCvkWpPdMhAd}UmumQy;|S!XvZV66xv(sy5XD3^v%0VaN zxUQ*s;8mM2Qq0qn`|rB_`@ZEXcg>~0@Ap3a13&uiwQEJ>U-J3W@&N)4(@)l6oUN92Q zHeCplHVE>YdnA-Hj^6mMGpmHXBS~D71OxNUQw(`^(9TY;Uj6Lj`x|oo={t`Dzhg6< zW+pssPA)%v*Dd@z-~Oj>y?8;sN#(n9#!Q=d6Iy}smzr>9%^L~gb*tx~IO z9m~d9enVfs@zG0?#Iw`wia1mxL(ZNo^4;+8q#cv-dEv}sDTJVjoke$J@&w27EXmIA}DJm%)YT6CPiEa0wCGeR?IPsq2>lMi)y7u*7KBacHe}ynVQngp`v0zy-z3?fYe!aq`OF)K;SUC_uR>bxajeE_L$(TWzjF1 zDZMeFO;yY_f%tYbA#&n~yV6uSPH|AmEUv;Hb@=ccI)|QcQfXbDcTC!OnEJUuMeL#) zbG7_7T2^iX`;uWU2zVI1k%uj!dRB8%ca_04+zt@HQ1!utLmrNFkc}CF%WD^x4yE*T zc!uSc3%m9L)Zd?8yL#c|@(=w7Z@c@>XUkuD`s&H|{*#}3{OK#gSZ2ux8Rh(kr~8fn zJG**$fAx<%{J=5y<*g6h@6;AjmBuLmkLhimm9@*asJOyW{X-pOvTH43qUq zwQx2lU-nJePEb3~w$j)3OuV=RM+E)B3_*_!!}(5_X4^SMfttNdURu-RrZIWkxjYHM$`nNCXi`!E{d+~n1u*}WweI=Q~nk; znL*+(;SeG?9A*|3--$(|5xIf=KmJjcj%U33i#JHrmuML$P0bJowq-9|J}*>4^c}6wfSX2H5_(iqc$psL73#jIj|s` zgnQ@(2iyu{2Ig9Rj{FTNz_yAD;>dnSLd&=sLlm*B4j4SJl9c%RbgC*!wHBR6gli(o zhaKW4)q>M~kM!yZ|Wyr{A+t4bE+rM*W+=6&wnZ?Z0?R-XZsYLPkS?+|Fh<_bJ@7 zleDF?zOF9#IjulEg-j&Mlg$PQFbqJYT}F~5YOl@R1lF74L#Fm6%TzB>0wBuyp~zy! zv#^R+#Vt97iNQKV#?9av6$Iggr6rY2A?n8*#1lu*@~AZO>Qj$@)5Bl(@4e~u-TVCG zpMU?4{ql!nbnVRUH9&fL?ehLlZ~GGhn*Pnl9zRo1>?5zaU!*@-RFg2a9 zB_L@`{Tm2KYJb)A6s`C+EcIt;UX~dH)JN-+2vX;o9B_8LBdonEACaAk5jK3ogMKlT zXzk>~bCy-9X#_uKyWR4Gg0O*h{|oko@{rj!aPd<$JmN!E`L1yao70`#ua0X^f9CaH z{6&BLTfe@0mv?>evH$5`{koesnPXiJ-#{Tox|?=(dUpMqnf-~E-}9p9-BCZ{U%cl7 zzxI)j*S~+`gZJEi>n$3MOggW*D;gY9j)e*ehc#;OL+%a@Vv?o?KQ=#IP);0ssVqsb zPAG2os8J7rvXjTeSxsg+jVE$o3KBxLHElo?qY*Em&cG;ErUg+!0MQja%k9H?Z*;X~ zSF#pNHp_9>p0mPTS=!uOhLo9b!r@0FTwT*;$v}ka85(t>!qt&jbwny^z=nfl(wzjG zi)|OO1g(Az<;_W}Y<$`fc}q=L)I0{Mr=hfQ(hbg0jZ`H$v%`Q-Z8|81!bqT|sd8c! zaVk1txlFmka6dxVsY1extJyWS^z2tPH8bV=zjnwsSSyrpC93CyN64TXCur0xaCEua zQ*Ru70;%Qi-NkVfT)l`fFeEzbSG@kYr(SgDZ9niGZ@G9uw^85s*r)&2kG}hqBb(y- zpcg?$Bu$@y>M#Fwa&;+)A9?r{I@mw@k#{}%+x72ny|{bh1NUUVl13CPc0Gt~PZL!R z#S)?*DNy~V7(9i#_0jGO(q$saul*sK5g|p)jYLU50(~pMYN_5UKUetzR0r1Rae(4l z?-(!0_8sxg!b9BQTuAdwn>s|PH6|X(+BM2=lZ87s`$&wFG1Q_Z#rQ<8561bl;tEu? zziG-@xOj*8$59GW&M%U2c2xFEt%<4WL`x1qK`=0J#gj4QP$R^V4efdTTE}c%aDr_LbwYSyb(=s352THGi%^_>M=s=5@WT2#hC1weaKim*RNi_ zWY>TAFMsoMpM9Hr@h6|U@_qm7FI+!4Eyd@25bNQK(xAc6aXCGY#JAmY@l6lCtbWSx zKk?Lu9{bcgf8!(a8s7TQeIER&{K?QNLlzi3(m615`WNs7Wyi{$jVea#gw=Vt7M70j zLi84dU?3gVowh1&loGWZiq%`6w=U+7aqHV7NDdqNau7# zN&O)jU<7bfpI5G)S?5Qkdakb5`^Ol4N~=Oi%1Eqg!nZj;YRJtPU`Uk(IPTqAN-&l< zw|3(~MW>U!29YjiHse{sv2&4*J)ERs${+ybZXeQn#qcRq5@7d}V+ z;_zq=QV?nt7nBV(tq~QP5N~~>A3P7vsD@iOmM{lhCI>z$U=)q-ZV;>w zVrQZ@8lZH<)21LUH`yF1q{4S5BhN9*ovYO@4B-N&u^?~oKBsy)bG}jScG0@$$MCWM^?d>8L6X{XNg48HIjT|2`Yn8y*Jrr^e5W&|r%vMG zz))j(mdrD*!IvM1^iMpKCk}6iWkoV?VlmZdavj(#_Auy75pZCbGYQQU)h~$M=qpR< z8dtd%bU}d=KUCDXAyGS)5o3AiMlfL8ju9$yu{cmfWh&-l6ya+`SII2;L==V>yhK9U z0EeX_J%^!kpk(u4T)bQ~la zh-lvip#w>6#nBDCeZdQMLV2y`=QD`A<-zid*PeX*+rRFiKl@d$?0)qhyyMs2HD;Dr zrkN2RJ7ju)uI6E9r`NBV*^BPFLyi%jk-zl8kL_Rlj$i#vc`CsEb{|HN3sPXJzvm1kl@y%mKx$vmdrZkK^LLW;~JrP{DK8p z6vrC{Rmh51-;$>kg<_)|>5m3rK*z)ggA`eCNnmH}iub+)Ewx1HvDwHr*293x!yDG2 zM9WGIJ^kF~4|?EaCL`{dw>0HjTt_~g77dXUsDs8a_7Vk+W7;k}rsZPWdoUjK1XM8Y`3(_q! zu}^&V>H3-%KId5v-FtV2JRE5jh|*-01A`;#Vv{ZqY3ETZA!X;5z>~t^MzK4K;o}&H z2zc&elF#yk$UQ2 z_C8uya2`iN1-%63#POJ?jmL-w5|<%e1=4?37M4^c z3mwWa%!eLKXGEFDbKS}9#>r18CPa~5v3h-%)T5I80u^7q3OS=lMP^Q3LQnwt~Y35e)Z`m?|=Rs-~SzN?vyb9uiyHEzyFiJ zQad$s*p_K*NeQd0U+MJf<^7F+haSD^CKn!n7>O&-o#hG-= z&X$0=ON1i2l_g+Nl5K3=w|QO3hsnZxttE199*WPYFk0Lh#CE-McBT-Iu7ORP{ZW9& zs7}YiWFKv=U;f-(m+XiC(l=jf3>ZHAiO>GPkG=bJn&MB9mUssV@2dlrl3?G{I6XbN zW@fLx?}d^Vc1HV|_dVvB1V8bf_sa`=a+ct-j=v@U~JF!pbz_>Pl`k>bnmVyp!Z0MhYo{Ln&1mX7^vs;WUg% zAm?O*r>qtGwEf}2sJ6t=8U~WXA4Q8~Fcu@3dZ%hrR?}}{`U;2)DG{4X0Yo&gW9)Hg zEE!Yu8nsLciX`xzeX917(7STtiAwg}>A0~X;E2yJWf9wA0`zl?H?C|KMOLBSg9*E# zxxj;P9<=ICOiC^&Esf*|85l7xyP89F_2y!;Q5LJz&dM8l0B-z=J0}x6ujC(u%b<^`!o2 zOh?%t7pgK_hb%S8K*nA)A_PaFFBsxBaEjOU6IduEZW^C5x0h5VSm_z&5~hwGGMVC7 zI7MrOWmN!nmP<8BhmZFT31o!lAn@Z>=+ZW3i&xn)HU5drfJ#VC5ljpwzkY<66=NCR z7}8XLHE$|Ye^FV~|51vTxy&f2JMHqCpfC+#k1cvLOH?H=vHwB|#qhz>A7l~})#Z@F zBEYqVq7^JH~NW;3vTP)e#yCup?wX za@{Zf9;n0|00A0em;)n1xd;WT>prY^B1CqEU@(7LS3fpvwM7pC;SnMQPbT_0=YWdj zA`@vFo!`#BeP@`NC>{Z#+amkqX86u$*$iB{Th?$XZom8;JNxoM^C4l12~cSUc2UiRg&=R1v9AaK3d2Q88(yW4){NsxCn0Zm+IfTz-R*ZnVyN zV&ph6>cl|k#>AcICWSl~hsP|2CJH2Z$~hflsyVx5JVm5&m`nu(7fgkL3b+7tj4VBZr|Ht0_n}6_GF&u=9pO1dUBqv2*t;O#3fdw z$(^+XNn;K~Hy|N=c3&H?Vk+u{q%dCTPEcB@(Pcl1_7&6F*!VXOC z6LCnfXIP=mkaj@Hc7t*ZF1Ulg&{CL3t_{aGijCyeCqMnx*S+jJzTtJG?{KnDickvU<$*|ry2@A+1V8r_1XyAAg&qY<44;0VBwcm$O%4j z`5+r8NYGMT2?}MNLV@W4RJul8j#^ST3XXagNPk+12n~WKj;KuTq$eo&nwTBGm4f-% zAT?slCE(CZC}Y0U@Wmg5mcUj^$q{`^V`i}rfj=@xN!l~ZQP-x-%hVzF~i-@eRd}v@-H9# z-LW2TxpbQ!R{4qdd{F+%|L@E1HARw!Kk#t8`I64EstwsJEFs*uaq##!^wFLd>hGElEW*iUiZ&Z+ zvFX%V$$G8&mFMqO8VV3z6jrS(qI7(+wLpHS?#eSH)cI^6OE=!w`L@ z9b1g>vroOV3cN5=b}SAmujID~0EfLE#*7`=GIl~hZ&6z!-i)p<%wn3zvfM zb=N9>@mj*GJ-OOdA+el1B^JN(Aqum4p!`O|r~TY!!{xRdPrKav`3@@D$mW zV*ov>SML?0;yg4UTB0k6Tpf{PP0N}^d2m^k>+DusyX5>KP9VKGiYjEdokv z98^)|vGTA{%5bT9#B{fDT0suzXa|?$I@C)F~M;D7i@_&Q?!5? zI)OOG(|(Hc6kCj~3Z^L=4d*(84kgOn-_w&zy#9B;>yggj!OZ^A&;7>vJXO$;a>{K; zYPDWwiZ0@tXhSEwA0}c9!vke5@eWOK|SWoIt~J{PFBu;SzY&OTVc5^ndy2@1*a4@zQOc z9`w_V^5xe(@RD0EUhLcOKtLqHBawWt#@J|!hd8SbG3A-m`3?(jL@Y>bX>|KJxI`Z+ z_A46RX#Z5X`~;l|pCEWeMe!-RKaljkbuU_8&_1nHe7sO9q zx&BKZ`Gb_)T)6c%e-D1LX%#>F(#5ZN`3sZcge*xtmz~D|xG3HRi4j6C4OBH75~Juy zpt@xFSvI2Q)W8lC=#i{;hUm(WWl6_D)S^q)gi&n22Tjf8p#b$w?>$)AWa)8$d78kxzb z03C17y$!lxN6{h;(;pV~y@D6hRtX7-3W+Qf&e6A$1r^DPA*qFE2s?dsRJ0d@lBUhp zgp_*zSJbLASmACb(?vH#WKqtMQPiZ-!2{djP*G7m2%NaAP)Ki15r9q7lk0E;Xu-`S zIO3Y!(i4`=KTT($7Y$vpWavROZjEjgVIQ`3qnDiU(eF*E1kBb!o+V44qxQ zVz65;Ui`*~zEr;UXW##^lhZt;y}NMn9H3rq$H$*|>b)QReGO1QbU!+5fkzXmI=B(O zD~4`Q5Xe4Y6el&0GHF2R6(>FrhNnApAV2Wf*a#CsYx|Ljv4T=(7RoY|#F2Fc(6r48 z^%~mA5Or9DsTKk)0T$hlR{t@Z>3g5p-IZd=?C zTfw@Z{ZnIZYUpB?8E_ddkR3`6c=0&aY9#+4^zPXZ1^x(scChdL=7)opBvi6|+~=R2 zTt7QIf!P}#y!VdVFUi;Z%x`?Gx&y)1vUnia4R7mp_r2ixcif(>$hPdno>59<%9pF_ z5n7sOtmZH{hOt$ufugs+(e6HMHKky;`H!gP#K{$i(UeLXJ{Z-Vcl`{XM1!SZMluvO zr6DIWEvB@mn(pT$KumuL-zEfEzy4;^Yhj4g2F}fXYWdXRXJKROSg$N|Scz&+!P7y9 zvu(2pZ0py!EhD4oLc9L8*dRy9MF5B{g-DOUY3=~wLZ-KZC8J`^7r;QEHCX{Q%?1Q< ze*yG`Fl*EyaQ?2yS|%ztkLp#Be3U__%c3T58W*Z%Ed~>!->~Tn5YTJKaa9^A*oZXy2+bs!xp)CFWO2S8tx7`nK;+|P zPLoA_Ue)T=2X`)M5&ElQZUu>whDy^x`P1xNFwn}Kx__l&;?UZu?*3dK8@1uQObFF* zPO%)YPEZkJ7QS5XPJNM%;=nQ~zzRHM3(}4sl*h?fSzWUP^O+bqQEk*I`?{4Nd`N<@ zs?Lh!nH4p+YG?sk|2z0GMI?GhEz+wC>dJsN)YdGV6n^dAOV|xK;EoNtu>?B*i>@=A z4l1k2JB~;nYLg4cA($3S0NJ_%w?CJ!o%}cd^k<*Ga;Zo{r(eAz4y0UfI6tfO&5>Sh&jfE zVWZ8IZ+dyan7oFF`rtU*%GhOz0f2er2T{8ccn0zz&?y3A6S5Fvuz`3>17(vwI-o#u z$LY_CKlSyU+OT|YuoRW_10FBc`hTnT4GNw*sY@4HWA?Q5_;;gOfU_zpU zy`w7|9A3BFDdO5PvsWR6U_*)$=P4sGwP6V-97wIgF__l=OqI*T>GKnUNnE2Rqpo`9 z6cpJPwY=%2f80x%fq#_fpz?xHIH$}7uwuI41oS8$1hTpb$4qb|M+IRNjl}wD_5TM7 zO=`6Q=wu9#qBL+Oqfr}O_)hEo7KDnL>|Jf(mhSWj*n)bD-OtB9_1W+GdvE_|?|$^} z{rEdKUiR1C_WEaEy2T<*Wg#+QNH;put=I~=ae3FTl4oXk^J`z;xi0?9`#u&PS%g$B z-1aQ5W7tW2-1EFIc;Ll%Rn`2s<DYT~*r{nKCWq>1>P}L9 z7q2Pgp=aiK>Q>_1Y9ZX^ER4EF*-&{*K?uod7JPChd`RN>Wn44sG+DA^Y6azUqDBGC zW);Sq(uOy?D3A}$;!q>sT9?gK6(hQvVkAsL8|Vw{9PDcf0H9d0hI*;%mWjV--!t|x zUQBL?S!W|-8)FsQqB8LSAwh{Xn`b1-_IeHE#y<{Ymc+V7ylDRw{Sd`*!dXLNLYK+? zF9nRB>Az8$+WspY`uW8V{Lc6N$WPsfOL(9ra7={_=|Nr`x%lp^9?crB+*Ym@F;cNd$5cRjb`o8x)_UU<>nNeMzu^u3? zkEOxrMU-=R`V@d&^JLln=Nf^12`*!Z$Y}J1Z*&{ zSDcs?Ll}~=DbPhov6HOIaOHG)?w1j$=tPbw4i)p-4*sk{Q&B2foV#cr((BiAHaeMh z?(R5&guG_7b^$Ng_B+YsQZ(&roD53TR4KSa7$skC5F(RJ`P@2&8!`^DQ_p}KK*r35 zK(h^KODEY>v-oL+37S+LUWm9frhDnZ9v5W89sU+;4tXf9z>-H+g%}9Cq1aZB3@$3c zw!Pg8R8&D$msd{#rBkhg<;oiI;AJ93u)HOG;~v0)`Zdtq0XsN5V+FG@2)kl56O1^f zANfyy{(b-HKlq2pZ@IQPhIX_|K=}$=^I}DqC*Reagcmn3i~l)!vimQ{+GP) zdG^Qr^Ystjb1AXR#wnQbm4j6=(D)If?-8g0`1~r-%qq+hs{+y}-870E;}{!cY%_Ei zn>tN(LhtJr+Y=P?2Mz6f9xh_6lx6Jbfc805%ae@hzvW4dB810`JEdqDDL{w^Aj2Ss zBl}SDcaR#n6*NPkN264;;*6xOP#rc=@KF{;qgC#RRye?|`Vxvmp(QYNdOd)=wCaL`}0<0W)PA zIXJ*9By!dg#N=V;(J>lCb(9!qHCLqs#&&9x$*7~*Xrb0s5{QXLr;tSv?!0d8ZlFQ&@r z^Lb#Env6E(VKAwW0f-wTwooh-xNctv(OU5WrhJG|8#0c4z`7vNXi8A252m%X3%8=S zO|glTBUldBs@1~qY|?cV0+_8WcOw0iUN#fsfNm5%x{z^3y>gSO#sLuTN*=tR$*CkS z1FhBzJWmAP?cQ>e*=p~o*Rx__F~pHx1;e8mxhTZHVr?6CKs0$}G`3vVG~vvhk12(R zg9qVcwRQAs>8Kk&AAS63gI&CI`+hoTyv;9u;CFuX7ar|?>p8dI`aN%c$l|nN$Qzm| z!_#xt^eq>5pPxv4?pS48e(Eq$H~Of3x@AaduVZ-uU{SbEeN^(t9U`8k#f#ktTu)qT){xMK6k63yNN@ zS5effBBFo-B8W=IOHry)1cLM$5+Ic{NJ2t-naT8dexI2+d+(>MJ)`fv{-g7GUvEfe z&YZLN+G{<}_xTooxY3W^24b^>4a4>ld>}*G#pfX%rD$pvX+NpW#Ymx(MpZ5HiF5pj zg!Lo^ooKBH_cr3tWLanj4gmrC7m8`u$WSJHev!@&DYL4`vi?0#8Y1o%GK$hJ0cdoc z?5q+_Iy$_Wf2JISYs+BIWW|t8N)CeOyUUo~$nr*lX!(zAInZFbF7QMLmUI{`uK8o3_V(>dt6><88x)7+LwPR_a^)eXCVbG6nC8Yl5}hnSjYOmfiVlB@Hss5X#_vo zka7wON%e_2X6Ix1KnNyzA}%+l%t2RZbv)^1RJy19GSb}){S-3D*v6U*1`mRAZcP4|c`G;RcXXgi3VV2+P$eEF@wS`~j0>oRH;iQ;0b( zGqN=Nfu`k+Az0fEK=}cvBcm)(H8yfkFYwhUx{{KAE9VdK!;ix@F4XRZe zE<1p9YC>mwOJ6nd4{M0~gvCeiF(ELc8ZRjR@6cZZw!0($kmKWCH7)!ba+xR?uS5kW zIw#h^RcyU}smx|hY&T_m*4n$n=f}FEGpOE(g?zf|Z2i)rHYSCbLE7|3gF|^{B4SmR zV_VcW0w#<8!WgENtr*l4Jrapybl4n9%NjSzk3v_C2Dw!i%bJKl$YS&9=a=m zC6@Drjegh~e5=hdt%s$w0FJ&l)uwy1BFZjw=Gdy+d^l5WVma5bw@2AD0Xat^g2tQ8 z)=M_FMP$(cIRplogposY^0vgS*oZiRo8Ks!-cCi-0XLo4*^PT!ip`|3ggP3zb%(PQdMD&vz?+HllE5u2@5E&S@Z-Su2 zc=pAx0wkpDbi)zgT=?Fig7j!53Ypl%UJ~uR_&y4HW|0vHlItVQxIsTF}tPWJmKc7)6$L5g*}a-$Igq22tM;sAD%T#iO=d_V3B)R6o_x(ol zGz=g-SW+y_^2y{7Wc&~^M{^p8?Qq}ER@ODNwzpAtSNb>CKlbt=yH1)pZn*oC`%D~u z^8UNr_0n?229>T1$)CI0Tl?N+j*R&AwVM{MTK_knw8;lPde$y=)s^<&rwku7ee~eh z*KL(WOh`p-#1NDL3=Ei12aHAuW6Y#xa3D&~WN92h1DX+oO+B&)kA$R(<0i@*^nc4O@#VL?1KDtqijQpPqnr1&8AV2Nv5LYAhYA& zG<`jJNs@XsQ?5v&my#GwXQP{rbtv7fWwpaoz0GB@b({O$pe4KVTORJhQY1dHl>%Vv$OlZZ++z2 zvp*8ciul|Sd(3%b{i;n(Bx`R7AeK7YcJ_VVHWdvg8as(@#g@k1Y3|++Bq97DPG` zj&h7*$ta!6Qe7*gBudAu>}`Ws7!4quS*g7nfMvA2p`Xc7sJ&@q91Z$_}M#KamR z2o}jy)3Sd-oPBIO&H%yj;z*gH9gwD<@rw`PE#|W5Q~Dc7MB;I7nTRT-%Ru0UV<24a%NJL$rIIPB9@2dz8-s%$LukoR4gjX=Dz+k zalHfj5qE>dVTEiA4v#OKd2>so8rj96sBdF@=W{6vFislANj~3L6FjCOo7IxI1w2|` zGhYde^@d*4suVF#-HjCr=Zxny$vLE?OOJtSBHf&Qm{WUTiE^4|tT%p@8_d5OYRp9D zHXxlAOX%499qhuA8P$nx-cJCN1_!dIB1ueyGn9mxM@rFjnIvE)mSj6ZVi!%0Fxan@ ziGm2h2_eON`DBR5*nv$-iIPHSX!h`4d z;m1mo^~=t#pDg_-@p4hgsc9Cl34#nFLfc{SQSaR&6|l&*Z=|Dra)l9Dgdl99mrvx- zN+QaMUr5eT&vY_M`^v#4DF_G^+3KTmR5Ki+;om^gPXAC*TVE)Z_{zTHsn_N#e=GLm z(?>O)dhiTqWhMtzXM0QETRU#w>9H4ie}*uR@Vd+(ziW##oD*GHn}g}P+f8GE~DT)r)li)0PX{Lv1|tLUIrXxC7`xz z^N^GLS}8)-Ay_MnjCn;A@?z%Q6-mew>KH2-S@wFK&TP;P`GAp2aU;uifEp{v*#}#4 zHc^hVC&?G6`u^E)kYMDnHVBqmCiDNa3{{;Dn*BxyFiDQW=z|%Gf@i@Ioa5b3gBFb* zQZ^K;OH8buy@0Z7LsU{3e43I_F?q8OQj>YO!Hwq8Q)Nvg;Zd~H+K9yQxYcpt8cbHt zY!d(CP(*@jRZkgh4+dc(N<5Om;T2FM8epWLNHO>F!W7pM$LQ&JU10Y z+0W!Avm`do0LV*ab{Hruqzn!dA8-OA;@c#&=*8ipXFU?%^k_f_y{rm>%7!6opZvjX zvv;(##a`y)2hW%}dWf*GVoz!>S1S|>ICdZZB<`m0^c!0$>l-WU2UYa^@8I4)H&*rj zp{l;Iq9Oas%DUeFZD_2jYb;e&^CIWLmzU(U#mtoZ@1je4H8Cu2FDEU@*~lozBt+9e z4daV!TWe^Y{Z2qgdxjy)9~1gg+5SOqr$kQ9C!=QC?D+_vMP!MWXT<~|1cGQfTqYU8 zAE}ZE$&zXn@~Uu?xt{Tzqh%DBi$HW5#1B9OnXJlpdZ;s<+{S@C%PwQiM$T+Fc=bCW zYhd6fXq9UlvJrTMNHs^13!(CfNkIB0h&z&5=--Qkl7sBP^~i_55Ii85+zXI*!6>1u zlYX?wDjfN4T>u;JLO6f;(jU?=3y9pHXqa@Wp!MRZgb2jkOb~%u;4w*)OG{q5dFm~j zAl?Q2%0b%DXKk)&UCMh;bj5P~kNc@m02z~euP^VX7o)6rvO^dVSuc(O8u$njS&&M3 z%Ofh5N|kkk_}$&Ot@+Y>qTvt)gmX{Wud-C)fOt9OuCuedvonP7&Rr)Ct*>!^{FT)k zH#N0{6l>39>_iN&p~NCI^>-~+)$mA|2j)Zp>O-cDX{@bACQ3p0`@$o2lu1@Afi#rK z6RqKUfcIY&WKSL_VSK6x!N8_^ zsgiO~01#_cQ+^FB&fuZIq{Xn_LzZ&G^)bs43$>&uGX&;fJhyufjyb0D9`pd3qTQU- z$FXZhYC;dS!<4*dhvZwzoE!G{}q$8q);D(qf9*)EWt z?<0mX4lMq=w+_lQk-WpJsHrPdRB>ZWFHD1w4!PmVwZKYI&Sve;T&LU+nS3~~fUQ#a&|GX4&9oS?V@!Z4P6+;>3v)|M|RXNph~?3mRa z$WfdmY3i;syL4Aibo|VJpE%wtt5GqP5ln&|4J7CB*n4|@|^zjhSiNsc?4?gG_b*^T}>zyD(eQd@7S9D&5oU| z7yRL|OFnZ#?Df8W+&*XB@Ymje#hw@F>S!bC3LzZ3_q0;6;Qq)9E7$MnO@fkX8fICO z_+06|DOS~Vv^1w5<&k+yzx2LCT*>nEQH{Hd9K3A(HmLzZDmRLKjcllS_!}pO|F^G4 z7p(fx-7l1XZ@(#w-kRf-W}fy3U66UJ1^vA?Wl)|N+sMX1>T>wwNwO#>%?(QUC#lgR zX$?(C1NMR!lc;xvxWbt@p^=2*DUi@6kw?{lJYgti{USN-6p-^slk_+sar!3Un)M|ho1MtstxHSq#KOAXc&Ou3R zhazWR^P&X2vwh=!W8-n~cqTAgj>bj2KK`msf; zox78>5rK6P6bhwMp;Su$ZF5u03$L&4uPxT?b_joKMfCsjg-oG{zX2jgHq?g&?(l#rMM!TVq%Qbb>8!dWoqZgm0HXpvgu4+`%z98z`xW+uVnMgX@Ns zP4XDdf0i6?e-P&RsA6 zS3z`=`dyGx^Sic5E}I+B7Vj|_G*HA#E83?RCjy@Fll2P<5`&gZXfG%pwJ(#&w<zL;JWCQY)O2T88u$SW{b|62y_NNYP$=?O`_=u=t=hOP_JYUmG2xxl z$M$YD-CgaiA%w{zhwL_fg!|2{9bL~YUoUjGm~SLcpC!c#c8pI5u94D;A5-#DcOY z5wZEsR=g7%;;BdD zh?h>nR1!j=E7voD%o>-!m9=W=xHxGF3qe;S(vldtm5#Q#ar8E>bB6LRC&xNHaG|4z zoIvHBAxgru5JgInaCHRm7B5V|0GvM~S{WLjbEaEL=^LaArqmI`d5XZS>J&9QsVTLl zJkoxo7Aq9VM}!VHgDV(dMz&>Q0%d3pOJ#C%*>V_Fyig!$=X_UY`gh>n$?65a;Cl$k+51KX#?!JuBMf49igw4pSzjKlw3dFH!<~$BRFK{610oo*3 z{t*@rwQ<8pePZEQioxm@f)h~WSCH@|E6ml>oQjZX$H=)R@S_!=2DTm&1qRF+SHSw1nQ(OsDcNKu|z?Vr&3!-#5PjZ+Qu^1C^Me&C^Akt4hi7H`m=yj zvdP{~VY8!8Nm3>m5W$*$o<1QSqK(w@Ks*-Y_9dXSevj{DaBNrnyhDkpn6Q7DV~PH; zX~;!Fv7tqzF2+E)Iud{)rffq9#meeZO+7c2Td->Vb@6bB#+u5rkDb*AO&1DNEg;g;Vr#=Kr=$1 z1)UCS(!|cfW=m!+aWE$UBvHwQNlDXA;j!4sW`fu(C;$r9l0z6qj6gFi zW)5aH7DQ{;^pf;pX=NATKn@x~hUhE2o8mSw1KqtTf0hf;wX?+!_&x>lt5C2Y9(tb< z;&TFoP+8khD3;7+;tD^^wWpMG#oltF#Sv@!KHl@XuTe@IJ=0nF#U-bRZ8FrXuLAa9GPOl3sm zqL4#9P+qXoVwv=oM>(aYLc+-5r&8(;Kv4uZMEX~qP2!s%~R~7Ma#=vqvq8NFXa z6EmrT3{DauZ^az~GF+qrc{8MFjRa)DlgQmff1=`avkg%2IVmm_sVks# z_>@Q2si`RGRin+}(x(Si4UHTM>FTB*-SJq8Ejt+X2M!%OWYF>ZMWN}xE`BS4xHT0e z-t0R=QtIj2Yxo;}Y57|*wNmf8R>7xqeVnYfPt?o&l!ROpW^n1oy1Zp>^4d&Eg7;QOFmLb6f1C^b5$8Yl{%*K zk_U-+OXQ%%5KBX536Z*E@Yq}47&_vT+6NJna(+z-QIHxR(l}1`{qh*j&I?DMN0tmn zMvBXyXE3il;X%W>4d9I_@eCC3V$f4Uh#)AqiB{!rG7z-dvdi@kxhueJ#>qTE$QLn1 zP|IuvP~P}t7)O?cTmJrKZ*TtD-A|-%vRGN&i{_9 zFd;!?oFkN~s=HcS`hL2*n=ZIx_Lw1q$`yC1qEwyrNPk@_^^ke%>>p*LM~(#viO5DBA&=CGiV7ig2YzGKK1VVb$w7@W<17-h zGN>lT>6cM5?ZdCkWXTg2C6bEHxt2OKVWeQ-(Fz+8SG7Ta4*&7lY>=#iJ^J-qS zs9Z*ZFsbx1LHsy~H1mx7+)AZ2FRS+zbqfVyU284fgN)hw8z4luKm%ni9+VXs>RF|? zw>IDN{G#+{Dr*N-*40xq;Y{_sX8@Sy5Zx)!x?C*`B`qf>rAmtX`kqh^mIh zQdMnNTU+b)O+Iv1K<&`c3i2eu3uavvlv+ex4&v5qrK*~))|T`~UU+>?2y4=%S~GMc zP*4;Xo-7B1Cl|gEJFqCR_ejfR{nS$C)J#dvYpJTHvc8drPO`>B^o@_cvWz|ch1ww_ zC@6X_Oln{`J_^}>@2sT(ggxp0PrDDm%5|X0&Rl?;ya3PHONKnbloMHUF^TwJSbyf! z5H5Y2WbGz^(4FS(iK>^#&uR?J?!_cu>aO2Mmu??w{>gHa zMDn9Oj#Fj_xm-YFnJ5oxLeSnwPSloi5z6K=I&#rRvXOWH1~TRY!xX_a_T(Y*FycW< zHHF~vML6>T=A>P&?J64@b0|jbJGN6-S7%#GFxex0*Qg}a$G}*TDXs)bmn%E1G)AT5tn$pxg;T!xWhgnv zn+=t>St9V^Lom=?C3)%`M-c3y1iYLLiYpz-WFk~VwE!1pV?85du2X_A zn5xY3DJbViAq7e}=mz582PCBIeP3o0hG?^$7Kg|^`+}CrTSHfaPkaxqA_lSJ1>d}8PVy=2ac0y5!-G)Ej`%| zG-SC~_7jtC=!E$ zrOL{N3fQ8PFAm~EA_avhyc2f%XEt2Q;*22fH7@{*6;&aXGo=G91b(8ag;uPr;M&`-mBIv9!4a`yMRX_N+Jhzik9;!GlHZ$ zF6rltBP)FN2SGb=cWNXivN~lUxkXMOlp`LX0DpL^&t6KmGVStcdJtjC3c zqtU32>_eM~IwG!(glDC#qB4Z^jTp#I!Fht^;?Gjm`0N59=1nDu34Ty`vXc-@-luLf zDH;X_E%plz^qRuD1#QDGT_H6CSmROoe#Qhb+6*Ez6v4}M5}Ka0G(n>C7j~86PTKj9 z*6nkf5F_vaqzqT9fmQG~^s}!FGg34N#K(7}8wrbvLpb+X5=i#mDSJ`U+%g!Z0axF8 za~WkXA`dFSd1bHwjkHODKtCz=uF_{FkZr1=%)Z(G6+LRUW9Y2C^s8XHE1if$Q2<_X zr6^eMaOf7naZ?jux>_+Hna7481E?uN(iIn#yz!Dw-60*_DUUl5en`ZiNWM_WN%@t& zxbnoKf^^PPNo0Mh))38g2;Sx@cOViQm*8R(dFOz=EW|Xeg6`%@Cy3WtaO2Bt1Y{WC zq}b!;nK4oj#BxsuCfTXlAvGCups&(rpZgyFK*KLm9KB=x*>j23)>Oe|=C#rr; z7BgH6_#(7E<_?(-j{C5KIjXADgkp>iY1svTJmtDYNmkx zkaHI8N|CX9o@_lZcRZNVgha-4I&^_z=}@2uXDEy0lV!Zqj2Sx>K%hnT$L)l!9?W%@mdi(v{wazTlULn$K`lC5fy5VRSz3f2W3s_jy3 zIXQOeCZAkJ2>&cabZObrnI zta%3rp$LhWyaAOheB+?PK-^@txdkXqr6j}#UmO#okQo|EsU_)Qv>&Mp@&!3dghUwJ05fUmAtv0QOFV5nIi;v zu5P6-L$-&T%I~%=QLYHXd={`^Jcx}S9#<<$gtA_aFpE6t9-SC2;|C6#7v?EGkljcM zHo;Rx(~!&Hp#EoIyj~>b><=@*g_~$3sbL7Ax}uc3%*qD}T+I_?auT=}-AAHHCkMEP zHK4czNagFgVX$RBK_JX9Ktb+VJwe9NRa5XUx~Uxq+LH;x^tg@pW3cD@s&(_+=E>hhv0y!rRSe63GMbBi(WN$fKr#rYIuNEPjWts9Y%M9!!P*9RS(#ldUPR=<_(a~~zvPyH**;&~d1b-eC zxrxF6atEqP1;Y-IR3&p5snltTR47n2Ubb~;vN8k|n^b)y+{}mpHi#VRgxH4EFH<9< zMG$-7C51{cfPj>D%=nc=cGNGa5G1-c;_+y(tR;vxMPDzZ@O)&w_gyf@YJs(2aH_qG z?+LH$bgF`~WV2Yv1zn(rmR8%Tooh{lPGTPA%v7DiGJSYq_iKIfA~$rHS@*+C4Ji{O zgTGmap&z{YYc{=AO(*Y?HTR8T3^pac-Q3?c#GIVq7W^o zJR%)yl=N(s?W<~L6WSE%nm2-RF(YQcPhEh!dw_&?TdSzx*2cuuz3}@+mJ1`}Ct{p# zgULhn&N5lkI%|+~kxZ$9d=RGRtD;y4DWDFazM&j)VN5Uui>+s3EoT@5=^zLNPgk4l_`NN#-vU@h|&caeaeOa@mD}L==M%FWGOcoh#@|ys|Oz% z(!DOlh)|RSYJ2?w&@Zs!9>>IJZ!qjkTPefgr65;h?YZYW5HfL6i*zI#}33@#J)Za{yo>56cjHM}sIrQm3|Aj?mJB9|i&v$zz*Btt6)qXuRD z81!}!H2+jfj^K7L#_#})w^Kf8A?baHka=B3Ha7v0Q#s)S?)`LnDi`82GCBVhu}-3| zEdzUw%@BfD$QXQnL?Kj9(&j_pIkp<4pO8x@!R}`9^&gxd*Ci zE9ZgBP;)y{0j*F8GF}l6B{qQe=0$8l6AZ$~Co!-+gj5E&6^$A^Ql5y9eEtXdU5LRM z;OIl02n2#KAPVu3XyV+gsug04E$E`ho+SYm5wUtvf+-~(vIxAP2|;4*Wz;nmLaKEp z$nI*)Scm+HK}OO|{fNjrsSPVWs2s`iMRu(=5Y)yOgx|4%1OWIzg)I;fMH|VV-|1qG zsf8_{&-HCHN&Fq$fC(5ubIMi5LjSp#Zcd=R4jzxAvjnMJ2zXEj=8HLQc7=jIn@{T?K+;49t91>z`X z$ic5?!5PuOQTjpnmXV+30TRyyiA{$oSG-o1Ld2BSKUXbQMIcfSHy4_NOuD6<1d~TU zfMOgf2vN0Y6xrh`#9rD8B*jKUq(KNtwj>HsOan2g9ebZlODYSSWFZiPr<-RpkFsm^8N9-v}nAV_g0avw}p^CH6Ej>R&|9~Xi%xC~c&8ry)u zc&+EKuJkYW#yFAZU-*Yb+a;9_;x2uP@)q?aFnJ^3p^@N}1qjxW$|{Lbtz3+kRI)a5 zw`#c4T8b|pXJ`)1-=)}k)3i2+5wHJD?j#E)qL*B%cs%FYV~HSwPAl=6v@ut05!ub& zbK^3NF878cxzmvUppv4hLn>#awnU7`Md?Zdh#o}n+%MTpv@u-ST^2k$LuPWKwVjfr z?72Y1f`ViMB5}t%TWP_C5X_iZdY1$TtmnK>klWE_p;M|9boxn$TE&ho%9-OizJOqO zB}{ZFlx2XWKap44Dd=oF|s3 zJ+*EeU>?VPj6^tgS|n&=lBNphFcCJH=O~;l34Z8(9!TR2t;mIy zU}M%jtp=o(ous8fEA@?C7c<0FzFE#MqkM-P!0t=_8YAsI0-tS`>yQzzq+M4(3f6-i z>95ud0h@{iK{a%1JK`gF@@upKS@D8&XmIY~Vyt+jvn#QaxNO-4&q|6}P6p&D*PwIX za~=Y+uD^!;3q>pkN5ve34=Q!adaWYIEk&2IY!{OJ63DSzvgbfgQKI8O_%tR2W#t*% za6-VhMr6$rdDA{eU=)1%2O$KH0;an#f)h3dJ=Tzhc<>0N=yyHCZWAID1X8QVa|U6E z{VFMgl?qV6yCj(;e$kvtWQ^OyjU!o|lV!G%t97>Ff*`+p^9+xSkqnV#-t#sX{35_| zzM!8VSSMhCu$KW&{UXdunffb*;c#D=QM%Vbc`FGN!a$B;tpubvFcL_qMI9A&a2^YC zoFBzLaixgDjsY`n8Y#{u|beOkyQDA73&O>FR!ZlYVJ1{}+NYl|jQtEA0wnp+3MQBfyrHGwICgOFT!g4wjV}x&nX^p@d3ayiE27NuAz7BP|g>quK5 zm>tv2L*eg<`hTmIei4E<07yd&4O@Y@sSCy0o8%E76NSsam2z-G^8b=llwQZqQddWN z-@gs2s~*sS4F4wC+hY=lv&mb~*@yYkM}4A`CJD+o{8-p2f<*((goG$tYEZ&iE<1*L zA3S@G3!TCYMnJH#wf!sPXFN>D+!RMjM>ANEdGqZ_7cG)f1N8F>h z-)XT0LlGr*lFXQlZFD}CsLkNg!vp*vCoc+4TF6mMFzGC3xQGm8idr~JKm{VOg{&)N z_*AvT-Unc1NcL2dvzE=;q+gPU5ecGU2xf{|W=5pEQbE`z$8JPVcRWcD z3EvJ4ZOb5gS+$kVa}g+zO&7m{Cbd|-1vt37xSHf-gKD=+sV((FjVMpMWmAfRN8h(u^gOyj;Wmho zA0)^XD8y&;-~~+Z%vW9TICfZibqdH6F2)<;ew^hfW`yZD6z4;`5w?{C7`)OW;#=oo zSR{-Zr8GcSqm~+$;vO5f?`-ev`oG(4D~m-$x1oQ1{ZoIf+O$Is3Ef7Vyc}H0o1*Zz zMys1NMXi3ZC&lq17 zK15PeY3JnRHjhCo%oOL+ra4-`Q>$mJJEW4chNzOwVWx_UQc!Q&4#+9DWrPFQYda({ z*@5qyeor3*EB=-IxE^(cSgp(l!5gyKP-n1+VC- zo4PwYy1UxDJ3B&m*S}7qf99{Jmb?Wwg+4?r5`o;NBxH{C5v0tS#v*^FmmLJ8hlqZ< zgwI=1QP(QxMEKLo=oj)z1Sm9BMEu*6k+hL9{HVi>cfrVm_7{`e(zu>* z5X@pIA&V;_@OER5Yu%Rs33U?NpdI;N2v)!V_i99992KlXnMBI};1sC{h2xd!-r^`T zQ|CY?v`~Zz9(^Iivvh*~Ox!wwGM5AjP6DbDy1Gnu0WLV;ck0tY86@PM*U<3@rf{JA zY!`|YG+fXkC7^QdP~a2Yo1d8Xf4}RN7fwfOQ|s1EEn7CVY}?q;+VZc{=%4m$M{CFJ z&n?jbYlzqvLGMLzu~{$sja-!ge9DR1Q4&&yWSoNOGx(de@-xF}rZm9aOPnSl2h_pw znhwLlDXhb@)DUK;xE!Ts?6eRZS&B0NC9mEgNb?(CunCHG`HIMBTJFS}8>~TBZxJqj zVi5o<<3NV;8@Ed(F(4@ur@TBGp~;lJ93i?d!u#wRBBzLmGr$d(;q+RT<;AnTMPcIw zCK-klOc;+Xl#%Me{0c#yvi&1eZMKj;-O;Ln_cb2pPWX2LmD1aNui1uDamj zh8W#IDA|hz6bk9z&0n?thR0t1KihH%LVldlIq@%i`k(cyvzvZ;-%Bm+ovMyj6)AC< z7X-9PIl~YT1+?@0_1FDm>S!i{vysEPU1oDt z@_xA%Mv!ySQYRojS|n=+07MAN5OP_;V&bP_KlyDj2;BX5MC}j7Tce0rP^ed-8cVn5 z=Ta^rfl;OIf^MW9+=x5ls4YdwSy!52i3V)958X#yAn9Eirzr&JJd*J~{PQVAEp;)XXgIp4(tMC0P>32X<5GImeVWU-u zTdgTdTC`N~6MurFvL|Wh+2?nF7%|Kto~M(=?;)scEiM7z4;3%$5X8__{afO7!UHyg zRt8d9FOf;i4$PrCtA)#}FXf1fUOf?V8u^fJ;UoH*%;Ew1eAI+MIb;IUt%xfjauEbM zlPr*)@i4OYUs+q<+TP0f{kJ?h?}1E-H4H+0bd*0$Ty(Wy0}|N8o;{AzA( zU-9;qXO?fcXU_7b){g9%V;MhL7owy?Om?OrTSV%^CLxhj){>@MAW5-ypKCIRWy>VJmcFDUy93ff zZ$f%Kr1hFmXqB;E;sUWmL#KXKc9^87yxbnis;=}7j9}Eawsc~6I;oSG^IcPUyRZh# z93+*IN+0puov^~QQZw)X8FLjO(n1u6l~0VC^!wl=NI(h@XE!O1luZW<+Eh;lw=`dsRFrD#J6f9fdtS9++hu=#CQ?>N0WmZ$n;2MAs;a4O7;NvDx`x+0{NgnazmyAJ z_${J$lV%Zi^lgZ(JHO_-!!-QC08|ptOO2^Cl3ak}KkeBP_w> zElJL~LacoXj(@T`gvkCq;?f;n+K>ZNlXA8vX0z!Vk_+gW5d7RCg_IDyq!vFt4F+Z5 zX3->2UvYi|!HL*nt*-_)*j@=s)in0<$_gLEaSWHcmw^gU@~uctkpj0NC>i{e@J={5 z-8!caW{^*1T|;GU11Q9zhW#)ixv*`VbH9@d_zT2y8TDVi|6vBJQr&q8gCHR|wJfDy zjq1fqfouHrd_acMvM5TQWF!-d6`KVflZVg2T&LpDpTv&1iEe8;0~8!|A`1Ia=d;hv-y5(oRql9u4z3)}4?S*l8wq(o9u95|B5`5JvST}|XOE=LgkVyiHM)=@)Ce(GY-0w` zts}+zB5s(Ng*6Jw7Re4dKnnttY>-s?M;VtPz7xo52Bgmw@J>mI@yoak_>)iU3T1^k zDBW1})=A*)GcrMeV_t=%9CsL)8I+Y>VyKTM!2(0xXGOI0bwq;NM+xrfq-e9Q!f{c^U{rI$GdED# zsj4%MKzvD)NWv%si@~fT4<1e%MFumYfMT&&SzW5G71nDZM0%9eNJAcIlp!1>Gj1XF zY+@gT9|X)b0^(J(-;~;O31f?t7(||dxofw~v16nz$&{I&5h!brLFNaU@f%+x38-7{ zBeTbYdz*LjU~vk(*(FB(;Voy@tCJM4S~pQmDz?Ms#B)jTwn^ZF9C0FI52bCCgRmMQ z=2Rw*4N4O2GMth`Pc8V*ru8eu>w02oN*RkvI7+~rropg?Am))I&s_waCEW1$~6J$1{ThVlp}xi1J}q!TE_5>wdQi>0VbbD_k9 z&yaUW3_Q5=D(4Lg}WR(Y>2M9Ao@JM<$K$m2(ugKU6fKLi`q3jh#nNSd)xl~+j z3oBvDW}+!TY+gt?n?gt4XR+Mm(B9-WFT97#gJ~$NoD#M=1@fnnsuWQ(5fV$o_qpcR zj#Z5j4r;_MDRc5(ET@KU z@%x*+N0eg_vY)X&Nt9&K@cbcS)N;xaK2yp$A(g=hAppx@MbxdF#pOXh)g;-T62XM^ zA?5jI$WRyxHZvnzFv@^N+eQeWE|8`6mk)d&G$1)vfh&2W;K>OR$u7A&iXK-w_>Zpk z)FcXNb}Q82j4}bN^IME16C3>+4@Jkn$p+d-ji#ex1DLs(P)H@3Mb#~anq{AT+ZthK+VWU>rdD4fz zat#>dM3@`{SUH3vu=7iWaDg*XPwNW!#YNFst0ZZs(Ab*zi$qdFPDQ5upZQ;ui9^CC6NZ2k>`fPfKY5i% z3@MrB8OCs5Khw}=JczAq3C0m|U93_wLJL_P#;0ouQHHAFk^n_*V^2XDok$`s-Dyv) zXOZO|WCaBW6}FkOCne+FG|CK;IzY<4n<_u zIAkr(;O2!|OBjOAcHu%RB*zg{qoDo-c3$+7O>Jnb$*Vn=4g@oBcd-F0y^5vXO-2j-A5R z1(ma`rg-3oXo9$9fSK|CfEQzN7JOU^xrca&1E1zV zwE@`dLRo%0dGu=JUo{y{pO%0`aNQ8&H5;5K3qH4)T$%;9PlFu}$s-aF6@v|m1gGYJ z433R>bW3pjj15DROi_gxP6-S6WuJ&t;ATc_3PRL`pxFK7;6XB!+A}65eK|uv(>6%z zYLGGc@>1CW7e(_3%;X?4I_&SUGU+<a|$qWf(d%RebpWe|rb zl);a3(3bIsWTvqph?);U{fjsSww^XO+lGhjXRGoqz;e+2NvtjMJ*2pJh1?orUNx6Xrv zp184f2h6v&ih0<)Gr zprQmJF^kSPQ3w`-fo!d__zu7^>U2LnQp+N~&V8KCr7^kvKB*#{#K2d~O+ENGX!qMl zV4uN5sVrSbWT87g@QgL77)AL>FJ`~8(yt`HC5ByJNK{29#s9p1j;_@t7e&^pBxy!D~o z$zA_0b7KOm0~aI_B)HF@Yvc~bn#*_Dpp1Z$sG}9Z4zV#Tln(`XP-gHclj$mi%5{T& z(vk6EJb;BVD^XIbM%*0^4HJhZBJ<#s+K`=AHr5V~=^QM8?|=yU-KB>jBnvvoXiPYc zYgq(}HlPd16yNPIku(z4$;n#VD`3e*w?W!igAu4?bdRL|Kp_oox`TCcPUyJ2R6|DT ziI>WKiZ0RWuqul3XaW(;J46Q8N*04)^lfDKX-#bijCTs}jOUFFG9M7Ke$Q|?S_T_{ z-AW9En99(D7n!IVWjMy#iW{Uiin5Xdu^kSidv)l#lJqc;T?gXn4uzoK9VPC2ati6i z3&ZvT>2W z%UL(b`WE$5V8U9iWX1uRTZXIrW=OCHUx+JJZeNe34wo>@-4#?I8qh zhYVBBIJ8dkC=}lC!MnoJ{UgX^b)*LsAR8&cc!TpR^oMYA+@LtOWaxgT8-#XgHLi@} z;fjd!MJL9FI&PRfL5FjWGt zf$E7II*eoB8*xeP*+&W7B!#j`SIRcGIymC9IF{G0qyLG#y*%V{Y}9_Ohst)tBn9)p zY@caupQaL9)08-|NV=lOx_kvuYL0<+#IRFdo7h-RYX>47HZ)s{B=^NMk*V|(um=oT zmRi|*i@4LBHb^SC$E2Jf!-nb5Vpyi-HJMh}5fRbXZkDBj}+Dd2~F8JSrZY;f#kpG?MI7NbK^)6xB$T#R9ru z#~9RG2TKq~v<4OKLkNJuGhn!>JgU-J7=7TK%)S6W zh|Q@hq$_g3;Jx7-0ZW{O0PaE}4A_vx8B?Ewj%Upigx*NcsI|E^ARaY%hiamTgI#=N zA3(~Zt|14AqEsN_o8@|2BkZV{eDuR^!6XN_+GL5K+h+eGIsvWBdC1)LoQ|$PQG>JU znSYHQ9zb)ab?y|q5*C-rtX

(eaNVKhc_;Tzi5)g5ya8fU630*^H4MS@&Zh>{#{s zyJn8AsjO((w07E%$}vOg8~`hX&eoj`6)1J=98q6YQ7i;MW1d`FpXfuKb;NcMEdA9H zJ0QSIDWP2E&nCQ!BN^tti3~ETG(~Av%!@VIZ7FsJliB~`vY_;1PIr5-_0%ZEFq4q#KgpgIS~veOOAXQKHB@Q-Cdp3)-<>RmEG-) zHI*6#5QRa891|D@26u3*XDA`$&<2C?KZ9j?QMQad6BG{>75HQDCWtP_F&haQJ`@>$ zpv=ub!oqc_U%uEkda4lj9pP#f(q(^VOLI-zmfeSyCe?QDF=4p&%E%` z*}Q(un@`+#&f!y!+HE{Ife7%KJ`x&WaT>8?u|(;IK*6=au#N*@{vm`ITPfKVJ6m?X za_i+)tLB}4;FL=~b=+zDPGtLiVzmmsF2&R!2F_! zihv48GZE<+-7o_|kq}WDMoEtW(lzPc=-3#O9JLJ?Y_R<8_wW6@pZmV=x%ZxUo^#Jx ziQ|TA`BTxoa*Ux*ICj@UbNuMww~GXkW8Nl$a*y)f{Q2v*D{mzPv<=%J0r#Vc>L>z5sF`6%>}UrRx?^z%v;8j9`vj-&2$NM)Vz zL#JRHW|ZCzh$`zFsacCV=sq8E?>leIIx7|bMd8Am6Nj%iNEzk$~uNl=ZnaMM7$wao9Ub?f~;iF5!9djIvC1u zdr_1$`KGyNjsfM9u5L(fa+mSRD_I6^q+xwf=w|oqn!Cs=vszz_;IAj$koF!ad9Y2R zbAorLo}i^zO()Xq>6^6U3$NbXuzE%K?=V8*ocs0Q_qU!!@6CG7Hrxf3!I{L*b^Mk7 z-Ff^S5-di_4!3x%^K1+SmQkb2McwCw6c-$>-u7v{YA;2&5b3QUnjmM;d!MNP#2t!lHWVqy-wF(f$^nN9&IxMYgz4ggpT5i*O*usW-6LrJc5yC z52VZ%fx;T|gSp`-%er!&57`;yfiAB2roHKDp~#@Dn)_24AFsJv?VyvV@y|spfF8~& z^pS#!yTZ3Epmx)gUuShr;h6{cB`To076$XcJWjh&xE0m4^`Snrz_PUOJ8X`p{+s1cQ+?NkbMt()&7`GqSki zO|DtZBQH;6rn>u7W~?tD4c;B)neb+@1=!r?TJr zh+0?gbbrLwo_pHl*X1llzxqHwaIo8Bhw+yJt_i7%g{3An0k-QgTQjqd%4`9_&sHqB zje>Bt0!{U;t-TGBrzVYa?cZxsOD9I6COMc=>lnZXjJcxi9@t zooEX8B~a>lugv)m$vu?j@i=u6ol!S=4-Qo+e;Z~xT|j$lH{2o6W0tMy*6~mKy~#C6 z4i6fCw}z;cmkVnBb{NOVvW(?VOYTt8v>)~+Q#e`GDthKOuViY~s>N1@D@Xk#>x19GJ zTWm+RYM!#E6}P)?;jpu#brJgo#Np_;TjJXOkNkD}RquX>OiqqY)gBTonvu5zW8zG^ zy)TJzi~Fp7NuyIdLILUN4^b;2p^v8PEUs@xO-{Z$FWSn6JCJETVs5-*g7InEZ-Z=9 zN-m<^lMOF6H8*SAIg{(KWF?>v3+0qCD!%n9FmSV{cIgbjDNfA9%CsN%CeRE|ae#}W zM|Q!XJj@}$%`KGxb50BJ$!16wjv& zoJQEY9W7-&o-(-N{U$AthXLkFb4H->OS3KK5*Lhi_{2X-p$CtRLG!sX*_y4(ueVaw z$|ZB~uJy2>6)u5iPDIs>8m^lO5|$FjYCW-Pr4!n@c^)XmI2BW=jSWw1i{~>BYFB#2 zdVVzjy}>hId+Ptde!F4EI-~rvs`1;`9phnlFVW)Tr#wU+M;5k5nLRK4eY)0prh4%w z_9V0g_j7NQxZzHkuMTkZCo3jx;#7RyQOblNg@Lk4yd=7ABXy@cfdrt9q%9rOVW!^B zrvge{x3{y)&{*sryr+4{lRQPpUCnz3*8(xv-TTWh@Lx$4!t9DhlLPGfY|MbNF1z5 z!&~?CdL{gWX!ceC_aNJg%|bZ;$s8I@%7}GX2%Mwm3dGM=d-V1#JOnf~LHtnqC|N7a z_}twv?-^vRsx2#tzvIV>Okjp~?WZ&B{b-?S(oD%ydQPn`tEu<-H@m z%@V7DAHNo<>ix);thpu#(e~E$kvlDw#fL#QaBZ+v!$*d`?6Ie7NyPuGxS5 zN8@w^+bvqW5`1dG3KB+HQN8bOe(-jZ_FEMc@zURaGH*JCq!I3V>vh=nxRXJ~y`92& zYEncNwbv;dRO7?^D1_2?t=Gc9EHQkirszE3`aHgQ{^2WEq) zs;F}$GIXy;@nmVbEC!N7gI5a0TxJ`C4;iY^1~$j;W*D8) zo1MYj4lc^}8lWefm9!3|+eiR*B8RQ&c}0}oAr~(N;;2QWaKiuTsXPIV6en-DH&)~K}Xj?i6;y3Lx~mrPY~q5poVSY^=i^lf+{W})Ov4YCR8st3T~?{_?yAfc6U%zYtvbKM$P)pDeLCg=Y7Oh%Jrs&q z5a8?v9A`DfR6~}#c9tSoYi>reHbtv{z}n=I`Rk<|v3=z4u;J6LMu|7`h>Xpk(YD3K zYE-&VHUufeQF55k*;#{ybZH@=0-NVWP$;K)9Js{?1D7j-!5ZaO z^IhKdH{&G&cOH_n!@^}H zO{2@xqqB|9lbE6`Hu?51m?~?rLltKUpqJpCo@a%10r(DxwbXg9NqO;x!*q-0;Wdk) zdaYo>XS~5>z-rqj+`SkMuPD`A7lNQ?r|j^do3;^e?*_~rVnFWbYX9{CQ#!E`L-QEM zffEv*6O#C;WpJ4KJy=)6vcs2*tum~VzSm{r8YAX8snH^~ zA={LB-zLWXw@@e>8=e3L9d4kI+Jxn$gtjFkK3I5YXMeB6pQ^?sAcXC1>}G}DxDhg0 z$zb7LnDxfsSw8H1Bhm1Kb{iY4f33=|U%!BjnBWGEBPE$a?Y~> zRH>vbcR>b`!9>S!j+hp8-JVLHhlF|0GrC3U-PL!qxUu9RHymQ=^HiMMe8d83nz{Hf zZM<-3&S5vxOej`Vdn-{o`|z)~9-=a6KMfBW+gt6hxf$2Iln#{$8(W|Jy*(pQ0bFU3 zu{vpR&qE@OjS9v*iuu#a=kTkeBtk=9K}sD-uxFL->73aWI=`-%rA_)8Yj!=cUoZCo zgf$hapM7z#9zKbFx!AehF!tdg=cI)>33a4<;x^$REcokKG zP80w#e@`d3*czMqGf@ymEp=;ur)=I9K$`m6l&z_{y7stFo(S65M(M!Ys)N<^+Hqbj7H0_$ zR}$K=Edjcx7LuD;euFj;8lf9_S>0#3P|7!B-gbZV4|3LiwIv6XBY!h;Ww|;n<|W`Mm>Q`H21K|If91=xZ238U->bjlE%8v01g9 zB9`^m+aRHNMlZdMIX+0!rcVM7=lM_vBj>5OT1+$0Ywaj~K4hg^)@uIoDWled-L_s% zy-qU1d+h_A`+RCyW1O+H!2vXs2&6^>c_gfC|>(>1I_nbsFNcS|ag((-84*9F&T9XK~7JRod`yH3iwiTE+2g&T%?p zv6M83%0J7b8EX_k?plYj?UFES~&EL@qNed@|9OYBPNj!mbz64mh`RaiE8@6725M(=Qo`s4h~BDNdyA;C-%B&=J7^Tz{ck!)-?kTJMq1l{gO zfx)hA{}64o&wSzkR!l`epl!63{7@U^hs4y>lxW}v{=UcTm1D%Pe~DHQ{~a5WrWa)# zCBYg0zk2sPTro1Muq1bb*$Rjw%~=a6$vJX8EpG!4OnfcMCk5% zQP_4bPBU5q&>;I1Cs*aak{9>QmO-dBtEs6&Y(6Ziud7v=nAY;2=3FaO-sup6awNH$ z45(;4q?F0i=AV+(Hzwq>>1)O))7K_L&~Vgw`xxKXL(TXP08a#|9Srib2sEQs=6)hE z2o6r-+RP3*$n+nEW|r+9;k$tHWX)zy3$~GxoIdkA8fGyLvQ)JZK4dOb4f8e92%xxu zD{K{<#u?Jk7J6Y^M!h(7M>!)S@U@A_T-b^(j@kF2H;f2S0pPSrGEfAW6^%NuH2N=i z$c`HqF#MaZjW*RP&;DIB!5XO7IRyv$vJVvV`2aftBC6m-FwNv6E0@;*G?Cx{s&NbM0pcKVS(HE-SnehG^MRT10ksackb; zqn>jsm$0=$H*9}SiU+uE=R}>AYi@F#nX$dqd`QEPG`v;|241~<-mU?-e>aFY!bK6$ zEM7p!H5AOKRXhEesbdNu8WkfIf(FDtzq+m4A<}Ck(nyu$RJ!KZakH{Q+26N^(q0OL zXp~kE+w#Cn86yNK^*Se5pml<*O;y6IaVQqC4uJC?IXXEx$r#|vs6rv*z%VGA;RIwY zWDr|OaWFz{r(QIF1cVB$_r$Pr6QHk^{f>Vg86B;%8(-yKm4g+#9rOo-pb7zdNLi7~ zN0T0JHGv6VvL)u`C&D-uLxR)5eu=7)6Y&lO*WQ`A&fe<-S-D1mE!zHdQAKAbC&LfL zs0rxJoHhvaP(}5*IFRy>N#!|}QSW|M(qu|CejYy(v(dE2)l`wVZsul1H;M@F%<(qX z`OA>f2RBpO^QoCF;j?Z~=1ermre--?8svUinFIc9smSfk z3^0@)g1X=2GFZof5<|ngMGyyAgK+jChJCoyko&2)nGQ=42eSG)d*iPh;(%;Ze-g~a z)8%k~xE^6oi;OBAs5awz75-oYpI~PkDAKmswsBgdYO{?eU%G(Z%0U-pJX>Jq7UNV$ z4)7s89ToR&HCFWgUYC7B%SMltRhdYcNc6QxeTeTv1Jf1a^^L=Pg`kd_1!d|w9d2M% zj|5e3Nw+%anVC^-_%uaz4p=Do+-Qq(q!(w$-#PN>j97*sN^EY%YtN3Gz1w7U#=ejz ztIp}vLW$67ivo4hD12kD?b29aQAH~$v0cC^doTMsFk+02nh*Tj|59unkzSb;;N&}Y z66S+EEy@2x=fbtGneon_464KL&zy_~h(s^BSF*L;w*aEZp42~zH$QzoVrR#7K_@5k zPe83YX^U7uW8d^QYo&(VP`LIb0--yEMDF=f{SYM6Ni$sFYd^1?hRS~*9h?};W_&zB zyISpeU0dvoXigcYub2KqPnat?y0%w(6CW)0sXD+suYC+W=3 z=_}0_zfhhDZ3hzBzYyh?r*?LMQ<|;2zm$vOa&jN~DNM9&5@eF0zswgIyL=yZyY}bi z(5!7xwtDz0v6W*D%yx!dQo(HnbJfuWKk5{zX>U$>x*XRK68dnVxQj3~I>~I-gK7p+ z%!|101sqSqi9=Z3PN3lH{+}7U3wm1W#04o9k;`fom8R}F@g^bc5v6ZK{;`=4d0uu5NnO9Lb^#nP67=p&+?32aTAq@}`C`|wj}y}G zpNZVuIIWt)-E2WtBqZ#bI2X+ePmezjc$rNnZzQbO3 zqdM~6cRMCQR_DP(-!crIMBI#UT`4uc%Ni;5&-V6>8*Fjz>dHGWzy}Yma-d@pG!Gd? z@`$xLU*sY76XKSPoTcBuQ?qcgHrTFeM*3!~cvU!cKJRuBM+_nHqBFIN38B2A7j=d# zni#dJI3?|RpN-q2FF>2fz==9%(|ZxqZCu^H$tR!P;bYkAVvsz|6auvY`|!@dV;&I= z*O?I;dB#`q(bcTbmh8-Q$xBA%wg8_Ujsr%~)A<5t%*rl$L{(Ec%5UfZIGn)z&r*>G~L(B;V{n8Z`3T!kz!tyJ3aCX%pbq%OXVELaN{h ziStRgZ>bt~<@}3rMdFD_gx-z9g_>`Ah2KBEYqtReKJ6vSRyi-~pZm$17J*GUDthm+ zi~DA3(7M49Bo7~3O+10RPyOaq9FD7N94}H6jVFcgpT#Xf*LbPVe9eaEq!#8Yh_rB> zFRlA=ODT|2ILsSYDs8O$AGIOazVJjHa37J&Vs-t}2p)EtUw`w$bA;NKlj4^nzX{Z|`rs9R2XR(N6Ig~F`v2X8S745T%V$^#K(#NKiJ+}NirPh9|kgLkTuJ%^Vj9 z#0KPJR?rB?-;Cj=%ul1KJHduU0J!TTBPJ2kwu9{+L^iGuoGl}_p2bVO4zkh0?!}4J zd&;Nz7fK^)7UJ+B8&voCHn+pE&${gotX2V=+Lbn^6oVNv?@{%E`$=PX4N?AtBKHRZ z;9F27;FS%c+cWEW!-T-)VAZqlJK-#;^N9(UDcj2O$*3oHWyA~vF_c= zYIKtqwiVQ5F3*+(_nTR-$X1ks_M?MtRC#Vb29XvBOhdeUL`G_1fWIB9Pnh`TE4-j* z;dEF2LJQjaX26p-KV3(SKRTGyocykf&|Jza@yx3YE{u1Kv1HXhb20N-xRD$$BXj2B zkA$!K*Dm}H6f$iO&bj<7-~R{^dHl-l$0J+NYu``Z2^oyIa7#JIKQ8g=PjM^5ndccM zX9GPWc2b2)@G-qZ6A>ceaoo}uHRQAd*Nc=+ZEhb#egRl}E_FZc$n|Q*VggCb4g~HY zU(lO3{DpVD={|ArdsjA|%BkBQ$$N9~NK!%gf%*PW8u~2q-R&noqRvX!zrK8qsP45^ z2Zy9&|MR+so*8p=uk>Y8=9yOF%ylhbgu;hK+`$5*wbuJAv*1O}ko!WMefvn22SAl+ zPoP0s4k@X=a8tKS-T6f|?vPMAv6bXLt6hJe&FT#GY@=1jVFK(99I95;O|!h>shz&2CY>Uu}CHOH91bz z+D+6EE?iP z2a}kTI0zp_MYTYCbY10yze&*oR9`eD?qD?Zu@gd}W1Xx(PnwudqN*W^{VDXSiV5o|rb zGgmHO_Iqw|Qcm^K6H3atok(;x4F`=YF0-Ih3dKUH;X77T#zq@SEmQ93OEU5TuhD-l z#|FUVHITXu5nAQOnIr6|ZCrt2bZ$g5J3E_o^l8R%F*(Vrg5Pk|Z@A^D zSebOM7-{qL^lw}bACLW;QoHl0B>aYc^s&zZ%k62xvAI8#PdpSdd${^Qcl;CS%Cl=$ zf5oo;EkBclxXq~W+aJh1ef{P5@&2wS?~9>*Q`o=C_%wz0Csx0_f+qCW=%DTXN(sch z4Yv$SP*W_mtY{)$xl@`tYIL&iX43MP&wS+(Vdi$ou8p^LSo4^t&)$XG8~+#KwKOFr zQcrloXjVBdizSmlzM;Npr@=l0#b9^2JALwewAgjE&%$U+z}vU) z{4MtP_wn^}yd@%y%Rhc78uw;~W+95tnM*uaWV7;KLA*cnFD~>#)09J;6;!>tcmJ@q z8KuWdrE=Zaxiq`UU%DS|a49FJ#=d%#@laOG5eRU3Ab003KdncPJe_NL3Ar4q5ML7F zRTNKMy0(>8In;Am7noY-@NHR?Gj_@2ii7Gj%T+uWDq)BN%Hq zp)4gQ_5yA6VHs0A<^7G4OI;JEmm>M;SFB>)1{S=EOA8;=p8L@dRPej@Dv;9;Hn1?_ zT4EoHgP{xE)pVsE`w=Rc=SAV0pYM+Z4qU5;&YBENSs+1*_(?eLYF*FOj!CbZB=|zxR0=z(f5e zoZThoA1ESiHyDp)d*g+A4YTaflJDZD)_sH$(yv7ZEq}#F{S-9JQX|H!I01K;eLs{c zme6xqPu{vExjh?uX>iZd+T?}l%Yf}Ce;T<8`ddq@tucSU?5wq$K`j-$XI!L*t-}tB zjGEWd*!Y~PIKkx{M0WB`%1(8OcK&;~hQ)w~wA?Sx~5 zxk5Ke?_T4=W@Ab&kC{nKS+&>WDz=EY_gE8OQ$WUs$#%5{LI8s1o&L87+ z=9u=9`D0V*tAENHZl(Rhvd3^B_L!_HvTeCX(Fv3V0))($uRFv)c-uHhG?A_44&@<0kxAk&NzFOC{gMkwwj} zprxK^c`f{qCL)kd3{TLiA0zn8E0h_YTAOM8eKnN|lgH9}Fe20dz2{|0UN2(aciI(x z6XlH_U+|Jf4F4(vojnM{9T2sakj(+hWBQT&pteKfMsc&d;-m_knevF&?1UvaUgn!@ z1gIF|tn1>_YI-H1H{r&I`vUkh*VD*%mDeI?8a#SgojkY$be2F02)H`u7Rf&i3Ta=i z%BMFsUv%JP;?RHJC;A>)KH@{N#wX>-PT+y+l#46Z1QCUPseL-mUhY61hh|_w$FbY|Do3B z!D#W*60X@A4}7hVJdjh&IolF}SqNz6I@I}M3Ws~RxFK9vGw*w`;|)O34OaU!m_#Im zMqnxTgkjB2lr{84?~;bf?Ex~%F#Nx<8`yBKlm{=Z&H2CeiiDm#qxXD>YmhT z#P)0sE`u01F!WliS+y|86egA>84Z6kb6m1(Qb?NE6(4T3dsWlXoWrUYln1RZ=jyzH zgf1=b*b5>v$bCr=gYety{aw(8yzEey{Vv7ph`nLbgj_>S80}a+X1^ANy}TDH^<3e{ z9j;HGI^Cik0Wyw7fb9O;e!xtOmIw{$_=46q6907Uq(=J9I5GduUqb9%K1h6Xi|}W6 z^?ypIXC`2%q=S(Z7VELvg+mIJB&N>C7EAibVgs*!6a2V7L0Z!LTC8&ePzn zB)vpN?xK$9Y<1npCD;J!>9~DscHW!6>y+h$)MVh>rg6ec#`(`<>AcT(U*+_)810UY zl>?97U3$jrWSQVQe(G^?x{1z|nc3^%0?fJgS9`a^x#mMQVPBt;2_c(r8`hKVV7?|M zaXqlHdT)L6@2{hNXO22n^S-#?^3$JYk)8R3|9vu-VWj2Pgt$4E6E#*^_h)d8fxdc9 z)LEy@i1zhADY9z*3oYun0|>%0Y&X^j6fw#{p7hCK`2!ziK$iZ~MRMv+JL{&GRvyae z51!f0j*vY11k_6TC|uiJJ3k|)Y6E&{$>=7r&1#CHo_RDf8)dDgx|Vii0hGDm&P%^5 zyliXmAb4}wPKhtplbYnliKe14RCiAoH|Txuxyf&iDP7Ge+4okysoMJHu=>8_PA)wQ z6Vv0htyxm z%(pXgHg#)TpNp_wE4q*n$L=LaxJzf9SPHatc`-@)^`RZB>wI81v4>kCV(+UzpbWbJ z!jgxBm5YRgR-v!VZiphYWNrR>gp57@*Do_CaMvAObMwMiURXuTMu#ti+1tyvY@(4F z-=*jYY0fWehP5tjkdu+OsHUMiL=4zhBNKYKfxu4~xX;pF2O5D59J==h4PlWZB?6D< zyvO(BWMTf352Ltkc+HR>D7HGfe<`h2+|2-#l~0I*YT*3Z9oz$az%E{aoH?vZ&sotASG1JQ%MS%j4L+Hgj z^78@vzd1G-%)uft%}!?Y9*8FSuNKGE$X{re)oc1{_iS6) zJ)3MG{BkwcI&8J0Oiq(z1*FX)KZvIEItBH-=hxEXjgud4T^}QJbbzsHLEgl5vaa>*z}JaBc*eB$R!}Wmo|@ilPNa!w!!VQrm9qZu;?$_KDELn8f&1!gu~wgmW8Z05HpAm_*k?E4;cITOqnC*p_9%`+h`kZ=JX#Kr=D)jJqd24Uv&(e>hCo14` zwDtEm2nGujlzLdw@oKu=<5Lz4L)~g-jh(H~hRn{S?^?lI-P`;B@QHe+a$u5pW%pd=E&_QLL{pMPr_8V>oZYZ)>5N)LVAaii0e`IKz>mU*f z4Ei?>_Lx%&3BuMoAw`6{#&1rAGs#e!dOI>Fb;ttb0$Wy}4)>z(HVSyQtyXhT(M!uT zz1Pcdi$AMTD`(j&9llYMug!$G^(IY$wQo(0^)WW8wgEjq?H-av>uo~UGuM-V!{H-Cr>_PCto}pj*7{2bp^f`kSeVA@R1ht*eAMwokh{Z&5z$iSZpi3cWYG&1+UT z0s*gTtj#NbH)6cKCL#Xpc(CzJ>jw8K48gMAdr(;hbURfI?zMbl-3>g?cuek@j(qQ( z9|iJe%{p}J0;oht=wMwmiQT>r3~$NBRjsolGD8kOJ7p_|q6^|HvM1f9_V+09mn}B~ zn&;6CwRNR=0Z&%4xuPGRgSmVSeXY4;e(im>(!xh&p_K+K7(7qm==I%R)Ys44>GxX~ z{M0I%w&zaUKW?k_9>fKxs(6Hod_J{$^8ce8m!fBNisPebUEHZ5%>1L$1v51V*S+fe z1Ex&PJa`&)yPtebfLhA(_|;CD{-m6pF8pQ00lUNgk4^hy;_wkG(MUVvAM$@Y-E2K) z>v%t3)+#5C`6hGNjwvvjwxth|$<{!;+nQj)wJ~j>fA|-N#*MUGXg@!+x2xi2Yus=j zER3afuO+_dujB;_x7r548NSoGTHg%Q1ip21pX}6Mg^F&|Z9#~IuZXsL3mqbLjFps< zVj|=BH%Fta2@e0T3djJNGtmcUwQC7qL1!iB(EJVH$;;YWEd{`Ve8xF^9&*?)%fFa9UB?6lw8Li?* ze@UTs`);Ny4gx)~?wf1RHJ8Xt*4LsX#qwLSZL5nbx+hN1`KHpj#%^=Gz?`(@0I`&mhf+O4bv?_kk=rubNo=!b7(!>FLow zQ`EEKfm+OI&f|aa&1+lT0*@0o@O=2X1o&PT6V`vSfMdTWCrv!&>g;zL6!&w3oDL7V zq*_;oqx|6ouD7PGTUr__uX>l7wW60~VA;M=7r#b^HVvF%c!K7qY9U}w(m3m>vc%zR zE0jq|;9E_2)-R&s5eB>M{pritVxF74g{`G^3;u6=(d!mb8IhNY`#-OfTF}+OF#flc znx{^gN~-^;FieBPq?=o^yhTt!W4Gz6@DXE&Fx$JDm4qtpNd5>YczvDhXqY`Sho;O8 z!a3;XcC~K`2ftzx@{Rob{N=U%J=HD{)(NnZQfu78#owoMw5o|Kly{Y(yF(>|DRLK% zO?%Aj?hTm5+(gM=zArv*Lg<>D$4xb`e*=FXoN&`Aw9N@Zk_ zwqfYh^PP3XIcDDyih~T;h9Q4&s3jbNZg1f-x-N}U_iB&?%3qBP0$86=x6KC$$zFjR zCJA?!nRvhUT#`Z+V7Lt8Jja4!f3AK0`-QqZfScBEbX*`UA?9ubkC4qLd~wawb2 zDAGfEMc@@&ME8O3Xy0u@==~9{^32BVzNVD*{tB&?%=w;ACG;t^gWcOj$+6HA8XB)U zo6OJwEe7=pfjvKa#TorPe44=xxKSHKkp~{2rAPUeUk5pTx$0mH$pt|FfL-aitP~zG z8#%l1p$(S6%FO6 z*~m1`jEZl?79W`PP7O`RBoBYx{bTw^a01a7qiw9@xba=M$X{$O_#X)+z^U0-yEX8@ z!qT{80cMu2ig@Z#_pEogJiYco`VucJd=wjTFzm!`fLHA|K^g0ROMBUPAi~tde7if^ z_RMRMAu-MB2>-z;)pg$Fc&Mp5VWKNGswzs=?5R+TVw7x)!VB%6Cq>0V>nGqAxmoVD z_CtqI|KJPGiZhtmIwow-AWL|~7%!BNUFgnZRbSyT&p3H&1+#ZMEA%zf4b^XRX{Gja zr}QL(Rlav(GCRVX%7SIl>qg|u-3MGwbV@6p{u(RgK#oHA6L9WZ&%0y04Z%5XxWbE< zi^!c)rtM8%8y`j~`|;0MA)41=zh)~`F8($aI_Gykkc89uulmizUWeizbUp0phpLsy zuCVDxgf!@}g?okzmgRIZI~x|M&!nYkx7HFU47otoyA` zbp1d)3IPZNUVUr3-}k`6v^RVB*eC(@ZI61RGPr9Q$%R=Q{enpmA&~roneFLamMRnI zky=QosQrh=#XI?|N9wBab~*Wt;iy$-2owVi+_aD$&eXK)Sw0OW%+xoQkP`jr z$G^n4T0NBAM~Z^yziSj>lxMK>7rSWYZ>IeHxmSrgi#gP$~owC16CTrSX7x3)f~p}xviO{|S^?Q|56g5VLu zl;)+s6+!oYSiLk>^10@iT>51vUdt*pofm-3Zi(6Wn42H>+3Kz!VXhfgzg{VAZm!^0 zql)ND{ig$q^9Zf$y1u}X_UN{E{0)~1`Zni#4eNpO8vMtKuGhB|ZjOjYkFW2ZxE8L} zUb@g~z`Zo;y!iIienS|mBiBBXzjb(@5L);4?uLBHEm3XcuchtWm6 zfe?yQ!YVKHNw+iq_+)C(z4;amhuS-9i9y}R%SVz4l?xkkK8)*3Ms)@OB>C!(# z$w+CqS7i|=R*XHy-Gufz#_<;FAH2NhlQ+H+AH|KKdJ@2HK6GEQ+hdykomYRXj5=8# zvJD~Ly2Y?jGxICA$_8$omx{kVH;rvtBFwyj7<$@85S|!Se!o(zUMkmAL(d$G~a(jr)#!%Fq*17CH8N3v=w$@_vwqH zmGA;3a9?Ew7hrDQIvOKZTzukpin5^amUfHuL_pUH&+)RyK_7KF2l!k-;KjJ~Eid|o zFDqUe*laJbS*7F8@g=UjzKQ9u22S$E4M39;JmhER`q**Jezq>Rj@EuC4Un$Ycp|vg z{_nyTx?V~=?qYoE^4`gijX(g_Hnx{TlXaR8ffVn-T_YcyPtXnJC0)227{VBRVPyDU z3B1_))S8>dh%tiu?}AL}sdK`K%WsNK{GL$PnrJ{!`?Lddu9~aPukRLQZ*d+AdR(OS1odPkt|g`({JC*5-+rNeo@R4|)BIf`?%cT=@qk0}(!z%> z*PJl(SJO#@&vQQ?7xX#%uI8`FM0x0UJkP~kxqUO62ZP!}=IU-&t!-aDIVG#`=i?jx z=R3ABUu7$kG73kMugZ)_eSNNyRUx}J_P~PRt(51lB5HO3F8q<0d2zb1_*b&itP-dr zd9Btr6Q+=veMjl|;Sw!c` z%4Mf3xnFk0pYmM_etEM%(A5pi+5>;)C*y}2-X2=`tC*HexA?Q+5K!}h68Oj4xR8>U z9uihJ`?+F{r(ZKNw4kMZQ_8wppw*P#rVhJ*#BpUmu7BBdh;moOhNhl4yp*y1YU#l8d1z##aG6 zzwY+t-M~c=bmR}JmXb>N2$IofRCqVE@0alU*P(aD>*(0MVOJmM^5n9)vcc27zkeS! zPt+HSC#DyfCUig2{V2Uk{GGijosz*-?EJM5tDcuGc~a1Jpaf+4=)#M(cSER$O6!RZ zvB8Unl25bN!o=PWq`cSU`n}lli+J-#@YS8Q+2-V?8!w-=E-E}H@R*ngMQjyJK>SFuhs`h`NDpodH6By zTzOWg89 zf@{U-o#&o8r{XxtdIeixM`cg;<6(8nhAZQ}Q2zw3{Ka%}x#rbKV)9Qm%oGgQyL z`ulT@_k66ONlMwW#I@Y-{EM~zU^A43N%qpqgy(M8pJidU*It}+IdOz+I094pVt(cb zq1?oT{KDbHtyhg#gn^nHX15}}R)Yp^4!g|PIC3%$>LK{(66!A_?UEZuJJYnKzbD^L zyL57`6`5uPyNya{K_#7kd?Wk~f3cN*ZVBOPqEBPj@l=2ltwcsfw%;?sI8ey}@SXPd z!R(b&FUE04c1@sd_f?D)OPhan>u1(xts#NO{sd{f9zOSI_2f5~`072eByf_f;$KG0 zJ)x6lYLV9uUkMW=jvO}}bxt=eP(FHaL3H8}+8SrAoa!B~yRt=eCHNmX^8U!vNB^1R z9v)j5!zsTp(6#6F`}_0ms6xRpOBe23jm@GWlgiX17Ag#h87Z=>Gg03C0>U6rnyU}y{XjNZMCm}{Jk2j^vtLwN;Qu6%H zL(0ha-!DEmm>0_ho|)d;fvghsCf+{hWHKGrUgxmKqFd{IB1+}%TYH&vZ!DFtIu23< zVV4{DmrhwH?$V^1o=17#myONoiMZe}aXx2mV(i`^SWRAP@`p5s7#Hzk@t>LboSH%k(D5gpCADB4I zW$nIu-j}DD{ZZ1`NVZsPvWc1Xp<=3KpeZjg$;XE*tT3v7q`>%Ny2F>4^XCx1D+m6S z@jC%ri1){jAOG;*z~}cJpH5uaJ=Q0lcy;>vZ?~fd5&4ZuI!(`)c7UczM@^Cn?`kVf z9jmE1QyqL0Kwl41&MLFR{q||!IiA&WK~aeRLX*CQQQfV@_h(KOqr8uPtr)d_QHZ-5 zc~jzJ6yGht)4vAdYshEQg3o0B2f{!-zXdRLvy6b7%?V7e3uyk7ATfZ7?mEk2ltVHJ zS<(v#hkl;4%9+Y*3#9vqjBpJCEU70zSGn>uql;Wn%~V^a0733O$5dWa+t!UjcI%WW zWaKYcFl>xf|EID5rPOm2nw+k=s-{V40851jOH#hNJLIwoRt-;zKXX4UrO_Kqxpg!< z^uWTyGCjutX@5@rcDM?&!m z;-ZOYF3VAgKgc532*y!f;27&dt`ThLQ%U_T1j&J!AJBybpjylTjomZ}|I@KBpw-e) z3cXSA78s=5VSa|q3jsCZrVx@Tgqp}R^X|ONph*Xig=J=~ptwPpYZ#O}hFH{NG(`YV z;MLx+igA=fp061AB7ko06OwiYQfL#Pi9tAvIU|Px>f|iUWr;4yfk+S;G!i6i{Q{hI z26X+90#Z2`2L5^gz5ckQ50Wi)$i!>}F#5XhQ~qFyV8~+N&kriS;GhL+%knY9bq!G-bS5ImTG%sF7|=P4SYspC zedk7_a(RwKE7z<5i5gC2<_FUfwE&PMuWZ~kpxoRzQYK2rTM?230mwp1pj>#!=eBfS0ILW&^KUAAG)r-yFPQ^bVkX5| z5kxlg%=E+qaFpDH8rRd4h-AJtTva3lm7_(Vm2l&fq2b~Ja$;N2cV*W!f*=}u=86Xm zQ6N-{Ya*PppMW>z8%!Tn3OT(2bG@A zsNa&p1wxQoV1VYRSXN2W$W!X=jLE8o-&_dILtr>*oDOJdX=}v=1;n`}9 zoC;b{$Kr&eFicSG0MImpfsn3KU`bL0>FB_6m4iw%Rwm`AE=;rRD`<+@>~x?M-2$(; z%5^5mPD{5~rnP^Cam2OBmD(wH7No-AfGC(e8HtZjWF~E)T{i+J(es55C`k&lO>7E5S_Z56Rv`&AAcrB9BLmvhElEnVU>cRQrHZ4daL%Os z5aG3m}tqk|$lm8_J>Ej(P?ZN)LcS!OA2r zjI?EHX$>rf&^EU~R{A9i3zWqo5{e4QkfAPR({()nIjE7Esz`=f^Bqe84GPIL6_%9cJ`n zO{)+Pnp!Wv-cn&Ua+-p%f50Lt;I}yF?qRT`HS=g1tg^S}YbeSVnHAFy|7MZsoHOVXsMq7yzC`)O;h!ejg2) zS9i#$6aBR^zqQEtThfa)E&?V4TD?+GP1);~+04=oP#YTpn)HeoQ9maM zGt;S`zU3v!QPanuDb7g@ZzGZfVLjM9DD-y4cs8 zMWfxp_`5X`K!6N-K#7~GZvg1n)pDIw$79HP;|Ys$mNj=lxd}m^v*l|m-l9(3&obF3 zRN^;z#zoX$tROq*fO3Pg`vP^84+QmkN5V4HoDPI+1vjBdn4wh^t>J=k?|qb<7QotP zAFQpISe_L~pDfC~$DpiBP?H19wx%NtXh-&?pFyy~ESX!-S6($Lp;>C=GPA}Y=m9{M zn}E=UOol&?O@TuJ@VbL`z6OvMylVZEP9mV7JvX7EC3s$F&|DB1s+d$B0joF+)Mjho z+3_@q66K1wjwd4>h}6|1q}q%+!)75@@p#=D_f=O=1<$#W8cIp|Y|x$+Nj0<&UDZ^P zr`OM|+0#2(5=1J4jYj6vFhCU+#;H=R1gy(+7I!PCJPgt`EnCp&n1!GuiKJ_j-{q*L zgu!45SbQHSuQ~Z$ubmC#RUv?$D@5v-pj~>JTSWx{jm4pfpr~6)GF(uSOvo3yB*TlQ zwJqs^%~qfknY5@>^s=HjD-1J~GVtnJ1{DGc>Uyogsw4_>(+Uc!)f66OB?Ovz3@u|} z+K_}?L;*C-J%nYUB#uBOCrGPmG_GkBtoHydvI!17TM48?0KsNHjfs_h0f5XTNx4Ln zBAj&wn@!ZTbc%$BfVvgF^@>@J<4tZeO7j+)gegp)HqZbx=zzxvM1U=$fV5~SjfKb) z@Sv+5@^}Fh!A|-y2+DK?Ok^Ca)3C$_1@%)537|B_DrTwHtXzT6rQAT7xfnx0)|_B2 zXef>v=jbCwGxSraLF{e=6rk9aaN3PRMuaRY1D@?Ak*7J65=&2cVWy^KjTM{}YUvBL zX_^i);*d@>Q0B?25g-Vml9gyTA^_;uv&!m8Rm-K0rN(D*jX#-;g}ST&kmEtM2m}^U zG;llyVZkKTHGavLGO`Xssh?4c9{`fNh6Nvhg}B)mGrArO3VdLe>Bz!MtB--?`pQ~j zQ$-f!|AS_(hHOzA>B9o6o=>TEEz>nM^#_ZP5qY2poK<9L(m-kq=?W1*$uQ$l z!z0>!4MI%|gQCD@EQmqBNwYvNmB*;lCz;BT0P!&-nuQjpIKv3_EDn;f(dVh9phHWg z2XouzCCW}ZWGn3fZ+AkYB$ir2V7kf*z>1mxU~%cNKO__WfR+`8tj~Z_mo$0I+y*A2 zA_c^E6fCZ>R1%B2yjdWPlz~H`BdO{sJXU90xt&l}`;rW0Kv-~PSV;^Nehg%-XlU~r z#)4Sk38O@-HCIT88XN?1G@A}NG(k&F81P^bP|+6F83OJ*8>Ku`YD1@THm zrc9!!d_x$MOw1JBI{2y*b`4(Wqvi*^OoLIWQBdf}((^%p#=S2~3-Bju9v+rXHov znQnN})+7x2HGqn-AUU*3i&5ZiENShgEIe-Rmj-kNMWY2-l|(jl<5#TIcq^zV7=o@! zs8*fK>@|QUS7+u15e4nS0{PbGX%smH51ROpbm@}Am-=cz<#Fl_c9bkN%OxWqXj7w- z!jha`0$rOGkyHdL@*#qGAkk1Y;mZOnm0$P^^E-sPD)q%oi zQkMf->Lx1qlTj!WKo1|0QAa2%#lfN|kXCY_nfNrwtds~Xdv#f?t(E2HrEx=ylrS<) zPbX8Tg(JR7jZeDupt>w2!6rhMQZ%5Z%7@Y=n^Hu!@C37Cwx%x~w_KYfsd769B(NRSK&@wUyZ4sjDEZY|5LbR2BxxDLs%R8j>3VnysRJ z2&9t;HBKgUq6DT5!XqVu!-}j1$_+}^!f$fZrL^!w!L+@>T0dLiClczm%8*21aK2P6 zb)YSyq^n(KV_>=>sf6pGWXuFwgm)S$CuH+7WGx1AVNqhwp&abf$rM0Zc=ELq7=Z$S zhW1395NH9BQw4REABEf}*b*P45*iTYN=6O`nRAG$GOnyJqGTbcI*O#usggW^=^197 zSJ0Bd3yjr5biFLPztps!r00#&<~77}UNr}5+@Y!MXd715av^H-+91W=LTP==Jn!Of z17XoLB3Me*T+kq(g*lM9%0-E409=txht!79FfECrMZ+D?jy#ohn*6-Fl3-4b6Xbi8 zc`;c!H7N{`)KPP_ODgB57&U;VGgn!INHr%=wM&56k=H6Np*XU-!R=5%Fp&Q)J@$QZb*HB}VHXbS}fgBQ4)5LY5p4QxR1 zThjD_=q#m#%AVoMk{0f@f;ab@LXxOTTq+@J?!yu8lY$Q14-Y2(78Hus6k0s3Al2ymDHO~A&RE?K*;8@7VZ5Y)8*4( z=Hf7H7WUF%E$tuy(}yDMLM7!vf%(2?jt_u6(GFw24&?J$*b_mf1g`F&GD# zy#LOYZT3ZdJnj2kl>b!Nk9#kY3pmc(^96TQLDksG-=j}C5u0K4ZuQM zA&HyP)d6ttQf>9hs;m!^FB9)eBwSt<@#BunPNyTs>&Wpr zy?%$s=gjeok3KddM*DkW{k^e)-dL#D{u1qBj}LKt>89&B5(|xZfQ}ZY*k~)J+DgYT z==`~vIVqDc;jRM06g@Wg6fI;*73B$}NX)rfaz+@U)d;hQLT^*e;6{5a`P`RB?`zAMk8+!A*BMH`@apt zADs~&?2ixj3(=nbX52YWk3SJH=lGl+Ke*f?r49Hh{x@( z(jNBs(C<%8iW(%x3e1qCGr=WFZc;2i4BG7hVRkF_0hq;PQKG!-Z)vx(HFsW*Dzf)CW&~Zd535s%b=TXP(-5WfNEzJpvK&YcM^dO$REL=ITDUW z!qMK&^!Md-rSsSxzr!1FxN<%^yXtV|W=nxVI*vSiT1F^2S0NF z?J!48*_gtKVKk3sOPLhq@n3+q@FAk+n4TD10SLwR46=B(+T){nd&Q#BzHZUiZ343| z;PfVb9Nqwccen!iu0Xyht%*klqP?BbP){t>V}E`2u*Y$}^&|@NZgTB1?| zHlYz^)g|D(EfO3G{j0do3M$%UAmpxZF8{=e)p9zWW~Z%W*o8rpPDi>()+Xeo+}s^W zWNN}O8pT_*(3t_r8~~~4tf3}vCZSQI2`?n&3bY~l;|R>XUD4ijkvS17CsEny3pm`~ zk3^vC_U05;EQF<9cFTmZ(b95MPAR6GL+bTf@@0G_fokeKR3%Xar*;qj=hSWs81 zg)BZDpvqLDDZmRFt$KMMlwM}k`4rmY<2_O}=15m-ij|!TlvCLJp)S3_&F{1=egVs6DX}V@pESDz^)dg^naC+5(gQa_N>G)Nz9gO$!x{ z4VPVR=!9mzT54lLNx|46b_JaPHe_2W==4oe;Y-IV%*qrTD3 zjoag+g2o!{MahXy>&-xL6hRWDHp#>&3406eN6EXQ%1l#r5!p%#IUOwHPMdtn!2uQ& zGiJ$76F`=MMi3g`a_SLp5!YtT8iVYICR8JG`lOlBmThjpj)*@w;c_$*?P(uqI?%U& zOYgo-{f+w~T`lp*;0M1agKZ7<&pjxF@DvYmxIHNtb_a`HfnX|eox-`)zb=1X>WAWA z>R02hq57T2^10o+-ZH?|c&y#NQG}+?8$rDGu|4eZVFI!26o)!@9A*h@n&w(T2^B}S z2>ZCpM5e#Us$xsrv4GehQvZpJ4hPVcgNw)9C>!W7I+g6#h%61DvjC!=J@P3)i3-lV zMN!q+vN)U66*`;ozdb&IsN50l>Bz*&0jD?D6$pMXgfCC=kQ5#dwl!3pbz|yDhuc$f z%7wB19u?$h`Z|@(rq3K>a@*z4O9jxz0~%FJ+t)s}FB^M&gl}n}lq=LYa|_Oc0vSmu zUg_N9d2^16I2pyu4DDHC`XJS>y{L`vqI zoqEu^=2`l@)0Yl*9XY-a=J1X1+8*}!I7h{-I1J3xkp7=F8w2oWA_*>${zKl%9Up=D z<`aK>Q+|uKBBzZo`Th|{2f8Pj9Jb3M#?HVsNNW<7nr7-*nk{6Q*=TIKRims7t=5*MeL*9t zCc4uc;j|oS83%#o%VqZkMjsb+jUb2ERP7R&VkUsnscjV0ff+QZN}~vxjDbDuVT^cq zARHbL9ZgBa={%<|&lSjbkH^evzka5|%wawlFMYjZ0I7Qi>I2 zbx8y%@|D35bWCiibvRkO)&3C`Shu{)m!?k%gw~JP4Bi1WQLef?;7bHxS}Ar+Y>%Vd=@{+nj`npAw$_8o?eZre+3CwO z!q#IPDVA2MLY#V#Di~Ltbz}W=4;oKqeZJC><8uY_qkUZ|ZnIJPeGj2+s$fj(#M!q) zKhbz>Bey+1>;XzJYv3q=(F>FbNQKbQoUNb$w7;V!tdo<_jIvFFYE$EbZW3u)ShZ;) zy3@4sE4564MB)~jw&7G)Gg9I>0BK!9LjszKNAvRq%vw=b;{_nwB72u*&ul2R$GZXL zXe83zo@$G7`U0*%zALxj7#m+a4bQFh)~{(eMs3H7?Bv5IG?WGF&S(JpRGtL1n^O zBN0u2G?R`dpH1q+2Kc7pWt5B&r_-PB&MR>G z@;(@$O;@166)1>@2f|$~(VljU#q6)c9-q{ZSZ$)sNIFRcRN}qFdVGkSmKo}1{07aY zB7?U@YRq7m14_7UKp;x7xf&3v(wV5|PD}m7mQtT)(~{~a3?|b`s@ICFs?{V22DN&O zM$9d^W22yI9w3X8XzVrYVUPC?$+1|pr#;%!E z)bpI#0hN%FMc$G-FQJY@WqJ+^Fnx}txK(IWDRr7#8jUTfV2xQ(9<4TP4|}{16GNKh zB@Q{gephaxJFnz%$_S8jnjxA1sFvdbTI`Gc{+zHmoV zsyEsm_V~o$GNC;IPtTH-GLpDBgTo+Lpv*DcU|}P(ScKFYjbbv-aU%tMBH~TWDFJ&du9I-sd zBUOlIv9v_?N=1t4=MV*`(wIE_BVtOx}`8Wy;OLthbqdC`!NaiZDtdAdqDxVGnzJP>`H#O+K!W>~MR% zWwkj4Wqk*>+GpM#C*(j`&zLn5ODSazh$z7h0;>eGA}~^BnCizQtpboWO>sSHi{%78 z0ET)lwqOtlvaBZ)pA=LGOs6ABl&y?DX0Yg7GFB-J-{ZJ9~WCBSr5L4u?Cp(3Mws)V}0*z5RZhy=9LRcCZjN zLzL#NJ%TZm)2V3GY=>Y?TK0l$0yPXSkrD6!q$r({KMys(QehC_9DH&|hD#k@nLvKlF1Ptug?YA8i+vB4%;_*m#Tco=U zTyA%;*c~i-zg!xRD*a&(dwh&>m~B(M@exKAc^XzixN4e zW^}knhMYWLaXaH_yYz^ap`4j9B@HnRFs4Er>BnH!ih%~JsBKEhKs8SvIOJX{S>uC0 zMz!n8_$<3jY>$s-nk^a$w>O5{8=YRiD_HE#EBa@2LNFGwJB;md;@&M5PlHmmzRLdb(Zh<>k^4_x6 zvHm{$Oxoi_j)_Uj5=9MWSS%B%b)=$HpDpqGQ~A;gc*~+9NwSz#Y%I8qLb~x8SmBwO z@N+LFMOzC%?Z!3rJ*d7`hIUQumq5v4OA)GB0!JgetfNdLSKnesV7Ng6vSKnTCtDav z*ux$lu~mP{H5uGFIr$~-V9C3(fr<^-NNkT2IwnSr3c_sQq3yv4X+I`JUiIV_Ljto! z+^UU}*;r)kMW(qZ9b{+JGZgTmK`KXYBbm&Qn1eAG=1G!eKcFVr&N`UP6tsS$3WFY|&r(}$TgnsI8ESiceCC`;c(Ao$u&v=;g~+kNkbUaxaU#dWLNVPJD8r>j zV=u$+lAZ*Vj!_U$&q#5h zK)&z*{dtw;E+v8&$BKPj!oJBtiV^NGn?Q><16MJn+9Fi!&NQG4% z(Sd=(vT>mF4#lV_Szt8@$;pH_svISz`iSKN(Hp?1y z!RV8wE*6qW1F%4q*)YoZ3@l#Gu)=s18T4P*F+OV#dwg6*JRS>M=AYw{LHi8ZN|g1eRac?GwsjCoTT+{$WtUOrU!r#l#uW3@w_0P=v66 zlGO;nVtOIKO^efq#B{vC0#l{W#>`23YK`+ko*o{qSa=@Z&r~gAcgbcvFn1CN( zCW)QmjFBBC8qbQBhN4S$G&>}q@><4zAWi;fj42pb8+oc6QAz!iE^PaX|FF^2Vfnnd z;B(l-I^Ah>WES@^0GE9}>~SKEQ2kDS)#zh|VlZM{%!#Ds`lHZwPFA^DU3y)*W zmMS)D&D{P<3Y|5IBbl#ABFKS&_o+gB-z`gx$G1PQ!s-RuKfPb$efbFEK(|_qX|Up`k#-r42U|eSbMx-Si6Pv zmVdD_fvgUvaJrH|ZsE=m?i>T8!R-ULH~HhaKoUMzfIzk!xJCI<%re4Q7wC zp*odeHj!mE00Cr5I3}%80B9N+q9%+c#5B;HLLt%Gw0(3lA}QEJsy;R1NDtK&Txs4f{B zu~-=h2h6HeYv@jkbS_uYKt$)sQx;qsXj-GYl(~90*CY#uOb19ZUY)i~wee6>UVU zB+8XA%Zyfm!m#-S@I98im?-HAoG>R_uaDezFU^+!8pBeA+@xyu5xXTVGdZ<5Yvc0K*jr2w2knU))jQk*EG3mQ#|Gi@9;;Ty9?xAI~h zG^*N0WnP%yfYhXgn&h-$BFQQXAE6<`w!>-SZekVZ(94AKSvX6ms^V^TWTl{^A_jrTbh;F&>?C7D%gjf&4u!@J5z@P3ifzKNePgUL ztXEw<=z6$~0fVNE zK}%OgS>{5~f|69J!Bm{4&?`9@f~Higx+lX;LogDIO3{6R7_3BJL+oXJH zTde_g5H9U9;k5}NtP17nXqd&oXq44K)qGI)LFgj;;}zE$(QT3yb^C*>Qm+BG7hInE zZaRa58Jy6!OdK(0{=}mgiyZ4uH2i-49QEVkQMRkPpDfl3A7osdeqf7u*yEGC7}Yrq zplkzVPOwrtkDwwM5@yh7k!e|=(8)h@SV2`*8rl2RcvKaXba99W&V&YGsm*~r;smK- zNFizqc}GDG#C0x*Dx}kLHlmt)1}PxL_nEMjjB)R~X>l^4;7;qW5EG7VyfExG`g~?)NK}0T5jVOzJf)ctW;Z6Zivkwe`nNCW{ z1KE2L-phAx^#3GdTq6R$@8%_G7*0%&u4D%-7;q~kiVfhD9;9IPU1fcxL^Rz_mK=2= zq)UzzxjOaw+kf$5>M=$Jl6oD<=WjeM)w6W_11m&IVKMo0-)9%45B#PxL_C)KiKk)s zffcEg=_fQ-Mt|b*%*jdqWX@jlCn6$Y;|Ie7817H}MEWr@kp77dYT|ejubWt|mWoeA zjZb^n!)jR!rn5gPVU|1{$!TT8qw;uD6kx?;$!x=A`ckq5u&lVO10~FGu#Fsg@||0^ zZWTgY|Ik|iiqjHVNSIYu1eCBB1h-^hf|%+32f0aDSpF&mcR(a8Zkp&;;h!jH0^baX z|G92KT}e;~G54Iyw(Qt#^-bUSm3!Y~)bat%|1lE=XfSF{&}j2_PVnK%Vcb1Lj11Uk z#U3BW@sm3)&Z2htrJJt**6p_mA%64Hru&~+$AmnHd=+wi4`f0YMAK4w8x;oOvnJah z3KnIjLqC)V)#l>Z{0`pOwDb%h{#I`9T+MN-5Jy}{_577BA&Rk^hG z)-ZdtfUS0<{61lF3#x`jw}eM^VFITU+#ZM915TIIjW1j3s}Eg3BB@B~L~oD#y7SL7|P1*aQaZl}j@ zqpUqXZW%h2w3U|ru!lWP%uAm152<2WL}QwBsxg(q<*HM<{!q|^DGIsX%iER+ey6gu zh>Yq5#*5TCs^rGN*dHjlIWhAioo^xGVW*p%xw?mg)z0bh8GB%wEK%nMA(=7~)oGeK zx3+nb6W8PfcnT}rUD4x(wJB$%4%U|1n<&?k7kutYR{7L1&kt{ z0e_HA4M<@ss?}iRD}=PMGnl>`%!CmEdCxG=pd4fxnRqu%Ly!FBq1H9ezSmgA1mo0W zOo4GcX5UHncz=h}8=zdRcw~@}+wEbG6FD}fFsy1SlgJqf%}JHz5=1Nul@?*-{lX{^ zvL&H)xDL7?*g$DuMQ)8NA|+@UnPP6CoT=g>?O_rOl!Z_@SZaCzi4_INK{H(#pkYHn zdDbK^U;uZI{aD%?W${X*Tgm`JGzyDWEDahhqv{HQk-%SWU(B5gQ*F&(9EA$=v#tOA60@BK{HM>7(xf8haz=aWP1)e77r#H0`r22k{`aU1f*c$Utl`6zOgacQy|+AM8J}r|;1A-n|=ocCGI_xGi*W`#{ry zfu@6z&X!15YiuAC9|#$<^QjBZ2-WYj+H#gZy)Q7F{nL+S7zbi($JnxV;|7==^>dBw z(03i3+YS9<`{y4v{Q1=k#$dyc6DI_o-6zDn-pe~Duq(O2{N79>Vrunj9iw4 zKqxCDBbd#|Cd8ug45W28`B$K4P^X{jJGixP|L%Y0vd}ibExr1d4*-U(KK(dt`MqJ% z(yMP-@z4XI`klwJtH<@cy|?{Y@z4V+9(v$|iHyOWlWw1LxKdD>V)dskc8A9&y}rL; zPqeSg42uiO%&^!WjE7t7S=$~bW>73FO0Y<=f=u}|dQkek>PRx!LP&y;ELWY0EL}VTPIm)kM|0*9!Ary$;SglM2}!g%lbY9IH2uer zHRCQ3y5$i{)(@tw(+8jisAfUcJg4!D1aI$Z#-~_9wbxDxNwzxVEZec#pDb@VM&v%m;qdst>2kO|jwJLtQqb#u*HNr1H{TM8y@80Z zk=Pz5E)Z*dcPSWV5SS&O!R!}CgVu!7rcxPbq;3#MRX{j)5`;xs5ay;1$ZZA9e%_1= z6i^1ULkb;%i(D#&aHQQ^8MNm%7a0;WNIKEFxLnRaAgjR3WnWC&Gt<9<(B!uz zNSl_wEIZA$B0&+`GV|5kTZ#pxTucjD0~n28rGQvW@8_WoVLGe zw08Sh_UHXN{}gu}IXu`G=IfS;`Ycwm7#6m=RO(YgVIDNS`65Hd14T@1lWg%EP8r9fNaTx}k8i=_eqM(5s zj19sRni>}=b}~?%Y9M-GBm)hyI=0gL?RZ6iJhE$uUw%#j@m5S&}8jsW_7Dij#^V<_{@R zxsp=FBB_W~u^o|eT%;*Ff!3k0N=jM%s2bpmp3)HyU%&w_nhvz z+sxdV>BFyxnLB;EPxrmu&w1YEc?>s3+q^-f$Ag9^lJgBNuDzm&7DHrRAq1`M(lu9V zVH6`dsu@r>jSV&>EnRqm{u_82qb=YPdlqv$@_7b*hvs!0u7i3x73=)Y!I2D4T`W}p7BAzTk(`cL|WjLH!BN9vpur7QQ+8(-onpOZg%cJyPZ3LyEU5%*}p?hiL5%5Fz z(+f`P_^sI9IiFrmt*>)zw?=|{my5>^Mn0BHs?>xzwm|6 zDW#tN*eASvY57N=%}y_Px#Ac;kNnA5{d05sq4~~x83WSkNXLmoVWRa2HuVCY0R_t; z5tJ)tN`u+}Qsz=9R+&HZ79Co)g)GWVB(oV|?baWglM4Nb|L*7il%BDW!(x^TG|LNI zdK#QtA%Mg4kh}=;I`SEGJ(iHoLa!+#@QRXYv(0b)oey4JoZ8o)IAJ*PQU^BaUq!T2 z*A~U?s`tpM*p=Q->B1BGPy7BLUfg#+38&WMW^u<&c$f3_xOpaAhot#<8R-67{L3E? zT6mRGf$DgI;^{byPODLV>m~i`#FckyvfkLZUthbMKDN_w0*3Y{{uf{W{{Qm)i_(b6 zxErxnBI*PoORku3btol`(ngq7gqdC@5)4N2-%x@JV-1o`-WkEEcd3;6%0K#$AH5kZ z_kGmC0Nxa(7Z~8_3NRv59ke8q=s8%+8UXPJ;8A8O782uaj6`Z$t`-cb#}O84CF5nn zU+q5)oHP}0bS80o`61!weowsLE0Ays`@Y`G#?F(C0zh7-Fp()v7B9RlQ=DXWM$s5^ z3=Yr3&t(dwcBFRR+*!{roDb>p#7v6B={Sjl<}}e&c11a`toKC&hMI-~DY?=D7#MaE zTcVa$#Sv1yDP)Dw9JRyjGiZZks6(9gki@Cib zZ@&V4Xm0Cls@|NlS849-6o<6@Y^FGoDNOpsDOdr9W6}}WTL~TmYX8%lE872$w9&rGA* zz~r{jd9Z^qA*CjHWMrZjzg(YMp6g`U>>8{BR=jfWwV zrQEl0 zi$NQ-m(6ENlkLjx3B=-Nqup$Hxk7ek5x{GfH`6%$>4Rg}&y?e$PRK^~20)oEh{hrr zz6OUck;HcHp%~G0SF)IF05rE8wHIjxP2VviAVQI3F1-E0N{5V7V;H844f< z!<%iic9L=_E28W^=;7gbUz>p=@h9GX{l(yi>BrwYCU?q#Ux%*FhF_Y>6sIx;W6Jxb zPlZQ(_PPE0jDwAP*|I;JXtz481~wbmX?5y*>~;@mJ0bcWEJU^2t;)7P5q3A_X3tbl zA`bOz}<$;R^`78VF5e>v*Qm z>=uW1MRBbKfFe!H#A`4DC`_=70&1=pZOvT~d$|C17cZGCAlDe7rPiR;#<-&dAiJC{ z63s#aGIYR~F2eBv=!F~67&m|7>Brx@{rZceb@3Z!$ug?z0Djh=nD!@TGQ}zIGNYa6 zv(J6{OP~7Wmp=8$WM+)5W~bfg)T^Cl9b3(ImyM}TXAB=ut;!a*n~({iD8F#NdhgBC z@MLc7Znkzey<8zTyEJk2UG3^_b9=3|yP1}UoGbull~kloiq|kZYpeOM97ZC_%GI8k zoF>R@GVf{v1HZ&dKkT$+CEpPB-zqzQ>@!r1Dx8A3RjB(@kVqs}6?YTA5U{tf^ZYeWaIhv(&qGwp&FNM$hKQ_^r~4v(>XUQ2CI z_70$8f&!8^qxP8S{)jfgbs;($ee485>Jbt_XH@p!{E2lqx)s^-B>V4De5J4NyS*@7 zNS?oa9eO-p@Uz*Oh2r@~^($ZgwO`Uu8j#mOhcfs_fmZ*?hGDWje(6_!!2;rz!gi-w zuik&NeB!sT2ZND@< zaphg5i%kF|2nZ$*RP%(3XPOxSN-=G4 zpXF?jF+%3wigNs^ASHM_yqUD=Ee4z(v-jVZ$@ZtJpHjx zeCw;v(;xJp8dz)Jd0ubkxUaDD%|G}`;P8#@rc!G4|Ngz{xBul%v(~BCbov%sjn>ZQ zN#TWc+F0!6i@Eu8jfeM6;WN9nv)WdUn#*~G=K zt>6Lecn0G_1^i<0^A0&xJpwSiF zIGJhhSIFfLxSU)y|68ZE18RLsOI^$I{@R&io0_d{6^9$=0NZj_^t(ax>OpwrQ%x`w zfiH|iLYznpC$>nD9V48uB~})j#>iZD*gYx2sR@Bdayht$bE`JDjTndDrLYFet<#=0 z|34j(5_J4l4UvMel_Iq9aq5@Eu70f<%9h7x@+YX#?O(+4t9hM4 zO1{@`efv~YL>}_nW2zt{R}Jh7S_6ZkpiEOYf@MYBsdIMA{q(9p{2EQVzdrfy7d2%6 zCPJe6+VDJ=QP-0Donk}=1ji>YU4J!s9%=z4wc^IKkXccqgY|jH>m~wgM&xuCsz(L8 z*YR6+VvCedvR|yE0X8kRNv>&V#T6=G6nL{yONz79$!|%?kN*i1WRc<1KAY+Ga`~64 zoi56;I?-#;rk4F+V}SgS>mc#U+Ud*wL*zOU2V9zXb_yWUWyi4IZV9D!M~h7u6Na} zUcYq$P6XKw$@7d!wnC}>)%5v*Zu~rC>zAXG8D&*RoBhFvv=W&h|J+hF!w=nVas_Z{ zI>oOtQDbm8h>^6hv8S9ci4))cnX5C3wG~w~D;lF$d|N<-L%JF7D_4-tlROVEo^6RM z#a`;xTe*mEPz#HTg9Iy)i7+0fZjDZ4p>W~K?(;w6ooj7JMYXY zPkN^;NGr}c3tXQ^p?k*f9DF^?;{1xJiE{Ws6V7L5J}Ei5_FU)m!Q}k`nrD7P?|dsu zo%!aD1Kuty$2D;yrLJ`hb;b30wMo;5;{8U|@%)yIejrWPo+$(MN_O-e7Vo3~c_05PN=?6~S5!7&-;Oi_AH!$J4{Rw=w z^P#Q%)*jw>VEth;HPZ@&kSco>XVHvdi8nkEutL)O3OVsUG<&-FPG;RCgGIDxc-S1V z*>>p|6J$E*EUV)&lk{nQQNBp1Bj3IBos-qq_QRSuW4XeujFVF>jqkK%vagw}W^OMV zJ8aCq8#<5EQ<4uldczx?)^wOYN?iV1ErMmgcZ7dH^@JN}pU8KpC?kHv0KCMt)_7hB zeH$0Uf5;bi5KahZf{NSLv&gT^G>s0yph?^z9xie%ZK+)3b6dsO_0=_M^X zdR;Uo)1re!r3P3orF?iIymK|5dspLkJ=+f*ThrlD3`DcaJuD`6P9pZEh3a)VrfGK{ zJt#wek}R5paBDv@b-@|bzI@?Oni_v3p@a9YeVV8=@4Ju4qyV_YSlq)fO0h2Hymz?q zc+#XcpI5LB8xZ#o{g?yfDFo9%PyZ;^s2c%WH6oX`Ppgt z7<%aGIS3Ib@Z%K?1264&B2kJ+0U?<<7?2^os2aR#X$!fIDU=XgKa4~)3^duY9aF`b z`+wzEel5<|%@#-+1@CdC&$ok>;it>58zBGDWvkLI4&6jQ2@5gZ*EzlNMW5gbCy!#* z1|zw^7^*ibWkPn$gvvCeitoH07l1rv|6sdlUZU}JfumeL79T__G#cHNM zkb%+_-oeDvLQ@GFx-|^D^LOqFJ#;xN6Cn07G-8#m5wYjL2#X81vT6qRvF3hRNzrr{ z43Y%6Y8cD>ZP$k!E?7dO33 zjvTqPgo?4f{o~5k*qEYS!P;f1SoN|4xQ%aQu-Jlz`M>|=i_g@xw5??4B+PgBzRSnP zsNmd5>J)0O6rC5r88-uqr;Wau5avK%X0j&=2@QcUn!&FI$GH`w1j}vO-kCH}&Z)t` zL(UF0J2L-`RksE|1P8XH@l$lYke>JKXHx#kJvh8JJQ*UX@$2ysfnP-Y$DXyTrQ9n5 z((jH;*S6Nx%8U9D?Gm`FZT}zbE0xJ?&tWOrtD{VMV+n--!p;YWXIW|ZvA z{V$ox_4>)$)wHCgA#LXx+Yi_zq9B$|43}TFvOI{`JiSqc{k>z&7~5GI6M|Pvq^p!5 zLWSNqBfKP#qv`fBvzcy)30f0Mf~y-s*LHq#o+r>c$(#VDZ45zI3{M;?vyDG+LVYWL zG9Wtdh6=Oo=g~~q>BY~#f0hY_{9(6z_UztuxM060XQmNRLakROYww@C{-RrZbw6Dz((b^iy8PN8NZ=*vV;s3#>3XX5*NEbZQGb~%g&q=7XG^JgTd;N_i zI55D%L4dE_$1 zknSH`>yysN@^^U2SZV<+kkP6J>2izkX9*PpGZSR$nKIGa6z~(Pbk&0;u&BDt%?5^K zT(rKjUcS+};d1hBxVz224L!Gee=N>TLGVgeGqvjIh;(&xdq`Q?!N=uxKx~a>t$)7v zYBhw?zWILE=Hukm?)?tiFt5F2>mmxD`u5ghmi3Bc;)w9C*)6lW%69D?yX@S_AUmQK zWw69W_6kw-TuQPK&Da-qn;mFpF=xcVzZFVmA=ZKw#(`7&8(|}{bl?baFs8Z1$&CEd zCi||%FZPeAJanCW6AVtZE5mMJxeiRk!Os(gx3Czo>acKb$|mSR!3ee=!jysz2gje} z?gdzNK5`(s`+Kj%)vEK3>qDTL zf)8w;zhcet!|YgmSf-%yT4HXbDnDy-`nAgdyr|cSmTGNytYmv3ySv>^NaF3+f7-FQ znHq<4=7dj7wev=M(LQqwm0VEmKAn~E#V$?9aOWnzp+Wn6#J02M+P`yBL}o%-@4lVv zfh|S8<<_^p7Yw##38KKtqavh*#xB~j=xd4{u|!2*Ip@mFXH(i=dOWJKts!KIhzBZr zZsFlC2?6K<%7$r8ueCCwOH~kY;EfAl(erSuRWKf@{-p-3n2bYJkmS&u$liwTDIa}} zl@0dXPw`csamrdaz;oBO#rgRhSO|h|`A}6LfEXy}>2F^~WG-N3z48>yZNAxoL`h(n z@z0*iK3DA`rzk-qF5d8}b3Al83sfXx(x=yT&vpM`VNyTh=M;#HabNS8 zcI#iqf_zHgyBs9L>*`NKCyxFNq4bjChf+(8-GFEaWoe!fVw3|7rc(wT;5o5kEOLYz?iYmQ5}QE5+cMlA^H=};qMPM?HZ9mQV}@g=zi>tEDbW9>W_v~8j+S` zySG<6&@CR(^KfSo*xPXG+1zhImfbashNmwSH4vc9soU1P1kbAqkTUNlXDf*R)7K{g zy;1(_@X5NQ=9zFGl7!293@pQj&b7?!d&lS~CW1`z+)n?&g@n`V_7F#Ertf_FtJ!5+ z))qrM?7;asbp0&T@WySkrl<1NrD)I;c~=%~Z<+s9>VuGC!P@oNqz$WEmF4+{U4(Kf?y(m(>OU zu=B^Fs{Z(8meh4SA1dZ*Lv-zf^T&0d z$IRmE6$7F9E9wg`QH$W6Vf4U3H3H$^tkH2`s}^sgo9V~BWTt2I*${7pcVE3%fAgx< zODFoimG{#`zA6`7jwA@$gq`2=0hv!jhVJB#mpN!gR9TQXgB-bda~H(RMfwzCwxUqK zn;D3s74Wd5of%B<@t?0FdKXzdIsy5X5D1_~S0hJ2%Vc$XLk zv(b8<$O5)SZ>gg3Od-J5``w$aO3OGiXk-r#C+}g}$N6C*GY=Ll?=KqGxjz2^Qj+iC za=e|x=jtFq)8;8>={x=+*!{#y$GL2~02nFy9-niVPSBrNK16b-> zQ|JBQ-Z{_E-dz=w_jZ&1Q;%H;=!Vs_9XnqBhDX-E@CJ z71n}cm9`yz1Pn$6EM^7MXN=Yh{uB&T#^26pYZ+YG^^L;rkLmZsR;vN>{PS{=Y^5wtpMiHTW9R%I|cK50!s%G@RnEv0z z+I$-CO#nDOL`H|F?XT1*XDB}9lD^j>wijdmgt@cDB=T{dsq|0F*)L4R?M+rUo1bwp zGzA||K~=$>zE5Pc@^1y3pLbQX1-^I3MKV}~pDTwTtIHA$8Wc)U^vkOSi0F@9W#DCu zZW+E?Cv206+fStKXHr*OluHgyBJXqk;Z!6L2s%FU6(Z*9!(}5TWU8Q07xipeyvxmOWq9BZahjWn-=y3U?19{HH{quCHF6M^$V`|V% zh?C3XeqGYV`JCq`2xC+Jo%G#hTkuJvNKqGb{n;bu731KVWj36Z_q1|mC6-z3lX2p;l>(e#9KS&)AeAL|rS7Z=~JM9^{+>-X; z8i^JbZBYtoPtJr-SU}$1SZTOnpW;|yspBLoepX)BlGzbj$E;!)V)gFU_zckqWk?yh z3e}i`;uO<;`lvYg=;kPgpI)7BB>I}&*1=(GY1qw~V&tx0l0+e=w~(jeLdI=$(NHZV z@|j28N#e>hg2xrG^H`#&#=fyAXN*nIn^Ku!xVMwp11w`r4iM!E# zf3t2|8`gxknsk>fR2u;utLFAzq`Yd~=G+!@LT?^s10ZrB$HorVwwC!OO9Te%3ks&P zrnxBT!3+;`=RXr&T?v`~ny9z7*>HuiCRPl;kVEJxrMTefxR6AiQN!-P9x=Dr&PF|i zYCZl?R2RcN5nrBxQgMOw2vQjmgWn1J#$b2LF%XCC@&l43GO{(j87m)5Wv;-Y&ji9< z75}SMIr>&VRI042CkbEsk~-fAA>_vTl9x&W3~P~Zec8TTdufAC^g98#-c)~C5~B-l zgPKR3>N1YU=B)zOKQ)?7Zw^6_TDd;al)=DD9v^!UGbRf)vnYE9k9_d0B-@A#GvbSIbe3HzJ)6CVT zvbOPcK>iG__{@l&{TV^@Z9<3N<8Xf;p=FJ5%dlv@^2`~Lc)<96`FLq>=|3{!VFqXb zPF59FnfK7eRAn#VQ?5d}-pQ}PU@Q|c`?%9eqXeNd4LR992B|B}hx1?^%mSWojsg}D zYLX#$6f6CGFbZHyd@Nh8pFh6p?psnq=sEPubW5RNIvOKcD4!i2?sS24jAvu7AEmCw za+Aj&anY z&|1HkFv8%8S74@HHK@UasnNp8qLtxMNDxHAk_6D8F2$NAK?h&Gck9=0GAp4Nqx%)& zfOlxb!VV71NX8*V(JcV5W@{H*&u%*%IlJJJ{U{cZE| z@dfEQ2!~J5v~S?R(s%pK&^KX+FQavqs zeT^^k<>Y+fLSlOi<7YHme@XYyb;?>y$hkZcj2rYJtHMv#Dx^1&KH^_0Fk{o>{LtoP znb5NEsef-~Y5AyeCin)QDTr z%AptlXSex6sawGz@9D2z9n=nk7qTsX=CQn75H>2G1VkD#(~5NToPElD4xgC>9-WqK zeYcDSKR#l--%8AUWoho;%s@6mAft|V?&dP&E%~*)C*RIRvmusX-!U(gchU0nDK*kz zwRBv+SC_ptkRTX<6R*$6lw&@muHW*!oN-=0R_LAG9=q|{GgbGaMWpi3S0og zk;fKr1Q|vC!%xZjBL_XZM0-C8yQPKy72bg6D_Gf%HGz<CAh6< zb~pXUB|;;xXa@~2n0cYyzGCHO#&?F$mpa*JEaG7{V|!^5S%kh6L2Yy~++G-kuVqaf zX)M5}FsTnQ>8E+`@dp*i3`27O=Hq>J4{5z?yV7^32Ip;u!}rZRL6-Fo6K$vgpJ-Tc zf8&$EGmn;*{oasmD4W#YNS#;oIzZo*6SyIJE{K3ca6tKNaT|8npRmeQ3kdF}to+Bu zSC=h;+s+s0z-@rk6PD#)0VY4|_3fq?&W2i4d_dpdg$2A-Cq35d3&gslxexK7HFdsG zsTLH)@D?1Ep8bQ;0$7>j3r0BrpIOCyd@_#7! zmBd}ZXtl%U@u$>1MnlqGbM33$=d1k8VHe;TwpM%ZKTp2JELr&8*?k(F$e+1Cx%~7a z4G=&YPqYq~W`@r@qrzzWlWI!)51%BT`XO9tNM$2{^9_4MvYXJ^D_%lS$>~eIhPLAl zcc!Ufkd*$+{W>+;s01o*AZ*aN3VkxIijtNQ4Q<&x_A|6XegG1(ondpQAWIiw)+fWz z-rtw4kiRcezy>Zy`pQ4vH>y5&38n0dY8*PfcVV4_SW^TY*5GW}DpF>vF6}ZdE!KWX zU&)`3X1N>eYdiP^Uq=vF2_8&-V!AIAy>GEye%8b&9UkZ5_B^iqoowoO@m7Jk9u7Qz zT$g9^zm_%3t@ds~4AHz|)ql;L9C$$ozCyNs_9~~1(}2nE_hW4Gpu1h?X)wJ9 ztE|t8xvV81pqw=o0>6w1`zO!yN6~8egIQQ$)@^UQVrf|(*wFbEr#vHUS1`&GmT~U1 z_uKW!bi7yCO$$~4ckj}YuGsHWE4NIy4}p(9{m(o??bj^NgI>AaG(sQHlSo!Zc)z6IObL&3v z9m?*QpZSAo^J!qC=q(3@4qCWX(!OuKNiXd)f~a!C%ea2WxxX$(gfnCbX6R@Vn)vo3 z#&^tvC{qt)L@`ey6yd_$ZMF)+{warb-bj_#EnFV0m@{vQ_+6Ct?GH(zWY|Y!dASUE zsSm}pqBJ@M8h>(hcex98V$jG~3CS3$viuk4r%%KxF|IOk%6(|^1*Sqi0fv4tw1}0P zw(F*KOThi|EG~|`rb_ad(zDI!{?jK1T8$mhmmlhFc0Qeh#ZT~nlPK3^E^QgMLAF9^f@l#`Jz})FR*?rUB>LeT+Jq2cv30Gh7g$bNm*_MK@@+`mN{26M&IW#t0x&zS|!Az2+ z6|Y^(0#W*_tXA+hcf2k<0&9(q`vv_iECi>q zf1J6EH#Ge@+b8I8{j=uEI5<-O`=|N!THdSgX7uQh+eddh<&bmCs#`@6_;;eWHNdaS zD>~RPCg-b5NEgJGq3e@t|54!1`W!a1Pi6M^4MiDb6cMo8B9&GHgonZ&l4(ufl6+F*l2m2;$$cN*y}@B2dWVM|YdUYU=nC|n-VXnMo>dK2oOa%o=)dha2@X8=nuJ$&dS-gFesxTejVo4xbz5+dkm| zE^y@6O!>8kiA9T!mdE9p^LA_Bo47~kx}gr=+&wHtbN^^m-@M&c|b95Ok zTHH=N-POr?c6=K2XP7g&18aQbZLnZd- zKr$6(y{-!$CIyTbau@sUy9g_pFl(Cp`c~)xs_8xcY9u6Tc+Dn zm9CDnJU>aE&;yde1)J{FLBDOuET!-0mTV2n!ZH^WKKd3;AHK&wX4&icJbygwc>SnQ z-F;I&|L?TV?&5w5Y{u{XxAe(Xonlyx!@gZ1Y`jslq?I7IOQ)>Qh;1{1w^GTgmw~L0 z*X*RO|Vxya@_lY=f_#r5&Lp^!RH4ZSzfNDH7)N7Bo9Z*gaXp6noP<1-kUM# z18aKk56LyNyip&0-@?S(n3(ijg{t1^2HKB=6jk~<6~tOlr&e&K46yKFhHg^2fBz<{ zDei&@3F~A(heZW9P}PD+pb+>S0U6Kh{B_#p;FF0epP-mLD2DU>ZqxS@`~^MWhU(DK zX*BgsjOjUh;h`4*j75sdMHZnLckoy81o7ZFo%RQ{f-GJ`gEotFnVto+)&^zM7rv={ z_ajoJtp9ZMJaCxep#>4QJf0y;yqUDQiFu;^C4J8206*b|6A-AolYI08y=wrCa&mH- zuxMc59rP&p>Gos0RkHvBc_*Q)@vyq1=gH9bCl!l2jS1o=?V$@G^h1=_z}^~u1diIA(~l`^0f z-Obm}0Oj#B_7ks9BBu^rsR^^20$B&Ne`Bb6Z-8MobZ}DEgtkBgNOjfDCAzBsSG;#a zJ((XFS4S`-0z^#V!0!ktyD`37ko+5NREHm|v=dv72*C;xkg{7?3P(B;Be;bqq2WIu zStra(t9whSe}if((=a(%LRB3K(I4nKYDxZBAB@fZ_!AzumCHkeXe^$=SA0iVvGf&X zW6mAe5un*$!WTmJHJVlz*7dGjeD^1DS&l_&$8)p^+%E;kvJN-J3OrnO3By=cbWJ;qa$jF) z0Y%UIG~``R$hxV_t!h7+ao;q_dD6M5yjA7j6?Z%G@Z)+|bLZ4=fgTM4m6#IURCb1{ zKZR-$3yfe5=9C4iwyS;EDPI#(u*uNl7_uuvRrv7g7Ya~g#QeCWErn{(!~8BP^`K73 zEQBe|TgUe5oiA{V$H+D7F!B8uNKM|>-j>hCNbjzo0ArhrQyuLh64~8|?h9Vr0ehR+GxICyd_eBL8z7|;osa7^!A4{%hIcGrnPTWIPPtD% zPYqL}jZDC8;EP<W!nQt*r718tW{pHbE*Nn z&GYAFExS!&J2Nmx(Em$2xX=E9T?E2!Oi<-R|0 z>Jw0-G+q&sY1;07!P5H*=!ib~aZJ4Pk8*op%AsN-i5&Q>y7cu?Up%;CGeTBqaot{@h=f+a_zT6#L&@bFg0oB3|SKCF}a&%tY7 z!e34Ww=o_qJHmdN*gZG_)OTA{)3#hq3qbU6%dBn|ak=EVxBT`-X4coDb+#DzC)#|c z-J;pL%MYeW5Q`1`%pLEzs#ixY9xBTfYn~0j33~DZp(4EwmG;L%n|AM=j>k3q3ep^&)T7ToOKvLChvYJv@251Z1W?qB!un3C<< zSJt%pC$YRo#xVeqd$!MGAJ=@LN9T!rbx8o)dB#%iZOb$3Iq|hB2s5 zNGHR^^CXuTHfhP&%JHIj=1dX&t(P&y&RdoyFi-lGJT_w{?Ud%bhmmzIId^^pCyh&Jr)R(n|B;s^&-{MyP>CJlhsIV8zfJjhkWHw*G9 zr*QXMx4pw1GmsXwxmUA#bOwg*XC6FwI(e;+?*Dh?9rt&K9uvbEVYplx9`-k>U+ArJ zK>&ew_h%!Yd(J541;Vv1*Z74~VM^`RCov!}!7lD|W6pBBZanG3HMk$9TWytPQQsJ$ z&HI4_uYx1%j?=sEuUm?dg$b=r(o6+Uju2t!JO=&kGmoq+O6e6hzOqsj8&7o(jsoIs z2onr7NCGW>iRvQOebU4!h)w;shVzYEE)e4cLXqI!-n(xCsYEAFwADqsQU-vdXV}NQ zwx-Fn>HS>a#Vo!j(caSLdfDy~sA{owX=ql+-m+J(iG(p0yL<^#-RM9a7&q0XWU2=HS$MrrK>+M&Ap-!tl!NZUSV?oz5fPZ zkeNwAttW0G=>+R4?J#dc^~(#=!smb!JqSr;GavvRIpWzbr`nsM)0^gkr{MMx;GV!}xMzzCYqbj`Tm%4^DjQ2XXYwd8^!V+u|z7z?>&^3$BxD- zN-+gG+@ws#F=AK+mysd9UW8WE-pH_z$b$|{22U9ejy)|S{N63c+G=JIRY7`HDw1Ss z?fOk5c&L2Fi(;*ey~F=oKm6Y=$Gm8fn%|{ncEd z?fzs9b2qh35K2S+;(uwH9#!yj=I}Yct_xA=qTtmdnZdqyaxdUI3zjrT2-_sIC0gh6 zq}Q72HXxg;sON(vrz5^9JE5y@sA{xArCQU&Tvo8_m#w`RmRYwxHtK^|5U$V9MuRz~ zPKMYRCUPN8U5CtJ$dE2fFS;$%hWv|Z-vDEL79bEt6;cJ*&N~8 zn$PJg5SLqNSntjD@e+D%e47zR?aljQs@JIS{jr!}?-U5PY6F3G4Q&-lLB-ZPSFU-1 z#&QiX>_d+s)`_5=QR{(MVp}l3{a(kl+2npDG$zz*7`eQ~g+NvhaqSl? z!dCN8)!+Oh9%+kJYal7BLYrA5w7TzMrnc(`#@1u->lP?3>q$fNcskVp2$;sT5S>v6 zuv;`b7b}y_1%C>D=xM8GhF1)}%QiKArd4N|bOz2zZs#L2sl%<^Nr3f^YsFNQ9oy@6 z$T__l0xe(3qh@AF!1D=q{WT$7_kpU=ijHeF@#{zLQN7`$GEg)vAFD>qbn6sb-nEW< zcJ(;r>9X#DbI^A%~2QF3cP`$jCqMjO&p&#@yG6sSc8( z)XOSX-6*fxl)s2}%hlE4ab{&-0sVBhJIS*ThY`A7BO|L}F<+#!Fmh)PT`OKxw_9Ai zFey5yt&__36_tM6lL9!ns7I`KO}an|AGgfN+1+nJp4BBC3)@QPlSEm67sA7X3F7}e z*fgGVL69_F!4|}&rh&8 zgVB&~6`7qCDCNshN9Xi&zHYLQg4ciXPjq2PP}x-BjgZ|J7JlO5iCrj7l)%{4>o4o| zRBF6HaDK~n{q#iWJ;n|J9?%D-$&%f{qcliF#Nw6eK+x{2ZkV!Fwe8%nUlPG|;bj~jk zP)00FWHkT1_^x35Puxy6dYx?LVnk+Z#V^viinzz8lg@Z|Hd<(h8rP^|>Xc3)_t&Qp zX6s*ETEcT|61#V z++T1QjxlR}k3Kb7h1`8+iw<*1tsJzD{gCY92hlu+{v{l|Aijtfo3H za7mAB3UM@inAD^Q{8rA`sv)AAYnC<1IdXnzg5KlVaCZhkw2p^bwRjr55`0?w=O>v~ zK&OzobtQh`v2ylqT)OrJMkL$vOweFVlLPv|v{0peKTk<7oq`nyTfJz4?~9anyx%X6 z#MeSvl_c?{Vrne)0ZVx4c8=d@X_R0+vl`~^KS~jE zL&mf|V*A)}`7LWTfuzODNJV!CWNQRXaUS7zla+pvA%nJ0wj@vXZlUiOzhagwWv9Kb zdD24ZMmwh;mJhE4YWR_w3;)0L%(T&QdX&!M6O2eKCR&xKpCx?XzS;lOF^Q5buC8{^ z@%#izY*-XjfF|d{ki>wwE4JxT?8={My$TS83bkLTj-$ffEd;4-RQ>?3ntWhDGL>{~ zL2ZA0)sW$omOt?i8>Y4qgcPfII)ohABSBuc$#Lb2i3!BwXb#>t3fM}rF9v`?`CLHb zKhhgRm>C>$M?$zX=|1$|VYkPn-}aVjk*ZyG0-N4Nr`GhWY%2?&xLj2#*DcF8?X1@x0VS(WCKt!z&JaUTTfe>F zN=#2i@e`^KQ#t_k-Y~rUErqWp64wbya$9f=IlRv+R=g+`47T~TEb_iaw)|$r!k}~( zyb!#Wovk`aH}_pOTNOUbFu?(;CO7VOdw#q4ZeN`52`rZQD2}*^M?|I2ootLS!?)ML zci>y4HBwz(t;5G)-aSuaO!^B85gf_H{`>H94n*#_R#e(>k@1^RSw&{lNW~&;lb+2* zInkPfBby8W6Qjj2P1lH*I3ahgwr@1PvZL$<=6LkRjOryr#QV|G9F&`PR+)AUy+l@s zKEY5!D?v#08s`)In3iA2ady4V-=;rP90WwdvWEZ}KtzdQfUa zi~XTJvq28FCpJ&PH0&0MF9Uvu{FOmRObAs6lf<4caspykf|8t7*VHmu#ROND2ZMQ- z9xU#`lnxGxhH9LmJkQbcFFMTXchnT`LOybvjR|7hR6k%-V~#br{31wLIB-I6apbR| zwR^tjI53d;Te`jYZbPVkHHAIHW)6Y3_-*^XKnhh4+Y|*z&7O;eEjULK6xXNSH?-Z~ zzb==wtevF-Mcp(!zF_pyT;27bH%mNSAH4ssaOJ;Q6&qfs&8Q~q0+0qWmKs74sDA_J zB}ny$BjN%Cb1R3DHv&TCmSr)LymO@K@*>iL9rcm_5PTe!XpErL3eY<0FgGI)@Ze~& zG1q0!tdd69l8L&I&upx5

<3B$IOcnUIZ$eP{81TE`pLg3GrF306PS_rOIlpWiCi~p%eVb`q&Ctg!vFqP~Ik% z&)E7(&sm6}TF*-7o?J~=_|Yda+Vh-y>*Bc<_b{#3 zydREs-bKo*;~!B@I)|Ym_TJG$UeZj7s2c!X1qxB$gQJpkLR{%F8%*eLh~2FD;F?|1NnGE&L((GC*d;xAfRUL$&QF8ulLZA5$rpyHQFWt-yXIh6vNVm_nH*E{ z+Jqs*X}@kRYzO&#)+D56i)S`8i^^iIuylMr^n*0>fO1>Bc#=M{*^%v8zVDM+X?Wa8 z8v1SVdOga0u|F4Qy=`5e{W88F$|R38>ER3tA=>N8%zd9b(iEqes+<=j-HtY-VZD5S zCbUUf3h@)$LY125NPD41w}ClW=-QqNHL4b%95yUjp-_B;Q{g68{?e8>hPZFlc3t|WgP{Y7in(6 zrf@V*T5enBjA&;usqcKuBmgj$V%oAGY(2Hu^O|7F2#FMIq?#bd;3;1cpV#pfQT#wm zV;{U<%sx8Y2NMnNg7a%lp(@#^H3BBcz9Ky-Ot)GOLMb9zDw!E7BqcLnoBcVqcdq0X z>QANOL0eaAP$yTApn}qAwt_OQKR__vU&K2Ur9be{!T%lO{r6Re3vl(uwgQ{i2@~y{ zd81iG1;AcqfM$wf-ZR1Iuxhui$2U3i-qBPvI6iqRpf zB=_NzlBL|PD4psR+qd<@H-<~H$Ou)*Q}`Bv91iWH2Tw37nm`HHbe#)SPqGtOBAX-v zY^s5&D)qC$zlRPEZ~`kH7hdbELBrtCA*gtGbPieSyfZ9sLvsHOOfVh`#UbzKe1#L2 zR@yhwa%o|LuquWA#dV@^YFLn8pB(jxjq=Cb1^e}GE%qeTq8DaEyrAn~Dk+3iqQ=%) z2foE`D)UDq&#D|&+yZ6JK0T?wBAR}dh=PVI^Y$@%(#21oP?SeQE`tg+CpWU#dwIbs zXX;75YyzyLssy`#-{n?p{^@fT>QdjB8n{AIL$kUdah6}?Vxo>YNSQgOf(Oz(?I@}L z@l9J}cRbvg64vhs;1TkBg|MeHigHOBz+!O{GJ!TA{YLDMxnJez5r81nhqhFRZQ5nw z@Ak)UF?4zI>GgiVgD^sqhl=bVwOal#`$F~og%{=4v-4K=>EF&->iP4dUwLg{aJ%}@6$^tA5%$D;UL@?Y5CUuGbHi3}=N@|`o6E~k(8 zzK5y*h#W4oDrWzFek`8j>3=RwzG2~-2YiA6mmBVb;@?OAp>Kz76%_yfj(oQ-8ui(r z@f71%nC{`>q({qJb7sw|z7VFGrh@btx__8eZ?aX@pv zLtiaTal}w^1q1T~lNJ+J@%xTUfTgRJR8g%Ytz9=kYG4`}-mDl${aZ>7GR81K8`s}!z|Tg6_@7sGD)KS{~NkcF(M}v1Sv0_V`)LBgRmU$qwn^@{>U-eJXy9m>7!3o zStRg;^whF-*l_v1YHnk@<9`0|m=ox6|5!eJ=z7xD_YuhM0YW*)!0Ve93lV0O4;-KM zzb;Hr`jES-SuCwNN>3kwWH5R;Jus=j^D*i=ua}xOHZE4d*_Fb7dQ+qyDXo|@$^0pf zHcE=FI+iFvB-%)MfBF|c{DjqXX=Wi+xpJFg2e82M+gNJ!f6?@wM{9#}z>dV2DIRby_?PH%Bd z$3BBl!qg!a=m!38u7rtDbe7M>Y{cbj-$nZ7?8c=e_os6tDjL^GEE94I`ju0~dc{jG zAD}|sxqyr)`Rb?cXAwv@OjQzZn9DMabZw;kuSuDVoCa$}sYI#tV2B8ieonjk!6Hy?3YhQ$xP zPczmw`n_M>uMW&ssn?zRT0C~$&RI7DO0f+c&zr-mkB>^$Vpki5z7$gqNIKr&y%!iA zaDC>KrMC2ZQ}rIun+4(>@UEBK3rkHG#BvX>Km8T$t9Ly%U!x?677GcLtFc%u3X5o+ zQxZCwv#xo1gKm1qdc|EEp1tN9)x*CuK)1>3Ik$qeG6IpZl~@;qBVJPH1EGQeEflVE z`h#@}Q}#vax9cyY1%%M(K=$laD%@0zzAF^9D3f7uJzU!SIMvJvq*~7xmzVINXA1nL z&F4_CX5@!~^TEGnonPfdXScB`WuiGU=lSZZdYP*p`GEUibOUthRab@Q2b&s6@Vn4s z#}5kDW2f317nN_k=L=M8c1NL}vd4?# z`SUA~;!D2-x5I%cHHbP>r!z&$KSz*tVopJ7GJ?QI3U85i080}ZZ4IobskOl=(9ElS zDcIurTu@fWq?A08_r`zs+&utlQjvq>ny)8(urhazPny@Y?#2GS;`l5hj@L;l%An7} zL`<;l);@v^=-y6jUyBw_?Ee7@LG``|KhsEc@PmFGJMB)rvhU}f{C!Ku2^^p%uf7NT z>_~Q2e|WdCe&3&(E1rEs{HeBbv$?f)$R|hqiGT2$fB2%tHst>Q$bSan4UAH5DlmR9 zNnaEVI20&Z1sLj9Wfs##7R07;XhagoMdf;fIf*a-(g%GC=Mcvm8RzB35ZyvDjJ7~# zOM$Kgw2~f78a>fr6Dhg2vdK4D0x7ZP(dAqt3r`$uC|Q$WlPWdl(F`osXysxG63h(xB6vtncLgaUp^0X2wRIGWhD`H#CjIvqzm zdXKA*$vj6A^7V3g$P7YXTIH?uJChFQXl$-zXBNHeXnKDGm*RGLOJPUR{wRRLnX5-7 zyv4eHkg-x5w80I=1dX`JG&=~=BM6kH5?(+BI)sKLYWB*-K!8~>O33&5+z_bqp+oQr zEM9D9Xn`q~0Q)nV1iPy%iRO$GbUSs)wh`L`2D{Y$7*ik~yK!86n(fBoVW#TkO9Q;C zT`yy^k$z{=5d%|LdvK$4ab$Op=jXhcCCBSWDZGVJ4lA-Dl$FAm&_^URFBLL_!m#Vu zk$u({{q~MQ;J$6;n~Xk2f7&M;6EPkeN#&I7xTYfIR$=MVK_4hLyF3mO zm=tGlUzlUqEw=}0qG%vJFoNL8->z!3a-gl=8wYaPy2BVd$61flSdqhy{07BrSSQ&CS)?gX^|v<%l8B%fuHG9Vqk?F-j7^1&1&)>Gc63bwQ*YMaGn3C+{dmbav%R zv}ZqYHAz&$U|$Dvfx^8aoER*XO&vzomC+_~&1$Q_>QPc$b%YRUh;26l;$Iv>u8}cw zE+PaakFvv|TqbG79%W`D&R2NcjC&7yKFQZ1wI7J##C;<%cG{grHNAA{*dL6y*W0yn z;q28+e&Rs(zq8)hcyL4pO~?&@4B@01Se`aD76dVoRg{@sDNiZYE~TJmH)2g`Fk;fo zg}jKsGLLXm35w3B056LMpl|I`cf!8WF*kJRSULndS^OJ}G>B6I93vZMzD$AS)y$yq z=G06WH{;#|ozK4h%Bf+Wp!Tk-N8W#h({WhrxYO8p(A-|j&7H~4E)Vb5)K$luE}na| zdhgAB1Jw2tas*f`4gXQa^eoX=oa$MTum=Js*h+-5LvRzG!g_DWtP~|5x3socc->KA z?eWd+3^;NnO|kosiPCs5=o+l>+>r8L;BC|bbs2ImMJfDOWhV7#~fd6jqzPbIL?@8dq`Mx#Z`E`MUCbm4KK*m?-e82OW*CUzb8!D%r96XF2Z&Yh$d!0ArpHc+6P&p|6u zaRm*>8+?vcs7t2w3n&V(*q#vpcrQ{nWsdG@WzhyDq_a)^G=prQ1e|v{@e@>Z?|?3n zJ>;v(C+8EUxlX@c+ke+NpUR!rgrM}mD~ve*;C=mfhur@O_SyBaeIs$ZR!)<| z=@=T1TlLl3jrDuknWfz9@&LsOEVNUcEM0m>_3pJ!qkf3YSg2CTE+0@apo~#anK}x) z*tJW#3ms6)Ta_%|3DLwk#ZU@r3Oq$h zW= z6trycCna38U>Z0vwhnJEI+uAB{@bo5h~y17RRzuxYo|yXXC7t76sC- ziaOE&jb>#us?nn@ZmE9qAC@(Arrq-*}~Z_uAkkfdGZ2OU3h# z+G*p1fnn_7@8C#Ta;avZEjCu+Fi1y!l)xPH<^sV-nFu8yQ7F)YSiGP^G0RFKpf$S#h1);*`XA|Z2#q=G1d0Aq zCU2j-fBpRq@~Qj2KJfnO2Em`i>vYewXp8zf^tk_ofOc#5&F`gXk&eR|+1aK1!g=sAgT1}6aliiXUVwX} zsZkf50fj%XC4kt|Vhvtku0V)CX3Fkt1U_gDkYI zj8z39k29ljJ^u19J>#1=F(ivhlCm(OC`Pit2naE6G_2TaTQWVu5~-j&WIv>XY{TIk|TB-k1Iu36%H&F!wLmrOTGfF!%Onsu~dZ2h;Zv?|RCX(NrVzcIBXZ zIjqOFoqHoZvqQ&Rx|tDeh*+^F**FUahn!bemI-RlyM=&~Z?j4P(+-Ac8$v>S6d9=z z73l3*SYLDyE3Iz^Oq(km{S7>$ z%TMN)F80!J-1pq#&>2_{k=5U;x9s8%fJ1tNDp-qSfldFwNeeBKs2uJPbk#sRqPsu) z7MoN^WWacnmaWoB)5Rz$F&FCypj66~Bmr@>rU94FBR^T2_C{Lc_$QuG}qC+@$6>7X6%(vgnX zuU@-Vz57OXcB!ySo;tER>h>CKm zz;&h!I18IZrj3Eh?(Lz5jRvc)T!9HQBe$AR zN?9mQel*4I5Oaysk&Z)y;epa-X>>XrM?E@?dimC?`GxbjxibUr#4kh3V~Z-rd}E8k|nYu|r}=zqRQYo6#z7 zS8lyJDrYdy&t<0<3d@&E7vEl3y14HR!rXwQpONBaR5Vje#g}0p#!Ybx<0jFS;$ZTY z0CA>&CT9#vx+*dL8KAYtaSYHco27`Cg}^>=LAi1&Ra%L0aGWi=P+gI;g3yZ5#J15c z8xM|+X|Yy1jvk4649og>GR&G@9zPWEn7dVj_cxn=D`pj9a z)_@Aqq5zz7xBBudChY$$y zO_X5IVq2U_666op0zfOabb#A1UvSrwDdtYBgwl5K22UC{D_LcQ4s9%SMC4q)&IqD` z7-ifXB1sje6Gl4Hak#_tQYM{_6Eo_ox3SsCFI^mz3wP=d?>078`Xtaq6bqg0L`o^k zIu}f9u~x@YO2rj=ISZ0at`}`QH&b%#%Tf9z8l6ns*k@>_o%lh5EK|x5y3TZY0OUNS z-UjO~M%fPqc2Sr9J*q`VN5Db1P7zK`#5hwNPDjd#(~*u*j>hInr`;%?d8FS4(RRID zyMMjYsP}*WSZJc7t-8jTIqGW8M|7%9tu+y)6k;CS_gF~)V_n9wNy(9mrSAL`hSA7r zQngEvo{cI-(~7fvfE_Ko@)n5|KI71HuBRJLY{a^>b(Z!xm90o5aAD4fQp({bF; zdjK(zbfn|3Mr&uYa`*MV^k*6y_ba!4*e?u62u0h64chdJ7n-O8P7y?`-x+SR*n)Yt9~#)+KeP*mKCMR3FVBBa=X zg4-cCX>i);g8S&0AhPTtw5%kIvw4cLUhH8JW1*gfyiw3o3H}gwO-0c)v$|4o-p96q z1m)$-KvDz;(vglM8aR+f2Y4whPRF=|ado$HcONir*DK|luMAUkO*AFw)13vHH4GpS z#i%&&0$w@{PFM;8w-GHw!o|VJUm$`VJdQCAR4&L9T}%$|V|#W8Z0;gCE`Jh7M$T;M zdWLapFtQBUROF<{1b--rX_=Js0U)(?Br z?nu6eENLoNeU-AMqfoF}Ku$&_-DR{d+zJgQiKMIC(Y`8D$N^VZIC=XmMJ(ct24^ug zW*oi+B5rLMH`*E{%5rOV^>u;0W*kf^20cVrh3SDpFBw zikEF927a?Kq z@DqbrL6&r+j^m2NUakn4%)pd79qBmaQCqzY*?eQ;L8o3l_@goJ ze%jg#nwSb)wRUCaAP=FqxD>>qlN}Dlz_mab-YhGF0T8V+FUvm=?Dc>}{!lj*p=>Tj zM-rGur+HAE;rLGYCg3h)}?Z5|z-J?b>y9#Z>^sT$$ycP}z17=}5<+ zkItZ79R9>~diBzg4&pG#K@c5?h%tYc01=T!KvIJQ9Bv_$e`Z#Oz~N2y{eZQ0pg_(V zkhR=TEdaZ!0s2TPPZZm5rQu##$rcugyP{}ga>I6*a!D=r~M>>ua zi5mkNyL!1IWK*%NbfkP(G{3qeo4P23riwcBO+s3s<+N(BI+Re`Bq10c8i5j8`XCI2 zl=MXc;Yz_UH@edqCA9+N_MDOOd34E98@mXUl2~AxxcIU`qbxWs63{aiLemIx(Ih{a zlo6+63^;Lp;P+-HX44Cpj+7EBhx?!v@FewF$nAsCk%Z*{8<`-1C~xAWMqmY(!4Y<5 z*=*#p7fzb)(G%mXOyHE%1R8J#NBDrh19wSnL3PtTw$gtBKW zntQkd1fsGUovo-mI@SzqpUBr4KuX&ndNb0}ZJr>`RrjAU0B9*;N$0;YojxuOw;3o+gTA-weP&1OYB?QaM4+xe@9|T}MONs|&5u|ew zb>oK^QwgSa>CpH>j=)066XMlL(0Nb@GvkhaDzJLA96@gl+-%hW_G&|RYNzq(bR7Ak zq}}ec2AAITr{>dZn2u9Th|zA?4PBN@agqj0Tj+zs1fVSI(xp}01`tsC{UbwPVTc3_ z*j;wTA*HlI$zzNbB$F3n*@z0_v?Kv+4$DshxcW5%Q&gk_OI*HyDkCdY0YDIaM+`c+h-h0L1OF)aWk?@l z={WMyt`3gG;Aj2POnME|ae8Sn$i^5A2gY2G_2N2R9l*vo(9+LQf$;v_!juKu*-#m= z1+ESfFlQ922ageSru`8!ACwZ)8mjsEg0&Wjfkc#U64Hed1^-uK#RHZflQLpu&KyHJ z(s9_MRUJxrC_B59Uc+>pW=0%wIRIA_6o>;5it=N$d9}ef6!IU2<#tW-0l6f`-w%lGm0v4%M_B$fm;vrU^3Ebak?PUF94JCqIQM=QavwexD9a>Lfd{@NFNCO%%CsX}DP*6WCy)s89yC(NCv^Go)97?4cd1Vj6+--_1P8vO zZe5DN*Kx^#Hx;9khwDq%b*P|w`G0=@|46^o=}1R9(s7IiAgk-O6d5%LO3h0YsDUn_ zWdbTxPAfPnDo1!X;+&Sm=rdWH9-)QM?@~6&3HJ9`g0WWmI#Qc14KH~k&bj6XF?24Hz8!yj3_Ic`e0N- z;mXdy0*~ENUx{wH63SX7N}dr+09X-+i3q8I8~Fk^u0Wx&8R-RZ z@m97zVH=|iP@7AING~+g?CfHzSswt8!lQkKA+6X-M>^7xj^j*;8PNkJym-ONlA#NG=VM zo&CSO+6;O08=@LC!qY*7&OyqLL0D1u_kZ_K%yI!}m;tzcCii8AsD>N(dJ1SXJ^C+O zc7b9}j{tT|o=gEN4~vn%$F!JhT?w3y9o{%ybwAS(HI1HmuxfDofwKzIw2r+7#=)ie&tbN?mWS4*~0eIwtmu|b( z9LSeWAj`omLrS*(u#CUJ{@yu6Xl$zxdGXME?xKZ^I%g?|vK*@!02O0ME!R;A-w12^ z5VI)=DHvoY2adI#YiXLKo(J~p$m=`M^{}NVkY_4uZ9uy0cPIt8A4OnaOJ%RVkUbQ@ZqIav zig$_}Ze0p<1fU%29Pq?;@+|$MMiImE1@>cU+K* zLOvsWu3GB{Pac&;r|s5UCQQP@-Bv9(ikrs)ita}nn0{h(JosD)59qvOfYe=wkp#BB zb^BHFhq=sc2X51#HLxj1v6rAg;Tiuw%Dy!{k|a4U4EH~?OdkhT8Ey|x^zw(a~IQ-AjhEX!C7E`AQ&D{CuMAk=^ci^^<>E;BH{&sFRHm~;c zi9*1WDqJR52GUf&UfxC2e+|a(bI;wte{k&L&66-3H=k3dpabPN$TB^i1_8Z}8%Sj= z_qRUIF6f301qE%v;Jnj6CK&J}GR(8z^(;pM({MY#YEbrBNZUhOry=_m;%ld-F3Sj< zrOEt)06%Yk>(qUb6P0Z%3_=dge?FN59S4Mx9V6cIj!Y)7EaU_%T@OaY3F%w&jI+9O3JiA{0aI9nrfCbdKrhGNz`lN z!J@7ikFug?cZt7Fufb}xqw{=T>%jrEQnhh@@kuy;kO6X^-oBr8jzj&-`n?=jYTbZ8 zS+cemM%u2=#W1}3u}hx(t{MtbyJ7zmZN%+m@p+F}gC;O-pA%ykL}1#vBQ0px=S)(( zVE)Zmz9F7BEC6u4+!UoUX+8LbJw^S|mG2O=bOgp%PLGT@Zxiy#Z$?u6*VBJ^c?ILp z?T%o42WH>Brxb0R2C^)HFH-`S|I3W7V2g7+?3Kl6Z!P@Cisd9;pFwO*bee6|8y|u1 z#5oDV{#!bCB#SL?7Vm=E|6;=nQ|A;Z-{B0Es zw;E^2Yx#%#vv@{B+z}YB7v4u-@H@Hi=)1M->MZ>u+`l$YouRFSl`dAwP^clEm(iuP z$K9##eOKQOzz>#=8L4j)NuHM6{-lyN0N11b#@N%RCQfL?hb2V5=GD@#}~!|DbE+tbOW_ zf7a6odf;Ll*JyV$^CX}`i4FA1Zy*tNTiLLYQ&H0N3m-?F#LL8sCcl|GdgaSbj1 z?$8e4JFSk^iJc87~}is2^KD?)9Po{qw1bajqJWR(wq4*%KwL&JsI*|;i5bL+BShe`pBpdneB_X&-3UDj zPkc9msJBpyGUYGI*IXu!`$%TyH|sIMl>xN#f_8k5-;*n%=XhN%JKj1uRkm(IQ`X*s zRu0PH$K(7UaSqYKTn(-n05kvK8B|%vAjWvAd;qrbj%6jE?L30MkS|kn#EC7_iPlDw z@T0QRrwM1}G7tdEb}s8f&8evha2AQIBvby}UgIC9yz}2DPEabGCTAhfDOw>kU6=oS z4|z{8%s)!c4W65g4iQ{I1e6D)W8Ul)Z`i1w^jHhbUry2FNM_ z&((rcqCX>)L}`2IbjF&>&^ zzNiZ?&~rCTCPS!~G0c4Y5YaL({1RpgOpfm#u2SQloa-s08&VkjlY{*dJze}lSkdpl ze=OD9$tlhF1F_D~`p?3S-FX4<5izOB+g&yHIB183-e7f!seUaSr#(1DD&V4U0%Gp` zd|FUp+SdW#xBHuYqi~a)XePD|KjE5-*poLGMhY~|&iDMdT*bPl-3N@(+4p6zZsCnW zUep*oL)7^|Yy&%@&hmMF;kqd-KL8EXf0kl! zgA6Nx_CDEQnc&cnEn||93&e83DC+mTCQ261(VUNpjL&aqr=H&W@H5oLODaM+arZkf zeO@_~Z&E=9hX24uUGA7bFj3>;fFNie+0x{ncyBJ&SqF_w0O+OhG&Erq`VZ!FEGor?j_J_qB+j~D=>&jPz0`kHGA63CJ4kei{``#hg!M55>;}1CapfG> zaQ-mT+@CV6AbcZvYdZ+(s}kZ;MLd`B+bw%P=Zu~u5 zvf1_x0AwE^u>3E`4;@`)pv#Dc72rCcxy##>7TkVUqVD)Y{g+cR_7z(u33XdwA&2Jg zWkYI-_FE-=x3uQ?z$U%WY5>D;|~(V4G2`#F9AIx=px^|q73U)S+zX&WF`#qk&W z3cec!CJhOoh%#B;K)C`4O{S#lX8yY|mh32=%IK+!HqKZzkPgM|9INRwG3>_ULf%|+ zflrnAhm^;kMRB#S=Ctea0RwVTKu%~ZTXp$%&^TN6&${%xmlb8774rGyqA=o-SRPb9>F%#Ztw)`V zkggF@B@=T5q3DZp@dMc>;ln1uySh;Z;WPkRc34Z}ri!LsjuaM<(C;uZuX)pu%~;~w z709NL!GZv^G@*hS4Gg{;$~9^V{fWXkf6>qFi{V&7%3G-D^mC%{MI)**Ain$r_sLQZ zW7%=}G+G7V8;V8$OQB?P@n3jZaZH-rsyOL8FNrqfJz9@a?yh~Q9oPm=>9FZr36 zFqpZLvsaQ$XlZVb7@FrTDy9*cJ{*0PG^#!CkEt>SS@i1?1Db-WWmX-EZ1Uh@t*N`P z`eNbdSO9DKCu3090_IzL0M5E7gfHz~OO4?p?1qVvxAns4kAfrACxY*YJq@aYT>4Y9 z%#63pvFoUv^vSjnQ5lQu<);siJ-sQre0`67aNm`9;i4%~DFl0cC>Fgga|>Yiag25}G-L$+^`S|C z^E^Zi9NPh@iy*3^)5OnEk~L-hIVM#`>3C5q<)zS|e9i?TR+v8$^6VTN(ZiodvL^lU zjT0+AFRC^09?l3QR#VTyV=fkTAKbiGDXl)ZURNER&|g@FD~aVep2p|6*ckrpe}2v9 zM*Yp0Qoj6Q81ZB=rAY#DO8~k16wGRX?W64a7>{dhZ#)R^-qea*hyPXKL z?8^UyOHk1Yq5s*}Xoh}j5T)$QlpxSJuU}{z>p$TQChw!dKeC^Aa&G^JtDz8l_$wq5=g|>O$PAG$3f;Ka_%TD9af0;us=81t`qbxs zx8D1IM8%GC|HoOS6-pae&w?JDHwXvkE&pJG@tZA(sj)hmFpB!!$p#N3zR-c^;#!(n zB@iwBE-*lcAyHuz=ZRU5Wu7h+#9h~@)@rGW5;%;X96f!pk6M4^*Zk)2j})J~k6BzP z;u>bZ649$1b*w^c7T={DJVgzpuc~XeW5;pQDY9g}-lLIQX>D@3%%nvcILrY&hSUfH z+)^t(W}uWGjgj~SXD`@ZG4<&nqeAEq6BpUq%l(^cmrZWK9wWf;yo= zN1PDgM-mR`ASH(mLtO?H0K(I`J-U)#QN5qD2r4w1SCuLv8*Mft6zB)afVV~h!R*pA zVwuki-IrjFd9*uvF_WH1Uv*%=xCp6T+JerPn7bb4=ZL;wIO70A{sEKpJKr{8PqM{z zavagWcCv^9^k7p9Wrw`G{-eV+53p=ZJkT?&W+m(v`Uw5#vcxrootYx87Urqnr(}+u z#wFDBP~sm%-%xG}r$SbDwg-c#+o&Vvyu;8Am_!zN@;Z# z|Dn&Y^b8^3#_+h74VHENvf0nDqg*It1mUd(8hD*3ilI)eCc6DQ zF6uBjrDURgPIT%vmwhC%K5=7{J6Gh#vhU!9%9t^CFku`}nLo5ta25w9&K7E&xD*T4 zJf};grIkWt*FGT=qSEcBEbgl>A|12oBtl zP4+XI7PSMMMHHjQ5Qm1~wrdvE2=aQ)?!*lYCc-%3JLqm4a=KUa%1l=-=6^@gYnXHS zZn?-e7a6qdDhWVZ0Y2IWm7X&tAh!bcaczuod(ifpzySr=P_JH`FhQkpW2kE(Kbl}r zoKo&Q9Z-fH4ka8f3FEJrf? za<~XbP~({_w8zv+9%`nfH9`JXFe9Du@(?y8N1gt{Gqj@jXb*+d%F!IAZ!aFB9e;k2)?s1E!$(Mci zCZmm>uM(VMd1DxdlAm$Za$K)5^akcu<(1p8f-Nwc`MvMaP|IwKA}thFu=h9zlQ=g8 z4kr%HCkx1X1izm!M=|)y_$*PW=>|rO zmWEX~8bXu(I0qh@gOpKxg-GL*d_@t@lGR)x00RF|g$=O<1z?z|In>9cOn*Z

+=0 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%0Ag7UV+7!O)R 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 literal 0 HcmV?d00001 diff --git a/src/app/resources/blog-posts/OneDrive-Sync-for-Linux-Ubuntu.md b/src/app/resources/blog-posts/OneDrive-Sync-for-Linux-Ubuntu.md new file mode 100644 index 0000000..20666cf --- /dev/null +++ b/src/app/resources/blog-posts/OneDrive-Sync-for-Linux-Ubuntu.md @@ -0,0 +1,88 @@ +--- +title: OneDrive Sync for Linux (Ubuntu) +slug: OneDrive-Sync-for-Linux-Ubuntu +date: 2018-02-22 00:00:00 +tags: + - onedrive + - linux + - tutorial +--- +So, a while back I decided to make the switch back to the Dark Side and moved all of my computers back to Windows 10 Pro from Ubuntu. My primary motivation for this was because I needed to use the Adobe Creative suite for project. After the project was completed, I just sort of stuck with Windows, largely out of complacency, but also because the Anniversary Update introduced a few really awesome features. The most useful of these was replacing the default Desktop/Documents/Pictures folders with OneDrive folders. + +So, when I switched back to Ubuntu recently (mostly so I could use KDE Connect), I tried to find a OneDrive client that would do the same things. Unsurprisingly, no first-party client exists from our Microsoft overlords, and there is a stunning lack of third-party clients. However, thanks to a project called onedrive-d, I got it working. Here’s how. + +(For the lazy among you, [here’s an automatic script.](https://gist.github.com/glmdev/6ab5bbdfde5da3b065eba3fb38f91c24)) + +## Step 1: Install onedrived + +onedrived is a third-party, CLI-based OneDrive client created by Xiangyu Bu. It provides basic OneDrive sync. Clean and simple. + +Install git if you don’t have it: +```shell +sudo apt install git -y +``` +Clone the onedrive-d files to a hidden folder: + +```shell +git clone [https://github.com/xybu/onedrived-dev.git](https://github.com/xybu/onedrive-d-old.git) ~/.odd +cd ~/.odd +``` +Run the Installer: + +```shell +sudo python3 ./setup.py install +``` + +## Step 2: Install ngrok + +ngrok is a 3rd-party platform for relaying webhook integration. onedrived uses ngrok to allow webhook requests from the OneDrive API to the onedrived client without requiring port-forwarding or similar. + +Download ngrok from [here](https://ngrok.com/download) and extract the ngrok file. Then, copy it to a path directory using the following command: + +`sudo mv ~/path/to/extracted/ngrok /usr/bin/ngrok` + +## Step 3: Configure onedrived + +After installing onedrived, you need to authorize it to access your Microsoft account. To do this, run the following command to configure onedrived interactively: + +`onedrived-pref account add` + +![](https://cdn-images-1.medium.com/max/2000/1*PMR0HWH96qg8SUQPj7zFFA.png) + +This command will launch an interactive wizard to help you configure onedrived. First, copy the given URL into your browser of choice and complete the Microsoft login and permissions. After you allow onedrived access, it will land you on a blank white page. Copy the URL of this page, paste it back into the interactive prompt. + +![](https://cdn-images-1.medium.com/max/2000/1*pAu7r-PWrk9xeswHB4yLyQ.png) + +Now, you need to select which virtual drive to use with onedrived. Set the virtual drive by running the following command: + +`onedrived-pref drive set` + +It will run you through some interactive setup questions. Leave the default directory path the same, tell it y to sync that directory, and leave the default ignore file. + +Lastly, you can start the OneDrive daemon by running: + +`onedrived start` + +At this point, onedrived will begin syncing your OneDrive files with the local computer. This may take some time if you have a particularly large OneDrive. You can access the files by navigating to Home > OneDrive. + +This, however, isn’t as seamless as Microsoft’s implementation. For that, we need to change the default folders that Nautilus uses. To do this, open the user’s directory configuration file using the following command: + +`gedit ~/.config/user-dirs.dirs` + +The user-dirs.dirs file tells GNOME/Nautilus which folders to use for the default Desktop/Documents/Pictures/etc. folders. Change the default paths to their respective OneDrive folders (make sure you’ve created the folders on your OneDrive) like so: + +![You can pick which folders you want to sync over OneDrive and which ones you want to use locally. In this case, I’ve chosen to sync my Desktop, Public, Documents, and Pictures folders.](https://cdn-images-1.medium.com/max/2000/1*b8sF7-TsA3m0oj5m9iikfA.png)*You can pick which folders you want to sync over OneDrive and which ones you want to use locally. In this case, I’ve chosen to sync my Desktop, Public, Documents, and Pictures folders.* + +Finally, run the following command to ensure your changes are preserved: + +`echo "enabled=false" > ~/.config/user-dirs.conf` + +## Step 3: Enable the OneDrive Daemon on Login + +![](https://cdn-images-1.medium.com/max/2000/1*HvvIx3jTh6Y26waorFNq_Q.png) + +The onedrive-d daemon doesn’t automatically start by itself, so to ensure that OneDrive starts syncing automatically when you log in, we need to tell GNOME to start it on login. Run the gnome-session-properties command to open GNOME’s configuration. Then, add a startup program to run the onedrived start command. + +Finally, log out and log back in to restart Nautilus and from now on, GNOME and Nautilus should seamlessly sync with your OneDrive. + +![](https://cdn-images-1.medium.com/max/2000/1*gCo2wV6btTVx_Y8DUwPCBQ.png) diff --git a/src/app/resources/blog-posts/Photo-Challenge-01-Self-Portrait.md b/src/app/resources/blog-posts/Photo-Challenge-01-Self-Portrait.md new file mode 100644 index 0000000..4ad1adb --- /dev/null +++ b/src/app/resources/blog-posts/Photo-Challenge-01-Self-Portrait.md @@ -0,0 +1,24 @@ +--- +title: "Photo Challenge 01: Self Portrait" +slug: Photo-Challenge-01-Self-Portrait +date: 2021-08-25 00:00:00 +tags: +- photo-challenge +- photography +--- + +I've decided to take up photography again as a creative outlet from my more... technical endeavors. This is something I've experimented with the past, and I really enjoyed it. If you're curious, some of my old photos are available [here](https://static.garrettmills.dev/assets/photos/). + +As a starting point for inspiration, I'm going to be following this [30-day photography challenge](https://expertphotography.com/30-day-photography-challenge/), though I'm just going to be doing the challenges as I have time, rather than one-a-day. + +The first challenge is to capture a self-portrait. This one was interesting because I wanted to find a shot that not only captured a literal self-portrait, but also captured something about myself (a metaphorical self-portrait, if you will). + +I was a bit stumped on what to do for this, until I was sitting at my desk and noticed the annoying glare my reflection made in my monitor thanks to the light from the window. So, I decided to run with that, and I'm fairly pleased with the result: + +![](https://static.garrettmills.dev/assets/blog-images/photo-challenge/01-self-portrait.jpg) + +I had to play a bit with the color balance in editing. Getting my reflection to be defined enough to stand out strikingly on the monitor was a challenge. To help, I added a couple artificial lights off the right side of the frame to supplement the light coming from the window. + +To get my reflection in focus, I had to resurrect the optics knowledge echoing from a physics class years ago. Recall that, in a perfect reflection, the angles of the light rays stay the same relative to each other through the mirror. In effect, the mirror can be modeled as a pane of glass with the image behind it. (That is, if a subject is 2 feet in front of the mirror, it can be modeled as if the subject were sitting 2 feet behind a pane of glass.) + +So, to focus on my reflection, I rolled the focus out to focus a few feet _beyond_ the surface of the monitor. diff --git a/src/app/resources/blog-posts/Rancher-K3s-Kubernetes-on-Proxmox-Container.md b/src/app/resources/blog-posts/Rancher-K3s-Kubernetes-on-Proxmox-Container.md new file mode 100644 index 0000000..86b91c0 --- /dev/null +++ b/src/app/resources/blog-posts/Rancher-K3s-Kubernetes-on-Proxmox-Container.md @@ -0,0 +1,216 @@ +--- +title: "Rancher K3s: Kubernetes on Proxmox Containers" +slug: Rancher-K3s-Kubernetes-on-Proxmox-Container +date: 2022-04-18 00:00:00 +tags: +- hosting +- linux +- tutorial +- kubernetes +- virtualization +--- + +For a long time now, I've self-hosted most of my online services like calendar, contacts, e-mail, cloud file storage, my website, &c. The current iteration of my setup relies on a series of Ansible playbooks that install all of the various applications and configure them for use. + +This has been really stable, and has worked pretty well for me. I deploy the applications to a set of LXC containers (read: [lightweight Linux VMs](https://linuxcontainers.org/lxd/)) on [Proxmox](https://www.proxmox.com/en/), a free and open-source hypervisor with an excellent management interface. + +Recently, however, I've been re-learning Docker and the benefits of deploying applications using containers. Some of the big ones are: + +- Guaranteed, reproducible environments. The application ships with its dependencies, ready to run. +- Portability. Assuming your environment supports the container runtime, it supports the application. +- Infrastructure-as-code. Much like Ansible playbooks, Docker lends itself well to managing the container environment using code, which can be tracked and versioned. + +So, I have decided to embark on the journey of transitioning my bare-Linux Ansible playbooks to a set of Kubernetes deployments. + +However, there are still some things I like about Proxmox that I'm not willing to give up. For one, the ability to virtualize physical machines (like my router or access point management portal) that can't be easily containerized. Having the ability to migrate "physical" OS installs between servers when I need to do maintenance on the hosts is super useful. + +So, I will be installing Kubernetes on Proxmox, and I want to do it on LXC containers. + +## What We're Building & Rationale + +I'm going to deploy a Kubernetes cluster using [Rancher's K3s](https://rancher.com/docs/k3s/latest/en/) distribution on top of LXC containers. + +K3s is a lightweight, production-grade Kubernetes distribution that simplifies the setup process by coming pre-configured with DNS, networking, and other tools out of the box. K3s also makes it fairly painless to join new workers to the cluster. This, combined with the relatively small scale of my deployment, makes it a pretty easy choice. + +LXC containers, on the other hand, might seem a bit of an odd choice. Nearly every other article I found deploying K8s on Proxmox did so using full-fat virtual machines, rather than containers. This is certainly the lower-friction route, since it's procedurally the same as installing it on physical hosts. I went with LXC containers for two main reasons: + +1. **LXC containers are _fast_. Like, almost as fast as bare metal.** Because LXC containers are virtualized at the kernel level, they are much lighter than traditional VMs. As such, they boot nearly instantly, run at nearly the same speed as the host kernel, and are much easier to reconfigure with more RAM/disk space/CPU cores on the fly. +2. **LXC containers are smaller.** Because the containers run on the kernel of the host, they need to contain a much smaller set of packages. This makes them require much less disk space out of the box (and, therefore, makes them easier to migrate). + +So, to start out, I'm going to create 2 containers: one control node, and one worker node. + +## Prerequisites + +I'm going to assume that you (1) have a Proxmox server up and running, (2) have a [container template](https://us.lxd.images.canonical.com/images/rockylinux/8/amd64/default/) available on Proxmox, and (3) you have some kind of NFS file server. + +This last one is important since we'll be giving our containers a relatively small amount of disk space. So, any volumes needed by Kubernetes pods can be created as [NFS mounts](https://kubernetes.io/docs/concepts/storage/volumes/#nfs). + +You'll also want to set up `kubectl` and `helm` tools on your local machine. + +## Creating the LXC Containers + +Because our LXC containers need to be able to run Docker containers themselves, we need to do a bit of additional configuration out of the box to give them proper permissions. + +The process for setting up the 2 containers is pretty much identical, so I'm only going to go through it once. + +In the Proxmox UI, click "Create CT." Make sure you check the box to show advanced settings. + + + +

Make sure to uncheck "Unprivileged container."

+ + +Fill in the details of the container. Make sure to uncheck the "Unprivileged container" checkbox. On the next screen, select your template of choice. I'm using a [Rocky Linux 8 image](https://us.lxd.images.canonical.com/images/rockylinux/8/amd64/default/). + + + +I elected to give each container a root disk size of 16 GiB, which is more than enough for the OS and K3s to run, as long as we don't put any volumes on the disk itself. + +The CPU and Memory values are really up to whatever you have available on the host, and the workloads you intend to run on your K8s cluster. For mine, I gave 4 vCPU cores and 4 GiB of RAM per container. + + + +For the network configuration, be sure to set a static IP address for each node. Additionally, if you use a specific internal DNS server (which I highly recommend!), you should configure that on the next page. + + + +Finally, on the last page, make sure to uncheck the "Start after created" checkbox and then click finish. Proxmox will create the container. + +### Additional Configuration + +Now, we need to tweak a few things under-the-hood to give our containers proper permissions. You'll need to SSH into your Proxmox host as the `root` user to run these commands. + +In the `/etc/pve/lxc` directory, you'll find files called `XXX.conf`, where `XXX` are the ID numbers of the containers we just created. Using your text editor of choice, edit the files for the containers we created to add the following lines: + +```txt +lxc.apparmor.profile: unconfined +lxc.cgroup.devices.allow: a +lxc.cap.drop: +lxc.mount.auto: "proc:rw sys:rw" +``` + +> Note: It's important that the container is stopped when you try to edit the file, otherwise Proxmox's network filesystem will prevent you from saving it. + +In order, these options (1) disable [AppArmor](https://www.apparmor.net/), (2) allow the container's cgroup to access all devices, (3) prevent dropping any capabilities for the container, and (4) mount `/proc` and `/sys` as read-write in the container. + +Next, we need to publish the kernel boot configuration into the container. Normally, this isn't needed by the container since it runs using the host's kernel, but the Kubelet uses the configuration to determine various settings for the runtime, so we need to copy it into the container. To do this, first start the container using the Proxmox web UI, then run the following command on the Proxmox host: + +```shell +pct push /boot/config-$(uname -r) /boot/config-$(uname -r) +``` + +Finally, **in each of the containers**, we need to make sure that `/dev/kmsg` exists. Kubelet uses this for some logging functions, and it doesn't exist in the containers by default. For our purposes, we'll just alias it to `/dev/console`. In each container, create the file `/usr/local/bin/conf-kmsg.sh` with the following contents: + +```shell +#!/bin/sh -e +if [ ! -e /dev/kmsg ]; then + ln -s /dev/console /dev/kmsg +fi + +mount --make-rshared / +``` + +This script symlinks `/dev/console` as `/dev/kmsg` if the latter does not exist. Finally, we will configure it to run when the container starts with a SystemD one-shot service. Create the file `/etc/systemd/system/conf-kmsg.service` with the following contents: + +```txt +[Unit] +Description=Make sure /dev/kmsg exists + +[Service] +Type=simple +RemainAfterExit=yes +ExecStart=/usr/local/bin/conf-kmsg.sh +TimeoutStartSec=0 + +[Install] +WantedBy=default.target +``` + +Finally, enable the service by running the following: + +```shell +chmod +x /usr/local/bin/conf-kmsg.sh +systemctl daemon-reload +systemctl enable --now conf-kmsg +``` + +## Setting Up the Container OS & K3s + +Now that we've got the containers up and running, we will set up Rancher K3s on them. Luckily, Rancher intentionally makes this pretty easy. + +### Setup the control node + +**Starting on the control node**, we'll run the following command to setup K3s: + +```shell +curl -fsL https://get.k3s.io | sh -s - --disable traefik --node-name control.k8s +``` + +A few notes here: + +- K3s ships with a [Traefik ingress controller](https://rancher.com/docs/k3s/latest/en/networking/#traefik-ingress-controller) by default. This works fine, but I prefer to use the industry-standard [NGINX ingress controller](https://kubernetes.github.io/ingress-nginx/) instead, so we'll set that up manually. +- I've specified the node name manually using the `--node-name` flag. This may not be necessary, but I've had problems in the past with K3s doing a reverse-lookup of the hostname from the IP address, resulting in different node names between cluster restarts. Specifying the name explicitly avoids that issue. + +If all goes well, you should see an output similar to: + + + +Once this is done, you can copy the `/etc/rancher/k3s/k3s.yaml` as `~/.kube/config` on your local machine and you should be able to see your new (admittedly single node) cluster using `kubectl get nodes`! + +> Note: you may need to adjust the cluster address in the config file from `127.0.0.1` to the actual IP/domain name of your control node. + + + +### Setup the worker node + +Now, we need to join our worker node to the K3s cluster. This is also pretty straightforward, but you'll need the cluster token in order to join the node. + +You can find this by running the following command **on the control node**: + +```shell +cat /var/lib/rancher/k3s/server/node-token +``` + +Now, **on the worker node** run the following command to set up K3s and join the existing cluster: + +```shell +curl -fsL https://get.k3s.io | K3S_URL=https://:6443 K3S_TOKEN= sh -s - --node-name worker-1.k8s +``` + +Again, note that we specified the node name explicitly. Once this process finishes, you should now see the worker node appear in `kubectl get nodes`: + + + +You can repeat this process for any additional worker nodes you want to join to the cluster in the future. + +At this point, we have a functional Kubernetes cluster, however because we disabled Traefik, it has no ingress controller. So, let's set that up now. + +## Setting up NGINX Ingress Controller + +I used the `ingress-nginx/ingress-nginx` Helm chart to set up the NGINX ingress controller. To do this, we'll add the repo, load the repo's metadata, then install the chart: + +```shell +helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx +helm repo update +helm install nginx-ingress ingress-nginx/ingress-nginx --set controller.publishService.enabled=true +``` + +Here, the `controller.publishService.enabled` setting tells the controller to publish the ingress service IP addresses to the ingress resources. + +After the chart completes, you should see the various resources appear in `kubectl get all` output. (Note that it may take a couple minutes for the controller to come online and assign IP addresses to the load balancer.) + + + +We can test that the controller is up and running by navigating to any of the node's addresses in a web browser: + + + +In this case, we expect to see the 404, since we haven't configured any services to ingress through NGINX. The important thing is that we got a page served by NGINX. + +## Conclusion + +Now, we have a fully-functional Rancher K3s Kubernetes cluster, and the NGINX Ingress Controller configured and ready to use. + +I've found this cluster to be really easy to maintain and scale. If you need to add more nodes, just spin up another LXC container (possibly on another physical host, possibly not) and just repeat the section to join the worker to the cluster. + +I'm planning to do a few more write-ups chronicling my journey to learn and transition to Kubernetes, so stay tuned for more like this. The next step in this process is to configure [cert-manager](https://cert-manager.io/) to automatically generate Let's Encrypt SSL certificates and deploy a simple application to our cluster. diff --git a/src/app/resources/blog-posts/Rethinking-Dependency-Injection-in-TypeScript.md b/src/app/resources/blog-posts/Rethinking-Dependency-Injection-in-TypeScript.md new file mode 100644 index 0000000..2e186a8 --- /dev/null +++ b/src/app/resources/blog-posts/Rethinking-Dependency-Injection-in-TypeScript.md @@ -0,0 +1,395 @@ +--- +title: Rethinking Dependency-Injection in TypeScript +slug: Rethinking-Dependency-Injection-in-TypeScript +date: 2021-03-30 00:00:00 +tags: +- DI +- javascript +- flitter +- extollo +--- + +
+ +
A snippet from @extollo/di's Inject decorator. +
+ +Anyone who has read this blog before knows that I have a particular interest in dependency injection and inversion-of-control paradigms. + +Over the last few years, I've implemented DI in JavaScript for various projects, and I'm currently in the process of rewriting my framework and its DI implementation, so I wanted to share some observations about different JavaScript/TypeScript DI strategies. + +In particular, we'll explore named-injection, constructor-injection, and property-injection. + +## Named Injection + +My [first foray into DI in JavaScript](/blog/2019/11/16/Dependency-Injection-in-Less-Than-100-Lines-of-Pure-JavaScript/) relied on purely-runtime code and allowed injecting services from a container by name: + +```javascript +const Injectable = require('./Injectable') + +class SomeInjectableClass extends Injectable { + static services = ['logging'] + + myMethod() { + this.logging.info('myMethod called!') + } +} +``` + +This was a fairly efficient and scalable paradigm, and defining the services as a property on the class itself made it easy to account for the services required by parent classes: + +```javascript +// ... +class AnotherInjectableClass extends SomeInjectableClass { + static get services() { + return [...super.services, 'another_service'] + } + + myMethod() { + this.another_service.something() + super.myMethod() + } +} +``` + +In fact, this mechanism was reliable enough that it became the basis of the injector used in my [Flitter framework](https://code.garrettmills.dev/Flitter/di). + +### Drawbacks + +This method is not without its downsides, however. For one, all classes must extend a common `Injectable` base class. If your class extends from, say, a base class from a library, then it can't be injected directly. + +Likewise, relying on service names makes it hard to know exactly what's being injected into your class. Especially as I am transitioning more projects and my framework over to TypeScript, relying on named-injection just wasn't going to cut it. This would require referencing properties with the `any` type annotation: + +```typescript +class SomeInjectableClass extends Injectable { + static get services(): string[] { + return [...super.services, 'another_service'] + } + + myMethod(): void { + (this as any).another_service.something() // NOT type safe + } +} +``` + +Relying on named services also makes the injectable classes inflexible, as the services have to be injected into properties with the same name. Say, for example, I have a service called `models`, and a class that uses it. If that class wants to keep an array called `models`, it will conflict with the injected service: + +```typescript +class SomethingThatUsesModels extends Injectable { + static get services() { + return [...super.services, 'models'] + } + + // CONFLICT with the injected 'models' service + protected models: Model[] = [] +} +``` + +Because a named-injector would have to bypass type-safety, this could lead to a situation where the TypeScript compiler types `models` as `Model[]`, but the injector overrides it to be the injected `models` service, which would cause runtime errors. + +## Constructor Injection + +Since we're working in TypeScript, we want to do away with named-injection entirely. The TypeScript compiler has a flag which, when enabled, emits the type metadata for classes and properties, making it available via the Reflection API. + +This is useful because it effectively enables "naming" a dependency based on its type, rather than an arbitrary string. So, when defining typed injectable classes, each property contains _two_ pieces of information, rather than just one. + +Likewise, we can enable the experimental "decorators" functionality, which can allow us inject any arbitrary class rather than requiring it to extend a base `Injectable` class. For example: + +```typescript +@Injectable() +class SomethingThatUsesModels { + protected models: Model[] = [] + + constructor( + protected readonly modelsService: ModelsService, + ) { } +} +``` + +Anyone who has used the Angular framework is familiar with this format. The Angular DI historically worked this way, using type reflection to handle injection. Nowadays, it uses its custom compiler to handle injection at compile time, but that's beyond the scope of this writeup. + +### How does this work? + +Okay, so we have a decorator and some type annotations. But, how do we actually do the injection from that? + +The key is that `Injectable` decorator. In essence, this decorator is a function that accepts the class it decorates. Then, this function uses the `reflect-metadata` package to get a list of type annotations for the constructor's parameters, then stores that information as additional metadata. + +Here's a (simplified) example from the [Extollo DI](https://code.garrettmills.dev/extollo/lib/src/branch/master/src/di/decorator/injection.ts) (Flitter's TypeScript successor): + +```typescript +/** + * Get a collection of dependency requirements for the given target object. + * @param {Object} target + * @return Collection + */ +function initDependencyMetadata(target: Object): Collection { + const paramTypes = Reflect.getMetadata('design:paramtypes', target) + return collect(paramTypes).map((type, idx) => { + return { + paramIndex: idx, + key: type, + overridden: false, + } + }) +} + +/** + * Class decorator that marks a class as injectable. When this is applied, dependency + * metadata for the constructors params is resolved and stored in metadata. + * @constructor + */ +export const Injectable = (): ClassDecorator => { + return (target) => { + const meta = initDependencyMetadata(target) + Reflect.defineMetadata(DEPENDENCY_KEYS_METADATA_KEY, meta, target) + } +} +``` + +In essence, all this decorator does is read the type annotations from the class' meta-data and store them in a nicer format in its own meta-data key (`DEPENDENCY_KEYS_METADATA_KEY`). + +#### Instantiating the Class + +Okay, so we have the type annotations stored in meta-data, but how do we actually inject them into the class? This is where the container comes in. + +In our old paradigm, the container was a class that mapped service names (`another_service`) to factories that created the service with that name. (e.g. `another_service` to `instanceof AnotherService`). In the type-based system, the container is a class that maps _types_ to factories that create the service with that type. + +This result is very strong as it enables type-safe injection. In the example above, the "token", `ModelsService` is mapped to an instance of the `ModelsService` by the container. + +So, when we ask the container to inject and create an instance of our `SomethingThatUsesModels` class, the container goes through all the items in the `DEPENDENCY_KEYS_METADATA_KEY` meta-data key and resolves them. Then, it passes those instances into the new class to instantiate it. For a (simplified) example: + +```typescript +class Container { + resolveAndCreate(token: Instantiable): T { + const dependencies = Reflect.getMetadata(DEPENDENCY_KEYS_METADATA_KEY) + const params = dependencies.orderByAsc('paramIndex') + .map(dependency => this.resolveAndCreate(dependency.key)) + + return new token(...params) + } +} +``` + +So, we can instantiate our `SomethingThatUsesModels` class like so: + +```typescript +const inst = container.resolveAndCreate(SomethingThatUsesModels) +``` + +### Drawbacks + +The constructor-injection paradigm works well and addresses many of the features we cared about between named-injection. In particular: + +- Provides type-hinted injection +- Separates class property names from injection tokens + +However, one way this falls behind named-injection is in the sense that the child classes must know and provide the dependencies of their parents. + +For example, assume I have a class: + +```typescript +@Injectable() +class ParentClass { + constructor( + protected logging: LoggingService + ) { } +} +``` + +Now, I want to define a child of this class that has its own dependencies: + +```typescript +@Injectable() +class ChildClass extends ParentClass { + constructor( + protected another: AnotherService, + ) { super() } // ERROR! +} +``` + +This will immediately fail to compile, since the `ChildClass` doesn't pass the required dependencies into the parent. In reality, the child class must *also* specify the dependencies of the parent as parameters in its constructor: + +```typescript +@Injectable() +class ChildClass extends ParentClass { + constructor( + protected another: AnotherService, + logging: LoggingService, + ) { super(logging) } +} +``` + +The issue with this becomes immediately obvious. All of the dependencies and imports of the parent must also be specified in *all* of the children. As the classes become larger and the inheritance chain becomes longer, you can quickly run into ridiculously long constructor signatures: + +```typescript +@Injectable() +class LargerControllerClass extends ParentControllerClass { + constructor( + protected logging: LoggingService, + protected config: ConfigService, + protected models: ModelsService, + socket: SocketService, + renderer: ViewRenderer, + other: OtherService, + another: AnotherService, + more: MoreService, + ) { super(socket, renderer, other, another, more) } +} +``` + +Here, not only does the child need to be aware of the dependencies of the parent, it needs to take into account the order of the constructor parameters, which might be irrelevant in practice, but could break between versions. + +## Property Injection + +To improve upon this, we want to divorce the injected dependencies from the constructor while still maintaining the type-hinted and property-name benefits we gained from constructor-injection + +This has the additional benefit of keeping the constructor signatures smaller, and keeping the non-injected constructor parameters distinct from the injected ones. + +Luckily, in TypeScript, properties of a class also emit type annotations, and can be decorated. So, we can change our + +`ParentClass` and `ChildClass` definitions to look as follows: + +```typescript +@Injectable() +class ParentClass { + @Inject() + protected readonly logging!: LoggingService +} + +@Injectable() +class ChildClass extends ParentClass { + @Inject() + protected readonly another!: AnotherService +} +``` + +### How does this work? + +The "magic" bit here is the `@Inject()` decorator, which looks at the type annotation of the property it decorates and stores that property and its token value as meta-data on the class. Here's a simplified example of Extollo's [implementation](https://code.garrettmills.dev/extollo/lib/src/branch/master/src/di/decorator/injection.ts#L69): + +```typescript +/** + * Mark the given class property to be injected by the container. + * @constructor + */ +export const Inject = (): PropertyDecorator => { + return (target, property) => { + const propertyMetadata = new Collection() + Reflect.defineMetadata(DEPENDENCY_KEYS_PROPERTY_METADATA_KEY, propertyMetadata, target) + + const type = Reflect.getMetadata('design:type', target, property) + if ( type ) { + const existing = propertyMetadata.firstWhere('property', '=', property) + if ( existing ) { + existing.key = key + } else { + propertyMetadata.push({ property, key }) + } + } + + Reflect.defineMetadata(DEPENDENCY_KEYS_PROPERTY_METADATA_KEY, propertyMetadata, target) + } +} +``` + +Now, when the container creates an instance of a class, instead of passing in the dependencies as parameters to the constructor, it instantiates the class, then sets the properties on the class that have `@Inject()` decorators. For example: + +```typescript +class Container { + resolveAndCreate(token: Instantiable): T { + const inst = new token() + const dependencies = Reflect.getMetadata(DEPENDENCY_KEYS_PROPERTY_METADATA_KEY, token) + const instances = dependencies.map(x => { + inst[x.property] = this.resolveAndCreate(x.key) + }) + + return inst + } +} +``` + +There's a problem here, though. Say we were to `resolveAndCreate(ChildClass)`. Because of the way JavaScript works, the instance returned by this call would ONLY have the properties defined in the child class, not the parent (i.e. `another`, but not `logging`). + +To understand why, we need a bit of background. + +#### The Prototype Chain + +In JavaScript, inheritance is prototypical. Say we have the following: + +```typescript +const parent = new ParentClass(...) +const child = new ChildClass(...) +``` + +The object created as `parent` has a "chain" of prototypes that comprise it. So, if I try to access a method or property on `parent`, JavaScript will first check if the property exists on `parent` itself. If not, it will check if the property exists on `ParentClass.prototype`, then `ParentClass.prototype.prototype`, and so on. + +If you follow the prototype chain long enough, every item in JavaScript eventually extends from `Object.prototype` or `Function.prototype`. (For classes, it's the latter.) From any of these prototypes, we can access the constructor they are associated with using `Class.prototype.constructor`. + +So, to get the `ParentClass` constructor from its prototype, we could do `ParentClass.prototype.constructor`. + +#### The Issue + +When our `@Inject()` decorator saves the meta-data about the property type annotations, it does so by defining a new meta-data property on the prototype of the class where the property was defined. + +Since the `logging` property was first defined and decorated in the `ParentClass`, the meta-data property with the information we need is actually defined on `ParentClass.prototype`. + +However, when `@Inject()` is called for the `another` property in the `ChildClass`, it *defines* a new meta-data key with `ChildClass`'s defined properties on the `ChildClass.prototype`. + +Thus, in order to get all the properties we need to inject, we must check the meta-data defined for *all* prototypes in the inheritance chain of the constructor being instantiated. So, the container implementation might look something like: + +```typescript +class Container { + resolveAndCreate(token: Instantiable): T { + const inst = new token() + const meta = new Collection() + let currentToken = token + + do { + const loadedMeta = Reflect.getMetadata(DEPENDENCY_KEYS_PROPERTY_METADATA_KEY, currentToken) + if ( loadedMeta ) meta.concat(loadedMeta) + currentToken = Object.getPrototypeOf(currentToken) + } while ( + Object.getPrototypeOf(currentToken) !== Function.prototype + && Object.getPrototypeOf(currentToken) !== Object.prototype + ) + + meta.map(x => { + inst[x.property] = this.resolveAndCreate(x.key) + }) + + return inst + } +} +``` + +Now, `inst` will have all properties defined as injected for all parent classes in the inheritance chain. + +### Best of Both Worlds + +This approach combines the benefits of named-injection with the type-safety of constructor-injection: + +- Child classes don't need to account for the dependencies of their parents +- Injected dependencies can be type-hinted +- Property names of dependencies are independent of their types +- Parent dependencies are automatically accounted for + +After using it for a while, I really like this paradigm. It provides a type-safe way to do dependency injection reliably, while still keeping the class definitions clean and parent-agnostic. + +### Drawbacks + +While its still my preferred solution, property-injection in TypeScript still isn't without its drawbacks. Namely, it requires use of the [non-null assertion operator](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-0.html#non-null-assertion-operator) since the properties are being filled in by the container. + +Because of this, if you were to instantiate a class manually outside the container and not fill in all the properties, the compiler wouldn't catch it. Accessing properties on that instance would lead to runtime errors. However, assuming you always instantiate `Injectable` classes with the container, this problem is largely mute. + +Another downside that I didn't explore much in this article is the container code. Generalizing the container (for either constructor- or property-injection) requires use of the `any` operator _at some point_ since factories are matched by key. At least in my implementation. I'd be interested to see alternatives. + +## Conclusion + +There will, undoubtedly, be another iteration of this article wherein I discover a new paradigm I want to try. But for the foreseeable future, I'll be implementing and running with property-injection in my projects. As I mentioned in the article, constructor-injection and property-injection support form the basis of the dependency injector for the [Extollo framework](https://extollo.garrettmills.dev), my new project. + +I tried not to dive too deep into the actual code required to implement the various strategies in this article, so if you're interested in seeing how I've implemented them for my projects, here are some links: + +- [The Flitter DI](https://code.garrettmills.dev/flitter/di) (named-injection) +- [The Extollo DI](https://code.garrettmills.dev/extollo/lib/src/branch/master/src/di) (constructor- and property-injection, WIP) + +As always, I'd love to hear any other strategies or ways people have implemented this, so feel free to leave a comment or [get in touch](https://garrettmills.dev/#contact). diff --git a/src/app/resources/blog-posts/Runtime-Data-Validation-from-TypeScript-Interfaces.md b/src/app/resources/blog-posts/Runtime-Data-Validation-from-TypeScript-Interfaces.md new file mode 100644 index 0000000..b83300a --- /dev/null +++ b/src/app/resources/blog-posts/Runtime-Data-Validation-from-TypeScript-Interfaces.md @@ -0,0 +1,226 @@ +--- +title: Runtime Data Validation from TypeScript Interfaces +slug: Runtime-Data-Validation-from-TypeScript-Interfaces +date: 2022-01-14 00:00:00 +tags: + - javascript + - typscript + - extollo +--- + +For the last year or so, I've been (slowly) building a TypeScript-based Node.js framework called [Extollo](https://extollo.garrettmills.dev/). One of the design goals with Extollo is to only expose the user (i.e. the developer) to ES/TypeScript native concepts, in order to reduce the amount of special knowledge required to get up and running with the framework. + +# Runtime schemata: a plague of DSLs + +One of my biggest pet-peeves with the current Node.js framework scene is that nearly every ecosystem has to re-invent the wheel when it comes to schema definitions. Because JavaScript doesn't have a native runtime type-specification system (at least, not a good one), if you want to encode details about how a data structure should look at runtime, you need to design a system for passing that information along at runtime. + +For example, a prolific MongoDB ODM for Node.js, Mongoose, gives users the ability to specify the schema of the records in the collection when the user defines a model. Here's a sample schema definition from the [Mongoose docs](https://mongoosejs.com/docs/guide.html#definition): + +```js +import mongoose from 'mongoose'; +const { Schema } = mongoose; + +const blogSchema = new Schema({ + title: String, // String is shorthand for {type: String} + author: String, + body: String, + comments: [{ body: String, date: Date }], + date: { type: Date, default: Date.now }, + hidden: Boolean, + meta: { + votes: Number, + favs: Number + } +}); +``` + +I'm currently building the request validation system for Extollo. Because it has to process web requests with dynamic input, the validator interfaces need to be specified at runtime so the data can be checked against the schema. To do this, I'm using the fantastic [Zod schema validator library](https://github.com/colinhacks/zod) written by Colin McDonnell. + +However, Zod falls victim to the same fundamental problem with runtime schemata in JavaScript as Mongoose. Because its schemata need to be available at runtime, you have to use Zod's custom schema builder to define your interfaces. Here's an example of a schema for some data that might come from a login page: + +```ts +import { z } from 'zod' + +export const LoginAttemptSchema = z.object({ + username: z.string().nonempty(), + password: z.string().nonempty(), + rememberMe: z.boolean().optional(), +}) +``` + +That's not too bad, but it does require the developer to learn Zod's specific schema definition language. I find this especially annoying since TypeScript already _has_ an interface definition language! This is a situation where I'd like to avoid making the developer learn an equivalent system if they already know the one built into the language. + +Let's rewrite this schema in TypeScript for a start: + +```ts +export interface LoginAttempt { + /** @minLength 1 */ + username: string + + /** @minLength 1 */ + password: string + + rememberMe?: boolean +} +``` + +Okay, that's an improvement! We can use TypeScript's native type syntax to define the interface, and augment it with JSDoc comments for any properties that can't be natively expressed. So, to use this with Zod, we need to convert it from the TypeScript syntax to the Zod syntax. Luckily, Fabien Bernard has spearheaded the excellent [ts-to-zod project](https://github.com/fabien0102/ts-to-zod), which looks through interfaces defined in a file and outputs the equivalent Zod schemata for them. + +Hmm.. so now the user can write their schema definitions in (mostly) native TypeScript syntax, and, with a bit of helper tooling, we can convert them to the Zod format so we can use them at runtime. Perfect! Well, almost... + +We have a subtle problem that arises when we want to actually _use_ a schema at runtime. Let's look at an example: + +```ts +import { Validator } from '@extollo/lib' +import { LoginAttempt } from '../types/LoginAttempt.ts' + +class LoginController { + public function getValidator() { + return new Validator() + } +} +``` + +This class has a method which returns a new Validator instance with the LoginAttempt schema as its type-parameter. Intuitively, this should produce a validator which, at runtime, validates data against the LoginAttempt schema. Let's look at the compiled JavaScript: + +```js +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = require("@extollo/lib").Validator; +class LoginController { + getValidator() { + return new Validator_1.Validator(); + } +} +``` + +Uh, oh. Ignoring the boilerplate noise, we see that our nice, type-parameterized Validator instance has been stripped of its type information. Why? TypeScript is a [transpiler](https://devopedia.org/transpiler). So, it takes TypeScript code and outputs the _equivalent_ JavaScript code. Because JavaScript has no concept of types at runtime, the transpiler (in this case, tsc) strips them out. + +So now we have a problem. We've improved our user-interface by only requiring the developer to specify the TypeScript types, but now we can't _use_ them at runtime, because the TypeScript types get stripped away. 'What about the Zod schema we just generated?' you ask, wisely. Well, unfortunately, there's no mapping between the interface and the Zod schema it induced, and there's no easy way to create such a mapping, because it has to be done at compile-time. + +# A very deep rabbit-hole + +Ordinarily, this is where the story ends. You need some kind of mapping between the interface and the Zod schema (which, remember, the developer has no idea exists thanks to our ts-to-zod magic) to make the Validator work. In a generic TypeScript project, you'd have to have some kind of naming convention, or expose the schema to the user somehow to create the mapping. + +However, Extollo has a unique advantage that I suspected could be used to solve this problem transparently: [excc](https://code.garrettmills.dev/extollo/cc). Extollo projects are primarily TypeScript projects, but they also contain other files like views, assets, &c. that need to be included in the built-out bundle. To standardize all of this, Extollo uses its own project-compiler called `excc` for builds. `excc` is primarily [a wrapper around tsc](https://code.garrettmills.dev/Extollo/cc/src/branch/master/src/phases/CompilePhase.ts#L20) that does some additional pre- and post-processing to handle the cases above. + +Because Extollo projects are all using `excc`, this means that we can do arbitrary processing at compile time. I suspected that there would be a way to create a mapping between the interfaces and the schemata we generate for runtime. + +## Zod-ifying the Interfaces + +The first step was converting the TypeScript interfaces to Zod schemata using ts-to-zod. In `excc`, this is implemented as [a pre-processing step](https://code.garrettmills.dev/Extollo/cc/src/branch/master/src/phases/ZodifyPhase.ts#L30) that appends the Zod schema to the .ts file that contains the interface. So, the processed LoginAttempt.ts might look something like: + +```ts +import { z } from "zod"; + +export interface LoginAttempt { + /** @minLength 1 */ + username: string + + /** @minLength 1 */ + password: string + + rememberMe?: boolean +} + +export const exZodifiedSchema = z.object({ + username: z.string().nonempty(), + password: z.string().nonempty(), + rememberMe: z.boolean().optional(), +}); +``` + +This has some drawbacks. Namely, it assumes that only one interface is defined per-file. However, Extollo enforces this convention for other concepts like models, middleware, controllers, and config files, so it's fine to make that assumption here. + +This gets us closer, but it still doesn't do the mapping for the runtime schema. The first step to this is going to be devising some way of referencing a schema so that we can easily modify the TypeScript code that uses its related interface. + +I don't love the initial system I have for this, but what `excc` does now is generate a unique ID number for each interface it Zod-ifies. Then, when it is writing the Zod schema into the interface's file, it adds code to register it with [a global service](https://code.garrettmills.dev/extollo/lib/src/branch/master/src/validation/ZodifyRegistrar.ts) that maps the ID number to the Zod schema at runtime. So, the above file would actually look something like: + +```ts +import { z } from "zod"; +import { registerZodifiedSchema } from "@extollo/lib"; + +export interface LoginAttempt { + /** @minLength 1 */ + username: string + + /** @minLength 1 */ + password: string + + rememberMe?: boolean +} + +/** @ex-zod-id 11@ */ +export const exZodifiedSchema = z.object({ + username: z.string().nonempty(), + password: z.string().nonempty(), + rememberMe: z.boolean().optional(), +}); +registerZodifiedSchema(11, exZodifiedSchema); +``` + +This may not seem like much, but this is a _huge_ step toward our goal. We now have, at compile time, a mapping of interfaces to IDs and, at runtime, a mapping of IDs to schemata. So, we can use the compile-time map to modify all the places that reference the interface to set a runtime parameter with the ID of the schema for that interface. Then, at runtime, we can look up the schema using the ID. Bingo! No, how do we actually do that... + +## Wrangling the AST + +Now that we have our mapping, we need to make sure that a look-up is done whenever the type is referenced in code. That is, anywhere where we create a Validator\, we should set the ID of the Zod schema for LoginAttempt on that Validator instance. + +To accomplish this, I wrote a couple of transformer plugins for TypeScript. Now, tsc doesn't support plugins by default. (You may have seen plugins in the tsconfig.json for a project, but they are [plugins for the editor's language server](https://www.typescriptlang.org/tsconfig#plugins), not the compiler.) Luckily for us, again, there exists a fantastic open-source package to solve this problem. Ron S. maintains a package called [ts-patch](https://github.com/nonara/ts-patch) which, aptly, patches the tsc installation for a project to allow the project to specify compiler-plugins. + +These plugins operate on the abstract syntax-tree of the TypeScript program. If you're not familiar with ASTs, they're basically the compiler's [internal representation of the program](https://en.wikipedia.org/wiki/Abstract_syntax_tree) you're compiling. They are data structures which can be manipulated and optimized. When you install a plugin, it is called repeatedly with the AST for each source file in the TypeScript project you're compiling. Importantly, the plugin can replace any of the nodes in the AST, or return a completely different one, in the file, and tsc will output the modified version instead of the original. + +### First, Identify + +The first plugin operates on the entire AST for each file in the project. Its job is to walk through each file's AST and [look for interface declarations](https://code.garrettmills.dev/Extollo/cc/src/branch/master/src/transformer.ts#L92) that we generated Zod schema for. When it finds one, it parses out the ID number we wrote into the file earlier and stores a mapping between that ID number and the symbol TypeScript uses to identify the interface internally. + +Because we were the ones that wrote the Zod schema into the file, we can know that it -- and the call to register it with the global service -- are the last statements in the file. So, we can quickly look them up and parse out the ID from the registration call. + +The TypeScript AST for the augmented file, at this point, looks something like this: + +![](https://static.garrettmills.dev/assets/blog-images/ts-ast.png) + +(As an aside, I used the ts-ast-viewer web app to generate this hierarchy. ts-ast-viewer is [a project started by David Sherret](https://github.com/dsherret/ts-ast-viewer) that allows you to visualize and explore the AST for any TypeScript program. It was invaluable in helping me figure out the structures for this project.) + +By recursively walking the AST, we can look for the InterfaceDeclaration nodes. If we find one in a file, we can check the root of the file to see if an Identifier called exZodifiedSchema is defined. If so, we grab the last statement in the file (an ExpressionStatement containing the call to registerZodifiedSchema) and pull out its first argument, the ID number. + +Once this transformer finishes, we've identified all of the interfaces for which we generated Zod schemata and created a mapping from the interface to the ID number we need at runtime. + +### Then, Modify + +The second plugin runs after the first has finished going through all the files in the project. This plugin's job is to [replace any NewExpression nodes](https://code.garrettmills.dev/Extollo/cc/src/branch/master/src/transformer.ts#L7) where the type parameters contain Zod-ified interfaces with an [IIFE](https://developer.mozilla.org/en-US/docs/Glossary/IIFE) that sets the \_\_exZodifiedSchemata property to an array of the ID numbers used to look up the schemata for those interfaces. + +That is, the plugin transforms this: + +```ts +new Validator() +``` + +into this: + +```ts +(() => { + const vI = new Validator(); + vI.__exZodifiedSchemata = [11]; + return vI; +})() +``` + +And because the NewExpression is an expression just like the CallExpression is, anywhere where we have a NewExpression can instead have this CallExpression that wraps it with additional logic. The transformer is able to look up the ID numbers associated with the interfaces because the Identifier that references the interface in `new Validator()` has the same symbol set on it as the InterfaceDeclaration we identified with the first plugin. + +These symbols are created by something in the TypeScript compiler called the linker, which resolves all the identifier declarations and matches them up with the uses of those identifiers, even if the actual variables have been renamed along the way. So, we can use these symbols to match up uses of the interface with the declarations of the interfaces we care about. + +_This_ is the magic sauce that finally makes it all work. After this plugin runs, the program TypeScript finishes compiling has all of the runtime type mappings linked up to the Validator instances based on which interface was specified when the Validator was instantiated. + +# Conclusion + +This was a long, and kind of hacky journey, but the end result is excellent. From the developer's perspective, they can type this: + +```ts +const validator = new Validator(); +``` + +and, at runtime, the validator instance will have a Zod schema and will be able to parse data against the schema. No custom schema definition languages, no validator/schema mapping, nothing. To the developer, it's all just pure TypeScript, which was the goal all along. + +The code for this feature is still very much work-in-progress, and I have to remove a lot of unused code and clean up what I keep, and probably rewrite part of it to be a less... jank. But, at the end of the day, I'm really happy with this "magic" feature that will help keep Extollo projects TypeScript-native, and easy to maintain. + +You can find a minimal working example matching this post [here](https://code.garrettmills.dev/garrettmills/blog-runtime-types). diff --git a/src/app/resources/blog-posts/Spacewalk-for-Linux-Management-Part-I.md b/src/app/resources/blog-posts/Spacewalk-for-Linux-Management-Part-I.md new file mode 100644 index 0000000..bb90e78 --- /dev/null +++ b/src/app/resources/blog-posts/Spacewalk-for-Linux-Management-Part-I.md @@ -0,0 +1,94 @@ +--- +title: Spacewalk for Linux Management - Part I +slug: Spacewalk-for-Linux-Management-Part-I +date: 2019-02-15 00:00:00 +tags: + - spacewalk + - linux + - tutorial +--- + +A Guide for the Uninitiated + +![](https://cdn-images-1.medium.com/max/2196/1*LfAt_XF-BdnkOGcKT3BeFQ.png) + +I have recently switched over to using RPM based [Linux](https://www.youtube.com/watch?v=QlD9UBTcSW4) distributions on all of my machines as an exercise in learning to manage them. One tool that I really enjoyed on the Ubuntu/Debian side is Canonical’s [Landscape](https://landscape.canonical.com/) software. It’s free for a limited number of personal machines and it allows me to manage them centrally. When I switched over to CentOS VMs in my lab, I found the central space somewhat… lacking. + +Enter: Spacewalk + +Spacewalk is an open-source management platform for RHEL-derivative systems. It does a lot of the same things as Landscape, and even more. Unlike Landscape, though, the technical know-how bar-for-entry is a fair bit higher, and the documentation is a bit less beginner-friendly. So, I rolled up my sleeves, waded knee-deep into forum posts, the wiki, and StackOverflow questions to learn how to setup my own Spacewalk server and manage my lab VMs with it. So, I thought I would share my discoveries for those who, like me, want to learn to use Spacewalk, but find it daunting. + +## Part I: Installing Spacewalk Server + +This is my method for installing Spacewalk server on RHEL7 — this works for CentOS7 and Scientific7. Spacewalk is a system management and automation server for RHEL based systems. +> **Learn from my mistakes:** +> *If you’re installing Spacewalk in a VM, make sure you give it at least 25GB of space to be safe. I left it on the default 10GB, and the 6GB left-over after installing Scientific Linux 7 wasn’t enough space to initialize the Postgres database.* + +### Install Spacewalk + +Spacewalk depends on several [EPEL](https://fedoraproject.org/wiki/About_EPEL) (Extra-Packages for Enterprise Linux) packages, including OpenJDK, so we’ll make sure the EPEL repository is installed: + +`# yum install epel-release` + +Now, we’ll install the Spacewalk repository: + +`# rpm -Uvh https://copr-be.cloud.fedoraproject.org/results/@spacewalkproject/spacewalk-2.9/epel-7-x86_64/00830557-spacewalk-repo/spacewalk-repo-2.9-4.el7.noarch.rpm` + +It’s also a good idea to make sure that your system is up to date before making any big changes: + +`# yum clean metadata && yum update` + +Spacewalk requires a database back-end to store information about packages/systems/etc. By default, it can configure and install PostgreSQL: + +`# yum install spacewalk-setup-postgresql` + +Finally, install Spacewalk and tell it to auto-configure the Postgres back-end: + +`# yum install spacewalk-postgresql` + +(This installs several hundred packages, so it will take a while.) + +### Configure the Firewall + +Spacewalk uses HTTP/S to communicate with the client machines. Port 5222 is also opened, which allows the Spacewalk server to push instant (or near-instant) commands to the client machines over a tunnel. The following commands configure the default firewall on CentOS 7. + +**Enable HTTPS:** +`# firewall-cmd --add-service=https --permanent` + +**Enable HTTP:** +`# firewall-cmd --add-service=http --permanent` + +**Enable Port 5222:** +`# firewall-cmd --add-port=5222/tcp --permanent` +`# firewall-cmd --add-port=5222/udp --permanent` + +**Reload the Firewall:** +`# firewall-cmd --reload` + +### Configure Spacewalk + +Spacewalk requires a [FQDN](https://www.godaddy.com/garage/whats-a-fully-qualified-domain-name-fqdn-and-whats-it-good-for/) (fully-qualified domain name) for the server to function properly. If you’re working in an environment with a local DNS server, set it up that way. If you’re not (most aren’t), modify the /etc/hosts file to include the following, or similar to your environment. The /etc/hosts file contains a series of aliases between IP addresses and domain names that are local to the machine the file is hosted on. Modify it by editing the /etc/hosts file in your favorite text editor. Add the following line: + + ###.###.###.### {hostname}.{yourdomain}.local {hostname} + +Replace ###.###.###.### with the local IP of the Spacewalk server machine. +Replace {hostname} with the host-name of the machine. +Replace {yourdomain} with some local domain. Usually, it’s a good idea to suffix it with .local to make sure that it doesn’t overlap with actual domain space. + +Now, run the following command to start the Spacewalk configuration wizard: + +`# spacewalk-setup` + +You’ll need to provide the following: + +* An administrator’s e-mail address + +* Confirmation to configure Apache2 with default SSL settings + +* A CA certificate password for the Spacewalk self-signed certificate + +* Organization and location information for said certificate + +* Confirmation to enable tftp and xinetd + +After the wizard completes, we can open the web portal by visiting the FQDN of the host. You’ll receive a certificate error because the certificate is self-signed by the Spacewalk server machine. This means that the certificate authority (which we created during the Spacewalk setup wizard) isn’t registered with your web browser. Add an exception and continue. You’ll then be prompted to create an administrative user for your organization. After creating the user, you’ll be dropped at the Spacewalk portal! diff --git a/src/app/resources/blog-posts/Spacewalk-for-Linux-Management-Part-II.md b/src/app/resources/blog-posts/Spacewalk-for-Linux-Management-Part-II.md new file mode 100644 index 0000000..839925d --- /dev/null +++ b/src/app/resources/blog-posts/Spacewalk-for-Linux-Management-Part-II.md @@ -0,0 +1,98 @@ +--- +title: Spacewalk for Linux Management - Part II +slug: Spacewalk-for-Linux-Management-Part-II +date: 2019-03-04 00:00:00 +tags: + - spacewalk + - linux + - tutorial +--- +## Setting Up Spacewalk Channels - Part II + +*This is part 2 in my series of articles on how to use Spacewalk to manage Linux clients.* + +RedHat Satellite, and by extension Spacewalk, uses a system of channels to organize the software and configuration available to registered systems. In fact, those are the two main types of channels: software and configuration. Software channels contain a collection of repositories and packages that are made available to systems subscribed to that channel. Configuration channels contain a number of centrally-managed configuration files that can be deployed to systems registered in that channel. + +In this guide, we’ll look at basic setup of each type. + +Software channels are particularly useful for managing groups of similar computers for a number of reasons. First, it allows you to dynamically control what repositories the machines pull software from, without having to configure the individual machines. Second, because Spacewalk caches a local copy of the repositories in each channel (and can sync it regularly), it can greatly reduce bandwidth usage. Instead of 100 machines each downloading the same updates directly, Spacewalk downloads them once and each of the 100 machines just retrieves them from Spacewalk. + +Configuration channels are similarly useful for groups of similar machines. Configuration files can be added and versioned in the Spacewalk interface, then deployed to registered machines. This guarantees that all the machines in a given group have the same configuration for things like SSH, Apache2, SSSD, PAM, bashrc, profile.d, cron.daily, and whatever else. + +In this guide, we’ll look at setting up software channels to manage a group of CentOS 7 machines, but this can be adapted to work for any RPM or DEB distribution. + +## Creating Software Channels + +### Create a Base Channel + +Sign in to the Spacewalk web portal. Then, navigate to **Channels > Manage Software Channels > Create Channel**. Fill in the channel name and label (these are usually the same) and the summary. Then, click **Create Channel**. + +We’re going to start off by creating a base channel for CentOS 7 machines. + +![](https://cdn-images-1.medium.com/max/2000/0*2evFV2JLGdlaZogO.png) + +### Add the Repositories + +Next, we’ll add the CentOS7 base repositories to our channel. Navigate to **Manage Repositories > Create Repository**. Fill in the repository label, repository URL, and select the repository type. For example, for the CentOS7 os repository: + +![](https://cdn-images-1.medium.com/max/2000/0*Ltd6KnYg_wJuwik4.png) + +*Note: The repository URL should be the location that contains the *repodata* directory.* + +In this example, I repeated this process to add the CentOS7 extras and updates repositories, which have similar repository URLs. + +### Assign Repositories to the Channel + +We need to tell the base channel we created to use the repositories we just added. To do this, navigate to **Channels > Manage Software Channels > *channel name* > Repositories**. Here, select the repositories we just added and click **Update Repositories**. + +![](https://cdn-images-1.medium.com/max/2000/0*t3B66QRGxLHkESR5.png) + +### Create a Child Channel + +We’re also going to create a child channel. This channel will fall under the base CentOS 7 channel we created, but it will provide additional repositories and software. Which is to say, machines registered to our child channel will have access to the software provided by both the parent and child channels’ repositories. As an example, we’re going to create a channel that provides the MariaDB repositories for CentOS 7. To do this, basically repeat the same process. + +Navigate to **Channels > Manage Software Channels > Create Channel**. Provide a channel name, label, and summary. This time, in the **Parent Channel** drop-down, select the centos7-base channel we created earlier. This will establish the new channel as a child of that channel. + +### Add the Repository + +Navigate to **Channels > Manage Software Channels > Manage Repositories > Create Repository**. Provide the name, URL, and type of the MariaDB repository. + +In our example, we used the following: + +**Repository name:** el7-mariadb +**Repository URL:** [http://yum.mariadb.org/10.3/centos7-amd64/](http://yum.mariadb.org/10.3/centos7-amd64/) +**Repository type:** yum + +### Assign the Repository to the Channel + +Navigate to **Channels > Manage Software Channels > *child channel name* > Repositories**. Select the MariaDB repository we just added, and click Update Repositories. + +### Syncing Repository Packages + +Spacewalk caches local copies of all the packages for the repositories we add. This allows it to offer those packages to registered clients with lower internet bandwidth costs, especially across larger deployments. Since all of our CentOS 7 clients will already have access to the main repositories, we won’t bother caching the entirety of the CentOS mirror for this example (though if you wish to do so, the process below is the same). We will, however, sync the much smaller MariaDB repository so our clients can access its packages. + +To do this, navigate to **Channels > Manage Software Channels > *MariaDB channel* > Repositories > Sync > Sync Now**. This will manually start downloading and indexing the packages from the repositories. On the same page, you can create a schedule to automatically sync the repositories. +> **Note:* ** +This will take a while, even if the repository is relatively small. One way to view the progress of the sync process is by navigating to /var/sattelite/redhat/1/stage on the Spacewalk host. The stage folder is where Spacewalk downloads the packages to before it sorts them to other folders in the 1 directory (where 1 is the ID of the Spacewalk group in question). You can roughly gauge the sync process by seeing how many packages are in this folder.* + +When the sync process finishes, you should be able to view all the repository’s packages by navigating to **Channels > Manage Software Channels > *MariaDB channel* > Packages > List / Remove Packages**. +> **Note:** +*One thing to consider when syncing repositories is how much space they will require. By default, CentOS 7, which is the OS we set up Spacewalk on, provides a much smaller root directory partition than /home partition. Make sure the repositories you are syncing can fit in the allotted partition, or use custom partitioning in the CentOS install.* + +## Creating Configuration Channels + +Similar to software channels, Spacewalk uses configuration channels to make custom configuration files available to clients subscribed to that channel. These configuration files can be pushed to the clients from the Spacewalk control panel. In this example, we’ll create a configuration channel with a fake configuration file, /root/test.conf. + +### Create the Configuration Channel + +Navigate to **Configuration > Configuration Channels > Create Config Channel**. Give the channel a name, label, and brief description. + +### Add the Configuration File + +To add the test configuration file, navigate to **Configuration > Configuration Channels > *test channel* > Add Files > Create File**. Give the file a fully-qualified filename. That is, /root/test.conf. You can change the file owner and permissions, then fill in the contents in the text field below. + +![](https://cdn-images-1.medium.com/max/2000/0*M7k-VRip4sqHFT4d.png) + +Then click **Create Configuration File**. Spacewalk will save the configuration file. You’ll notice that it drops you on a page called “Revision 1 of /root/test.conf.” This is because Spacewalk will allow you to revise your configuration files and it will track the changes. You can deploy different revisions to different hosts. +> **Learn from my mistakes:*** +By default, adding an external repository to a channel (like the MariaDB repository) doesn’t add its GPG key to the registered hosts. This means that, without providing the GPG key to the clients, they will be unable to install the software. We’ll cover this in the Registering Clients section, but this can be done by pushing the GPG key via a configuration channel to /etc/pki/rpm-gpg and importing it via rpm. Alternatively, add the GPG key in the child channel’s settings when it is created.* diff --git a/src/app/resources/blog-posts/Spacewalk-for-Linux-Management-Part-III.md b/src/app/resources/blog-posts/Spacewalk-for-Linux-Management-Part-III.md new file mode 100644 index 0000000..ca3d1f9 --- /dev/null +++ b/src/app/resources/blog-posts/Spacewalk-for-Linux-Management-Part-III.md @@ -0,0 +1,107 @@ +--- +title: Spacewalk for Linux Management - Part III +slug: Spacewalk-for-Linux-Management-Part-III +date: 2019-03-13 00:00:00 +tags: + - spacewalk + - linux + - tutorial +--- + +## Registering Spacewalk Clients - Part III + +*This series is based on a collection of articles on my personal knowledge-base about how to use Spacewalk to manage Linux systems.* + +Now that we’ve set up Spacewalk server and created some software and configuration channels, we can register clients against the server and set them up to be managed by Spacewalk. This is done by creating an activation key in the Spacewalk server, installing the client services on the remote machines, then using the activation key to register them. + +## Create an Activation Key + +Log in to the Spacewalk administration panel and navigate to **Systems > Activation Keys > Create Key**. Give your key a description, key-code for remote systems (this will be used to register them), select the base channel for systems registered with the key, and (optionally) limit the number of times the key can be used. If you leave the “Usage” box blank, the key can be used to register an unlimited number of systems. + +![](https://cdn-images-1.medium.com/max/2000/0*2TDUItiGllqaLCBE.png) + +### Customize Activation Key Packages + +You can configure Spacewalk to automatically install a list of packages on clients when they are registered with a given activation code. You can configure this by navigating to **Systems > Activation Keys > *key name* > Packages **and entering a list of package names with one package per line. These packages should be available in the channels with which the activation key is associated. + +![](https://cdn-images-1.medium.com/max/2000/0*QSYScvTN3crPhmqk.png) + +You can also customize the child channel that the systems will join by navigating to **Systems > Activation Keys > *key name* > Child Channels** and selecting it there. + +## Register Client Systems + +Now that we have software and configuration channels created and registered with an activation key, we can register client systems to be managed by the Spacewalk server. + +### Prerequisites (EL7) + +The Spacewalk client packages have dependencies in the [EPEL repositories](https://fedoraproject.org/wiki/About_EPEL). Install those: + +`# yum install epel-release -y` + +Next, install the EL7 Spacewalk client repository: + +`# rpm -Uvh https://copr-be.cloud.fedoraproject.org/results/@spacewalkproject/spacewalk-2.9/epel-7-x86_64/00830557-spacewalk-repo/spacewalk-client-repo-2.9-4.el7.noarch.rpm` + +Finally, install the required client packages: + +`# yum install -y rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin osad rhncfg-actions rhncfg-management` + +### Prerequisites (Fedora) + +Install the Fedora Spacewalk client repository: + +`# dnf copr enable @spacewalkproject/spacewalk-2.9-client` + +Install the required client packages: + +`# dnf -y install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto dnf-plugin-spacewalk osad rhncfg-actions rhncfg-management` +> **For the interested:** +> *rhncfg-actions and rhncfg-management are daemons that allow Spacewalk to manage configuration files* +> *osad is a real-time messaging daemon that Spacewalk uses to communicate with the host* +> *yum-rhn-plugin is a plugin for YUM that allows Spacewalk to dynamically manage the repositories it has access to* +> *m2crypto is a Python wrapper for OpenSSL that secures communications between Spacewalk clients and the server* +> *rhnsd and rhn-check are tools and background services that polls the Spacewalk server to check for new actions* +> *rhn-client-tools and rhn-setup provide the core functionality of Spacewalk management and setup processes* + +### Install the Spacewalk Server CA Certificate + +Spacewalk uses a self-signed SSL certificate to communicate with the registered clients. This prevents 3rd-parties from intercepting and modifying Spacewalk communications. To allow Spacewalk to manage the clients, we need to install the Spacewalk server’s certificate authority. This can be done two ways. + +Copy the CA file manually (not recommended): + +`# scp root@*spacewalk.server.url*:/root/ssl-build/RHN-ORG-TRUSTED-SSL-CERT /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT` + +Install the generated CA package (recommended): + +`# rpm -Uvh http://*spacewalk.server.url*/pub/rhn-org-trusted-ssl-cert-1.0-1.noarch.rpm` + +### Register the Spacewalk Clients + +We can now register the client against Spacewalk server. Depending on how many packages your activation key specifies to install, this may take a while. + +`# rhnreg_ks --activationkey="1-*yourkeyhere*" --serverUrl=http://*spacewalk.server.url*/XMLRPC --sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT` +> **Learn from my mistakes:** +> *Spacewalk server supports multiple organizations per server. As such, it prefixes each activation key with the ID number of the organization. In most cases (i.e. if you’re only using Spacewalk with one organization), this ID number is “1”. Hence, you need to prefix the activation code you created with 1- to specify the organization.* + +Now, do an initial sync with the Spacewalk server: + +`# rhn-profile-sync` + +### Enable Required Background Services + +Spacewalk relies on either a real-time messaging daemon or periodic check-ins from registered systems to push management actions. As such, we need to enable the OSA Daemon service and enable all RHN control actions (which Spacewalk uses to push centrally-managed configuration files). +``` +# systemctl enable osad +# systemctl restart osad +# rhn-actions-control --enable-all +``` + +Finally, it’s a good idea to do one last profile sync to make sure Spacewalk sees that the required daemons are running: + +`# rhn-profile-sync` + +### Success! + +At this point, you should be able to navigate to **Spacewalk > Systems** and see the newly registered systems. + +![](https://cdn-images-1.medium.com/max/2000/0*lN92Au0YrwO6IukB.png) diff --git a/src/app/resources/blog-posts/Ultimate-Guide-to-Cleaning-Dell-XPS-15-Keyboard.md b/src/app/resources/blog-posts/Ultimate-Guide-to-Cleaning-Dell-XPS-15-Keyboard.md new file mode 100644 index 0000000..450f3e4 --- /dev/null +++ b/src/app/resources/blog-posts/Ultimate-Guide-to-Cleaning-Dell-XPS-15-Keyboard.md @@ -0,0 +1,79 @@ +--- +title: The Ultimate Guide to Cleaning a Dell XPS 15 Keyboard +slug: Ultimate-Guide-to-Cleaning-Dell-XPS-15-Keyboard +date: 2022-01-26 00:00:00 +tags: +- hardware +- dell +- keyboard +--- + +Two years ago, I switched laptops from a mid-range Asus laptop to the then-current Dell XPS 15 9500. A faster CPU/GPU and more RAM were the primary upgrades, but I also liked the keyboard on the XPS quite a lot. + +Since then, I have used this machine as my daily driver for everything. As a student and occasional from-home worker, this laptop has seen a _lot_ of use. It has held up admirably, but one issue has developed in the last 3 or 4 months that has been the bane of my existence. + +I've noticed that the keyboard has a tendency to accumulate dust and small debris over time, and this problem manifested itself in the most annoying possible way: some heavily-used keys started to require multiple presses or lots of force to register the keystroke. Namely, the worst offenders are the W, E, A, and left shift and control keys. This would result in annoying sentences like: + +th quick bron fox jumps ovr th lzy littl puppy dog. + +As a touch-typist, having to stop, backspace, and re-type sentences constantly while hitting the shift key with the force of god himself was getting really, _really_ old. I had tried blowing around the edges of the keys with canned air, but this produced little result. + +I'm not sure if this problem is unique to me, but I wasn't able to find many other people online with the same experience. The few cases I _did_ find of people asking about cleaning the keyboard on this laptop contained unhelpful suggestions like removing the keyboard assembly entirely to clean it. This, while it would probably solve the problem and is well-documented in the service manual, requires basically a complete tear-down of the laptop. + +However, after a bit of trial-and-error and reading the manual, I have found that the best way to clean the keys is to remove the key caps and blow the key wells out with compressed air. This requires a bit of finesse to do without breaking the key switches, so I decided to write-up perhaps the most niche how-to of all time. + +So, with that said, here's the definitive guide on removing the key-caps from your Dell XPS 15 9500 series to clean under them. + +### Step 1: Removing the Normal Key Caps + +I'm going to go into a fair bit of detail here, since understanding the structure of the key caps is key to removing them without irreparably breaking them. + +The normal keys on the laptop are membrane keys with plastic scissor switches. These switches are connected to the key caps with two grasp clips near the top of the key and two slots near the bottom of the key. Here's what I mean: + +Key cap back + +
The grabber attaches to the scissor switch while the slot slides under the edge of the switch.
+ +Here's the corresponding switch for this key cap. You can see the small bars to which the grabber attaches, and the small plastic flaps the slots slide under. When removing the keys, the biggest challenge is doing so without breaking the small plastic piece the slot slides under. Doing this can make it so that the key doesn't re-attach properly, which will necessitate replacing the entire scissor. + +Key switch + +
The grabber attaches to a small plastic bar on the inner key-switch, and the slot slides under the small plastic flap at the bottom of the switch.
+ +The safest/most reliable way I've found to remove the keys without breaking the plastic flaps on the switches is to use a small flathead screwdriver (the kind meant for electronics, really small). Use the screwdriver to lift one of the side edges of the key. Then, while holding it up, slide the screwdriver under the key cap. The goal here is to position the tip of the flathead between the key cap and the switch as close to the point where the grabber attaches to the plastic bar. + +Then, use your finger to gently apply pressure to the bottom of the key. This will help prevent you from accidentally prying up the bottom of the key. Press down with the screwdriver to pop the plastic bar out of the grabber. You will have to do this once for each grabber on either side of the key cap. Be careful to position the screwdriver right next to the plastic beam each time. After un-clipping the two grabbers, the key cap should lift off with minimal resistance. The most important tip for this step is to NEVER force anything too much. Doing so means you'll likely break some delicate piece of plastic. + +### Step 2: Removing the Special Key Caps + +The modifier keys, by virtue of the keyboard layout, have special key switches and stabilizers under them since the key caps are larger. Removing these is pretty similar to the normal key caps, but with a couple extra considerations. The shift keys are a good example of this. For example: + +Shift key switch + +
Here, see that the shift key's switches are basically identical to the normal keys, there's just two of them. (Yes, I tried this on the right shift-key first. Who uses that anyway?)
+ +The easiest way I've found to clean under these keys is to use the screwdriver to detach the key cap from the top stabilizer bar (this is held on with the same kind of grabbers) then use the tip of the screwdriver to detach the grabbers from the switches, similarly to the normal keys. You don't need to fully remove the bottom stabilizer. If it seems like the key is still stuck on the bottom after un-clipping the top stabilizer and tops of the key switches, try laying the key back down (but don't re-clip it) and sliding it toward the track-pad a bit to un-slot the bottom plastic tabs. It should then turn down like the picture. + +To re-attach the key cap, lay it back down on top of the stabilizer and press down over the three grabbers for the stabilizer. Then, press firmly over the top of each of the key switches to make sure their grabbers are re-attached. The left control key is similar: + +Left control key + +
The left control key has stabilizers, but only a single switch, which is like a wider version of the normal switches.
+ +### Step 3: Cleaning + +Once you've got the affected keys removed, you can clean the key wells using one of those cans of compressed air meant for electronics. Since these cans need to be used upright in order to not blast liquid on the device, I found it was useful to turn the laptop on its side to clean the keys. + +When blowing them out, make sure to get around the edges of the key well and, specifically, in the area between the bottom of the key well and the plastic key switch. + +### Step 4: Re-assembly + +This is pretty straightforward. For the stabilized keys, lay the key so the grabbers are lined up with the stabilizer and press firmly over each of them until they re-click onto the stabilizer. Then, press down firmly over the area above each of the switches until all the grabbers are re-attached. + +For the normal keys, simply place the key back on top of its switch, taking care to line up the grabbers, and press firmly on the key until all the connection points click into place. + +### Results + +For the most part, this was a very worthwhile venture. Since doing this, I haven't noticed any issues with the normal keys like W, E, and A, and the left control key has been working perfectly as well. Unfortunately, the left shift key still requires more force than usual to register a key stroke, though noticeably less than before. I'm not sure, but if I had to guess I would say this is because of the actual membrane button wearing out because it is centered on the key, but I almost always hit the key from the right edge while typing. It's subjective, but it feels like less force is required to register a key stroke when I depress the key from the left edge. + +All in all, for the cost of a can of compressed air, this has very nearly solved the key issues I was having that were making the laptop very frustrating to use. I suspect this guide will mostly be used as a future reference for myself, but if there are any other Dell XPS users out there who have noticed this problem, perhaps this can help you out. diff --git a/src/app/resources/views/blog/404.pug b/src/app/resources/views/blog/404.pug new file mode 100644 index 0000000..6f6547d --- /dev/null +++ b/src/app/resources/views/blog/404.pug @@ -0,0 +1,7 @@ +extends template + +block blog_content + h2(style='font-size: 36pt') Uh, oh! + p Looks like that post no longer exists, or the link is broken. + p + a.button(href=named('home') + '#contact') Let Me Know diff --git a/src/app/resources/views/blog/archive.pug b/src/app/resources/views/blog/archive.pug new file mode 100644 index 0000000..4789d13 --- /dev/null +++ b/src/app/resources/views/blog/archive.pug @@ -0,0 +1,12 @@ +extends template + +block blog_content + h2(style="font-size: 36pt") Post Archive + + .recent-posts + each year in postYears + h3(style="background-color: var(--c-font)") #{year} + each post in postsByYear[year] + .post-tile + .date #{blogDate(post.date)} + a.title(href=blogUrl(post)) #{post.title} diff --git a/src/app/resources/views/blog/feeds.pug b/src/app/resources/views/blog/feeds.pug new file mode 100644 index 0000000..237f1a4 --- /dev/null +++ b/src/app/resources/views/blog/feeds.pug @@ -0,0 +1,38 @@ +extends template + +block blog_content + h2(style="font-size: 36pt") An RSS Manifesto + + blockquote More than a convenience, RSS is good for the web. + + p This blog is available via
RSS, Atom, or JSON syndication. + + p For the uninitiated, RSS/Atom/JSON feeds make the content of a website available in a standard format. This allows you to consume the blog's content in whatever feed reader you prefer, rather than visiting the site directly. + + p RSS & Atom are standard feed formats based on XML. RSS is by far the most popular. JSON feed is a somewhat less popular syndication format based on JSON. + + p While RSS is no longer a "mainstream" format for consuming works on the internet, it still has a thriving community of dedicated fans. + + p You might be surprised to learn that RSS feeds are still everywhere. Nearly every news/blog-style website will have an RSS feed out-of-the box. Everything from The New York Times to NASA to every single podcast can be subscribed to via RSS. + + p More than a convenience, RSS is good for the web. It provides a standard format for programmatically fetching content from a disparate collection of websites, is (nearly) always available. + + p From a user's perspective, it allows us (as consumers) to choose what content we subscribe to and receive timely updates without relying on an algorithm. Plus, since RSS is a pure HTML format, it is often better from a user-privacy standpoint than visiting websites directly. + + p Finally, RSS promotes platform diversity by enabling small authors & creators to publish their works online in a standard, approachable format without needing a larger platform to reach their subscribers. + + p If you couldn't tell, I ❤️ open syndication, and I think it's really important to continue making these feeds available to users. + + p To that end, I'm trying to collect a list of independent RSS feeds that I enjoy: + + h3 Garrett's RSS List + + blockquote This list is also available in the standard OPML format. + + each category in categories + h4(style="background-color: var(--c-font)") #{category} + + ul + each sub in subsByCategory[category] + li + a(href=sub.url download) #{sub.name} diff --git a/src/app/resources/views/blog/index.pug b/src/app/resources/views/blog/index.pug new file mode 100644 index 0000000..ac845ea --- /dev/null +++ b/src/app/resources/views/blog/index.pug @@ -0,0 +1,12 @@ +extends template + +block blog_content + p Write-ups and musings, often technical, sometimes not. + + h2(style="font-size: 36pt") Recent(ish) Posts + + .recent-posts + each post in posts + .post-tile + .date #{blogDate(post.date)} + a.title(href=blogUrl(post)) #{post.title} diff --git a/src/app/resources/views/blog/post.pug b/src/app/resources/views/blog/post.pug new file mode 100644 index 0000000..828b207 --- /dev/null +++ b/src/app/resources/views/blog/post.pug @@ -0,0 +1,42 @@ +extends template + +block meta + meta(charset='utf-8') + meta(http-equiv='X-UA-Compatible' content='IE=edge') + meta(name='HandheldFriendly' content='True') + meta(name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1') + meta(name='description' content=post.title) + meta(property='og:type' content='article') + meta(property='og:url' content=blogUrl(post)) + meta(property='og:title' content=post.title) + meta(property='og:site_name' content="Garrett's Blog") + meta(property='og:description' content=post.title) + meta(property='og:locale' content='en_US') + // fixme: description, og:image + meta(property='article:published_time' content=post.date.toISOString()) + meta(property='article:modified_time' content=post.date.toISOString()) + meta(property='article:author' content='Garrett Mills') + each tag in post.tags + meta(property='article:tag' content=tag) + meta(name='twitter:card' content='summary') + + // fixme: twitter:image + +block append style + link(rel='stylesheet' href=asset('highlight/styles/' + themeRecord.highlightTheme + '.min.css')) + +block append script + script(src=asset('highlight/highlight.min.js')) + script. + hljs.highlightAll(); + +block blog_content + h2.post-title #{post.title} + p.post-byline by Garrett Mills on #{blogDate(post.date)} + .post-tags + ul + each tag in post.tags + li + a.button(href=named('blog')+'/tag/'+tag) ##{tag} + + .post-content !{renderedPost} diff --git a/src/app/resources/views/blog/tag.pug b/src/app/resources/views/blog/tag.pug new file mode 100644 index 0000000..cbf3f07 --- /dev/null +++ b/src/app/resources/views/blog/tag.pug @@ -0,0 +1,10 @@ +extends template + +block blog_content + h2(style="font-size: 36pt; font-family: Lora, serif") ##{tag} + + .recent-posts + each post in posts + .post-tile + .date #{blogDate(post.date)} + a.title(href=blogUrl(post)) #{post.title} diff --git a/src/app/resources/views/blog/tags.pug b/src/app/resources/views/blog/tags.pug new file mode 100644 index 0000000..78e0fb8 --- /dev/null +++ b/src/app/resources/views/blog/tags.pug @@ -0,0 +1,9 @@ +extends template + +block blog_content + h2(style="font-size: 36pt") Tags + + .post-tags.listed + ul + each tag in tags + li ##{tag} (#{counts[tag]}) diff --git a/src/app/resources/views/blog/template.pug b/src/app/resources/views/blog/template.pug new file mode 100644 index 0000000..67a6c09 --- /dev/null +++ b/src/app/resources/views/blog/template.pug @@ -0,0 +1,34 @@ +extends ../template_70s + +block append style + link(rel='alternate' href=named('blog:atom') title="Garrett's Blog" type='application/atom+xml') + link(rel='alternate' href=named('blog:rss') title="Garrett's Blog" type='application/rss+xml') + link(rel='alternate' href=named('blog:json') title="Garrett's Blog" type='application/feed+json') + +block content + .container#top + .inner + if !post + .hero + // FIXME: make this the default? + .hero-box(style='margin-bottom: 0') + h1 Garrett Mills + + section#blog-header + if !post + h2 Blog + else + h2(style='font-size: 26pt; padding-top: 20px') Garrett's Blog + ul.inline-nav + li + a.button(href=named('blog')) Home + li + a.button(href=named('home')) Main Site + li + a.button(href=named('blog:archive')) Archive + li + a.button(href=named('blog:tags')) Tags + li + a.button(href=named('blog:feeds')) Feeds + + block blog_content diff --git a/src/app/services/Blog.service.ts b/src/app/services/Blog.service.ts new file mode 100644 index 0000000..175036d --- /dev/null +++ b/src/app/services/Blog.service.ts @@ -0,0 +1,199 @@ +import * as fs from 'fs/promises' +import * as matter from 'gray-matter' +import * as marked from 'marked' +import * as RSSFeed from 'feed' +import * as xml2js from 'xml2js' +import {Singleton, appPath, Collection, Inject, Maybe, collect, Logging, hasOwnProperty, Routing} from '@extollo/lib' + +export interface BlogPostFrontMatter { + title: string + slug: string + date: Date + tags: string[] +} + +export const isBlogPostFrontMatter = (what: unknown): what is BlogPostFrontMatter => { + return typeof what === 'object' && what !== null + && hasOwnProperty(what, 'title') && typeof what.title === 'string' + && hasOwnProperty(what, 'slug') && typeof what.slug === 'string' + && hasOwnProperty(what, 'date') && what.date instanceof Date + && hasOwnProperty(what, 'tags') && Array.isArray(what.tags) + && what.tags.every(tag => typeof tag === 'string') +} + +export type BlogPost = BlogPostFrontMatter & { + file: string + markdown: string +} + +export interface FeedSub { + category: string + name: string + url: string +} + +@Singleton() +export class Blog { + @Inject() + protected readonly logging!: Logging + + @Inject() + protected readonly routing!: Routing + + protected posts: Maybe> + + protected postRenderCache: Record = {} + + protected cachedFeed: Maybe + + async getAllPosts(): Promise> { + if ( !this.posts ) { + this.posts = collect() + const path = appPath('resources', 'blog-posts') + const contents = await fs.readdir(path.toLocal) + for ( const file of contents ) { + if ( !file.endsWith('.md') ) continue + const filePath = path.concat(file) + const fileContents = await filePath.read() + const parsed = matter(fileContents) + + const front = parsed.data + if ( !isBlogPostFrontMatter(front) ) { + this.logging.warn(`The following blog post had invalid front-matter: ${filePath}`) + continue + } + + this.posts.push({ + ...front, + file, + markdown: parsed.content, + }) + } + + this.posts = this.posts.sortByDesc('date') + } + + return this.posts + } + + getPost(slug: string): Promise> { + return this.getAllPosts() + .then(p => p.firstWhere('slug', '=', slug)) + } + + async renderPost(slug: string): Promise> { + const cached = this.postRenderCache[slug] + if ( cached ) { + return cached + } + + const post = await this.getPost(slug) + if ( !post ) { + return undefined + } + + const render = marked.marked(post.markdown) + this.postRenderCache[slug] = render + return render + } + + async getFeed(): Promise { + if ( this.cachedFeed ) { + return this.cachedFeed + } + + const posts = await this.getAllPosts() + const feed = new RSSFeed.Feed({ + title: 'Garrett\'s Blog', + description: 'Write-ups and musings by Garrett Mills, often technical, sometimes not', + id: `${this.routing.getAppUrl()}#about`, + link: this.routing.getNamedPath('blog').toRemote, + language: 'en', + image: this.routing.getAssetPath('favicon', 'apple-touch-icon.png').toRemote, + favicon: this.routing.getAssetPath('favicon', 'favicon.ico').toRemote, + copyright: `Copyright (c) ${(new Date).getFullYear()} Garrett Mills. See website for licensing details.`, + updated: posts.whereMax('date').first()?.date, + generator: '', + feedLinks: { + json: this.routing.getNamedPath('blog:json').toRemote, + atom: this.routing.getNamedPath('blog:atom').toRemote, + rss: this.routing.getNamedPath('blog:rss').toRemote, + }, + author: { + name: 'Garrett Mills', + email: 'shout@garrettmills.dev', + link: 'https://garrettmills.dev/#about', + }, + }) + + feed.addCategory('Technology') + feed.addCategory('Software Development') + + await posts.map(async post => { + feed.addItem({ + title: post.title, + date: post.date, + id: this.getUrl(post), + link: this.getUrl(post), + content: await this.renderPost(post.slug), + author: [{ + name: 'Garrett Mills', + email: 'shout@garrettmills.dev', + link: 'https://garrettmills.dev/#about', + }], + }) + }).awaitAll() + + this.cachedFeed = feed + return feed + } + + async getSubs(): Promise> { + const subs = collect() + const opml = await this.getOPML() + for ( const row of opml.opml.body[0].outline ) { + if ( !row.outline ) { + subs.push({ + category: '(uncategorized)', + name: row['$'].text, + url: row['$'].xmlUrl, + }) + continue + } + + let category = row['$'].text + if ( category === 'Garrett Mills' ) category += ' (shameless plug)' + for ( const sub of row.outline ) { + subs.push({ + category, + name: sub['$'].text, + url: sub['$'].xmlUrl, + }) + } + } + return subs + } + + async getOPML(): Promise { + const path = appPath('resources', 'assets', 'rss_opml.xml') + const xmlContent = await path.read() + return new Promise((res, rej) => { + xml2js.parseString(xmlContent, (err, result) => { + if ( err ) { + rej(err) + } + + res(result) + }) + }) + } + + getUrl(post: BlogPost): string { + const year = post.date.getFullYear() + let month = String(post.date.getMonth() + 1) + if ( month.length < 2 ) month = `0${month}` + let day = String(post.date.getDate()) + if ( day.length < 2 ) day = `0${day}` + return `/blog/${year}/${month}/${day}/${post.slug}/` + } +}