git ssb

0+

dinoworm ๐Ÿ› / campjs-viii-ludditejs



Tree: cc739adf29428df8628ea59c7c691605e3a9ae71

Files: cc739adf29428df8628ea59c7c691605e3a9ae71 / index.html

902449 bytesRaw
1<!DOCTYPE html>
2<html>
3 <head>
4 <meta charset="utf-8" />
5 <title>Luddite.js</title>
6 <style>
7 body {
8 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
9}
10h1, h2, h3 {
11 font-weight: 400;
12 margin-bottom: 0;
13 margin-top: 0.15em;
14}
15.remark-slide-content {
16 font-size: 2.0em;
17 line-height: 1.2;
18}
19.remark-slide-content h1 {
20 font-size: 3.5em;
21}
22.remark-slide-content h2 {
23 font-size: 3em;
24}
25.remark-slide-content h3 {
26 font-size: 2.2em;
27}
28.footnote {
29 position: absolute;
30 bottom: 3em;
31}
32li p { line-height: 1.25em; }
33.red { color: #fa0000; }
34.large { font-size: 2em; }
35a, a > code {
36 color: rgb(249, 38, 114);
37 text-decoration: none;
38}
39code {
40 background: none repeat scroll 0 0 #F8F8FF;
41 border: 1px solid #DEDEDE;
42 border-radius: 3px ;
43 padding: 0 0.2em;
44}
45.remark-code, .remark-inline-code { font-family: "Bitstream Vera Sans Mono", "Courier", monospace; }
46.remark-code-line-highlighted { background-color: #373832; }
47.pull-left {
48 float: left;
49 width: 47%;
50}
51.pull-right {
52 float: right;
53 width: 47%;
54}
55.pull-right ~ p {
56 clear: both;
57}
58#slideshow .slide .content code {
59 font-size: 0.8em;
60}
61#slideshow .slide .content pre code {
62 font-size: 0.9em;
63 padding: 15px;
64}
65.main-title, .title {
66 background: #272822;
67 color: #777872;
68 text-shadow: 0 0 20px #333;
69}
70.title h1, .title h2, .main-title h1, .main-title h2 {
71 color: #f3f3f3;
72 line-height: 1.2em;
73}
74.remark-code {
75 display: block;
76 padding: 0.5em;
77}
78
79.row {
80 display: flex;
81 justify-content: space-around;
82}
83
84.center {
85 margin: 0 auto;
86}
87
88footer {
89 position: absolute;
90 font-size: 1.4rem;
91 bottom: 12px;
92 left: 0;
93 right: 0;
94 color: #808080;
95 text-align: center;
96}
97
98.success {
99 border-top: solid 10px #449d44;
100}
101
102.info {
103 border-top: solid 10px #5BC0DE;
104}
105
106.warning {
107 border-top: solid 10px #F0AD4E;
108}
109
110.danger {
111 border-top: solid 10px #D9534F;
112}
113
114 </style>
115 </head>
116 <body>
117 <textarea id="source">
118layout: true
119
120<footer>dinosaur.is</footer>
121
122---
123class: center
124
125# luddite.js
126
127<img src="./white-rabbit.jpg" />
128
129<!-- image credit to http://www.rabbitholekc.org/ -->
130
131???
132
133---
134class: center
135
136## hey [CampJS](http://campjs.com)
137
138i'm [Mikey](http://dinosaur.is) from [Enspiral](https://enspiral.com) & [Root Systems](https://www.rootsystems.nz)
139
140<div class="row">
141 <a href="http://dinosaur.is.com">
142 <img alt="Mikey's avatar" src="./avatar.png" width="200" />
143 </a>
144 <a href="http://enspiral.com">
145 <img alt="Enspiral logo" src="./enspiral.png" width="200" />
146 </a>
147 <a href="http://dinosaur.is">
148 <img alt="Root Systems logo" src="./root-systems.jpg" width="200" />
149 </a>
150</div>
151
152slides are available at:
153
154<http://dinosaur.is/campjs-viii-ludditejs>
155
156???
157
158- second time presenting at a conference.
159- i want to share what i am passionate about
160 - i might say negative things about some JavaScript patterns, but i use those patterns too
161 - i don't want to yuck your yum
162- i'll try to be upfront and honest, apologies in advance if i disguise any opinions as facts
163- in general everyone in the JavaScript community is doing a wonderful job, i appreciate your work
164
165---
166class: center, info
167
168## shout-out
169
170???
171
172- when i was writing this talk a few days ago, covered in Imposter Syndrome, i realized...
173 - someone inspired my passion behind this talk without me realizing
174
175---
176class: info
177
178### Douglas Engelbart
179
180augment human intellect
181
182<img src="./engelbart.jpg" height="350" class="center" />
183
184???
185
186- i take the Douglas Engelbart approach to developer experience
187- you may have heard of the Mother of all Demos, if not i highly recommend you check it out
188- he intended to boost collective intelligence to solve urgent global problems
189- Englebart's vision was that the power of technology came with inherent complexity
190- so priority is not ease of use but powerful human computer expression
191- let's evolve our JavaScript together to solve urgent global problems
192
193references:
194
195- https://alistapart.com/column/douglas-engelbart
196- http://www.dougengelbart.org/pubs/augment-3906.html
197- http://99percentinvisible.org/episode/of-mice-and-men/
198
199---
200class: center
201
202### let's adventure
203
204#### to the silly wonderland of luddite.js
205
206<img src="./rabbit-hole.jpg" height='380' class="center" />
207
208<!-- image credit to Mary Blair at Disney -->
209
210???
211
212an ambiguous utopia
213
214
215---
216class: info
217
218## Luddite?
219
220the [Luddites](https://en.wikipedia.org/wiki/Luddite) was a political movement against _centralized automated technology_.
221
222<img src="./luddite.jpg" height='300' class="center" />
223
224???
225
226- many Luddites were skilled machine operators in the textile industry
227- they wanted machines to make high-quality goods, run by workers who had gone through an apprenticeship and got paid decent wages
228- they attacked centralized factories who used automated machines operated by unskilled labor
229- they used fictious characters to make their story ring
230 - see Ned Ludd, the made-up leader, who lived in Sherwood Forest
231
232---
233class: info
234
235## luddite.js?
236
237**luddite.js** is a (made-up) meme for _decentralized simple JavaScript_.
238
239- decentralized userland ecosystems
240- simple patterns based on function signatures
241
242???
243
244- not centralized core committees
245- not trendy libraries that lock you in
246- gonna lead you on a journey through the luddite way to do things
247- a study of functional JavaScript patterns that have evolved in userland
248
249---
250class: center, info
251
252## decentralized userland ecosystems
253
254---
255class: info
256
257what if i told you...
258
259<img src="./morpheus-cat.png" height="400" />
260
261that anyone can create a _standard_?
262
263???
264
265- not everyone needs to agree with you
266- no corporate sponsorship necessary
267
268---
269class: info
270
271### what is a standard?
272
273anything that enough people use is a "standard"
274
275example: ["standard style"](https://github.com/feross/standard)
276
277```
278npm install --global standard
279```
280
281???
282
283- a standard is one opinion, shared my many
284- tc39 is a great team advancing the state of the art in JavaScript,
285 - but the standards produced by tc39 are only one of _many_ possible JavaScript opinions
286- we all have the power to create our own JavaScript opinions
287 - no experience necessary!
288- what other standards can you think of?
289 - anything "best practice", maybe even within a small niche community
290
291---
292class: info
293
294### what is a _luddite.js_ standard?
295
296a standard based on a function signature
297
298example: [Redux](https://redux.js.org) reducers
299
300```js
301const reducer = (state, action) => nextState
302```
303
304???
305
306- what other standards based on function signatures can you think of?
307 - express / connect: (req, res, next)
308
309---
310class: info
311
312### why is this important?
313
314- easy to test
315- accessible for anyone to participate
316- no module lock-in
317
318???
319
320- you can test the functions directly without using the module
321- you don't need anyone's approval to write a "function specification"
322- you can swap libraries that are compatible with the "function specification"
323
324---
325class: center, info
326
327## simple patterns based on function signatures
328
329---
330class: info
331
332what if i told you...
333
334<img src="./morpheus-cat.png" height="400" />
335
336that you only needed _functions and objects_?
337
338???
339
340- no fancy syntax necessary
341 - less language clutter
342- how can we apply this pattern to the full stack?
343
344---
345class: success
346
347### just a function
348
349```js
350function fn (options) { return value }
351```
352
353```js
354const fn = (...args) => ({ [key]: value })
355```
356
357---
358class: info
359
360### sync function signals
361
362with a sync function, there are two possible signals:
363
3641. value: `return value`
3652. error: `throw error`
366
367???
368
369```js
370function fn (...args) { throw error }
371```
372
373```js
374try {
375 fn(...args)
376} catch (const err) {
377 // handle error
378}
379```
380
381---
382class: center, info
383
384## modules
385
386---
387class: danger
388
389### es modules
390
391```js
392import thing from 'module'
393
394export default thing
395```
396
397```js
398import { thing as thingy } from 'module'
399
400export const thing = thingy
401```
402
403???
404
405- why new syntax?
406 - there's myths that es modules make possible something new
407- what is happening here?
408 - i find this can be confusing for beginners who don't understand the special syntax and complex implementation details
409- in the wild, export default breaks CommonJS code
410 - yes, i'm bitter about this, i've lost many hours debugging broken code, only to realize the module author published a patch version that broke the CommonJS exports
411
412---
413class: success
414
415### node modules
416
417also known as "CommonJS"
418
419```js
420const thing = require('module')
421
422module.exports = thing
423```
424
425```js
426const { thing: thingy } = require('module')
427
428module.exports = { thing: thingy }
429```
430
431???
432
433- it's just a function!
434- implementation details are simple:
435 - `fs.readFileSync` the module file
436 - wrap in closure to provide global variables like `require`, `module`, `exports`, `global`
437 - run code in JavaScript interpreter
438 - capture result of `module.exports` variable
439- when i started using Node.js from Python, `require`-as-a-function is what excited me the most
440 - so yes, i'm somewhat bitter that now JavaScript is adopting the same syntax as Python
441---
442class: center, info
443
444## dom elements
445
446---
447class: danger
448
449### jsx
450
451```js
452import React from 'react'
453
454export default function ({ rows }) {
455 return (
456 <Table>
457 {rows.map(row =>
458 <Row>
459 {row.map(item =>
460 <Item>
461 {item}
462 </Item>
463 )}
464 </Row>
465 )}
466 </Table>
467 )
468}
469
470function Table ({ children }) {
471 return <table className='table'>{children}</table>
472}
473
474function Row ({ children }) {
475 return <tr className='row'>{children}</tr>
476}
477
478function Item ({ children }) {
479 return <td className='item'>{children}</td>
480})
481```
482
483???
484
485- made by Facebook to make React easier to use
486- looks friendly on the surface, but underneath has non-obvious edge cases
487 - hides that React is actually `React.createElement` function calls
488 - "why can't i use `if () { first } else { second }`?
489 - can only use expressions, not statements
490
491---
492class: success
493
494### hyperscript
495
496```js
497const h = require('react-hyperscript')
498
499module.exports = Table
500
501function Table ({ rows ) {
502 return h('table', {
503 className: 'table'
504 }, rows.map(row => {
505 h('tr', {
506 className: 'row'
507 }, row.map(item => {
508 h('td', {
509 className: 'item'
510 }, Item(item))
511 })
512 })
513}
514```
515
516???
517
518- `React.createElement` is basically a strict hyperscript
519- syntax can be confusing at first
520
521---
522class: success
523
524### hyperx
525
526```js
527const hyperx = require('hyperx')
528const React = require('react')
529const html = hyperx(React.createElement)
530
531module.exports = Table
532
533function Table ({ rows ) {
534 return html`<table class='table'>
535 ${rows.map(row => {
536 html`<tr class='row'>
537 ${row.map(item => {
538 html`<td class='item'>${item}</td>`
539 })}
540 </tr>`
541 })}
542 </table>`
543}
544```
545
546???
547
548- similar to JSX, but uses existing language features: tagged template string
549
550---
551class: center, info
552
553## eventual value
554
555---
556class: danger
557
558### promise
559
560```js
561const promise = new Promise((resolve, reject) => {
562 // do stuff...
563 resolve(value)
564 // oh no!
565 reject(error)
566}
567```
568
569```js
570promise
571 .then(value => console.log(value))
572 .catch(err => console.error(value))
573```
574
575???
576
577```js
578module.exports = fetchCats
579
580function fetchCats ({ cats }) {
581 return Promise.all(cats.map(cat => {
582 return fetch(cat)
583 }))
584})
585```
586
587---
588class: success
589
590### continuable
591
592a "continuable" is a function that takes a single argument, a node-style error-first callback
593
594```js
595const continuable = (callback) => {
596 // do stuff...
597 callback(null, value)
598 // oh no!
599 callback(error)
600}
601```
602
603```js
604continuable((err, value) => {
605 if (err) console.error(err)
606 else console.log(value)
607})
608```
609
610???
611
612a continuable is the callback version of a promise
613
614can be passed around as an "eventual value", same as promises. but without the resolved, pending, rejected state machine complexity.
615
616- [`continuable`](https://github.com/Raynos/continuable)
617- [`cont`](https://github.com/dominictarr/cont)
618
619
620```js
621const request = require('request')
622const parallel = require('run-parallel')
623
624module.exports = fetchCats
625
626function fetchCats ({ cats }) {
627 return callback => parallel(cats.map(cat => {
628 return request(cat, callback)
629 }))
630})
631```
632
633---
634class: info
635
636### async errors
637
638with a node-style error-first callback, there are three possible signals:
639
6401. value: `callback(null, value)`
6412. user error: `callback(error)`
6423. programmer error: `throw error`
643
644???
645
646- promise errors smush the user and programmer errors together
647- promises wrap all your handlers in a `try` / `catch`, so even if you have a different opinion about error handling, promises will force it's opinion on you
648 - yes, i'm bitter about this, i've lost many hours trying to figure out where my errors went
649
650---
651class: center, info
652
653## reactive values
654
655---
656class: danger
657
658### es observables
659
660https://tc39.github.io/proposal-observable/
661
662???
663
664too much detail to explain here
665
666- https://github.com/tc39/proposal-observable
667
668---
669class: success
670
671### observ-ables
672
673reactive values using only functions!
674
675> - `thing()` gets the value
676> - `thing.set(...)` sets the value
677> - `thing(function (value) { ... })` listens to the value.
678
679???
680
681- [`observ`](https://github.com/Raynos/observ)
682- [`observable`](https://github.com/dominictarr/observable)
683- [`push-stream`](https://github.com/ahdinosaur/push-stream)
684- [`mutant`](https://github.com/mmckegg/mutant)
685
686---
687class: success
688
689```js
690TODO add mutant html example
691```
692
693???
694
695---
696class: center, info
697
698## values over time
699
700---
701class: danger
702
703### node streams
704
705https://nodejs.org/api/stream.html
706
707???
708
709- https://github.com/substack/stream-handbook
710- https://github.com/workshopper/stream-adventure
711
712---
713class: danger
714
715### whatwg streams
716
717https://streams.spec.whatwg.org/
718
719???
720
721- https://github.com/whatwg/streams
722
723---
724class: success
725
726### pull streams
727
728async streams using only functions!
729
730```js
731pull(source, through, sink)
732```
733
734- composable partial pipelines
735- unbuffered by default
736- pipeline error propogation
737- source and sink back-pressure
738
739???
740
741pull streams could be its own talk, going to be a quick intro
742
743- [history of streams](http://dominictarr.com/post/145135293917/history-of-streams)
744- [pull stream examples](https://github.com/dominictarr/pull-stream-examples)
745- [pull streams intro](http://dominictarr.com/post/149248845122/pull-streams-pull-streams-are-a-very-simple)
746- [pull stream](https://pull-stream.github.io/)
747- [pull stream workshop](https://github.com/pull-stream/pull-stream-workshop)
748
749---
750class: success
751
752#### source spec
753
754```js
755function createSource (...args) {
756 // a source function accepts
757 // - abort: a boolean whether to signal end
758 // - callback: where to send next signal
759 return source (abort, callback) => {
760 if (abort || done) callback(true)
761 else callback(null, value)
762 }
763}
764```
765
766???
767
768- look ma, just functions!
769- yes, we are using callbacks even for synchronous results
770 - much faster this way, no reason to delay til next tick
771
772```js
773function values (array) {
774 var i = 0
775 return (abort, callback) => {
776 if (abort || i === array.length) {
777 callback(true)
778 }
779 else {
780 callback(null, array[i++]
781 }
782 }
783}
784```
785
786---
787class: success
788
789#### source usage
790
791```js
792const values = require('pull-stream/sources/values')
793
794const source = values([0, 1, 2, 3])
795
796source(null, (err, value) {
797 console.log('first value:', value)
798})
799// first value: 0
800```
801
802---
803class: success
804
805#### sink spec
806
807```js
808function createSink (...args) {
809 // a sink function accepts a source
810 return (source) => {
811 // reads a value from the source
812 source(null, function next (err, value) {
813 // handle the result
814 if (err) return handleError(err)
815 handleValue(value)
816
817 // recursively call source again!
818 source(null, next)
819 })
820 }
821}
822```
823
824???
825
826- `handleError` might abort the source and call a done callback passed in through the args
827- `handleValue` might do something with each value
828
829
830```js
831function log (source) {
832 source(null, function next (err, data) {
833 if (err) return console.log(err)
834 console.log(data)
835 // recursively call source again!
836 source(null, next)
837 })
838}
839```
840
841with continuables:
842
843```js
844function log (source) {
845 return (callback) => {
846 source(null, function next (err, data) {
847 if (err) return callback(err)
848 console.log(data)
849 // recursively call source again!
850 source(null, next)
851 })
852 }
853}
854```
855
856---
857class: success
858
859#### sink usage
860
861```js
862const values = require('pull-stream/sources/values')
863const drain = require('pull-stream/sinks/drain')
864
865const source = values([0, 1, 2, 3])
866const log = drain(console.log)
867
868log(source)
869// 0
870// 1
871// 2
872// 3
873```
874
875---
876class: success
877
878#### through spec
879
880```js
881function createThrough (...args) {
882 // a sink function: accept a source
883 return (source) => {
884 // but return another source!
885 return (abort, callback) {
886 // if the through should abort, pass that on.
887 source(abort, (err, value) => {
888 // if the source has an error, pass that on.
889 if (err) callback(err)
890 // else transform the value
891 else callback(null, transformValue(value))
892 })
893 }
894 }
895}
896```
897
898???
899
900```js
901function map (mapper) {
902 // a sink function: accept a source
903 return function (source) {
904 // but return another source!
905 return function (abort, callback) {
906 source(abort, function (err, data) {
907 // if the stream has ended, pass that on.
908 if (err) callback(err)
909 // apply a mapping to that data
910 else callback(null, mapper(data))
911 })
912 }
913 }
914}
915```
916
917---
918class: success
919
920#### through usage
921
922```js
923const values = require('pull-stream/sources/values')
924const drain = require('pull-stream/sinks/drain')
925const map = require('pull-stream/throughs/map')
926
927const source = values([0, 1, 2, 3])
928const log = drain(console.log)
929const double = map(x => x * 2)
930
931log(double(source))
932// 0
933// 2
934// 4
935// 6
936```
937
938---
939class: success
940
941#### compose pull streams
942
943```js
944pull(source, through) // returns source
945
946pull(through, sink) // returns sink
947
948pull(source, sink) // runs to end
949```
950
951---
952class: success
953
954#### wild pull streams
955
956ecosystem of modules: [pull-stream.github.io](https://pull-stream.github.io)
957
958```js
959// parse a csv file
960pull(
961 File(filename),
962 CSV(),
963 pull.drain(console.log)
964)
965
966function CSV () {
967 return pull(
968 Split(), // defaults to '\n'
969 pull.map(function (line) {
970 return line.split(',')
971 })
972 )
973}
974```
975
976???
977
978obviously you don't want to re-implement simple streams from scratch all the time
979
980---
981class: info
982
983#### pull stream errors
984
985with a pull stream source callback, there are four possible signals:
986
9871. value: `callback(null, value)`
9882. user error: `callback(error)`
9893. programmer error: `throw error`
9904. complete: `callback(true)`
991
992???
993
994- both the source and sink can signal back-pressure ("hey i'm busy") by not calling the respective callback
995
996---
997class: center, info
998
999## why should you be a JavaScript luddite?
1000
1001---
1002class: success
1003
1004### better performance
1005
1006software performance is less about gaining muscle, more about losing weight
1007
1008???
1009
1010- code runs faster when it does less
1011- if you don't use fancy syntax (jsx, etc), you don't need fancy build steps
1012
1013---
1014class: success
1015
1016### easier to describe
1017
1018specification is a function signature, not a complex state machine
1019
1020???
1021
1022- clear inputs and outputs
1023- small code blocks (or "snippets") can be deceiving
1024 - leads to a positive first impression, until you use in production where the edge cases leak through the abstractions
1025 - i find nothing more difficult than edge cases at scale caused by hiding complexity in our tools
1026
1027---
1028class: success
1029
1030### path to mastery
1031
1032learnable tools focused on power users
1033
1034<img src="./training-wheels.jpg" height="350" class="center" />
1035
1036???
1037
1038- training wheels are great to get started and go around the blockS
1039- yes promises are easier than callbacks, a beginner can start using with less learning, training, or practice
1040- but when you want to go up a hill or go a long distance, you want a real bike
1041 - this takes time to learn how to steer and balance on
1042- how many hours to do we spend writing complex code, is the most intuitive abstraction best suited for our evolving understanding?
1043 - here's one of many possible abstractions, but is not the end answer
1044
1045---
1046class: center, info
1047
1048## stories
1049
1050---
1051class: warning
1052
1053### story: catstack
1054
1055build a framework from scratch, alone
1056
1057<img src="./catstack.jpg" height="350" class="center" />
1058
1059???
1060
1061reinvent every wheel possible! the entire web stack.
1062
1063https://github.com/root-systems/catstack
1064
1065i did it, but it was unsustainable, unable to transfer context to team
1066
1067---
1068class: warning
1069
1070### learning:
1071
1072yay, reinventing wheels for fun and learning
1073
1074boo, the world on your shoulders
1075
1076???
1077
1078pros
1079
1080- no better way to learn how systems work than by building them from scratch
1081- own your dependencies, don't consume them for granted
1082- provide consistent flavoring across subsystems
1083- marginally better than other libraries
1084
1085cons
1086
1087- easy to become isolated
1088 - if you aren't enough to become popular, you're alone
1089- spreads you thin
1090 - hard to work on what you can do best, because you have to spend limited resources on your marginally better stack
1091- easy to rabbit hole
1092- probably miss the long tail: i18n, accessibility, tests
1093- always doing maintenance
1094
1095---
1096class: info
1097
1098### revised: dogstack
1099
1100choose your battles
1101
1102<img src="./dogstack.jpg" height="350" class="center" />
1103
1104???
1105
1106focus on what you do best
1107
1108delegates parts where you are only marginally better
1109
1110http://dogstack.js.org/
1111
1112---
1113class: success
1114
1115### story: patch ecosystem
1116
1117bring-your-own-JavaScript potluck
1118
1119<img src="./patchwork.png" height="350" class="center" />
1120
1121???
1122
1123build an app with others, bring your own JavaScript opinions
1124
1125references:
1126
1127- https://github.com/ssbc/patchcore
1128- https://github.com/ssbc/patchwork
1129- https://github.com/ssbc/patchbay
1130- https://github.com/ssbc/patchlite
1131
1132---
1133class: success, center
1134
1135#### offline social media
1136
1137<http://patchwork.campjs.com>
1138
1139<img src="./patchwork-screenshot.jpg" height="400" class="center" />
1140
1141---
1142class: success, center
1143
1144#### git projects
1145
1146```js
1147npm install -g git-ssb
1148```
1149
1150<img src="./git-ssb-screenshot.png" height="400" class="center" />
1151
1152---
1153class: success
1154
1155### learning: mad science works!
1156
1157follow your passion
1158
1159find others who share your passion
1160
1161???
1162
1163- somebody should: if you see something that needs doing, it's your job to do
1164- find ways to collaborate with active listening and empathy
1165- mad science: find something worth doing, do it, publish, repeat
1166
1167---
1168class: center, info
1169
1170## conclusion
1171
1172---
1173class: info
1174
1175### so what
1176
1177everyone has opinions.
1178
1179this one is mine. =^.^=
1180
1181???
1182
1183as my Mom always says:
1184
1185> it's not about being right, it's about being successful
1186
1187takaways
1188- izs pants post: https://groups.google.com/forum/#!msg/nodejs/MWaivVTirPY/0pnRjKsggkIJ
1189 - everyone has opinions, be aware of yours' and others'
1190 - when you come over to someone's house, be polite and respect their opinions
1191- don't force your opinions on others
1192 - share what you're passionate about
1193 - avoid persuading anyone that your way is better
1194- the luddite.js way is just another opinion, not better or worse than yours
1195
1196## aids
1197
1198- [eating your own dog food](https://en.wikipedia.org/wiki/Eating_your_own_dog_food)
1199- [mad science method](https://github.com/ahdinosaur/mad-science-handbook/blob/master/collaboration.md#the-mad-science-cycle)
1200- [do-ocracy](https://communitywiki.org/wiki/DoOcracy)
1201- marathon: keep a slow & steady pace one step at a time
1202- if you see a job that needs doing, it's your job to do (do-ocrarcy)
1203- too much sugar is bad for your health (simple interfaces)
1204
1205## blocks
1206
1207- cave method: try to design or implement the _perfect_ system before sharing it
1208- [design by committee](https://en.wikipedia.org/wiki/Design_by_committee)
1209- sprint: hype, mania, and burn-out
1210- [waterfall design](https://en.wikipedia.org/wiki/Waterfall_model)
1211
1212---
1213class: info
1214
1215### all the "standards"
1216
1217make up your own "standards"!
1218
1219you have just as much a right to make the next JavaScript standard as anyone else.
1220
1221???
1222
1223at the end of the day, standards are just somebody's opinion.
1224
1225---
1226class: info
1227
1228## questions?
1229
1230---
1231class: success
1232
1233## thanks!
1234
1235i appreciate the gift of your attention. โ™ฅ
1236
1237<img src="./follow_your_dreams.png" height="300" class="center" />
1238
1239<!-- image credit to @substack -->
1240
1241???
1242
1243## references
1244
1245- [es2040](https://github.com/ahdinosaur/es2040)
1246- [Art of Node](https://github.com/maxogden/art-of-node)
1247- [Art of I/O](http://ioschool.is/art-of-io/sessions/0/?notes=true)
1248- [Tiny Guide to Non Fancy Node](https://github.com/yoshuawuyts/tiny-guide-to-non-fancy-node)
1249
1250## luddite.js apps
1251
1252- https://webtorrent.io/
1253- http://standardjs.com/
1254- https://peermaps.github.io/
1255- http://loopjs.com/
1256- https://scuttlebutt.nz/
1257- https://choo.io/
1258
1259 </textarea>
1260 <script>require=(function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s<n.length;s++)i(n[s]);return i})({"components/printing":[function(require,module,exports){
1261module.exports=require('yoGRCZ');
1262},{}],"yoGRCZ":[function(require,module,exports){
1263var EventEmitter = require('events').EventEmitter
1264 , styler = require('components/styler')
1265 ;
1266
1267var LANDSCAPE = 'landscape'
1268 , PORTRAIT = 'portrait'
1269 , PAGE_HEIGHT = 681
1270 , PAGE_WIDTH = 908
1271 ;
1272
1273function PrintComponent () {}
1274
1275// Add eventing
1276PrintComponent.prototype = new EventEmitter();
1277
1278// Sets up listener for printing
1279PrintComponent.prototype.init = function () {
1280 var self = this;
1281
1282 this.setPageOrientation(LANDSCAPE);
1283
1284 if (!window.matchMedia) {
1285 return false;
1286 }
1287
1288 window.matchMedia('print').addListener(function (e) {
1289 self.onPrint(e);
1290 });
1291};
1292
1293// Handles printing event
1294PrintComponent.prototype.onPrint = function (e) {
1295 var slideHeight;
1296
1297 if (!e.matches) {
1298 return;
1299 }
1300
1301 this.emit('print', {
1302 isPortrait: this._orientation === 'portrait'
1303 , pageHeight: this._pageHeight
1304 , pageWidth: this._pageWidth
1305 });
1306};
1307
1308PrintComponent.prototype.setPageOrientation = function (orientation) {
1309 if (orientation === PORTRAIT) {
1310 // Flip dimensions for portrait orientation
1311 this._pageHeight = PAGE_WIDTH;
1312 this._pageWidth = PAGE_HEIGHT;
1313 }
1314 else if (orientation === LANDSCAPE) {
1315 this._pageHeight = PAGE_HEIGHT;
1316 this._pageWidth = PAGE_WIDTH;
1317 }
1318 else {
1319 throw new Error('Unknown print orientation: ' + orientation);
1320 }
1321
1322 this._orientation = orientation;
1323
1324 styler.setPageSize(this._pageWidth + 'px ' + this._pageHeight + 'px');
1325};
1326
1327// Export singleton instance
1328module.exports = new PrintComponent();
1329
1330},{"events":1,"components/styler":"syTcZF"}],"components/slide-number":[function(require,module,exports){
1331module.exports=require('GSZq7a');
1332},{}],"GSZq7a":[function(require,module,exports){
1333module.exports = SlideNumberViewModel;
1334
1335function SlideNumberViewModel (slide, slideshow) {
1336 var self = this;
1337
1338 self.slide = slide;
1339 self.slideshow = slideshow;
1340
1341 self.element = document.createElement('div');
1342 self.element.className = 'remark-slide-number';
1343 self.element.innerHTML = formatSlideNumber(self.slide, self.slideshow);
1344}
1345
1346function formatSlideNumber (slide, slideshow) {
1347 var format = slideshow.getSlideNumberFormat()
1348 , slides = slideshow.getSlides()
1349 , current = getSlideNo(slide, slideshow)
1350 , total = getSlideNo(slides[slides.length - 1], slideshow)
1351 ;
1352
1353 if (typeof format === 'function') {
1354 return format.call(slideshow, current, total);
1355 }
1356
1357 return format
1358 .replace('%current%', current)
1359 .replace('%total%', total);
1360}
1361
1362function getSlideNo (slide, slideshow) {
1363 var slides = slideshow.getSlides(), i, slideNo = 0;
1364
1365 for (i = 0; i <= slide.getSlideIndex() && i < slides.length; ++i) {
1366 if (slides[i].properties.count !== 'false') {
1367 slideNo += 1;
1368 }
1369 }
1370
1371 return Math.max(1, slideNo);
1372}
1373
1374},{}],2:[function(require,module,exports){
1375// shim for using process in browser
1376
1377var process = module.exports = {};
1378
1379process.nextTick = (function () {
1380 var canSetImmediate = typeof window !== 'undefined'
1381 && window.setImmediate;
1382 var canPost = typeof window !== 'undefined'
1383 && window.postMessage && window.addEventListener
1384 ;
1385
1386 if (canSetImmediate) {
1387 return function (f) { return window.setImmediate(f) };
1388 }
1389
1390 if (canPost) {
1391 var queue = [];
1392 window.addEventListener('message', function (ev) {
1393 var source = ev.source;
1394 if ((source === window || source === null) && ev.data === 'process-tick') {
1395 ev.stopPropagation();
1396 if (queue.length > 0) {
1397 var fn = queue.shift();
1398 fn();
1399 }
1400 }
1401 }, true);
1402
1403 return function nextTick(fn) {
1404 queue.push(fn);
1405 window.postMessage('process-tick', '*');
1406 };
1407 }
1408
1409 return function nextTick(fn) {
1410 setTimeout(fn, 0);
1411 };
1412})();
1413
1414process.title = 'browser';
1415process.browser = true;
1416process.env = {};
1417process.argv = [];
1418
1419process.binding = function (name) {
1420 throw new Error('process.binding is not supported');
1421}
1422
1423// TODO(shtylman)
1424process.cwd = function () { return '/' };
1425process.chdir = function (dir) {
1426 throw new Error('process.chdir is not supported');
1427};
1428
1429},{}],1:[function(require,module,exports){
1430(function(process){if (!process.EventEmitter) process.EventEmitter = function () {};
1431
1432var EventEmitter = exports.EventEmitter = process.EventEmitter;
1433var isArray = typeof Array.isArray === 'function'
1434 ? Array.isArray
1435 : function (xs) {
1436 return Object.prototype.toString.call(xs) === '[object Array]'
1437 }
1438;
1439function indexOf (xs, x) {
1440 if (xs.indexOf) return xs.indexOf(x);
1441 for (var i = 0; i < xs.length; i++) {
1442 if (x === xs[i]) return i;
1443 }
1444 return -1;
1445}
1446
1447// By default EventEmitters will print a warning if more than
1448// 10 listeners are added to it. This is a useful default which
1449// helps finding memory leaks.
1450//
1451// Obviously not all Emitters should be limited to 10. This function allows
1452// that to be increased. Set to zero for unlimited.
1453var defaultMaxListeners = 10;
1454EventEmitter.prototype.setMaxListeners = function(n) {
1455 if (!this._events) this._events = {};
1456 this._events.maxListeners = n;
1457};
1458
1459
1460EventEmitter.prototype.emit = function(type) {
1461 // If there is no 'error' event listener then throw.
1462 if (type === 'error') {
1463 if (!this._events || !this._events.error ||
1464 (isArray(this._events.error) && !this._events.error.length))
1465 {
1466 if (arguments[1] instanceof Error) {
1467 throw arguments[1]; // Unhandled 'error' event
1468 } else {
1469 throw new Error("Uncaught, unspecified 'error' event.");
1470 }
1471 return false;
1472 }
1473 }
1474
1475 if (!this._events) return false;
1476 var handler = this._events[type];
1477 if (!handler) return false;
1478
1479 if (typeof handler == 'function') {
1480 switch (arguments.length) {
1481 // fast cases
1482 case 1:
1483 handler.call(this);
1484 break;
1485 case 2:
1486 handler.call(this, arguments[1]);
1487 break;
1488 case 3:
1489 handler.call(this, arguments[1], arguments[2]);
1490 break;
1491 // slower
1492 default:
1493 var args = Array.prototype.slice.call(arguments, 1);
1494 handler.apply(this, args);
1495 }
1496 return true;
1497
1498 } else if (isArray(handler)) {
1499 var args = Array.prototype.slice.call(arguments, 1);
1500
1501 var listeners = handler.slice();
1502 for (var i = 0, l = listeners.length; i < l; i++) {
1503 listeners[i].apply(this, args);
1504 }
1505 return true;
1506
1507 } else {
1508 return false;
1509 }
1510};
1511
1512// EventEmitter is defined in src/node_events.cc
1513// EventEmitter.prototype.emit() is also defined there.
1514EventEmitter.prototype.addListener = function(type, listener) {
1515 if ('function' !== typeof listener) {
1516 throw new Error('addListener only takes instances of Function');
1517 }
1518
1519 if (!this._events) this._events = {};
1520
1521 // To avoid recursion in the case that type == "newListeners"! Before
1522 // adding it to the listeners, first emit "newListeners".
1523 this.emit('newListener', type, listener);
1524
1525 if (!this._events[type]) {
1526 // Optimize the case of one listener. Don't need the extra array object.
1527 this._events[type] = listener;
1528 } else if (isArray(this._events[type])) {
1529
1530 // Check for listener leak
1531 if (!this._events[type].warned) {
1532 var m;
1533 if (this._events.maxListeners !== undefined) {
1534 m = this._events.maxListeners;
1535 } else {
1536 m = defaultMaxListeners;
1537 }
1538
1539 if (m && m > 0 && this._events[type].length > m) {
1540 this._events[type].warned = true;
1541 console.error('(node) warning: possible EventEmitter memory ' +
1542 'leak detected. %d listeners added. ' +
1543 'Use emitter.setMaxListeners() to increase limit.',
1544 this._events[type].length);
1545 console.trace();
1546 }
1547 }
1548
1549 // If we've already got an array, just append.
1550 this._events[type].push(listener);
1551 } else {
1552 // Adding the second element, need to change to array.
1553 this._events[type] = [this._events[type], listener];
1554 }
1555
1556 return this;
1557};
1558
1559EventEmitter.prototype.on = EventEmitter.prototype.addListener;
1560
1561EventEmitter.prototype.once = function(type, listener) {
1562 var self = this;
1563 self.on(type, function g() {
1564 self.removeListener(type, g);
1565 listener.apply(this, arguments);
1566 });
1567
1568 return this;
1569};
1570
1571EventEmitter.prototype.removeListener = function(type, listener) {
1572 if ('function' !== typeof listener) {
1573 throw new Error('removeListener only takes instances of Function');
1574 }
1575
1576 // does not use listeners(), so no side effect of creating _events[type]
1577 if (!this._events || !this._events[type]) return this;
1578
1579 var list = this._events[type];
1580
1581 if (isArray(list)) {
1582 var i = indexOf(list, listener);
1583 if (i < 0) return this;
1584 list.splice(i, 1);
1585 if (list.length == 0)
1586 delete this._events[type];
1587 } else if (this._events[type] === listener) {
1588 delete this._events[type];
1589 }
1590
1591 return this;
1592};
1593
1594EventEmitter.prototype.removeAllListeners = function(type) {
1595 if (arguments.length === 0) {
1596 this._events = {};
1597 return this;
1598 }
1599
1600 // does not use listeners(), so no side effect of creating _events[type]
1601 if (type && this._events && this._events[type]) this._events[type] = null;
1602 return this;
1603};
1604
1605EventEmitter.prototype.listeners = function(type) {
1606 if (!this._events) this._events = {};
1607 if (!this._events[type]) this._events[type] = [];
1608 if (!isArray(this._events[type])) {
1609 this._events[type] = [this._events[type]];
1610 }
1611 return this._events[type];
1612};
1613
1614})(require("__browserify_process"))
1615},{"__browserify_process":2}],3:[function(require,module,exports){
1616var Api = require('./remark/api')
1617 , polyfills = require('./polyfills')
1618 , styler = require('components/styler')
1619 ;
1620
1621// Expose API as `remark`
1622window.remark = new Api();
1623
1624// Apply polyfills as needed
1625polyfills.apply();
1626
1627// Apply embedded styles to document
1628styler.styleDocument();
1629
1630},{"components/styler":"syTcZF","./remark/api":4,"./polyfills":5}],"components/styler":[function(require,module,exports){
1631module.exports=require('syTcZF');
1632},{}],"syTcZF":[function(require,module,exports){
1633var resources = require('../../resources')
1634 , highlighter = require('../../highlighter')
1635 ;
1636
1637module.exports = {
1638 styleDocument: styleDocument
1639, setPageSize: setPageSize
1640};
1641
1642// Applies bundled styles to document
1643function styleDocument () {
1644 var headElement, styleElement, style;
1645
1646 // Bail out if document has already been styled
1647 if (getRemarkStylesheet()) {
1648 return;
1649 }
1650
1651 headElement = document.getElementsByTagName('head')[0];
1652 styleElement = document.createElement('style');
1653 styleElement.type = 'text/css';
1654
1655 // Set title in order to enable lookup
1656 styleElement.title = 'remark';
1657
1658 // Set document styles
1659 styleElement.innerHTML = resources.documentStyles;
1660
1661 // Append highlighting styles
1662 for (style in highlighter.styles) {
1663 if (highlighter.styles.hasOwnProperty(style)) {
1664 styleElement.innerHTML = styleElement.innerHTML +
1665 highlighter.styles[style];
1666 }
1667 }
1668
1669 // Put element first to prevent overriding user styles
1670 headElement.insertBefore(styleElement, headElement.firstChild);
1671}
1672
1673function setPageSize (size) {
1674 var stylesheet = getRemarkStylesheet()
1675 , pageRule = getPageRule(stylesheet)
1676 ;
1677
1678 pageRule.style.size = size;
1679}
1680
1681// Locates the embedded remark stylesheet
1682function getRemarkStylesheet () {
1683 var i, l = document.styleSheets.length;
1684
1685 for (i = 0; i < l; ++i) {
1686 if (document.styleSheets[i].title === 'remark') {
1687 return document.styleSheets[i];
1688 }
1689 }
1690}
1691
1692// Locates the CSS @page rule
1693function getPageRule (stylesheet) {
1694 var i, l = stylesheet.cssRules.length;
1695
1696 for (i = 0; i < l; ++i) {
1697 if (stylesheet.cssRules[i] instanceof window.CSSPageRule) {
1698 return stylesheet.cssRules[i];
1699 }
1700 }
1701}
1702
1703},{"../../resources":6,"../../highlighter":7}],"components/timer":[function(require,module,exports){
1704module.exports=require('GFo1Ae');
1705},{}],"GFo1Ae":[function(require,module,exports){
1706var utils = require('../../utils');
1707
1708module.exports = TimerViewModel;
1709
1710function TimerViewModel (events, element) {
1711 var self = this;
1712
1713 self.events = events;
1714 self.element = element;
1715
1716 self.startTime = null;
1717 self.pauseStart = null;
1718 self.pauseLength = 0;
1719
1720 element.innerHTML = '0:00:00';
1721
1722 setInterval(function() {
1723 self.updateTimer();
1724 }, 100);
1725
1726 events.on('start', function () {
1727 // When we do the first slide change, start the clock.
1728 self.startTime = new Date();
1729 });
1730
1731 events.on('resetTimer', function () {
1732 // If we reset the timer, clear everything.
1733 self.startTime = null;
1734 self.pauseStart = null;
1735 self.pauseLength = 0;
1736 self.element.innerHTML = '0:00:00';
1737 });
1738
1739 events.on('pause', function () {
1740 self.pauseStart = new Date();
1741 });
1742
1743 events.on('resume', function () {
1744 self.pauseLength += new Date() - self.pauseStart;
1745 self.pauseStart = null;
1746 });
1747}
1748
1749TimerViewModel.prototype.updateTimer = function () {
1750 var self = this;
1751
1752 if (self.startTime) {
1753 var millis;
1754 // If we're currently paused, measure elapsed time from the pauseStart.
1755 // Otherwise, use "now".
1756 if (self.pauseStart) {
1757 millis = self.pauseStart - self.startTime - self.pauseLength;
1758 } else {
1759 millis = new Date() - self.startTime - self.pauseLength;
1760 }
1761
1762 var seconds = Math.floor(millis / 1000) % 60;
1763 var minutes = Math.floor(millis / 60000) % 60;
1764 var hours = Math.floor(millis / 3600000);
1765
1766 self.element.innerHTML = hours + (minutes > 9 ? ':' : ':0') + minutes + (seconds > 9 ? ':' : ':0') + seconds;
1767 }
1768};
1769
1770},{"../../utils":8}],5:[function(require,module,exports){
1771exports.apply = function () {
1772 forEach([Array, window.NodeList, window.HTMLCollection], extend);
1773};
1774
1775function forEach (list, f) {
1776 var i;
1777
1778 for (i = 0; i < list.length; ++i) {
1779 f(list[i], i);
1780 }
1781}
1782
1783function extend (object) {
1784 var prototype = object && object.prototype;
1785
1786 if (!prototype) {
1787 return;
1788 }
1789
1790 prototype.forEach = prototype.forEach || function (f) {
1791 forEach(this, f);
1792 };
1793
1794 prototype.filter = prototype.filter || function (f) {
1795 var result = [];
1796
1797 this.forEach(function (element) {
1798 if (f(element, result.length)) {
1799 result.push(element);
1800 }
1801 });
1802
1803 return result;
1804 };
1805
1806 prototype.map = prototype.map || function (f) {
1807 var result = [];
1808
1809 this.forEach(function (element) {
1810 result.push(f(element, result.length));
1811 });
1812
1813 return result;
1814 };
1815}
1816},{}],6:[function(require,module,exports){
1817/* Automatically generated */
1818
1819module.exports = {
1820 version: "0.13.0",
1821 documentStyles: "html.remark-container,body.remark-container{height:100%;width:100%;-webkit-print-color-adjust:exact;}.remark-container{background:#d7d8d2;margin:0;overflow:hidden;}.remark-container:focus{outline-style:solid;outline-width:1px;}.remark-container:-webkit-full-screen{width:100%;height:100%;}body:-webkit-full-screen{background:#000000;}body:-moz-full-screen{background:#000000;}body:fullscreen{background:#000000;}.remark-slides-area{position:relative;height:100%;width:100%;}.remark-slide-container{display:none;position:absolute;height:100%;width:100%;page-break-after:always;}.remark-slide-scaler{background-color:transparent;overflow:hidden;position:absolute;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top-left;-moz-box-shadow:0 0 30px #888;-webkit-box-shadow:0 0 30px #888;box-shadow:0 0 30px #888;}.remark-slide{height:100%;width:100%;display:table;table-layout:fixed;}.remark-slide>.left{text-align:left;}.remark-slide>.center{text-align:center;}.remark-slide>.right{text-align:right;}.remark-slide>.top{vertical-align:top;}.remark-slide>.middle{vertical-align:middle;}.remark-slide>.bottom{vertical-align:bottom;}.remark-slide-content{background-color:#fff;background-position:center;background-repeat:no-repeat;display:table-cell;font-size:20px;padding:1em 4em 1em 4em;}.remark-slide-content h1{font-size:55px;}.remark-slide-content h2{font-size:45px;}.remark-slide-content h3{font-size:35px;}.remark-slide-content .left{display:block;text-align:left;}.remark-slide-content .center{display:block;text-align:center;}.remark-slide-content .right{display:block;text-align:right;}.remark-slide-number{bottom:12px;opacity:0.5;position:absolute;right:20px;}.remark-slide-notes{border-top:3px solid black;position:absolute;display:none;}.remark-code{font-size:18px;}.remark-code-line{min-height:1em;}.remark-code-line-highlighted{background-color:rgba(255, 255, 0, 0.5);}.remark-code-span-highlighted{background-color:rgba(255, 255, 0, 0.5);padding:1px 2px 2px 2px;}.remark-visible{display:block;z-index:2;}.remark-fading{display:block;z-index:1;}.remark-fading .remark-slide-scaler{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;}.remark-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;display:none;background:#000;z-index:2;}.remark-pause{bottom:0;top:0;right:0;left:0;display:none;position:absolute;z-index:1000;}.remark-pause .remark-pause-lozenge{margin-top:30%;text-align:center;}.remark-pause .remark-pause-lozenge span{color:white;background:black;border:2px solid black;border-radius:20px;padding:20px 30px;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:42pt;font-weight:bold;}.remark-container.remark-presenter-mode.remark-pause-mode .remark-pause{display:block;}.remark-container.remark-presenter-mode.remark-pause-mode .remark-backdrop{display:block;opacity:0.5;}.remark-help{bottom:0;top:0;right:0;left:0;display:none;position:absolute;z-index:1000;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top-left;}.remark-help .remark-help-content{color:white;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:12pt;position:absolute;top:5%;bottom:10%;height:10%;left:5%;width:90%;}.remark-help .remark-help-content h1{font-size:36px;}.remark-help .remark-help-content td{color:white;font-size:12pt;padding:10px;}.remark-help .remark-help-content td:first-child{padding-left:0;}.remark-help .remark-help-content .key{background:white;color:black;min-width:1em;display:inline-block;padding:3px 6px;text-align:center;border-radius:4px;font-size:14px;}.remark-help .dismiss{top:85%;}.remark-container.remark-help-mode .remark-help{display:block;}.remark-container.remark-help-mode .remark-backdrop{display:block;opacity:0.95;}.remark-preview-area{bottom:2%;left:2%;display:none;opacity:0.5;position:absolute;height:47.25%;width:48%;}.remark-preview-area .remark-slide-container{display:block;}.remark-notes-area{background:#fff;bottom:0;color:black;display:none;left:52%;overflow:hidden;position:absolute;right:0;top:0;}.remark-notes-area .remark-top-area{height:50px;left:20px;position:absolute;right:10px;top:10px;}.remark-notes-area .remark-bottom-area{position:absolute;top:75px;bottom:10px;left:20px;right:10px;}.remark-notes-area .remark-bottom-area .remark-toggle{display:block;text-decoration:none;font-family:Helvetica,arial,freesans,clean,sans-serif;height:21px;font-size:0.75em;text-transform:uppercase;color:#ccc;}.remark-notes-area .remark-bottom-area .remark-notes-current-area{height:70%;position:relative;}.remark-notes-area .remark-bottom-area .remark-notes-current-area .remark-notes{clear:both;border-top:1px solid #f5f5f5;position:absolute;top:22px;bottom:0px;left:0px;right:0px;overflow-y:auto;margin-bottom:20px;padding-top:10px;}.remark-notes-area .remark-bottom-area .remark-notes-preview-area{height:30%;position:relative;}.remark-notes-area .remark-bottom-area .remark-notes-preview-area .remark-notes-preview{border-top:1px solid #f5f5f5;position:absolute;top:22px;bottom:0px;left:0px;right:0px;overflow-y:auto;}.remark-notes-area .remark-bottom-area .remark-notes>*:first-child,.remark-notes-area .remark-bottom-area .remark-notes-preview>*:first-child{margin-top:5px;}.remark-notes-area .remark-bottom-area .remark-notes>*:last-child,.remark-notes-area .remark-bottom-area .remark-notes-preview>*:last-child{margin-bottom:0;}.remark-toolbar{color:#979892;vertical-align:middle;}.remark-toolbar .remark-toolbar-link{border:2px solid #d7d8d2;color:#979892;display:inline-block;padding:2px 2px;text-decoration:none;text-align:center;min-width:20px;}.remark-toolbar .remark-toolbar-link:hover{border-color:#979892;color:#676862;}.remark-toolbar .remark-toolbar-timer{border:2px solid black;border-radius:10px;background:black;color:white;display:inline-block;float:right;padding:5px 10px;font-family:sans-serif;font-weight:bold;font-size:175%;text-decoration:none;text-align:center;}.remark-container.remark-presenter-mode .remark-slides-area{top:2%;left:2%;height:47.25%;width:48%;}.remark-container.remark-presenter-mode .remark-preview-area{display:block;}.remark-container.remark-presenter-mode .remark-notes-area{display:block;}.remark-container.remark-blackout-mode:not(.remark-presenter-mode) .remark-backdrop{display:block;opacity:0.99;}.remark-container.remark-mirrored-mode:not(.remark-presenter-mode) .remark-slides-area{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);}@media print{.remark-container{overflow:visible;background-color:#fff;} .remark-container.remark-presenter-mode .remark-slides-area{top:0px;left:0px;height:100%;width:681px;} .remark-container.remark-presenter-mode .remark-preview-area,.remark-container.remark-presenter-mode .remark-notes-area{display:none;} .remark-container.remark-presenter-mode .remark-slide-notes{display:block;margin-left:30px;width:621px;} .remark-slide-container{display:block;position:relative;} .remark-slide-scaler{-moz-box-shadow:none;-webkit-box-shadow:none;-webkit-transform-origin:initial;box-shadow:none;}}@page {margin:0;}",
1822 containerLayout: "<div class=\"remark-notes-area\">\n <div class=\"remark-top-area\">\n <div class=\"remark-toolbar\">\n <a class=\"remark-toolbar-link\" href=\"#increase\">+</a>\n <a class=\"remark-toolbar-link\" href=\"#decrease\">-</a>\n <span class=\"remark-toolbar-timer\"></span>\n </div>\n </div>\n <div class=\"remark-bottom-area\">\n <div class=\"remark-notes-current-area\">\n <div class=\"remark-toggle\">Notes for current slide</div>\n <div class=\"remark-notes\"></div>\n </div>\n <div class=\"remark-notes-preview-area\">\n <div class=\"remark-toggle\">Notes for next slide</div>\n <div class=\"remark-notes-preview\"></div>\n </div>\n </div>\n</div>\n<div class=\"remark-slides-area\"></div>\n<div class=\"remark-preview-area\"></div>\n<div class=\"remark-backdrop\"></div>\n<div class=\"remark-pause\">\n <div class=\"remark-pause-lozenge\">\n <span>Paused</span>\n </div>\n</div>\n<div class=\"remark-help\">\n <div class=\"remark-help-content\">\n <h1>Help</h1>\n <p><b>Keyboard shortcuts</b></p>\n <table class=\"light-keys\">\n <tr>\n <td>\n <span class=\"key\"><b>&uarr;</b></span>,\n <span class=\"key\"><b>&larr;</b></span>,\n <span class=\"key\">Pg Up</span>,\n <span class=\"key\">k</span>\n </td>\n <td>Go to previous slide</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\"><b>&darr;</b></span>,\n <span class=\"key\"><b>&rarr;</b></span>,\n <span class=\"key\">Pg Dn</span>,\n <span class=\"key\">Space</span>,\n <span class=\"key\">j</span>\n </td>\n <td>Go to next slide</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">Home</span>\n </td>\n <td>Go to first slide</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">End</span>\n </td>\n <td>Go to last slide</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">b</span>&nbsp;/\n <span class=\"key\">m</span>&nbsp;/\n <span class=\"key\">f</span>\n </td>\n <td>Toggle blackout / mirrored / fullscreen mode</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">c</span>\n </td>\n <td>Clone slideshow</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">p</span>\n </td>\n <td>Toggle presenter mode</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">t</span>\n </td>\n <td>Restart the presentation timer</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">?</span>,\n <span class=\"key\">h</span>\n </td>\n <td>Toggle this help</td>\n </tr>\n </table>\n </div>\n <div class=\"content dismiss\">\n <table class=\"light-keys\">\n <tr>\n <td>\n <span class=\"key\">Esc</span>\n </td>\n <td>Back to slideshow</td>\n </tr>\n </table>\n </div>\n</div>\n"
1823};
1824
1825},{}],7:[function(require,module,exports){
1826(function(){/* Automatically generated */
1827
1828var hljs = (function() {
1829 var exports = {};
1830 /*
1831Syntax highlighting with language autodetection.
1832https://highlightjs.org/
1833*/
1834
1835(function(factory) {
1836
1837 // Setup highlight.js for different environments. First is Node.js or
1838 // CommonJS.
1839 if(typeof exports !== 'undefined') {
1840 factory(exports);
1841 } else {
1842 // Export hljs globally even when using AMD for cases when this script
1843 // is loaded with others that may still expect a global hljs.
1844 self.hljs = factory({});
1845
1846 // Finally register the global hljs with AMD.
1847 if(typeof define === 'function' && define.amd) {
1848 define('hljs', [], function() {
1849 return self.hljs;
1850 });
1851 }
1852 }
1853
1854}(function(hljs) {
1855
1856 /* Utility functions */
1857
1858 function escape(value) {
1859 return value.replace(/&/gm, '&amp;').replace(/</gm, '&lt;').replace(/>/gm, '&gt;');
1860 }
1861
1862 function tag(node) {
1863 return node.nodeName.toLowerCase();
1864 }
1865
1866 function testRe(re, lexeme) {
1867 var match = re && re.exec(lexeme);
1868 return match && match.index == 0;
1869 }
1870
1871 function isNotHighlighted(language) {
1872 return (/^(no-?highlight|plain|text)$/i).test(language);
1873 }
1874
1875 function blockLanguage(block) {
1876 var i, match, length,
1877 classes = block.className + ' ';
1878
1879 classes += block.parentNode ? block.parentNode.className : '';
1880
1881 // language-* takes precedence over non-prefixed class names
1882 match = (/\blang(?:uage)?-([\w-]+)\b/i).exec(classes);
1883 if (match) {
1884 return getLanguage(match[1]) ? match[1] : 'no-highlight';
1885 }
1886
1887 classes = classes.split(/\s+/);
1888 for (i = 0, length = classes.length; i < length; i++) {
1889 if (getLanguage(classes[i]) || isNotHighlighted(classes[i])) {
1890 return classes[i];
1891 }
1892 }
1893 }
1894
1895 function inherit(parent, obj) {
1896 var result = {}, key;
1897 for (key in parent)
1898 result[key] = parent[key];
1899 if (obj)
1900 for (key in obj)
1901 result[key] = obj[key];
1902 return result;
1903 }
1904
1905 /* Stream merging */
1906
1907 function nodeStream(node) {
1908 var result = [];
1909 (function _nodeStream(node, offset) {
1910 for (var child = node.firstChild; child; child = child.nextSibling) {
1911 if (child.nodeType == 3)
1912 offset += child.nodeValue.length;
1913 else if (child.nodeType == 1) {
1914 result.push({
1915 event: 'start',
1916 offset: offset,
1917 node: child
1918 });
1919 offset = _nodeStream(child, offset);
1920 // Prevent void elements from having an end tag that would actually
1921 // double them in the output. There are more void elements in HTML
1922 // but we list only those realistically expected in code display.
1923 if (!tag(child).match(/br|hr|img|input/)) {
1924 result.push({
1925 event: 'stop',
1926 offset: offset,
1927 node: child
1928 });
1929 }
1930 }
1931 }
1932 return offset;
1933 })(node, 0);
1934 return result;
1935 }
1936
1937 function mergeStreams(original, highlighted, value) {
1938 var processed = 0;
1939 var result = '';
1940 var nodeStack = [];
1941
1942 function selectStream() {
1943 if (!original.length || !highlighted.length) {
1944 return original.length ? original : highlighted;
1945 }
1946 if (original[0].offset != highlighted[0].offset) {
1947 return (original[0].offset < highlighted[0].offset) ? original : highlighted;
1948 }
1949
1950 /*
1951 To avoid starting the stream just before it should stop the order is
1952 ensured that original always starts first and closes last:
1953
1954 if (event1 == 'start' && event2 == 'start')
1955 return original;
1956 if (event1 == 'start' && event2 == 'stop')
1957 return highlighted;
1958 if (event1 == 'stop' && event2 == 'start')
1959 return original;
1960 if (event1 == 'stop' && event2 == 'stop')
1961 return highlighted;
1962
1963 ... which is collapsed to:
1964 */
1965 return highlighted[0].event == 'start' ? original : highlighted;
1966 }
1967
1968 function open(node) {
1969 function attr_str(a) {return ' ' + a.nodeName + '="' + escape(a.value) + '"';}
1970 result += '<' + tag(node) + Array.prototype.map.call(node.attributes, attr_str).join('') + '>';
1971 }
1972
1973 function close(node) {
1974 result += '</' + tag(node) + '>';
1975 }
1976
1977 function render(event) {
1978 (event.event == 'start' ? open : close)(event.node);
1979 }
1980
1981 while (original.length || highlighted.length) {
1982 var stream = selectStream();
1983 result += escape(value.substr(processed, stream[0].offset - processed));
1984 processed = stream[0].offset;
1985 if (stream == original) {
1986 /*
1987 On any opening or closing tag of the original markup we first close
1988 the entire highlighted node stack, then render the original tag along
1989 with all the following original tags at the same offset and then
1990 reopen all the tags on the highlighted stack.
1991 */
1992 nodeStack.reverse().forEach(close);
1993 do {
1994 render(stream.splice(0, 1)[0]);
1995 stream = selectStream();
1996 } while (stream == original && stream.length && stream[0].offset == processed);
1997 nodeStack.reverse().forEach(open);
1998 } else {
1999 if (stream[0].event == 'start') {
2000 nodeStack.push(stream[0].node);
2001 } else {
2002 nodeStack.pop();
2003 }
2004 render(stream.splice(0, 1)[0]);
2005 }
2006 }
2007 return result + escape(value.substr(processed));
2008 }
2009
2010 /* Initialization */
2011
2012 function compileLanguage(language) {
2013
2014 function reStr(re) {
2015 return (re && re.source) || re;
2016 }
2017
2018 function langRe(value, global) {
2019 return new RegExp(
2020 reStr(value),
2021 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '')
2022 );
2023 }
2024
2025 function compileMode(mode, parent) {
2026 if (mode.compiled)
2027 return;
2028 mode.compiled = true;
2029
2030 mode.keywords = mode.keywords || mode.beginKeywords;
2031 if (mode.keywords) {
2032 var compiled_keywords = {};
2033
2034 var flatten = function(className, str) {
2035 if (language.case_insensitive) {
2036 str = str.toLowerCase();
2037 }
2038 str.split(' ').forEach(function(kw) {
2039 var pair = kw.split('|');
2040 compiled_keywords[pair[0]] = [className, pair[1] ? Number(pair[1]) : 1];
2041 });
2042 };
2043
2044 if (typeof mode.keywords == 'string') { // string
2045 flatten('keyword', mode.keywords);
2046 } else {
2047 Object.keys(mode.keywords).forEach(function (className) {
2048 flatten(className, mode.keywords[className]);
2049 });
2050 }
2051 mode.keywords = compiled_keywords;
2052 }
2053 mode.lexemesRe = langRe(mode.lexemes || /\b\w+\b/, true);
2054
2055 if (parent) {
2056 if (mode.beginKeywords) {
2057 mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')\\b';
2058 }
2059 if (!mode.begin)
2060 mode.begin = /\B|\b/;
2061 mode.beginRe = langRe(mode.begin);
2062 if (!mode.end && !mode.endsWithParent)
2063 mode.end = /\B|\b/;
2064 if (mode.end)
2065 mode.endRe = langRe(mode.end);
2066 mode.terminator_end = reStr(mode.end) || '';
2067 if (mode.endsWithParent && parent.terminator_end)
2068 mode.terminator_end += (mode.end ? '|' : '') + parent.terminator_end;
2069 }
2070 if (mode.illegal)
2071 mode.illegalRe = langRe(mode.illegal);
2072 if (mode.relevance === undefined)
2073 mode.relevance = 1;
2074 if (!mode.contains) {
2075 mode.contains = [];
2076 }
2077 var expanded_contains = [];
2078 mode.contains.forEach(function(c) {
2079 if (c.variants) {
2080 c.variants.forEach(function(v) {expanded_contains.push(inherit(c, v));});
2081 } else {
2082 expanded_contains.push(c == 'self' ? mode : c);
2083 }
2084 });
2085 mode.contains = expanded_contains;
2086 mode.contains.forEach(function(c) {compileMode(c, mode);});
2087
2088 if (mode.starts) {
2089 compileMode(mode.starts, parent);
2090 }
2091
2092 var terminators =
2093 mode.contains.map(function(c) {
2094 return c.beginKeywords ? '\\.?(' + c.begin + ')\\.?' : c.begin;
2095 })
2096 .concat([mode.terminator_end, mode.illegal])
2097 .map(reStr)
2098 .filter(Boolean);
2099 mode.terminators = terminators.length ? langRe(terminators.join('|'), true) : {exec: function(/*s*/) {return null;}};
2100 }
2101
2102 compileMode(language);
2103 }
2104
2105 /*
2106 Core highlighting function. Accepts a language name, or an alias, and a
2107 string with the code to highlight. Returns an object with the following
2108 properties:
2109
2110 - relevance (int)
2111 - value (an HTML string with highlighting markup)
2112
2113 */
2114 function highlight(name, value, ignore_illegals, continuation) {
2115
2116 function subMode(lexeme, mode) {
2117 for (var i = 0; i < mode.contains.length; i++) {
2118 if (testRe(mode.contains[i].beginRe, lexeme)) {
2119 return mode.contains[i];
2120 }
2121 }
2122 }
2123
2124 function endOfMode(mode, lexeme) {
2125 if (testRe(mode.endRe, lexeme)) {
2126 while (mode.endsParent && mode.parent) {
2127 mode = mode.parent;
2128 }
2129 return mode;
2130 }
2131 if (mode.endsWithParent) {
2132 return endOfMode(mode.parent, lexeme);
2133 }
2134 }
2135
2136 function isIllegal(lexeme, mode) {
2137 return !ignore_illegals && testRe(mode.illegalRe, lexeme);
2138 }
2139
2140 function keywordMatch(mode, match) {
2141 var match_str = language.case_insensitive ? match[0].toLowerCase() : match[0];
2142 return mode.keywords.hasOwnProperty(match_str) && mode.keywords[match_str];
2143 }
2144
2145 function buildSpan(classname, insideSpan, leaveOpen, noPrefix) {
2146 var classPrefix = noPrefix ? '' : options.classPrefix,
2147 openSpan = '<span class="' + classPrefix,
2148 closeSpan = leaveOpen ? '' : '</span>';
2149
2150 openSpan += classname + '">';
2151
2152 return openSpan + insideSpan + closeSpan;
2153 }
2154
2155 function processKeywords() {
2156 if (!top.keywords)
2157 return escape(mode_buffer);
2158 var result = '';
2159 var last_index = 0;
2160 top.lexemesRe.lastIndex = 0;
2161 var match = top.lexemesRe.exec(mode_buffer);
2162 while (match) {
2163 result += escape(mode_buffer.substr(last_index, match.index - last_index));
2164 var keyword_match = keywordMatch(top, match);
2165 if (keyword_match) {
2166 relevance += keyword_match[1];
2167 result += buildSpan(keyword_match[0], escape(match[0]));
2168 } else {
2169 result += escape(match[0]);
2170 }
2171 last_index = top.lexemesRe.lastIndex;
2172 match = top.lexemesRe.exec(mode_buffer);
2173 }
2174 return result + escape(mode_buffer.substr(last_index));
2175 }
2176
2177 function processSubLanguage() {
2178 var explicit = typeof top.subLanguage == 'string';
2179 if (explicit && !languages[top.subLanguage]) {
2180 return escape(mode_buffer);
2181 }
2182
2183 var result = explicit ?
2184 highlight(top.subLanguage, mode_buffer, true, continuations[top.subLanguage]) :
2185 highlightAuto(mode_buffer, top.subLanguage.length ? top.subLanguage : undefined);
2186
2187 // Counting embedded language score towards the host language may be disabled
2188 // with zeroing the containing mode relevance. Usecase in point is Markdown that
2189 // allows XML everywhere and makes every XML snippet to have a much larger Markdown
2190 // score.
2191 if (top.relevance > 0) {
2192 relevance += result.relevance;
2193 }
2194 if (explicit) {
2195 continuations[top.subLanguage] = result.top;
2196 }
2197 return buildSpan(result.language, result.value, false, true);
2198 }
2199
2200 function processBuffer() {
2201 return top.subLanguage !== undefined ? processSubLanguage() : processKeywords();
2202 }
2203
2204 function startNewMode(mode, lexeme) {
2205 var markup = mode.className? buildSpan(mode.className, '', true): '';
2206 if (mode.returnBegin) {
2207 result += markup;
2208 mode_buffer = '';
2209 } else if (mode.excludeBegin) {
2210 result += escape(lexeme) + markup;
2211 mode_buffer = '';
2212 } else {
2213 result += markup;
2214 mode_buffer = lexeme;
2215 }
2216 top = Object.create(mode, {parent: {value: top}});
2217 }
2218
2219 function processLexeme(buffer, lexeme) {
2220
2221 mode_buffer += buffer;
2222 if (lexeme === undefined) {
2223 result += processBuffer();
2224 return 0;
2225 }
2226
2227 var new_mode = subMode(lexeme, top);
2228 if (new_mode) {
2229 result += processBuffer();
2230 startNewMode(new_mode, lexeme);
2231 return new_mode.returnBegin ? 0 : lexeme.length;
2232 }
2233
2234 var end_mode = endOfMode(top, lexeme);
2235 if (end_mode) {
2236 var origin = top;
2237 if (!(origin.returnEnd || origin.excludeEnd)) {
2238 mode_buffer += lexeme;
2239 }
2240 result += processBuffer();
2241 do {
2242 if (top.className) {
2243 result += '</span>';
2244 }
2245 relevance += top.relevance;
2246 top = top.parent;
2247 } while (top != end_mode.parent);
2248 if (origin.excludeEnd) {
2249 result += escape(lexeme);
2250 }
2251 mode_buffer = '';
2252 if (end_mode.starts) {
2253 startNewMode(end_mode.starts, '');
2254 }
2255 return origin.returnEnd ? 0 : lexeme.length;
2256 }
2257
2258 if (isIllegal(lexeme, top))
2259 throw new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.className || '<unnamed>') + '"');
2260
2261 /*
2262 Parser should not reach this point as all types of lexemes should be caught
2263 earlier, but if it does due to some bug make sure it advances at least one
2264 character forward to prevent infinite looping.
2265 */
2266 mode_buffer += lexeme;
2267 return lexeme.length || 1;
2268 }
2269
2270 var language = getLanguage(name);
2271 if (!language) {
2272 throw new Error('Unknown language: "' + name + '"');
2273 }
2274
2275 compileLanguage(language);
2276 var top = continuation || language;
2277 var continuations = {}; // keep continuations for sub-languages
2278 var result = '', current;
2279 for(current = top; current != language; current = current.parent) {
2280 if (current.className) {
2281 result = buildSpan(current.className, '', true) + result;
2282 }
2283 }
2284 var mode_buffer = '';
2285 var relevance = 0;
2286 try {
2287 var match, count, index = 0;
2288 while (true) {
2289 top.terminators.lastIndex = index;
2290 match = top.terminators.exec(value);
2291 if (!match)
2292 break;
2293 count = processLexeme(value.substr(index, match.index - index), match[0]);
2294 index = match.index + count;
2295 }
2296 processLexeme(value.substr(index));
2297 for(current = top; current.parent; current = current.parent) { // close dangling modes
2298 if (current.className) {
2299 result += '</span>';
2300 }
2301 }
2302 return {
2303 relevance: relevance,
2304 value: result,
2305 language: name,
2306 top: top
2307 };
2308 } catch (e) {
2309 if (e.message.indexOf('Illegal') != -1) {
2310 return {
2311 relevance: 0,
2312 value: escape(value)
2313 };
2314 } else {
2315 throw e;
2316 }
2317 }
2318 }
2319
2320 /*
2321 Highlighting with language detection. Accepts a string with the code to
2322 highlight. Returns an object with the following properties:
2323
2324 - language (detected language)
2325 - relevance (int)
2326 - value (an HTML string with highlighting markup)
2327 - second_best (object with the same structure for second-best heuristically
2328 detected language, may be absent)
2329
2330 */
2331 function highlightAuto(text, languageSubset) {
2332 languageSubset = languageSubset || options.languages || Object.keys(languages);
2333 var result = {
2334 relevance: 0,
2335 value: escape(text)
2336 };
2337 var second_best = result;
2338 languageSubset.forEach(function(name) {
2339 if (!getLanguage(name)) {
2340 return;
2341 }
2342 var current = highlight(name, text, false);
2343 current.language = name;
2344 if (current.relevance > second_best.relevance) {
2345 second_best = current;
2346 }
2347 if (current.relevance > result.relevance) {
2348 second_best = result;
2349 result = current;
2350 }
2351 });
2352 if (second_best.language) {
2353 result.second_best = second_best;
2354 }
2355 return result;
2356 }
2357
2358 /*
2359 Post-processing of the highlighted markup:
2360
2361 - replace TABs with something more useful
2362 - replace real line-breaks with '<br>' for non-pre containers
2363
2364 */
2365 function fixMarkup(value) {
2366 if (options.tabReplace) {
2367 value = value.replace(/^((<[^>]+>|\t)+)/gm, function(match, p1 /*..., offset, s*/) {
2368 return p1.replace(/\t/g, options.tabReplace);
2369 });
2370 }
2371 if (options.useBR) {
2372 value = value.replace(/\n/g, '<br>');
2373 }
2374 return value;
2375 }
2376
2377 function buildClassName(prevClassName, currentLang, resultLang) {
2378 var language = currentLang ? aliases[currentLang] : resultLang,
2379 result = [prevClassName.trim()];
2380
2381 if (!prevClassName.match(/\bhljs\b/)) {
2382 result.push('hljs');
2383 }
2384
2385 if (prevClassName.indexOf(language) === -1) {
2386 result.push(language);
2387 }
2388
2389 return result.join(' ').trim();
2390 }
2391
2392 /*
2393 Applies highlighting to a DOM node containing code. Accepts a DOM node and
2394 two optional parameters for fixMarkup.
2395 */
2396 function highlightBlock(block) {
2397 var language = blockLanguage(block);
2398 if (isNotHighlighted(language))
2399 return;
2400
2401 var node;
2402 if (options.useBR) {
2403 node = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
2404 node.innerHTML = block.innerHTML.replace(/\n/g, '').replace(/<br[ \/]*>/g, '\n');
2405 } else {
2406 node = block;
2407 }
2408 var text = node.textContent;
2409 var result = language ? highlight(language, text, true) : highlightAuto(text);
2410
2411 var originalStream = nodeStream(node);
2412 if (originalStream.length) {
2413 var resultNode = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
2414 resultNode.innerHTML = result.value;
2415 result.value = mergeStreams(originalStream, nodeStream(resultNode), text);
2416 }
2417 result.value = fixMarkup(result.value);
2418
2419 block.innerHTML = result.value;
2420 block.className = buildClassName(block.className, language, result.language);
2421 block.result = {
2422 language: result.language,
2423 re: result.relevance
2424 };
2425 if (result.second_best) {
2426 block.second_best = {
2427 language: result.second_best.language,
2428 re: result.second_best.relevance
2429 };
2430 }
2431 }
2432
2433 var options = {
2434 classPrefix: 'hljs-',
2435 tabReplace: null,
2436 useBR: false,
2437 languages: undefined
2438 };
2439
2440 /*
2441 Updates highlight.js global options with values passed in the form of an object
2442 */
2443 function configure(user_options) {
2444 options = inherit(options, user_options);
2445 }
2446
2447 /*
2448 Applies highlighting to all <pre><code>..</code></pre> blocks on a page.
2449 */
2450 function initHighlighting() {
2451 if (initHighlighting.called)
2452 return;
2453 initHighlighting.called = true;
2454
2455 var blocks = document.querySelectorAll('pre code');
2456 Array.prototype.forEach.call(blocks, highlightBlock);
2457 }
2458
2459 /*
2460 Attaches highlighting to the page load event.
2461 */
2462 function initHighlightingOnLoad() {
2463 addEventListener('DOMContentLoaded', initHighlighting, false);
2464 addEventListener('load', initHighlighting, false);
2465 }
2466
2467 var languages = {};
2468 var aliases = {};
2469
2470 function registerLanguage(name, language) {
2471 var lang = languages[name] = language(hljs);
2472 if (lang.aliases) {
2473 lang.aliases.forEach(function(alias) {aliases[alias] = name;});
2474 }
2475 }
2476
2477 function listLanguages() {
2478 return Object.keys(languages);
2479 }
2480
2481 function getLanguage(name) {
2482 name = (name || '').toLowerCase();
2483 return languages[name] || languages[aliases[name]];
2484 }
2485
2486 /* Interface definition */
2487
2488 hljs.highlight = highlight;
2489 hljs.highlightAuto = highlightAuto;
2490 hljs.fixMarkup = fixMarkup;
2491 hljs.highlightBlock = highlightBlock;
2492 hljs.configure = configure;
2493 hljs.initHighlighting = initHighlighting;
2494 hljs.initHighlightingOnLoad = initHighlightingOnLoad;
2495 hljs.registerLanguage = registerLanguage;
2496 hljs.listLanguages = listLanguages;
2497 hljs.getLanguage = getLanguage;
2498 hljs.inherit = inherit;
2499
2500 // Common regexps
2501 hljs.IDENT_RE = '[a-zA-Z]\\w*';
2502 hljs.UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*';
2503 hljs.NUMBER_RE = '\\b\\d+(\\.\\d+)?';
2504 hljs.C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float
2505 hljs.BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b...
2506 hljs.RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
2507
2508 // Common modes
2509 hljs.BACKSLASH_ESCAPE = {
2510 begin: '\\\\[\\s\\S]', relevance: 0
2511 };
2512 hljs.APOS_STRING_MODE = {
2513 className: 'string',
2514 begin: '\'', end: '\'',
2515 illegal: '\\n',
2516 contains: [hljs.BACKSLASH_ESCAPE]
2517 };
2518 hljs.QUOTE_STRING_MODE = {
2519 className: 'string',
2520 begin: '"', end: '"',
2521 illegal: '\\n',
2522 contains: [hljs.BACKSLASH_ESCAPE]
2523 };
2524 hljs.PHRASAL_WORDS_MODE = {
2525 begin: /\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/
2526 };
2527 hljs.COMMENT = function (begin, end, inherits) {
2528 var mode = hljs.inherit(
2529 {
2530 className: 'comment',
2531 begin: begin, end: end,
2532 contains: []
2533 },
2534 inherits || {}
2535 );
2536 mode.contains.push(hljs.PHRASAL_WORDS_MODE);
2537 mode.contains.push({
2538 className: 'doctag',
2539 begin: "(?:TODO|FIXME|NOTE|BUG|XXX):",
2540 relevance: 0
2541 });
2542 return mode;
2543 };
2544 hljs.C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$');
2545 hljs.C_BLOCK_COMMENT_MODE = hljs.COMMENT('/\\*', '\\*/');
2546 hljs.HASH_COMMENT_MODE = hljs.COMMENT('#', '$');
2547 hljs.NUMBER_MODE = {
2548 className: 'number',
2549 begin: hljs.NUMBER_RE,
2550 relevance: 0
2551 };
2552 hljs.C_NUMBER_MODE = {
2553 className: 'number',
2554 begin: hljs.C_NUMBER_RE,
2555 relevance: 0
2556 };
2557 hljs.BINARY_NUMBER_MODE = {
2558 className: 'number',
2559 begin: hljs.BINARY_NUMBER_RE,
2560 relevance: 0
2561 };
2562 hljs.CSS_NUMBER_MODE = {
2563 className: 'number',
2564 begin: hljs.NUMBER_RE + '(' +
2565 '%|em|ex|ch|rem' +
2566 '|vw|vh|vmin|vmax' +
2567 '|cm|mm|in|pt|pc|px' +
2568 '|deg|grad|rad|turn' +
2569 '|s|ms' +
2570 '|Hz|kHz' +
2571 '|dpi|dpcm|dppx' +
2572 ')?',
2573 relevance: 0
2574 };
2575 hljs.REGEXP_MODE = {
2576 className: 'regexp',
2577 begin: /\//, end: /\/[gimuy]*/,
2578 illegal: /\n/,
2579 contains: [
2580 hljs.BACKSLASH_ESCAPE,
2581 {
2582 begin: /\[/, end: /\]/,
2583 relevance: 0,
2584 contains: [hljs.BACKSLASH_ESCAPE]
2585 }
2586 ]
2587 };
2588 hljs.TITLE_MODE = {
2589 className: 'title',
2590 begin: hljs.IDENT_RE,
2591 relevance: 0
2592 };
2593 hljs.UNDERSCORE_TITLE_MODE = {
2594 className: 'title',
2595 begin: hljs.UNDERSCORE_IDENT_RE,
2596 relevance: 0
2597 };
2598
2599 return hljs;
2600}));
2601;
2602 return exports;
2603 }())
2604 , languages = [{name:"1c",create:/*
2605Language: 1C
2606Author: Yuri Ivanov <ivanov@supersoft.ru>
2607Contributors: Sergey Baranov <segyrn@yandex.ru>
2608Category: enterprise
2609*/
2610
2611function(hljs){
2612 var IDENT_RE_RU = '[a-zA-Zะฐ-ัะ-ะฏ][a-zA-Z0-9_ะฐ-ัะ-ะฏ]*';
2613 var OneS_KEYWORDS = 'ะฒะพะทะฒั€ะฐั‚ ะดะฐั‚ะฐ ะดะปั ะตัะปะธ ะธ ะธะปะธ ะธะฝะฐั‡ะต ะธะฝะฐั‡ะตะตัะปะธ ะธัะบะปัŽั‡ะตะฝะธะต ะบะพะฝะตั†ะตัะปะธ ' +
2614 'ะบะพะฝะตั†ะฟะพะฟั‹ั‚ะบะธ ะบะพะฝะตั†ะฟั€ะพั†ะตะดัƒั€ั‹ ะบะพะฝะตั†ั„ัƒะฝะบั†ะธะธ ะบะพะฝะตั†ั†ะธะบะปะฐ ะบะพะฝัั‚ะฐะฝั‚ะฐ ะฝะต ะฟะตั€ะตะนั‚ะธ ะฟะตั€ะตะผ ' +
2615 'ะฟะตั€ะตั‡ะธัะปะตะฝะธะต ะฟะพ ะฟะพะบะฐ ะฟะพะฟั‹ั‚ะบะฐ ะฟั€ะตั€ะฒะฐั‚ัŒ ะฟั€ะพะดะพะปะถะธั‚ัŒ ะฟั€ะพั†ะตะดัƒั€ะฐ ัั‚ั€ะพะบะฐ ั‚ะพะณะดะฐ ั„ั ั„ัƒะฝะบั†ะธั ั†ะธะบะป ' +
2616 'ั‡ะธัะปะพ ัะบัะฟะพั€ั‚';
2617 var OneS_BUILT_IN = 'ansitooem oemtoansi ะฒะฒะตัั‚ะธะฒะธะดััƒะฑะบะพะฝั‚ะพ ะฒะฒะตัั‚ะธะดะฐั‚ัƒ ะฒะฒะตัั‚ะธะทะฝะฐั‡ะตะฝะธะต ' +
2618 'ะฒะฒะตัั‚ะธะฟะตั€ะตั‡ะธัะปะตะฝะธะต ะฒะฒะตัั‚ะธะฟะตั€ะธะพะด ะฒะฒะตัั‚ะธะฟะปะฐะฝัั‡ะตั‚ะพะฒ ะฒะฒะตัั‚ะธัั‚ั€ะพะบัƒ ะฒะฒะตัั‚ะธั‡ะธัะปะพ ะฒะพะฟั€ะพั ' +
2619 'ะฒะพััั‚ะฐะฝะพะฒะธั‚ัŒะทะฝะฐั‡ะตะฝะธะต ะฒั€ะตะณ ะฒั‹ะฑั€ะฐะฝะฝั‹ะนะฟะปะฐะฝัั‡ะตั‚ะพะฒ ะฒั‹ะทะฒะฐั‚ัŒะธัะบะปัŽั‡ะตะฝะธะต ะดะฐั‚ะฐะณะพะด ะดะฐั‚ะฐะผะตััั† ' +
2620 'ะดะฐั‚ะฐั‡ะธัะปะพ ะดะพะฑะฐะฒะธั‚ัŒะผะตััั† ะทะฐะฒะตั€ัˆะธั‚ัŒั€ะฐะฑะพั‚ัƒัะธัั‚ะตะผั‹ ะทะฐะณะพะปะพะฒะพะบัะธัั‚ะตะผั‹ ะทะฐะฟะธััŒะถัƒั€ะฝะฐะปะฐั€ะตะณะธัั‚ั€ะฐั†ะธะธ ' +
2621 'ะทะฐะฟัƒัั‚ะธั‚ัŒะฟั€ะธะปะพะถะตะฝะธะต ะทะฐั„ะธะบัะธั€ะพะฒะฐั‚ัŒั‚ั€ะฐะฝะทะฐะบั†ะธัŽ ะทะฝะฐั‡ะตะฝะธะตะฒัั‚ั€ะพะบัƒ ะทะฝะฐั‡ะตะฝะธะตะฒัั‚ั€ะพะบัƒะฒะฝัƒั‚ั€ ' +
2622 'ะทะฝะฐั‡ะตะฝะธะตะฒั„ะฐะนะป ะทะฝะฐั‡ะตะฝะธะตะธะทัั‚ั€ะพะบะธ ะทะฝะฐั‡ะตะฝะธะตะธะทัั‚ั€ะพะบะธะฒะฝัƒั‚ั€ ะทะฝะฐั‡ะตะฝะธะตะธะทั„ะฐะนะปะฐ ะธะผัะบะพะผะฟัŒัŽั‚ะตั€ะฐ ' +
2623 'ะธะผัะฟะพะปัŒะทะพะฒะฐั‚ะตะปั ะบะฐั‚ะฐะปะพะณะฒั€ะตะผะตะฝะฝั‹ั…ั„ะฐะนะปะพะฒ ะบะฐั‚ะฐะปะพะณะธะฑ ะบะฐั‚ะฐะปะพะณะฟะพะปัŒะทะพะฒะฐั‚ะตะปั ะบะฐั‚ะฐะปะพะณะฟั€ะพะณั€ะฐะผะผั‹ ' +
2624 'ะบะพะดัะธะผะฒ ะบะพะผะฐะฝะดะฐัะธัั‚ะตะผั‹ ะบะพะฝะณะพะดะฐ ะบะพะฝะตั†ะฟะตั€ะธะพะดะฐะฑะธ ะบะพะฝะตั†ั€ะฐััั‡ะธั‚ะฐะฝะฝะพะณะพะฟะตั€ะธะพะดะฐะฑะธ ' +
2625 'ะบะพะฝะตั†ัั‚ะฐะฝะดะฐั€ั‚ะฝะพะณะพะธะฝั‚ะตั€ะฒะฐะปะฐ ะบะพะฝะบะฒะฐั€ั‚ะฐะปะฐ ะบะพะฝะผะตััั†ะฐ ะบะพะฝะฝะตะดะตะปะธ ะปะตะฒ ะปะพะณ ะปะพะณ10 ะผะฐะบั ' +
2626 'ะผะฐะบัะธะผะฐะปัŒะฝะพะตะบะพะปะธั‡ะตัั‚ะฒะพััƒะฑะบะพะฝั‚ะพ ะผะธะฝ ะผะพะฝะพะฟะพะปัŒะฝั‹ะนั€ะตะถะธะผ ะฝะฐะทะฒะฐะฝะธะตะธะฝั‚ะตั€ั„ะตะนัะฐ ะฝะฐะทะฒะฐะฝะธะตะฝะฐะฑะพั€ะฐะฟั€ะฐะฒ ' +
2627 'ะฝะฐะทะฝะฐั‡ะธั‚ัŒะฒะธะด ะฝะฐะทะฝะฐั‡ะธั‚ัŒัั‡ะตั‚ ะฝะฐะนั‚ะธ ะฝะฐะนั‚ะธะฟะพะผะตั‡ะตะฝะฝั‹ะตะฝะฐัƒะดะฐะปะตะฝะธะต ะฝะฐะนั‚ะธััั‹ะปะบะธ ะฝะฐั‡ะฐะปะพะฟะตั€ะธะพะดะฐะฑะธ ' +
2628 'ะฝะฐั‡ะฐะปะพัั‚ะฐะฝะดะฐั€ั‚ะฝะพะณะพะธะฝั‚ะตั€ะฒะฐะปะฐ ะฝะฐั‡ะฐั‚ัŒั‚ั€ะฐะฝะทะฐะบั†ะธัŽ ะฝะฐั‡ะณะพะดะฐ ะฝะฐั‡ะบะฒะฐั€ั‚ะฐะปะฐ ะฝะฐั‡ะผะตััั†ะฐ ะฝะฐั‡ะฝะตะดะตะปะธ ' +
2629 'ะฝะพะผะตั€ะดะฝัะณะพะดะฐ ะฝะพะผะตั€ะดะฝัะฝะตะดะตะปะธ ะฝะพะผะตั€ะฝะตะดะตะปะธะณะพะดะฐ ะฝั€ะตะณ ะพะฑั€ะฐะฑะพั‚ะบะฐะพะถะธะดะฐะฝะธั ะพะบั€ ะพะฟะธัะฐะฝะธะตะพัˆะธะฑะบะธ ' +
2630 'ะพัะฝะพะฒะฝะพะนะถัƒั€ะฝะฐะปั€ะฐัั‡ะตั‚ะพะฒ ะพัะฝะพะฒะฝะพะนะฟะปะฐะฝัั‡ะตั‚ะพะฒ ะพัะฝะพะฒะฝะพะนัะทั‹ะบ ะพั‚ะบั€ั‹ั‚ัŒั„ะพั€ะผัƒ ะพั‚ะบั€ั‹ั‚ัŒั„ะพั€ะผัƒะผะพะดะฐะปัŒะฝะพ ' +
2631 'ะพั‚ะผะตะฝะธั‚ัŒั‚ั€ะฐะฝะทะฐะบั†ะธัŽ ะพั‡ะธัั‚ะธั‚ัŒะพะบะฝะพัะพะพะฑั‰ะตะฝะธะน ะฟะตั€ะธะพะดัั‚ั€ ะฟะพะปะฝะพะตะธะผัะฟะพะปัŒะทะพะฒะฐั‚ะตะปั ะฟะพะปัƒั‡ะธั‚ัŒะฒั€ะตะผัั‚ะฐ ' +
2632 'ะฟะพะปัƒั‡ะธั‚ัŒะดะฐั‚ัƒั‚ะฐ ะฟะพะปัƒั‡ะธั‚ัŒะดะพะบัƒะผะตะฝั‚ั‚ะฐ ะฟะพะปัƒั‡ะธั‚ัŒะทะฝะฐั‡ะตะฝะธัะพั‚ะฑะพั€ะฐ ะฟะพะปัƒั‡ะธั‚ัŒะฟะพะทะธั†ะธัŽั‚ะฐ ' +
2633 'ะฟะพะปัƒั‡ะธั‚ัŒะฟัƒัั‚ะพะตะทะฝะฐั‡ะตะฝะธะต ะฟะพะปัƒั‡ะธั‚ัŒั‚ะฐ ะฟั€ะฐะฒ ะฟั€ะฐะฒะพะดะพัั‚ัƒะฟะฐ ะฟั€ะตะดัƒะฟั€ะตะถะดะตะฝะธะต ะฟั€ะตั„ะธะบัะฐะฒั‚ะพะฝัƒะผะตั€ะฐั†ะธะธ ' +
2634 'ะฟัƒัั‚ะฐััั‚ั€ะพะบะฐ ะฟัƒัั‚ะพะตะทะฝะฐั‡ะตะฝะธะต ั€ะฐะฑะพั‡ะฐัะดะฐั‚ั‚ัŒะฟัƒัั‚ะพะตะทะฝะฐั‡ะตะฝะธะต ั€ะฐะฑะพั‡ะฐัะดะฐั‚ะฐ ั€ะฐะทะดะตะปะธั‚ะตะปัŒัั‚ั€ะฐะฝะธั† ' +
2635 'ั€ะฐะทะดะตะปะธั‚ะตะปัŒัั‚ั€ะพะบ ั€ะฐะทะผ ั€ะฐะทะพะฑั€ะฐั‚ัŒะฟะพะทะธั†ะธัŽะดะพะบัƒะผะตะฝั‚ะฐ ั€ะฐััั‡ะธั‚ะฐั‚ัŒั€ะตะณะธัั‚ั€ั‹ะฝะฐ ' +
2636 'ั€ะฐััั‡ะธั‚ะฐั‚ัŒั€ะตะณะธัั‚ั€ั‹ะฟะพ ัะธะณะฝะฐะป ัะธะผะฒ ัะธะผะฒะพะปั‚ะฐะฑัƒะปัั†ะธะธ ัะพะทะดะฐั‚ัŒะพะฑัŠะตะบั‚ ัะพะบั€ะป ัะพะบั€ะปะฟ ัะพะบั€ะฟ ' +
2637 'ัะพะพะฑั‰ะธั‚ัŒ ัะพัั‚ะพัะฝะธะต ัะพั…ั€ะฐะฝะธั‚ัŒะทะฝะฐั‡ะตะฝะธะต ัั€ะตะด ัั‚ะฐั‚ัƒัะฒะพะทะฒั€ะฐั‚ะฐ ัั‚ั€ะดะปะธะฝะฐ ัั‚ั€ะทะฐะผะตะฝะธั‚ัŒ ' +
2638 'ัั‚ั€ะบะพะปะธั‡ะตัั‚ะฒะพัั‚ั€ะพะบ ัั‚ั€ะฟะพะปัƒั‡ะธั‚ัŒัั‚ั€ะพะบัƒ ัั‚ั€ั‡ะธัะปะพะฒั…ะพะถะดะตะฝะธะน ัั„ะพั€ะผะธั€ะพะฒะฐั‚ัŒะฟะพะทะธั†ะธัŽะดะพะบัƒะผะตะฝั‚ะฐ ' +
2639 'ัั‡ะตั‚ะฟะพะบะพะดัƒ ั‚ะตะบัƒั‰ะฐัะดะฐั‚ะฐ ั‚ะตะบัƒั‰ะตะตะฒั€ะตะผั ั‚ะธะฟะทะฝะฐั‡ะตะฝะธั ั‚ะธะฟะทะฝะฐั‡ะตะฝะธััั‚ั€ ัƒะดะฐะปะธั‚ัŒะพะฑัŠะตะบั‚ั‹ ' +
2640 'ัƒัั‚ะฐะฝะพะฒะธั‚ัŒั‚ะฐะฝะฐ ัƒัั‚ะฐะฝะพะฒะธั‚ัŒั‚ะฐะฟะพ ั„ะธะบััˆะฐะฑะปะพะฝ ั„ะพั€ะผะฐั‚ ั†ะตะป ัˆะฐะฑะปะพะฝ';
2641 var DQUOTE = {begin: '""'};
2642 var STR_START = {
2643 className: 'string',
2644 begin: '"', end: '"|$',
2645 contains: [DQUOTE]
2646 };
2647 var STR_CONT = {
2648 className: 'string',
2649 begin: '\\|', end: '"|$',
2650 contains: [DQUOTE]
2651 };
2652
2653 return {
2654 case_insensitive: true,
2655 lexemes: IDENT_RE_RU,
2656 keywords: {keyword: OneS_KEYWORDS, built_in: OneS_BUILT_IN},
2657 contains: [
2658 hljs.C_LINE_COMMENT_MODE,
2659 hljs.NUMBER_MODE,
2660 STR_START, STR_CONT,
2661 {
2662 className: 'function',
2663 begin: '(ะฟั€ะพั†ะตะดัƒั€ะฐ|ั„ัƒะฝะบั†ะธั)', end: '$',
2664 lexemes: IDENT_RE_RU,
2665 keywords: 'ะฟั€ะพั†ะตะดัƒั€ะฐ ั„ัƒะฝะบั†ะธั',
2666 contains: [
2667 {
2668 begin: 'ัะบัะฟะพั€ั‚', endsWithParent: true,
2669 lexemes: IDENT_RE_RU,
2670 keywords: 'ัะบัะฟะพั€ั‚',
2671 contains: [hljs.C_LINE_COMMENT_MODE]
2672 },
2673 {
2674 className: 'params',
2675 begin: '\\(', end: '\\)',
2676 lexemes: IDENT_RE_RU,
2677 keywords: 'ะทะฝะฐั‡',
2678 contains: [STR_START, STR_CONT]
2679 },
2680 hljs.C_LINE_COMMENT_MODE,
2681 hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE_RU})
2682 ]
2683 },
2684 {className: 'meta', begin: '#', end: '$'},
2685 {className: 'number', begin: '\'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})\''} // date
2686 ]
2687 };
2688}
2689},{name:"accesslog",create:/*
2690 Language: Access log
2691 Author: Oleg Efimov <efimovov@gmail.com>
2692 Description: Apache/Nginx Access Logs
2693 */
2694
2695function(hljs) {
2696 return {
2697 contains: [
2698 // IP
2699 {
2700 className: 'number',
2701 begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b'
2702 },
2703 // Other numbers
2704 {
2705 className: 'number',
2706 begin: '\\b\\d+\\b',
2707 relevance: 0
2708 },
2709 // Requests
2710 {
2711 className: 'string',
2712 begin: '"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)', end: '"',
2713 keywords: 'GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE',
2714 illegal: '\\n',
2715 relevance: 10
2716 },
2717 // Dates
2718 {
2719 className: 'string',
2720 begin: /\[/, end: /\]/,
2721 illegal: '\\n'
2722 },
2723 // Strings
2724 {
2725 className: 'string',
2726 begin: '"', end: '"',
2727 illegal: '\\n'
2728 }
2729 ]
2730 };
2731}
2732},{name:"actionscript",create:/*
2733Language: ActionScript
2734Author: Alexander Myadzel <myadzel@gmail.com>
2735Category: scripting
2736*/
2737
2738function(hljs) {
2739 var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*';
2740 var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)';
2741
2742 var AS3_REST_ARG_MODE = {
2743 className: 'rest_arg',
2744 begin: '[.]{3}', end: IDENT_RE,
2745 relevance: 10
2746 };
2747
2748 return {
2749 aliases: ['as'],
2750 keywords: {
2751 keyword: 'as break case catch class const continue default delete do dynamic each ' +
2752 'else extends final finally for function get if implements import in include ' +
2753 'instanceof interface internal is namespace native new override package private ' +
2754 'protected public return set static super switch this throw try typeof use var void ' +
2755 'while with',
2756 literal: 'true false null undefined'
2757 },
2758 contains: [
2759 hljs.APOS_STRING_MODE,
2760 hljs.QUOTE_STRING_MODE,
2761 hljs.C_LINE_COMMENT_MODE,
2762 hljs.C_BLOCK_COMMENT_MODE,
2763 hljs.C_NUMBER_MODE,
2764 {
2765 className: 'class',
2766 beginKeywords: 'package', end: '{',
2767 contains: [hljs.TITLE_MODE]
2768 },
2769 {
2770 className: 'class',
2771 beginKeywords: 'class interface', end: '{', excludeEnd: true,
2772 contains: [
2773 {
2774 beginKeywords: 'extends implements'
2775 },
2776 hljs.TITLE_MODE
2777 ]
2778 },
2779 {
2780 className: 'meta',
2781 beginKeywords: 'import include', end: ';',
2782 keywords: {'meta-keyword': 'import include'}
2783 },
2784 {
2785 className: 'function',
2786 beginKeywords: 'function', end: '[{;]', excludeEnd: true,
2787 illegal: '\\S',
2788 contains: [
2789 hljs.TITLE_MODE,
2790 {
2791 className: 'params',
2792 begin: '\\(', end: '\\)',
2793 contains: [
2794 hljs.APOS_STRING_MODE,
2795 hljs.QUOTE_STRING_MODE,
2796 hljs.C_LINE_COMMENT_MODE,
2797 hljs.C_BLOCK_COMMENT_MODE,
2798 AS3_REST_ARG_MODE
2799 ]
2800 },
2801 {
2802 begin: ':\\s*' + IDENT_FUNC_RETURN_TYPE_RE
2803 }
2804 ]
2805 }
2806 ],
2807 illegal: /#/
2808 };
2809}
2810},{name:"apache",create:/*
2811Language: Apache
2812Author: Ruslan Keba <rukeba@gmail.com>
2813Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
2814Website: http://rukeba.com/
2815Description: language definition for Apache configuration files (httpd.conf & .htaccess)
2816Category: common, config
2817*/
2818
2819function(hljs) {
2820 var NUMBER = {className: 'number', begin: '[\\$%]\\d+'};
2821 return {
2822 aliases: ['apacheconf'],
2823 case_insensitive: true,
2824 contains: [
2825 hljs.HASH_COMMENT_MODE,
2826 {className: 'section', begin: '</?', end: '>'},
2827 {
2828 className: 'attribute',
2829 begin: /\w+/,
2830 relevance: 0,
2831 // keywords arenโ€™t needed for highlighting per se, they only boost relevance
2832 // for a very generally defined mode (starts with a word, ends with line-end
2833 keywords: {
2834 nomarkup:
2835 'order deny allow setenv rewriterule rewriteengine rewritecond documentroot ' +
2836 'sethandler errordocument loadmodule options header listen serverroot ' +
2837 'servername'
2838 },
2839 starts: {
2840 end: /$/,
2841 relevance: 0,
2842 keywords: {
2843 literal: 'on off all'
2844 },
2845 contains: [
2846 {
2847 className: 'meta',
2848 begin: '\\s\\[', end: '\\]$'
2849 },
2850 {
2851 className: 'variable',
2852 begin: '[\\$%]\\{', end: '\\}',
2853 contains: ['self', NUMBER]
2854 },
2855 NUMBER,
2856 hljs.QUOTE_STRING_MODE
2857 ]
2858 }
2859 }
2860 ],
2861 illegal: /\S/
2862 };
2863}
2864},{name:"applescript",create:/*
2865Language: AppleScript
2866Authors: Nathan Grigg <nathan@nathanamy.org>, Dr. Drang <drdrang@gmail.com>
2867Category: scripting
2868*/
2869
2870function(hljs) {
2871 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: ''});
2872 var PARAMS = {
2873 className: 'params',
2874 begin: '\\(', end: '\\)',
2875 contains: ['self', hljs.C_NUMBER_MODE, STRING]
2876 };
2877 var COMMENT_MODE_1 = hljs.COMMENT('--', '$');
2878 var COMMENT_MODE_2 = hljs.COMMENT(
2879 '\\(\\*',
2880 '\\*\\)',
2881 {
2882 contains: ['self', COMMENT_MODE_1] //allow nesting
2883 }
2884 );
2885 var COMMENTS = [
2886 COMMENT_MODE_1,
2887 COMMENT_MODE_2,
2888 hljs.HASH_COMMENT_MODE
2889 ];
2890
2891 return {
2892 aliases: ['osascript'],
2893 keywords: {
2894 keyword:
2895 'about above after against and around as at back before beginning ' +
2896 'behind below beneath beside between but by considering ' +
2897 'contain contains continue copy div does eighth else end equal ' +
2898 'equals error every exit fifth first for fourth from front ' +
2899 'get given global if ignoring in into is it its last local me ' +
2900 'middle mod my ninth not of on onto or over prop property put ref ' +
2901 'reference repeat returning script second set seventh since ' +
2902 'sixth some tell tenth that the|0 then third through thru ' +
2903 'timeout times to transaction try until where while whose with ' +
2904 'without',
2905 literal:
2906 'AppleScript false linefeed return pi quote result space tab true',
2907 built_in:
2908 'alias application boolean class constant date file integer list ' +
2909 'number real record string text ' +
2910 'activate beep count delay launch log offset read round ' +
2911 'run say summarize write ' +
2912 'character characters contents day frontmost id item length ' +
2913 'month name paragraph paragraphs rest reverse running time version ' +
2914 'weekday word words year'
2915 },
2916 contains: [
2917 STRING,
2918 hljs.C_NUMBER_MODE,
2919 {
2920 className: 'built_in',
2921 begin:
2922 '\\b(clipboard info|the clipboard|info for|list (disks|folder)|' +
2923 'mount volume|path to|(close|open for) access|(get|set) eof|' +
2924 'current date|do shell script|get volume settings|random number|' +
2925 'set volume|system attribute|system info|time to GMT|' +
2926 '(load|run|store) script|scripting components|' +
2927 'ASCII (character|number)|localized string|' +
2928 'choose (application|color|file|file name|' +
2929 'folder|from list|remote application|URL)|' +
2930 'display (alert|dialog))\\b|^\\s*return\\b'
2931 },
2932 {
2933 className: 'literal',
2934 begin:
2935 '\\b(text item delimiters|current application|missing value)\\b'
2936 },
2937 {
2938 className: 'keyword',
2939 begin:
2940 '\\b(apart from|aside from|instead of|out of|greater than|' +
2941 "isn't|(doesn't|does not) (equal|come before|come after|contain)|" +
2942 '(greater|less) than( or equal)?|(starts?|ends|begins?) with|' +
2943 'contained by|comes (before|after)|a (ref|reference)|POSIX file|' +
2944 'POSIX path|(date|time) string|quoted form)\\b'
2945 },
2946 {
2947 beginKeywords: 'on',
2948 illegal: '[${=;\\n]',
2949 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
2950 }
2951 ].concat(COMMENTS),
2952 illegal: '//|->|=>|\\[\\['
2953 };
2954}
2955},{name:"armasm",create:/*
2956Language: ARM Assembly
2957Author: Dan Panzarella <alsoelp@gmail.com>
2958Description: ARM Assembly including Thumb and Thumb2 instructions
2959Category: assembler
2960*/
2961
2962function(hljs) {
2963 //local labels: %?[FB]?[AT]?\d{1,2}\w+
2964 return {
2965 case_insensitive: true,
2966 aliases: ['arm'],
2967 lexemes: '\\.?' + hljs.IDENT_RE,
2968 keywords: {
2969 meta:
2970 //GNU preprocs
2971 '.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 '+
2972 //ARM directives
2973 '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 ',
2974 built_in:
2975 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 '+ //standard registers
2976 'pc lr sp ip sl sb fp '+ //typical regs plus backward compatibility
2977 'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 '+ //more regs and fp
2978 'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 '+ //coprocessor regs
2979 'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 '+ //more coproc
2980 'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 '+ //advanced SIMD NEON regs
2981
2982 //program status registers
2983 'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf '+
2984 'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf '+
2985
2986 //NEON and VFP registers
2987 's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 '+
2988 's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 '+
2989 'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 '+
2990 'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ' +
2991
2992 '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @'
2993 },
2994 contains: [
2995 {
2996 className: 'keyword',
2997 begin: '\\b('+ //mnemonics
2998 'adc|'+
2999 '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|'+
3000 'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|'+
3001 'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|'+
3002 'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|'+
3003 'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|'+
3004 'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|'+
3005 'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|'+
3006 'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|'+
3007 'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|'+
3008 'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|'+
3009 '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|'+
3010 'wfe|wfi|yield'+
3011 ')'+
3012 '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?'+ //condition codes
3013 '[sptrx]?' , //legal postfixes
3014 end: '\\s'
3015 },
3016 hljs.COMMENT('[;@]', '$', {relevance: 0}),
3017 hljs.C_BLOCK_COMMENT_MODE,
3018 hljs.QUOTE_STRING_MODE,
3019 {
3020 className: 'string',
3021 begin: '\'',
3022 end: '[^\\\\]\'',
3023 relevance: 0
3024 },
3025 {
3026 className: 'title',
3027 begin: '\\|', end: '\\|',
3028 illegal: '\\n',
3029 relevance: 0
3030 },
3031 {
3032 className: 'number',
3033 variants: [
3034 {begin: '[#$=]?0x[0-9a-f]+'}, //hex
3035 {begin: '[#$=]?0b[01]+'}, //bin
3036 {begin: '[#$=]\\d+'}, //literal
3037 {begin: '\\b\\d+'} //bare number
3038 ],
3039 relevance: 0
3040 },
3041 {
3042 className: 'symbol',
3043 variants: [
3044 {begin: '^[a-z_\\.\\$][a-z0-9_\\.\\$]+'}, //ARM syntax
3045 {begin: '^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:'}, //GNU ARM syntax
3046 {begin: '[=#]\\w+' } //label reference
3047 ],
3048 relevance: 0
3049 }
3050 ]
3051 };
3052}
3053},{name:"asciidoc",create:/*
3054Language: AsciiDoc
3055Requires: xml.js
3056Author: Dan Allen <dan.j.allen@gmail.com>
3057Website: http://google.com/profiles/dan.j.allen
3058Description: A semantic, text-based document format that can be exported to HTML, DocBook and other backends.
3059Category: markup
3060*/
3061
3062function(hljs) {
3063 return {
3064 aliases: ['adoc'],
3065 contains: [
3066 // block comment
3067 hljs.COMMENT(
3068 '^/{4,}\\n',
3069 '\\n/{4,}$',
3070 // can also be done as...
3071 //'^/{4,}$',
3072 //'^/{4,}$',
3073 {
3074 relevance: 10
3075 }
3076 ),
3077 // line comment
3078 hljs.COMMENT(
3079 '^//',
3080 '$',
3081 {
3082 relevance: 0
3083 }
3084 ),
3085 // title
3086 {
3087 className: 'title',
3088 begin: '^\\.\\w.*$'
3089 },
3090 // example, admonition & sidebar blocks
3091 {
3092 begin: '^[=\\*]{4,}\\n',
3093 end: '\\n^[=\\*]{4,}$',
3094 relevance: 10
3095 },
3096 // headings
3097 {
3098 className: 'section',
3099 relevance: 10,
3100 variants: [
3101 {begin: '^(={1,5}) .+?( \\1)?$'},
3102 {begin: '^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$'},
3103 ]
3104 },
3105 // document attributes
3106 {
3107 className: 'meta',
3108 begin: '^:.+?:',
3109 end: '\\s',
3110 excludeEnd: true,
3111 relevance: 10
3112 },
3113 // block attributes
3114 {
3115 className: 'meta',
3116 begin: '^\\[.+?\\]$',
3117 relevance: 0
3118 },
3119 // quoteblocks
3120 {
3121 className: 'quote',
3122 begin: '^_{4,}\\n',
3123 end: '\\n_{4,}$',
3124 relevance: 10
3125 },
3126 // listing and literal blocks
3127 {
3128 className: 'code',
3129 begin: '^[\\-\\.]{4,}\\n',
3130 end: '\\n[\\-\\.]{4,}$',
3131 relevance: 10
3132 },
3133 // passthrough blocks
3134 {
3135 begin: '^\\+{4,}\\n',
3136 end: '\\n\\+{4,}$',
3137 contains: [
3138 {
3139 begin: '<', end: '>',
3140 subLanguage: 'xml',
3141 relevance: 0
3142 }
3143 ],
3144 relevance: 10
3145 },
3146 // lists (can only capture indicators)
3147 {
3148 className: 'bullet',
3149 begin: '^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+'
3150 },
3151 // admonition
3152 {
3153 className: 'symbol',
3154 begin: '^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+',
3155 relevance: 10
3156 },
3157 // inline strong
3158 {
3159 className: 'strong',
3160 // must not follow a word character or be followed by an asterisk or space
3161 begin: '\\B\\*(?![\\*\\s])',
3162 end: '(\\n{2}|\\*)',
3163 // allow escaped asterisk followed by word char
3164 contains: [
3165 {
3166 begin: '\\\\*\\w',
3167 relevance: 0
3168 }
3169 ]
3170 },
3171 // inline emphasis
3172 {
3173 className: 'emphasis',
3174 // must not follow a word character or be followed by a single quote or space
3175 begin: '\\B\'(?![\'\\s])',
3176 end: '(\\n{2}|\')',
3177 // allow escaped single quote followed by word char
3178 contains: [
3179 {
3180 begin: '\\\\\'\\w',
3181 relevance: 0
3182 }
3183 ],
3184 relevance: 0
3185 },
3186 // inline emphasis (alt)
3187 {
3188 className: 'emphasis',
3189 // must not follow a word character or be followed by an underline or space
3190 begin: '_(?![_\\s])',
3191 end: '(\\n{2}|_)',
3192 relevance: 0
3193 },
3194 // inline smart quotes
3195 {
3196 className: 'string',
3197 variants: [
3198 {begin: "``.+?''"},
3199 {begin: "`.+?'"}
3200 ]
3201 },
3202 // inline code snippets (TODO should get same treatment as strong and emphasis)
3203 {
3204 className: 'code',
3205 begin: '(`.+?`|\\+.+?\\+)',
3206 relevance: 0
3207 },
3208 // indented literal block
3209 {
3210 className: 'code',
3211 begin: '^[ \\t]',
3212 end: '$',
3213 relevance: 0
3214 },
3215 // horizontal rules
3216 {
3217 begin: '^\'{3,}[ \\t]*$',
3218 relevance: 10
3219 },
3220 // images and links
3221 {
3222 begin: '(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]',
3223 returnBegin: true,
3224 contains: [
3225 {
3226 begin: '(link|image:?):',
3227 relevance: 0
3228 },
3229 {
3230 className: 'link',
3231 begin: '\\w',
3232 end: '[^\\[]+',
3233 relevance: 0
3234 },
3235 {
3236 className: 'string',
3237 begin: '\\[',
3238 end: '\\]',
3239 excludeBegin: true,
3240 excludeEnd: true,
3241 relevance: 0
3242 }
3243 ],
3244 relevance: 10
3245 }
3246 ]
3247 };
3248}
3249},{name:"aspectj",create:/*
3250Language: AspectJ
3251Author: Hakan Ozler <ozler.hakan@gmail.com>
3252Description: Syntax Highlighting for the AspectJ Language which is a general-purpose aspect-oriented extension to the Java programming language.
3253 */
3254function (hljs) {
3255 var KEYWORDS =
3256 'false synchronized int abstract float private char boolean static null if const ' +
3257 'for true while long throw strictfp finally protected import native final return void ' +
3258 'enum else extends implements break transient new catch instanceof byte super volatile case ' +
3259 'assert short package default double public try this switch continue throws privileged ' +
3260 'aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization ' +
3261 'staticinitialization withincode target within execution getWithinTypeName handler ' +
3262 'thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents '+
3263 'warning error soft precedence thisAspectInstance';
3264 var SHORTKEYS = 'get set args call';
3265 return {
3266 keywords : KEYWORDS,
3267 illegal : /<\/|#/,
3268 contains : [
3269 hljs.COMMENT(
3270 '/\\*\\*',
3271 '\\*/',
3272 {
3273 relevance : 0,
3274 contains : [
3275 {
3276 // eat up @'s in emails to prevent them to be recognized as doctags
3277 begin: /\w+@/, relevance: 0
3278 },
3279 {
3280 className : 'doctag',
3281 begin : '@[A-Za-z]+'
3282 }
3283 ]
3284 }
3285 ),
3286 hljs.C_LINE_COMMENT_MODE,
3287 hljs.C_BLOCK_COMMENT_MODE,
3288 hljs.APOS_STRING_MODE,
3289 hljs.QUOTE_STRING_MODE,
3290 {
3291 className : 'class',
3292 beginKeywords : 'aspect',
3293 end : /[{;=]/,
3294 excludeEnd : true,
3295 illegal : /[:;"\[\]]/,
3296 contains : [
3297 {
3298 beginKeywords : 'extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton'
3299 },
3300 hljs.UNDERSCORE_TITLE_MODE,
3301 {
3302 begin : /\([^\)]*/,
3303 end : /[)]+/,
3304 keywords : KEYWORDS + ' ' + SHORTKEYS,
3305 excludeEnd : false
3306 }
3307 ]
3308 },
3309 {
3310 className : 'class',
3311 beginKeywords : 'class interface',
3312 end : /[{;=]/,
3313 excludeEnd : true,
3314 relevance: 0,
3315 keywords : 'class interface',
3316 illegal : /[:"\[\]]/,
3317 contains : [
3318 {beginKeywords : 'extends implements'},
3319 hljs.UNDERSCORE_TITLE_MODE
3320 ]
3321 },
3322 {
3323 // AspectJ Constructs
3324 beginKeywords : 'pointcut after before around throwing returning',
3325 end : /[)]/,
3326 excludeEnd : false,
3327 illegal : /["\[\]]/,
3328 contains : [
3329 {
3330 begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
3331 returnBegin : true,
3332 contains : [hljs.UNDERSCORE_TITLE_MODE]
3333 }
3334 ]
3335 },
3336 {
3337 begin : /[:]/,
3338 returnBegin : true,
3339 end : /[{;]/,
3340 relevance: 0,
3341 excludeEnd : false,
3342 keywords : KEYWORDS,
3343 illegal : /["\[\]]/,
3344 contains : [
3345 {
3346 begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
3347 keywords : KEYWORDS + ' ' + SHORTKEYS
3348 },
3349 hljs.QUOTE_STRING_MODE
3350 ]
3351 },
3352 {
3353 // this prevents 'new Name(...), or throw ...' from being recognized as a function definition
3354 beginKeywords : 'new throw',
3355 relevance : 0
3356 },
3357 {
3358 // the function class is a bit different for AspectJ compared to the Java language
3359 className : 'function',
3360 begin : /\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,
3361 returnBegin : true,
3362 end : /[{;=]/,
3363 keywords : KEYWORDS,
3364 excludeEnd : true,
3365 contains : [
3366 {
3367 begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
3368 returnBegin : true,
3369 relevance: 0,
3370 contains : [hljs.UNDERSCORE_TITLE_MODE]
3371 },
3372 {
3373 className : 'params',
3374 begin : /\(/, end : /\)/,
3375 relevance: 0,
3376 keywords : KEYWORDS,
3377 contains : [
3378 hljs.APOS_STRING_MODE,
3379 hljs.QUOTE_STRING_MODE,
3380 hljs.C_NUMBER_MODE,
3381 hljs.C_BLOCK_COMMENT_MODE
3382 ]
3383 },
3384 hljs.C_LINE_COMMENT_MODE,
3385 hljs.C_BLOCK_COMMENT_MODE
3386 ]
3387 },
3388 hljs.C_NUMBER_MODE,
3389 {
3390 // annotation is also used in this language
3391 className : 'meta',
3392 begin : '@[A-Za-z]+'
3393 }
3394 ]
3395 };
3396}
3397},{name:"autohotkey",create:/*
3398Language: AutoHotkey
3399Author: Seongwon Lee <dlimpid@gmail.com>
3400Description: AutoHotkey language definition
3401Category: scripting
3402*/
3403
3404function(hljs) {
3405 var BACKTICK_ESCAPE = {
3406 begin: /`[\s\S]/
3407 };
3408
3409 return {
3410 case_insensitive: true,
3411 keywords: {
3412 keyword: 'Break Continue Else Gosub If Loop Return While',
3413 literal: 'A true false NOT AND OR',
3414 built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel',
3415 },
3416 contains: [
3417 {
3418 className: 'built_in',
3419 begin: 'A_[a-zA-Z0-9]+'
3420 },
3421 BACKTICK_ESCAPE,
3422 hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [BACKTICK_ESCAPE]}),
3423 hljs.COMMENT(';', '$', {relevance: 0}),
3424 {
3425 className: 'number',
3426 begin: hljs.NUMBER_RE,
3427 relevance: 0
3428 },
3429 {
3430 className: 'variable', // FIXME
3431 begin: '%', end: '%',
3432 illegal: '\\n',
3433 contains: [BACKTICK_ESCAPE]
3434 },
3435 {
3436 className: 'symbol',
3437 contains: [BACKTICK_ESCAPE],
3438 variants: [
3439 {begin: '^[^\\n";]+::(?!=)'},
3440 {begin: '^[^\\n";]+:(?!=)', relevance: 0} // zero relevance as it catches a lot of things
3441 // followed by a single ':' in many languages
3442 ]
3443 },
3444 {
3445 // consecutive commas, not for highlighting but just for relevance
3446 begin: ',\\s*,'
3447 }
3448 ]
3449 }
3450}
3451},{name:"autoit",create:/*
3452Language: AutoIt
3453Author: Manh Tuan <junookyo@gmail.com>
3454Description: AutoIt language definition
3455Category: scripting
3456*/
3457
3458function(hljs) {
3459 var KEYWORDS = 'ByRef Case Const ContinueCase ContinueLoop ' +
3460 'Default Dim Do Else ElseIf EndFunc EndIf EndSelect ' +
3461 'EndSwitch EndWith Enum Exit ExitLoop For Func ' +
3462 'Global If In Local Next ReDim Return Select Static ' +
3463 'Step Switch Then To Until Volatile WEnd While With',
3464
3465 LITERAL = 'True False And Null Not Or',
3466
3467 BUILT_IN = 'Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin ' +
3468 'Assign ATan AutoItSetOption AutoItWinGetTitle ' +
3469 'AutoItWinSetTitle Beep Binary BinaryLen BinaryMid ' +
3470 'BinaryToString BitAND BitNOT BitOR BitRotate BitShift ' +
3471 'BitXOR BlockInput Break Call CDTray Ceiling Chr ' +
3472 'ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ' +
3473 'ConsoleWriteError ControlClick ControlCommand ' +
3474 'ControlDisable ControlEnable ControlFocus ControlGetFocus ' +
3475 'ControlGetHandle ControlGetPos ControlGetText ControlHide ' +
3476 'ControlListView ControlMove ControlSend ControlSetText ' +
3477 'ControlShow ControlTreeView Cos Dec DirCopy DirCreate ' +
3478 'DirGetSize DirMove DirRemove DllCall DllCallAddress ' +
3479 'DllCallbackFree DllCallbackGetPtr DllCallbackRegister ' +
3480 'DllClose DllOpen DllStructCreate DllStructGetData ' +
3481 'DllStructGetPtr DllStructGetSize DllStructSetData ' +
3482 'DriveGetDrive DriveGetFileSystem DriveGetLabel ' +
3483 'DriveGetSerial DriveGetType DriveMapAdd DriveMapDel ' +
3484 'DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal ' +
3485 'DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp ' +
3486 'FileChangeDir FileClose FileCopy FileCreateNTFSLink ' +
3487 'FileCreateShortcut FileDelete FileExists FileFindFirstFile ' +
3488 'FileFindNextFile FileFlush FileGetAttrib FileGetEncoding ' +
3489 'FileGetLongName FileGetPos FileGetShortcut FileGetShortName ' +
3490 'FileGetSize FileGetTime FileGetVersion FileInstall ' +
3491 'FileMove FileOpen FileOpenDialog FileRead FileReadLine ' +
3492 'FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog ' +
3493 'FileSelectFolder FileSetAttrib FileSetEnd FileSetPos ' +
3494 'FileSetTime FileWrite FileWriteLine Floor FtpSetProxy ' +
3495 'FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton ' +
3496 'GUICtrlCreateCheckbox GUICtrlCreateCombo ' +
3497 'GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy ' +
3498 'GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup ' +
3499 'GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel ' +
3500 'GUICtrlCreateList GUICtrlCreateListView ' +
3501 'GUICtrlCreateListViewItem GUICtrlCreateMenu ' +
3502 'GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj ' +
3503 'GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio ' +
3504 'GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem ' +
3505 'GUICtrlCreateTreeView GUICtrlCreateTreeViewItem ' +
3506 'GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle ' +
3507 'GUICtrlGetState GUICtrlRead GUICtrlRecvMsg ' +
3508 'GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy ' +
3509 'GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor ' +
3510 'GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor ' +
3511 'GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage ' +
3512 'GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos ' +
3513 'GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle ' +
3514 'GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg ' +
3515 'GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor ' +
3516 'GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon ' +
3517 'GUISetOnEvent GUISetState GUISetStyle GUIStartGroup ' +
3518 'GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent ' +
3519 'HWnd InetClose InetGet InetGetInfo InetGetSize InetRead ' +
3520 'IniDelete IniRead IniReadSection IniReadSectionNames ' +
3521 'IniRenameSection IniWrite IniWriteSection InputBox Int ' +
3522 'IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct ' +
3523 'IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj ' +
3524 'IsPtr IsString Log MemGetStats Mod MouseClick ' +
3525 'MouseClickDrag MouseDown MouseGetCursor MouseGetPos ' +
3526 'MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ' +
3527 'ObjCreateInterface ObjEvent ObjGet ObjName ' +
3528 'OnAutoItExitRegister OnAutoItExitUnRegister Opt Ping ' +
3529 'PixelChecksum PixelGetColor PixelSearch ProcessClose ' +
3530 'ProcessExists ProcessGetStats ProcessList ' +
3531 'ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ' +
3532 'ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey ' +
3533 'RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait ' +
3534 'RunWait Send SendKeepActive SetError SetExtended ' +
3535 'ShellExecute ShellExecuteWait Shutdown Sin Sleep ' +
3536 'SoundPlay SoundSetWaveVolume SplashImageOn SplashOff ' +
3537 'SplashTextOn Sqrt SRandom StatusbarGetText StderrRead ' +
3538 'StdinWrite StdioClose StdoutRead String StringAddCR ' +
3539 'StringCompare StringFormat StringFromASCIIArray StringInStr ' +
3540 'StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit ' +
3541 'StringIsFloat StringIsInt StringIsLower StringIsSpace ' +
3542 'StringIsUpper StringIsXDigit StringLeft StringLen ' +
3543 'StringLower StringMid StringRegExp StringRegExpReplace ' +
3544 'StringReplace StringReverse StringRight StringSplit ' +
3545 'StringStripCR StringStripWS StringToASCIIArray ' +
3546 'StringToBinary StringTrimLeft StringTrimRight StringUpper ' +
3547 'Tan TCPAccept TCPCloseSocket TCPConnect TCPListen ' +
3548 'TCPNameToIP TCPRecv TCPSend TCPShutdown TCPStartup ' +
3549 'TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu ' +
3550 'TrayGetMsg TrayItemDelete TrayItemGetHandle ' +
3551 'TrayItemGetState TrayItemGetText TrayItemSetOnEvent ' +
3552 'TrayItemSetState TrayItemSetText TraySetClick TraySetIcon ' +
3553 'TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip ' +
3554 'TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv ' +
3555 'UDPSend UDPShutdown UDPStartup VarGetType WinActivate ' +
3556 'WinActive WinClose WinExists WinFlash WinGetCaretPos ' +
3557 'WinGetClassList WinGetClientSize WinGetHandle WinGetPos ' +
3558 'WinGetProcess WinGetState WinGetText WinGetTitle WinKill ' +
3559 'WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo ' +
3560 'WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans ' +
3561 'WinWait WinWaitActive WinWaitClose WinWaitNotActive ' +
3562 'Array1DToHistogram ArrayAdd ArrayBinarySearch ' +
3563 'ArrayColDelete ArrayColInsert ArrayCombinations ' +
3564 'ArrayConcatenate ArrayDelete ArrayDisplay ArrayExtract ' +
3565 'ArrayFindAll ArrayInsert ArrayMax ArrayMaxIndex ArrayMin ' +
3566 'ArrayMinIndex ArrayPermute ArrayPop ArrayPush ' +
3567 'ArrayReverse ArraySearch ArrayShuffle ArraySort ArraySwap ' +
3568 'ArrayToClip ArrayToString ArrayTranspose ArrayTrim ' +
3569 'ArrayUnique Assert ChooseColor ChooseFont ' +
3570 'ClipBoard_ChangeChain ClipBoard_Close ClipBoard_CountFormats ' +
3571 'ClipBoard_Empty ClipBoard_EnumFormats ClipBoard_FormatStr ' +
3572 'ClipBoard_GetData ClipBoard_GetDataEx ClipBoard_GetFormatName ' +
3573 'ClipBoard_GetOpenWindow ClipBoard_GetOwner ' +
3574 'ClipBoard_GetPriorityFormat ClipBoard_GetSequenceNumber ' +
3575 'ClipBoard_GetViewer ClipBoard_IsFormatAvailable ' +
3576 'ClipBoard_Open ClipBoard_RegisterFormat ClipBoard_SetData ' +
3577 'ClipBoard_SetDataEx ClipBoard_SetViewer ClipPutFile ' +
3578 'ColorConvertHSLtoRGB ColorConvertRGBtoHSL ColorGetBlue ' +
3579 'ColorGetCOLORREF ColorGetGreen ColorGetRed ColorGetRGB ' +
3580 'ColorSetCOLORREF ColorSetRGB Crypt_DecryptData ' +
3581 'Crypt_DecryptFile Crypt_DeriveKey Crypt_DestroyKey ' +
3582 'Crypt_EncryptData Crypt_EncryptFile Crypt_GenRandom ' +
3583 'Crypt_HashData Crypt_HashFile Crypt_Shutdown Crypt_Startup ' +
3584 'DateAdd DateDayOfWeek DateDaysInMonth DateDiff ' +
3585 'DateIsLeapYear DateIsValid DateTimeFormat DateTimeSplit ' +
3586 'DateToDayOfWeek DateToDayOfWeekISO DateToDayValue ' +
3587 'DateToMonth Date_Time_CompareFileTime ' +
3588 'Date_Time_DOSDateTimeToArray Date_Time_DOSDateTimeToFileTime ' +
3589 'Date_Time_DOSDateTimeToStr Date_Time_DOSDateToArray ' +
3590 'Date_Time_DOSDateToStr Date_Time_DOSTimeToArray ' +
3591 'Date_Time_DOSTimeToStr Date_Time_EncodeFileTime ' +
3592 'Date_Time_EncodeSystemTime Date_Time_FileTimeToArray ' +
3593 'Date_Time_FileTimeToDOSDateTime ' +
3594 'Date_Time_FileTimeToLocalFileTime Date_Time_FileTimeToStr ' +
3595 'Date_Time_FileTimeToSystemTime Date_Time_GetFileTime ' +
3596 'Date_Time_GetLocalTime Date_Time_GetSystemTime ' +
3597 'Date_Time_GetSystemTimeAdjustment ' +
3598 'Date_Time_GetSystemTimeAsFileTime Date_Time_GetSystemTimes ' +
3599 'Date_Time_GetTickCount Date_Time_GetTimeZoneInformation ' +
3600 'Date_Time_LocalFileTimeToFileTime Date_Time_SetFileTime ' +
3601 'Date_Time_SetLocalTime Date_Time_SetSystemTime ' +
3602 'Date_Time_SetSystemTimeAdjustment ' +
3603 'Date_Time_SetTimeZoneInformation Date_Time_SystemTimeToArray ' +
3604 'Date_Time_SystemTimeToDateStr Date_Time_SystemTimeToDateTimeStr ' +
3605 'Date_Time_SystemTimeToFileTime Date_Time_SystemTimeToTimeStr ' +
3606 'Date_Time_SystemTimeToTzSpecificLocalTime ' +
3607 'Date_Time_TzSpecificLocalTimeToSystemTime DayValueToDate ' +
3608 'DebugBugReportEnv DebugCOMError DebugOut DebugReport ' +
3609 'DebugReportEx DebugReportVar DebugSetup Degree ' +
3610 'EventLog__Backup EventLog__Clear EventLog__Close ' +
3611 'EventLog__Count EventLog__DeregisterSource EventLog__Full ' +
3612 'EventLog__Notify EventLog__Oldest EventLog__Open ' +
3613 'EventLog__OpenBackup EventLog__Read EventLog__RegisterSource ' +
3614 'EventLog__Report Excel_BookAttach Excel_BookClose ' +
3615 'Excel_BookList Excel_BookNew Excel_BookOpen ' +
3616 'Excel_BookOpenText Excel_BookSave Excel_BookSaveAs ' +
3617 'Excel_Close Excel_ColumnToLetter Excel_ColumnToNumber ' +
3618 'Excel_ConvertFormula Excel_Export Excel_FilterGet ' +
3619 'Excel_FilterSet Excel_Open Excel_PictureAdd Excel_Print ' +
3620 'Excel_RangeCopyPaste Excel_RangeDelete Excel_RangeFind ' +
3621 'Excel_RangeInsert Excel_RangeLinkAddRemove Excel_RangeRead ' +
3622 'Excel_RangeReplace Excel_RangeSort Excel_RangeValidate ' +
3623 'Excel_RangeWrite Excel_SheetAdd Excel_SheetCopyMove ' +
3624 'Excel_SheetDelete Excel_SheetList FileCountLines FileCreate ' +
3625 'FileListToArray FileListToArrayRec FilePrint ' +
3626 'FileReadToArray FileWriteFromArray FileWriteLog ' +
3627 'FileWriteToLine FTP_Close FTP_Command FTP_Connect ' +
3628 'FTP_DecodeInternetStatus FTP_DirCreate FTP_DirDelete ' +
3629 'FTP_DirGetCurrent FTP_DirPutContents FTP_DirSetCurrent ' +
3630 'FTP_FileClose FTP_FileDelete FTP_FileGet FTP_FileGetSize ' +
3631 'FTP_FileOpen FTP_FilePut FTP_FileRead FTP_FileRename ' +
3632 'FTP_FileTimeLoHiToStr FTP_FindFileClose FTP_FindFileFirst ' +
3633 'FTP_FindFileNext FTP_GetLastResponseInfo FTP_ListToArray ' +
3634 'FTP_ListToArray2D FTP_ListToArrayEx FTP_Open ' +
3635 'FTP_ProgressDownload FTP_ProgressUpload FTP_SetStatusCallback ' +
3636 'GDIPlus_ArrowCapCreate GDIPlus_ArrowCapDispose ' +
3637 'GDIPlus_ArrowCapGetFillState GDIPlus_ArrowCapGetHeight ' +
3638 'GDIPlus_ArrowCapGetMiddleInset GDIPlus_ArrowCapGetWidth ' +
3639 'GDIPlus_ArrowCapSetFillState GDIPlus_ArrowCapSetHeight ' +
3640 'GDIPlus_ArrowCapSetMiddleInset GDIPlus_ArrowCapSetWidth ' +
3641 'GDIPlus_BitmapApplyEffect GDIPlus_BitmapApplyEffectEx ' +
3642 'GDIPlus_BitmapCloneArea GDIPlus_BitmapConvertFormat ' +
3643 'GDIPlus_BitmapCreateApplyEffect ' +
3644 'GDIPlus_BitmapCreateApplyEffectEx ' +
3645 'GDIPlus_BitmapCreateDIBFromBitmap GDIPlus_BitmapCreateFromFile ' +
3646 'GDIPlus_BitmapCreateFromGraphics ' +
3647 'GDIPlus_BitmapCreateFromHBITMAP GDIPlus_BitmapCreateFromHICON ' +
3648 'GDIPlus_BitmapCreateFromHICON32 GDIPlus_BitmapCreateFromMemory ' +
3649 'GDIPlus_BitmapCreateFromResource GDIPlus_BitmapCreateFromScan0 ' +
3650 'GDIPlus_BitmapCreateFromStream ' +
3651 'GDIPlus_BitmapCreateHBITMAPFromBitmap GDIPlus_BitmapDispose ' +
3652 'GDIPlus_BitmapGetHistogram GDIPlus_BitmapGetHistogramEx ' +
3653 'GDIPlus_BitmapGetHistogramSize GDIPlus_BitmapGetPixel ' +
3654 'GDIPlus_BitmapLockBits GDIPlus_BitmapSetPixel ' +
3655 'GDIPlus_BitmapUnlockBits GDIPlus_BrushClone ' +
3656 'GDIPlus_BrushCreateSolid GDIPlus_BrushDispose ' +
3657 'GDIPlus_BrushGetSolidColor GDIPlus_BrushGetType ' +
3658 'GDIPlus_BrushSetSolidColor GDIPlus_ColorMatrixCreate ' +
3659 'GDIPlus_ColorMatrixCreateGrayScale ' +
3660 'GDIPlus_ColorMatrixCreateNegative ' +
3661 'GDIPlus_ColorMatrixCreateSaturation ' +
3662 'GDIPlus_ColorMatrixCreateScale ' +
3663 'GDIPlus_ColorMatrixCreateTranslate GDIPlus_CustomLineCapClone ' +
3664 'GDIPlus_CustomLineCapCreate GDIPlus_CustomLineCapDispose ' +
3665 'GDIPlus_CustomLineCapGetStrokeCaps ' +
3666 'GDIPlus_CustomLineCapSetStrokeCaps GDIPlus_Decoders ' +
3667 'GDIPlus_DecodersGetCount GDIPlus_DecodersGetSize ' +
3668 'GDIPlus_DrawImageFX GDIPlus_DrawImageFXEx ' +
3669 'GDIPlus_DrawImagePoints GDIPlus_EffectCreate ' +
3670 'GDIPlus_EffectCreateBlur GDIPlus_EffectCreateBrightnessContrast ' +
3671 'GDIPlus_EffectCreateColorBalance GDIPlus_EffectCreateColorCurve ' +
3672 'GDIPlus_EffectCreateColorLUT GDIPlus_EffectCreateColorMatrix ' +
3673 'GDIPlus_EffectCreateHueSaturationLightness ' +
3674 'GDIPlus_EffectCreateLevels GDIPlus_EffectCreateRedEyeCorrection ' +
3675 'GDIPlus_EffectCreateSharpen GDIPlus_EffectCreateTint ' +
3676 'GDIPlus_EffectDispose GDIPlus_EffectGetParameters ' +
3677 'GDIPlus_EffectSetParameters GDIPlus_Encoders ' +
3678 'GDIPlus_EncodersGetCLSID GDIPlus_EncodersGetCount ' +
3679 'GDIPlus_EncodersGetParamList GDIPlus_EncodersGetParamListSize ' +
3680 'GDIPlus_EncodersGetSize GDIPlus_FontCreate ' +
3681 'GDIPlus_FontDispose GDIPlus_FontFamilyCreate ' +
3682 'GDIPlus_FontFamilyCreateFromCollection ' +
3683 'GDIPlus_FontFamilyDispose GDIPlus_FontFamilyGetCellAscent ' +
3684 'GDIPlus_FontFamilyGetCellDescent GDIPlus_FontFamilyGetEmHeight ' +
3685 'GDIPlus_FontFamilyGetLineSpacing GDIPlus_FontGetHeight ' +
3686 'GDIPlus_FontPrivateAddFont GDIPlus_FontPrivateAddMemoryFont ' +
3687 'GDIPlus_FontPrivateCollectionDispose ' +
3688 'GDIPlus_FontPrivateCreateCollection GDIPlus_GraphicsClear ' +
3689 'GDIPlus_GraphicsCreateFromHDC GDIPlus_GraphicsCreateFromHWND ' +
3690 'GDIPlus_GraphicsDispose GDIPlus_GraphicsDrawArc ' +
3691 'GDIPlus_GraphicsDrawBezier GDIPlus_GraphicsDrawClosedCurve ' +
3692 'GDIPlus_GraphicsDrawClosedCurve2 GDIPlus_GraphicsDrawCurve ' +
3693 'GDIPlus_GraphicsDrawCurve2 GDIPlus_GraphicsDrawEllipse ' +
3694 'GDIPlus_GraphicsDrawImage GDIPlus_GraphicsDrawImagePointsRect ' +
3695 'GDIPlus_GraphicsDrawImageRect GDIPlus_GraphicsDrawImageRectRect ' +
3696 'GDIPlus_GraphicsDrawLine GDIPlus_GraphicsDrawPath ' +
3697 'GDIPlus_GraphicsDrawPie GDIPlus_GraphicsDrawPolygon ' +
3698 'GDIPlus_GraphicsDrawRect GDIPlus_GraphicsDrawString ' +
3699 'GDIPlus_GraphicsDrawStringEx GDIPlus_GraphicsFillClosedCurve ' +
3700 'GDIPlus_GraphicsFillClosedCurve2 GDIPlus_GraphicsFillEllipse ' +
3701 'GDIPlus_GraphicsFillPath GDIPlus_GraphicsFillPie ' +
3702 'GDIPlus_GraphicsFillPolygon GDIPlus_GraphicsFillRect ' +
3703 'GDIPlus_GraphicsFillRegion GDIPlus_GraphicsGetCompositingMode ' +
3704 'GDIPlus_GraphicsGetCompositingQuality GDIPlus_GraphicsGetDC ' +
3705 'GDIPlus_GraphicsGetInterpolationMode ' +
3706 'GDIPlus_GraphicsGetSmoothingMode GDIPlus_GraphicsGetTransform ' +
3707 'GDIPlus_GraphicsMeasureCharacterRanges ' +
3708 'GDIPlus_GraphicsMeasureString GDIPlus_GraphicsReleaseDC ' +
3709 'GDIPlus_GraphicsResetClip GDIPlus_GraphicsResetTransform ' +
3710 'GDIPlus_GraphicsRestore GDIPlus_GraphicsRotateTransform ' +
3711 'GDIPlus_GraphicsSave GDIPlus_GraphicsScaleTransform ' +
3712 'GDIPlus_GraphicsSetClipPath GDIPlus_GraphicsSetClipRect ' +
3713 'GDIPlus_GraphicsSetClipRegion ' +
3714 'GDIPlus_GraphicsSetCompositingMode ' +
3715 'GDIPlus_GraphicsSetCompositingQuality ' +
3716 'GDIPlus_GraphicsSetInterpolationMode ' +
3717 'GDIPlus_GraphicsSetPixelOffsetMode ' +
3718 'GDIPlus_GraphicsSetSmoothingMode ' +
3719 'GDIPlus_GraphicsSetTextRenderingHint ' +
3720 'GDIPlus_GraphicsSetTransform GDIPlus_GraphicsTransformPoints ' +
3721 'GDIPlus_GraphicsTranslateTransform GDIPlus_HatchBrushCreate ' +
3722 'GDIPlus_HICONCreateFromBitmap GDIPlus_ImageAttributesCreate ' +
3723 'GDIPlus_ImageAttributesDispose ' +
3724 'GDIPlus_ImageAttributesSetColorKeys ' +
3725 'GDIPlus_ImageAttributesSetColorMatrix GDIPlus_ImageDispose ' +
3726 'GDIPlus_ImageGetDimension GDIPlus_ImageGetFlags ' +
3727 'GDIPlus_ImageGetGraphicsContext GDIPlus_ImageGetHeight ' +
3728 'GDIPlus_ImageGetHorizontalResolution ' +
3729 'GDIPlus_ImageGetPixelFormat GDIPlus_ImageGetRawFormat ' +
3730 'GDIPlus_ImageGetThumbnail GDIPlus_ImageGetType ' +
3731 'GDIPlus_ImageGetVerticalResolution GDIPlus_ImageGetWidth ' +
3732 'GDIPlus_ImageLoadFromFile GDIPlus_ImageLoadFromStream ' +
3733 'GDIPlus_ImageResize GDIPlus_ImageRotateFlip ' +
3734 'GDIPlus_ImageSaveToFile GDIPlus_ImageSaveToFileEx ' +
3735 'GDIPlus_ImageSaveToStream GDIPlus_ImageScale ' +
3736 'GDIPlus_LineBrushCreate GDIPlus_LineBrushCreateFromRect ' +
3737 'GDIPlus_LineBrushCreateFromRectWithAngle ' +
3738 'GDIPlus_LineBrushGetColors GDIPlus_LineBrushGetRect ' +
3739 'GDIPlus_LineBrushMultiplyTransform ' +
3740 'GDIPlus_LineBrushResetTransform GDIPlus_LineBrushSetBlend ' +
3741 'GDIPlus_LineBrushSetColors GDIPlus_LineBrushSetGammaCorrection ' +
3742 'GDIPlus_LineBrushSetLinearBlend GDIPlus_LineBrushSetPresetBlend ' +
3743 'GDIPlus_LineBrushSetSigmaBlend GDIPlus_LineBrushSetTransform ' +
3744 'GDIPlus_MatrixClone GDIPlus_MatrixCreate ' +
3745 'GDIPlus_MatrixDispose GDIPlus_MatrixGetElements ' +
3746 'GDIPlus_MatrixInvert GDIPlus_MatrixMultiply ' +
3747 'GDIPlus_MatrixRotate GDIPlus_MatrixScale ' +
3748 'GDIPlus_MatrixSetElements GDIPlus_MatrixShear ' +
3749 'GDIPlus_MatrixTransformPoints GDIPlus_MatrixTranslate ' +
3750 'GDIPlus_PaletteInitialize GDIPlus_ParamAdd GDIPlus_ParamInit ' +
3751 'GDIPlus_ParamSize GDIPlus_PathAddArc GDIPlus_PathAddBezier ' +
3752 'GDIPlus_PathAddClosedCurve GDIPlus_PathAddClosedCurve2 ' +
3753 'GDIPlus_PathAddCurve GDIPlus_PathAddCurve2 ' +
3754 'GDIPlus_PathAddCurve3 GDIPlus_PathAddEllipse ' +
3755 'GDIPlus_PathAddLine GDIPlus_PathAddLine2 GDIPlus_PathAddPath ' +
3756 'GDIPlus_PathAddPie GDIPlus_PathAddPolygon ' +
3757 'GDIPlus_PathAddRectangle GDIPlus_PathAddString ' +
3758 'GDIPlus_PathBrushCreate GDIPlus_PathBrushCreateFromPath ' +
3759 'GDIPlus_PathBrushGetCenterPoint GDIPlus_PathBrushGetFocusScales ' +
3760 'GDIPlus_PathBrushGetPointCount GDIPlus_PathBrushGetRect ' +
3761 'GDIPlus_PathBrushGetWrapMode GDIPlus_PathBrushMultiplyTransform ' +
3762 'GDIPlus_PathBrushResetTransform GDIPlus_PathBrushSetBlend ' +
3763 'GDIPlus_PathBrushSetCenterColor GDIPlus_PathBrushSetCenterPoint ' +
3764 'GDIPlus_PathBrushSetFocusScales ' +
3765 'GDIPlus_PathBrushSetGammaCorrection ' +
3766 'GDIPlus_PathBrushSetLinearBlend GDIPlus_PathBrushSetPresetBlend ' +
3767 'GDIPlus_PathBrushSetSigmaBlend ' +
3768 'GDIPlus_PathBrushSetSurroundColor ' +
3769 'GDIPlus_PathBrushSetSurroundColorsWithCount ' +
3770 'GDIPlus_PathBrushSetTransform GDIPlus_PathBrushSetWrapMode ' +
3771 'GDIPlus_PathClone GDIPlus_PathCloseFigure GDIPlus_PathCreate ' +
3772 'GDIPlus_PathCreate2 GDIPlus_PathDispose GDIPlus_PathFlatten ' +
3773 'GDIPlus_PathGetData GDIPlus_PathGetFillMode ' +
3774 'GDIPlus_PathGetLastPoint GDIPlus_PathGetPointCount ' +
3775 'GDIPlus_PathGetPoints GDIPlus_PathGetWorldBounds ' +
3776 'GDIPlus_PathIsOutlineVisiblePoint GDIPlus_PathIsVisiblePoint ' +
3777 'GDIPlus_PathIterCreate GDIPlus_PathIterDispose ' +
3778 'GDIPlus_PathIterGetSubpathCount GDIPlus_PathIterNextMarkerPath ' +
3779 'GDIPlus_PathIterNextSubpathPath GDIPlus_PathIterRewind ' +
3780 'GDIPlus_PathReset GDIPlus_PathReverse GDIPlus_PathSetFillMode ' +
3781 'GDIPlus_PathSetMarker GDIPlus_PathStartFigure ' +
3782 'GDIPlus_PathTransform GDIPlus_PathWarp GDIPlus_PathWiden ' +
3783 'GDIPlus_PathWindingModeOutline GDIPlus_PenCreate ' +
3784 'GDIPlus_PenCreate2 GDIPlus_PenDispose GDIPlus_PenGetAlignment ' +
3785 'GDIPlus_PenGetColor GDIPlus_PenGetCustomEndCap ' +
3786 'GDIPlus_PenGetDashCap GDIPlus_PenGetDashStyle ' +
3787 'GDIPlus_PenGetEndCap GDIPlus_PenGetMiterLimit ' +
3788 'GDIPlus_PenGetWidth GDIPlus_PenSetAlignment ' +
3789 'GDIPlus_PenSetColor GDIPlus_PenSetCustomEndCap ' +
3790 'GDIPlus_PenSetDashCap GDIPlus_PenSetDashStyle ' +
3791 'GDIPlus_PenSetEndCap GDIPlus_PenSetLineCap ' +
3792 'GDIPlus_PenSetLineJoin GDIPlus_PenSetMiterLimit ' +
3793 'GDIPlus_PenSetStartCap GDIPlus_PenSetWidth ' +
3794 'GDIPlus_RectFCreate GDIPlus_RegionClone ' +
3795 'GDIPlus_RegionCombinePath GDIPlus_RegionCombineRect ' +
3796 'GDIPlus_RegionCombineRegion GDIPlus_RegionCreate ' +
3797 'GDIPlus_RegionCreateFromPath GDIPlus_RegionCreateFromRect ' +
3798 'GDIPlus_RegionDispose GDIPlus_RegionGetBounds ' +
3799 'GDIPlus_RegionGetHRgn GDIPlus_RegionTransform ' +
3800 'GDIPlus_RegionTranslate GDIPlus_Shutdown GDIPlus_Startup ' +
3801 'GDIPlus_StringFormatCreate GDIPlus_StringFormatDispose ' +
3802 'GDIPlus_StringFormatGetMeasurableCharacterRangeCount ' +
3803 'GDIPlus_StringFormatSetAlign GDIPlus_StringFormatSetLineAlign ' +
3804 'GDIPlus_StringFormatSetMeasurableCharacterRanges ' +
3805 'GDIPlus_TextureCreate GDIPlus_TextureCreate2 ' +
3806 'GDIPlus_TextureCreateIA GetIP GUICtrlAVI_Close ' +
3807 'GUICtrlAVI_Create GUICtrlAVI_Destroy GUICtrlAVI_IsPlaying ' +
3808 'GUICtrlAVI_Open GUICtrlAVI_OpenEx GUICtrlAVI_Play ' +
3809 'GUICtrlAVI_Seek GUICtrlAVI_Show GUICtrlAVI_Stop ' +
3810 'GUICtrlButton_Click GUICtrlButton_Create ' +
3811 'GUICtrlButton_Destroy GUICtrlButton_Enable ' +
3812 'GUICtrlButton_GetCheck GUICtrlButton_GetFocus ' +
3813 'GUICtrlButton_GetIdealSize GUICtrlButton_GetImage ' +
3814 'GUICtrlButton_GetImageList GUICtrlButton_GetNote ' +
3815 'GUICtrlButton_GetNoteLength GUICtrlButton_GetSplitInfo ' +
3816 'GUICtrlButton_GetState GUICtrlButton_GetText ' +
3817 'GUICtrlButton_GetTextMargin GUICtrlButton_SetCheck ' +
3818 'GUICtrlButton_SetDontClick GUICtrlButton_SetFocus ' +
3819 'GUICtrlButton_SetImage GUICtrlButton_SetImageList ' +
3820 'GUICtrlButton_SetNote GUICtrlButton_SetShield ' +
3821 'GUICtrlButton_SetSize GUICtrlButton_SetSplitInfo ' +
3822 'GUICtrlButton_SetState GUICtrlButton_SetStyle ' +
3823 'GUICtrlButton_SetText GUICtrlButton_SetTextMargin ' +
3824 'GUICtrlButton_Show GUICtrlComboBoxEx_AddDir ' +
3825 'GUICtrlComboBoxEx_AddString GUICtrlComboBoxEx_BeginUpdate ' +
3826 'GUICtrlComboBoxEx_Create GUICtrlComboBoxEx_CreateSolidBitMap ' +
3827 'GUICtrlComboBoxEx_DeleteString GUICtrlComboBoxEx_Destroy ' +
3828 'GUICtrlComboBoxEx_EndUpdate GUICtrlComboBoxEx_FindStringExact ' +
3829 'GUICtrlComboBoxEx_GetComboBoxInfo ' +
3830 'GUICtrlComboBoxEx_GetComboControl GUICtrlComboBoxEx_GetCount ' +
3831 'GUICtrlComboBoxEx_GetCurSel ' +
3832 'GUICtrlComboBoxEx_GetDroppedControlRect ' +
3833 'GUICtrlComboBoxEx_GetDroppedControlRectEx ' +
3834 'GUICtrlComboBoxEx_GetDroppedState ' +
3835 'GUICtrlComboBoxEx_GetDroppedWidth ' +
3836 'GUICtrlComboBoxEx_GetEditControl GUICtrlComboBoxEx_GetEditSel ' +
3837 'GUICtrlComboBoxEx_GetEditText ' +
3838 'GUICtrlComboBoxEx_GetExtendedStyle ' +
3839 'GUICtrlComboBoxEx_GetExtendedUI GUICtrlComboBoxEx_GetImageList ' +
3840 'GUICtrlComboBoxEx_GetItem GUICtrlComboBoxEx_GetItemEx ' +
3841 'GUICtrlComboBoxEx_GetItemHeight GUICtrlComboBoxEx_GetItemImage ' +
3842 'GUICtrlComboBoxEx_GetItemIndent ' +
3843 'GUICtrlComboBoxEx_GetItemOverlayImage ' +
3844 'GUICtrlComboBoxEx_GetItemParam ' +
3845 'GUICtrlComboBoxEx_GetItemSelectedImage ' +
3846 'GUICtrlComboBoxEx_GetItemText GUICtrlComboBoxEx_GetItemTextLen ' +
3847 'GUICtrlComboBoxEx_GetList GUICtrlComboBoxEx_GetListArray ' +
3848 'GUICtrlComboBoxEx_GetLocale GUICtrlComboBoxEx_GetLocaleCountry ' +
3849 'GUICtrlComboBoxEx_GetLocaleLang ' +
3850 'GUICtrlComboBoxEx_GetLocalePrimLang ' +
3851 'GUICtrlComboBoxEx_GetLocaleSubLang ' +
3852 'GUICtrlComboBoxEx_GetMinVisible GUICtrlComboBoxEx_GetTopIndex ' +
3853 'GUICtrlComboBoxEx_GetUnicode GUICtrlComboBoxEx_InitStorage ' +
3854 'GUICtrlComboBoxEx_InsertString GUICtrlComboBoxEx_LimitText ' +
3855 'GUICtrlComboBoxEx_ReplaceEditSel GUICtrlComboBoxEx_ResetContent ' +
3856 'GUICtrlComboBoxEx_SetCurSel GUICtrlComboBoxEx_SetDroppedWidth ' +
3857 'GUICtrlComboBoxEx_SetEditSel GUICtrlComboBoxEx_SetEditText ' +
3858 'GUICtrlComboBoxEx_SetExtendedStyle ' +
3859 'GUICtrlComboBoxEx_SetExtendedUI GUICtrlComboBoxEx_SetImageList ' +
3860 'GUICtrlComboBoxEx_SetItem GUICtrlComboBoxEx_SetItemEx ' +
3861 'GUICtrlComboBoxEx_SetItemHeight GUICtrlComboBoxEx_SetItemImage ' +
3862 'GUICtrlComboBoxEx_SetItemIndent ' +
3863 'GUICtrlComboBoxEx_SetItemOverlayImage ' +
3864 'GUICtrlComboBoxEx_SetItemParam ' +
3865 'GUICtrlComboBoxEx_SetItemSelectedImage ' +
3866 'GUICtrlComboBoxEx_SetMinVisible GUICtrlComboBoxEx_SetTopIndex ' +
3867 'GUICtrlComboBoxEx_SetUnicode GUICtrlComboBoxEx_ShowDropDown ' +
3868 'GUICtrlComboBox_AddDir GUICtrlComboBox_AddString ' +
3869 'GUICtrlComboBox_AutoComplete GUICtrlComboBox_BeginUpdate ' +
3870 'GUICtrlComboBox_Create GUICtrlComboBox_DeleteString ' +
3871 'GUICtrlComboBox_Destroy GUICtrlComboBox_EndUpdate ' +
3872 'GUICtrlComboBox_FindString GUICtrlComboBox_FindStringExact ' +
3873 'GUICtrlComboBox_GetComboBoxInfo GUICtrlComboBox_GetCount ' +
3874 'GUICtrlComboBox_GetCueBanner GUICtrlComboBox_GetCurSel ' +
3875 'GUICtrlComboBox_GetDroppedControlRect ' +
3876 'GUICtrlComboBox_GetDroppedControlRectEx ' +
3877 'GUICtrlComboBox_GetDroppedState GUICtrlComboBox_GetDroppedWidth ' +
3878 'GUICtrlComboBox_GetEditSel GUICtrlComboBox_GetEditText ' +
3879 'GUICtrlComboBox_GetExtendedUI ' +
3880 'GUICtrlComboBox_GetHorizontalExtent ' +
3881 'GUICtrlComboBox_GetItemHeight GUICtrlComboBox_GetLBText ' +
3882 'GUICtrlComboBox_GetLBTextLen GUICtrlComboBox_GetList ' +
3883 'GUICtrlComboBox_GetListArray GUICtrlComboBox_GetLocale ' +
3884 'GUICtrlComboBox_GetLocaleCountry GUICtrlComboBox_GetLocaleLang ' +
3885 'GUICtrlComboBox_GetLocalePrimLang ' +
3886 'GUICtrlComboBox_GetLocaleSubLang GUICtrlComboBox_GetMinVisible ' +
3887 'GUICtrlComboBox_GetTopIndex GUICtrlComboBox_InitStorage ' +
3888 'GUICtrlComboBox_InsertString GUICtrlComboBox_LimitText ' +
3889 'GUICtrlComboBox_ReplaceEditSel GUICtrlComboBox_ResetContent ' +
3890 'GUICtrlComboBox_SelectString GUICtrlComboBox_SetCueBanner ' +
3891 'GUICtrlComboBox_SetCurSel GUICtrlComboBox_SetDroppedWidth ' +
3892 'GUICtrlComboBox_SetEditSel GUICtrlComboBox_SetEditText ' +
3893 'GUICtrlComboBox_SetExtendedUI ' +
3894 'GUICtrlComboBox_SetHorizontalExtent ' +
3895 'GUICtrlComboBox_SetItemHeight GUICtrlComboBox_SetMinVisible ' +
3896 'GUICtrlComboBox_SetTopIndex GUICtrlComboBox_ShowDropDown ' +
3897 'GUICtrlDTP_Create GUICtrlDTP_Destroy GUICtrlDTP_GetMCColor ' +
3898 'GUICtrlDTP_GetMCFont GUICtrlDTP_GetMonthCal ' +
3899 'GUICtrlDTP_GetRange GUICtrlDTP_GetRangeEx ' +
3900 'GUICtrlDTP_GetSystemTime GUICtrlDTP_GetSystemTimeEx ' +
3901 'GUICtrlDTP_SetFormat GUICtrlDTP_SetMCColor ' +
3902 'GUICtrlDTP_SetMCFont GUICtrlDTP_SetRange ' +
3903 'GUICtrlDTP_SetRangeEx GUICtrlDTP_SetSystemTime ' +
3904 'GUICtrlDTP_SetSystemTimeEx GUICtrlEdit_AppendText ' +
3905 'GUICtrlEdit_BeginUpdate GUICtrlEdit_CanUndo ' +
3906 'GUICtrlEdit_CharFromPos GUICtrlEdit_Create ' +
3907 'GUICtrlEdit_Destroy GUICtrlEdit_EmptyUndoBuffer ' +
3908 'GUICtrlEdit_EndUpdate GUICtrlEdit_Find GUICtrlEdit_FmtLines ' +
3909 'GUICtrlEdit_GetCueBanner GUICtrlEdit_GetFirstVisibleLine ' +
3910 'GUICtrlEdit_GetLimitText GUICtrlEdit_GetLine ' +
3911 'GUICtrlEdit_GetLineCount GUICtrlEdit_GetMargins ' +
3912 'GUICtrlEdit_GetModify GUICtrlEdit_GetPasswordChar ' +
3913 'GUICtrlEdit_GetRECT GUICtrlEdit_GetRECTEx GUICtrlEdit_GetSel ' +
3914 'GUICtrlEdit_GetText GUICtrlEdit_GetTextLen ' +
3915 'GUICtrlEdit_HideBalloonTip GUICtrlEdit_InsertText ' +
3916 'GUICtrlEdit_LineFromChar GUICtrlEdit_LineIndex ' +
3917 'GUICtrlEdit_LineLength GUICtrlEdit_LineScroll ' +
3918 'GUICtrlEdit_PosFromChar GUICtrlEdit_ReplaceSel ' +
3919 'GUICtrlEdit_Scroll GUICtrlEdit_SetCueBanner ' +
3920 'GUICtrlEdit_SetLimitText GUICtrlEdit_SetMargins ' +
3921 'GUICtrlEdit_SetModify GUICtrlEdit_SetPasswordChar ' +
3922 'GUICtrlEdit_SetReadOnly GUICtrlEdit_SetRECT ' +
3923 'GUICtrlEdit_SetRECTEx GUICtrlEdit_SetRECTNP ' +
3924 'GUICtrlEdit_SetRectNPEx GUICtrlEdit_SetSel ' +
3925 'GUICtrlEdit_SetTabStops GUICtrlEdit_SetText ' +
3926 'GUICtrlEdit_ShowBalloonTip GUICtrlEdit_Undo ' +
3927 'GUICtrlHeader_AddItem GUICtrlHeader_ClearFilter ' +
3928 'GUICtrlHeader_ClearFilterAll GUICtrlHeader_Create ' +
3929 'GUICtrlHeader_CreateDragImage GUICtrlHeader_DeleteItem ' +
3930 'GUICtrlHeader_Destroy GUICtrlHeader_EditFilter ' +
3931 'GUICtrlHeader_GetBitmapMargin GUICtrlHeader_GetImageList ' +
3932 'GUICtrlHeader_GetItem GUICtrlHeader_GetItemAlign ' +
3933 'GUICtrlHeader_GetItemBitmap GUICtrlHeader_GetItemCount ' +
3934 'GUICtrlHeader_GetItemDisplay GUICtrlHeader_GetItemFlags ' +
3935 'GUICtrlHeader_GetItemFormat GUICtrlHeader_GetItemImage ' +
3936 'GUICtrlHeader_GetItemOrder GUICtrlHeader_GetItemParam ' +
3937 'GUICtrlHeader_GetItemRect GUICtrlHeader_GetItemRectEx ' +
3938 'GUICtrlHeader_GetItemText GUICtrlHeader_GetItemWidth ' +
3939 'GUICtrlHeader_GetOrderArray GUICtrlHeader_GetUnicodeFormat ' +
3940 'GUICtrlHeader_HitTest GUICtrlHeader_InsertItem ' +
3941 'GUICtrlHeader_Layout GUICtrlHeader_OrderToIndex ' +
3942 'GUICtrlHeader_SetBitmapMargin ' +
3943 'GUICtrlHeader_SetFilterChangeTimeout ' +
3944 'GUICtrlHeader_SetHotDivider GUICtrlHeader_SetImageList ' +
3945 'GUICtrlHeader_SetItem GUICtrlHeader_SetItemAlign ' +
3946 'GUICtrlHeader_SetItemBitmap GUICtrlHeader_SetItemDisplay ' +
3947 'GUICtrlHeader_SetItemFlags GUICtrlHeader_SetItemFormat ' +
3948 'GUICtrlHeader_SetItemImage GUICtrlHeader_SetItemOrder ' +
3949 'GUICtrlHeader_SetItemParam GUICtrlHeader_SetItemText ' +
3950 'GUICtrlHeader_SetItemWidth GUICtrlHeader_SetOrderArray ' +
3951 'GUICtrlHeader_SetUnicodeFormat GUICtrlIpAddress_ClearAddress ' +
3952 'GUICtrlIpAddress_Create GUICtrlIpAddress_Destroy ' +
3953 'GUICtrlIpAddress_Get GUICtrlIpAddress_GetArray ' +
3954 'GUICtrlIpAddress_GetEx GUICtrlIpAddress_IsBlank ' +
3955 'GUICtrlIpAddress_Set GUICtrlIpAddress_SetArray ' +
3956 'GUICtrlIpAddress_SetEx GUICtrlIpAddress_SetFocus ' +
3957 'GUICtrlIpAddress_SetFont GUICtrlIpAddress_SetRange ' +
3958 'GUICtrlIpAddress_ShowHide GUICtrlListBox_AddFile ' +
3959 'GUICtrlListBox_AddString GUICtrlListBox_BeginUpdate ' +
3960 'GUICtrlListBox_ClickItem GUICtrlListBox_Create ' +
3961 'GUICtrlListBox_DeleteString GUICtrlListBox_Destroy ' +
3962 'GUICtrlListBox_Dir GUICtrlListBox_EndUpdate ' +
3963 'GUICtrlListBox_FindInText GUICtrlListBox_FindString ' +
3964 'GUICtrlListBox_GetAnchorIndex GUICtrlListBox_GetCaretIndex ' +
3965 'GUICtrlListBox_GetCount GUICtrlListBox_GetCurSel ' +
3966 'GUICtrlListBox_GetHorizontalExtent GUICtrlListBox_GetItemData ' +
3967 'GUICtrlListBox_GetItemHeight GUICtrlListBox_GetItemRect ' +
3968 'GUICtrlListBox_GetItemRectEx GUICtrlListBox_GetListBoxInfo ' +
3969 'GUICtrlListBox_GetLocale GUICtrlListBox_GetLocaleCountry ' +
3970 'GUICtrlListBox_GetLocaleLang GUICtrlListBox_GetLocalePrimLang ' +
3971 'GUICtrlListBox_GetLocaleSubLang GUICtrlListBox_GetSel ' +
3972 'GUICtrlListBox_GetSelCount GUICtrlListBox_GetSelItems ' +
3973 'GUICtrlListBox_GetSelItemsText GUICtrlListBox_GetText ' +
3974 'GUICtrlListBox_GetTextLen GUICtrlListBox_GetTopIndex ' +
3975 'GUICtrlListBox_InitStorage GUICtrlListBox_InsertString ' +
3976 'GUICtrlListBox_ItemFromPoint GUICtrlListBox_ReplaceString ' +
3977 'GUICtrlListBox_ResetContent GUICtrlListBox_SelectString ' +
3978 'GUICtrlListBox_SelItemRange GUICtrlListBox_SelItemRangeEx ' +
3979 'GUICtrlListBox_SetAnchorIndex GUICtrlListBox_SetCaretIndex ' +
3980 'GUICtrlListBox_SetColumnWidth GUICtrlListBox_SetCurSel ' +
3981 'GUICtrlListBox_SetHorizontalExtent GUICtrlListBox_SetItemData ' +
3982 'GUICtrlListBox_SetItemHeight GUICtrlListBox_SetLocale ' +
3983 'GUICtrlListBox_SetSel GUICtrlListBox_SetTabStops ' +
3984 'GUICtrlListBox_SetTopIndex GUICtrlListBox_Sort ' +
3985 'GUICtrlListBox_SwapString GUICtrlListBox_UpdateHScroll ' +
3986 'GUICtrlListView_AddArray GUICtrlListView_AddColumn ' +
3987 'GUICtrlListView_AddItem GUICtrlListView_AddSubItem ' +
3988 'GUICtrlListView_ApproximateViewHeight ' +
3989 'GUICtrlListView_ApproximateViewRect ' +
3990 'GUICtrlListView_ApproximateViewWidth GUICtrlListView_Arrange ' +
3991 'GUICtrlListView_BeginUpdate GUICtrlListView_CancelEditLabel ' +
3992 'GUICtrlListView_ClickItem GUICtrlListView_CopyItems ' +
3993 'GUICtrlListView_Create GUICtrlListView_CreateDragImage ' +
3994 'GUICtrlListView_CreateSolidBitMap ' +
3995 'GUICtrlListView_DeleteAllItems GUICtrlListView_DeleteColumn ' +
3996 'GUICtrlListView_DeleteItem GUICtrlListView_DeleteItemsSelected ' +
3997 'GUICtrlListView_Destroy GUICtrlListView_DrawDragImage ' +
3998 'GUICtrlListView_EditLabel GUICtrlListView_EnableGroupView ' +
3999 'GUICtrlListView_EndUpdate GUICtrlListView_EnsureVisible ' +
4000 'GUICtrlListView_FindInText GUICtrlListView_FindItem ' +
4001 'GUICtrlListView_FindNearest GUICtrlListView_FindParam ' +
4002 'GUICtrlListView_FindText GUICtrlListView_GetBkColor ' +
4003 'GUICtrlListView_GetBkImage GUICtrlListView_GetCallbackMask ' +
4004 'GUICtrlListView_GetColumn GUICtrlListView_GetColumnCount ' +
4005 'GUICtrlListView_GetColumnOrder ' +
4006 'GUICtrlListView_GetColumnOrderArray ' +
4007 'GUICtrlListView_GetColumnWidth GUICtrlListView_GetCounterPage ' +
4008 'GUICtrlListView_GetEditControl ' +
4009 'GUICtrlListView_GetExtendedListViewStyle ' +
4010 'GUICtrlListView_GetFocusedGroup GUICtrlListView_GetGroupCount ' +
4011 'GUICtrlListView_GetGroupInfo ' +
4012 'GUICtrlListView_GetGroupInfoByIndex ' +
4013 'GUICtrlListView_GetGroupRect ' +
4014 'GUICtrlListView_GetGroupViewEnabled GUICtrlListView_GetHeader ' +
4015 'GUICtrlListView_GetHotCursor GUICtrlListView_GetHotItem ' +
4016 'GUICtrlListView_GetHoverTime GUICtrlListView_GetImageList ' +
4017 'GUICtrlListView_GetISearchString GUICtrlListView_GetItem ' +
4018 'GUICtrlListView_GetItemChecked GUICtrlListView_GetItemCount ' +
4019 'GUICtrlListView_GetItemCut GUICtrlListView_GetItemDropHilited ' +
4020 'GUICtrlListView_GetItemEx GUICtrlListView_GetItemFocused ' +
4021 'GUICtrlListView_GetItemGroupID GUICtrlListView_GetItemImage ' +
4022 'GUICtrlListView_GetItemIndent GUICtrlListView_GetItemParam ' +
4023 'GUICtrlListView_GetItemPosition ' +
4024 'GUICtrlListView_GetItemPositionX ' +
4025 'GUICtrlListView_GetItemPositionY GUICtrlListView_GetItemRect ' +
4026 'GUICtrlListView_GetItemRectEx GUICtrlListView_GetItemSelected ' +
4027 'GUICtrlListView_GetItemSpacing GUICtrlListView_GetItemSpacingX ' +
4028 'GUICtrlListView_GetItemSpacingY GUICtrlListView_GetItemState ' +
4029 'GUICtrlListView_GetItemStateImage GUICtrlListView_GetItemText ' +
4030 'GUICtrlListView_GetItemTextArray ' +
4031 'GUICtrlListView_GetItemTextString GUICtrlListView_GetNextItem ' +
4032 'GUICtrlListView_GetNumberOfWorkAreas GUICtrlListView_GetOrigin ' +
4033 'GUICtrlListView_GetOriginX GUICtrlListView_GetOriginY ' +
4034 'GUICtrlListView_GetOutlineColor ' +
4035 'GUICtrlListView_GetSelectedColumn ' +
4036 'GUICtrlListView_GetSelectedCount ' +
4037 'GUICtrlListView_GetSelectedIndices ' +
4038 'GUICtrlListView_GetSelectionMark GUICtrlListView_GetStringWidth ' +
4039 'GUICtrlListView_GetSubItemRect GUICtrlListView_GetTextBkColor ' +
4040 'GUICtrlListView_GetTextColor GUICtrlListView_GetToolTips ' +
4041 'GUICtrlListView_GetTopIndex GUICtrlListView_GetUnicodeFormat ' +
4042 'GUICtrlListView_GetView GUICtrlListView_GetViewDetails ' +
4043 'GUICtrlListView_GetViewLarge GUICtrlListView_GetViewList ' +
4044 'GUICtrlListView_GetViewRect GUICtrlListView_GetViewSmall ' +
4045 'GUICtrlListView_GetViewTile GUICtrlListView_HideColumn ' +
4046 'GUICtrlListView_HitTest GUICtrlListView_InsertColumn ' +
4047 'GUICtrlListView_InsertGroup GUICtrlListView_InsertItem ' +
4048 'GUICtrlListView_JustifyColumn GUICtrlListView_MapIDToIndex ' +
4049 'GUICtrlListView_MapIndexToID GUICtrlListView_RedrawItems ' +
4050 'GUICtrlListView_RegisterSortCallBack ' +
4051 'GUICtrlListView_RemoveAllGroups GUICtrlListView_RemoveGroup ' +
4052 'GUICtrlListView_Scroll GUICtrlListView_SetBkColor ' +
4053 'GUICtrlListView_SetBkImage GUICtrlListView_SetCallBackMask ' +
4054 'GUICtrlListView_SetColumn GUICtrlListView_SetColumnOrder ' +
4055 'GUICtrlListView_SetColumnOrderArray ' +
4056 'GUICtrlListView_SetColumnWidth ' +
4057 'GUICtrlListView_SetExtendedListViewStyle ' +
4058 'GUICtrlListView_SetGroupInfo GUICtrlListView_SetHotItem ' +
4059 'GUICtrlListView_SetHoverTime GUICtrlListView_SetIconSpacing ' +
4060 'GUICtrlListView_SetImageList GUICtrlListView_SetItem ' +
4061 'GUICtrlListView_SetItemChecked GUICtrlListView_SetItemCount ' +
4062 'GUICtrlListView_SetItemCut GUICtrlListView_SetItemDropHilited ' +
4063 'GUICtrlListView_SetItemEx GUICtrlListView_SetItemFocused ' +
4064 'GUICtrlListView_SetItemGroupID GUICtrlListView_SetItemImage ' +
4065 'GUICtrlListView_SetItemIndent GUICtrlListView_SetItemParam ' +
4066 'GUICtrlListView_SetItemPosition ' +
4067 'GUICtrlListView_SetItemPosition32 ' +
4068 'GUICtrlListView_SetItemSelected GUICtrlListView_SetItemState ' +
4069 'GUICtrlListView_SetItemStateImage GUICtrlListView_SetItemText ' +
4070 'GUICtrlListView_SetOutlineColor ' +
4071 'GUICtrlListView_SetSelectedColumn ' +
4072 'GUICtrlListView_SetSelectionMark GUICtrlListView_SetTextBkColor ' +
4073 'GUICtrlListView_SetTextColor GUICtrlListView_SetToolTips ' +
4074 'GUICtrlListView_SetUnicodeFormat GUICtrlListView_SetView ' +
4075 'GUICtrlListView_SetWorkAreas GUICtrlListView_SimpleSort ' +
4076 'GUICtrlListView_SortItems GUICtrlListView_SubItemHitTest ' +
4077 'GUICtrlListView_UnRegisterSortCallBack GUICtrlMenu_AddMenuItem ' +
4078 'GUICtrlMenu_AppendMenu GUICtrlMenu_CalculatePopupWindowPosition ' +
4079 'GUICtrlMenu_CheckMenuItem GUICtrlMenu_CheckRadioItem ' +
4080 'GUICtrlMenu_CreateMenu GUICtrlMenu_CreatePopup ' +
4081 'GUICtrlMenu_DeleteMenu GUICtrlMenu_DestroyMenu ' +
4082 'GUICtrlMenu_DrawMenuBar GUICtrlMenu_EnableMenuItem ' +
4083 'GUICtrlMenu_FindItem GUICtrlMenu_FindParent ' +
4084 'GUICtrlMenu_GetItemBmp GUICtrlMenu_GetItemBmpChecked ' +
4085 'GUICtrlMenu_GetItemBmpUnchecked GUICtrlMenu_GetItemChecked ' +
4086 'GUICtrlMenu_GetItemCount GUICtrlMenu_GetItemData ' +
4087 'GUICtrlMenu_GetItemDefault GUICtrlMenu_GetItemDisabled ' +
4088 'GUICtrlMenu_GetItemEnabled GUICtrlMenu_GetItemGrayed ' +
4089 'GUICtrlMenu_GetItemHighlighted GUICtrlMenu_GetItemID ' +
4090 'GUICtrlMenu_GetItemInfo GUICtrlMenu_GetItemRect ' +
4091 'GUICtrlMenu_GetItemRectEx GUICtrlMenu_GetItemState ' +
4092 'GUICtrlMenu_GetItemStateEx GUICtrlMenu_GetItemSubMenu ' +
4093 'GUICtrlMenu_GetItemText GUICtrlMenu_GetItemType ' +
4094 'GUICtrlMenu_GetMenu GUICtrlMenu_GetMenuBackground ' +
4095 'GUICtrlMenu_GetMenuBarInfo GUICtrlMenu_GetMenuContextHelpID ' +
4096 'GUICtrlMenu_GetMenuData GUICtrlMenu_GetMenuDefaultItem ' +
4097 'GUICtrlMenu_GetMenuHeight GUICtrlMenu_GetMenuInfo ' +
4098 'GUICtrlMenu_GetMenuStyle GUICtrlMenu_GetSystemMenu ' +
4099 'GUICtrlMenu_InsertMenuItem GUICtrlMenu_InsertMenuItemEx ' +
4100 'GUICtrlMenu_IsMenu GUICtrlMenu_LoadMenu ' +
4101 'GUICtrlMenu_MapAccelerator GUICtrlMenu_MenuItemFromPoint ' +
4102 'GUICtrlMenu_RemoveMenu GUICtrlMenu_SetItemBitmaps ' +
4103 'GUICtrlMenu_SetItemBmp GUICtrlMenu_SetItemBmpChecked ' +
4104 'GUICtrlMenu_SetItemBmpUnchecked GUICtrlMenu_SetItemChecked ' +
4105 'GUICtrlMenu_SetItemData GUICtrlMenu_SetItemDefault ' +
4106 'GUICtrlMenu_SetItemDisabled GUICtrlMenu_SetItemEnabled ' +
4107 'GUICtrlMenu_SetItemGrayed GUICtrlMenu_SetItemHighlighted ' +
4108 'GUICtrlMenu_SetItemID GUICtrlMenu_SetItemInfo ' +
4109 'GUICtrlMenu_SetItemState GUICtrlMenu_SetItemSubMenu ' +
4110 'GUICtrlMenu_SetItemText GUICtrlMenu_SetItemType ' +
4111 'GUICtrlMenu_SetMenu GUICtrlMenu_SetMenuBackground ' +
4112 'GUICtrlMenu_SetMenuContextHelpID GUICtrlMenu_SetMenuData ' +
4113 'GUICtrlMenu_SetMenuDefaultItem GUICtrlMenu_SetMenuHeight ' +
4114 'GUICtrlMenu_SetMenuInfo GUICtrlMenu_SetMenuStyle ' +
4115 'GUICtrlMenu_TrackPopupMenu GUICtrlMonthCal_Create ' +
4116 'GUICtrlMonthCal_Destroy GUICtrlMonthCal_GetCalendarBorder ' +
4117 'GUICtrlMonthCal_GetCalendarCount GUICtrlMonthCal_GetColor ' +
4118 'GUICtrlMonthCal_GetColorArray GUICtrlMonthCal_GetCurSel ' +
4119 'GUICtrlMonthCal_GetCurSelStr GUICtrlMonthCal_GetFirstDOW ' +
4120 'GUICtrlMonthCal_GetFirstDOWStr GUICtrlMonthCal_GetMaxSelCount ' +
4121 'GUICtrlMonthCal_GetMaxTodayWidth ' +
4122 'GUICtrlMonthCal_GetMinReqHeight GUICtrlMonthCal_GetMinReqRect ' +
4123 'GUICtrlMonthCal_GetMinReqRectArray ' +
4124 'GUICtrlMonthCal_GetMinReqWidth GUICtrlMonthCal_GetMonthDelta ' +
4125 'GUICtrlMonthCal_GetMonthRange GUICtrlMonthCal_GetMonthRangeMax ' +
4126 'GUICtrlMonthCal_GetMonthRangeMaxStr ' +
4127 'GUICtrlMonthCal_GetMonthRangeMin ' +
4128 'GUICtrlMonthCal_GetMonthRangeMinStr ' +
4129 'GUICtrlMonthCal_GetMonthRangeSpan GUICtrlMonthCal_GetRange ' +
4130 'GUICtrlMonthCal_GetRangeMax GUICtrlMonthCal_GetRangeMaxStr ' +
4131 'GUICtrlMonthCal_GetRangeMin GUICtrlMonthCal_GetRangeMinStr ' +
4132 'GUICtrlMonthCal_GetSelRange GUICtrlMonthCal_GetSelRangeMax ' +
4133 'GUICtrlMonthCal_GetSelRangeMaxStr ' +
4134 'GUICtrlMonthCal_GetSelRangeMin ' +
4135 'GUICtrlMonthCal_GetSelRangeMinStr GUICtrlMonthCal_GetToday ' +
4136 'GUICtrlMonthCal_GetTodayStr GUICtrlMonthCal_GetUnicodeFormat ' +
4137 'GUICtrlMonthCal_HitTest GUICtrlMonthCal_SetCalendarBorder ' +
4138 'GUICtrlMonthCal_SetColor GUICtrlMonthCal_SetCurSel ' +
4139 'GUICtrlMonthCal_SetDayState GUICtrlMonthCal_SetFirstDOW ' +
4140 'GUICtrlMonthCal_SetMaxSelCount GUICtrlMonthCal_SetMonthDelta ' +
4141 'GUICtrlMonthCal_SetRange GUICtrlMonthCal_SetSelRange ' +
4142 'GUICtrlMonthCal_SetToday GUICtrlMonthCal_SetUnicodeFormat ' +
4143 'GUICtrlRebar_AddBand GUICtrlRebar_AddToolBarBand ' +
4144 'GUICtrlRebar_BeginDrag GUICtrlRebar_Create ' +
4145 'GUICtrlRebar_DeleteBand GUICtrlRebar_Destroy ' +
4146 'GUICtrlRebar_DragMove GUICtrlRebar_EndDrag ' +
4147 'GUICtrlRebar_GetBandBackColor GUICtrlRebar_GetBandBorders ' +
4148 'GUICtrlRebar_GetBandBordersEx GUICtrlRebar_GetBandChildHandle ' +
4149 'GUICtrlRebar_GetBandChildSize GUICtrlRebar_GetBandCount ' +
4150 'GUICtrlRebar_GetBandForeColor GUICtrlRebar_GetBandHeaderSize ' +
4151 'GUICtrlRebar_GetBandID GUICtrlRebar_GetBandIdealSize ' +
4152 'GUICtrlRebar_GetBandLength GUICtrlRebar_GetBandLParam ' +
4153 'GUICtrlRebar_GetBandMargins GUICtrlRebar_GetBandMarginsEx ' +
4154 'GUICtrlRebar_GetBandRect GUICtrlRebar_GetBandRectEx ' +
4155 'GUICtrlRebar_GetBandStyle GUICtrlRebar_GetBandStyleBreak ' +
4156 'GUICtrlRebar_GetBandStyleChildEdge ' +
4157 'GUICtrlRebar_GetBandStyleFixedBMP ' +
4158 'GUICtrlRebar_GetBandStyleFixedSize ' +
4159 'GUICtrlRebar_GetBandStyleGripperAlways ' +
4160 'GUICtrlRebar_GetBandStyleHidden ' +
4161 'GUICtrlRebar_GetBandStyleHideTitle ' +
4162 'GUICtrlRebar_GetBandStyleNoGripper ' +
4163 'GUICtrlRebar_GetBandStyleTopAlign ' +
4164 'GUICtrlRebar_GetBandStyleUseChevron ' +
4165 'GUICtrlRebar_GetBandStyleVariableHeight ' +
4166 'GUICtrlRebar_GetBandText GUICtrlRebar_GetBarHeight ' +
4167 'GUICtrlRebar_GetBarInfo GUICtrlRebar_GetBKColor ' +
4168 'GUICtrlRebar_GetColorScheme GUICtrlRebar_GetRowCount ' +
4169 'GUICtrlRebar_GetRowHeight GUICtrlRebar_GetTextColor ' +
4170 'GUICtrlRebar_GetToolTips GUICtrlRebar_GetUnicodeFormat ' +
4171 'GUICtrlRebar_HitTest GUICtrlRebar_IDToIndex ' +
4172 'GUICtrlRebar_MaximizeBand GUICtrlRebar_MinimizeBand ' +
4173 'GUICtrlRebar_MoveBand GUICtrlRebar_SetBandBackColor ' +
4174 'GUICtrlRebar_SetBandForeColor GUICtrlRebar_SetBandHeaderSize ' +
4175 'GUICtrlRebar_SetBandID GUICtrlRebar_SetBandIdealSize ' +
4176 'GUICtrlRebar_SetBandLength GUICtrlRebar_SetBandLParam ' +
4177 'GUICtrlRebar_SetBandStyle GUICtrlRebar_SetBandStyleBreak ' +
4178 'GUICtrlRebar_SetBandStyleChildEdge ' +
4179 'GUICtrlRebar_SetBandStyleFixedBMP ' +
4180 'GUICtrlRebar_SetBandStyleFixedSize ' +
4181 'GUICtrlRebar_SetBandStyleGripperAlways ' +
4182 'GUICtrlRebar_SetBandStyleHidden ' +
4183 'GUICtrlRebar_SetBandStyleHideTitle ' +
4184 'GUICtrlRebar_SetBandStyleNoGripper ' +
4185 'GUICtrlRebar_SetBandStyleTopAlign ' +
4186 'GUICtrlRebar_SetBandStyleUseChevron ' +
4187 'GUICtrlRebar_SetBandStyleVariableHeight ' +
4188 'GUICtrlRebar_SetBandText GUICtrlRebar_SetBarInfo ' +
4189 'GUICtrlRebar_SetBKColor GUICtrlRebar_SetColorScheme ' +
4190 'GUICtrlRebar_SetTextColor GUICtrlRebar_SetToolTips ' +
4191 'GUICtrlRebar_SetUnicodeFormat GUICtrlRebar_ShowBand ' +
4192 'GUICtrlRichEdit_AppendText GUICtrlRichEdit_AutoDetectURL ' +
4193 'GUICtrlRichEdit_CanPaste GUICtrlRichEdit_CanPasteSpecial ' +
4194 'GUICtrlRichEdit_CanRedo GUICtrlRichEdit_CanUndo ' +
4195 'GUICtrlRichEdit_ChangeFontSize GUICtrlRichEdit_Copy ' +
4196 'GUICtrlRichEdit_Create GUICtrlRichEdit_Cut ' +
4197 'GUICtrlRichEdit_Deselect GUICtrlRichEdit_Destroy ' +
4198 'GUICtrlRichEdit_EmptyUndoBuffer GUICtrlRichEdit_FindText ' +
4199 'GUICtrlRichEdit_FindTextInRange GUICtrlRichEdit_GetBkColor ' +
4200 'GUICtrlRichEdit_GetCharAttributes ' +
4201 'GUICtrlRichEdit_GetCharBkColor GUICtrlRichEdit_GetCharColor ' +
4202 'GUICtrlRichEdit_GetCharPosFromXY ' +
4203 'GUICtrlRichEdit_GetCharPosOfNextWord ' +
4204 'GUICtrlRichEdit_GetCharPosOfPreviousWord ' +
4205 'GUICtrlRichEdit_GetCharWordBreakInfo ' +
4206 'GUICtrlRichEdit_GetFirstCharPosOnLine GUICtrlRichEdit_GetFont ' +
4207 'GUICtrlRichEdit_GetLineCount GUICtrlRichEdit_GetLineLength ' +
4208 'GUICtrlRichEdit_GetLineNumberFromCharPos ' +
4209 'GUICtrlRichEdit_GetNextRedo GUICtrlRichEdit_GetNextUndo ' +
4210 'GUICtrlRichEdit_GetNumberOfFirstVisibleLine ' +
4211 'GUICtrlRichEdit_GetParaAlignment ' +
4212 'GUICtrlRichEdit_GetParaAttributes GUICtrlRichEdit_GetParaBorder ' +
4213 'GUICtrlRichEdit_GetParaIndents GUICtrlRichEdit_GetParaNumbering ' +
4214 'GUICtrlRichEdit_GetParaShading GUICtrlRichEdit_GetParaSpacing ' +
4215 'GUICtrlRichEdit_GetParaTabStops GUICtrlRichEdit_GetPasswordChar ' +
4216 'GUICtrlRichEdit_GetRECT GUICtrlRichEdit_GetScrollPos ' +
4217 'GUICtrlRichEdit_GetSel GUICtrlRichEdit_GetSelAA ' +
4218 'GUICtrlRichEdit_GetSelText GUICtrlRichEdit_GetSpaceUnit ' +
4219 'GUICtrlRichEdit_GetText GUICtrlRichEdit_GetTextInLine ' +
4220 'GUICtrlRichEdit_GetTextInRange GUICtrlRichEdit_GetTextLength ' +
4221 'GUICtrlRichEdit_GetVersion GUICtrlRichEdit_GetXYFromCharPos ' +
4222 'GUICtrlRichEdit_GetZoom GUICtrlRichEdit_GotoCharPos ' +
4223 'GUICtrlRichEdit_HideSelection GUICtrlRichEdit_InsertText ' +
4224 'GUICtrlRichEdit_IsModified GUICtrlRichEdit_IsTextSelected ' +
4225 'GUICtrlRichEdit_Paste GUICtrlRichEdit_PasteSpecial ' +
4226 'GUICtrlRichEdit_PauseRedraw GUICtrlRichEdit_Redo ' +
4227 'GUICtrlRichEdit_ReplaceText GUICtrlRichEdit_ResumeRedraw ' +
4228 'GUICtrlRichEdit_ScrollLineOrPage GUICtrlRichEdit_ScrollLines ' +
4229 'GUICtrlRichEdit_ScrollToCaret GUICtrlRichEdit_SetBkColor ' +
4230 'GUICtrlRichEdit_SetCharAttributes ' +
4231 'GUICtrlRichEdit_SetCharBkColor GUICtrlRichEdit_SetCharColor ' +
4232 'GUICtrlRichEdit_SetEventMask GUICtrlRichEdit_SetFont ' +
4233 'GUICtrlRichEdit_SetLimitOnText GUICtrlRichEdit_SetModified ' +
4234 'GUICtrlRichEdit_SetParaAlignment ' +
4235 'GUICtrlRichEdit_SetParaAttributes GUICtrlRichEdit_SetParaBorder ' +
4236 'GUICtrlRichEdit_SetParaIndents GUICtrlRichEdit_SetParaNumbering ' +
4237 'GUICtrlRichEdit_SetParaShading GUICtrlRichEdit_SetParaSpacing ' +
4238 'GUICtrlRichEdit_SetParaTabStops GUICtrlRichEdit_SetPasswordChar ' +
4239 'GUICtrlRichEdit_SetReadOnly GUICtrlRichEdit_SetRECT ' +
4240 'GUICtrlRichEdit_SetScrollPos GUICtrlRichEdit_SetSel ' +
4241 'GUICtrlRichEdit_SetSpaceUnit GUICtrlRichEdit_SetTabStops ' +
4242 'GUICtrlRichEdit_SetText GUICtrlRichEdit_SetUndoLimit ' +
4243 'GUICtrlRichEdit_SetZoom GUICtrlRichEdit_StreamFromFile ' +
4244 'GUICtrlRichEdit_StreamFromVar GUICtrlRichEdit_StreamToFile ' +
4245 'GUICtrlRichEdit_StreamToVar GUICtrlRichEdit_Undo ' +
4246 'GUICtrlSlider_ClearSel GUICtrlSlider_ClearTics ' +
4247 'GUICtrlSlider_Create GUICtrlSlider_Destroy ' +
4248 'GUICtrlSlider_GetBuddy GUICtrlSlider_GetChannelRect ' +
4249 'GUICtrlSlider_GetChannelRectEx GUICtrlSlider_GetLineSize ' +
4250 'GUICtrlSlider_GetLogicalTics GUICtrlSlider_GetNumTics ' +
4251 'GUICtrlSlider_GetPageSize GUICtrlSlider_GetPos ' +
4252 'GUICtrlSlider_GetRange GUICtrlSlider_GetRangeMax ' +
4253 'GUICtrlSlider_GetRangeMin GUICtrlSlider_GetSel ' +
4254 'GUICtrlSlider_GetSelEnd GUICtrlSlider_GetSelStart ' +
4255 'GUICtrlSlider_GetThumbLength GUICtrlSlider_GetThumbRect ' +
4256 'GUICtrlSlider_GetThumbRectEx GUICtrlSlider_GetTic ' +
4257 'GUICtrlSlider_GetTicPos GUICtrlSlider_GetToolTips ' +
4258 'GUICtrlSlider_GetUnicodeFormat GUICtrlSlider_SetBuddy ' +
4259 'GUICtrlSlider_SetLineSize GUICtrlSlider_SetPageSize ' +
4260 'GUICtrlSlider_SetPos GUICtrlSlider_SetRange ' +
4261 'GUICtrlSlider_SetRangeMax GUICtrlSlider_SetRangeMin ' +
4262 'GUICtrlSlider_SetSel GUICtrlSlider_SetSelEnd ' +
4263 'GUICtrlSlider_SetSelStart GUICtrlSlider_SetThumbLength ' +
4264 'GUICtrlSlider_SetTic GUICtrlSlider_SetTicFreq ' +
4265 'GUICtrlSlider_SetTipSide GUICtrlSlider_SetToolTips ' +
4266 'GUICtrlSlider_SetUnicodeFormat GUICtrlStatusBar_Create ' +
4267 'GUICtrlStatusBar_Destroy GUICtrlStatusBar_EmbedControl ' +
4268 'GUICtrlStatusBar_GetBorders GUICtrlStatusBar_GetBordersHorz ' +
4269 'GUICtrlStatusBar_GetBordersRect GUICtrlStatusBar_GetBordersVert ' +
4270 'GUICtrlStatusBar_GetCount GUICtrlStatusBar_GetHeight ' +
4271 'GUICtrlStatusBar_GetIcon GUICtrlStatusBar_GetParts ' +
4272 'GUICtrlStatusBar_GetRect GUICtrlStatusBar_GetRectEx ' +
4273 'GUICtrlStatusBar_GetText GUICtrlStatusBar_GetTextFlags ' +
4274 'GUICtrlStatusBar_GetTextLength GUICtrlStatusBar_GetTextLengthEx ' +
4275 'GUICtrlStatusBar_GetTipText GUICtrlStatusBar_GetUnicodeFormat ' +
4276 'GUICtrlStatusBar_GetWidth GUICtrlStatusBar_IsSimple ' +
4277 'GUICtrlStatusBar_Resize GUICtrlStatusBar_SetBkColor ' +
4278 'GUICtrlStatusBar_SetIcon GUICtrlStatusBar_SetMinHeight ' +
4279 'GUICtrlStatusBar_SetParts GUICtrlStatusBar_SetSimple ' +
4280 'GUICtrlStatusBar_SetText GUICtrlStatusBar_SetTipText ' +
4281 'GUICtrlStatusBar_SetUnicodeFormat GUICtrlStatusBar_ShowHide ' +
4282 'GUICtrlTab_ActivateTab GUICtrlTab_ClickTab GUICtrlTab_Create ' +
4283 'GUICtrlTab_DeleteAllItems GUICtrlTab_DeleteItem ' +
4284 'GUICtrlTab_DeselectAll GUICtrlTab_Destroy GUICtrlTab_FindTab ' +
4285 'GUICtrlTab_GetCurFocus GUICtrlTab_GetCurSel ' +
4286 'GUICtrlTab_GetDisplayRect GUICtrlTab_GetDisplayRectEx ' +
4287 'GUICtrlTab_GetExtendedStyle GUICtrlTab_GetImageList ' +
4288 'GUICtrlTab_GetItem GUICtrlTab_GetItemCount ' +
4289 'GUICtrlTab_GetItemImage GUICtrlTab_GetItemParam ' +
4290 'GUICtrlTab_GetItemRect GUICtrlTab_GetItemRectEx ' +
4291 'GUICtrlTab_GetItemState GUICtrlTab_GetItemText ' +
4292 'GUICtrlTab_GetRowCount GUICtrlTab_GetToolTips ' +
4293 'GUICtrlTab_GetUnicodeFormat GUICtrlTab_HighlightItem ' +
4294 'GUICtrlTab_HitTest GUICtrlTab_InsertItem ' +
4295 'GUICtrlTab_RemoveImage GUICtrlTab_SetCurFocus ' +
4296 'GUICtrlTab_SetCurSel GUICtrlTab_SetExtendedStyle ' +
4297 'GUICtrlTab_SetImageList GUICtrlTab_SetItem ' +
4298 'GUICtrlTab_SetItemImage GUICtrlTab_SetItemParam ' +
4299 'GUICtrlTab_SetItemSize GUICtrlTab_SetItemState ' +
4300 'GUICtrlTab_SetItemText GUICtrlTab_SetMinTabWidth ' +
4301 'GUICtrlTab_SetPadding GUICtrlTab_SetToolTips ' +
4302 'GUICtrlTab_SetUnicodeFormat GUICtrlToolbar_AddBitmap ' +
4303 'GUICtrlToolbar_AddButton GUICtrlToolbar_AddButtonSep ' +
4304 'GUICtrlToolbar_AddString GUICtrlToolbar_ButtonCount ' +
4305 'GUICtrlToolbar_CheckButton GUICtrlToolbar_ClickAccel ' +
4306 'GUICtrlToolbar_ClickButton GUICtrlToolbar_ClickIndex ' +
4307 'GUICtrlToolbar_CommandToIndex GUICtrlToolbar_Create ' +
4308 'GUICtrlToolbar_Customize GUICtrlToolbar_DeleteButton ' +
4309 'GUICtrlToolbar_Destroy GUICtrlToolbar_EnableButton ' +
4310 'GUICtrlToolbar_FindToolbar GUICtrlToolbar_GetAnchorHighlight ' +
4311 'GUICtrlToolbar_GetBitmapFlags GUICtrlToolbar_GetButtonBitmap ' +
4312 'GUICtrlToolbar_GetButtonInfo GUICtrlToolbar_GetButtonInfoEx ' +
4313 'GUICtrlToolbar_GetButtonParam GUICtrlToolbar_GetButtonRect ' +
4314 'GUICtrlToolbar_GetButtonRectEx GUICtrlToolbar_GetButtonSize ' +
4315 'GUICtrlToolbar_GetButtonState GUICtrlToolbar_GetButtonStyle ' +
4316 'GUICtrlToolbar_GetButtonText GUICtrlToolbar_GetColorScheme ' +
4317 'GUICtrlToolbar_GetDisabledImageList ' +
4318 'GUICtrlToolbar_GetExtendedStyle GUICtrlToolbar_GetHotImageList ' +
4319 'GUICtrlToolbar_GetHotItem GUICtrlToolbar_GetImageList ' +
4320 'GUICtrlToolbar_GetInsertMark GUICtrlToolbar_GetInsertMarkColor ' +
4321 'GUICtrlToolbar_GetMaxSize GUICtrlToolbar_GetMetrics ' +
4322 'GUICtrlToolbar_GetPadding GUICtrlToolbar_GetRows ' +
4323 'GUICtrlToolbar_GetString GUICtrlToolbar_GetStyle ' +
4324 'GUICtrlToolbar_GetStyleAltDrag ' +
4325 'GUICtrlToolbar_GetStyleCustomErase GUICtrlToolbar_GetStyleFlat ' +
4326 'GUICtrlToolbar_GetStyleList GUICtrlToolbar_GetStyleRegisterDrop ' +
4327 'GUICtrlToolbar_GetStyleToolTips ' +
4328 'GUICtrlToolbar_GetStyleTransparent ' +
4329 'GUICtrlToolbar_GetStyleWrapable GUICtrlToolbar_GetTextRows ' +
4330 'GUICtrlToolbar_GetToolTips GUICtrlToolbar_GetUnicodeFormat ' +
4331 'GUICtrlToolbar_HideButton GUICtrlToolbar_HighlightButton ' +
4332 'GUICtrlToolbar_HitTest GUICtrlToolbar_IndexToCommand ' +
4333 'GUICtrlToolbar_InsertButton GUICtrlToolbar_InsertMarkHitTest ' +
4334 'GUICtrlToolbar_IsButtonChecked GUICtrlToolbar_IsButtonEnabled ' +
4335 'GUICtrlToolbar_IsButtonHidden ' +
4336 'GUICtrlToolbar_IsButtonHighlighted ' +
4337 'GUICtrlToolbar_IsButtonIndeterminate ' +
4338 'GUICtrlToolbar_IsButtonPressed GUICtrlToolbar_LoadBitmap ' +
4339 'GUICtrlToolbar_LoadImages GUICtrlToolbar_MapAccelerator ' +
4340 'GUICtrlToolbar_MoveButton GUICtrlToolbar_PressButton ' +
4341 'GUICtrlToolbar_SetAnchorHighlight GUICtrlToolbar_SetBitmapSize ' +
4342 'GUICtrlToolbar_SetButtonBitMap GUICtrlToolbar_SetButtonInfo ' +
4343 'GUICtrlToolbar_SetButtonInfoEx GUICtrlToolbar_SetButtonParam ' +
4344 'GUICtrlToolbar_SetButtonSize GUICtrlToolbar_SetButtonState ' +
4345 'GUICtrlToolbar_SetButtonStyle GUICtrlToolbar_SetButtonText ' +
4346 'GUICtrlToolbar_SetButtonWidth GUICtrlToolbar_SetCmdID ' +
4347 'GUICtrlToolbar_SetColorScheme ' +
4348 'GUICtrlToolbar_SetDisabledImageList ' +
4349 'GUICtrlToolbar_SetDrawTextFlags GUICtrlToolbar_SetExtendedStyle ' +
4350 'GUICtrlToolbar_SetHotImageList GUICtrlToolbar_SetHotItem ' +
4351 'GUICtrlToolbar_SetImageList GUICtrlToolbar_SetIndent ' +
4352 'GUICtrlToolbar_SetIndeterminate GUICtrlToolbar_SetInsertMark ' +
4353 'GUICtrlToolbar_SetInsertMarkColor GUICtrlToolbar_SetMaxTextRows ' +
4354 'GUICtrlToolbar_SetMetrics GUICtrlToolbar_SetPadding ' +
4355 'GUICtrlToolbar_SetParent GUICtrlToolbar_SetRows ' +
4356 'GUICtrlToolbar_SetStyle GUICtrlToolbar_SetStyleAltDrag ' +
4357 'GUICtrlToolbar_SetStyleCustomErase GUICtrlToolbar_SetStyleFlat ' +
4358 'GUICtrlToolbar_SetStyleList GUICtrlToolbar_SetStyleRegisterDrop ' +
4359 'GUICtrlToolbar_SetStyleToolTips ' +
4360 'GUICtrlToolbar_SetStyleTransparent ' +
4361 'GUICtrlToolbar_SetStyleWrapable GUICtrlToolbar_SetToolTips ' +
4362 'GUICtrlToolbar_SetUnicodeFormat GUICtrlToolbar_SetWindowTheme ' +
4363 'GUICtrlTreeView_Add GUICtrlTreeView_AddChild ' +
4364 'GUICtrlTreeView_AddChildFirst GUICtrlTreeView_AddFirst ' +
4365 'GUICtrlTreeView_BeginUpdate GUICtrlTreeView_ClickItem ' +
4366 'GUICtrlTreeView_Create GUICtrlTreeView_CreateDragImage ' +
4367 'GUICtrlTreeView_CreateSolidBitMap GUICtrlTreeView_Delete ' +
4368 'GUICtrlTreeView_DeleteAll GUICtrlTreeView_DeleteChildren ' +
4369 'GUICtrlTreeView_Destroy GUICtrlTreeView_DisplayRect ' +
4370 'GUICtrlTreeView_DisplayRectEx GUICtrlTreeView_EditText ' +
4371 'GUICtrlTreeView_EndEdit GUICtrlTreeView_EndUpdate ' +
4372 'GUICtrlTreeView_EnsureVisible GUICtrlTreeView_Expand ' +
4373 'GUICtrlTreeView_ExpandedOnce GUICtrlTreeView_FindItem ' +
4374 'GUICtrlTreeView_FindItemEx GUICtrlTreeView_GetBkColor ' +
4375 'GUICtrlTreeView_GetBold GUICtrlTreeView_GetChecked ' +
4376 'GUICtrlTreeView_GetChildCount GUICtrlTreeView_GetChildren ' +
4377 'GUICtrlTreeView_GetCount GUICtrlTreeView_GetCut ' +
4378 'GUICtrlTreeView_GetDropTarget GUICtrlTreeView_GetEditControl ' +
4379 'GUICtrlTreeView_GetExpanded GUICtrlTreeView_GetFirstChild ' +
4380 'GUICtrlTreeView_GetFirstItem GUICtrlTreeView_GetFirstVisible ' +
4381 'GUICtrlTreeView_GetFocused GUICtrlTreeView_GetHeight ' +
4382 'GUICtrlTreeView_GetImageIndex ' +
4383 'GUICtrlTreeView_GetImageListIconHandle ' +
4384 'GUICtrlTreeView_GetIndent GUICtrlTreeView_GetInsertMarkColor ' +
4385 'GUICtrlTreeView_GetISearchString GUICtrlTreeView_GetItemByIndex ' +
4386 'GUICtrlTreeView_GetItemHandle GUICtrlTreeView_GetItemParam ' +
4387 'GUICtrlTreeView_GetLastChild GUICtrlTreeView_GetLineColor ' +
4388 'GUICtrlTreeView_GetNext GUICtrlTreeView_GetNextChild ' +
4389 'GUICtrlTreeView_GetNextSibling GUICtrlTreeView_GetNextVisible ' +
4390 'GUICtrlTreeView_GetNormalImageList ' +
4391 'GUICtrlTreeView_GetParentHandle GUICtrlTreeView_GetParentParam ' +
4392 'GUICtrlTreeView_GetPrev GUICtrlTreeView_GetPrevChild ' +
4393 'GUICtrlTreeView_GetPrevSibling GUICtrlTreeView_GetPrevVisible ' +
4394 'GUICtrlTreeView_GetScrollTime GUICtrlTreeView_GetSelected ' +
4395 'GUICtrlTreeView_GetSelectedImageIndex ' +
4396 'GUICtrlTreeView_GetSelection GUICtrlTreeView_GetSiblingCount ' +
4397 'GUICtrlTreeView_GetState GUICtrlTreeView_GetStateImageIndex ' +
4398 'GUICtrlTreeView_GetStateImageList GUICtrlTreeView_GetText ' +
4399 'GUICtrlTreeView_GetTextColor GUICtrlTreeView_GetToolTips ' +
4400 'GUICtrlTreeView_GetTree GUICtrlTreeView_GetUnicodeFormat ' +
4401 'GUICtrlTreeView_GetVisible GUICtrlTreeView_GetVisibleCount ' +
4402 'GUICtrlTreeView_HitTest GUICtrlTreeView_HitTestEx ' +
4403 'GUICtrlTreeView_HitTestItem GUICtrlTreeView_Index ' +
4404 'GUICtrlTreeView_InsertItem GUICtrlTreeView_IsFirstItem ' +
4405 'GUICtrlTreeView_IsParent GUICtrlTreeView_Level ' +
4406 'GUICtrlTreeView_SelectItem GUICtrlTreeView_SelectItemByIndex ' +
4407 'GUICtrlTreeView_SetBkColor GUICtrlTreeView_SetBold ' +
4408 'GUICtrlTreeView_SetChecked GUICtrlTreeView_SetCheckedByIndex ' +
4409 'GUICtrlTreeView_SetChildren GUICtrlTreeView_SetCut ' +
4410 'GUICtrlTreeView_SetDropTarget GUICtrlTreeView_SetFocused ' +
4411 'GUICtrlTreeView_SetHeight GUICtrlTreeView_SetIcon ' +
4412 'GUICtrlTreeView_SetImageIndex GUICtrlTreeView_SetIndent ' +
4413 'GUICtrlTreeView_SetInsertMark ' +
4414 'GUICtrlTreeView_SetInsertMarkColor ' +
4415 'GUICtrlTreeView_SetItemHeight GUICtrlTreeView_SetItemParam ' +
4416 'GUICtrlTreeView_SetLineColor GUICtrlTreeView_SetNormalImageList ' +
4417 'GUICtrlTreeView_SetScrollTime GUICtrlTreeView_SetSelected ' +
4418 'GUICtrlTreeView_SetSelectedImageIndex GUICtrlTreeView_SetState ' +
4419 'GUICtrlTreeView_SetStateImageIndex ' +
4420 'GUICtrlTreeView_SetStateImageList GUICtrlTreeView_SetText ' +
4421 'GUICtrlTreeView_SetTextColor GUICtrlTreeView_SetToolTips ' +
4422 'GUICtrlTreeView_SetUnicodeFormat GUICtrlTreeView_Sort ' +
4423 'GUIImageList_Add GUIImageList_AddBitmap GUIImageList_AddIcon ' +
4424 'GUIImageList_AddMasked GUIImageList_BeginDrag ' +
4425 'GUIImageList_Copy GUIImageList_Create GUIImageList_Destroy ' +
4426 'GUIImageList_DestroyIcon GUIImageList_DragEnter ' +
4427 'GUIImageList_DragLeave GUIImageList_DragMove ' +
4428 'GUIImageList_Draw GUIImageList_DrawEx GUIImageList_Duplicate ' +
4429 'GUIImageList_EndDrag GUIImageList_GetBkColor ' +
4430 'GUIImageList_GetIcon GUIImageList_GetIconHeight ' +
4431 'GUIImageList_GetIconSize GUIImageList_GetIconSizeEx ' +
4432 'GUIImageList_GetIconWidth GUIImageList_GetImageCount ' +
4433 'GUIImageList_GetImageInfoEx GUIImageList_Remove ' +
4434 'GUIImageList_ReplaceIcon GUIImageList_SetBkColor ' +
4435 'GUIImageList_SetIconSize GUIImageList_SetImageCount ' +
4436 'GUIImageList_Swap GUIScrollBars_EnableScrollBar ' +
4437 'GUIScrollBars_GetScrollBarInfoEx GUIScrollBars_GetScrollBarRect ' +
4438 'GUIScrollBars_GetScrollBarRGState ' +
4439 'GUIScrollBars_GetScrollBarXYLineButton ' +
4440 'GUIScrollBars_GetScrollBarXYThumbBottom ' +
4441 'GUIScrollBars_GetScrollBarXYThumbTop ' +
4442 'GUIScrollBars_GetScrollInfo GUIScrollBars_GetScrollInfoEx ' +
4443 'GUIScrollBars_GetScrollInfoMax GUIScrollBars_GetScrollInfoMin ' +
4444 'GUIScrollBars_GetScrollInfoPage GUIScrollBars_GetScrollInfoPos ' +
4445 'GUIScrollBars_GetScrollInfoTrackPos GUIScrollBars_GetScrollPos ' +
4446 'GUIScrollBars_GetScrollRange GUIScrollBars_Init ' +
4447 'GUIScrollBars_ScrollWindow GUIScrollBars_SetScrollInfo ' +
4448 'GUIScrollBars_SetScrollInfoMax GUIScrollBars_SetScrollInfoMin ' +
4449 'GUIScrollBars_SetScrollInfoPage GUIScrollBars_SetScrollInfoPos ' +
4450 'GUIScrollBars_SetScrollRange GUIScrollBars_ShowScrollBar ' +
4451 'GUIToolTip_Activate GUIToolTip_AddTool GUIToolTip_AdjustRect ' +
4452 'GUIToolTip_BitsToTTF GUIToolTip_Create GUIToolTip_Deactivate ' +
4453 'GUIToolTip_DelTool GUIToolTip_Destroy GUIToolTip_EnumTools ' +
4454 'GUIToolTip_GetBubbleHeight GUIToolTip_GetBubbleSize ' +
4455 'GUIToolTip_GetBubbleWidth GUIToolTip_GetCurrentTool ' +
4456 'GUIToolTip_GetDelayTime GUIToolTip_GetMargin ' +
4457 'GUIToolTip_GetMarginEx GUIToolTip_GetMaxTipWidth ' +
4458 'GUIToolTip_GetText GUIToolTip_GetTipBkColor ' +
4459 'GUIToolTip_GetTipTextColor GUIToolTip_GetTitleBitMap ' +
4460 'GUIToolTip_GetTitleText GUIToolTip_GetToolCount ' +
4461 'GUIToolTip_GetToolInfo GUIToolTip_HitTest ' +
4462 'GUIToolTip_NewToolRect GUIToolTip_Pop GUIToolTip_PopUp ' +
4463 'GUIToolTip_SetDelayTime GUIToolTip_SetMargin ' +
4464 'GUIToolTip_SetMaxTipWidth GUIToolTip_SetTipBkColor ' +
4465 'GUIToolTip_SetTipTextColor GUIToolTip_SetTitle ' +
4466 'GUIToolTip_SetToolInfo GUIToolTip_SetWindowTheme ' +
4467 'GUIToolTip_ToolExists GUIToolTip_ToolToArray ' +
4468 'GUIToolTip_TrackActivate GUIToolTip_TrackPosition ' +
4469 'GUIToolTip_Update GUIToolTip_UpdateTipText HexToString ' +
4470 'IEAction IEAttach IEBodyReadHTML IEBodyReadText ' +
4471 'IEBodyWriteHTML IECreate IECreateEmbedded IEDocGetObj ' +
4472 'IEDocInsertHTML IEDocInsertText IEDocReadHTML ' +
4473 'IEDocWriteHTML IEErrorNotify IEFormElementCheckBoxSelect ' +
4474 'IEFormElementGetCollection IEFormElementGetObjByName ' +
4475 'IEFormElementGetValue IEFormElementOptionSelect ' +
4476 'IEFormElementRadioSelect IEFormElementSetValue ' +
4477 'IEFormGetCollection IEFormGetObjByName IEFormImageClick ' +
4478 'IEFormReset IEFormSubmit IEFrameGetCollection ' +
4479 'IEFrameGetObjByName IEGetObjById IEGetObjByName ' +
4480 'IEHeadInsertEventScript IEImgClick IEImgGetCollection ' +
4481 'IEIsFrameSet IELinkClickByIndex IELinkClickByText ' +
4482 'IELinkGetCollection IELoadWait IELoadWaitTimeout IENavigate ' +
4483 'IEPropertyGet IEPropertySet IEQuit IETableGetCollection ' +
4484 'IETableWriteToArray IETagNameAllGetCollection ' +
4485 'IETagNameGetCollection IE_Example IE_Introduction ' +
4486 'IE_VersionInfo INetExplorerCapable INetGetSource INetMail ' +
4487 'INetSmtpMail IsPressed MathCheckDiv Max MemGlobalAlloc ' +
4488 'MemGlobalFree MemGlobalLock MemGlobalSize MemGlobalUnlock ' +
4489 'MemMoveMemory MemVirtualAlloc MemVirtualAllocEx ' +
4490 'MemVirtualFree MemVirtualFreeEx Min MouseTrap ' +
4491 'NamedPipes_CallNamedPipe NamedPipes_ConnectNamedPipe ' +
4492 'NamedPipes_CreateNamedPipe NamedPipes_CreatePipe ' +
4493 'NamedPipes_DisconnectNamedPipe ' +
4494 'NamedPipes_GetNamedPipeHandleState NamedPipes_GetNamedPipeInfo ' +
4495 'NamedPipes_PeekNamedPipe NamedPipes_SetNamedPipeHandleState ' +
4496 'NamedPipes_TransactNamedPipe NamedPipes_WaitNamedPipe ' +
4497 'Net_Share_ConnectionEnum Net_Share_FileClose ' +
4498 'Net_Share_FileEnum Net_Share_FileGetInfo Net_Share_PermStr ' +
4499 'Net_Share_ResourceStr Net_Share_SessionDel ' +
4500 'Net_Share_SessionEnum Net_Share_SessionGetInfo ' +
4501 'Net_Share_ShareAdd Net_Share_ShareCheck Net_Share_ShareDel ' +
4502 'Net_Share_ShareEnum Net_Share_ShareGetInfo ' +
4503 'Net_Share_ShareSetInfo Net_Share_StatisticsGetSvr ' +
4504 'Net_Share_StatisticsGetWrk Now NowCalc NowCalcDate ' +
4505 'NowDate NowTime PathFull PathGetRelative PathMake ' +
4506 'PathSplit ProcessGetName ProcessGetPriority Radian ' +
4507 'ReplaceStringInFile RunDos ScreenCapture_Capture ' +
4508 'ScreenCapture_CaptureWnd ScreenCapture_SaveImage ' +
4509 'ScreenCapture_SetBMPFormat ScreenCapture_SetJPGQuality ' +
4510 'ScreenCapture_SetTIFColorDepth ScreenCapture_SetTIFCompression ' +
4511 'Security__AdjustTokenPrivileges ' +
4512 'Security__CreateProcessWithToken Security__DuplicateTokenEx ' +
4513 'Security__GetAccountSid Security__GetLengthSid ' +
4514 'Security__GetTokenInformation Security__ImpersonateSelf ' +
4515 'Security__IsValidSid Security__LookupAccountName ' +
4516 'Security__LookupAccountSid Security__LookupPrivilegeValue ' +
4517 'Security__OpenProcessToken Security__OpenThreadToken ' +
4518 'Security__OpenThreadTokenEx Security__SetPrivilege ' +
4519 'Security__SetTokenInformation Security__SidToStringSid ' +
4520 'Security__SidTypeStr Security__StringSidToSid SendMessage ' +
4521 'SendMessageA SetDate SetTime Singleton SoundClose ' +
4522 'SoundLength SoundOpen SoundPause SoundPlay SoundPos ' +
4523 'SoundResume SoundSeek SoundStatus SoundStop ' +
4524 'SQLite_Changes SQLite_Close SQLite_Display2DResult ' +
4525 'SQLite_Encode SQLite_ErrCode SQLite_ErrMsg SQLite_Escape ' +
4526 'SQLite_Exec SQLite_FastEncode SQLite_FastEscape ' +
4527 'SQLite_FetchData SQLite_FetchNames SQLite_GetTable ' +
4528 'SQLite_GetTable2d SQLite_LastInsertRowID SQLite_LibVersion ' +
4529 'SQLite_Open SQLite_Query SQLite_QueryFinalize ' +
4530 'SQLite_QueryReset SQLite_QuerySingleRow SQLite_SafeMode ' +
4531 'SQLite_SetTimeout SQLite_Shutdown SQLite_SQLiteExe ' +
4532 'SQLite_Startup SQLite_TotalChanges StringBetween ' +
4533 'StringExplode StringInsert StringProper StringRepeat ' +
4534 'StringTitleCase StringToHex TCPIpToName TempFile ' +
4535 'TicksToTime Timer_Diff Timer_GetIdleTime Timer_GetTimerID ' +
4536 'Timer_Init Timer_KillAllTimers Timer_KillTimer ' +
4537 'Timer_SetTimer TimeToTicks VersionCompare viClose ' +
4538 'viExecCommand viFindGpib viGpibBusReset viGTL ' +
4539 'viInteractiveControl viOpen viSetAttribute viSetTimeout ' +
4540 'WeekNumberISO WinAPI_AbortPath WinAPI_ActivateKeyboardLayout ' +
4541 'WinAPI_AddClipboardFormatListener WinAPI_AddFontMemResourceEx ' +
4542 'WinAPI_AddFontResourceEx WinAPI_AddIconOverlay ' +
4543 'WinAPI_AddIconTransparency WinAPI_AddMRUString ' +
4544 'WinAPI_AdjustBitmap WinAPI_AdjustTokenPrivileges ' +
4545 'WinAPI_AdjustWindowRectEx WinAPI_AlphaBlend WinAPI_AngleArc ' +
4546 'WinAPI_AnimateWindow WinAPI_Arc WinAPI_ArcTo ' +
4547 'WinAPI_ArrayToStruct WinAPI_AssignProcessToJobObject ' +
4548 'WinAPI_AssocGetPerceivedType WinAPI_AssocQueryString ' +
4549 'WinAPI_AttachConsole WinAPI_AttachThreadInput ' +
4550 'WinAPI_BackupRead WinAPI_BackupReadAbort WinAPI_BackupSeek ' +
4551 'WinAPI_BackupWrite WinAPI_BackupWriteAbort WinAPI_Beep ' +
4552 'WinAPI_BeginBufferedPaint WinAPI_BeginDeferWindowPos ' +
4553 'WinAPI_BeginPaint WinAPI_BeginPath WinAPI_BeginUpdateResource ' +
4554 'WinAPI_BitBlt WinAPI_BringWindowToTop ' +
4555 'WinAPI_BroadcastSystemMessage WinAPI_BrowseForFolderDlg ' +
4556 'WinAPI_BufferedPaintClear WinAPI_BufferedPaintInit ' +
4557 'WinAPI_BufferedPaintSetAlpha WinAPI_BufferedPaintUnInit ' +
4558 'WinAPI_CallNextHookEx WinAPI_CallWindowProc ' +
4559 'WinAPI_CallWindowProcW WinAPI_CascadeWindows ' +
4560 'WinAPI_ChangeWindowMessageFilterEx WinAPI_CharToOem ' +
4561 'WinAPI_ChildWindowFromPointEx WinAPI_ClientToScreen ' +
4562 'WinAPI_ClipCursor WinAPI_CloseDesktop WinAPI_CloseEnhMetaFile ' +
4563 'WinAPI_CloseFigure WinAPI_CloseHandle WinAPI_CloseThemeData ' +
4564 'WinAPI_CloseWindow WinAPI_CloseWindowStation ' +
4565 'WinAPI_CLSIDFromProgID WinAPI_CoInitialize ' +
4566 'WinAPI_ColorAdjustLuma WinAPI_ColorHLSToRGB ' +
4567 'WinAPI_ColorRGBToHLS WinAPI_CombineRgn ' +
4568 'WinAPI_CombineTransform WinAPI_CommandLineToArgv ' +
4569 'WinAPI_CommDlgExtendedError WinAPI_CommDlgExtendedErrorEx ' +
4570 'WinAPI_CompareString WinAPI_CompressBitmapBits ' +
4571 'WinAPI_CompressBuffer WinAPI_ComputeCrc32 ' +
4572 'WinAPI_ConfirmCredentials WinAPI_CopyBitmap WinAPI_CopyCursor ' +
4573 'WinAPI_CopyEnhMetaFile WinAPI_CopyFileEx WinAPI_CopyIcon ' +
4574 'WinAPI_CopyImage WinAPI_CopyRect WinAPI_CopyStruct ' +
4575 'WinAPI_CoTaskMemAlloc WinAPI_CoTaskMemFree ' +
4576 'WinAPI_CoTaskMemRealloc WinAPI_CoUninitialize ' +
4577 'WinAPI_Create32BitHBITMAP WinAPI_Create32BitHICON ' +
4578 'WinAPI_CreateANDBitmap WinAPI_CreateBitmap ' +
4579 'WinAPI_CreateBitmapIndirect WinAPI_CreateBrushIndirect ' +
4580 'WinAPI_CreateBuffer WinAPI_CreateBufferFromStruct ' +
4581 'WinAPI_CreateCaret WinAPI_CreateColorAdjustment ' +
4582 'WinAPI_CreateCompatibleBitmap WinAPI_CreateCompatibleBitmapEx ' +
4583 'WinAPI_CreateCompatibleDC WinAPI_CreateDesktop ' +
4584 'WinAPI_CreateDIB WinAPI_CreateDIBColorTable ' +
4585 'WinAPI_CreateDIBitmap WinAPI_CreateDIBSection ' +
4586 'WinAPI_CreateDirectory WinAPI_CreateDirectoryEx ' +
4587 'WinAPI_CreateEllipticRgn WinAPI_CreateEmptyIcon ' +
4588 'WinAPI_CreateEnhMetaFile WinAPI_CreateEvent WinAPI_CreateFile ' +
4589 'WinAPI_CreateFileEx WinAPI_CreateFileMapping ' +
4590 'WinAPI_CreateFont WinAPI_CreateFontEx ' +
4591 'WinAPI_CreateFontIndirect WinAPI_CreateGUID ' +
4592 'WinAPI_CreateHardLink WinAPI_CreateIcon ' +
4593 'WinAPI_CreateIconFromResourceEx WinAPI_CreateIconIndirect ' +
4594 'WinAPI_CreateJobObject WinAPI_CreateMargins ' +
4595 'WinAPI_CreateMRUList WinAPI_CreateMutex WinAPI_CreateNullRgn ' +
4596 'WinAPI_CreateNumberFormatInfo WinAPI_CreateObjectID ' +
4597 'WinAPI_CreatePen WinAPI_CreatePoint WinAPI_CreatePolygonRgn ' +
4598 'WinAPI_CreateProcess WinAPI_CreateProcessWithToken ' +
4599 'WinAPI_CreateRect WinAPI_CreateRectEx WinAPI_CreateRectRgn ' +
4600 'WinAPI_CreateRectRgnIndirect WinAPI_CreateRoundRectRgn ' +
4601 'WinAPI_CreateSemaphore WinAPI_CreateSize ' +
4602 'WinAPI_CreateSolidBitmap WinAPI_CreateSolidBrush ' +
4603 'WinAPI_CreateStreamOnHGlobal WinAPI_CreateString ' +
4604 'WinAPI_CreateSymbolicLink WinAPI_CreateTransform ' +
4605 'WinAPI_CreateWindowEx WinAPI_CreateWindowStation ' +
4606 'WinAPI_DecompressBuffer WinAPI_DecryptFile ' +
4607 'WinAPI_DeferWindowPos WinAPI_DefineDosDevice ' +
4608 'WinAPI_DefRawInputProc WinAPI_DefSubclassProc ' +
4609 'WinAPI_DefWindowProc WinAPI_DefWindowProcW WinAPI_DeleteDC ' +
4610 'WinAPI_DeleteEnhMetaFile WinAPI_DeleteFile ' +
4611 'WinAPI_DeleteObject WinAPI_DeleteObjectID ' +
4612 'WinAPI_DeleteVolumeMountPoint WinAPI_DeregisterShellHookWindow ' +
4613 'WinAPI_DestroyCaret WinAPI_DestroyCursor WinAPI_DestroyIcon ' +
4614 'WinAPI_DestroyWindow WinAPI_DeviceIoControl ' +
4615 'WinAPI_DisplayStruct WinAPI_DllGetVersion WinAPI_DllInstall ' +
4616 'WinAPI_DllUninstall WinAPI_DPtoLP WinAPI_DragAcceptFiles ' +
4617 'WinAPI_DragFinish WinAPI_DragQueryFileEx ' +
4618 'WinAPI_DragQueryPoint WinAPI_DrawAnimatedRects ' +
4619 'WinAPI_DrawBitmap WinAPI_DrawEdge WinAPI_DrawFocusRect ' +
4620 'WinAPI_DrawFrameControl WinAPI_DrawIcon WinAPI_DrawIconEx ' +
4621 'WinAPI_DrawLine WinAPI_DrawShadowText WinAPI_DrawText ' +
4622 'WinAPI_DrawThemeBackground WinAPI_DrawThemeEdge ' +
4623 'WinAPI_DrawThemeIcon WinAPI_DrawThemeParentBackground ' +
4624 'WinAPI_DrawThemeText WinAPI_DrawThemeTextEx ' +
4625 'WinAPI_DuplicateEncryptionInfoFile WinAPI_DuplicateHandle ' +
4626 'WinAPI_DuplicateTokenEx WinAPI_DwmDefWindowProc ' +
4627 'WinAPI_DwmEnableBlurBehindWindow WinAPI_DwmEnableComposition ' +
4628 'WinAPI_DwmExtendFrameIntoClientArea ' +
4629 'WinAPI_DwmGetColorizationColor ' +
4630 'WinAPI_DwmGetColorizationParameters ' +
4631 'WinAPI_DwmGetWindowAttribute WinAPI_DwmInvalidateIconicBitmaps ' +
4632 'WinAPI_DwmIsCompositionEnabled ' +
4633 'WinAPI_DwmQueryThumbnailSourceSize WinAPI_DwmRegisterThumbnail ' +
4634 'WinAPI_DwmSetColorizationParameters ' +
4635 'WinAPI_DwmSetIconicLivePreviewBitmap ' +
4636 'WinAPI_DwmSetIconicThumbnail WinAPI_DwmSetWindowAttribute ' +
4637 'WinAPI_DwmUnregisterThumbnail ' +
4638 'WinAPI_DwmUpdateThumbnailProperties WinAPI_DWordToFloat ' +
4639 'WinAPI_DWordToInt WinAPI_EjectMedia WinAPI_Ellipse ' +
4640 'WinAPI_EmptyWorkingSet WinAPI_EnableWindow WinAPI_EncryptFile ' +
4641 'WinAPI_EncryptionDisable WinAPI_EndBufferedPaint ' +
4642 'WinAPI_EndDeferWindowPos WinAPI_EndPaint WinAPI_EndPath ' +
4643 'WinAPI_EndUpdateResource WinAPI_EnumChildProcess ' +
4644 'WinAPI_EnumChildWindows WinAPI_EnumDesktops ' +
4645 'WinAPI_EnumDesktopWindows WinAPI_EnumDeviceDrivers ' +
4646 'WinAPI_EnumDisplayDevices WinAPI_EnumDisplayMonitors ' +
4647 'WinAPI_EnumDisplaySettings WinAPI_EnumDllProc ' +
4648 'WinAPI_EnumFiles WinAPI_EnumFileStreams ' +
4649 'WinAPI_EnumFontFamilies WinAPI_EnumHardLinks ' +
4650 'WinAPI_EnumMRUList WinAPI_EnumPageFiles ' +
4651 'WinAPI_EnumProcessHandles WinAPI_EnumProcessModules ' +
4652 'WinAPI_EnumProcessThreads WinAPI_EnumProcessWindows ' +
4653 'WinAPI_EnumRawInputDevices WinAPI_EnumResourceLanguages ' +
4654 'WinAPI_EnumResourceNames WinAPI_EnumResourceTypes ' +
4655 'WinAPI_EnumSystemGeoID WinAPI_EnumSystemLocales ' +
4656 'WinAPI_EnumUILanguages WinAPI_EnumWindows ' +
4657 'WinAPI_EnumWindowsPopup WinAPI_EnumWindowStations ' +
4658 'WinAPI_EnumWindowsTop WinAPI_EqualMemory WinAPI_EqualRect ' +
4659 'WinAPI_EqualRgn WinAPI_ExcludeClipRect ' +
4660 'WinAPI_ExpandEnvironmentStrings WinAPI_ExtCreatePen ' +
4661 'WinAPI_ExtCreateRegion WinAPI_ExtFloodFill WinAPI_ExtractIcon ' +
4662 'WinAPI_ExtractIconEx WinAPI_ExtSelectClipRgn ' +
4663 'WinAPI_FatalAppExit WinAPI_FatalExit ' +
4664 'WinAPI_FileEncryptionStatus WinAPI_FileExists ' +
4665 'WinAPI_FileIconInit WinAPI_FileInUse WinAPI_FillMemory ' +
4666 'WinAPI_FillPath WinAPI_FillRect WinAPI_FillRgn ' +
4667 'WinAPI_FindClose WinAPI_FindCloseChangeNotification ' +
4668 'WinAPI_FindExecutable WinAPI_FindFirstChangeNotification ' +
4669 'WinAPI_FindFirstFile WinAPI_FindFirstFileName ' +
4670 'WinAPI_FindFirstStream WinAPI_FindNextChangeNotification ' +
4671 'WinAPI_FindNextFile WinAPI_FindNextFileName ' +
4672 'WinAPI_FindNextStream WinAPI_FindResource ' +
4673 'WinAPI_FindResourceEx WinAPI_FindTextDlg WinAPI_FindWindow ' +
4674 'WinAPI_FlashWindow WinAPI_FlashWindowEx WinAPI_FlattenPath ' +
4675 'WinAPI_FloatToDWord WinAPI_FloatToInt WinAPI_FlushFileBuffers ' +
4676 'WinAPI_FlushFRBuffer WinAPI_FlushViewOfFile ' +
4677 'WinAPI_FormatDriveDlg WinAPI_FormatMessage WinAPI_FrameRect ' +
4678 'WinAPI_FrameRgn WinAPI_FreeLibrary WinAPI_FreeMemory ' +
4679 'WinAPI_FreeMRUList WinAPI_FreeResource WinAPI_GdiComment ' +
4680 'WinAPI_GetActiveWindow WinAPI_GetAllUsersProfileDirectory ' +
4681 'WinAPI_GetAncestor WinAPI_GetApplicationRestartSettings ' +
4682 'WinAPI_GetArcDirection WinAPI_GetAsyncKeyState ' +
4683 'WinAPI_GetBinaryType WinAPI_GetBitmapBits ' +
4684 'WinAPI_GetBitmapDimension WinAPI_GetBitmapDimensionEx ' +
4685 'WinAPI_GetBkColor WinAPI_GetBkMode WinAPI_GetBoundsRect ' +
4686 'WinAPI_GetBrushOrg WinAPI_GetBufferedPaintBits ' +
4687 'WinAPI_GetBufferedPaintDC WinAPI_GetBufferedPaintTargetDC ' +
4688 'WinAPI_GetBufferedPaintTargetRect WinAPI_GetBValue ' +
4689 'WinAPI_GetCaretBlinkTime WinAPI_GetCaretPos WinAPI_GetCDType ' +
4690 'WinAPI_GetClassInfoEx WinAPI_GetClassLongEx ' +
4691 'WinAPI_GetClassName WinAPI_GetClientHeight ' +
4692 'WinAPI_GetClientRect WinAPI_GetClientWidth ' +
4693 'WinAPI_GetClipboardSequenceNumber WinAPI_GetClipBox ' +
4694 'WinAPI_GetClipCursor WinAPI_GetClipRgn ' +
4695 'WinAPI_GetColorAdjustment WinAPI_GetCompressedFileSize ' +
4696 'WinAPI_GetCompression WinAPI_GetConnectedDlg ' +
4697 'WinAPI_GetCurrentDirectory WinAPI_GetCurrentHwProfile ' +
4698 'WinAPI_GetCurrentObject WinAPI_GetCurrentPosition ' +
4699 'WinAPI_GetCurrentProcess ' +
4700 'WinAPI_GetCurrentProcessExplicitAppUserModelID ' +
4701 'WinAPI_GetCurrentProcessID WinAPI_GetCurrentThemeName ' +
4702 'WinAPI_GetCurrentThread WinAPI_GetCurrentThreadId ' +
4703 'WinAPI_GetCursor WinAPI_GetCursorInfo WinAPI_GetDateFormat ' +
4704 'WinAPI_GetDC WinAPI_GetDCEx WinAPI_GetDefaultPrinter ' +
4705 'WinAPI_GetDefaultUserProfileDirectory WinAPI_GetDesktopWindow ' +
4706 'WinAPI_GetDeviceCaps WinAPI_GetDeviceDriverBaseName ' +
4707 'WinAPI_GetDeviceDriverFileName WinAPI_GetDeviceGammaRamp ' +
4708 'WinAPI_GetDIBColorTable WinAPI_GetDIBits ' +
4709 'WinAPI_GetDiskFreeSpaceEx WinAPI_GetDlgCtrlID ' +
4710 'WinAPI_GetDlgItem WinAPI_GetDllDirectory ' +
4711 'WinAPI_GetDriveBusType WinAPI_GetDriveGeometryEx ' +
4712 'WinAPI_GetDriveNumber WinAPI_GetDriveType ' +
4713 'WinAPI_GetDurationFormat WinAPI_GetEffectiveClientRect ' +
4714 'WinAPI_GetEnhMetaFile WinAPI_GetEnhMetaFileBits ' +
4715 'WinAPI_GetEnhMetaFileDescription WinAPI_GetEnhMetaFileDimension ' +
4716 'WinAPI_GetEnhMetaFileHeader WinAPI_GetErrorMessage ' +
4717 'WinAPI_GetErrorMode WinAPI_GetExitCodeProcess ' +
4718 'WinAPI_GetExtended WinAPI_GetFileAttributes WinAPI_GetFileID ' +
4719 'WinAPI_GetFileInformationByHandle ' +
4720 'WinAPI_GetFileInformationByHandleEx WinAPI_GetFilePointerEx ' +
4721 'WinAPI_GetFileSizeEx WinAPI_GetFileSizeOnDisk ' +
4722 'WinAPI_GetFileTitle WinAPI_GetFileType ' +
4723 'WinAPI_GetFileVersionInfo WinAPI_GetFinalPathNameByHandle ' +
4724 'WinAPI_GetFinalPathNameByHandleEx WinAPI_GetFocus ' +
4725 'WinAPI_GetFontMemoryResourceInfo WinAPI_GetFontName ' +
4726 'WinAPI_GetFontResourceInfo WinAPI_GetForegroundWindow ' +
4727 'WinAPI_GetFRBuffer WinAPI_GetFullPathName WinAPI_GetGeoInfo ' +
4728 'WinAPI_GetGlyphOutline WinAPI_GetGraphicsMode ' +
4729 'WinAPI_GetGuiResources WinAPI_GetGUIThreadInfo ' +
4730 'WinAPI_GetGValue WinAPI_GetHandleInformation ' +
4731 'WinAPI_GetHGlobalFromStream WinAPI_GetIconDimension ' +
4732 'WinAPI_GetIconInfo WinAPI_GetIconInfoEx WinAPI_GetIdleTime ' +
4733 'WinAPI_GetKeyboardLayout WinAPI_GetKeyboardLayoutList ' +
4734 'WinAPI_GetKeyboardState WinAPI_GetKeyboardType ' +
4735 'WinAPI_GetKeyNameText WinAPI_GetKeyState ' +
4736 'WinAPI_GetLastActivePopup WinAPI_GetLastError ' +
4737 'WinAPI_GetLastErrorMessage WinAPI_GetLayeredWindowAttributes ' +
4738 'WinAPI_GetLocaleInfo WinAPI_GetLogicalDrives ' +
4739 'WinAPI_GetMapMode WinAPI_GetMemorySize ' +
4740 'WinAPI_GetMessageExtraInfo WinAPI_GetModuleFileNameEx ' +
4741 'WinAPI_GetModuleHandle WinAPI_GetModuleHandleEx ' +
4742 'WinAPI_GetModuleInformation WinAPI_GetMonitorInfo ' +
4743 'WinAPI_GetMousePos WinAPI_GetMousePosX WinAPI_GetMousePosY ' +
4744 'WinAPI_GetMUILanguage WinAPI_GetNumberFormat WinAPI_GetObject ' +
4745 'WinAPI_GetObjectID WinAPI_GetObjectInfoByHandle ' +
4746 'WinAPI_GetObjectNameByHandle WinAPI_GetObjectType ' +
4747 'WinAPI_GetOpenFileName WinAPI_GetOutlineTextMetrics ' +
4748 'WinAPI_GetOverlappedResult WinAPI_GetParent ' +
4749 'WinAPI_GetParentProcess WinAPI_GetPerformanceInfo ' +
4750 'WinAPI_GetPEType WinAPI_GetPhysicallyInstalledSystemMemory ' +
4751 'WinAPI_GetPixel WinAPI_GetPolyFillMode WinAPI_GetPosFromRect ' +
4752 'WinAPI_GetPriorityClass WinAPI_GetProcAddress ' +
4753 'WinAPI_GetProcessAffinityMask WinAPI_GetProcessCommandLine ' +
4754 'WinAPI_GetProcessFileName WinAPI_GetProcessHandleCount ' +
4755 'WinAPI_GetProcessID WinAPI_GetProcessIoCounters ' +
4756 'WinAPI_GetProcessMemoryInfo WinAPI_GetProcessName ' +
4757 'WinAPI_GetProcessShutdownParameters WinAPI_GetProcessTimes ' +
4758 'WinAPI_GetProcessUser WinAPI_GetProcessWindowStation ' +
4759 'WinAPI_GetProcessWorkingDirectory WinAPI_GetProfilesDirectory ' +
4760 'WinAPI_GetPwrCapabilities WinAPI_GetRawInputBuffer ' +
4761 'WinAPI_GetRawInputBufferLength WinAPI_GetRawInputData ' +
4762 'WinAPI_GetRawInputDeviceInfo WinAPI_GetRegionData ' +
4763 'WinAPI_GetRegisteredRawInputDevices ' +
4764 'WinAPI_GetRegKeyNameByHandle WinAPI_GetRgnBox WinAPI_GetROP2 ' +
4765 'WinAPI_GetRValue WinAPI_GetSaveFileName WinAPI_GetShellWindow ' +
4766 'WinAPI_GetStartupInfo WinAPI_GetStdHandle ' +
4767 'WinAPI_GetStockObject WinAPI_GetStretchBltMode ' +
4768 'WinAPI_GetString WinAPI_GetSysColor WinAPI_GetSysColorBrush ' +
4769 'WinAPI_GetSystemDefaultLangID WinAPI_GetSystemDefaultLCID ' +
4770 'WinAPI_GetSystemDefaultUILanguage WinAPI_GetSystemDEPPolicy ' +
4771 'WinAPI_GetSystemInfo WinAPI_GetSystemMetrics ' +
4772 'WinAPI_GetSystemPowerStatus WinAPI_GetSystemTimes ' +
4773 'WinAPI_GetSystemWow64Directory WinAPI_GetTabbedTextExtent ' +
4774 'WinAPI_GetTempFileName WinAPI_GetTextAlign ' +
4775 'WinAPI_GetTextCharacterExtra WinAPI_GetTextColor ' +
4776 'WinAPI_GetTextExtentPoint32 WinAPI_GetTextFace ' +
4777 'WinAPI_GetTextMetrics WinAPI_GetThemeAppProperties ' +
4778 'WinAPI_GetThemeBackgroundContentRect ' +
4779 'WinAPI_GetThemeBackgroundExtent WinAPI_GetThemeBackgroundRegion ' +
4780 'WinAPI_GetThemeBitmap WinAPI_GetThemeBool ' +
4781 'WinAPI_GetThemeColor WinAPI_GetThemeDocumentationProperty ' +
4782 'WinAPI_GetThemeEnumValue WinAPI_GetThemeFilename ' +
4783 'WinAPI_GetThemeFont WinAPI_GetThemeInt WinAPI_GetThemeMargins ' +
4784 'WinAPI_GetThemeMetric WinAPI_GetThemePartSize ' +
4785 'WinAPI_GetThemePosition WinAPI_GetThemePropertyOrigin ' +
4786 'WinAPI_GetThemeRect WinAPI_GetThemeString ' +
4787 'WinAPI_GetThemeSysBool WinAPI_GetThemeSysColor ' +
4788 'WinAPI_GetThemeSysColorBrush WinAPI_GetThemeSysFont ' +
4789 'WinAPI_GetThemeSysInt WinAPI_GetThemeSysSize ' +
4790 'WinAPI_GetThemeSysString WinAPI_GetThemeTextExtent ' +
4791 'WinAPI_GetThemeTextMetrics WinAPI_GetThemeTransitionDuration ' +
4792 'WinAPI_GetThreadDesktop WinAPI_GetThreadErrorMode ' +
4793 'WinAPI_GetThreadLocale WinAPI_GetThreadUILanguage ' +
4794 'WinAPI_GetTickCount WinAPI_GetTickCount64 ' +
4795 'WinAPI_GetTimeFormat WinAPI_GetTopWindow ' +
4796 'WinAPI_GetUDFColorMode WinAPI_GetUpdateRect ' +
4797 'WinAPI_GetUpdateRgn WinAPI_GetUserDefaultLangID ' +
4798 'WinAPI_GetUserDefaultLCID WinAPI_GetUserDefaultUILanguage ' +
4799 'WinAPI_GetUserGeoID WinAPI_GetUserObjectInformation ' +
4800 'WinAPI_GetVersion WinAPI_GetVersionEx ' +
4801 'WinAPI_GetVolumeInformation WinAPI_GetVolumeInformationByHandle ' +
4802 'WinAPI_GetVolumeNameForVolumeMountPoint WinAPI_GetWindow ' +
4803 'WinAPI_GetWindowDC WinAPI_GetWindowDisplayAffinity ' +
4804 'WinAPI_GetWindowExt WinAPI_GetWindowFileName ' +
4805 'WinAPI_GetWindowHeight WinAPI_GetWindowInfo ' +
4806 'WinAPI_GetWindowLong WinAPI_GetWindowOrg ' +
4807 'WinAPI_GetWindowPlacement WinAPI_GetWindowRect ' +
4808 'WinAPI_GetWindowRgn WinAPI_GetWindowRgnBox ' +
4809 'WinAPI_GetWindowSubclass WinAPI_GetWindowText ' +
4810 'WinAPI_GetWindowTheme WinAPI_GetWindowThreadProcessId ' +
4811 'WinAPI_GetWindowWidth WinAPI_GetWorkArea ' +
4812 'WinAPI_GetWorldTransform WinAPI_GetXYFromPoint ' +
4813 'WinAPI_GlobalMemoryStatus WinAPI_GradientFill ' +
4814 'WinAPI_GUIDFromString WinAPI_GUIDFromStringEx WinAPI_HashData ' +
4815 'WinAPI_HashString WinAPI_HiByte WinAPI_HideCaret ' +
4816 'WinAPI_HiDWord WinAPI_HiWord WinAPI_InflateRect ' +
4817 'WinAPI_InitMUILanguage WinAPI_InProcess ' +
4818 'WinAPI_IntersectClipRect WinAPI_IntersectRect ' +
4819 'WinAPI_IntToDWord WinAPI_IntToFloat WinAPI_InvalidateRect ' +
4820 'WinAPI_InvalidateRgn WinAPI_InvertANDBitmap ' +
4821 'WinAPI_InvertColor WinAPI_InvertRect WinAPI_InvertRgn ' +
4822 'WinAPI_IOCTL WinAPI_IsAlphaBitmap WinAPI_IsBadCodePtr ' +
4823 'WinAPI_IsBadReadPtr WinAPI_IsBadStringPtr ' +
4824 'WinAPI_IsBadWritePtr WinAPI_IsChild WinAPI_IsClassName ' +
4825 'WinAPI_IsDoorOpen WinAPI_IsElevated WinAPI_IsHungAppWindow ' +
4826 'WinAPI_IsIconic WinAPI_IsInternetConnected ' +
4827 'WinAPI_IsLoadKBLayout WinAPI_IsMemory ' +
4828 'WinAPI_IsNameInExpression WinAPI_IsNetworkAlive ' +
4829 'WinAPI_IsPathShared WinAPI_IsProcessInJob ' +
4830 'WinAPI_IsProcessorFeaturePresent WinAPI_IsRectEmpty ' +
4831 'WinAPI_IsThemeActive ' +
4832 'WinAPI_IsThemeBackgroundPartiallyTransparent ' +
4833 'WinAPI_IsThemePartDefined WinAPI_IsValidLocale ' +
4834 'WinAPI_IsWindow WinAPI_IsWindowEnabled WinAPI_IsWindowUnicode ' +
4835 'WinAPI_IsWindowVisible WinAPI_IsWow64Process ' +
4836 'WinAPI_IsWritable WinAPI_IsZoomed WinAPI_Keybd_Event ' +
4837 'WinAPI_KillTimer WinAPI_LineDDA WinAPI_LineTo ' +
4838 'WinAPI_LoadBitmap WinAPI_LoadCursor WinAPI_LoadCursorFromFile ' +
4839 'WinAPI_LoadIcon WinAPI_LoadIconMetric ' +
4840 'WinAPI_LoadIconWithScaleDown WinAPI_LoadImage ' +
4841 'WinAPI_LoadIndirectString WinAPI_LoadKeyboardLayout ' +
4842 'WinAPI_LoadLibrary WinAPI_LoadLibraryEx WinAPI_LoadMedia ' +
4843 'WinAPI_LoadResource WinAPI_LoadShell32Icon WinAPI_LoadString ' +
4844 'WinAPI_LoadStringEx WinAPI_LoByte WinAPI_LocalFree ' +
4845 'WinAPI_LockDevice WinAPI_LockFile WinAPI_LockResource ' +
4846 'WinAPI_LockWindowUpdate WinAPI_LockWorkStation WinAPI_LoDWord ' +
4847 'WinAPI_LongMid WinAPI_LookupIconIdFromDirectoryEx ' +
4848 'WinAPI_LoWord WinAPI_LPtoDP WinAPI_MAKELANGID ' +
4849 'WinAPI_MAKELCID WinAPI_MakeLong WinAPI_MakeQWord ' +
4850 'WinAPI_MakeWord WinAPI_MapViewOfFile WinAPI_MapVirtualKey ' +
4851 'WinAPI_MaskBlt WinAPI_MessageBeep WinAPI_MessageBoxCheck ' +
4852 'WinAPI_MessageBoxIndirect WinAPI_MirrorIcon ' +
4853 'WinAPI_ModifyWorldTransform WinAPI_MonitorFromPoint ' +
4854 'WinAPI_MonitorFromRect WinAPI_MonitorFromWindow ' +
4855 'WinAPI_Mouse_Event WinAPI_MoveFileEx WinAPI_MoveMemory ' +
4856 'WinAPI_MoveTo WinAPI_MoveToEx WinAPI_MoveWindow ' +
4857 'WinAPI_MsgBox WinAPI_MulDiv WinAPI_MultiByteToWideChar ' +
4858 'WinAPI_MultiByteToWideCharEx WinAPI_NtStatusToDosError ' +
4859 'WinAPI_OemToChar WinAPI_OffsetClipRgn WinAPI_OffsetPoints ' +
4860 'WinAPI_OffsetRect WinAPI_OffsetRgn WinAPI_OffsetWindowOrg ' +
4861 'WinAPI_OpenDesktop WinAPI_OpenFileById WinAPI_OpenFileDlg ' +
4862 'WinAPI_OpenFileMapping WinAPI_OpenIcon ' +
4863 'WinAPI_OpenInputDesktop WinAPI_OpenJobObject WinAPI_OpenMutex ' +
4864 'WinAPI_OpenProcess WinAPI_OpenProcessToken ' +
4865 'WinAPI_OpenSemaphore WinAPI_OpenThemeData ' +
4866 'WinAPI_OpenWindowStation WinAPI_PageSetupDlg ' +
4867 'WinAPI_PaintDesktop WinAPI_PaintRgn WinAPI_ParseURL ' +
4868 'WinAPI_ParseUserName WinAPI_PatBlt WinAPI_PathAddBackslash ' +
4869 'WinAPI_PathAddExtension WinAPI_PathAppend ' +
4870 'WinAPI_PathBuildRoot WinAPI_PathCanonicalize ' +
4871 'WinAPI_PathCommonPrefix WinAPI_PathCompactPath ' +
4872 'WinAPI_PathCompactPathEx WinAPI_PathCreateFromUrl ' +
4873 'WinAPI_PathFindExtension WinAPI_PathFindFileName ' +
4874 'WinAPI_PathFindNextComponent WinAPI_PathFindOnPath ' +
4875 'WinAPI_PathGetArgs WinAPI_PathGetCharType ' +
4876 'WinAPI_PathGetDriveNumber WinAPI_PathIsContentType ' +
4877 'WinAPI_PathIsDirectory WinAPI_PathIsDirectoryEmpty ' +
4878 'WinAPI_PathIsExe WinAPI_PathIsFileSpec ' +
4879 'WinAPI_PathIsLFNFileSpec WinAPI_PathIsRelative ' +
4880 'WinAPI_PathIsRoot WinAPI_PathIsSameRoot ' +
4881 'WinAPI_PathIsSystemFolder WinAPI_PathIsUNC ' +
4882 'WinAPI_PathIsUNCServer WinAPI_PathIsUNCServerShare ' +
4883 'WinAPI_PathMakeSystemFolder WinAPI_PathMatchSpec ' +
4884 'WinAPI_PathParseIconLocation WinAPI_PathRelativePathTo ' +
4885 'WinAPI_PathRemoveArgs WinAPI_PathRemoveBackslash ' +
4886 'WinAPI_PathRemoveExtension WinAPI_PathRemoveFileSpec ' +
4887 'WinAPI_PathRenameExtension WinAPI_PathSearchAndQualify ' +
4888 'WinAPI_PathSkipRoot WinAPI_PathStripPath ' +
4889 'WinAPI_PathStripToRoot WinAPI_PathToRegion ' +
4890 'WinAPI_PathUndecorate WinAPI_PathUnExpandEnvStrings ' +
4891 'WinAPI_PathUnmakeSystemFolder WinAPI_PathUnquoteSpaces ' +
4892 'WinAPI_PathYetAnotherMakeUniqueName WinAPI_PickIconDlg ' +
4893 'WinAPI_PlayEnhMetaFile WinAPI_PlaySound WinAPI_PlgBlt ' +
4894 'WinAPI_PointFromRect WinAPI_PolyBezier WinAPI_PolyBezierTo ' +
4895 'WinAPI_PolyDraw WinAPI_Polygon WinAPI_PostMessage ' +
4896 'WinAPI_PrimaryLangId WinAPI_PrintDlg WinAPI_PrintDlgEx ' +
4897 'WinAPI_PrintWindow WinAPI_ProgIDFromCLSID WinAPI_PtInRect ' +
4898 'WinAPI_PtInRectEx WinAPI_PtInRegion WinAPI_PtVisible ' +
4899 'WinAPI_QueryDosDevice WinAPI_QueryInformationJobObject ' +
4900 'WinAPI_QueryPerformanceCounter WinAPI_QueryPerformanceFrequency ' +
4901 'WinAPI_RadialGradientFill WinAPI_ReadDirectoryChanges ' +
4902 'WinAPI_ReadFile WinAPI_ReadProcessMemory WinAPI_Rectangle ' +
4903 'WinAPI_RectInRegion WinAPI_RectIsEmpty WinAPI_RectVisible ' +
4904 'WinAPI_RedrawWindow WinAPI_RegCloseKey ' +
4905 'WinAPI_RegConnectRegistry WinAPI_RegCopyTree ' +
4906 'WinAPI_RegCopyTreeEx WinAPI_RegCreateKey ' +
4907 'WinAPI_RegDeleteEmptyKey WinAPI_RegDeleteKey ' +
4908 'WinAPI_RegDeleteKeyValue WinAPI_RegDeleteTree ' +
4909 'WinAPI_RegDeleteTreeEx WinAPI_RegDeleteValue ' +
4910 'WinAPI_RegDisableReflectionKey WinAPI_RegDuplicateHKey ' +
4911 'WinAPI_RegEnableReflectionKey WinAPI_RegEnumKey ' +
4912 'WinAPI_RegEnumValue WinAPI_RegFlushKey ' +
4913 'WinAPI_RegisterApplicationRestart WinAPI_RegisterClass ' +
4914 'WinAPI_RegisterClassEx WinAPI_RegisterHotKey ' +
4915 'WinAPI_RegisterPowerSettingNotification ' +
4916 'WinAPI_RegisterRawInputDevices WinAPI_RegisterShellHookWindow ' +
4917 'WinAPI_RegisterWindowMessage WinAPI_RegLoadMUIString ' +
4918 'WinAPI_RegNotifyChangeKeyValue WinAPI_RegOpenKey ' +
4919 'WinAPI_RegQueryInfoKey WinAPI_RegQueryLastWriteTime ' +
4920 'WinAPI_RegQueryMultipleValues WinAPI_RegQueryReflectionKey ' +
4921 'WinAPI_RegQueryValue WinAPI_RegRestoreKey WinAPI_RegSaveKey ' +
4922 'WinAPI_RegSetValue WinAPI_ReleaseCapture WinAPI_ReleaseDC ' +
4923 'WinAPI_ReleaseMutex WinAPI_ReleaseSemaphore ' +
4924 'WinAPI_ReleaseStream WinAPI_RemoveClipboardFormatListener ' +
4925 'WinAPI_RemoveDirectory WinAPI_RemoveFontMemResourceEx ' +
4926 'WinAPI_RemoveFontResourceEx WinAPI_RemoveWindowSubclass ' +
4927 'WinAPI_ReOpenFile WinAPI_ReplaceFile WinAPI_ReplaceTextDlg ' +
4928 'WinAPI_ResetEvent WinAPI_RestartDlg WinAPI_RestoreDC ' +
4929 'WinAPI_RGB WinAPI_RotatePoints WinAPI_RoundRect ' +
4930 'WinAPI_SaveDC WinAPI_SaveFileDlg WinAPI_SaveHBITMAPToFile ' +
4931 'WinAPI_SaveHICONToFile WinAPI_ScaleWindowExt ' +
4932 'WinAPI_ScreenToClient WinAPI_SearchPath WinAPI_SelectClipPath ' +
4933 'WinAPI_SelectClipRgn WinAPI_SelectObject ' +
4934 'WinAPI_SendMessageTimeout WinAPI_SetActiveWindow ' +
4935 'WinAPI_SetArcDirection WinAPI_SetBitmapBits ' +
4936 'WinAPI_SetBitmapDimensionEx WinAPI_SetBkColor ' +
4937 'WinAPI_SetBkMode WinAPI_SetBoundsRect WinAPI_SetBrushOrg ' +
4938 'WinAPI_SetCapture WinAPI_SetCaretBlinkTime WinAPI_SetCaretPos ' +
4939 'WinAPI_SetClassLongEx WinAPI_SetColorAdjustment ' +
4940 'WinAPI_SetCompression WinAPI_SetCurrentDirectory ' +
4941 'WinAPI_SetCurrentProcessExplicitAppUserModelID WinAPI_SetCursor ' +
4942 'WinAPI_SetDCBrushColor WinAPI_SetDCPenColor ' +
4943 'WinAPI_SetDefaultPrinter WinAPI_SetDeviceGammaRamp ' +
4944 'WinAPI_SetDIBColorTable WinAPI_SetDIBits ' +
4945 'WinAPI_SetDIBitsToDevice WinAPI_SetDllDirectory ' +
4946 'WinAPI_SetEndOfFile WinAPI_SetEnhMetaFileBits ' +
4947 'WinAPI_SetErrorMode WinAPI_SetEvent WinAPI_SetFileAttributes ' +
4948 'WinAPI_SetFileInformationByHandleEx WinAPI_SetFilePointer ' +
4949 'WinAPI_SetFilePointerEx WinAPI_SetFileShortName ' +
4950 'WinAPI_SetFileValidData WinAPI_SetFocus WinAPI_SetFont ' +
4951 'WinAPI_SetForegroundWindow WinAPI_SetFRBuffer ' +
4952 'WinAPI_SetGraphicsMode WinAPI_SetHandleInformation ' +
4953 'WinAPI_SetInformationJobObject WinAPI_SetKeyboardLayout ' +
4954 'WinAPI_SetKeyboardState WinAPI_SetLastError ' +
4955 'WinAPI_SetLayeredWindowAttributes WinAPI_SetLocaleInfo ' +
4956 'WinAPI_SetMapMode WinAPI_SetMessageExtraInfo WinAPI_SetParent ' +
4957 'WinAPI_SetPixel WinAPI_SetPolyFillMode ' +
4958 'WinAPI_SetPriorityClass WinAPI_SetProcessAffinityMask ' +
4959 'WinAPI_SetProcessShutdownParameters ' +
4960 'WinAPI_SetProcessWindowStation WinAPI_SetRectRgn ' +
4961 'WinAPI_SetROP2 WinAPI_SetSearchPathMode ' +
4962 'WinAPI_SetStretchBltMode WinAPI_SetSysColors ' +
4963 'WinAPI_SetSystemCursor WinAPI_SetTextAlign ' +
4964 'WinAPI_SetTextCharacterExtra WinAPI_SetTextColor ' +
4965 'WinAPI_SetTextJustification WinAPI_SetThemeAppProperties ' +
4966 'WinAPI_SetThreadDesktop WinAPI_SetThreadErrorMode ' +
4967 'WinAPI_SetThreadExecutionState WinAPI_SetThreadLocale ' +
4968 'WinAPI_SetThreadUILanguage WinAPI_SetTimer ' +
4969 'WinAPI_SetUDFColorMode WinAPI_SetUserGeoID ' +
4970 'WinAPI_SetUserObjectInformation WinAPI_SetVolumeMountPoint ' +
4971 'WinAPI_SetWindowDisplayAffinity WinAPI_SetWindowExt ' +
4972 'WinAPI_SetWindowLong WinAPI_SetWindowOrg ' +
4973 'WinAPI_SetWindowPlacement WinAPI_SetWindowPos ' +
4974 'WinAPI_SetWindowRgn WinAPI_SetWindowsHookEx ' +
4975 'WinAPI_SetWindowSubclass WinAPI_SetWindowText ' +
4976 'WinAPI_SetWindowTheme WinAPI_SetWinEventHook ' +
4977 'WinAPI_SetWorldTransform WinAPI_SfcIsFileProtected ' +
4978 'WinAPI_SfcIsKeyProtected WinAPI_ShellAboutDlg ' +
4979 'WinAPI_ShellAddToRecentDocs WinAPI_ShellChangeNotify ' +
4980 'WinAPI_ShellChangeNotifyDeregister ' +
4981 'WinAPI_ShellChangeNotifyRegister WinAPI_ShellCreateDirectory ' +
4982 'WinAPI_ShellEmptyRecycleBin WinAPI_ShellExecute ' +
4983 'WinAPI_ShellExecuteEx WinAPI_ShellExtractAssociatedIcon ' +
4984 'WinAPI_ShellExtractIcon WinAPI_ShellFileOperation ' +
4985 'WinAPI_ShellFlushSFCache WinAPI_ShellGetFileInfo ' +
4986 'WinAPI_ShellGetIconOverlayIndex WinAPI_ShellGetImageList ' +
4987 'WinAPI_ShellGetKnownFolderIDList WinAPI_ShellGetKnownFolderPath ' +
4988 'WinAPI_ShellGetLocalizedName WinAPI_ShellGetPathFromIDList ' +
4989 'WinAPI_ShellGetSetFolderCustomSettings WinAPI_ShellGetSettings ' +
4990 'WinAPI_ShellGetSpecialFolderLocation ' +
4991 'WinAPI_ShellGetSpecialFolderPath WinAPI_ShellGetStockIconInfo ' +
4992 'WinAPI_ShellILCreateFromPath WinAPI_ShellNotifyIcon ' +
4993 'WinAPI_ShellNotifyIconGetRect WinAPI_ShellObjectProperties ' +
4994 'WinAPI_ShellOpenFolderAndSelectItems WinAPI_ShellOpenWithDlg ' +
4995 'WinAPI_ShellQueryRecycleBin ' +
4996 'WinAPI_ShellQueryUserNotificationState ' +
4997 'WinAPI_ShellRemoveLocalizedName WinAPI_ShellRestricted ' +
4998 'WinAPI_ShellSetKnownFolderPath WinAPI_ShellSetLocalizedName ' +
4999 'WinAPI_ShellSetSettings WinAPI_ShellStartNetConnectionDlg ' +
5000 'WinAPI_ShellUpdateImage WinAPI_ShellUserAuthenticationDlg ' +
5001 'WinAPI_ShellUserAuthenticationDlgEx WinAPI_ShortToWord ' +
5002 'WinAPI_ShowCaret WinAPI_ShowCursor WinAPI_ShowError ' +
5003 'WinAPI_ShowLastError WinAPI_ShowMsg WinAPI_ShowOwnedPopups ' +
5004 'WinAPI_ShowWindow WinAPI_ShutdownBlockReasonCreate ' +
5005 'WinAPI_ShutdownBlockReasonDestroy ' +
5006 'WinAPI_ShutdownBlockReasonQuery WinAPI_SizeOfResource ' +
5007 'WinAPI_StretchBlt WinAPI_StretchDIBits ' +
5008 'WinAPI_StrFormatByteSize WinAPI_StrFormatByteSizeEx ' +
5009 'WinAPI_StrFormatKBSize WinAPI_StrFromTimeInterval ' +
5010 'WinAPI_StringFromGUID WinAPI_StringLenA WinAPI_StringLenW ' +
5011 'WinAPI_StrLen WinAPI_StrokeAndFillPath WinAPI_StrokePath ' +
5012 'WinAPI_StructToArray WinAPI_SubLangId WinAPI_SubtractRect ' +
5013 'WinAPI_SwapDWord WinAPI_SwapQWord WinAPI_SwapWord ' +
5014 'WinAPI_SwitchColor WinAPI_SwitchDesktop ' +
5015 'WinAPI_SwitchToThisWindow WinAPI_SystemParametersInfo ' +
5016 'WinAPI_TabbedTextOut WinAPI_TerminateJobObject ' +
5017 'WinAPI_TerminateProcess WinAPI_TextOut WinAPI_TileWindows ' +
5018 'WinAPI_TrackMouseEvent WinAPI_TransparentBlt ' +
5019 'WinAPI_TwipsPerPixelX WinAPI_TwipsPerPixelY ' +
5020 'WinAPI_UnhookWindowsHookEx WinAPI_UnhookWinEvent ' +
5021 'WinAPI_UnionRect WinAPI_UnionStruct WinAPI_UniqueHardwareID ' +
5022 'WinAPI_UnloadKeyboardLayout WinAPI_UnlockFile ' +
5023 'WinAPI_UnmapViewOfFile WinAPI_UnregisterApplicationRestart ' +
5024 'WinAPI_UnregisterClass WinAPI_UnregisterHotKey ' +
5025 'WinAPI_UnregisterPowerSettingNotification ' +
5026 'WinAPI_UpdateLayeredWindow WinAPI_UpdateLayeredWindowEx ' +
5027 'WinAPI_UpdateLayeredWindowIndirect WinAPI_UpdateResource ' +
5028 'WinAPI_UpdateWindow WinAPI_UrlApplyScheme ' +
5029 'WinAPI_UrlCanonicalize WinAPI_UrlCombine WinAPI_UrlCompare ' +
5030 'WinAPI_UrlCreateFromPath WinAPI_UrlFixup WinAPI_UrlGetPart ' +
5031 'WinAPI_UrlHash WinAPI_UrlIs WinAPI_UserHandleGrantAccess ' +
5032 'WinAPI_ValidateRect WinAPI_ValidateRgn WinAPI_VerQueryRoot ' +
5033 'WinAPI_VerQueryValue WinAPI_VerQueryValueEx ' +
5034 'WinAPI_WaitForInputIdle WinAPI_WaitForMultipleObjects ' +
5035 'WinAPI_WaitForSingleObject WinAPI_WideCharToMultiByte ' +
5036 'WinAPI_WidenPath WinAPI_WindowFromDC WinAPI_WindowFromPoint ' +
5037 'WinAPI_WordToShort WinAPI_Wow64EnableWow64FsRedirection ' +
5038 'WinAPI_WriteConsole WinAPI_WriteFile ' +
5039 'WinAPI_WriteProcessMemory WinAPI_ZeroMemory ' +
5040 'WinNet_AddConnection WinNet_AddConnection2 ' +
5041 'WinNet_AddConnection3 WinNet_CancelConnection ' +
5042 'WinNet_CancelConnection2 WinNet_CloseEnum ' +
5043 'WinNet_ConnectionDialog WinNet_ConnectionDialog1 ' +
5044 'WinNet_DisconnectDialog WinNet_DisconnectDialog1 ' +
5045 'WinNet_EnumResource WinNet_GetConnection ' +
5046 'WinNet_GetConnectionPerformance WinNet_GetLastError ' +
5047 'WinNet_GetNetworkInformation WinNet_GetProviderName ' +
5048 'WinNet_GetResourceInformation WinNet_GetResourceParent ' +
5049 'WinNet_GetUniversalName WinNet_GetUser WinNet_OpenEnum ' +
5050 'WinNet_RestoreConnection WinNet_UseConnection Word_Create ' +
5051 'Word_DocAdd Word_DocAttach Word_DocClose Word_DocExport ' +
5052 'Word_DocFind Word_DocFindReplace Word_DocGet ' +
5053 'Word_DocLinkAdd Word_DocLinkGet Word_DocOpen ' +
5054 'Word_DocPictureAdd Word_DocPrint Word_DocRangeSet ' +
5055 'Word_DocSave Word_DocSaveAs Word_DocTableRead ' +
5056 'Word_DocTableWrite Word_Quit',
5057
5058 COMMENT = {
5059 variants: [
5060 hljs.COMMENT(';', '$', {relevance: 0}),
5061 hljs.COMMENT('#cs', '#ce'),
5062 hljs.COMMENT('#comments-start', '#comments-end')
5063 ]
5064 },
5065
5066 VARIABLE = {
5067 begin: '\\$[A-z0-9_]+'
5068 },
5069
5070 STRING = {
5071 className: 'string',
5072 variants: [{
5073 begin: /"/,
5074 end: /"/,
5075 contains: [{
5076 begin: /""/,
5077 relevance: 0
5078 }]
5079 }, {
5080 begin: /'/,
5081 end: /'/,
5082 contains: [{
5083 begin: /''/,
5084 relevance: 0
5085 }]
5086 }]
5087 },
5088
5089 NUMBER = {
5090 variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]
5091 },
5092
5093 PREPROCESSOR = {
5094 className: 'meta',
5095 begin: '#',
5096 end: '$',
5097 keywords: {'meta-keyword': 'include include-once NoTrayIcon OnAutoItStartRegister RequireAdmin pragma ' +
5098 'Au3Stripper_Ignore_Funcs Au3Stripper_Ignore_Variables ' +
5099 'Au3Stripper_Off Au3Stripper_On Au3Stripper_Parameters ' +
5100 'AutoIt3Wrapper_Add_Constants AutoIt3Wrapper_Au3Check_Parameters ' +
5101 'AutoIt3Wrapper_Au3Check_Stop_OnWarning AutoIt3Wrapper_Aut2Exe ' +
5102 'AutoIt3Wrapper_AutoIt3 AutoIt3Wrapper_AutoIt3Dir ' +
5103 'AutoIt3Wrapper_Change2CUI AutoIt3Wrapper_Compile_Both ' +
5104 'AutoIt3Wrapper_Compression AutoIt3Wrapper_EndIf ' +
5105 'AutoIt3Wrapper_Icon AutoIt3Wrapper_If_Compile ' +
5106 'AutoIt3Wrapper_If_Run AutoIt3Wrapper_Jump_To_First_Error ' +
5107 'AutoIt3Wrapper_OutFile AutoIt3Wrapper_OutFile_Type ' +
5108 'AutoIt3Wrapper_OutFile_X64 AutoIt3Wrapper_PlugIn_Funcs ' +
5109 'AutoIt3Wrapper_Res_Comment Autoit3Wrapper_Res_Compatibility ' +
5110 'AutoIt3Wrapper_Res_Description AutoIt3Wrapper_Res_Field ' +
5111 'AutoIt3Wrapper_Res_File_Add AutoIt3Wrapper_Res_FileVersion ' +
5112 'AutoIt3Wrapper_Res_FileVersion_AutoIncrement ' +
5113 'AutoIt3Wrapper_Res_Icon_Add AutoIt3Wrapper_Res_Language ' +
5114 'AutoIt3Wrapper_Res_LegalCopyright ' +
5115 'AutoIt3Wrapper_Res_ProductVersion ' +
5116 'AutoIt3Wrapper_Res_requestedExecutionLevel ' +
5117 'AutoIt3Wrapper_Res_SaveSource AutoIt3Wrapper_Run_After ' +
5118 'AutoIt3Wrapper_Run_Au3Check AutoIt3Wrapper_Run_Au3Stripper ' +
5119 'AutoIt3Wrapper_Run_Before AutoIt3Wrapper_Run_Debug_Mode ' +
5120 'AutoIt3Wrapper_Run_SciTE_Minimized ' +
5121 'AutoIt3Wrapper_Run_SciTE_OutputPane_Minimized ' +
5122 'AutoIt3Wrapper_Run_Tidy AutoIt3Wrapper_ShowProgress ' +
5123 'AutoIt3Wrapper_Testing AutoIt3Wrapper_Tidy_Stop_OnError ' +
5124 'AutoIt3Wrapper_UPX_Parameters AutoIt3Wrapper_UseUPX ' +
5125 'AutoIt3Wrapper_UseX64 AutoIt3Wrapper_Version ' +
5126 'AutoIt3Wrapper_Versioning AutoIt3Wrapper_Versioning_Parameters ' +
5127 'Tidy_Off Tidy_On Tidy_Parameters EndRegion Region'},
5128 contains: [{
5129 begin: /\\\n/,
5130 relevance: 0
5131 }, {
5132 beginKeywords: 'include',
5133 keywords: {'meta-keyword': 'include'},
5134 end: '$',
5135 contains: [
5136 STRING, {
5137 className: 'meta-string',
5138 variants: [{
5139 begin: '<',
5140 end: '>'
5141 }, {
5142 begin: /"/,
5143 end: /"/,
5144 contains: [{
5145 begin: /""/,
5146 relevance: 0
5147 }]
5148 }, {
5149 begin: /'/,
5150 end: /'/,
5151 contains: [{
5152 begin: /''/,
5153 relevance: 0
5154 }]
5155 }]
5156 }
5157 ]
5158 },
5159 STRING,
5160 COMMENT
5161 ]
5162 },
5163
5164 CONSTANT = {
5165 className: 'symbol',
5166 // begin: '@',
5167 // end: '$',
5168 // keywords: 'AppDataCommonDir AppDataDir AutoItExe AutoItPID AutoItVersion AutoItX64 COM_EventObj CommonFilesDir Compiled ComputerName ComSpec CPUArch CR CRLF DesktopCommonDir DesktopDepth DesktopDir DesktopHeight DesktopRefresh DesktopWidth DocumentsCommonDir error exitCode exitMethod extended FavoritesCommonDir FavoritesDir GUI_CtrlHandle GUI_CtrlId GUI_DragFile GUI_DragId GUI_DropId GUI_WinHandle HomeDrive HomePath HomeShare HotKeyPressed HOUR IPAddress1 IPAddress2 IPAddress3 IPAddress4 KBLayout LF LocalAppDataDir LogonDNSDomain LogonDomain LogonServer MDAY MIN MON MSEC MUILang MyDocumentsDir NumParams OSArch OSBuild OSLang OSServicePack OSType OSVersion ProgramFilesDir ProgramsCommonDir ProgramsDir ScriptDir ScriptFullPath ScriptLineNumber ScriptName SEC StartMenuCommonDir StartMenuDir StartupCommonDir StartupDir SW_DISABLE SW_ENABLE SW_HIDE SW_LOCK SW_MAXIMIZE SW_MINIMIZE SW_RESTORE SW_SHOW SW_SHOWDEFAULT SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_SHOWMINNOACTIVE SW_SHOWNA SW_SHOWNOACTIVATE SW_SHOWNORMAL SW_UNLOCK SystemDir TAB TempDir TRAY_ID TrayIconFlashing TrayIconVisible UserName UserProfileDir WDAY WindowsDir WorkingDir YDAY YEAR',
5169 // relevance: 5
5170 begin: '@[A-z0-9_]+'
5171 },
5172
5173 FUNCTION = {
5174 className: 'function',
5175 beginKeywords: 'Func',
5176 end: '$',
5177 illegal: '\\$|\\[|%',
5178 contains: [
5179 hljs.UNDERSCORE_TITLE_MODE, {
5180 className: 'params',
5181 begin: '\\(',
5182 end: '\\)',
5183 contains: [
5184 VARIABLE,
5185 STRING,
5186 NUMBER
5187 ]
5188 }
5189 ]
5190 };
5191
5192 return {
5193 case_insensitive: true,
5194 illegal: /\/\*/,
5195 keywords: {
5196 keyword: KEYWORDS,
5197 built_in: BUILT_IN,
5198 literal: LITERAL
5199 },
5200 contains: [
5201 COMMENT,
5202 VARIABLE,
5203 STRING,
5204 NUMBER,
5205 PREPROCESSOR,
5206 CONSTANT,
5207 FUNCTION
5208 ]
5209 }
5210}
5211},{name:"avrasm",create:/*
5212Language: AVR Assembler
5213Author: Vladimir Ermakov <vooon341@gmail.com>
5214Category: assembler
5215*/
5216
5217function(hljs) {
5218 return {
5219 case_insensitive: true,
5220 lexemes: '\\.?' + hljs.IDENT_RE,
5221 keywords: {
5222 keyword:
5223 /* mnemonic */
5224 'adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs ' +
5225 'brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr ' +
5226 'clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor ' +
5227 'fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul ' +
5228 'muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs ' +
5229 'sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub ' +
5230 'subi swap tst wdr',
5231 built_in:
5232 /* general purpose registers */
5233 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 ' +
5234 'r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ' +
5235 /* IO Registers (ATMega128) */
5236 'ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h ' +
5237 'tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ' +
5238 'ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ' +
5239 'ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk ' +
5240 'tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ' +
5241 'ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr ' +
5242 'porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ' +
5243 'ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf',
5244 meta:
5245 '.byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list ' +
5246 '.listmac .macro .nolist .org .set'
5247 },
5248 contains: [
5249 hljs.C_BLOCK_COMMENT_MODE,
5250 hljs.COMMENT(
5251 ';',
5252 '$',
5253 {
5254 relevance: 0
5255 }
5256 ),
5257 hljs.C_NUMBER_MODE, // 0x..., decimal, float
5258 hljs.BINARY_NUMBER_MODE, // 0b...
5259 {
5260 className: 'number',
5261 begin: '\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)' // $..., 0o...
5262 },
5263 hljs.QUOTE_STRING_MODE,
5264 {
5265 className: 'string',
5266 begin: '\'', end: '[^\\\\]\'',
5267 illegal: '[^\\\\][^\']'
5268 },
5269 {className: 'symbol', begin: '^[A-Za-z0-9_.$]+:'},
5270 {className: 'meta', begin: '#', end: '$'},
5271 { // ะฟะพะดัั‚ะฐะฝะพะฒะบะฐ ะฒ ยซ.macroยป
5272 className: 'subst',
5273 begin: '@[0-9]+'
5274 }
5275 ]
5276 };
5277}
5278},{name:"axapta",create:/*
5279Language: Axapta
5280Author: Dmitri Roudakov <dmitri@roudakov.ru>
5281Category: enterprise
5282*/
5283
5284function(hljs) {
5285 return {
5286 keywords: 'false int abstract private char boolean static null if for true ' +
5287 'while long throw finally protected final return void enum else ' +
5288 'break new catch byte super case short default double public try this switch ' +
5289 'continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count ' +
5290 'order group by asc desc index hint like dispaly edit client server ttsbegin ' +
5291 'ttscommit str real date container anytype common div mod',
5292 contains: [
5293 hljs.C_LINE_COMMENT_MODE,
5294 hljs.C_BLOCK_COMMENT_MODE,
5295 hljs.APOS_STRING_MODE,
5296 hljs.QUOTE_STRING_MODE,
5297 hljs.C_NUMBER_MODE,
5298 {
5299 className: 'meta',
5300 begin: '#', end: '$'
5301 },
5302 {
5303 className: 'class',
5304 beginKeywords: 'class interface', end: '{', excludeEnd: true,
5305 illegal: ':',
5306 contains: [
5307 {beginKeywords: 'extends implements'},
5308 hljs.UNDERSCORE_TITLE_MODE
5309 ]
5310 }
5311 ]
5312 };
5313}
5314},{name:"bash",create:/*
5315Language: Bash
5316Author: vah <vahtenberg@gmail.com>
5317Contributrors: Benjamin Pannell <contact@sierrasoftworks.com>
5318Category: common
5319*/
5320
5321function(hljs) {
5322 var VAR = {
5323 className: 'variable',
5324 variants: [
5325 {begin: /\$[\w\d#@][\w\d_]*/},
5326 {begin: /\$\{(.*?)}/}
5327 ]
5328 };
5329 var QUOTE_STRING = {
5330 className: 'string',
5331 begin: /"/, end: /"/,
5332 contains: [
5333 hljs.BACKSLASH_ESCAPE,
5334 VAR,
5335 {
5336 className: 'variable',
5337 begin: /\$\(/, end: /\)/,
5338 contains: [hljs.BACKSLASH_ESCAPE]
5339 }
5340 ]
5341 };
5342 var APOS_STRING = {
5343 className: 'string',
5344 begin: /'/, end: /'/
5345 };
5346
5347 return {
5348 aliases: ['sh', 'zsh'],
5349 lexemes: /-?[a-z\.]+/,
5350 keywords: {
5351 keyword:
5352 'if then else elif fi for while in do done case esac function',
5353 literal:
5354 'true false',
5355 built_in:
5356 // Shell built-ins
5357 // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html
5358 'break cd continue eval exec exit export getopts hash pwd readonly return shift test times ' +
5359 'trap umask unset ' +
5360 // Bash built-ins
5361 'alias bind builtin caller command declare echo enable help let local logout mapfile printf ' +
5362 'read readarray source type typeset ulimit unalias ' +
5363 // Shell modifiers
5364 'set shopt ' +
5365 // Zsh built-ins
5366 'autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles ' +
5367 'compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate ' +
5368 'fc fg float functions getcap getln history integer jobs kill limit log noglob popd print ' +
5369 'pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit ' +
5370 'unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof ' +
5371 'zpty zregexparse zsocket zstyle ztcp',
5372 _:
5373 '-ne -eq -lt -gt -f -d -e -s -l -a' // relevance booster
5374 },
5375 contains: [
5376 {
5377 className: 'meta',
5378 begin: /^#![^\n]+sh\s*$/,
5379 relevance: 10
5380 },
5381 {
5382 className: 'function',
5383 begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/,
5384 returnBegin: true,
5385 contains: [hljs.inherit(hljs.TITLE_MODE, {begin: /\w[\w\d_]*/})],
5386 relevance: 0
5387 },
5388 hljs.HASH_COMMENT_MODE,
5389 QUOTE_STRING,
5390 APOS_STRING,
5391 VAR
5392 ]
5393 };
5394}
5395},{name:"brainfuck",create:/*
5396Language: Brainfuck
5397Author: Evgeny Stepanischev <imbolk@gmail.com>
5398*/
5399
5400function(hljs){
5401 var LITERAL = {
5402 className: 'literal',
5403 begin: '[\\+\\-]',
5404 relevance: 0
5405 };
5406 return {
5407 aliases: ['bf'],
5408 contains: [
5409 hljs.COMMENT(
5410 '[^\\[\\]\\.,\\+\\-<> \r\n]',
5411 '[\\[\\]\\.,\\+\\-<> \r\n]',
5412 {
5413 returnEnd: true,
5414 relevance: 0
5415 }
5416 ),
5417 {
5418 className: 'title',
5419 begin: '[\\[\\]]',
5420 relevance: 0
5421 },
5422 {
5423 className: 'string',
5424 begin: '[\\.,]',
5425 relevance: 0
5426 },
5427 {
5428 // this mode works as the only relevance counter
5429 begin: /\+\+|\-\-/, returnBegin: true,
5430 contains: [LITERAL]
5431 },
5432 LITERAL
5433 ]
5434 };
5435}
5436},{name:"cal",create:/*
5437Language: C/AL
5438Author: Kenneth Fuglsang Christensen <kfuglsang@gmail.com>
5439Description: Provides highlighting of Microsoft Dynamics NAV C/AL code files
5440*/
5441
5442function(hljs) {
5443 var KEYWORDS =
5444 'div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to ' +
5445 'until while with var';
5446 var LITERALS = 'false true';
5447 var COMMENT_MODES = [
5448 hljs.C_LINE_COMMENT_MODE,
5449 hljs.COMMENT(
5450 /\{/,
5451 /\}/,
5452 {
5453 relevance: 0
5454 }
5455 ),
5456 hljs.COMMENT(
5457 /\(\*/,
5458 /\*\)/,
5459 {
5460 relevance: 10
5461 }
5462 )
5463 ];
5464 var STRING = {
5465 className: 'string',
5466 begin: /'/, end: /'/,
5467 contains: [{begin: /''/}]
5468 };
5469 var CHAR_STRING = {
5470 className: 'string', begin: /(#\d+)+/
5471 };
5472 var DATE = {
5473 className: 'number',
5474 begin: '\\b\\d+(\\.\\d+)?(DT|D|T)',
5475 relevance: 0
5476 };
5477 var DBL_QUOTED_VARIABLE = {
5478 className: 'string', // not a string technically but makes sense to be highlighted in the same style
5479 begin: '"',
5480 end: '"'
5481 };
5482
5483 var PROCEDURE = {
5484 className: 'function',
5485 beginKeywords: 'procedure', end: /[:;]/,
5486 keywords: 'procedure|10',
5487 contains: [
5488 hljs.TITLE_MODE,
5489 {
5490 className: 'params',
5491 begin: /\(/, end: /\)/,
5492 keywords: KEYWORDS,
5493 contains: [STRING, CHAR_STRING]
5494 }
5495 ].concat(COMMENT_MODES)
5496 };
5497
5498 var OBJECT = {
5499 className: 'class',
5500 begin: 'OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)',
5501 returnBegin: true,
5502 contains: [
5503 hljs.TITLE_MODE,
5504 PROCEDURE
5505 ]
5506 };
5507
5508 return {
5509 case_insensitive: true,
5510 keywords: { keyword: KEYWORDS, literal: LITERALS },
5511 illegal: /\/\*/,
5512 contains: [
5513 STRING, CHAR_STRING,
5514 DATE, DBL_QUOTED_VARIABLE,
5515 hljs.NUMBER_MODE,
5516 OBJECT,
5517 PROCEDURE
5518 ]
5519 };
5520}
5521},{name:"capnproto",create:/*
5522Language: Capโ€™n Proto
5523Author: Oleg Efimov <efimovov@gmail.com>
5524Description: Capโ€™n Proto message definition format
5525Category: protocols
5526*/
5527
5528function(hljs) {
5529 return {
5530 aliases: ['capnp'],
5531 keywords: {
5532 keyword:
5533 'struct enum interface union group import using const annotation extends in of on as with from fixed',
5534 built_in:
5535 'Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 ' +
5536 'Text Data AnyPointer AnyStruct Capability List',
5537 literal:
5538 'true false'
5539 },
5540 contains: [
5541 hljs.QUOTE_STRING_MODE,
5542 hljs.NUMBER_MODE,
5543 hljs.HASH_COMMENT_MODE,
5544 {
5545 className: 'meta',
5546 begin: /@0x[\w\d]{16};/,
5547 illegal: /\n/
5548 },
5549 {
5550 className: 'symbol',
5551 begin: /@\d+\b/
5552 },
5553 {
5554 className: 'class',
5555 beginKeywords: 'struct enum', end: /\{/,
5556 illegal: /\n/,
5557 contains: [
5558 hljs.inherit(hljs.TITLE_MODE, {
5559 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
5560 })
5561 ]
5562 },
5563 {
5564 className: 'class',
5565 beginKeywords: 'interface', end: /\{/,
5566 illegal: /\n/,
5567 contains: [
5568 hljs.inherit(hljs.TITLE_MODE, {
5569 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
5570 })
5571 ]
5572 }
5573 ]
5574 };
5575}
5576},{name:"ceylon",create:/*
5577Language: Ceylon
5578Author: Lucas Werkmeister <mail@lucaswerkmeister.de>
5579*/
5580function(hljs) {
5581 // 2.3. Identifiers and keywords
5582 var KEYWORDS =
5583 'assembly module package import alias class interface object given value ' +
5584 'assign void function new of extends satisfies abstracts in out return ' +
5585 'break continue throw assert dynamic if else switch case for while try ' +
5586 'catch finally then let this outer super is exists nonempty';
5587 // 7.4.1 Declaration Modifiers
5588 var DECLARATION_MODIFIERS =
5589 'shared abstract formal default actual variable late native deprecated' +
5590 'final sealed annotation suppressWarnings small';
5591 // 7.4.2 Documentation
5592 var DOCUMENTATION =
5593 'doc by license see throws tagged';
5594 var SUBST = {
5595 className: 'subst', excludeBegin: true, excludeEnd: true,
5596 begin: /``/, end: /``/,
5597 keywords: KEYWORDS,
5598 relevance: 10
5599 };
5600 var EXPRESSIONS = [
5601 {
5602 // verbatim string
5603 className: 'string',
5604 begin: '"""',
5605 end: '"""',
5606 relevance: 10
5607 },
5608 {
5609 // string literal or template
5610 className: 'string',
5611 begin: '"', end: '"',
5612 contains: [SUBST]
5613 },
5614 {
5615 // character literal
5616 className: 'string',
5617 begin: "'",
5618 end: "'"
5619 },
5620 {
5621 // numeric literal
5622 className: 'number',
5623 begin: '#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?',
5624 relevance: 0
5625 }
5626 ];
5627 SUBST.contains = EXPRESSIONS;
5628
5629 return {
5630 keywords: {
5631 keyword: KEYWORDS + ' ' + DECLARATION_MODIFIERS,
5632 meta: DOCUMENTATION
5633 },
5634 illegal: '\\$[^01]|#[^0-9a-fA-F]',
5635 contains: [
5636 hljs.C_LINE_COMMENT_MODE,
5637 hljs.COMMENT('/\\*', '\\*/', {contains: ['self']}),
5638 {
5639 // compiler annotation
5640 className: 'meta',
5641 begin: '@[a-z]\\w*(?:\\:\"[^\"]*\")?'
5642 }
5643 ].concat(EXPRESSIONS)
5644 };
5645}
5646},{name:"clojure-repl",create:/*
5647Language: Clojure REPL
5648Description: Clojure REPL sessions
5649Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
5650Requires: clojure.js
5651Category: lisp
5652*/
5653
5654function(hljs) {
5655 return {
5656 contains: [
5657 {
5658 className: 'meta',
5659 begin: /^([\w.-]+|\s*#_)=>/,
5660 starts: {
5661 end: /$/,
5662 subLanguage: 'clojure'
5663 }
5664 }
5665 ]
5666 }
5667}
5668},{name:"clojure",create:/*
5669Language: Clojure
5670Description: Clojure syntax (based on lisp.js)
5671Author: mfornos
5672Category: lisp
5673*/
5674
5675function(hljs) {
5676 var keywords = {
5677 'builtin-name':
5678 // Clojure keywords
5679 'def defonce cond apply if-not if-let if not not= = < > <= >= == + / * - rem '+
5680 'quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? '+
5681 'set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? '+
5682 'class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? '+
5683 'string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . '+
5684 'inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last '+
5685 'drop-while while intern condp case reduced cycle split-at split-with repeat replicate '+
5686 'iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext '+
5687 'nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends '+
5688 'add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler '+
5689 'set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter '+
5690 'monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or '+
5691 'when when-not when-let comp juxt partial sequence memoize constantly complement identity assert '+
5692 'peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast '+
5693 'sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import '+
5694 'refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! '+
5695 'assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger '+
5696 'bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline '+
5697 'flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking '+
5698 'assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! '+
5699 'reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! '+
5700 'new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty '+
5701 'hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list '+
5702 'disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer '+
5703 'chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate '+
5704 'unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta '+
5705 'lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize'
5706 };
5707
5708 var SYMBOLSTART = 'a-zA-Z_\\-!.?+*=<>&#\'';
5709 var SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*';
5710 var SIMPLE_NUMBER_RE = '[-+]?\\d+(\\.\\d+)?';
5711
5712 var SYMBOL = {
5713 begin: SYMBOL_RE,
5714 relevance: 0
5715 };
5716 var NUMBER = {
5717 className: 'number', begin: SIMPLE_NUMBER_RE,
5718 relevance: 0
5719 };
5720 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});
5721 var COMMENT = hljs.COMMENT(
5722 ';',
5723 '$',
5724 {
5725 relevance: 0
5726 }
5727 );
5728 var LITERAL = {
5729 className: 'literal',
5730 begin: /\b(true|false|nil)\b/
5731 };
5732 var COLLECTION = {
5733 begin: '[\\[\\{]', end: '[\\]\\}]'
5734 };
5735 var HINT = {
5736 className: 'comment',
5737 begin: '\\^' + SYMBOL_RE
5738 };
5739 var HINT_COL = hljs.COMMENT('\\^\\{', '\\}');
5740 var KEY = {
5741 className: 'symbol',
5742 begin: '[:]' + SYMBOL_RE
5743 };
5744 var LIST = {
5745 begin: '\\(', end: '\\)'
5746 };
5747 var BODY = {
5748 endsWithParent: true,
5749 relevance: 0
5750 };
5751 var NAME = {
5752 keywords: keywords,
5753 lexemes: SYMBOL_RE,
5754 className: 'name', begin: SYMBOL_RE,
5755 starts: BODY
5756 };
5757 var DEFAULT_CONTAINS = [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL, SYMBOL];
5758
5759 LIST.contains = [hljs.COMMENT('comment', ''), NAME, BODY];
5760 BODY.contains = DEFAULT_CONTAINS;
5761 COLLECTION.contains = DEFAULT_CONTAINS;
5762
5763 return {
5764 aliases: ['clj'],
5765 illegal: /\S/,
5766 contains: [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL]
5767 }
5768}
5769},{name:"cmake",create:/*
5770Language: CMake
5771Description: CMake is an open-source cross-platform system for build automation.
5772Author: Igor Kalnitsky <igor@kalnitsky.org>
5773Website: http://kalnitsky.org/
5774*/
5775
5776function(hljs) {
5777 return {
5778 aliases: ['cmake.in'],
5779 case_insensitive: true,
5780 keywords: {
5781 keyword:
5782 'add_custom_command add_custom_target add_definitions add_dependencies ' +
5783 'add_executable add_library add_subdirectory add_test aux_source_directory ' +
5784 'break build_command cmake_minimum_required cmake_policy configure_file ' +
5785 'create_test_sourcelist define_property else elseif enable_language enable_testing ' +
5786 'endforeach endfunction endif endmacro endwhile execute_process export find_file ' +
5787 'find_library find_package find_path find_program fltk_wrap_ui foreach function ' +
5788 'get_cmake_property get_directory_property get_filename_component get_property ' +
5789 'get_source_file_property get_target_property get_test_property if include ' +
5790 'include_directories include_external_msproject include_regular_expression install ' +
5791 'link_directories load_cache load_command macro mark_as_advanced message option ' +
5792 'output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return ' +
5793 'separate_arguments set set_directory_properties set_property ' +
5794 'set_source_files_properties set_target_properties set_tests_properties site_name ' +
5795 'source_group string target_link_libraries try_compile try_run unset variable_watch ' +
5796 'while build_name exec_program export_library_dependencies install_files ' +
5797 'install_programs install_targets link_libraries make_directory remove subdir_depends ' +
5798 'subdirs use_mangled_mesa utility_source variable_requires write_file ' +
5799 'qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or ' +
5800 'equal less greater strless strgreater strequal matches'
5801 },
5802 contains: [
5803 {
5804 className: 'variable',
5805 begin: '\\${', end: '}'
5806 },
5807 hljs.HASH_COMMENT_MODE,
5808 hljs.QUOTE_STRING_MODE,
5809 hljs.NUMBER_MODE
5810 ]
5811 };
5812}
5813},{name:"coffeescript",create:/*
5814Language: CoffeeScript
5815Author: Dmytrii Nagirniak <dnagir@gmail.com>
5816Contributors: Oleg Efimov <efimovov@gmail.com>, Cรฉdric Nรฉhรฉmie <cedric.nehemie@gmail.com>
5817Description: CoffeeScript is a programming language that transcompiles to JavaScript. For info about language see http://coffeescript.org/
5818Category: common, scripting
5819*/
5820
5821function(hljs) {
5822 var KEYWORDS = {
5823 keyword:
5824 // JS keywords
5825 'in if for while finally new do return else break catch instanceof throw try this ' +
5826 'switch continue typeof delete debugger super ' +
5827 // Coffee keywords
5828 'then unless until loop of by when and or is isnt not',
5829 literal:
5830 // JS literals
5831 'true false null undefined ' +
5832 // Coffee literals
5833 'yes no on off',
5834 built_in:
5835 'npm require console print module global window document'
5836 };
5837 var JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';
5838 var SUBST = {
5839 className: 'subst',
5840 begin: /#\{/, end: /}/,
5841 keywords: KEYWORDS
5842 };
5843 var EXPRESSIONS = [
5844 hljs.BINARY_NUMBER_MODE,
5845 hljs.inherit(hljs.C_NUMBER_MODE, {starts: {end: '(\\s*/)?', relevance: 0}}), // a number tries to eat the following slash to prevent treating it as a regexp
5846 {
5847 className: 'string',
5848 variants: [
5849 {
5850 begin: /'''/, end: /'''/,
5851 contains: [hljs.BACKSLASH_ESCAPE]
5852 },
5853 {
5854 begin: /'/, end: /'/,
5855 contains: [hljs.BACKSLASH_ESCAPE]
5856 },
5857 {
5858 begin: /"""/, end: /"""/,
5859 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
5860 },
5861 {
5862 begin: /"/, end: /"/,
5863 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
5864 }
5865 ]
5866 },
5867 {
5868 className: 'regexp',
5869 variants: [
5870 {
5871 begin: '///', end: '///',
5872 contains: [SUBST, hljs.HASH_COMMENT_MODE]
5873 },
5874 {
5875 begin: '//[gim]*',
5876 relevance: 0
5877 },
5878 {
5879 // regex can't start with space to parse x / 2 / 3 as two divisions
5880 // regex can't start with *, and it supports an "illegal" in the main mode
5881 begin: /\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/
5882 }
5883 ]
5884 },
5885 {
5886 begin: '@' + JS_IDENT_RE // relevance booster
5887 },
5888 {
5889 begin: '`', end: '`',
5890 excludeBegin: true, excludeEnd: true,
5891 subLanguage: 'javascript'
5892 }
5893 ];
5894 SUBST.contains = EXPRESSIONS;
5895
5896 var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE});
5897 var PARAMS_RE = '(\\(.*\\))?\\s*\\B[-=]>';
5898 var PARAMS = {
5899 className: 'params',
5900 begin: '\\([^\\(]', returnBegin: true,
5901 /* We need another contained nameless mode to not have every nested
5902 pair of parens to be called "params" */
5903 contains: [{
5904 begin: /\(/, end: /\)/,
5905 keywords: KEYWORDS,
5906 contains: ['self'].concat(EXPRESSIONS)
5907 }]
5908 };
5909
5910 return {
5911 aliases: ['coffee', 'cson', 'iced'],
5912 keywords: KEYWORDS,
5913 illegal: /\/\*/,
5914 contains: EXPRESSIONS.concat([
5915 hljs.COMMENT('###', '###'),
5916 hljs.HASH_COMMENT_MODE,
5917 {
5918 className: 'function',
5919 begin: '^\\s*' + JS_IDENT_RE + '\\s*=\\s*' + PARAMS_RE, end: '[-=]>',
5920 returnBegin: true,
5921 contains: [TITLE, PARAMS]
5922 },
5923 {
5924 // anonymous function start
5925 begin: /[:\(,=]\s*/,
5926 relevance: 0,
5927 contains: [
5928 {
5929 className: 'function',
5930 begin: PARAMS_RE, end: '[-=]>',
5931 returnBegin: true,
5932 contains: [PARAMS]
5933 }
5934 ]
5935 },
5936 {
5937 className: 'class',
5938 beginKeywords: 'class',
5939 end: '$',
5940 illegal: /[:="\[\]]/,
5941 contains: [
5942 {
5943 beginKeywords: 'extends',
5944 endsWithParent: true,
5945 illegal: /[:="\[\]]/,
5946 contains: [TITLE]
5947 },
5948 TITLE
5949 ]
5950 },
5951 {
5952 begin: JS_IDENT_RE + ':', end: ':',
5953 returnBegin: true, returnEnd: true,
5954 relevance: 0
5955 }
5956 ])
5957 };
5958}
5959},{name:"cos",create:/*
5960Language: Cachรฉ Object Script
5961Author: Nikita Savchenko <zitros.lab@gmail.com>
5962Category: common
5963*/
5964function cos (hljs) {
5965
5966 var STRINGS = {
5967 className: 'string',
5968 variants: [
5969 {
5970 begin: '"',
5971 end: '"',
5972 contains: [{ // escaped
5973 begin: "\"\"",
5974 relevance: 0
5975 }]
5976 }
5977 ]
5978 };
5979
5980 var NUMBERS = {
5981 className: "number",
5982 begin: "\\b(\\d+(\\.\\d*)?|\\.\\d+)",
5983 relevance: 0
5984 };
5985
5986 var METHOD_TITLE = hljs.IDENT_RE + "\\s*\\(";
5987
5988 var COS_KEYWORDS = {
5989 keyword: [
5990
5991 "break", "catch", "close", "continue", "do", "d", "else",
5992 "elseif", "for", "goto", "halt", "hang", "h", "if", "job",
5993 "j", "kill", "k", "lock", "l", "merge", "new", "open", "quit",
5994 "q", "read", "r", "return", "set", "s", "tcommit", "throw",
5995 "trollback", "try", "tstart", "use", "view", "while", "write",
5996 "w", "xecute", "x", "zkill", "znspace", "zn", "ztrap", "zwrite",
5997 "zw", "zzdump", "zzwrite", "print", "zbreak", "zinsert", "zload",
5998 "zprint", "zremove", "zsave", "zzprint", "mv", "mvcall", "mvcrt",
5999 "mvdim", "mvprint", "zquit", "zsync", "ascii"
6000
6001 // registered function - no need in them due to all functions are highlighted,
6002 // but I'll just leave this here.
6003
6004 //"$bit", "$bitcount",
6005 //"$bitfind", "$bitlogic", "$case", "$char", "$classmethod", "$classname",
6006 //"$compile", "$data", "$decimal", "$double", "$extract", "$factor",
6007 //"$find", "$fnumber", "$get", "$increment", "$inumber", "$isobject",
6008 //"$isvaliddouble", "$isvalidnum", "$justify", "$length", "$list",
6009 //"$listbuild", "$listdata", "$listfind", "$listfromstring", "$listget",
6010 //"$listlength", "$listnext", "$listsame", "$listtostring", "$listvalid",
6011 //"$locate", "$match", "$method", "$name", "$nconvert", "$next",
6012 //"$normalize", "$now", "$number", "$order", "$parameter", "$piece",
6013 //"$prefetchoff", "$prefetchon", "$property", "$qlength", "$qsubscript",
6014 //"$query", "$random", "$replace", "$reverse", "$sconvert", "$select",
6015 //"$sortbegin", "$sortend", "$stack", "$text", "$translate", "$view",
6016 //"$wascii", "$wchar", "$wextract", "$wfind", "$wiswide", "$wlength",
6017 //"$wreverse", "$xecute", "$zabs", "$zarccos", "$zarcsin", "$zarctan",
6018 //"$zcos", "$zcot", "$zcsc", "$zdate", "$zdateh", "$zdatetime",
6019 //"$zdatetimeh", "$zexp", "$zhex", "$zln", "$zlog", "$zpower", "$zsec",
6020 //"$zsin", "$zsqr", "$ztan", "$ztime", "$ztimeh", "$zboolean",
6021 //"$zconvert", "$zcrc", "$zcyc", "$zdascii", "$zdchar", "$zf",
6022 //"$ziswide", "$zlascii", "$zlchar", "$zname", "$zposition", "$zqascii",
6023 //"$zqchar", "$zsearch", "$zseek", "$zstrip", "$zwascii", "$zwchar",
6024 //"$zwidth", "$zwpack", "$zwbpack", "$zwunpack", "$zwbunpack", "$zzenkaku",
6025 //"$change", "$mv", "$mvat", "$mvfmt", "$mvfmts", "$mviconv",
6026 //"$mviconvs", "$mvinmat", "$mvlover", "$mvoconv", "$mvoconvs", "$mvraise",
6027 //"$mvtrans", "$mvv", "$mvname", "$zbitand", "$zbitcount", "$zbitfind",
6028 //"$zbitget", "$zbitlen", "$zbitnot", "$zbitor", "$zbitset", "$zbitstr",
6029 //"$zbitxor", "$zincrement", "$znext", "$zorder", "$zprevious", "$zsort",
6030 //"device", "$ecode", "$estack", "$etrap", "$halt", "$horolog",
6031 //"$io", "$job", "$key", "$namespace", "$principal", "$quit", "$roles",
6032 //"$storage", "$system", "$test", "$this", "$tlevel", "$username",
6033 //"$x", "$y", "$za", "$zb", "$zchild", "$zeof", "$zeos", "$zerror",
6034 //"$zhorolog", "$zio", "$zjob", "$zmode", "$znspace", "$zparent", "$zpi",
6035 //"$zpos", "$zreference", "$zstorage", "$ztimestamp", "$ztimezone",
6036 //"$ztrap", "$zversion"
6037
6038 ].join(" ")
6039 };
6040
6041 return {
6042 case_insensitive: true,
6043 aliases: ["cos", "cls"],
6044 keywords: COS_KEYWORDS,
6045 contains: [
6046 NUMBERS,
6047 STRINGS,
6048 hljs.C_LINE_COMMENT_MODE,
6049 hljs.C_BLOCK_COMMENT_MODE,
6050 { // functions
6051 className: "built_in",
6052 begin: /\$\$?[a-zA-Z]+/
6053 },
6054 { // macro
6055 className: "keyword",
6056 begin: /\$\$\$[a-zA-Z]+/
6057 },
6058 { // globals
6059 className: "symbol",
6060 begin: /\^%?[a-zA-Z][\w]*/
6061 },
6062 { // static class reference constructions
6063 className: 'keyword',
6064 begin: /##class/
6065 },
6066
6067 // sub-languages: are not fully supported by hljs by 11/15/2015
6068 // left for the future implementation.
6069 {
6070 begin: /&sql\(/, end: /\)/,
6071 excludeBegin: true, excludeEnd: true,
6072 subLanguage: "sql"
6073 },
6074 {
6075 begin: /&(js|jscript|javascript)</, end: />/,
6076 excludeBegin: true, excludeEnd: true,
6077 subLanguage: "javascript"
6078 },
6079 {
6080 begin: /&html<\s*</, end: />\s*>/, // brakes first tag, but the only way to embed valid html
6081 subLanguage: "xml" // no html?
6082 }
6083 ]
6084 };
6085}
6086},{name:"cpp",create:/*
6087Language: C++
6088Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
6089Contributors: Evgeny Stepanischev <imbolk@gmail.com>, Zaven Muradyan <megalivoithos@gmail.com>, Roel Deckers <admin@codingcat.nl>
6090Category: common, system
6091*/
6092
6093function(hljs) {
6094 var CPP_PRIMATIVE_TYPES = {
6095 className: 'keyword',
6096 begin: '\\b[a-z\\d_]*_t\\b'
6097 };
6098
6099 var STRINGS = {
6100 className: 'string',
6101 variants: [
6102 hljs.inherit(hljs.QUOTE_STRING_MODE, { begin: '((u8?|U)|L)?"' }),
6103 {
6104 begin: '(u8?|U)?R"', end: '"',
6105 contains: [hljs.BACKSLASH_ESCAPE]
6106 },
6107 {
6108 begin: '\'\\\\?.', end: '\'',
6109 illegal: '.'
6110 }
6111 ]
6112 };
6113
6114 var NUMBERS = {
6115 className: 'number',
6116 variants: [
6117 { begin: '\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)' },
6118 { begin: hljs.C_NUMBER_RE }
6119 ],
6120 relevance: 0
6121 };
6122
6123 var PREPROCESSOR = {
6124 className: 'meta',
6125 begin: '#', end: '$',
6126 keywords: {'meta-keyword': 'if else elif endif define undef warning error line ' +
6127 'pragma ifdef ifndef'},
6128 contains: [
6129 {
6130 begin: /\\\n/, relevance: 0
6131 },
6132 {
6133 beginKeywords: 'include', end: '$',
6134 keywords: {'meta-keyword': 'include'},
6135 contains: [
6136 hljs.inherit(STRINGS, {className: 'meta-string'}),
6137 {
6138 className: 'meta-string',
6139 begin: '<', end: '>',
6140 illegal: '\\n',
6141 }
6142 ]
6143 },
6144 STRINGS,
6145 hljs.C_LINE_COMMENT_MODE,
6146 hljs.C_BLOCK_COMMENT_MODE
6147 ]
6148 };
6149
6150 var FUNCTION_TITLE = hljs.IDENT_RE + '\\s*\\(';
6151
6152 var CPP_KEYWORDS = {
6153 keyword: 'int float while private char catch export virtual operator sizeof ' +
6154 'dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace ' +
6155 'unsigned long volatile static protected bool template mutable if public friend ' +
6156 'do goto auto void enum else break extern using class asm case typeid ' +
6157 'short reinterpret_cast|10 default double register explicit signed typename try this ' +
6158 'switch continue inline delete alignof constexpr decltype ' +
6159 'noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary ' +
6160 'atomic_bool atomic_char atomic_schar ' +
6161 'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +
6162 'atomic_ullong',
6163 built_in: 'std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream ' +
6164 'auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set ' +
6165 'unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos ' +
6166 'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp ' +
6167 'fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper ' +
6168 'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow ' +
6169 'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp ' +
6170 'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan ' +
6171 'vfprintf vprintf vsprintf endl initializer_list unique_ptr',
6172 literal: 'true false nullptr NULL'
6173 };
6174
6175 return {
6176 aliases: ['c', 'cc', 'h', 'c++', 'h++', 'hpp'],
6177 keywords: CPP_KEYWORDS,
6178 illegal: '</',
6179 contains: [
6180 CPP_PRIMATIVE_TYPES,
6181 hljs.C_LINE_COMMENT_MODE,
6182 hljs.C_BLOCK_COMMENT_MODE,
6183 NUMBERS,
6184 STRINGS,
6185 PREPROCESSOR,
6186 {
6187 begin: '\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<', end: '>',
6188 keywords: CPP_KEYWORDS,
6189 contains: ['self', CPP_PRIMATIVE_TYPES]
6190 },
6191 {
6192 begin: hljs.IDENT_RE + '::',
6193 keywords: CPP_KEYWORDS
6194 },
6195 {
6196 // Expression keywords prevent 'keyword Name(...) or else if(...)' from
6197 // being recognized as a function definition
6198 beginKeywords: 'new throw return else',
6199 relevance: 0
6200 },
6201 {
6202 className: 'function',
6203 begin: '(' + hljs.IDENT_RE + '[\\*&\\s]+)+' + FUNCTION_TITLE,
6204 returnBegin: true, end: /[{;=]/,
6205 excludeEnd: true,
6206 keywords: CPP_KEYWORDS,
6207 illegal: /[^\w\s\*&]/,
6208 contains: [
6209 {
6210 begin: FUNCTION_TITLE, returnBegin: true,
6211 contains: [hljs.TITLE_MODE],
6212 relevance: 0
6213 },
6214 {
6215 className: 'params',
6216 begin: /\(/, end: /\)/,
6217 keywords: CPP_KEYWORDS,
6218 relevance: 0,
6219 contains: [
6220 hljs.C_LINE_COMMENT_MODE,
6221 hljs.C_BLOCK_COMMENT_MODE,
6222 STRINGS,
6223 NUMBERS
6224 ]
6225 },
6226 hljs.C_LINE_COMMENT_MODE,
6227 hljs.C_BLOCK_COMMENT_MODE,
6228 PREPROCESSOR
6229 ]
6230 }
6231 ]
6232 };
6233}
6234},{name:"crmsh",create:/*
6235Language: crmsh
6236Author: Kristoffer Gronlund <kgronlund@suse.com>
6237Website: http://crmsh.github.io
6238Description: Syntax Highlighting for the crmsh DSL
6239Category: config
6240*/
6241
6242function(hljs) {
6243 var RESOURCES = 'primitive rsc_template';
6244
6245 var COMMANDS = 'group clone ms master location colocation order fencing_topology ' +
6246 'rsc_ticket acl_target acl_group user role ' +
6247 'tag xml';
6248
6249 var PROPERTY_SETS = 'property rsc_defaults op_defaults';
6250
6251 var KEYWORDS = 'params meta operations op rule attributes utilization';
6252
6253 var OPERATORS = 'read write deny defined not_defined in_range date spec in ' +
6254 'ref reference attribute type xpath version and or lt gt tag ' +
6255 'lte gte eq ne \\';
6256
6257 var TYPES = 'number string';
6258
6259 var LITERALS = 'Master Started Slave Stopped start promote demote stop monitor true false';
6260
6261 return {
6262 aliases: ['crm', 'pcmk'],
6263 case_insensitive: true,
6264 keywords: {
6265 keyword: KEYWORDS + ' ' + OPERATORS + ' ' + TYPES,
6266 literal: LITERALS
6267 },
6268 contains: [
6269 hljs.HASH_COMMENT_MODE,
6270 {
6271 beginKeywords: 'node',
6272 starts: {
6273 end: '\\s*([\\w_-]+:)?',
6274 starts: {
6275 className: 'title',
6276 end: '\\s*[\\$\\w_][\\w_-]*'
6277 }
6278 }
6279 },
6280 {
6281 beginKeywords: RESOURCES,
6282 starts: {
6283 className: 'title',
6284 end: '\\s*[\\$\\w_][\\w_-]*',
6285 starts: {
6286 end: '\\s*@?[\\w_][\\w_\\.:-]*'
6287 }
6288 }
6289 },
6290 {
6291 begin: '\\b(' + COMMANDS.split(' ').join('|') + ')\\s+',
6292 keywords: COMMANDS,
6293 starts: {
6294 className: 'title',
6295 end: '[\\$\\w_][\\w_-]*'
6296 }
6297 },
6298 {
6299 beginKeywords: PROPERTY_SETS,
6300 starts: {
6301 className: 'title',
6302 end: '\\s*([\\w_-]+:)?'
6303 }
6304 },
6305 hljs.QUOTE_STRING_MODE,
6306 {
6307 className: 'meta',
6308 begin: '(ocf|systemd|service|lsb):[\\w_:-]+',
6309 relevance: 0
6310 },
6311 {
6312 className: 'number',
6313 begin: '\\b\\d+(\\.\\d+)?(ms|s|h|m)?',
6314 relevance: 0
6315 },
6316 {
6317 className: 'literal',
6318 begin: '[-]?(infinity|inf)',
6319 relevance: 0
6320 },
6321 {
6322 className: 'attr',
6323 begin: /([A-Za-z\$_\#][\w_-]+)=/,
6324 relevance: 0
6325 },
6326 {
6327 className: 'tag',
6328 begin: '</?',
6329 end: '/?>',
6330 relevance: 0
6331 }
6332 ]
6333 };
6334}
6335},{name:"crystal",create:/*
6336Language: Crystal
6337Author: TSUYUSATO Kitsune <make.just.on@gmail.com>
6338*/
6339
6340function(hljs) {
6341 var NUM_SUFFIX = '(_[uif](8|16|32|64))?';
6342 var CRYSTAL_IDENT_RE = '[a-zA-Z_]\\w*[!?=]?';
6343 var RE_STARTER = '!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|' +
6344 '>>|>|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
6345 var CRYSTAL_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?';
6346 var CRYSTAL_KEYWORDS = {
6347 keyword:
6348 'abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef ' +
6349 'include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? ' +
6350 'return require self sizeof struct super then type typeof union unless until when while with yield ' +
6351 '__DIR__ __FILE__ __LINE__',
6352 literal: 'false nil true'
6353 };
6354 var SUBST = {
6355 className: 'subst',
6356 begin: '#{', end: '}',
6357 keywords: CRYSTAL_KEYWORDS
6358 };
6359 var EXPANSION = {
6360 className: 'template-variable',
6361 variants: [
6362 {begin: '\\{\\{', end: '\\}\\}'},
6363 {begin: '\\{%', end: '%\\}'}
6364 ],
6365 keywords: CRYSTAL_KEYWORDS,
6366 relevance: 10
6367 };
6368
6369 function recursiveParen(begin, end) {
6370 var
6371 contains = [{begin: begin, end: end}];
6372 contains[0].contains = contains;
6373 return contains;
6374 }
6375 var STRING = {
6376 className: 'string',
6377 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
6378 variants: [
6379 {begin: /'/, end: /'/},
6380 {begin: /"/, end: /"/},
6381 {begin: /`/, end: /`/},
6382 {begin: '%w?\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
6383 {begin: '%w?\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
6384 {begin: '%w?{', end: '}', contains: recursiveParen('{', '}')},
6385 {begin: '%w?<', end: '>', contains: recursiveParen('<', '>')},
6386 {begin: '%w?/', end: '/'},
6387 {begin: '%w?%', end: '%'},
6388 {begin: '%w?-', end: '-'},
6389 {begin: '%w?\\|', end: '\\|'},
6390 ],
6391 relevance: 0,
6392 };
6393 var REGEXP = {
6394 begin: '(' + RE_STARTER + ')\\s*',
6395 contains: [
6396 {
6397 className: 'regexp',
6398 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
6399 variants: [
6400 {begin: '/', end: '/[a-z]*'},
6401 {begin: '%r\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
6402 {begin: '%r\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
6403 {begin: '%r{', end: '}', contains: recursiveParen('{', '}')},
6404 {begin: '%r<', end: '>', contains: recursiveParen('<', '>')},
6405 {begin: '%r/', end: '/'},
6406 {begin: '%r%', end: '%'},
6407 {begin: '%r-', end: '-'},
6408 {begin: '%r\\|', end: '\\|'},
6409 ]
6410 }
6411 ],
6412 relevance: 0
6413 };
6414 var REGEXP2 = {
6415 className: 'regexp',
6416 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
6417 variants: [
6418 {begin: '%r\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
6419 {begin: '%r\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
6420 {begin: '%r{', end: '}', contains: recursiveParen('{', '}')},
6421 {begin: '%r<', end: '>', contains: recursiveParen('<', '>')},
6422 {begin: '%r/', end: '/'},
6423 {begin: '%r%', end: '%'},
6424 {begin: '%r-', end: '-'},
6425 {begin: '%r\\|', end: '\\|'},
6426 ],
6427 relevance: 0
6428 };
6429 var ATTRIBUTE = {
6430 className: 'meta',
6431 begin: '@\\[', end: '\\]',
6432 relevance: 5
6433 };
6434 var CRYSTAL_DEFAULT_CONTAINS = [
6435 EXPANSION,
6436 STRING,
6437 REGEXP,
6438 REGEXP2,
6439 ATTRIBUTE,
6440 hljs.HASH_COMMENT_MODE,
6441 {
6442 className: 'class',
6443 beginKeywords: 'class module struct', end: '$|;',
6444 illegal: /=/,
6445 contains: [
6446 hljs.HASH_COMMENT_MODE,
6447 hljs.inherit(hljs.TITLE_MODE, {begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?'}),
6448 {begin: '<'} // relevance booster for inheritance
6449 ]
6450 },
6451 {
6452 className: 'class',
6453 beginKeywords: 'lib enum union', end: '$|;',
6454 illegal: /=/,
6455 contains: [
6456 hljs.HASH_COMMENT_MODE,
6457 hljs.inherit(hljs.TITLE_MODE, {begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?'}),
6458 ],
6459 relevance: 10
6460 },
6461 {
6462 className: 'function',
6463 beginKeywords: 'def', end: /\B\b/,
6464 contains: [
6465 hljs.inherit(hljs.TITLE_MODE, {
6466 begin: CRYSTAL_METHOD_RE,
6467 endsParent: true
6468 })
6469 ]
6470 },
6471 {
6472 className: 'function',
6473 beginKeywords: 'fun macro', end: /\B\b/,
6474 contains: [
6475 hljs.inherit(hljs.TITLE_MODE, {
6476 begin: CRYSTAL_METHOD_RE,
6477 endsParent: true
6478 })
6479 ],
6480 relevance: 5
6481 },
6482 {
6483 className: 'symbol',
6484 begin: hljs.UNDERSCORE_IDENT_RE + '(\\!|\\?)?:',
6485 relevance: 0
6486 },
6487 {
6488 className: 'symbol',
6489 begin: ':',
6490 contains: [STRING, {begin: CRYSTAL_METHOD_RE}],
6491 relevance: 0
6492 },
6493 {
6494 className: 'number',
6495 variants: [
6496 { begin: '\\b0b([01_]*[01])' + NUM_SUFFIX },
6497 { begin: '\\b0o([0-7_]*[0-7])' + NUM_SUFFIX },
6498 { begin: '\\b0x([A-Fa-f0-9_]*[A-Fa-f0-9])' + NUM_SUFFIX },
6499 { begin: '\\b(([0-9][0-9_]*[0-9]|[0-9])(\\.[0-9_]*[0-9])?([eE][+-]?[0-9_]*[0-9])?)' + NUM_SUFFIX}
6500 ],
6501 relevance: 0
6502 }
6503 ];
6504 SUBST.contains = CRYSTAL_DEFAULT_CONTAINS;
6505 ATTRIBUTE.contains = CRYSTAL_DEFAULT_CONTAINS;
6506 EXPANSION.contains = CRYSTAL_DEFAULT_CONTAINS.slice(1); // without EXPANSION
6507
6508 return {
6509 aliases: ['cr'],
6510 lexemes: CRYSTAL_IDENT_RE,
6511 keywords: CRYSTAL_KEYWORDS,
6512 contains: CRYSTAL_DEFAULT_CONTAINS
6513 };
6514}
6515},{name:"cs",create:/*
6516Language: C#
6517Author: Jason Diamond <jason@diamond.name>
6518Category: common
6519*/
6520
6521function(hljs) {
6522 var KEYWORDS =
6523 // Normal keywords.
6524 'abstract as base bool break byte case catch char checked const continue decimal dynamic ' +
6525 'default delegate do double else enum event explicit extern false finally fixed float ' +
6526 'for foreach goto if implicit in int interface internal is lock long null when ' +
6527 'object operator out override params private protected public readonly ref sbyte ' +
6528 'sealed short sizeof stackalloc static string struct switch this true try typeof ' +
6529 'uint ulong unchecked unsafe ushort using virtual volatile void while async ' +
6530 'protected public private internal ' +
6531 // Contextual keywords.
6532 'ascending descending from get group into join let orderby partial select set value var ' +
6533 'where yield';
6534 var GENERIC_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '>)?';
6535 return {
6536 aliases: ['csharp'],
6537 keywords: KEYWORDS,
6538 illegal: /::/,
6539 contains: [
6540 hljs.COMMENT(
6541 '///',
6542 '$',
6543 {
6544 returnBegin: true,
6545 contains: [
6546 {
6547 className: 'doctag',
6548 variants: [
6549 {
6550 begin: '///', relevance: 0
6551 },
6552 {
6553 begin: '<!--|-->'
6554 },
6555 {
6556 begin: '</?', end: '>'
6557 }
6558 ]
6559 }
6560 ]
6561 }
6562 ),
6563 hljs.C_LINE_COMMENT_MODE,
6564 hljs.C_BLOCK_COMMENT_MODE,
6565 {
6566 className: 'meta',
6567 begin: '#', end: '$',
6568 keywords: {'meta-keyword': 'if else elif endif define undef warning error line region endregion pragma checksum'}
6569 },
6570 {
6571 className: 'string',
6572 begin: '@"', end: '"',
6573 contains: [{begin: '""'}]
6574 },
6575 hljs.APOS_STRING_MODE,
6576 hljs.QUOTE_STRING_MODE,
6577 hljs.C_NUMBER_MODE,
6578 {
6579 beginKeywords: 'class interface', end: /[{;=]/,
6580 illegal: /[^\s:]/,
6581 contains: [
6582 hljs.TITLE_MODE,
6583 hljs.C_LINE_COMMENT_MODE,
6584 hljs.C_BLOCK_COMMENT_MODE
6585 ]
6586 },
6587 {
6588 beginKeywords: 'namespace', end: /[{;=]/,
6589 illegal: /[^\s:]/,
6590 contains: [
6591 hljs.inherit(hljs.TITLE_MODE, {begin: '[a-zA-Z](\\.?\\w)*'}),
6592 hljs.C_LINE_COMMENT_MODE,
6593 hljs.C_BLOCK_COMMENT_MODE
6594 ]
6595 },
6596 {
6597 // Expression keywords prevent 'keyword Name(...)' from being
6598 // recognized as a function definition
6599 beginKeywords: 'new return throw await',
6600 relevance: 0
6601 },
6602 {
6603 className: 'function',
6604 begin: '(' + GENERIC_IDENT_RE + '\\s+)+' + hljs.IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/,
6605 excludeEnd: true,
6606 keywords: KEYWORDS,
6607 contains: [
6608 {
6609 begin: hljs.IDENT_RE + '\\s*\\(', returnBegin: true,
6610 contains: [hljs.TITLE_MODE],
6611 relevance: 0
6612 },
6613 {
6614 className: 'params',
6615 begin: /\(/, end: /\)/,
6616 excludeBegin: true,
6617 excludeEnd: true,
6618 keywords: KEYWORDS,
6619 relevance: 0,
6620 contains: [
6621 hljs.APOS_STRING_MODE,
6622 hljs.QUOTE_STRING_MODE,
6623 hljs.C_NUMBER_MODE,
6624 hljs.C_BLOCK_COMMENT_MODE
6625 ]
6626 },
6627 hljs.C_LINE_COMMENT_MODE,
6628 hljs.C_BLOCK_COMMENT_MODE
6629 ]
6630 }
6631 ]
6632 };
6633}
6634},{name:"css",create:/*
6635Language: CSS
6636Category: common, css
6637*/
6638
6639function(hljs) {
6640 var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
6641 var RULE = {
6642 begin: /[A-Z\_\.\-]+\s*:/, returnBegin: true, end: ';', endsWithParent: true,
6643 contains: [
6644 {
6645 className: 'attribute',
6646 begin: /\S/, end: ':', excludeEnd: true,
6647 starts: {
6648 endsWithParent: true, excludeEnd: true,
6649 contains: [
6650 {
6651 begin: /[\w-]+\s*\(/, returnBegin: true,
6652 contains: [
6653 {
6654 className: 'built_in',
6655 begin: /[\w-]+/
6656 }
6657 ]
6658 },
6659 hljs.CSS_NUMBER_MODE,
6660 hljs.QUOTE_STRING_MODE,
6661 hljs.APOS_STRING_MODE,
6662 hljs.C_BLOCK_COMMENT_MODE,
6663 {
6664 className: 'number', begin: '#[0-9A-Fa-f]+'
6665 },
6666 {
6667 className: 'meta', begin: '!important'
6668 }
6669 ]
6670 }
6671 }
6672 ]
6673 };
6674
6675 return {
6676 case_insensitive: true,
6677 illegal: /[=\/|'\$]/,
6678 contains: [
6679 hljs.C_BLOCK_COMMENT_MODE,
6680 {
6681 className: 'selector-id', begin: /#[A-Za-z0-9_-]+/
6682 },
6683 {
6684 className: 'selector-class', begin: /\.[A-Za-z0-9_-]+/
6685 },
6686 {
6687 className: 'selector-attr',
6688 begin: /\[/, end: /\]/,
6689 illegal: '$'
6690 },
6691 {
6692 className: 'selector-pseudo',
6693 begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/
6694 },
6695 {
6696 begin: '@(font-face|page)',
6697 lexemes: '[a-z-]+',
6698 keywords: 'font-face page'
6699 },
6700 {
6701 begin: '@', end: '[{;]', // at_rule eating first "{" is a good thing
6702 // because it doesnโ€™t let it to be parsed as
6703 // a rule set but instead drops parser into
6704 // the default mode which is how it should be.
6705 contains: [
6706 {
6707 className: 'keyword',
6708 begin: /\S+/
6709 },
6710 {
6711 begin: /\s/, endsWithParent: true, excludeEnd: true,
6712 relevance: 0,
6713 contains: [
6714 hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE,
6715 hljs.CSS_NUMBER_MODE
6716 ]
6717 }
6718 ]
6719 },
6720 {
6721 className: 'selector-tag', begin: IDENT_RE,
6722 relevance: 0
6723 },
6724 {
6725 begin: '{', end: '}',
6726 illegal: /\S/,
6727 contains: [
6728 hljs.C_BLOCK_COMMENT_MODE,
6729 RULE,
6730 ]
6731 }
6732 ]
6733 };
6734}
6735},{name:"d",create:/*
6736Language: D
6737Author: Aleksandar Ruzicic <aleksandar@ruzicic.info>
6738Description: D is a language with C-like syntax and static typing. It pragmatically combines efficiency, control, and modeling power, with safety and programmer productivity.
6739Version: 1.0a
6740Date: 2012-04-08
6741*/
6742
6743/**
6744 * Known issues:
6745 *
6746 * - invalid hex string literals will be recognized as a double quoted strings
6747 * but 'x' at the beginning of string will not be matched
6748 *
6749 * - delimited string literals are not checked for matching end delimiter
6750 * (not possible to do with js regexp)
6751 *
6752 * - content of token string is colored as a string (i.e. no keyword coloring inside a token string)
6753 * also, content of token string is not validated to contain only valid D tokens
6754 *
6755 * - special token sequence rule is not strictly following D grammar (anything following #line
6756 * up to the end of line is matched as special token sequence)
6757 */
6758
6759function(hljs) {
6760 /**
6761 * Language keywords
6762 *
6763 * @type {Object}
6764 */
6765 var D_KEYWORDS = {
6766 keyword:
6767 'abstract alias align asm assert auto body break byte case cast catch class ' +
6768 'const continue debug default delete deprecated do else enum export extern final ' +
6769 'finally for foreach foreach_reverse|10 goto if immutable import in inout int ' +
6770 'interface invariant is lazy macro mixin module new nothrow out override package ' +
6771 'pragma private protected public pure ref return scope shared static struct ' +
6772 'super switch synchronized template this throw try typedef typeid typeof union ' +
6773 'unittest version void volatile while with __FILE__ __LINE__ __gshared|10 ' +
6774 '__thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__',
6775 built_in:
6776 'bool cdouble cent cfloat char creal dchar delegate double dstring float function ' +
6777 'idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar ' +
6778 'wstring',
6779 literal:
6780 'false null true'
6781 };
6782
6783 /**
6784 * Number literal regexps
6785 *
6786 * @type {String}
6787 */
6788 var decimal_integer_re = '(0|[1-9][\\d_]*)',
6789 decimal_integer_nosus_re = '(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)',
6790 binary_integer_re = '0[bB][01_]+',
6791 hexadecimal_digits_re = '([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)',
6792 hexadecimal_integer_re = '0[xX]' + hexadecimal_digits_re,
6793
6794 decimal_exponent_re = '([eE][+-]?' + decimal_integer_nosus_re + ')',
6795 decimal_float_re = '(' + decimal_integer_nosus_re + '(\\.\\d*|' + decimal_exponent_re + ')|' +
6796 '\\d+\\.' + decimal_integer_nosus_re + decimal_integer_nosus_re + '|' +
6797 '\\.' + decimal_integer_re + decimal_exponent_re + '?' +
6798 ')',
6799 hexadecimal_float_re = '(0[xX](' +
6800 hexadecimal_digits_re + '\\.' + hexadecimal_digits_re + '|'+
6801 '\\.?' + hexadecimal_digits_re +
6802 ')[pP][+-]?' + decimal_integer_nosus_re + ')',
6803
6804 integer_re = '(' +
6805 decimal_integer_re + '|' +
6806 binary_integer_re + '|' +
6807 hexadecimal_integer_re +
6808 ')',
6809
6810 float_re = '(' +
6811 hexadecimal_float_re + '|' +
6812 decimal_float_re +
6813 ')';
6814
6815 /**
6816 * Escape sequence supported in D string and character literals
6817 *
6818 * @type {String}
6819 */
6820 var escape_sequence_re = '\\\\(' +
6821 '[\'"\\?\\\\abfnrtv]|' + // common escapes
6822 'u[\\dA-Fa-f]{4}|' + // four hex digit unicode codepoint
6823 '[0-7]{1,3}|' + // one to three octal digit ascii char code
6824 'x[\\dA-Fa-f]{2}|' + // two hex digit ascii char code
6825 'U[\\dA-Fa-f]{8}' + // eight hex digit unicode codepoint
6826 ')|' +
6827 '&[a-zA-Z\\d]{2,};'; // named character entity
6828
6829 /**
6830 * D integer number literals
6831 *
6832 * @type {Object}
6833 */
6834 var D_INTEGER_MODE = {
6835 className: 'number',
6836 begin: '\\b' + integer_re + '(L|u|U|Lu|LU|uL|UL)?',
6837 relevance: 0
6838 };
6839
6840 /**
6841 * [D_FLOAT_MODE description]
6842 * @type {Object}
6843 */
6844 var D_FLOAT_MODE = {
6845 className: 'number',
6846 begin: '\\b(' +
6847 float_re + '([fF]|L|i|[fF]i|Li)?|' +
6848 integer_re + '(i|[fF]i|Li)' +
6849 ')',
6850 relevance: 0
6851 };
6852
6853 /**
6854 * D character literal
6855 *
6856 * @type {Object}
6857 */
6858 var D_CHARACTER_MODE = {
6859 className: 'string',
6860 begin: '\'(' + escape_sequence_re + '|.)', end: '\'',
6861 illegal: '.'
6862 };
6863
6864 /**
6865 * D string escape sequence
6866 *
6867 * @type {Object}
6868 */
6869 var D_ESCAPE_SEQUENCE = {
6870 begin: escape_sequence_re,
6871 relevance: 0
6872 };
6873
6874 /**
6875 * D double quoted string literal
6876 *
6877 * @type {Object}
6878 */
6879 var D_STRING_MODE = {
6880 className: 'string',
6881 begin: '"',
6882 contains: [D_ESCAPE_SEQUENCE],
6883 end: '"[cwd]?'
6884 };
6885
6886 /**
6887 * D wysiwyg and delimited string literals
6888 *
6889 * @type {Object}
6890 */
6891 var D_WYSIWYG_DELIMITED_STRING_MODE = {
6892 className: 'string',
6893 begin: '[rq]"',
6894 end: '"[cwd]?',
6895 relevance: 5
6896 };
6897
6898 /**
6899 * D alternate wysiwyg string literal
6900 *
6901 * @type {Object}
6902 */
6903 var D_ALTERNATE_WYSIWYG_STRING_MODE = {
6904 className: 'string',
6905 begin: '`',
6906 end: '`[cwd]?'
6907 };
6908
6909 /**
6910 * D hexadecimal string literal
6911 *
6912 * @type {Object}
6913 */
6914 var D_HEX_STRING_MODE = {
6915 className: 'string',
6916 begin: 'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',
6917 relevance: 10
6918 };
6919
6920 /**
6921 * D delimited string literal
6922 *
6923 * @type {Object}
6924 */
6925 var D_TOKEN_STRING_MODE = {
6926 className: 'string',
6927 begin: 'q"\\{',
6928 end: '\\}"'
6929 };
6930
6931 /**
6932 * Hashbang support
6933 *
6934 * @type {Object}
6935 */
6936 var D_HASHBANG_MODE = {
6937 className: 'meta',
6938 begin: '^#!',
6939 end: '$',
6940 relevance: 5
6941 };
6942
6943 /**
6944 * D special token sequence
6945 *
6946 * @type {Object}
6947 */
6948 var D_SPECIAL_TOKEN_SEQUENCE_MODE = {
6949 className: 'meta',
6950 begin: '#(line)',
6951 end: '$',
6952 relevance: 5
6953 };
6954
6955 /**
6956 * D attributes
6957 *
6958 * @type {Object}
6959 */
6960 var D_ATTRIBUTE_MODE = {
6961 className: 'keyword',
6962 begin: '@[a-zA-Z_][a-zA-Z_\\d]*'
6963 };
6964
6965 /**
6966 * D nesting comment
6967 *
6968 * @type {Object}
6969 */
6970 var D_NESTING_COMMENT_MODE = hljs.COMMENT(
6971 '\\/\\+',
6972 '\\+\\/',
6973 {
6974 contains: ['self'],
6975 relevance: 10
6976 }
6977 );
6978
6979 return {
6980 lexemes: hljs.UNDERSCORE_IDENT_RE,
6981 keywords: D_KEYWORDS,
6982 contains: [
6983 hljs.C_LINE_COMMENT_MODE,
6984 hljs.C_BLOCK_COMMENT_MODE,
6985 D_NESTING_COMMENT_MODE,
6986 D_HEX_STRING_MODE,
6987 D_STRING_MODE,
6988 D_WYSIWYG_DELIMITED_STRING_MODE,
6989 D_ALTERNATE_WYSIWYG_STRING_MODE,
6990 D_TOKEN_STRING_MODE,
6991 D_FLOAT_MODE,
6992 D_INTEGER_MODE,
6993 D_CHARACTER_MODE,
6994 D_HASHBANG_MODE,
6995 D_SPECIAL_TOKEN_SEQUENCE_MODE,
6996 D_ATTRIBUTE_MODE
6997 ]
6998 };
6999}
7000},{name:"dart",create:/*
7001Language: Dart
7002Requires: markdown.js
7003Author: Maxim Dikun <dikmax@gmail.com>
7004Description: Dart is a JavaScript replacement language developed by Google. For more information see http://dartlang.org/
7005Category: scripting
7006*/
7007
7008function (hljs) {
7009 var SUBST = {
7010 className: 'subst',
7011 begin: '\\$\\{', end: '}',
7012 keywords: 'true false null this is new super'
7013 };
7014
7015 var STRING = {
7016 className: 'string',
7017 variants: [
7018 {
7019 begin: 'r\'\'\'', end: '\'\'\''
7020 },
7021 {
7022 begin: 'r"""', end: '"""'
7023 },
7024 {
7025 begin: 'r\'', end: '\'',
7026 illegal: '\\n'
7027 },
7028 {
7029 begin: 'r"', end: '"',
7030 illegal: '\\n'
7031 },
7032 {
7033 begin: '\'\'\'', end: '\'\'\'',
7034 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
7035 },
7036 {
7037 begin: '"""', end: '"""',
7038 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
7039 },
7040 {
7041 begin: '\'', end: '\'',
7042 illegal: '\\n',
7043 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
7044 },
7045 {
7046 begin: '"', end: '"',
7047 illegal: '\\n',
7048 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
7049 }
7050 ]
7051 };
7052 SUBST.contains = [
7053 hljs.C_NUMBER_MODE, STRING
7054 ];
7055
7056 var KEYWORDS = {
7057 keyword: 'assert break case catch class const continue default do else enum extends false final finally for if ' +
7058 'in is new null rethrow return super switch this throw true try var void while with ' +
7059 'abstract as dynamic export external factory get implements import library operator part set static typedef',
7060 built_in:
7061 // dart:core
7062 'print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set ' +
7063 'Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num ' +
7064 // dart:html
7065 'document window querySelector querySelectorAll Element ElementList'
7066 };
7067
7068 return {
7069 keywords: KEYWORDS,
7070 contains: [
7071 STRING,
7072 hljs.COMMENT(
7073 '/\\*\\*',
7074 '\\*/',
7075 {
7076 subLanguage: 'markdown'
7077 }
7078 ),
7079 hljs.COMMENT(
7080 '///',
7081 '$',
7082 {
7083 subLanguage: 'markdown'
7084 }
7085 ),
7086 hljs.C_LINE_COMMENT_MODE,
7087 hljs.C_BLOCK_COMMENT_MODE,
7088 {
7089 className: 'class',
7090 beginKeywords: 'class interface', end: '{', excludeEnd: true,
7091 contains: [
7092 {
7093 beginKeywords: 'extends implements'
7094 },
7095 hljs.UNDERSCORE_TITLE_MODE
7096 ]
7097 },
7098 hljs.C_NUMBER_MODE,
7099 {
7100 className: 'meta', begin: '@[A-Za-z]+'
7101 },
7102 {
7103 begin: '=>' // No markup, just a relevance booster
7104 }
7105 ]
7106 }
7107}
7108
7109},{name:"delphi",create:/*
7110Language: Delphi
7111*/
7112
7113function(hljs) {
7114 var KEYWORDS =
7115 'exports register file shl array record property for mod while set ally label uses raise not ' +
7116 'stored class safecall var interface or private static exit index inherited to else stdcall ' +
7117 'override shr asm far resourcestring finalization packed virtual out and protected library do ' +
7118 'xorwrite goto near function end div overload object unit begin string on inline repeat until ' +
7119 'destructor write message program with read initialization except default nil if case cdecl in ' +
7120 'downto threadvar of try pascal const external constructor type public then implementation ' +
7121 'finally published procedure';
7122 var COMMENT_MODES = [
7123 hljs.C_LINE_COMMENT_MODE,
7124 hljs.COMMENT(
7125 /\{/,
7126 /\}/,
7127 {
7128 relevance: 0
7129 }
7130 ),
7131 hljs.COMMENT(
7132 /\(\*/,
7133 /\*\)/,
7134 {
7135 relevance: 10
7136 }
7137 )
7138 ];
7139 var STRING = {
7140 className: 'string',
7141 begin: /'/, end: /'/,
7142 contains: [{begin: /''/}]
7143 };
7144 var CHAR_STRING = {
7145 className: 'string', begin: /(#\d+)+/
7146 };
7147 var CLASS = {
7148 begin: hljs.IDENT_RE + '\\s*=\\s*class\\s*\\(', returnBegin: true,
7149 contains: [
7150 hljs.TITLE_MODE
7151 ]
7152 };
7153 var FUNCTION = {
7154 className: 'function',
7155 beginKeywords: 'function constructor destructor procedure', end: /[:;]/,
7156 keywords: 'function constructor|10 destructor|10 procedure|10',
7157 contains: [
7158 hljs.TITLE_MODE,
7159 {
7160 className: 'params',
7161 begin: /\(/, end: /\)/,
7162 keywords: KEYWORDS,
7163 contains: [STRING, CHAR_STRING]
7164 }
7165 ].concat(COMMENT_MODES)
7166 };
7167 return {
7168 case_insensitive: true,
7169 keywords: KEYWORDS,
7170 illegal: /"|\$[G-Zg-z]|\/\*|<\/|\|/,
7171 contains: [
7172 STRING, CHAR_STRING,
7173 hljs.NUMBER_MODE,
7174 CLASS,
7175 FUNCTION
7176 ].concat(COMMENT_MODES)
7177 };
7178}
7179},{name:"diff",create:/*
7180Language: Diff
7181Description: Unified and context diff
7182Author: Vasily Polovnyov <vast@whiteants.net>
7183Category: common
7184*/
7185
7186function(hljs) {
7187 return {
7188 aliases: ['patch'],
7189 contains: [
7190 {
7191 className: 'meta',
7192 relevance: 10,
7193 variants: [
7194 {begin: /^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},
7195 {begin: /^\*\*\* +\d+,\d+ +\*\*\*\*$/},
7196 {begin: /^\-\-\- +\d+,\d+ +\-\-\-\-$/}
7197 ]
7198 },
7199 {
7200 className: 'comment',
7201 variants: [
7202 {begin: /Index: /, end: /$/},
7203 {begin: /=====/, end: /=====$/},
7204 {begin: /^\-\-\-/, end: /$/},
7205 {begin: /^\*{3} /, end: /$/},
7206 {begin: /^\+\+\+/, end: /$/},
7207 {begin: /\*{5}/, end: /\*{5}$/}
7208 ]
7209 },
7210 {
7211 className: 'addition',
7212 begin: '^\\+', end: '$'
7213 },
7214 {
7215 className: 'deletion',
7216 begin: '^\\-', end: '$'
7217 },
7218 {
7219 className: 'addition',
7220 begin: '^\\!', end: '$'
7221 }
7222 ]
7223 };
7224}
7225},{name:"django",create:/*
7226Language: Django
7227Requires: xml.js
7228Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
7229Contributors: Ilya Baryshev <baryshev@gmail.com>
7230Category: template
7231*/
7232
7233function(hljs) {
7234 var FILTER = {
7235 begin: /\|[A-Za-z]+:?/,
7236 keywords: {
7237 name:
7238 'truncatewords removetags linebreaksbr yesno get_digit timesince random striptags ' +
7239 'filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands ' +
7240 'title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode ' +
7241 'timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort ' +
7242 'dictsortreversed default_if_none pluralize lower join center default ' +
7243 'truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first ' +
7244 'escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize ' +
7245 'localtime utc timezone'
7246 },
7247 contains: [
7248 hljs.QUOTE_STRING_MODE,
7249 hljs.APOS_STRING_MODE
7250 ]
7251 };
7252
7253 return {
7254 aliases: ['jinja'],
7255 case_insensitive: true,
7256 subLanguage: 'xml',
7257 contains: [
7258 hljs.COMMENT(/\{%\s*comment\s*%}/, /\{%\s*endcomment\s*%}/),
7259 hljs.COMMENT(/\{#/, /#}/),
7260 {
7261 className: 'template-tag',
7262 begin: /\{%/, end: /%}/,
7263 contains: [
7264 {
7265 className: 'name',
7266 begin: /\w+/,
7267 keywords: {
7268 name:
7269 'comment endcomment load templatetag ifchanged endifchanged if endif firstof for ' +
7270 'endfor ifnotequal endifnotequal widthratio extends include spaceless ' +
7271 'endspaceless regroup ifequal endifequal ssi now with cycle url filter ' +
7272 'endfilter debug block endblock else autoescape endautoescape csrf_token empty elif ' +
7273 'endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix ' +
7274 'plural get_current_language language get_available_languages ' +
7275 'get_current_language_bidi get_language_info get_language_info_list localize ' +
7276 'endlocalize localtime endlocaltime timezone endtimezone get_current_timezone ' +
7277 'verbatim'
7278 },
7279 starts: {
7280 endsWithParent: true,
7281 keywords: 'in by as',
7282 contains: [FILTER],
7283 relevance: 0
7284 }
7285 }
7286 ]
7287 },
7288 {
7289 className: 'template-variable',
7290 begin: /\{\{/, end: /}}/,
7291 contains: [FILTER]
7292 }
7293 ]
7294 };
7295}
7296},{name:"dns",create:/*
7297Language: DNS Zone file
7298Author: Tim Schumacher <tim@datenknoten.me>
7299Category: config
7300*/
7301
7302function(hljs) {
7303 return {
7304 aliases: ['bind', 'zone'],
7305 keywords: {
7306 keyword:
7307 'IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX ' +
7308 'LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT'
7309 },
7310 contains: [
7311 hljs.COMMENT(';', '$'),
7312 {
7313 className: 'meta',
7314 begin: /^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/
7315 },
7316 // IPv6
7317 {
7318 className: 'number',
7319 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'
7320 },
7321 // IPv4
7322 {
7323 className: 'number',
7324 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'
7325 },
7326 hljs.inherit(hljs.NUMBER_MODE, {begin: /\b\d+[dhwm]?/})
7327 ]
7328 };
7329}
7330},{name:"dockerfile",create:/*
7331Language: Dockerfile
7332Requires: bash.js
7333Author: Alexis Hรฉnaut <alexis@henaut.net>
7334Description: language definition for Dockerfile files
7335Category: config
7336*/
7337
7338function(hljs) {
7339 return {
7340 aliases: ['docker'],
7341 case_insensitive: true,
7342 keywords: 'from maintainer cmd expose add copy entrypoint volume user workdir onbuild run env label',
7343 contains: [
7344 hljs.HASH_COMMENT_MODE,
7345 {
7346 keywords: 'run cmd entrypoint volume add copy workdir onbuild label',
7347 begin: /^ *(onbuild +)?(run|cmd|entrypoint|volume|add|copy|workdir|label) +/,
7348 starts: {
7349 end: /[^\\]\n/,
7350 subLanguage: 'bash'
7351 }
7352 },
7353 {
7354 keywords: 'from maintainer expose env user onbuild',
7355 begin: /^ *(onbuild +)?(from|maintainer|expose|env|user|onbuild) +/, end: /[^\\]\n/,
7356 contains: [
7357 hljs.APOS_STRING_MODE,
7358 hljs.QUOTE_STRING_MODE,
7359 hljs.NUMBER_MODE,
7360 hljs.HASH_COMMENT_MODE
7361 ]
7362 }
7363 ]
7364 }
7365}
7366},{name:"dos",create:/*
7367Language: DOS .bat
7368Author: Alexander Makarov <sam@rmcreative.ru>
7369Contributors: Anton Kochkov <anton.kochkov@gmail.com>
7370*/
7371
7372function(hljs) {
7373 var COMMENT = hljs.COMMENT(
7374 /@?rem\b/, /$/,
7375 {
7376 relevance: 10
7377 }
7378 );
7379 var LABEL = {
7380 className: 'symbol',
7381 begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)',
7382 relevance: 0
7383 };
7384 return {
7385 aliases: ['bat', 'cmd'],
7386 case_insensitive: true,
7387 illegal: /\/\*/,
7388 keywords: {
7389 keyword:
7390 'if else goto for in do call exit not exist errorlevel defined ' +
7391 'equ neq lss leq gtr geq',
7392 built_in:
7393 'prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux ' +
7394 'shift cd dir echo setlocal endlocal set pause copy ' +
7395 'append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color ' +
7396 'comp compact convert date dir diskcomp diskcopy doskey erase fs ' +
7397 'find findstr format ftype graftabl help keyb label md mkdir mode more move path ' +
7398 'pause print popd pushd promt rd recover rem rename replace restore rmdir shift' +
7399 'sort start subst time title tree type ver verify vol ' +
7400 // winutils
7401 'ping net ipconfig taskkill xcopy ren del'
7402 },
7403 contains: [
7404 {
7405 className: 'variable', begin: /%%[^ ]|%[^ ]+?%|![^ ]+?!/
7406 },
7407 {
7408 className: 'function',
7409 begin: LABEL.begin, end: 'goto:eof',
7410 contains: [
7411 hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}),
7412 COMMENT
7413 ]
7414 },
7415 {
7416 className: 'number', begin: '\\b\\d+',
7417 relevance: 0
7418 },
7419 COMMENT
7420 ]
7421 };
7422}
7423},{name:"dust",create:/*
7424Language: Dust
7425Requires: xml.js
7426Author: Michael Allen <michael.allen@benefitfocus.com>
7427Description: Matcher for dust.js templates.
7428Category: template
7429*/
7430
7431function(hljs) {
7432 var EXPRESSION_KEYWORDS = 'if eq ne lt lte gt gte select default math sep';
7433 return {
7434 aliases: ['dst'],
7435 case_insensitive: true,
7436 subLanguage: 'xml',
7437 contains: [
7438 {
7439 className: 'template-tag',
7440 begin: /\{[#\/]/, end: /\}/, illegal: /;/,
7441 contains: [
7442 {
7443 className: 'name',
7444 begin: /[a-zA-Z\.-]+/,
7445 starts: {
7446 endsWithParent: true, relevance: 0,
7447 contains: [
7448 hljs.QUOTE_STRING_MODE
7449 ]
7450 }
7451 }
7452 ]
7453 },
7454 {
7455 className: 'template-variable',
7456 begin: /\{/, end: /\}/, illegal: /;/,
7457 keywords: EXPRESSION_KEYWORDS
7458 }
7459 ]
7460 };
7461}
7462},{name:"elixir",create:/*
7463Language: Elixir
7464Author: Josh Adams <josh@isotope11.com>
7465Description: language definition for Elixir source code files (.ex and .exs). Based on ruby language support.
7466Category: functional
7467*/
7468
7469function(hljs) {
7470 var ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?';
7471 var ELIXIR_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
7472 var ELIXIR_KEYWORDS =
7473 'and false then defined module in return redo retry end for true self when ' +
7474 'next until do begin unless nil break not case cond alias while ensure or ' +
7475 'include use alias fn quote';
7476 var SUBST = {
7477 className: 'subst',
7478 begin: '#\\{', end: '}',
7479 lexemes: ELIXIR_IDENT_RE,
7480 keywords: ELIXIR_KEYWORDS
7481 };
7482 var STRING = {
7483 className: 'string',
7484 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
7485 variants: [
7486 {
7487 begin: /'/, end: /'/
7488 },
7489 {
7490 begin: /"/, end: /"/
7491 }
7492 ]
7493 };
7494 var FUNCTION = {
7495 className: 'function',
7496 beginKeywords: 'def defp defmacro', end: /\B\b/, // the mode is ended by the title
7497 contains: [
7498 hljs.inherit(hljs.TITLE_MODE, {
7499 begin: ELIXIR_IDENT_RE,
7500 endsParent: true
7501 })
7502 ]
7503 };
7504 var CLASS = hljs.inherit(FUNCTION, {
7505 className: 'class',
7506 beginKeywords: 'defmodule defrecord', end: /\bdo\b|$|;/
7507 });
7508 var ELIXIR_DEFAULT_CONTAINS = [
7509 STRING,
7510 hljs.HASH_COMMENT_MODE,
7511 CLASS,
7512 FUNCTION,
7513 {
7514 className: 'symbol',
7515 begin: ':',
7516 contains: [STRING, {begin: ELIXIR_METHOD_RE}],
7517 relevance: 0
7518 },
7519 {
7520 className: 'symbol',
7521 begin: ELIXIR_IDENT_RE + ':',
7522 relevance: 0
7523 },
7524 {
7525 className: 'number',
7526 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
7527 relevance: 0
7528 },
7529 {
7530 className: 'variable',
7531 begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))'
7532 },
7533 {
7534 begin: '->'
7535 },
7536 { // regexp container
7537 begin: '(' + hljs.RE_STARTERS_RE + ')\\s*',
7538 contains: [
7539 hljs.HASH_COMMENT_MODE,
7540 {
7541 className: 'regexp',
7542 illegal: '\\n',
7543 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
7544 variants: [
7545 {
7546 begin: '/', end: '/[a-z]*'
7547 },
7548 {
7549 begin: '%r\\[', end: '\\][a-z]*'
7550 }
7551 ]
7552 }
7553 ],
7554 relevance: 0
7555 }
7556 ];
7557 SUBST.contains = ELIXIR_DEFAULT_CONTAINS;
7558
7559 return {
7560 lexemes: ELIXIR_IDENT_RE,
7561 keywords: ELIXIR_KEYWORDS,
7562 contains: ELIXIR_DEFAULT_CONTAINS
7563 };
7564}
7565},{name:"elm",create:/*
7566Language: Elm
7567Author: Janis Voigtlaender <janis.voigtlaender@gmail.com>
7568Category: functional
7569*/
7570
7571function(hljs) {
7572 var COMMENT = {
7573 variants: [
7574 hljs.COMMENT('--', '$'),
7575 hljs.COMMENT(
7576 '{-',
7577 '-}',
7578 {
7579 contains: ['self']
7580 }
7581 )
7582 ]
7583 };
7584
7585 var CONSTRUCTOR = {
7586 className: 'type',
7587 begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (built-in, infix).
7588 relevance: 0
7589 };
7590
7591 var LIST = {
7592 begin: '\\(', end: '\\)',
7593 illegal: '"',
7594 contains: [
7595 {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
7596 COMMENT
7597 ]
7598 };
7599
7600 var RECORD = {
7601 begin: '{', end: '}',
7602 contains: LIST.contains
7603 };
7604
7605 return {
7606 keywords:
7607 'let in if then else case of where module import exposing ' +
7608 'type alias as infix infixl infixr port',
7609 contains: [
7610
7611 // Top-level constructions.
7612
7613 {
7614 beginKeywords: 'module', end: 'where',
7615 keywords: 'module where',
7616 contains: [LIST, COMMENT],
7617 illegal: '\\W\\.|;'
7618 },
7619 {
7620 begin: 'import', end: '$',
7621 keywords: 'import as exposing',
7622 contains: [LIST, COMMENT],
7623 illegal: '\\W\\.|;'
7624 },
7625 {
7626 begin: 'type', end: '$',
7627 keywords: 'type alias',
7628 contains: [CONSTRUCTOR, LIST, RECORD, COMMENT]
7629 },
7630 {
7631 beginKeywords: 'infix infixl infixr', end: '$',
7632 contains: [hljs.C_NUMBER_MODE, COMMENT]
7633 },
7634 {
7635 begin: 'port', end: '$',
7636 keywords: 'port',
7637 contains: [COMMENT]
7638 },
7639
7640 // Literals and names.
7641
7642 // TODO: characters.
7643 hljs.QUOTE_STRING_MODE,
7644 hljs.C_NUMBER_MODE,
7645 CONSTRUCTOR,
7646 hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}),
7647 COMMENT,
7648
7649 {begin: '->|<-'} // No markup, relevance booster
7650 ]
7651 };
7652}
7653},{name:"erb",create:/*
7654Language: ERB (Embedded Ruby)
7655Requires: xml.js, ruby.js
7656Author: Lucas Mazza <lucastmazza@gmail.com>
7657Contributors: Kassio Borges <kassioborgesm@gmail.com>
7658Description: "Bridge" language defining fragments of Ruby in HTML within <% .. %>
7659Category: template
7660*/
7661
7662function(hljs) {
7663 return {
7664 subLanguage: 'xml',
7665 contains: [
7666 hljs.COMMENT('<%#', '%>'),
7667 {
7668 begin: '<%[%=-]?', end: '[%-]?%>',
7669 subLanguage: 'ruby',
7670 excludeBegin: true,
7671 excludeEnd: true
7672 }
7673 ]
7674 };
7675}
7676},{name:"erlang-repl",create:/*
7677 Language: Erlang REPL
7678 Author: Sergey Ignatov <sergey@ignatov.spb.su>
7679Category: functional
7680 */
7681
7682function(hljs) {
7683 return {
7684 keywords: {
7685 built_in:
7686 'spawn spawn_link self',
7687 keyword:
7688 'after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if ' +
7689 'let not of or orelse|10 query receive rem try when xor'
7690 },
7691 contains: [
7692 {
7693 className: 'meta', begin: '^[0-9]+> ',
7694 relevance: 10
7695 },
7696 hljs.COMMENT('%', '$'),
7697 {
7698 className: 'number',
7699 begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)',
7700 relevance: 0
7701 },
7702 hljs.APOS_STRING_MODE,
7703 hljs.QUOTE_STRING_MODE,
7704 {
7705 begin: '\\?(::)?([A-Z]\\w*(::)?)+'
7706 },
7707 {
7708 begin: '->'
7709 },
7710 {
7711 begin: 'ok'
7712 },
7713 {
7714 begin: '!'
7715 },
7716 {
7717 begin: '(\\b[a-z\'][a-zA-Z0-9_\']*:[a-z\'][a-zA-Z0-9_\']*)|(\\b[a-z\'][a-zA-Z0-9_\']*)',
7718 relevance: 0
7719 },
7720 {
7721 begin: '[A-Z][a-zA-Z0-9_\']*',
7722 relevance: 0
7723 }
7724 ]
7725 };
7726}
7727},{name:"erlang",create:/*
7728Language: Erlang
7729Description: Erlang is a general-purpose functional language, with strict evaluation, single assignment, and dynamic typing.
7730Author: Nikolay Zakharov <nikolay.desh@gmail.com>, Dmitry Kovega <arhibot@gmail.com>
7731Category: functional
7732*/
7733
7734function(hljs) {
7735 var BASIC_ATOM_RE = '[a-z\'][a-zA-Z0-9_\']*';
7736 var FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')';
7737 var ERLANG_RESERVED = {
7738 keyword:
7739 'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if ' +
7740 'let not of orelse|10 query receive rem try when xor',
7741 literal:
7742 'false true'
7743 };
7744
7745 var COMMENT = hljs.COMMENT('%', '$');
7746 var NUMBER = {
7747 className: 'number',
7748 begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)',
7749 relevance: 0
7750 };
7751 var NAMED_FUN = {
7752 begin: 'fun\\s+' + BASIC_ATOM_RE + '/\\d+'
7753 };
7754 var FUNCTION_CALL = {
7755 begin: FUNCTION_NAME_RE + '\\(', end: '\\)',
7756 returnBegin: true,
7757 relevance: 0,
7758 contains: [
7759 {
7760 begin: FUNCTION_NAME_RE, relevance: 0
7761 },
7762 {
7763 begin: '\\(', end: '\\)', endsWithParent: true,
7764 returnEnd: true,
7765 relevance: 0
7766 // "contains" defined later
7767 }
7768 ]
7769 };
7770 var TUPLE = {
7771 begin: '{', end: '}',
7772 relevance: 0
7773 // "contains" defined later
7774 };
7775 var VAR1 = {
7776 begin: '\\b_([A-Z][A-Za-z0-9_]*)?',
7777 relevance: 0
7778 };
7779 var VAR2 = {
7780 begin: '[A-Z][a-zA-Z0-9_]*',
7781 relevance: 0
7782 };
7783 var RECORD_ACCESS = {
7784 begin: '#' + hljs.UNDERSCORE_IDENT_RE,
7785 relevance: 0,
7786 returnBegin: true,
7787 contains: [
7788 {
7789 begin: '#' + hljs.UNDERSCORE_IDENT_RE,
7790 relevance: 0
7791 },
7792 {
7793 begin: '{', end: '}',
7794 relevance: 0
7795 // "contains" defined later
7796 }
7797 ]
7798 };
7799
7800 var BLOCK_STATEMENTS = {
7801 beginKeywords: 'fun receive if try case', end: 'end',
7802 keywords: ERLANG_RESERVED
7803 };
7804 BLOCK_STATEMENTS.contains = [
7805 COMMENT,
7806 NAMED_FUN,
7807 hljs.inherit(hljs.APOS_STRING_MODE, {className: ''}),
7808 BLOCK_STATEMENTS,
7809 FUNCTION_CALL,
7810 hljs.QUOTE_STRING_MODE,
7811 NUMBER,
7812 TUPLE,
7813 VAR1, VAR2,
7814 RECORD_ACCESS
7815 ];
7816
7817 var BASIC_MODES = [
7818 COMMENT,
7819 NAMED_FUN,
7820 BLOCK_STATEMENTS,
7821 FUNCTION_CALL,
7822 hljs.QUOTE_STRING_MODE,
7823 NUMBER,
7824 TUPLE,
7825 VAR1, VAR2,
7826 RECORD_ACCESS
7827 ];
7828 FUNCTION_CALL.contains[1].contains = BASIC_MODES;
7829 TUPLE.contains = BASIC_MODES;
7830 RECORD_ACCESS.contains[1].contains = BASIC_MODES;
7831
7832 var PARAMS = {
7833 className: 'params',
7834 begin: '\\(', end: '\\)',
7835 contains: BASIC_MODES
7836 };
7837 return {
7838 aliases: ['erl'],
7839 keywords: ERLANG_RESERVED,
7840 illegal: '(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))',
7841 contains: [
7842 {
7843 className: 'function',
7844 begin: '^' + BASIC_ATOM_RE + '\\s*\\(', end: '->',
7845 returnBegin: true,
7846 illegal: '\\(|#|//|/\\*|\\\\|:|;',
7847 contains: [
7848 PARAMS,
7849 hljs.inherit(hljs.TITLE_MODE, {begin: BASIC_ATOM_RE})
7850 ],
7851 starts: {
7852 end: ';|\\.',
7853 keywords: ERLANG_RESERVED,
7854 contains: BASIC_MODES
7855 }
7856 },
7857 COMMENT,
7858 {
7859 begin: '^-', end: '\\.',
7860 relevance: 0,
7861 excludeEnd: true,
7862 returnBegin: true,
7863 lexemes: '-' + hljs.IDENT_RE,
7864 keywords:
7865 '-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn ' +
7866 '-import -include -include_lib -compile -define -else -endif -file -behaviour ' +
7867 '-behavior -spec',
7868 contains: [PARAMS]
7869 },
7870 NUMBER,
7871 hljs.QUOTE_STRING_MODE,
7872 RECORD_ACCESS,
7873 VAR1, VAR2,
7874 TUPLE,
7875 {begin: /\.$/} // relevance booster
7876 ]
7877 };
7878}
7879},{name:"fix",create:/*
7880Language: FIX
7881Author: Brent Bradbury <brent@brentium.com>
7882*/
7883
7884function(hljs) {
7885 return {
7886 contains: [
7887 {
7888 begin: /[^\u2401\u0001]+/,
7889 end: /[\u2401\u0001]/,
7890 excludeEnd: true,
7891 returnBegin: true,
7892 returnEnd: false,
7893 contains: [
7894 {
7895 begin: /([^\u2401\u0001=]+)/,
7896 end: /=([^\u2401\u0001=]+)/,
7897 returnEnd: true,
7898 returnBegin: false,
7899 className: 'attr'
7900 },
7901 {
7902 begin: /=/,
7903 end: /([\u2401\u0001])/,
7904 excludeEnd: true,
7905 excludeBegin: true,
7906 className: 'string'
7907 }]
7908 }],
7909 case_insensitive: true
7910 };
7911}
7912},{name:"fortran",create:/*
7913Language: Fortran
7914Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
7915Category: scientific
7916*/
7917
7918function(hljs) {
7919 var PARAMS = {
7920 className: 'params',
7921 begin: '\\(', end: '\\)'
7922 };
7923
7924 var F_KEYWORDS = {
7925 literal: '.False. .True.',
7926 keyword: 'kind do while private call intrinsic where elsewhere ' +
7927 'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' +
7928 'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +
7929 'goto save else use module select case ' +
7930 'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +
7931 'continue format pause cycle exit ' +
7932 'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +
7933 'synchronous nopass non_overridable pass protected volatile abstract extends import ' +
7934 'non_intrinsic value deferred generic final enumerator class associate bind enum ' +
7935 '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 ' +
7936 '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 ' +
7937 'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +
7938 'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer ' +
7939 'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +
7940 'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +
7941 'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +
7942 'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure ' +
7943 'integer real character complex logical dimension allocatable|10 parameter ' +
7944 'external implicit|10 none double precision assign intent optional pointer ' +
7945 'target in out common equivalence data',
7946 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 ' +
7947 'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +
7948 'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +
7949 'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +
7950 '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 ' +
7951 'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +
7952 'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +
7953 'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +
7954 'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +
7955 'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +
7956 'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +
7957 'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +
7958 'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +
7959 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of' +
7960 'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +
7961 'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +
7962 'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +
7963 'num_images parity popcnt poppar shifta shiftl shiftr this_image'
7964 };
7965 return {
7966 case_insensitive: true,
7967 aliases: ['f90', 'f95'],
7968 keywords: F_KEYWORDS,
7969 illegal: /\/\*/,
7970 contains: [
7971 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
7972 hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'string', relevance: 0}),
7973 {
7974 className: 'function',
7975 beginKeywords: 'subroutine function program',
7976 illegal: '[${=\\n]',
7977 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
7978 },
7979 hljs.COMMENT('!', '$', {relevance: 0}),
7980 {
7981 className: 'number',
7982 begin: '(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?',
7983 relevance: 0
7984 }
7985 ]
7986 };
7987}
7988},{name:"fsharp",create:/*
7989Language: F#
7990Author: Jonas Follesรธ <jonas@follesoe.no>
7991Contributors: Troy Kershaw <hello@troykershaw.com>, Henrik Feldt <henrik@haf.se>
7992Category: functional
7993*/
7994function(hljs) {
7995 var TYPEPARAM = {
7996 begin: '<', end: '>',
7997 contains: [
7998 hljs.inherit(hljs.TITLE_MODE, {begin: /'[a-zA-Z0-9_]+/})
7999 ]
8000 };
8001
8002 return {
8003 aliases: ['fs'],
8004 keywords:
8005 'abstract and as assert base begin class default delegate do done ' +
8006 'downcast downto elif else end exception extern false finally for ' +
8007 'fun function global if in inherit inline interface internal lazy let ' +
8008 'match member module mutable namespace new null of open or ' +
8009 'override private public rec return sig static struct then to ' +
8010 'true try type upcast use val void when while with yield',
8011 illegal: /\/\*/,
8012 contains: [
8013 {
8014 // monad builder keywords (matches before non-bang kws)
8015 className: 'keyword',
8016 begin: /\b(yield|return|let|do)!/
8017 },
8018 {
8019 className: 'string',
8020 begin: '@"', end: '"',
8021 contains: [{begin: '""'}]
8022 },
8023 {
8024 className: 'string',
8025 begin: '"""', end: '"""'
8026 },
8027 hljs.COMMENT('\\(\\*', '\\*\\)'),
8028 {
8029 className: 'class',
8030 beginKeywords: 'type', end: '\\(|=|$', excludeEnd: true,
8031 contains: [
8032 hljs.UNDERSCORE_TITLE_MODE,
8033 TYPEPARAM
8034 ]
8035 },
8036 {
8037 className: 'meta',
8038 begin: '\\[<', end: '>\\]',
8039 relevance: 10
8040 },
8041 {
8042 className: 'symbol',
8043 begin: '\\B(\'[A-Za-z])\\b',
8044 contains: [hljs.BACKSLASH_ESCAPE]
8045 },
8046 hljs.C_LINE_COMMENT_MODE,
8047 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
8048 hljs.C_NUMBER_MODE
8049 ]
8050 };
8051}
8052},{name:"gams",create:/*
8053 Language: GAMS
8054 Author: Stefan Bechert <stefan.bechert@gmx.net>
8055 Contributors: Oleg Efimov <efimovov@gmail.com>
8056 Description: The General Algebraic Modeling System language
8057 Category: scientific
8058 */
8059
8060function (hljs) {
8061 var KEYWORDS =
8062 'abort acronym acronyms alias all and assign binary card diag display else1 eps eq equation equations file files ' +
8063 'for1 free ge gt if inf integer le loop lt maximizing minimizing model models na ne negative no not option ' +
8064 'options or ord parameter parameters positive prod putpage puttl repeat sameas scalar scalars semicont semiint ' +
8065 'set1 sets smax smin solve sos1 sos2 sum system table then until using variable variables while1 xor yes';
8066
8067 return {
8068 aliases: ['gms'],
8069 case_insensitive: true,
8070 keywords: KEYWORDS,
8071 contains: [
8072 {
8073 beginKeywords: 'sets parameters variables equations',
8074 end: ';',
8075 contains: [
8076 {
8077 begin: '/',
8078 end: '/',
8079 contains: [hljs.NUMBER_MODE]
8080 }
8081 ]
8082 },
8083 {
8084 className: 'string',
8085 begin: '\\*{3}', end: '\\*{3}'
8086 },
8087 hljs.NUMBER_MODE,
8088 {
8089 className: 'number',
8090 begin: '\\$[a-zA-Z0-9]+'
8091 }
8092 ]
8093 };
8094}
8095
8096},{name:"gcode",create:/*
8097 Language: G-code (ISO 6983)
8098 Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>
8099 Description: G-code syntax highlighter for Fanuc and other common CNC machine tool controls.
8100 */
8101
8102function(hljs) {
8103 var GCODE_IDENT_RE = '[A-Z_][A-Z0-9_.]*';
8104 var GCODE_CLOSE_RE = '\\%';
8105 var GCODE_KEYWORDS =
8106 'IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT ' +
8107 'EQ LT GT NE GE LE OR XOR';
8108 var GCODE_START = {
8109 className: 'meta',
8110 begin: '([O])([0-9]+)'
8111 };
8112 var GCODE_CODE = [
8113 hljs.C_LINE_COMMENT_MODE,
8114 hljs.C_BLOCK_COMMENT_MODE,
8115 hljs.COMMENT(/\(/, /\)/),
8116 hljs.inherit(hljs.C_NUMBER_MODE, {begin: '([-+]?([0-9]*\\.?[0-9]+\\.?))|' + hljs.C_NUMBER_RE}),
8117 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
8118 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
8119 {
8120 className: 'name',
8121 begin: '([G])([0-9]+\\.?[0-9]?)'
8122 },
8123 {
8124 className: 'name',
8125 begin: '([M])([0-9]+\\.?[0-9]?)'
8126 },
8127 {
8128 className: 'attr',
8129 begin: '(VC|VS|#)',
8130 end: '(\\d+)'
8131 },
8132 {
8133 className: 'attr',
8134 begin: '(VZOFX|VZOFY|VZOFZ)'
8135 },
8136 {
8137 className: 'built_in',
8138 begin: '(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)',
8139 end: '([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])'
8140 },
8141 {
8142 className: 'symbol',
8143 variants: [
8144 {
8145 begin: 'N', end: '\\d+',
8146 illegal: '\\W'
8147 }
8148 ]
8149 }
8150 ];
8151
8152 return {
8153 aliases: ['nc'],
8154 // Some implementations (CNC controls) of G-code are interoperable with uppercase and lowercase letters seamlessly.
8155 // However, most prefer all uppercase and uppercase is customary.
8156 case_insensitive: true,
8157 lexemes: GCODE_IDENT_RE,
8158 keywords: GCODE_KEYWORDS,
8159 contains: [
8160 {
8161 className: 'meta',
8162 begin: GCODE_CLOSE_RE
8163 },
8164 GCODE_START
8165 ].concat(GCODE_CODE)
8166 };
8167}
8168},{name:"gherkin",create:/*
8169 Language: Gherkin
8170 Author: Sam Pikesley (@pikesley) <sam.pikesley@theodi.org>
8171 Description: Gherkin (Cucumber etc)
8172 */
8173
8174function (hljs) {
8175 return {
8176 aliases: ['feature'],
8177 keywords: 'Feature Background Ability Business\ Need Scenario Scenarios Scenario\ Outline Scenario\ Template Examples Given And Then But When',
8178 contains: [
8179 {
8180 className: 'keyword',
8181 begin: '\\*'
8182 },
8183 {
8184 className: 'meta',
8185 begin: '@[^@\\s]+'
8186 },
8187 {
8188 begin: '\\|', end: '\\|\\w*$',
8189 contains: [
8190 {
8191 className: 'string',
8192 begin: '[^|]+'
8193 }
8194 ]
8195 },
8196 {
8197 className: 'variable',
8198 begin: '<', end: '>'
8199 },
8200 hljs.HASH_COMMENT_MODE,
8201 {
8202 className: 'string',
8203 begin: '"""', end: '"""'
8204 },
8205 hljs.QUOTE_STRING_MODE
8206 ]
8207 };
8208}
8209},{name:"glsl",create:/*
8210Language: GLSL
8211Description: OpenGL Shading Language
8212Author: Sergey Tikhomirov <sergey@tikhomirov.io>
8213Category: graphics
8214*/
8215
8216function(hljs) {
8217 return {
8218 keywords: {
8219 keyword:
8220 // Statements
8221 'break continue discard do else for if return while' +
8222 // Qualifiers
8223 'attribute binding buffer ccw centroid centroid varying coherent column_major const cw ' +
8224 'depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing ' +
8225 'flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant ' +
8226 'invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y ' +
8227 'local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left ' +
8228 'out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f '+
8229 'r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict ' +
8230 'rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 ' +
8231 'rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 ' +
8232 'rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip ' +
8233 'triangles triangles_adjacency uniform varying vertices volatile writeonly',
8234 type:
8235 'atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 ' +
8236 'dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray ' +
8237 'iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer' +
8238 'iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray ' +
8239 'image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray ' +
8240 'isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D ' +
8241 'isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 ' +
8242 'mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray ' +
8243 'sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow ' +
8244 'sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D ' +
8245 'samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow ' +
8246 'image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect ' +
8247 'uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray ' +
8248 'usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D ' +
8249 'samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void',
8250 built_in:
8251 // Constants
8252 'gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes ' +
8253 'gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms ' +
8254 'gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers ' +
8255 'gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits ' +
8256 'gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize ' +
8257 'gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters ' +
8258 'gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors ' +
8259 'gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers ' +
8260 'gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents ' +
8261 'gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits ' +
8262 'gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents ' +
8263 'gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset ' +
8264 'gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms ' +
8265 'gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits ' +
8266 'gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents ' +
8267 'gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters ' +
8268 'gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents ' +
8269 'gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents ' +
8270 'gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits ' +
8271 'gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors ' +
8272 'gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms ' +
8273 'gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits ' +
8274 'gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset ' +
8275 // Variables
8276 'gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial ' +
8277 'gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color ' +
8278 'gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord ' +
8279 'gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor ' +
8280 'gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial ' +
8281 'gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel ' +
8282 'gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix ' +
8283 'gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose ' +
8284 'gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose ' +
8285 'gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 ' +
8286 'gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 ' +
8287 'gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ ' +
8288 'gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord ' +
8289 'gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse ' +
8290 'gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask ' +
8291 'gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter ' +
8292 'gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose ' +
8293 'gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out ' +
8294 // Functions
8295 'EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin ' +
8296 'asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement ' +
8297 'atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier ' +
8298 'bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross ' +
8299 'dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB ' +
8300 'floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan ' +
8301 'greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap ' +
8302 'imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad ' +
8303 'imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset ' +
8304 'interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log ' +
8305 'log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer ' +
8306 'memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 ' +
8307 'normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 ' +
8308 'packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod ' +
8309 'shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh ' +
8310 'smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod ' +
8311 'texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod ' +
8312 'texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod ' +
8313 'textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset ' +
8314 'textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset ' +
8315 'textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod ' +
8316 'textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 ' +
8317 'unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow',
8318 literal: 'true false'
8319 },
8320 illegal: '"',
8321 contains: [
8322 hljs.C_LINE_COMMENT_MODE,
8323 hljs.C_BLOCK_COMMENT_MODE,
8324 hljs.C_NUMBER_MODE,
8325 {
8326 className: 'meta',
8327 begin: '#', end: '$'
8328 }
8329 ]
8330 };
8331}
8332},{name:"go",create:/*
8333Language: Go
8334Author: Stephan Kountso aka StepLg <steplg@gmail.com>
8335Contributors: Evgeny Stepanischev <imbolk@gmail.com>
8336Description: Google go language (golang). For info about language see http://golang.org/
8337Category: system
8338*/
8339
8340function(hljs) {
8341 var GO_KEYWORDS = {
8342 keyword:
8343 'break default func interface select case map struct chan else goto package switch ' +
8344 'const fallthrough if range type continue for import return var go defer ' +
8345 'bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 ' +
8346 'uint16 uint32 uint64 int uint uintptr rune',
8347 literal:
8348 'true false iota nil',
8349 built_in:
8350 'append cap close complex copy imag len make new panic print println real recover delete'
8351 };
8352 return {
8353 aliases: ['golang'],
8354 keywords: GO_KEYWORDS,
8355 illegal: '</',
8356 contains: [
8357 hljs.C_LINE_COMMENT_MODE,
8358 hljs.C_BLOCK_COMMENT_MODE,
8359 hljs.QUOTE_STRING_MODE,
8360 {
8361 className: 'string',
8362 begin: '\'', end: '[^\\\\]\''
8363 },
8364 {
8365 className: 'string',
8366 begin: '`', end: '`'
8367 },
8368 {
8369 className: 'number',
8370 begin: hljs.C_NUMBER_RE + '[dflsi]?',
8371 relevance: 0
8372 },
8373 hljs.C_NUMBER_MODE
8374 ]
8375 };
8376}
8377},{name:"golo",create:/*
8378Language: Golo
8379Author: Philippe Charriere <ph.charriere@gmail.com>
8380Description: a lightweight dynamic language for the JVM, see http://golo-lang.org/
8381*/
8382
8383function(hljs) {
8384 return {
8385 keywords: {
8386 keyword:
8387 'println readln print import module function local return let var ' +
8388 'while for foreach times in case when match with break continue ' +
8389 'augment augmentation each find filter reduce ' +
8390 'if then else otherwise try catch finally raise throw orIfNull ' +
8391 'DynamicObject|10 DynamicVariable struct Observable map set vector list array',
8392 literal:
8393 'true false null'
8394 },
8395 contains: [
8396 hljs.HASH_COMMENT_MODE,
8397 hljs.QUOTE_STRING_MODE,
8398 hljs.C_NUMBER_MODE,
8399 {
8400 className: 'meta', begin: '@[A-Za-z]+'
8401 }
8402 ]
8403 }
8404}
8405},{name:"gradle",create:/*
8406Language: Gradle
8407Author: Damian Mee <mee.damian@gmail.com>
8408Website: http://meeDamian.com
8409*/
8410
8411function(hljs) {
8412 return {
8413 case_insensitive: true,
8414 keywords: {
8415 keyword:
8416 'task project allprojects subprojects artifacts buildscript configurations ' +
8417 'dependencies repositories sourceSets description delete from into include ' +
8418 'exclude source classpath destinationDir includes options sourceCompatibility ' +
8419 'targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant ' +
8420 'def abstract break case catch continue default do else extends final finally ' +
8421 'for if implements instanceof native new private protected public return static ' +
8422 'switch synchronized throw throws transient try volatile while strictfp package ' +
8423 'import false null super this true antlrtask checkstyle codenarc copy boolean ' +
8424 'byte char class double float int interface long short void compile runTime ' +
8425 'file fileTree abs any append asList asWritable call collect compareTo count ' +
8426 'div dump each eachByte eachFile eachLine every find findAll flatten getAt ' +
8427 'getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods ' +
8428 'isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter ' +
8429 'newReader newWriter next plus pop power previous print println push putAt read ' +
8430 'readBytes readLines reverse reverseEach round size sort splitEachLine step subMap ' +
8431 'times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader ' +
8432 'withStream withWriter withWriterAppend write writeLine'
8433 },
8434 contains: [
8435 hljs.C_LINE_COMMENT_MODE,
8436 hljs.C_BLOCK_COMMENT_MODE,
8437 hljs.APOS_STRING_MODE,
8438 hljs.QUOTE_STRING_MODE,
8439 hljs.NUMBER_MODE,
8440 hljs.REGEXP_MODE
8441
8442 ]
8443 }
8444}
8445},{name:"groovy",create:/*
8446 Language: Groovy
8447 Author: Guillaume Laforge <glaforge@gmail.com>
8448 Website: http://glaforge.appspot.com
8449 Description: Groovy programming language implementation inspired from Vsevolod's Java mode
8450 */
8451
8452function(hljs) {
8453 return {
8454 keywords: {
8455 literal : 'true false null',
8456 keyword:
8457 'byte short char int long boolean float double void ' +
8458 // groovy specific keywords
8459 'def as in assert trait ' +
8460 // common keywords with Java
8461 'super this abstract static volatile transient public private protected synchronized final ' +
8462 'class interface enum if else for while switch case break default continue ' +
8463 'throw throws try catch finally implements extends new import package return instanceof'
8464 },
8465
8466 contains: [
8467 hljs.COMMENT(
8468 '/\\*\\*',
8469 '\\*/',
8470 {
8471 relevance : 0,
8472 contains : [
8473 {
8474 // eat up @'s in emails to prevent them to be recognized as doctags
8475 begin: /\w+@/, relevance: 0
8476 },
8477 {
8478 className : 'doctag',
8479 begin : '@[A-Za-z]+'
8480 }
8481 ]
8482 }
8483 ),
8484 hljs.C_LINE_COMMENT_MODE,
8485 hljs.C_BLOCK_COMMENT_MODE,
8486 {
8487 className: 'string',
8488 begin: '"""', end: '"""'
8489 },
8490 {
8491 className: 'string',
8492 begin: "'''", end: "'''"
8493 },
8494 {
8495 className: 'string',
8496 begin: "\\$/", end: "/\\$",
8497 relevance: 10
8498 },
8499 hljs.APOS_STRING_MODE,
8500 {
8501 className: 'regexp',
8502 begin: /~?\/[^\/\n]+\//,
8503 contains: [
8504 hljs.BACKSLASH_ESCAPE
8505 ]
8506 },
8507 hljs.QUOTE_STRING_MODE,
8508 {
8509 className: 'meta',
8510 begin: "^#!/usr/bin/env", end: '$',
8511 illegal: '\n'
8512 },
8513 hljs.BINARY_NUMBER_MODE,
8514 {
8515 className: 'class',
8516 beginKeywords: 'class interface trait enum', end: '{',
8517 illegal: ':',
8518 contains: [
8519 {beginKeywords: 'extends implements'},
8520 hljs.UNDERSCORE_TITLE_MODE,
8521 ]
8522 },
8523 hljs.C_NUMBER_MODE,
8524 {
8525 className: 'meta', begin: '@[A-Za-z]+'
8526 },
8527 {
8528 // highlight map keys and named parameters as strings
8529 className: 'string', begin: /[^\?]{0}[A-Za-z0-9_$]+ *:/
8530 },
8531 {
8532 // catch middle element of the ternary operator
8533 // to avoid highlight it as a label, named parameter, or map key
8534 begin: /\?/, end: /\:/
8535 },
8536 {
8537 // highlight labeled statements
8538 className: 'symbol', begin: '^\\s*[A-Za-z0-9_$]+:',
8539 relevance: 0
8540 },
8541 ],
8542 illegal: /#|<\//
8543 }
8544}
8545},{name:"haml",create:/*
8546Language: Haml
8547Requires: ruby.js
8548Author: Dan Allen <dan.j.allen@gmail.com>
8549Website: http://google.com/profiles/dan.j.allen
8550Category: template
8551*/
8552
8553// TODO support filter tags like :javascript, support inline HTML
8554function(hljs) {
8555 return {
8556 case_insensitive: true,
8557 contains: [
8558 {
8559 className: 'meta',
8560 begin: '^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$',
8561 relevance: 10
8562 },
8563 // FIXME these comments should be allowed to span indented lines
8564 hljs.COMMENT(
8565 '^\\s*(!=#|=#|-#|/).*$',
8566 false,
8567 {
8568 relevance: 0
8569 }
8570 ),
8571 {
8572 begin: '^\\s*(-|=|!=)(?!#)',
8573 starts: {
8574 end: '\\n',
8575 subLanguage: 'ruby'
8576 }
8577 },
8578 {
8579 className: 'tag',
8580 begin: '^\\s*%',
8581 contains: [
8582 {
8583 className: 'selector-tag',
8584 begin: '\\w+'
8585 },
8586 {
8587 className: 'selector-id',
8588 begin: '#[\\w-]+'
8589 },
8590 {
8591 className: 'selector-class',
8592 begin: '\\.[\\w-]+'
8593 },
8594 {
8595 begin: '{\\s*',
8596 end: '\\s*}',
8597 contains: [
8598 {
8599 begin: ':\\w+\\s*=>',
8600 end: ',\\s+',
8601 returnBegin: true,
8602 endsWithParent: true,
8603 contains: [
8604 {
8605 className: 'attr',
8606 begin: ':\\w+'
8607 },
8608 hljs.APOS_STRING_MODE,
8609 hljs.QUOTE_STRING_MODE,
8610 {
8611 begin: '\\w+',
8612 relevance: 0
8613 }
8614 ]
8615 }
8616 ]
8617 },
8618 {
8619 begin: '\\(\\s*',
8620 end: '\\s*\\)',
8621 excludeEnd: true,
8622 contains: [
8623 {
8624 begin: '\\w+\\s*=',
8625 end: '\\s+',
8626 returnBegin: true,
8627 endsWithParent: true,
8628 contains: [
8629 {
8630 className: 'attr',
8631 begin: '\\w+',
8632 relevance: 0
8633 },
8634 hljs.APOS_STRING_MODE,
8635 hljs.QUOTE_STRING_MODE,
8636 {
8637 begin: '\\w+',
8638 relevance: 0
8639 }
8640 ]
8641 }
8642 ]
8643 }
8644 ]
8645 },
8646 {
8647 begin: '^\\s*[=~]\\s*'
8648 },
8649 {
8650 begin: '#{',
8651 starts: {
8652 end: '}',
8653 subLanguage: 'ruby'
8654 }
8655 }
8656 ]
8657 };
8658}
8659},{name:"handlebars",create:/*
8660Language: Handlebars
8661Requires: xml.js
8662Author: Robin Ward <robin.ward@gmail.com>
8663Description: Matcher for Handlebars as well as EmberJS additions.
8664Category: template
8665*/
8666
8667function(hljs) {
8668 var BUILT_INS = {'builtin-name': 'each in with if else unless bindattr action collection debugger log outlet template unbound view yield'};
8669 return {
8670 aliases: ['hbs', 'html.hbs', 'html.handlebars'],
8671 case_insensitive: true,
8672 subLanguage: 'xml',
8673 contains: [
8674 hljs.COMMENT('{{!(--)?', '(--)?}}'),
8675 {
8676 className: 'template-tag',
8677 begin: /\{\{[#\/]/, end: /\}\}/,
8678 contains: [
8679 {
8680 className: 'name',
8681 begin: /[a-zA-Z\.-]+/,
8682 keywords: BUILT_INS,
8683 starts: {
8684 endsWithParent: true, relevance: 0,
8685 contains: [
8686 hljs.QUOTE_STRING_MODE
8687 ]
8688 }
8689 }
8690 ]
8691 },
8692 {
8693 className: 'template-variable',
8694 begin: /\{\{/, end: /\}\}/,
8695 keywords: BUILT_INS
8696 }
8697 ]
8698 };
8699}
8700},{name:"haskell",create:/*
8701Language: Haskell
8702Author: Jeremy Hull <sourdrums@gmail.com>
8703Contributors: Zena Treep <zena.treep@gmail.com>
8704Category: functional
8705*/
8706
8707function(hljs) {
8708 var COMMENT = {
8709 variants: [
8710 hljs.COMMENT('--', '$'),
8711 hljs.COMMENT(
8712 '{-',
8713 '-}',
8714 {
8715 contains: ['self']
8716 }
8717 )
8718 ]
8719 };
8720
8721 var PRAGMA = {
8722 className: 'meta',
8723 begin: '{-#', end: '#-}'
8724 };
8725
8726 var PREPROCESSOR = {
8727 className: 'meta',
8728 begin: '^#', end: '$'
8729 };
8730
8731 var CONSTRUCTOR = {
8732 className: 'type',
8733 begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (build-in, infix).
8734 relevance: 0
8735 };
8736
8737 var LIST = {
8738 begin: '\\(', end: '\\)',
8739 illegal: '"',
8740 contains: [
8741 PRAGMA,
8742 PREPROCESSOR,
8743 {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
8744 hljs.inherit(hljs.TITLE_MODE, {begin: '[_a-z][\\w\']*'}),
8745 COMMENT
8746 ]
8747 };
8748
8749 var RECORD = {
8750 begin: '{', end: '}',
8751 contains: LIST.contains
8752 };
8753
8754 return {
8755 aliases: ['hs'],
8756 keywords:
8757 'let in if then else case of where do module import hiding ' +
8758 'qualified type data newtype deriving class instance as default ' +
8759 'infix infixl infixr foreign export ccall stdcall cplusplus ' +
8760 'jvm dotnet safe unsafe family forall mdo proc rec',
8761 contains: [
8762
8763 // Top-level constructions.
8764
8765 {
8766 beginKeywords: 'module', end: 'where',
8767 keywords: 'module where',
8768 contains: [LIST, COMMENT],
8769 illegal: '\\W\\.|;'
8770 },
8771 {
8772 begin: '\\bimport\\b', end: '$',
8773 keywords: 'import qualified as hiding',
8774 contains: [LIST, COMMENT],
8775 illegal: '\\W\\.|;'
8776 },
8777
8778 {
8779 className: 'class',
8780 begin: '^(\\s*)?(class|instance)\\b', end: 'where',
8781 keywords: 'class family instance where',
8782 contains: [CONSTRUCTOR, LIST, COMMENT]
8783 },
8784 {
8785 className: 'class',
8786 begin: '\\b(data|(new)?type)\\b', end: '$',
8787 keywords: 'data family type newtype deriving',
8788 contains: [PRAGMA, CONSTRUCTOR, LIST, RECORD, COMMENT]
8789 },
8790 {
8791 beginKeywords: 'default', end: '$',
8792 contains: [CONSTRUCTOR, LIST, COMMENT]
8793 },
8794 {
8795 beginKeywords: 'infix infixl infixr', end: '$',
8796 contains: [hljs.C_NUMBER_MODE, COMMENT]
8797 },
8798 {
8799 begin: '\\bforeign\\b', end: '$',
8800 keywords: 'foreign import export ccall stdcall cplusplus jvm ' +
8801 'dotnet safe unsafe',
8802 contains: [CONSTRUCTOR, hljs.QUOTE_STRING_MODE, COMMENT]
8803 },
8804 {
8805 className: 'meta',
8806 begin: '#!\\/usr\\/bin\\/env\ runhaskell', end: '$'
8807 },
8808
8809 // "Whitespaces".
8810
8811 PRAGMA,
8812 PREPROCESSOR,
8813
8814 // Literals and names.
8815
8816 // TODO: characters.
8817 hljs.QUOTE_STRING_MODE,
8818 hljs.C_NUMBER_MODE,
8819 CONSTRUCTOR,
8820 hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}),
8821
8822 COMMENT,
8823
8824 {begin: '->|<-'} // No markup, relevance booster
8825 ]
8826 };
8827}
8828},{name:"haxe",create:/*
8829Language: Haxe
8830Author: Christopher Kaster <ikasoki@gmail.com> (Based on the actionscript.js language file by Alexander Myadzel)
8831*/
8832
8833function(hljs) {
8834 var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*';
8835 var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)';
8836
8837 return {
8838 aliases: ['hx'],
8839 keywords: {
8840 keyword: 'break callback case cast catch class continue default do dynamic else enum extends extern ' +
8841 'for function here if implements import in inline interface never new override package private ' +
8842 'public return static super switch this throw trace try typedef untyped using var while',
8843 literal: 'true false null'
8844 },
8845 contains: [
8846 hljs.APOS_STRING_MODE,
8847 hljs.QUOTE_STRING_MODE,
8848 hljs.C_LINE_COMMENT_MODE,
8849 hljs.C_BLOCK_COMMENT_MODE,
8850 hljs.C_NUMBER_MODE,
8851 {
8852 className: 'class',
8853 beginKeywords: 'class interface', end: '{', excludeEnd: true,
8854 contains: [
8855 {
8856 beginKeywords: 'extends implements'
8857 },
8858 hljs.TITLE_MODE
8859 ]
8860 },
8861 {
8862 className: 'meta',
8863 begin: '#', end: '$',
8864 keywords: {'meta-keyword': 'if else elseif end error'}
8865 },
8866 {
8867 className: 'function',
8868 beginKeywords: 'function', end: '[{;]', excludeEnd: true,
8869 illegal: '\\S',
8870 contains: [
8871 hljs.TITLE_MODE,
8872 {
8873 className: 'params',
8874 begin: '\\(', end: '\\)',
8875 contains: [
8876 hljs.APOS_STRING_MODE,
8877 hljs.QUOTE_STRING_MODE,
8878 hljs.C_LINE_COMMENT_MODE,
8879 hljs.C_BLOCK_COMMENT_MODE
8880 ]
8881 },
8882 {
8883 begin: ':\\s*' + IDENT_FUNC_RETURN_TYPE_RE
8884 }
8885 ]
8886 }
8887 ]
8888 };
8889}
8890},{name:"hsp",create:/*
8891Language: HSP
8892Author: prince <MC.prince.0203@gmail.com>
8893Website: http://prince.webcrow.jp/
8894Category: scripting
8895*/
8896
8897function(hljs) {
8898 return {
8899 case_insensitive: true,
8900 keywords: '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',
8901 contains: [
8902 hljs.C_LINE_COMMENT_MODE,
8903 hljs.C_BLOCK_COMMENT_MODE,
8904 hljs.QUOTE_STRING_MODE,
8905 hljs.APOS_STRING_MODE,
8906
8907 {
8908 // multi-line string
8909 className: 'string',
8910 begin: '{"', end: '"}',
8911 contains: [hljs.BACKSLASH_ESCAPE]
8912 },
8913
8914 hljs.COMMENT(';', '$'),
8915
8916 {
8917 // pre-processor
8918 className: 'meta',
8919 begin: '#', end: '$',
8920 keywords: {'meta-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'},
8921 contains: [
8922 hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'meta-string'}),
8923 hljs.NUMBER_MODE,
8924 hljs.C_NUMBER_MODE,
8925 hljs.C_LINE_COMMENT_MODE,
8926 hljs.C_BLOCK_COMMENT_MODE
8927 ]
8928 },
8929
8930 {
8931 // label
8932 className: 'symbol',
8933 begin: '^\\*(\\w+|@)'
8934 },
8935
8936 hljs.NUMBER_MODE,
8937 hljs.C_NUMBER_MODE
8938 ]
8939 };
8940}
8941},{name:"http",create:/*
8942Language: HTTP
8943Description: HTTP request and response headers with automatic body highlighting
8944Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
8945Category: common, protocols
8946*/
8947
8948function(hljs) {
8949 var VERSION = 'HTTP/[0-9\\.]+';
8950 return {
8951 aliases: ['https'],
8952 illegal: '\\S',
8953 contains: [
8954 {
8955 begin: '^' + VERSION, end: '$',
8956 contains: [{className: 'number', begin: '\\b\\d{3}\\b'}]
8957 },
8958 {
8959 begin: '^[A-Z]+ (.*?) ' + VERSION + '$', returnBegin: true, end: '$',
8960 contains: [
8961 {
8962 className: 'string',
8963 begin: ' ', end: ' ',
8964 excludeBegin: true, excludeEnd: true
8965 },
8966 {
8967 begin: VERSION
8968 },
8969 {
8970 className: 'keyword',
8971 begin: '[A-Z]+'
8972 }
8973 ]
8974 },
8975 {
8976 className: 'attribute',
8977 begin: '^\\w', end: ': ', excludeEnd: true,
8978 illegal: '\\n|\\s|=',
8979 starts: {end: '$', relevance: 0}
8980 },
8981 {
8982 begin: '\\n\\n',
8983 starts: {subLanguage: [], endsWithParent: true}
8984 }
8985 ]
8986 };
8987}
8988},{name:"inform7",create:/*
8989Language: Inform 7
8990Author: Bruno Dias <bruno.r.dias@gmail.com>
8991Description: Language definition for Inform 7, a DSL for writing parser interactive fiction.
8992*/
8993
8994function(hljs) {
8995 var START_BRACKET = '\\[';
8996 var END_BRACKET = '\\]';
8997 return {
8998 aliases: ['i7'],
8999 case_insensitive: true,
9000 keywords: {
9001 // Some keywords more or less unique to I7, for relevance.
9002 keyword:
9003 // kind:
9004 'thing room person man woman animal container ' +
9005 'supporter backdrop door ' +
9006 // characteristic:
9007 'scenery open closed locked inside gender ' +
9008 // verb:
9009 'is are say understand ' +
9010 // misc keyword:
9011 'kind of rule'
9012 },
9013 contains: [
9014 {
9015 className: 'string',
9016 begin: '"', end: '"',
9017 relevance: 0,
9018 contains: [
9019 {
9020 className: 'subst',
9021 begin: START_BRACKET, end: END_BRACKET
9022 }
9023 ]
9024 },
9025 {
9026 className: 'section',
9027 begin: /^(Volume|Book|Part|Chapter|Section|Table)\b/,
9028 end: '$'
9029 },
9030 {
9031 // Rule definition
9032 // This is here for relevance.
9033 begin: /^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,
9034 end: ':',
9035 contains: [
9036 {
9037 //Rule name
9038 begin: '\\(This', end: '\\)'
9039 }
9040 ]
9041 },
9042 {
9043 className: 'comment',
9044 begin: START_BRACKET, end: END_BRACKET,
9045 contains: ['self']
9046 }
9047 ]
9048 };
9049}
9050},{name:"ini",create:/*
9051Language: Ini
9052Contributors: Guillaume Gomez <guillaume1.gomez@gmail.com>
9053Category: common, config
9054*/
9055
9056function(hljs) {
9057 var STRING = {
9058 className: "string",
9059 contains: [hljs.BACKSLASH_ESCAPE],
9060 variants: [
9061 {
9062 begin: "'''", end: "'''",
9063 relevance: 10
9064 }, {
9065 begin: '"""', end: '"""',
9066 relevance: 10
9067 }, {
9068 begin: '"', end: '"'
9069 }, {
9070 begin: "'", end: "'"
9071 }
9072 ]
9073 };
9074 return {
9075 aliases: ['toml'],
9076 case_insensitive: true,
9077 illegal: /\S/,
9078 contains: [
9079 hljs.COMMENT(';', '$'),
9080 hljs.HASH_COMMENT_MODE,
9081 {
9082 className: 'section',
9083 begin: /^\s*\[+/, end: /\]+/
9084 },
9085 {
9086 begin: /^[a-z0-9\[\]_-]+\s*=\s*/, end: '$',
9087 returnBegin: true,
9088 contains: [
9089 {
9090 className: 'attr',
9091 begin: /[a-z0-9\[\]_-]+/
9092 },
9093 {
9094 begin: /=/, endsWithParent: true,
9095 relevance: 0,
9096 contains: [
9097 {
9098 className: 'literal',
9099 begin: /\bon|off|true|false|yes|no\b/
9100 },
9101 {
9102 className: 'variable',
9103 variants: [
9104 {begin: /\$[\w\d"][\w\d_]*/},
9105 {begin: /\$\{(.*?)}/}
9106 ]
9107 },
9108 STRING,
9109 {
9110 className: 'number',
9111 begin: /([\+\-]+)?[\d]+_[\d_]+/
9112 },
9113 hljs.NUMBER_MODE
9114 ]
9115 }
9116 ]
9117 }
9118 ]
9119 };
9120}
9121},{name:"irpf90",create:/*
9122Language: IRPF90
9123Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
9124Description: IRPF90 is an open-source Fortran code generator : http://irpf90.ups-tlse.fr
9125Category: scientific
9126*/
9127
9128function(hljs) {
9129 var PARAMS = {
9130 className: 'params',
9131 begin: '\\(', end: '\\)'
9132 };
9133
9134 var F_KEYWORDS = {
9135 literal: '.False. .True.',
9136 keyword: 'kind do while private call intrinsic where elsewhere ' +
9137 'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' +
9138 'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +
9139 'goto save else use module select case ' +
9140 'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +
9141 'continue format pause cycle exit ' +
9142 'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +
9143 'synchronous nopass non_overridable pass protected volatile abstract extends import ' +
9144 'non_intrinsic value deferred generic final enumerator class associate bind enum ' +
9145 '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 ' +
9146 '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 ' +
9147 'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +
9148 'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer ' +
9149 'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +
9150 'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +
9151 'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +
9152 'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure ' +
9153 'integer real character complex logical dimension allocatable|10 parameter ' +
9154 'external implicit|10 none double precision assign intent optional pointer ' +
9155 'target in out common equivalence data ' +
9156 // IRPF90 special keywords
9157 'begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch ' +
9158 'soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read',
9159 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 ' +
9160 'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +
9161 'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +
9162 'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +
9163 '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 ' +
9164 'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +
9165 'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +
9166 'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +
9167 'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +
9168 'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +
9169 'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +
9170 'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +
9171 'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +
9172 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of' +
9173 'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +
9174 'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +
9175 'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +
9176 'num_images parity popcnt poppar shifta shiftl shiftr this_image ' +
9177 // IRPF90 special built_ins
9178 'IRP_ALIGN irp_here'
9179 };
9180 return {
9181 case_insensitive: true,
9182 keywords: F_KEYWORDS,
9183 illegal: /\/\*/,
9184 contains: [
9185 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
9186 hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'string', relevance: 0}),
9187 {
9188 className: 'function',
9189 beginKeywords: 'subroutine function program',
9190 illegal: '[${=\\n]',
9191 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
9192 },
9193 hljs.COMMENT('!', '$', {relevance: 0}),
9194 hljs.COMMENT('begin_doc', 'end_doc', {relevance: 10}),
9195 {
9196 className: 'number',
9197 begin: '(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?',
9198 relevance: 0
9199 }
9200 ]
9201 };
9202}
9203},{name:"java",create:/*
9204Language: Java
9205Author: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>
9206Category: common, enterprise
9207*/
9208
9209function(hljs) {
9210 var GENERIC_IDENT_RE = hljs.UNDERSCORE_IDENT_RE + '(<(' + hljs.UNDERSCORE_IDENT_RE + '|\\s*,\\s*)+>)?';
9211 var KEYWORDS =
9212 'false synchronized int abstract float private char boolean static null if const ' +
9213 'for true while long strictfp finally protected import native final void ' +
9214 'enum else break transient catch instanceof byte super volatile case assert short ' +
9215 'package default double public try this switch continue throws protected public private';
9216
9217 // https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html
9218 var JAVA_NUMBER_RE = '\\b' +
9219 '(' +
9220 '0[bB]([01]+[01_]+[01]+|[01]+)' + // 0b...
9221 '|' +
9222 '0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)' + // 0x...
9223 '|' +
9224 '(' +
9225 '([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?' +
9226 '|' +
9227 '\\.([\\d]+[\\d_]+[\\d]+|[\\d]+)' +
9228 ')' +
9229 '([eE][-+]?\\d+)?' + // octal, decimal, float
9230 ')' +
9231 '[lLfF]?';
9232 var JAVA_NUMBER_MODE = {
9233 className: 'number',
9234 begin: JAVA_NUMBER_RE,
9235 relevance: 0
9236 };
9237
9238 return {
9239 aliases: ['jsp'],
9240 keywords: KEYWORDS,
9241 illegal: /<\/|#/,
9242 contains: [
9243 hljs.COMMENT(
9244 '/\\*\\*',
9245 '\\*/',
9246 {
9247 relevance : 0,
9248 contains : [
9249 {
9250 // eat up @'s in emails to prevent them to be recognized as doctags
9251 begin: /\w+@/, relevance: 0
9252 },
9253 {
9254 className : 'doctag',
9255 begin : '@[A-Za-z]+'
9256 }
9257 ]
9258 }
9259 ),
9260 hljs.C_LINE_COMMENT_MODE,
9261 hljs.C_BLOCK_COMMENT_MODE,
9262 hljs.APOS_STRING_MODE,
9263 hljs.QUOTE_STRING_MODE,
9264 {
9265 className: 'class',
9266 beginKeywords: 'class interface', end: /[{;=]/, excludeEnd: true,
9267 keywords: 'class interface',
9268 illegal: /[:"\[\]]/,
9269 contains: [
9270 {beginKeywords: 'extends implements'},
9271 hljs.UNDERSCORE_TITLE_MODE
9272 ]
9273 },
9274 {
9275 // Expression keywords prevent 'keyword Name(...)' from being
9276 // recognized as a function definition
9277 beginKeywords: 'new throw return else',
9278 relevance: 0
9279 },
9280 {
9281 className: 'function',
9282 begin: '(' + GENERIC_IDENT_RE + '\\s+)+' + hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/,
9283 excludeEnd: true,
9284 keywords: KEYWORDS,
9285 contains: [
9286 {
9287 begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
9288 relevance: 0,
9289 contains: [hljs.UNDERSCORE_TITLE_MODE]
9290 },
9291 {
9292 className: 'params',
9293 begin: /\(/, end: /\)/,
9294 keywords: KEYWORDS,
9295 relevance: 0,
9296 contains: [
9297 hljs.APOS_STRING_MODE,
9298 hljs.QUOTE_STRING_MODE,
9299 hljs.C_NUMBER_MODE,
9300 hljs.C_BLOCK_COMMENT_MODE
9301 ]
9302 },
9303 hljs.C_LINE_COMMENT_MODE,
9304 hljs.C_BLOCK_COMMENT_MODE
9305 ]
9306 },
9307 JAVA_NUMBER_MODE,
9308 {
9309 className: 'meta', begin: '@[A-Za-z]+'
9310 }
9311 ]
9312 };
9313}
9314},{name:"javascript",create:/*
9315Language: JavaScript
9316Category: common, scripting
9317*/
9318
9319function(hljs) {
9320 return {
9321 aliases: ['js'],
9322 keywords: {
9323 keyword:
9324 'in of if for while finally var new function do return void else break catch ' +
9325 'instanceof with throw case default try this switch continue typeof delete ' +
9326 'let yield const export super debugger as async await ' +
9327 // ECMAScript 6 modules import
9328 'import from as'
9329 ,
9330 literal:
9331 'true false null undefined NaN Infinity',
9332 built_in:
9333 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +
9334 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +
9335 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +
9336 'TypeError URIError Number Math Date String RegExp Array Float32Array ' +
9337 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +
9338 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +
9339 'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' +
9340 'Promise'
9341 },
9342 contains: [
9343 {
9344 className: 'meta',
9345 relevance: 10,
9346 begin: /^\s*['"]use (strict|asm)['"]/
9347 },
9348 hljs.APOS_STRING_MODE,
9349 hljs.QUOTE_STRING_MODE,
9350 { // template string
9351 className: 'string',
9352 begin: '`', end: '`',
9353 contains: [
9354 hljs.BACKSLASH_ESCAPE,
9355 {
9356 className: 'subst',
9357 begin: '\\$\\{', end: '\\}'
9358 }
9359 ]
9360 },
9361 hljs.C_LINE_COMMENT_MODE,
9362 hljs.C_BLOCK_COMMENT_MODE,
9363 {
9364 className: 'number',
9365 variants: [
9366 { begin: '\\b(0[bB][01]+)' },
9367 { begin: '\\b(0[oO][0-7]+)' },
9368 { begin: hljs.C_NUMBER_RE }
9369 ],
9370 relevance: 0
9371 },
9372 { // "value" container
9373 begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
9374 keywords: 'return throw case',
9375 contains: [
9376 hljs.C_LINE_COMMENT_MODE,
9377 hljs.C_BLOCK_COMMENT_MODE,
9378 hljs.REGEXP_MODE,
9379 { // E4X / JSX
9380 begin: /</, end: />\s*[);\]]/,
9381 relevance: 0,
9382 subLanguage: 'xml'
9383 }
9384 ],
9385 relevance: 0
9386 },
9387 {
9388 className: 'function',
9389 beginKeywords: 'function', end: /\{/, excludeEnd: true,
9390 contains: [
9391 hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}),
9392 {
9393 className: 'params',
9394 begin: /\(/, end: /\)/,
9395 excludeBegin: true,
9396 excludeEnd: true,
9397 contains: [
9398 hljs.C_LINE_COMMENT_MODE,
9399 hljs.C_BLOCK_COMMENT_MODE
9400 ]
9401 }
9402 ],
9403 illegal: /\[|%/
9404 },
9405 {
9406 begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
9407 },
9408 {
9409 begin: '\\.' + hljs.IDENT_RE, relevance: 0 // hack: prevents detection of keywords after dots
9410 },
9411 { // ES6 class
9412 className: 'class',
9413 beginKeywords: 'class', end: /[{;=]/, excludeEnd: true,
9414 illegal: /[:"\[\]]/,
9415 contains: [
9416 {beginKeywords: 'extends'},
9417 hljs.UNDERSCORE_TITLE_MODE
9418 ]
9419 },
9420 {
9421 beginKeywords: 'constructor', end: /\{/, excludeEnd: true
9422 }
9423 ],
9424 illegal: /#/
9425 };
9426}
9427},{name:"json",create:/*
9428Language: JSON
9429Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
9430Category: common, protocols
9431*/
9432
9433function(hljs) {
9434 var LITERALS = {literal: 'true false null'};
9435 var TYPES = [
9436 hljs.QUOTE_STRING_MODE,
9437 hljs.C_NUMBER_MODE
9438 ];
9439 var VALUE_CONTAINER = {
9440 end: ',', endsWithParent: true, excludeEnd: true,
9441 contains: TYPES,
9442 keywords: LITERALS
9443 };
9444 var OBJECT = {
9445 begin: '{', end: '}',
9446 contains: [
9447 {
9448 className: 'attr',
9449 begin: '\\s*"', end: '"\\s*:\\s*', excludeBegin: true, excludeEnd: true,
9450 contains: [hljs.BACKSLASH_ESCAPE],
9451 illegal: '\\n',
9452 starts: VALUE_CONTAINER
9453 }
9454 ],
9455 illegal: '\\S'
9456 };
9457 var ARRAY = {
9458 begin: '\\[', end: '\\]',
9459 contains: [hljs.inherit(VALUE_CONTAINER)], // inherit is a workaround for a bug that makes shared modes with endsWithParent compile only the ending of one of the parents
9460 illegal: '\\S'
9461 };
9462 TYPES.splice(TYPES.length, 0, OBJECT, ARRAY);
9463 return {
9464 contains: TYPES,
9465 keywords: LITERALS,
9466 illegal: '\\S'
9467 };
9468}
9469},{name:"julia",create:/*
9470Language: Julia
9471Author: Kenta Sato <bicycle1885@gmail.com>
9472*/
9473
9474function(hljs) {
9475 // Since there are numerous special names in Julia, it is too much trouble
9476 // to maintain them by hand. Hence these names (i.e. keywords, literals and
9477 // built-ins) are automatically generated from Julia (v0.3.0 and v0.4.1)
9478 // itself through following scripts for each.
9479
9480 var KEYWORDS = {
9481 // # keyword generator
9482 // println("in")
9483 // for kw in Base.REPLCompletions.complete_keyword("")
9484 // println(kw)
9485 // end
9486 keyword:
9487 'in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export ' +
9488 'finally for function global if immutable import importall let local macro module quote return try type ' +
9489 'typealias using while',
9490
9491 // # literal generator
9492 // println("true")
9493 // println("false")
9494 // for name in Base.REPLCompletions.completions("", 0)[1]
9495 // try
9496 // s = symbol(name)
9497 // v = eval(s)
9498 // if !isa(v, Function) &&
9499 // !isa(v, DataType) &&
9500 // !isa(v, IntrinsicFunction) &&
9501 // !issubtype(typeof(v), Tuple) &&
9502 // !isa(v, Union) &&
9503 // !isa(v, Module) &&
9504 // !isa(v, TypeConstructor) &&
9505 // !isa(v, TypeVar) &&
9506 // !isa(v, Colon)
9507 // println(name)
9508 // end
9509 // end
9510 // end
9511 literal:
9512 // v0.3
9513 'true false ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 ' +
9514 'InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort ' +
9515 'RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown ' +
9516 'RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e|0 eu|0 ' +
9517 'eulergamma golden im nothing pi ฮณ ฯ€ ฯ† ' +
9518 // v0.4 (diff)
9519 'Inf64 NaN64 RoundNearestTiesAway RoundNearestTiesUp ',
9520
9521 // # built_in generator:
9522 // for name in Base.REPLCompletions.completions("", 0)[1]
9523 // try
9524 // v = eval(symbol(name))
9525 // if isa(v, DataType) || isa(v, TypeConstructor) || isa(v, TypeVar)
9526 // println(name)
9527 // end
9528 // end
9529 // end
9530 built_in:
9531 // v0.3
9532 'ANY ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe ' +
9533 'Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char ' +
9534 'CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 ' +
9535 'Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType ' +
9536 'DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError ' +
9537 'EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 ' +
9538 'Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 ' +
9539 'InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError ' +
9540 'LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister ' +
9541 'Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange ' +
9542 'OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 ' +
9543 'Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set ' +
9544 'SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString ' +
9545 'SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular ' +
9546 'Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket ' +
9547 'Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange ' +
9548 'Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip ' +
9549 // v0.4 (diff)
9550 'AbstractChannel AbstractFloat AbstractString AssertionError Base64DecodePipe Base64EncodePipe BufferStream ' +
9551 'CapturedException CartesianIndex CartesianRange Channel Cintmax_t CompositeException Cstring Cuintmax_t ' +
9552 'Cwstring Date DateTime Dims Enum GenSym GlobalRef HTML InitError InvalidStateException Irrational LinSpace ' +
9553 'LowerTriangular NullException Nullable OutOfMemoryError Pair PartialQuickSort Pipe RandomDevice ' +
9554 'ReadOnlyMemoryError ReentrantLock Ref RemoteException SegmentationFault SerializationState SimpleVector ' +
9555 'TCPSocket Text Tuple UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UnicodeError Union UpperTriangular ' +
9556 'Val Void WorkerConfig AbstractMatrix AbstractSparseMatrix AbstractSparseVector AbstractVecOrMat AbstractVector ' +
9557 'DenseMatrix DenseVecOrMat DenseVector Matrix SharedMatrix SharedVector StridedArray StridedMatrix ' +
9558 'StridedVecOrMat StridedVector VecOrMat Vector '
9559 };
9560
9561 // ref: http://julia.readthedocs.org/en/latest/manual/variables/#allowed-variable-names
9562 var VARIABLE_NAME_RE = '[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*';
9563
9564 // placeholder for recursive self-reference
9565 var DEFAULT = { lexemes: VARIABLE_NAME_RE, keywords: KEYWORDS, illegal: /<\// };
9566
9567 var TYPE_ANNOTATION = {
9568 className: 'type',
9569 begin: /::/
9570 };
9571
9572 var SUBTYPE = {
9573 className: 'type',
9574 begin: /<:/
9575 };
9576
9577 // ref: http://julia.readthedocs.org/en/latest/manual/integers-and-floating-point-numbers/
9578 var NUMBER = {
9579 className: 'number',
9580 // supported numeric literals:
9581 // * binary literal (e.g. 0x10)
9582 // * octal literal (e.g. 0o76543210)
9583 // * hexadecimal literal (e.g. 0xfedcba876543210)
9584 // * hexadecimal floating point literal (e.g. 0x1p0, 0x1.2p2)
9585 // * decimal literal (e.g. 9876543210, 100_000_000)
9586 // * floating pointe literal (e.g. 1.2, 1.2f, .2, 1., 1.2e10, 1.2e-10)
9587 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+)?/,
9588 relevance: 0
9589 };
9590
9591 var CHAR = {
9592 className: 'string',
9593 begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/
9594 };
9595
9596 var INTERPOLATION = {
9597 className: 'subst',
9598 begin: /\$\(/, end: /\)/,
9599 keywords: KEYWORDS
9600 };
9601
9602 var INTERPOLATED_VARIABLE = {
9603 className: 'variable',
9604 begin: '\\$' + VARIABLE_NAME_RE
9605 };
9606
9607 // TODO: neatly escape normal code in string literal
9608 var STRING = {
9609 className: 'string',
9610 contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
9611 variants: [
9612 { begin: /\w*"""/, end: /"""\w*/, relevance: 10 },
9613 { begin: /\w*"/, end: /"\w*/ }
9614 ]
9615 };
9616
9617 var COMMAND = {
9618 className: 'string',
9619 contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
9620 begin: '`', end: '`'
9621 };
9622
9623 var MACROCALL = {
9624 className: 'meta',
9625 begin: '@' + VARIABLE_NAME_RE
9626 };
9627
9628 var COMMENT = {
9629 className: 'comment',
9630 variants: [
9631 { begin: '#=', end: '=#', relevance: 10 },
9632 { begin: '#', end: '$' }
9633 ]
9634 };
9635
9636 DEFAULT.contains = [
9637 NUMBER,
9638 CHAR,
9639 TYPE_ANNOTATION,
9640 SUBTYPE,
9641 STRING,
9642 COMMAND,
9643 MACROCALL,
9644 COMMENT,
9645 hljs.HASH_COMMENT_MODE
9646 ];
9647 INTERPOLATION.contains = DEFAULT.contains;
9648
9649 return DEFAULT;
9650}
9651},{name:"kotlin",create:/*
9652 Language: Kotlin
9653 Author: Sergey Mashkov <cy6erGn0m@gmail.com>
9654 Category: misc
9655 */
9656
9657
9658function (hljs) {
9659 var KEYWORDS = 'val var get set class trait object open private protected public ' +
9660 'final enum if else do while for when break continue throw try catch finally ' +
9661 'import package is as in return fun override default companion reified inline volatile transient native ' +
9662 'Byte Short Char Int Long Boolean Float Double Void Unit Nothing';
9663
9664 return {
9665 keywords: {
9666 keyword: KEYWORDS,
9667 literal: 'true false null'
9668 },
9669 contains : [
9670 hljs.COMMENT(
9671 '/\\*\\*',
9672 '\\*/',
9673 {
9674 relevance : 0,
9675 contains : [{
9676 className : 'doctag',
9677 begin : '@[A-Za-z]+'
9678 }]
9679 }
9680 ),
9681 hljs.C_LINE_COMMENT_MODE,
9682 hljs.C_BLOCK_COMMENT_MODE,
9683 {
9684 className: 'type',
9685 begin: /</, end: />/,
9686 returnBegin: true,
9687 excludeEnd: false,
9688 relevance: 0
9689 },
9690 {
9691 className: 'function',
9692 beginKeywords: 'fun', end: '[(]|$',
9693 returnBegin: true,
9694 excludeEnd: true,
9695 keywords: KEYWORDS,
9696 illegal: /fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,
9697 relevance: 5,
9698 contains: [
9699 {
9700 begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
9701 relevance: 0,
9702 contains: [hljs.UNDERSCORE_TITLE_MODE]
9703 },
9704 {
9705 className: 'type',
9706 begin: /</, end: />/, keywords: 'reified',
9707 relevance: 0
9708 },
9709 {
9710 className: 'params',
9711 begin: /\(/, end: /\)/,
9712 keywords: KEYWORDS,
9713 relevance: 0,
9714 illegal: /\([^\(,\s:]+,/,
9715 contains: [
9716 {
9717 className: 'type',
9718 begin: /:\s*/, end: /\s*[=\)]/, excludeBegin: true, returnEnd: true,
9719 relevance: 0
9720 }
9721 ]
9722 },
9723 hljs.C_LINE_COMMENT_MODE,
9724 hljs.C_BLOCK_COMMENT_MODE
9725 ]
9726 },
9727 {
9728 className: 'class',
9729 beginKeywords: 'class trait', end: /[:\{(]|$/,
9730 excludeEnd: true,
9731 illegal: 'extends implements',
9732 contains: [
9733 hljs.UNDERSCORE_TITLE_MODE,
9734 {
9735 className: 'type',
9736 begin: /</, end: />/, excludeBegin: true, excludeEnd: true,
9737 relevance: 0
9738 },
9739 {
9740 className: 'type',
9741 begin: /[,:]\s*/, end: /[<\(,]|$/, excludeBegin: true, returnEnd: true
9742 }
9743 ]
9744 },
9745 {
9746 className: 'variable', beginKeywords: 'var val', end: /\s*[=:$]/, excludeEnd: true
9747 },
9748 hljs.QUOTE_STRING_MODE,
9749 {
9750 className: 'meta',
9751 begin: "^#!/usr/bin/env", end: '$',
9752 illegal: '\n'
9753 },
9754 hljs.C_NUMBER_MODE
9755 ]
9756 };
9757}
9758},{name:"lasso",create:/*
9759Language: Lasso
9760Author: Eric Knibbe <eric@lassosoft.com>
9761Description: Lasso is a language and server platform for database-driven web applications. This definition handles Lasso 9 syntax and LassoScript for Lasso 8.6 and earlier.
9762*/
9763
9764function(hljs) {
9765 var LASSO_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_.]*';
9766 var LASSO_ANGLE_RE = '<\\?(lasso(script)?|=)';
9767 var LASSO_CLOSE_RE = '\\]|\\?>';
9768 var LASSO_KEYWORDS = {
9769 literal:
9770 'true false none minimal full all void ' +
9771 'bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft',
9772 built_in:
9773 'array date decimal duration integer map pair string tag xml null ' +
9774 'boolean bytes keyword list locale queue set stack staticarray ' +
9775 'local var variable global data self inherited currentcapture givenblock',
9776 keyword:
9777 'error_code error_msg error_pop error_push error_reset cache ' +
9778 'database_names database_schemanames database_tablenames define_tag ' +
9779 'define_type email_batch encode_set html_comment handle handle_error ' +
9780 'header if inline iterate ljax_target link link_currentaction ' +
9781 'link_currentgroup link_currentrecord link_detail link_firstgroup ' +
9782 'link_firstrecord link_lastgroup link_lastrecord link_nextgroup ' +
9783 'link_nextrecord link_prevgroup link_prevrecord log loop ' +
9784 'namespace_using output_none portal private protect records referer ' +
9785 'referrer repeating resultset rows search_args search_arguments ' +
9786 'select sort_args sort_arguments thread_atomic value_list while ' +
9787 'abort case else if_empty if_false if_null if_true loop_abort ' +
9788 'loop_continue loop_count params params_up return return_value ' +
9789 'run_children soap_definetag soap_lastrequest soap_lastresponse ' +
9790 'tag_name ascending average by define descending do equals ' +
9791 'frozen group handle_failure import in into join let match max ' +
9792 'min on order parent protected provide public require returnhome ' +
9793 'skip split_thread sum take thread to trait type where with ' +
9794 'yield yieldhome and or not'
9795 };
9796 var HTML_COMMENT = hljs.COMMENT(
9797 '<!--',
9798 '-->',
9799 {
9800 relevance: 0
9801 }
9802 );
9803 var LASSO_NOPROCESS = {
9804 className: 'meta',
9805 begin: '\\[noprocess\\]',
9806 starts: {
9807 end: '\\[/noprocess\\]',
9808 returnEnd: true,
9809 contains: [HTML_COMMENT]
9810 }
9811 };
9812 var LASSO_START = {
9813 className: 'meta',
9814 begin: '\\[/noprocess|' + LASSO_ANGLE_RE
9815 };
9816 var LASSO_DATAMEMBER = {
9817 className: 'symbol',
9818 begin: '\'' + LASSO_IDENT_RE + '\''
9819 };
9820 var LASSO_CODE = [
9821 hljs.COMMENT(
9822 '/\\*\\*!',
9823 '\\*/'
9824 ),
9825 hljs.C_LINE_COMMENT_MODE,
9826 hljs.C_BLOCK_COMMENT_MODE,
9827 hljs.inherit(hljs.C_NUMBER_MODE, {begin: hljs.C_NUMBER_RE + '|(infinity|nan)\\b'}),
9828 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
9829 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
9830 {
9831 className: 'string',
9832 begin: '`', end: '`'
9833 },
9834 { // variables
9835 variants: [
9836 {
9837 begin: '[#$]' + LASSO_IDENT_RE
9838 },
9839 {
9840 begin: '#', end: '\\d+',
9841 illegal: '\\W'
9842 }
9843 ]
9844 },
9845 {
9846 className: 'type',
9847 begin: '::\\s*', end: LASSO_IDENT_RE,
9848 illegal: '\\W'
9849 },
9850 {
9851 className: 'attr',
9852 variants: [
9853 {
9854 begin: '-(?!infinity)' + hljs.UNDERSCORE_IDENT_RE,
9855 relevance: 0
9856 },
9857 {
9858 begin: '(\\.\\.\\.)'
9859 }
9860 ]
9861 },
9862 {
9863 begin: /(->|\.\.?)\s*/,
9864 relevance: 0,
9865 contains: [LASSO_DATAMEMBER]
9866 },
9867 {
9868 className: 'class',
9869 beginKeywords: 'define',
9870 returnEnd: true, end: '\\(|=>',
9871 contains: [
9872 hljs.inherit(hljs.TITLE_MODE, {begin: hljs.UNDERSCORE_IDENT_RE + '(=(?!>))?'})
9873 ]
9874 }
9875 ];
9876 return {
9877 aliases: ['ls', 'lassoscript'],
9878 case_insensitive: true,
9879 lexemes: LASSO_IDENT_RE + '|&[lg]t;',
9880 keywords: LASSO_KEYWORDS,
9881 contains: [
9882 {
9883 className: 'meta',
9884 begin: LASSO_CLOSE_RE,
9885 relevance: 0,
9886 starts: { // markup
9887 end: '\\[|' + LASSO_ANGLE_RE,
9888 returnEnd: true,
9889 relevance: 0,
9890 contains: [HTML_COMMENT]
9891 }
9892 },
9893 LASSO_NOPROCESS,
9894 LASSO_START,
9895 {
9896 className: 'meta',
9897 begin: '\\[no_square_brackets',
9898 starts: {
9899 end: '\\[/no_square_brackets\\]', // not implemented in the language
9900 lexemes: LASSO_IDENT_RE + '|&[lg]t;',
9901 keywords: LASSO_KEYWORDS,
9902 contains: [
9903 {
9904 className: 'meta',
9905 begin: LASSO_CLOSE_RE,
9906 relevance: 0,
9907 starts: {
9908 end: '\\[noprocess\\]|' + LASSO_ANGLE_RE,
9909 returnEnd: true,
9910 contains: [HTML_COMMENT]
9911 }
9912 },
9913 LASSO_NOPROCESS,
9914 LASSO_START
9915 ].concat(LASSO_CODE)
9916 }
9917 },
9918 {
9919 className: 'meta',
9920 begin: '\\[',
9921 relevance: 0
9922 },
9923 {
9924 className: 'meta',
9925 begin: '^#!.+lasso9\\b',
9926 relevance: 10
9927 }
9928 ].concat(LASSO_CODE)
9929 };
9930}
9931},{name:"less",create:/*
9932Language: Less
9933Author: Max Mikhailov <seven.phases.max@gmail.com>
9934Category: css
9935*/
9936
9937function(hljs) {
9938 var IDENT_RE = '[\\w-]+'; // yes, Less identifiers may begin with a digit
9939 var INTERP_IDENT_RE = '(' + IDENT_RE + '|@{' + IDENT_RE + '})';
9940
9941 /* Generic Modes */
9942
9943 var RULES = [], VALUE = []; // forward def. for recursive modes
9944
9945 var STRING_MODE = function(c) { return {
9946 // Less strings are not multiline (also include '~' for more consistent coloring of "escaped" strings)
9947 className: 'string', begin: '~?' + c + '.*?' + c
9948 };};
9949
9950 var IDENT_MODE = function(name, begin, relevance) { return {
9951 className: name, begin: begin, relevance: relevance
9952 };};
9953
9954 var PARENS_MODE = {
9955 // used only to properly balance nested parens inside mixin call, def. arg list
9956 begin: '\\(', end: '\\)', contains: VALUE, relevance: 0
9957 };
9958
9959 // generic Less highlighter (used almost everywhere except selectors):
9960 VALUE.push(
9961 hljs.C_LINE_COMMENT_MODE,
9962 hljs.C_BLOCK_COMMENT_MODE,
9963 STRING_MODE("'"),
9964 STRING_MODE('"'),
9965 hljs.CSS_NUMBER_MODE, // fixme: it does not include dot for numbers like .5em :(
9966 {
9967 begin: '(url|data-uri)\\(',
9968 starts: {className: 'string', end: '[\\)\\n]', excludeEnd: true}
9969 },
9970 IDENT_MODE('number', '#[0-9A-Fa-f]+\\b'),
9971 PARENS_MODE,
9972 IDENT_MODE('variable', '@@?' + IDENT_RE, 10),
9973 IDENT_MODE('variable', '@{' + IDENT_RE + '}'),
9974 IDENT_MODE('built_in', '~?`[^`]*?`'), // inline javascript (or whatever host language) *multiline* string
9975 { // @media features (itโ€™s here to not duplicate things in AT_RULE_MODE with extra PARENS_MODE overriding):
9976 className: 'attribute', begin: IDENT_RE + '\\s*:', end: ':', returnBegin: true, excludeEnd: true
9977 },
9978 {
9979 className: 'meta',
9980 begin: '!important'
9981 }
9982 );
9983
9984 var VALUE_WITH_RULESETS = VALUE.concat({
9985 begin: '{', end: '}', contains: RULES
9986 });
9987
9988 var MIXIN_GUARD_MODE = {
9989 beginKeywords: 'when', endsWithParent: true,
9990 contains: [{beginKeywords: 'and not'}].concat(VALUE) // using this form to override VALUEโ€™s 'function' match
9991 };
9992
9993 /* Rule-Level Modes */
9994
9995 var RULE_MODE = {
9996 className: 'attribute',
9997 begin: INTERP_IDENT_RE, end: ':', excludeEnd: true,
9998 contains: [hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE],
9999 illegal: /\S/,
10000 starts: {end: '[;}]', returnEnd: true, contains: VALUE, illegal: '[<=$]'}
10001 };
10002
10003 var AT_RULE_MODE = {
10004 className: 'keyword',
10005 begin: '@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b',
10006 starts: {end: '[;{}]', returnEnd: true, contains: VALUE, relevance: 0}
10007 };
10008
10009 // variable definitions and calls
10010 var VAR_RULE_MODE = {
10011 className: 'variable',
10012 variants: [
10013 // using more strict pattern for higher relevance to increase chances of Less detection.
10014 // this is *the only* Less specific statement used in most of the sources, so...
10015 // (weโ€™ll still often loose to the css-parser unless there's '//' comment,
10016 // simply because 1 variable just can't beat 99 properties :)
10017 {begin: '@' + IDENT_RE + '\\s*:', relevance: 15},
10018 {begin: '@' + IDENT_RE}
10019 ],
10020 starts: {end: '[;}]', returnEnd: true, contains: VALUE_WITH_RULESETS}
10021 };
10022
10023 var SELECTOR_MODE = {
10024 // first parse unambiguous selectors (i.e. those not starting with tag)
10025 // then fall into the scary lookahead-discriminator variant.
10026 // this mode also handles mixin definitions and calls
10027 variants: [{
10028 begin: '[\\.#:&\\[]', end: '[;{}]' // mixin calls end with ';'
10029 }, {
10030 begin: INTERP_IDENT_RE + '[^;]*{',
10031 end: '{'
10032 }],
10033 returnBegin: true,
10034 returnEnd: true,
10035 illegal: '[<=\'$"]',
10036 contains: [
10037 hljs.C_LINE_COMMENT_MODE,
10038 hljs.C_BLOCK_COMMENT_MODE,
10039 MIXIN_GUARD_MODE,
10040 IDENT_MODE('keyword', 'all\\b'),
10041 IDENT_MODE('variable', '@{' + IDENT_RE + '}'), // otherwise itโ€™s identified as tag
10042 IDENT_MODE('selector-tag', INTERP_IDENT_RE + '%?', 0), // '%' for more consistent coloring of @keyframes "tags"
10043 IDENT_MODE('selector-id', '#' + INTERP_IDENT_RE),
10044 IDENT_MODE('selector-class', '\\.' + INTERP_IDENT_RE, 0),
10045 IDENT_MODE('selector-tag', '&', 0),
10046 {className: 'selector-attr', begin: '\\[', end: '\\]'},
10047 {begin: '\\(', end: '\\)', contains: VALUE_WITH_RULESETS}, // argument list of parametric mixins
10048 {begin: '!important'} // eat !important after mixin call or it will be colored as tag
10049 ]
10050 };
10051
10052 RULES.push(
10053 hljs.C_LINE_COMMENT_MODE,
10054 hljs.C_BLOCK_COMMENT_MODE,
10055 AT_RULE_MODE,
10056 VAR_RULE_MODE,
10057 SELECTOR_MODE,
10058 RULE_MODE
10059 );
10060
10061 return {
10062 case_insensitive: true,
10063 illegal: '[=>\'/<($"]',
10064 contains: RULES
10065 };
10066}
10067},{name:"lisp",create:/*
10068Language: Lisp
10069Description: Generic lisp syntax
10070Author: Vasily Polovnyov <vast@whiteants.net>
10071Category: lisp
10072*/
10073
10074function(hljs) {
10075 var LISP_IDENT_RE = '[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*';
10076 var MEC_RE = '\\|[^]*?\\|';
10077 var LISP_SIMPLE_NUMBER_RE = '(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?';
10078 var SHEBANG = {
10079 className: 'meta',
10080 begin: '^#!', end: '$'
10081 };
10082 var LITERAL = {
10083 className: 'literal',
10084 begin: '\\b(t{1}|nil)\\b'
10085 };
10086 var NUMBER = {
10087 className: 'number',
10088 variants: [
10089 {begin: LISP_SIMPLE_NUMBER_RE, relevance: 0},
10090 {begin: '#(b|B)[0-1]+(/[0-1]+)?'},
10091 {begin: '#(o|O)[0-7]+(/[0-7]+)?'},
10092 {begin: '#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?'},
10093 {begin: '#(c|C)\\(' + LISP_SIMPLE_NUMBER_RE + ' +' + LISP_SIMPLE_NUMBER_RE, end: '\\)'}
10094 ]
10095 };
10096 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});
10097 var COMMENT = hljs.COMMENT(
10098 ';', '$',
10099 {
10100 relevance: 0
10101 }
10102 );
10103 var VARIABLE = {
10104 begin: '\\*', end: '\\*'
10105 };
10106 var KEYWORD = {
10107 className: 'symbol',
10108 begin: '[:&]' + LISP_IDENT_RE
10109 };
10110 var IDENT = {
10111 begin: LISP_IDENT_RE,
10112 relevance: 0
10113 };
10114 var MEC = {
10115 begin: MEC_RE
10116 };
10117 var QUOTED_LIST = {
10118 begin: '\\(', end: '\\)',
10119 contains: ['self', LITERAL, STRING, NUMBER, IDENT]
10120 };
10121 var QUOTED = {
10122 contains: [NUMBER, STRING, VARIABLE, KEYWORD, QUOTED_LIST, IDENT],
10123 variants: [
10124 {
10125 begin: '[\'`]\\(', end: '\\)'
10126 },
10127 {
10128 begin: '\\(quote ', end: '\\)',
10129 keywords: {name: 'quote'}
10130 },
10131 {
10132 begin: '\'' + MEC_RE
10133 }
10134 ]
10135 };
10136 var QUOTED_ATOM = {
10137 variants: [
10138 {begin: '\'' + LISP_IDENT_RE},
10139 {begin: '#\'' + LISP_IDENT_RE + '(::' + LISP_IDENT_RE + ')*'}
10140 ]
10141 };
10142 var LIST = {
10143 begin: '\\(\\s*', end: '\\)'
10144 };
10145 var BODY = {
10146 endsWithParent: true,
10147 relevance: 0
10148 };
10149 LIST.contains = [
10150 {
10151 className: 'name',
10152 variants: [
10153 {begin: LISP_IDENT_RE},
10154 {begin: MEC_RE}
10155 ]
10156 },
10157 BODY
10158 ];
10159 BODY.contains = [QUOTED, QUOTED_ATOM, LIST, LITERAL, NUMBER, STRING, COMMENT, VARIABLE, KEYWORD, MEC, IDENT];
10160
10161 return {
10162 illegal: /\S/,
10163 contains: [
10164 NUMBER,
10165 SHEBANG,
10166 LITERAL,
10167 STRING,
10168 COMMENT,
10169 QUOTED,
10170 QUOTED_ATOM,
10171 LIST,
10172 IDENT
10173 ]
10174 };
10175}
10176},{name:"livecodeserver",create:/*
10177Language: LiveCode
10178Author: Ralf Bitter <rabit@revigniter.com>
10179Description: Language definition for LiveCode server accounting for revIgniter (a web application framework) characteristics.
10180Version: 1.0a
10181Date: 2013-06-03
10182Category: enterprise
10183*/
10184
10185function(hljs) {
10186 var VARIABLE = {
10187 begin: '\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+',
10188 relevance: 0
10189 };
10190 var COMMENT_MODES = [
10191 hljs.C_BLOCK_COMMENT_MODE,
10192 hljs.HASH_COMMENT_MODE,
10193 hljs.COMMENT('--', '$'),
10194 hljs.COMMENT('[^:]//', '$')
10195 ];
10196 var TITLE1 = hljs.inherit(hljs.TITLE_MODE, {
10197 variants: [
10198 {begin: '\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*'},
10199 {begin: '\\b_[a-z0-9\\-]+'}
10200 ]
10201 });
10202 var TITLE2 = hljs.inherit(hljs.TITLE_MODE, {begin: '\\b([A-Za-z0-9_\\-]+)\\b'});
10203 return {
10204 case_insensitive: false,
10205 keywords: {
10206 keyword:
10207 '$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER ' +
10208 'codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph ' +
10209 'after byte bytes english the until http forever descending using line real8 with seventh ' +
10210 'for stdout finally element word words fourth before black ninth sixth characters chars stderr ' +
10211 'uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid ' +
10212 'at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 ' +
10213 'int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat ' +
10214 'end repeat URL in try into switch to words https token binfile each tenth as ticks tick ' +
10215 'system real4 by dateItems without char character ascending eighth whole dateTime numeric short ' +
10216 'first ftp integer abbreviated abbr abbrev private case while if ' +
10217 'div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within ' +
10218 'contains ends with begins the keys of keys',
10219 literal:
10220 'SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE ' +
10221 'QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO ' +
10222 'six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five ' +
10223 'quote empty one true return cr linefeed right backslash null seven tab three two ' +
10224 'RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK ' +
10225 'FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK',
10226 built_in:
10227 'put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode ' +
10228 'base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum ' +
10229 'cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress ' +
10230 'constantNames cos date dateFormat decompress directories ' +
10231 'diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global ' +
10232 'globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset ' +
10233 'keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders ' +
10234 'libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 ' +
10235 'longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge millisec ' +
10236 'millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar ' +
10237 'numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets ' +
10238 'paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation ' +
10239 'populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile ' +
10240 'revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull ' +
10241 'revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered ' +
10242 'revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames ' +
10243 'revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull ' +
10244 'revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections ' +
10245 'revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype ' +
10246 'revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext ' +
10247 'revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames ' +
10248 'revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase ' +
10249 'revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute ' +
10250 'revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces ' +
10251 'revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode ' +
10252 'revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling ' +
10253 'revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error ' +
10254 'revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute ' +
10255 'revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort ' +
10256 'revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree ' +
10257 'revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance ' +
10258 'sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound ' +
10259 'stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper ' +
10260 'transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames ' +
10261 'variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet ' +
10262 'xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process ' +
10263 'combine constant convert create new alias folder directory decrypt delete variable word line folder ' +
10264 'directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile ' +
10265 'libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback ' +
10266 'libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime ' +
10267 'libURLSetStatusCallback load multiply socket prepare process post seek rel relative read from process rename ' +
10268 'replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase ' +
10269 'revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees ' +
10270 'revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord ' +
10271 'revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase ' +
10272 'revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD ' +
10273 'revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost ' +
10274 'revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData ' +
10275 'revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel ' +
10276 'revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback ' +
10277 'revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop ' +
10278 'subtract union unload wait write'
10279 },
10280 contains: [
10281 VARIABLE,
10282 {
10283 className: 'keyword',
10284 begin: '\\bend\\sif\\b'
10285 },
10286 {
10287 className: 'function',
10288 beginKeywords: 'function', end: '$',
10289 contains: [
10290 VARIABLE,
10291 TITLE2,
10292 hljs.APOS_STRING_MODE,
10293 hljs.QUOTE_STRING_MODE,
10294 hljs.BINARY_NUMBER_MODE,
10295 hljs.C_NUMBER_MODE,
10296 TITLE1
10297 ]
10298 },
10299 {
10300 className: 'function',
10301 begin: '\\bend\\s+', end: '$',
10302 keywords: 'end',
10303 contains: [
10304 TITLE2,
10305 TITLE1
10306 ]
10307 },
10308 {
10309 beginKeywords: 'command on', end: '$',
10310 contains: [
10311 VARIABLE,
10312 TITLE2,
10313 hljs.APOS_STRING_MODE,
10314 hljs.QUOTE_STRING_MODE,
10315 hljs.BINARY_NUMBER_MODE,
10316 hljs.C_NUMBER_MODE,
10317 TITLE1
10318 ]
10319 },
10320 {
10321 className: 'meta',
10322 variants: [
10323 {
10324 begin: '<\\?(rev|lc|livecode)',
10325 relevance: 10
10326 },
10327 { begin: '<\\?' },
10328 { begin: '\\?>' }
10329 ]
10330 },
10331 hljs.APOS_STRING_MODE,
10332 hljs.QUOTE_STRING_MODE,
10333 hljs.BINARY_NUMBER_MODE,
10334 hljs.C_NUMBER_MODE,
10335 TITLE1
10336 ].concat(COMMENT_MODES),
10337 illegal: ';$|^\\[|^='
10338 };
10339}
10340},{name:"livescript",create:/*
10341Language: LiveScript
10342Author: Taneli Vatanen <taneli.vatanen@gmail.com>
10343Contributors: Jen Evers-Corvina <jen@sevvie.net>
10344Origin: coffeescript.js
10345Description: LiveScript is a programming language that transcompiles to JavaScript. For info about language see http://livescript.net/
10346Category: scripting
10347*/
10348
10349function(hljs) {
10350 var KEYWORDS = {
10351 keyword:
10352 // JS keywords
10353 'in if for while finally new do return else break catch instanceof throw try this ' +
10354 'switch continue typeof delete debugger case default function var with ' +
10355 // LiveScript keywords
10356 'then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super ' +
10357 'case default function var void const let enum export import native ' +
10358 '__hasProp __extends __slice __bind __indexOf',
10359 literal:
10360 // JS literals
10361 'true false null undefined ' +
10362 // LiveScript literals
10363 'yes no on off it that void',
10364 built_in:
10365 'npm require console print module global window document'
10366 };
10367 var JS_IDENT_RE = '[A-Za-z$_](?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*';
10368 var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE});
10369 var SUBST = {
10370 className: 'subst',
10371 begin: /#\{/, end: /}/,
10372 keywords: KEYWORDS
10373 };
10374 var SUBST_SIMPLE = {
10375 className: 'subst',
10376 begin: /#[A-Za-z$_]/, end: /(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,
10377 keywords: KEYWORDS
10378 };
10379 var EXPRESSIONS = [
10380 hljs.BINARY_NUMBER_MODE,
10381 {
10382 className: 'number',
10383 begin: '(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)',
10384 relevance: 0,
10385 starts: {end: '(\\s*/)?', relevance: 0} // a number tries to eat the following slash to prevent treating it as a regexp
10386 },
10387 {
10388 className: 'string',
10389 variants: [
10390 {
10391 begin: /'''/, end: /'''/,
10392 contains: [hljs.BACKSLASH_ESCAPE]
10393 },
10394 {
10395 begin: /'/, end: /'/,
10396 contains: [hljs.BACKSLASH_ESCAPE]
10397 },
10398 {
10399 begin: /"""/, end: /"""/,
10400 contains: [hljs.BACKSLASH_ESCAPE, SUBST, SUBST_SIMPLE]
10401 },
10402 {
10403 begin: /"/, end: /"/,
10404 contains: [hljs.BACKSLASH_ESCAPE, SUBST, SUBST_SIMPLE]
10405 },
10406 {
10407 begin: /\\/, end: /(\s|$)/,
10408 excludeEnd: true
10409 }
10410 ]
10411 },
10412 {
10413 className: 'regexp',
10414 variants: [
10415 {
10416 begin: '//', end: '//[gim]*',
10417 contains: [SUBST, hljs.HASH_COMMENT_MODE]
10418 },
10419 {
10420 // regex can't start with space to parse x / 2 / 3 as two divisions
10421 // regex can't start with *, and it supports an "illegal" in the main mode
10422 begin: /\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/
10423 }
10424 ]
10425 },
10426 {
10427 begin: '@' + JS_IDENT_RE
10428 },
10429 {
10430 begin: '``', end: '``',
10431 excludeBegin: true, excludeEnd: true,
10432 subLanguage: 'javascript'
10433 }
10434 ];
10435 SUBST.contains = EXPRESSIONS;
10436
10437 var PARAMS = {
10438 className: 'params',
10439 begin: '\\(', returnBegin: true,
10440 /* We need another contained nameless mode to not have every nested
10441 pair of parens to be called "params" */
10442 contains: [
10443 {
10444 begin: /\(/, end: /\)/,
10445 keywords: KEYWORDS,
10446 contains: ['self'].concat(EXPRESSIONS)
10447 }
10448 ]
10449 };
10450
10451 return {
10452 aliases: ['ls'],
10453 keywords: KEYWORDS,
10454 illegal: /\/\*/,
10455 contains: EXPRESSIONS.concat([
10456 hljs.COMMENT('\\/\\*', '\\*\\/'),
10457 hljs.HASH_COMMENT_MODE,
10458 {
10459 className: 'function',
10460 contains: [TITLE, PARAMS],
10461 returnBegin: true,
10462 variants: [
10463 {
10464 begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B\\->\\*?', end: '\\->\\*?'
10465 },
10466 {
10467 begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?', end: '[-~]{1,2}>\\*?'
10468 },
10469 {
10470 begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?', end: '!?[-~]{1,2}>\\*?'
10471 }
10472 ]
10473 },
10474 {
10475 className: 'class',
10476 beginKeywords: 'class',
10477 end: '$',
10478 illegal: /[:="\[\]]/,
10479 contains: [
10480 {
10481 beginKeywords: 'extends',
10482 endsWithParent: true,
10483 illegal: /[:="\[\]]/,
10484 contains: [TITLE]
10485 },
10486 TITLE
10487 ]
10488 },
10489 {
10490 begin: JS_IDENT_RE + ':', end: ':',
10491 returnBegin: true, returnEnd: true,
10492 relevance: 0
10493 }
10494 ])
10495 };
10496}
10497},{name:"lua",create:/*
10498Language: Lua
10499Author: Andrew Fedorov <dmmdrs@mail.ru>
10500Category: scripting
10501*/
10502
10503function(hljs) {
10504 var OPENING_LONG_BRACKET = '\\[=*\\[';
10505 var CLOSING_LONG_BRACKET = '\\]=*\\]';
10506 var LONG_BRACKETS = {
10507 begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
10508 contains: ['self']
10509 };
10510 var COMMENTS = [
10511 hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'),
10512 hljs.COMMENT(
10513 '--' + OPENING_LONG_BRACKET,
10514 CLOSING_LONG_BRACKET,
10515 {
10516 contains: [LONG_BRACKETS],
10517 relevance: 10
10518 }
10519 )
10520 ];
10521 return {
10522 lexemes: hljs.UNDERSCORE_IDENT_RE,
10523 keywords: {
10524 keyword:
10525 'and break do else elseif end false for if in local nil not or repeat return then ' +
10526 'true until while',
10527 built_in:
10528 '_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load ' +
10529 'loadfile loadstring module next pairs pcall print rawequal rawget rawset require ' +
10530 'select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug ' +
10531 'io math os package string table'
10532 },
10533 contains: COMMENTS.concat([
10534 {
10535 className: 'function',
10536 beginKeywords: 'function', end: '\\)',
10537 contains: [
10538 hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}),
10539 {
10540 className: 'params',
10541 begin: '\\(', endsWithParent: true,
10542 contains: COMMENTS
10543 }
10544 ].concat(COMMENTS)
10545 },
10546 hljs.C_NUMBER_MODE,
10547 hljs.APOS_STRING_MODE,
10548 hljs.QUOTE_STRING_MODE,
10549 {
10550 className: 'string',
10551 begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
10552 contains: [LONG_BRACKETS],
10553 relevance: 5
10554 }
10555 ])
10556 };
10557}
10558},{name:"makefile",create:/*
10559Language: Makefile
10560Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
10561Category: common
10562*/
10563
10564function(hljs) {
10565 var VARIABLE = {
10566 className: 'variable',
10567 begin: /\$\(/, end: /\)/,
10568 contains: [hljs.BACKSLASH_ESCAPE]
10569 };
10570 return {
10571 aliases: ['mk', 'mak'],
10572 contains: [
10573 hljs.HASH_COMMENT_MODE,
10574 {
10575 begin: /^\w+\s*\W*=/, returnBegin: true,
10576 relevance: 0,
10577 starts: {
10578 end: /\s*\W*=/, excludeEnd: true,
10579 starts: {
10580 end: /$/,
10581 relevance: 0,
10582 contains: [
10583 VARIABLE
10584 ]
10585 }
10586 }
10587 },
10588 {
10589 className: 'section',
10590 begin: /^[\w]+:\s*$/
10591 },
10592 {
10593 className: 'meta',
10594 begin: /^\.PHONY:/, end: /$/,
10595 keywords: {'meta-keyword': '.PHONY'}, lexemes: /[\.\w]+/
10596 },
10597 {
10598 begin: /^\t+/, end: /$/,
10599 relevance: 0,
10600 contains: [
10601 hljs.QUOTE_STRING_MODE,
10602 VARIABLE
10603 ]
10604 }
10605 ]
10606 };
10607}
10608},{name:"markdown",create:/*
10609Language: Markdown
10610Requires: xml.js
10611Author: John Crepezzi <john.crepezzi@gmail.com>
10612Website: http://seejohncode.com/
10613Category: common, markup
10614*/
10615
10616function(hljs) {
10617 return {
10618 aliases: ['md', 'mkdown', 'mkd'],
10619 contains: [
10620 // highlight headers
10621 {
10622 className: 'section',
10623 variants: [
10624 { begin: '^#{1,6}', end: '$' },
10625 { begin: '^.+?\\n[=-]{2,}$' }
10626 ]
10627 },
10628 // inline html
10629 {
10630 begin: '<', end: '>',
10631 subLanguage: 'xml',
10632 relevance: 0
10633 },
10634 // lists (indicators only)
10635 {
10636 className: 'bullet',
10637 begin: '^([*+-]|(\\d+\\.))\\s+'
10638 },
10639 // strong segments
10640 {
10641 className: 'strong',
10642 begin: '[*_]{2}.+?[*_]{2}'
10643 },
10644 // emphasis segments
10645 {
10646 className: 'emphasis',
10647 variants: [
10648 { begin: '\\*.+?\\*' },
10649 { begin: '_.+?_'
10650 , relevance: 0
10651 }
10652 ]
10653 },
10654 // blockquotes
10655 {
10656 className: 'quote',
10657 begin: '^>\\s+', end: '$'
10658 },
10659 // code snippets
10660 {
10661 className: 'code',
10662 variants: [
10663 { begin: '`.+?`' },
10664 { begin: '^( {4}|\t)', end: '$'
10665 , relevance: 0
10666 }
10667 ]
10668 },
10669 // horizontal rules
10670 {
10671 begin: '^[-\\*]{3,}', end: '$'
10672 },
10673 // using links - title and link
10674 {
10675 begin: '\\[.+?\\][\\(\\[].*?[\\)\\]]',
10676 returnBegin: true,
10677 contains: [
10678 {
10679 className: 'string',
10680 begin: '\\[', end: '\\]',
10681 excludeBegin: true,
10682 returnEnd: true,
10683 relevance: 0
10684 },
10685 {
10686 className: 'link',
10687 begin: '\\]\\(', end: '\\)',
10688 excludeBegin: true, excludeEnd: true
10689 },
10690 {
10691 className: 'symbol',
10692 begin: '\\]\\[', end: '\\]',
10693 excludeBegin: true, excludeEnd: true
10694 }
10695 ],
10696 relevance: 10
10697 },
10698 {
10699 begin: '^\\[\.+\\]:',
10700 returnBegin: true,
10701 contains: [
10702 {
10703 className: 'symbol',
10704 begin: '\\[', end: '\\]:',
10705 excludeBegin: true, excludeEnd: true,
10706 starts: {
10707 className: 'link',
10708 end: '$'
10709 }
10710 }
10711 ]
10712 }
10713 ]
10714 };
10715}
10716},{name:"mathematica",create:/*
10717Language: Mathematica
10718Author: Daniel Kvasnicka <dkvasnicka@vendavo.com>
10719Category: scientific
10720*/
10721
10722function(hljs) {
10723 return {
10724 aliases: ['mma'],
10725 lexemes: '(\\$|\\b)' + hljs.IDENT_RE + '\\b',
10726 keywords: 'AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis ' +
10727 'BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet 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 BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering ' +
10728 'C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial 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 Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ' +
10729 'ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition ' +
10730 'D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta 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 DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform ' +
10731 'DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual 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 DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions ' +
10732 'E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution ' +
10733 'FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve ' +
10734 'FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance ' +
10735 'GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion ' +
10736 '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 GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution ' +
10737 'HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData ' +
10738 'I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction ' +
10739 'InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess ' +
10740 '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 Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition ' +
10741 'K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter ' +
10742 'Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ 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 LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic 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 LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm 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 LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions ' +
10743 'LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy ' +
10744 'MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution ' +
10745 'N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance 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 NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual 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 NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator ' +
10746 'NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot ' +
10747 'O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer 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 OwenT OwnValues ' +
10748 'PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList ' +
10749 'PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions ' +
10750 'QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder ' +
10751 'RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity 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 RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity ' +
10752 'SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity ' +
10753 'SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion 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 SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders ' +
10754 'SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub ' +
10755 'Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine ' +
10756 'Transparent ' +
10757 'UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd ' +
10758 'V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity 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 Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution ' +
10759 'WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian ' +
10760 'XMLElement XMLObject Xnor Xor ' +
10761 'Yellow YuleDissimilarity ' +
10762 'ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform ' +
10763 '$Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber',
10764 contains: [
10765 {
10766 className: 'comment',
10767 begin: /\(\*/, end: /\*\)/
10768 },
10769 hljs.APOS_STRING_MODE,
10770 hljs.QUOTE_STRING_MODE,
10771 hljs.C_NUMBER_MODE,
10772 {
10773 begin: /\{/, end: /\}/,
10774 illegal: /:/
10775 }
10776 ]
10777 };
10778}
10779},{name:"matlab",create:/*
10780Language: Matlab
10781Author: Denis Bardadym <bardadymchik@gmail.com>
10782Contributors: Eugene Nizhibitsky <nizhibitsky@ya.ru>
10783Category: scientific
10784*/
10785
10786function(hljs) {
10787 var COMMON_CONTAINS = [
10788 hljs.C_NUMBER_MODE,
10789 {
10790 className: 'string',
10791 begin: '\'', end: '\'',
10792 contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
10793 }
10794 ];
10795 var TRANSPOSE = {
10796 relevance: 0,
10797 contains: [
10798 {
10799 begin: /'['\.]*/
10800 }
10801 ]
10802 };
10803
10804 return {
10805 keywords: {
10806 keyword:
10807 'break case catch classdef continue else elseif end enumerated events for function ' +
10808 'global if methods otherwise parfor persistent properties return spmd switch try while',
10809 built_in:
10810 'sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan ' +
10811 'atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot ' +
10812 'cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog ' +
10813 'realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal ' +
10814 'cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli ' +
10815 'besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma ' +
10816 'gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms ' +
10817 'nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones ' +
10818 'eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ' +
10819 'ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril ' +
10820 'triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute ' +
10821 'shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan ' +
10822 'isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal ' +
10823 'rosser toeplitz vander wilkinson'
10824 },
10825 illegal: '(//|"|#|/\\*|\\s+/\\w+)',
10826 contains: [
10827 {
10828 className: 'function',
10829 beginKeywords: 'function', end: '$',
10830 contains: [
10831 hljs.UNDERSCORE_TITLE_MODE,
10832 {
10833 className: 'params',
10834 variants: [
10835 {begin: '\\(', end: '\\)'},
10836 {begin: '\\[', end: '\\]'}
10837 ]
10838 }
10839 ]
10840 },
10841 {
10842 begin: /[a-zA-Z_][a-zA-Z_0-9]*'['\.]*/,
10843 returnBegin: true,
10844 relevance: 0,
10845 contains: [
10846 {begin: /[a-zA-Z_][a-zA-Z_0-9]*/, relevance: 0},
10847 TRANSPOSE.contains[0]
10848 ]
10849 },
10850 {
10851 begin: '\\[', end: '\\]',
10852 contains: COMMON_CONTAINS,
10853 relevance: 0,
10854 starts: TRANSPOSE
10855 },
10856 {
10857 begin: '\\{', end: /}/,
10858 contains: COMMON_CONTAINS,
10859 relevance: 0,
10860 starts: TRANSPOSE
10861 },
10862 {
10863 // transpose operators at the end of a function call
10864 begin: /\)/,
10865 relevance: 0,
10866 starts: TRANSPOSE
10867 },
10868 hljs.COMMENT('^\\s*\\%\\{\\s*$', '^\\s*\\%\\}\\s*$'),
10869 hljs.COMMENT('\\%', '$')
10870 ].concat(COMMON_CONTAINS)
10871 };
10872}
10873},{name:"mel",create:/*
10874Language: MEL
10875Description: Maya Embedded Language
10876Author: Shuen-Huei Guan <drake.guan@gmail.com>
10877Category: graphics
10878*/
10879
10880function(hljs) {
10881 return {
10882 keywords:
10883 'int float string vector matrix if else switch case default while do for in break ' +
10884 'continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic ' +
10885 'addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey ' +
10886 'affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve ' +
10887 'alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor ' +
10888 'animDisplay animView annotate appendStringArray applicationName applyAttrPreset ' +
10889 'applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx ' +
10890 'artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu ' +
10891 'artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand ' +
10892 'assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface ' +
10893 'attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu ' +
10894 'attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp ' +
10895 'attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery ' +
10896 'autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults ' +
10897 'bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership ' +
10898 'bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType ' +
10899 'boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu ' +
10900 'buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge ' +
10901 'cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch ' +
10902 'catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox ' +
10903 'character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp ' +
10904 'checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip ' +
10905 'clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore ' +
10906 'closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter ' +
10907 'cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color ' +
10908 'colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp ' +
10909 'colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem ' +
10910 'componentEditor compositingInterop computePolysetVolume condition cone confirmDialog ' +
10911 'connectAttr connectControl connectDynamic connectJoint connectionInfo constrain ' +
10912 'constrainValue constructionHistory container containsMultibyte contextInfo control ' +
10913 'convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation ' +
10914 'convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache ' +
10915 'cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel ' +
10916 'cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver ' +
10917 'cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor ' +
10918 'createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer ' +
10919 'createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse ' +
10920 'currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx ' +
10921 'curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface ' +
10922 'curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox ' +
10923 'defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete ' +
10924 'deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes ' +
10925 'delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo ' +
10926 'dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable ' +
10927 'disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected ' +
10928 'displayColor displayCull displayLevelOfDetail displayPref displayRGBColor ' +
10929 'displaySmoothness displayStats displayString displaySurface distanceDimContext ' +
10930 'distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct ' +
10931 'doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator ' +
10932 'duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression ' +
10933 'dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor ' +
10934 'dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers ' +
10935 'editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor ' +
10936 'editorTemplate effector emit emitter enableDevice encodeString endString endsWith env ' +
10937 'equivalent equivalentTol erf error eval evalDeferred evalEcho event ' +
10938 'exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp ' +
10939 'expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof ' +
10940 'fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo ' +
10941 'filetest filletCurve filter filterCurve filterExpand filterStudioImport ' +
10942 'findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster ' +
10943 'finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar ' +
10944 'floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo ' +
10945 'fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint ' +
10946 'frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss ' +
10947 'geometryConstraint getApplicationVersionAsFloat getAttr getClassification ' +
10948 'getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes ' +
10949 'getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender ' +
10950 'glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl ' +
10951 'gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid ' +
10952 'gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap ' +
10953 'HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor ' +
10954 'HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached ' +
10955 'HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel ' +
10956 'headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey ' +
10957 'hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender ' +
10958 'hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox ' +
10959 'iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ' +
10960 'ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ' +
10961 'ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform ' +
10962 'insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance ' +
10963 'instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp ' +
10964 'interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf ' +
10965 'isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect ' +
10966 'itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx ' +
10967 'jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner ' +
10968 'keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx ' +
10969 'keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx ' +
10970 'keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx ' +
10971 'keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor ' +
10972 'layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList ' +
10973 'lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep ' +
10974 'listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory ' +
10975 'listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation ' +
10976 'listNodeTypes listPanelCategories listRelatives listSets listTransforms ' +
10977 'listUnselected listerEditor loadFluid loadNewShelf loadPlugin ' +
10978 'loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log ' +
10979 'longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive ' +
10980 'makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext ' +
10981 'manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx ' +
10982 'manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout ' +
10983 'menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp ' +
10984 'mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move ' +
10985 'moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute ' +
10986 'nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast ' +
10987 'nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint ' +
10988 'normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect ' +
10989 'nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref ' +
10990 'nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType ' +
10991 'objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface ' +
10992 'offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit ' +
10993 'orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier ' +
10994 'paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration ' +
10995 'panelHistory paramDimContext paramDimension paramLocator parent parentConstraint ' +
10996 'particle particleExists particleInstancer particleRenderInfo partition pasteKey ' +
10997 'pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture ' +
10998 'pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo ' +
10999 'pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult ' +
11000 'pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend ' +
11001 'polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal ' +
11002 'polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge ' +
11003 'polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge ' +
11004 'polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet ' +
11005 'polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet ' +
11006 'polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection ' +
11007 'polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge ' +
11008 'polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet ' +
11009 'polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix ' +
11010 'polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut ' +
11011 'polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet ' +
11012 'polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge ' +
11013 'polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex ' +
11014 'polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection ' +
11015 'polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection ' +
11016 'polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint ' +
11017 'polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate ' +
11018 'polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge ' +
11019 'polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing ' +
11020 'polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet ' +
11021 'polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace ' +
11022 'popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer ' +
11023 'projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx ' +
11024 'propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd ' +
11025 'python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection ' +
11026 'radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl ' +
11027 'readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference ' +
11028 'referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE ' +
11029 'registerPluginResource rehash reloadImage removeJoint removeMultiInstance ' +
11030 'removePanelCategory rename renameAttr renameSelectionList renameUI render ' +
11031 'renderGlobalsNode renderInfo renderLayerButton renderLayerParent ' +
11032 'renderLayerPostProcess renderLayerUnparent renderManip renderPartition ' +
11033 'renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor ' +
11034 'renderWindowSelectContext renderer reorder reorderDeformers requires reroot ' +
11035 'resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget ' +
11036 'reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx ' +
11037 'rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout ' +
11038 'runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage ' +
11039 'saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale ' +
11040 'scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor ' +
11041 'sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable ' +
11042 'scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt ' +
11043 'searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey ' +
11044 'selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType ' +
11045 'selectedNodes selectionConnection separator setAttr setAttrEnumResource ' +
11046 'setAttrMapping setAttrNiceNameResource setConstraintRestPosition ' +
11047 'setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr ' +
11048 'setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe ' +
11049 'setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag ' +
11050 'setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject ' +
11051 'setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets ' +
11052 'shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare ' +
11053 'shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField ' +
11054 'shortNameOf showHelp showHidden showManipCtx showSelectionInTitle ' +
11055 'showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface ' +
11056 'size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep ' +
11057 'snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound ' +
11058 'soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort ' +
11059 'spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString ' +
11060 'startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp ' +
11061 'stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex ' +
11062 'stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex ' +
11063 'stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString ' +
11064 'stringToStringArray strip stripPrefixFromName stroke subdAutoProjection ' +
11065 'subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV ' +
11066 'subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror ' +
11067 'subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease ' +
11068 'subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring ' +
11069 'surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton ' +
11070 'symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext ' +
11071 'texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext ' +
11072 'texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text ' +
11073 'textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList ' +
11074 'textToShelf textureDisplacePlane textureHairColor texturePlacementContext ' +
11075 'textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath ' +
11076 'toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower ' +
11077 'toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper ' +
11078 'trace track trackCtx transferAttributes transformCompare transformLimits translator ' +
11079 'trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence ' +
11080 'twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit ' +
11081 'unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink ' +
11082 'uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane ' +
11083 'viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex ' +
11084 'waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire ' +
11085 'wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform',
11086 illegal: '</',
11087 contains: [
11088 hljs.C_NUMBER_MODE,
11089 hljs.APOS_STRING_MODE,
11090 hljs.QUOTE_STRING_MODE,
11091 {
11092 className: 'string',
11093 begin: '`', end: '`',
11094 contains: [hljs.BACKSLASH_ESCAPE]
11095 },
11096 { // eats variables
11097 begin: '[\\$\\%\\@](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)'
11098 },
11099 hljs.C_LINE_COMMENT_MODE,
11100 hljs.C_BLOCK_COMMENT_MODE
11101 ]
11102 };
11103}
11104},{name:"mercury",create:/*
11105Language: Mercury
11106Author: mucaho <mkucko@gmail.com>
11107Description: Mercury is a logic/functional programming language which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features.
11108*/
11109
11110function(hljs) {
11111 var KEYWORDS = {
11112 keyword:
11113 'module use_module import_module include_module end_module initialise ' +
11114 'mutable initialize finalize finalise interface implementation pred ' +
11115 'mode func type inst solver any_pred any_func is semidet det nondet ' +
11116 'multi erroneous failure cc_nondet cc_multi typeclass instance where ' +
11117 'pragma promise external trace atomic or_else require_complete_switch ' +
11118 'require_det require_semidet require_multi require_nondet ' +
11119 'require_cc_multi require_cc_nondet require_erroneous require_failure',
11120 meta:
11121 // pragma
11122 'inline no_inline type_spec source_file fact_table obsolete memo ' +
11123 'loop_check minimal_model terminates does_not_terminate ' +
11124 'check_termination promise_equivalent_clauses ' +
11125 // preprocessor
11126 'foreign_proc foreign_decl foreign_code foreign_type ' +
11127 'foreign_import_module foreign_export_enum foreign_export ' +
11128 'foreign_enum may_call_mercury will_not_call_mercury thread_safe ' +
11129 'not_thread_safe maybe_thread_safe promise_pure promise_semipure ' +
11130 'tabled_for_io local untrailed trailed attach_to_io_state ' +
11131 'can_pass_as_mercury_type stable will_not_throw_exception ' +
11132 'may_modify_trail will_not_modify_trail may_duplicate ' +
11133 'may_not_duplicate affects_liveness does_not_affect_liveness ' +
11134 'doesnt_affect_liveness no_sharing unknown_sharing sharing',
11135 built_in:
11136 'some all not if then else true fail false try catch catch_any ' +
11137 'semidet_true semidet_false semidet_fail impure_true impure semipure'
11138 };
11139
11140 var COMMENT = hljs.COMMENT('%', '$');
11141
11142 var NUMCODE = {
11143 className: 'number',
11144 begin: "0'.\\|0[box][0-9a-fA-F]*"
11145 };
11146
11147 var ATOM = hljs.inherit(hljs.APOS_STRING_MODE, {relevance: 0});
11148 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {relevance: 0});
11149 var STRING_FMT = {
11150 className: 'subst',
11151 begin: '\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]',
11152 relevance: 0
11153 };
11154 STRING.contains.push(STRING_FMT);
11155
11156 var IMPLICATION = {
11157 className: 'built_in',
11158 variants: [
11159 {begin: '<=>'},
11160 {begin: '<=', relevance: 0},
11161 {begin: '=>', relevance: 0},
11162 {begin: '/\\\\'},
11163 {begin: '\\\\/'}
11164 ]
11165 };
11166
11167 var HEAD_BODY_CONJUNCTION = {
11168 className: 'built_in',
11169 variants: [
11170 {begin: ':-\\|-->'},
11171 {begin: '=', relevance: 0}
11172 ]
11173 };
11174
11175 return {
11176 aliases: ['m', 'moo'],
11177 keywords: KEYWORDS,
11178 contains: [
11179 IMPLICATION,
11180 HEAD_BODY_CONJUNCTION,
11181 COMMENT,
11182 hljs.C_BLOCK_COMMENT_MODE,
11183 NUMCODE,
11184 hljs.NUMBER_MODE,
11185 ATOM,
11186 STRING,
11187 {begin: /:-/} // relevance booster
11188 ]
11189 };
11190}
11191},{name:"mipsasm",create:/*
11192Language: MIPS Assembly
11193Author: Nebuleon Fumika <nebuleon.fumika@gmail.com>
11194Description: MIPS Assembly (up to MIPS32R2)
11195Category: assembler
11196*/
11197
11198function(hljs) {
11199 //local labels: %?[FB]?[AT]?\d{1,2}\w+
11200 return {
11201 case_insensitive: true,
11202 aliases: ['mips'],
11203 lexemes: '\\.?' + hljs.IDENT_RE,
11204 keywords: {
11205 meta:
11206 //GNU preprocs
11207 '.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 ',
11208 built_in:
11209 '$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 ' + // integer registers
11210 '$16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 ' + // integer registers
11211 'zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 ' + // integer register aliases
11212 't0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 ' + // integer register aliases
11213 'k0 k1 gp sp fp ra ' + // integer register aliases
11214 '$f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 ' + // floating-point registers
11215 '$f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 ' + // floating-point registers
11216 'Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi ' + // Coprocessor 0 registers
11217 'HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId ' + // Coprocessor 0 registers
11218 'EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr ' + // Coprocessor 0 registers
11219 'ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt ' // Coprocessor 0 registers
11220 },
11221 contains: [
11222 {
11223 className: 'keyword',
11224 begin: '\\b('+ //mnemonics
11225 // 32-bit integer instructions
11226 'addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|' +
11227 'bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\.hb)?|jr(\.hb)?|lbu?|lhu?|' +
11228 'll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|msubu?|mthi|mtlo|mul|' +
11229 'multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|' +
11230 'srlv?|subu?|sw[lr]?|xori?|wsbh|' +
11231 // floating-point instructions
11232 'abs\.[sd]|add\.[sd]|alnv.ps|bc1[ft]l?|' +
11233 'c\.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\.[sd]|' +
11234 '(ceil|floor|round|trunc)\.[lw]\.[sd]|cfc1|cvt\.d\.[lsw]|' +
11235 'cvt\.l\.[dsw]|cvt\.ps\.s|cvt\.s\.[dlw]|cvt\.s\.p[lu]|cvt\.w\.[dls]|' +
11236 'div\.[ds]|ldx?c1|luxc1|lwx?c1|madd\.[sd]|mfc1|mov[fntz]?\.[ds]|' +
11237 'msub\.[sd]|mth?c1|mul\.[ds]|neg\.[ds]|nmadd\.[ds]|nmsub\.[ds]|' +
11238 'p[lu][lu]\.ps|recip\.fmt|r?sqrt\.[ds]|sdx?c1|sub\.[ds]|suxc1|' +
11239 'swx?c1|' +
11240 // system control instructions
11241 'break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|' +
11242 'rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|' +
11243 'tlti?u?|tnei?|wait|wrpgpr'+
11244 ')',
11245 end: '\\s'
11246 },
11247 hljs.COMMENT('[;#]', '$'),
11248 hljs.C_BLOCK_COMMENT_MODE,
11249 hljs.QUOTE_STRING_MODE,
11250 {
11251 className: 'string',
11252 begin: '\'',
11253 end: '[^\\\\]\'',
11254 relevance: 0
11255 },
11256 {
11257 className: 'title',
11258 begin: '\\|', end: '\\|',
11259 illegal: '\\n',
11260 relevance: 0
11261 },
11262 {
11263 className: 'number',
11264 variants: [
11265 {begin: '0x[0-9a-f]+'}, //hex
11266 {begin: '\\b-?\\d+'} //bare number
11267 ],
11268 relevance: 0
11269 },
11270 {
11271 className: 'symbol',
11272 variants: [
11273 {begin: '^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:'}, //GNU MIPS syntax
11274 {begin: '^\\s*[0-9]+:'}, // numbered local labels
11275 {begin: '[0-9]+[bf]' } // number local label reference (backwards, forwards)
11276 ],
11277 relevance: 0
11278 }
11279 ],
11280 illegal: '\/'
11281 };
11282}
11283},{name:"mizar",create:/*
11284Language: Mizar
11285Author: Kelley van Evert <kelleyvanevert@gmail.com>
11286Category: scientific
11287*/
11288
11289function(hljs) {
11290 return {
11291 keywords:
11292 'environ vocabularies notations constructors definitions ' +
11293 'registrations theorems schemes requirements begin end definition ' +
11294 'registration cluster existence pred func defpred deffunc theorem ' +
11295 'proof let take assume then thus hence ex for st holds consider ' +
11296 'reconsider such that and in provided of as from be being by means ' +
11297 'equals implies iff redefine define now not or attr is mode ' +
11298 'suppose per cases set thesis contradiction scheme reserve struct ' +
11299 'correctness compatibility coherence symmetry assymetry ' +
11300 'reflexivity irreflexivity connectedness uniqueness commutativity ' +
11301 'idempotence involutiveness projectivity',
11302 contains: [
11303 hljs.COMMENT('::', '$')
11304 ]
11305 };
11306}
11307},{name:"mojolicious",create:/*
11308Language: Mojolicious
11309Requires: xml.js, perl.js
11310Author: Dotan Dimet <dotan@corky.net>
11311Description: Mojolicious .ep (Embedded Perl) templates
11312Category: template
11313*/
11314function(hljs) {
11315 return {
11316 subLanguage: 'xml',
11317 contains: [
11318 {
11319 className: 'meta',
11320 begin: '^__(END|DATA)__$'
11321 },
11322 // mojolicious line
11323 {
11324 begin: "^\\s*%{1,2}={0,2}", end: '$',
11325 subLanguage: 'perl'
11326 },
11327 // mojolicious block
11328 {
11329 begin: "<%{1,2}={0,2}",
11330 end: "={0,1}%>",
11331 subLanguage: 'perl',
11332 excludeBegin: true,
11333 excludeEnd: true
11334 }
11335 ]
11336 };
11337}
11338},{name:"monkey",create:/*
11339Language: Monkey
11340Author: Arthur Bikmullin <devolonter@gmail.com>
11341*/
11342
11343function(hljs) {
11344 var NUMBER = {
11345 className: 'number', relevance: 0,
11346 variants: [
11347 {
11348 begin: '[$][a-fA-F0-9]+'
11349 },
11350 hljs.NUMBER_MODE
11351 ]
11352 };
11353
11354 return {
11355 case_insensitive: true,
11356 keywords: {
11357 keyword: 'public private property continue exit extern new try catch ' +
11358 'eachin not abstract final select case default const local global field ' +
11359 'end if then else elseif endif while wend repeat until forever for ' +
11360 'to step next return module inline throw import',
11361
11362 built_in: 'DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil ' +
11363 'Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI',
11364
11365 literal: 'true false null and or shl shr mod'
11366 },
11367 illegal: /\/\*/,
11368 contains: [
11369 hljs.COMMENT('#rem', '#end'),
11370 hljs.COMMENT(
11371 "'",
11372 '$',
11373 {
11374 relevance: 0
11375 }
11376 ),
11377 {
11378 className: 'function',
11379 beginKeywords: 'function method', end: '[(=:]|$',
11380 illegal: /\n/,
11381 contains: [
11382 hljs.UNDERSCORE_TITLE_MODE
11383 ]
11384 },
11385 {
11386 className: 'class',
11387 beginKeywords: 'class interface', end: '$',
11388 contains: [
11389 {
11390 beginKeywords: 'extends implements'
11391 },
11392 hljs.UNDERSCORE_TITLE_MODE
11393 ]
11394 },
11395 {
11396 className: 'built_in',
11397 begin: '\\b(self|super)\\b'
11398 },
11399 {
11400 className: 'meta',
11401 begin: '\\s*#', end: '$',
11402 keywords: {'meta-keyword': 'if else elseif endif end then'}
11403 },
11404 {
11405 className: 'meta',
11406 begin: '^\\s*strict\\b'
11407 },
11408 {
11409 beginKeywords: 'alias', end: '=',
11410 contains: [hljs.UNDERSCORE_TITLE_MODE]
11411 },
11412 hljs.QUOTE_STRING_MODE,
11413 NUMBER
11414 ]
11415 }
11416}
11417},{name:"nginx",create:/*
11418Language: Nginx
11419Author: Peter Leonov <gojpeg@yandex.ru>
11420Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
11421Category: common, config
11422*/
11423
11424function(hljs) {
11425 var VAR = {
11426 className: 'variable',
11427 variants: [
11428 {begin: /\$\d+/},
11429 {begin: /\$\{/, end: /}/},
11430 {begin: '[\\$\\@]' + hljs.UNDERSCORE_IDENT_RE}
11431 ]
11432 };
11433 var DEFAULT = {
11434 endsWithParent: true,
11435 lexemes: '[a-z/_]+',
11436 keywords: {
11437 literal:
11438 'on off yes no true false none blocked debug info notice warn error crit ' +
11439 'select break last permanent redirect kqueue rtsig epoll poll /dev/poll'
11440 },
11441 relevance: 0,
11442 illegal: '=>',
11443 contains: [
11444 hljs.HASH_COMMENT_MODE,
11445 {
11446 className: 'string',
11447 contains: [hljs.BACKSLASH_ESCAPE, VAR],
11448 variants: [
11449 {begin: /"/, end: /"/},
11450 {begin: /'/, end: /'/}
11451 ]
11452 },
11453 // this swallows entire URLs to avoid detecting numbers within
11454 {
11455 begin: '([a-z]+):/', end: '\\s', endsWithParent: true, excludeEnd: true,
11456 contains: [VAR]
11457 },
11458 {
11459 className: 'regexp',
11460 contains: [hljs.BACKSLASH_ESCAPE, VAR],
11461 variants: [
11462 {begin: "\\s\\^", end: "\\s|{|;", returnEnd: true},
11463 // regexp locations (~, ~*)
11464 {begin: "~\\*?\\s+", end: "\\s|{|;", returnEnd: true},
11465 // *.example.com
11466 {begin: "\\*(\\.[a-z\\-]+)+"},
11467 // sub.example.*
11468 {begin: "([a-z\\-]+\\.)+\\*"}
11469 ]
11470 },
11471 // IP
11472 {
11473 className: 'number',
11474 begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b'
11475 },
11476 // units
11477 {
11478 className: 'number',
11479 begin: '\\b\\d+[kKmMgGdshdwy]*\\b',
11480 relevance: 0
11481 },
11482 VAR
11483 ]
11484 };
11485
11486 return {
11487 aliases: ['nginxconf'],
11488 contains: [
11489 hljs.HASH_COMMENT_MODE,
11490 {
11491 begin: hljs.UNDERSCORE_IDENT_RE + '\\s+{', returnBegin: true,
11492 end: '{',
11493 contains: [
11494 {
11495 className: 'section',
11496 begin: hljs.UNDERSCORE_IDENT_RE
11497 }
11498 ],
11499 relevance: 0
11500 },
11501 {
11502 begin: hljs.UNDERSCORE_IDENT_RE + '\\s', end: ';|{', returnBegin: true,
11503 contains: [
11504 {
11505 className: 'attribute',
11506 begin: hljs.UNDERSCORE_IDENT_RE,
11507 starts: DEFAULT
11508 }
11509 ],
11510 relevance: 0
11511 }
11512 ],
11513 illegal: '[^\\s\\}]'
11514 };
11515}
11516},{name:"nimrod",create:/*
11517Language: Nimrod
11518*/
11519
11520function(hljs) {
11521 return {
11522 aliases: ['nim'],
11523 keywords: {
11524 keyword: 'addr and as asm bind block break|0 case|0 cast const|0 continue|0 converter discard distinct|10 div do elif else|0 end|0 enum|0 except export finally for from generic if|0 import|0 in include|0 interface is isnot|10 iterator|10 let|0 macro method|10 mixin mod nil not notin|10 object|0 of or out proc|10 ptr raise ref|10 return shl shr static template try|0 tuple type|0 using|0 var|0 when while|0 with without xor yield',
11525 literal: 'shared guarded stdin stdout stderr result|10 true false'
11526 },
11527 contains: [ {
11528 className: 'meta', // Actually pragma
11529 begin: /{\./,
11530 end: /\.}/,
11531 relevance: 10
11532 }, {
11533 className: 'string',
11534 begin: /[a-zA-Z]\w*"/,
11535 end: /"/,
11536 contains: [{begin: /""/}]
11537 }, {
11538 className: 'string',
11539 begin: /([a-zA-Z]\w*)?"""/,
11540 end: /"""/
11541 },
11542 hljs.QUOTE_STRING_MODE,
11543 {
11544 className: 'type',
11545 begin: /\b[A-Z]\w+\b/,
11546 relevance: 0
11547 }, {
11548 className: 'built_in',
11549 begin: /\b(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)\b/
11550 }, {
11551 className: 'number',
11552 relevance: 0,
11553 variants: [
11554 {begin: /\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},
11555 {begin: /\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},
11556 {begin: /\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},
11557 {begin: /\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}
11558 ]
11559 },
11560 hljs.HASH_COMMENT_MODE
11561 ]
11562 }
11563}
11564},{name:"nix",create:/*
11565Language: Nix
11566Author: Domen Koลพar <domen@dev.si>
11567Description: Nix functional language. See http://nixos.org/nix
11568*/
11569
11570
11571function(hljs) {
11572 var NIX_KEYWORDS = {
11573 keyword:
11574 'rec with let in inherit assert if else then',
11575 literal:
11576 'true false or and null',
11577 built_in:
11578 'import abort baseNameOf dirOf isNull builtins map removeAttrs throw ' +
11579 'toString derivation'
11580 };
11581 var ANTIQUOTE = {
11582 className: 'subst',
11583 begin: /\$\{/,
11584 end: /}/,
11585 keywords: NIX_KEYWORDS
11586 };
11587 var ATTRS = {
11588 begin: /[a-zA-Z0-9-_]+(\s*=)/, returnBegin: true,
11589 relevance: 0,
11590 contains: [
11591 {
11592 className: 'attr',
11593 begin: /\S+/
11594 }
11595 ]
11596 };
11597 var STRING = {
11598 className: 'string',
11599 contains: [ANTIQUOTE],
11600 variants: [
11601 {begin: "''", end: "''"},
11602 {begin: '"', end: '"'}
11603 ]
11604 };
11605 var EXPRESSIONS = [
11606 hljs.NUMBER_MODE,
11607 hljs.HASH_COMMENT_MODE,
11608 hljs.C_BLOCK_COMMENT_MODE,
11609 STRING,
11610 ATTRS
11611 ];
11612 ANTIQUOTE.contains = EXPRESSIONS;
11613 return {
11614 aliases: ["nixos"],
11615 keywords: NIX_KEYWORDS,
11616 contains: EXPRESSIONS
11617 };
11618}
11619},{name:"nsis",create:/*
11620Language: NSIS
11621Description: Nullsoft Scriptable Install System
11622Author: Jan T. Sott <jan.sott@gmail.com>
11623Website: http://github.com/idleberg
11624*/
11625
11626function(hljs) {
11627 var CONSTANTS = {
11628 className: 'variable',
11629 begin: '\\$(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)'
11630 };
11631
11632 var DEFINES = {
11633 // ${defines}
11634 className: 'variable',
11635 begin: '\\$+{[a-zA-Z0-9_]+}'
11636 };
11637
11638 var VARIABLES = {
11639 // $variables
11640 className: 'variable',
11641 begin: '\\$+[a-zA-Z0-9_]+',
11642 illegal: '\\(\\){}'
11643 };
11644
11645 var LANGUAGES = {
11646 // $(language_strings)
11647 className: 'variable',
11648 begin: '\\$+\\([a-zA-Z0-9_]+\\)'
11649 };
11650
11651 var PARAMETERS = {
11652 // command parameters
11653 className: 'built_in',
11654 begin: '(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)'
11655 };
11656
11657 var COMPILER ={
11658 // !compiler_flags
11659 className: 'keyword',
11660 begin: '\\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)'
11661 };
11662
11663 return {
11664 case_insensitive: false,
11665 keywords: {
11666 keyword:
11667 '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 ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetPluginUnload SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption SubSectionEnd Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle',
11668 literal:
11669 'admin all auto both colored current false force hide highest lastused leave listonly none normal notset off on open print show silent silentlog smooth textonly true user '
11670 },
11671 contains: [
11672 hljs.HASH_COMMENT_MODE,
11673 hljs.C_BLOCK_COMMENT_MODE,
11674 {
11675 className: 'string',
11676 begin: '"', end: '"',
11677 illegal: '\\n',
11678 contains: [
11679 { // $\n, $\r, $\t, $$
11680 begin: '\\$(\\\\(n|r|t)|\\$)'
11681 },
11682 CONSTANTS,
11683 DEFINES,
11684 VARIABLES,
11685 LANGUAGES
11686 ]
11687 },
11688 hljs.COMMENT(
11689 ';',
11690 '$',
11691 {
11692 relevance: 0
11693 }
11694 ),
11695 {
11696 className: 'function',
11697 beginKeywords: 'Function PageEx Section SectionGroup SubSection', end: '$'
11698 },
11699 COMPILER,
11700 DEFINES,
11701 VARIABLES,
11702 LANGUAGES,
11703 PARAMETERS,
11704 hljs.NUMBER_MODE,
11705 { // plug::ins
11706 begin: hljs.IDENT_RE + '::' + hljs.IDENT_RE
11707 }
11708 ]
11709 };
11710}
11711},{name:"objectivec",create:/*
11712Language: Objective C
11713Author: Valerii Hiora <valerii.hiora@gmail.com>
11714Contributors: Angel G. Olloqui <angelgarcia.mail@gmail.com>, Matt Diephouse <matt@diephouse.com>, Andrew Farmer <ahfarmer@gmail.com>
11715Category: common
11716*/
11717
11718function(hljs) {
11719 var API_CLASS = {
11720 className: 'built_in',
11721 begin: '(AV|CA|CF|CG|CI|MK|MP|NS|UI|XC)\\w+',
11722 };
11723 var OBJC_KEYWORDS = {
11724 keyword:
11725 'int float while char export sizeof typedef const struct for union ' +
11726 'unsigned long volatile static bool mutable if do return goto void ' +
11727 'enum else break extern asm case short default double register explicit ' +
11728 'signed typename this switch continue wchar_t inline readonly assign ' +
11729 'readwrite self @synchronized id typeof ' +
11730 'nonatomic super unichar IBOutlet IBAction strong weak copy ' +
11731 'in out inout bycopy byref oneway __strong __weak __block __autoreleasing ' +
11732 '@private @protected @public @try @property @end @throw @catch @finally ' +
11733 '@autoreleasepool @synthesize @dynamic @selector @optional @required',
11734 literal:
11735 'false true FALSE TRUE nil YES NO NULL',
11736 built_in:
11737 'BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once'
11738 };
11739 var LEXEMES = /[a-zA-Z@][a-zA-Z0-9_]*/;
11740 var CLASS_KEYWORDS = '@interface @class @protocol @implementation';
11741 return {
11742 aliases: ['mm', 'objc', 'obj-c'],
11743 keywords: OBJC_KEYWORDS,
11744 lexemes: LEXEMES,
11745 illegal: '</',
11746 contains: [
11747 API_CLASS,
11748 hljs.C_LINE_COMMENT_MODE,
11749 hljs.C_BLOCK_COMMENT_MODE,
11750 hljs.C_NUMBER_MODE,
11751 hljs.QUOTE_STRING_MODE,
11752 {
11753 className: 'string',
11754 variants: [
11755 {
11756 begin: '@"', end: '"',
11757 illegal: '\\n',
11758 contains: [hljs.BACKSLASH_ESCAPE]
11759 },
11760 {
11761 begin: '\'', end: '[^\\\\]\'',
11762 illegal: '[^\\\\][^\']'
11763 }
11764 ]
11765 },
11766 {
11767 className: 'meta',
11768 begin: '#',
11769 end: '$',
11770 contains: [
11771 {
11772 className: 'meta-string',
11773 variants: [
11774 { begin: '\"', end: '\"' },
11775 { begin: '<', end: '>' }
11776 ]
11777 }
11778 ]
11779 },
11780 {
11781 className: 'class',
11782 begin: '(' + CLASS_KEYWORDS.split(' ').join('|') + ')\\b', end: '({|$)', excludeEnd: true,
11783 keywords: CLASS_KEYWORDS, lexemes: LEXEMES,
11784 contains: [
11785 hljs.UNDERSCORE_TITLE_MODE
11786 ]
11787 },
11788 {
11789 begin: '\\.'+hljs.UNDERSCORE_IDENT_RE,
11790 relevance: 0
11791 }
11792 ]
11793 };
11794}
11795},{name:"ocaml",create:/*
11796Language: OCaml
11797Author: Mehdi Dogguy <mehdi@dogguy.org>
11798Contributors: Nicolas Braud-Santoni <nicolas.braud-santoni@ens-cachan.fr>, Mickael Delahaye <mickael.delahaye@gmail.com>
11799Description: OCaml language definition.
11800Category: functional
11801*/
11802function(hljs) {
11803 /* missing support for heredoc-like string (OCaml 4.0.2+) */
11804 return {
11805 aliases: ['ml'],
11806 keywords: {
11807 keyword:
11808 'and as assert asr begin class constraint do done downto else end ' +
11809 'exception external for fun function functor if in include ' +
11810 'inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method ' +
11811 'mod module mutable new object of open! open or private rec sig struct ' +
11812 'then to try type val! val virtual when while with ' +
11813 /* camlp4 */
11814 'parser value',
11815 built_in:
11816 /* built-in types */
11817 'array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit ' +
11818 /* (some) types in Pervasives */
11819 'in_channel out_channel ref',
11820 literal:
11821 'true false'
11822 },
11823 illegal: /\/\/|>>/,
11824 lexemes: '[a-z_]\\w*!?',
11825 contains: [
11826 {
11827 className: 'literal',
11828 begin: '\\[(\\|\\|)?\\]|\\(\\)',
11829 relevance: 0
11830 },
11831 hljs.COMMENT(
11832 '\\(\\*',
11833 '\\*\\)',
11834 {
11835 contains: ['self']
11836 }
11837 ),
11838 { /* type variable */
11839 className: 'symbol',
11840 begin: '\'[A-Za-z_](?!\')[\\w\']*'
11841 /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */
11842 },
11843 { /* polymorphic variant */
11844 className: 'type',
11845 begin: '`[A-Z][\\w\']*'
11846 },
11847 { /* module or constructor */
11848 className: 'type',
11849 begin: '\\b[A-Z][\\w\']*',
11850 relevance: 0
11851 },
11852 { /* don't color identifiers, but safely catch all identifiers with '*/
11853 begin: '[a-z_]\\w*\'[\\w\']*', relevance: 0
11854 },
11855 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
11856 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
11857 {
11858 className: 'number',
11859 begin:
11860 '\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +
11861 '0[oO][0-7_]+[Lln]?|' +
11862 '0[bB][01_]+[Lln]?|' +
11863 '[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',
11864 relevance: 0
11865 },
11866 {
11867 begin: /[-=]>/ // relevance booster
11868 }
11869 ]
11870 }
11871}
11872},{name:"openscad",create:/*
11873Language: OpenSCAD
11874Author: Dan Panzarella <alsoelp@gmail.com>
11875Description: OpenSCAD is a language for the 3D CAD modeling software of the same name.
11876Category: scientific
11877*/
11878
11879function(hljs) {
11880 var SPECIAL_VARS = {
11881 className: 'keyword',
11882 begin: '\\$(f[asn]|t|vp[rtd]|children)'
11883 },
11884 LITERALS = {
11885 className: 'literal',
11886 begin: 'false|true|PI|undef'
11887 },
11888 NUMBERS = {
11889 className: 'number',
11890 begin: '\\b\\d+(\\.\\d+)?(e-?\\d+)?', //adds 1e5, 1e-10
11891 relevance: 0
11892 },
11893 STRING = hljs.inherit(hljs.QUOTE_STRING_MODE,{illegal: null}),
11894 PREPRO = {
11895 className: 'meta',
11896 keywords: {'meta-keyword': 'include use'},
11897 begin: 'include|use <',
11898 end: '>'
11899 },
11900 PARAMS = {
11901 className: 'params',
11902 begin: '\\(', end: '\\)',
11903 contains: ['self', NUMBERS, STRING, SPECIAL_VARS, LITERALS]
11904 },
11905 MODIFIERS = {
11906 begin: '[*!#%]',
11907 relevance: 0
11908 },
11909 FUNCTIONS = {
11910 className: 'function',
11911 beginKeywords: 'module function',
11912 end: '\\=|\\{',
11913 contains: [PARAMS, hljs.UNDERSCORE_TITLE_MODE]
11914 };
11915
11916 return {
11917 aliases: ['scad'],
11918 keywords: {
11919 keyword: 'function module include use for intersection_for if else \\%',
11920 literal: 'false true PI undef',
11921 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'
11922 },
11923 contains: [
11924 hljs.C_LINE_COMMENT_MODE,
11925 hljs.C_BLOCK_COMMENT_MODE,
11926 NUMBERS,
11927 PREPRO,
11928 STRING,
11929 SPECIAL_VARS,
11930 MODIFIERS,
11931 FUNCTIONS
11932 ]
11933 }
11934}
11935},{name:"oxygene",create:/*
11936Language: Oxygene
11937Author: Carlo Kok <ck@remobjects.com>
11938Description: Language definition for RemObjects Oxygene (http://www.remobjects.com)
11939*/
11940
11941function(hljs) {
11942 var OXYGENE_KEYWORDS = 'abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue '+
11943 'create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false '+
11944 'final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited '+
11945 'inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of '+
11946 'old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly '+
11947 'record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple '+
11948 'type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal '+
11949 'register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained';
11950 var CURLY_COMMENT = hljs.COMMENT(
11951 '{',
11952 '}',
11953 {
11954 relevance: 0
11955 }
11956 );
11957 var PAREN_COMMENT = hljs.COMMENT(
11958 '\\(\\*',
11959 '\\*\\)',
11960 {
11961 relevance: 10
11962 }
11963 );
11964 var STRING = {
11965 className: 'string',
11966 begin: '\'', end: '\'',
11967 contains: [{begin: '\'\''}]
11968 };
11969 var CHAR_STRING = {
11970 className: 'string', begin: '(#\\d+)+'
11971 };
11972 var FUNCTION = {
11973 className: 'function',
11974 beginKeywords: 'function constructor destructor procedure method', end: '[:;]',
11975 keywords: 'function constructor|10 destructor|10 procedure|10 method|10',
11976 contains: [
11977 hljs.TITLE_MODE,
11978 {
11979 className: 'params',
11980 begin: '\\(', end: '\\)',
11981 keywords: OXYGENE_KEYWORDS,
11982 contains: [STRING, CHAR_STRING]
11983 },
11984 CURLY_COMMENT, PAREN_COMMENT
11985 ]
11986 };
11987 return {
11988 case_insensitive: true,
11989 keywords: OXYGENE_KEYWORDS,
11990 illegal: '("|\\$[G-Zg-z]|\\/\\*|</|=>|->)',
11991 contains: [
11992 CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE,
11993 STRING, CHAR_STRING,
11994 hljs.NUMBER_MODE,
11995 FUNCTION,
11996 {
11997 className: 'class',
11998 begin: '=\\bclass\\b', end: 'end;',
11999 keywords: OXYGENE_KEYWORDS,
12000 contains: [
12001 STRING, CHAR_STRING,
12002 CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE,
12003 FUNCTION
12004 ]
12005 }
12006 ]
12007 };
12008}
12009},{name:"parser3",create:/*
12010Language: Parser3
12011Requires: xml.js
12012Author: Oleg Volchkov <oleg@volchkov.net>
12013Category: template
12014*/
12015
12016function(hljs) {
12017 var CURLY_SUBCOMMENT = hljs.COMMENT(
12018 '{',
12019 '}',
12020 {
12021 contains: ['self']
12022 }
12023 );
12024 return {
12025 subLanguage: 'xml', relevance: 0,
12026 contains: [
12027 hljs.COMMENT('^#', '$'),
12028 hljs.COMMENT(
12029 '\\^rem{',
12030 '}',
12031 {
12032 relevance: 10,
12033 contains: [
12034 CURLY_SUBCOMMENT
12035 ]
12036 }
12037 ),
12038 {
12039 className: 'meta',
12040 begin: '^@(?:BASE|USE|CLASS|OPTIONS)$',
12041 relevance: 10
12042 },
12043 {
12044 className: 'title',
12045 begin: '@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$'
12046 },
12047 {
12048 className: 'variable',
12049 begin: '\\$\\{?[\\w\\-\\.\\:]+\\}?'
12050 },
12051 {
12052 className: 'keyword',
12053 begin: '\\^[\\w\\-\\.\\:]+'
12054 },
12055 {
12056 className: 'number',
12057 begin: '\\^#[0-9a-fA-F]+'
12058 },
12059 hljs.C_NUMBER_MODE
12060 ]
12061 };
12062}
12063},{name:"perl",create:/*
12064Language: Perl
12065Author: Peter Leonov <gojpeg@yandex.ru>
12066Category: common
12067*/
12068
12069function(hljs) {
12070 var PERL_KEYWORDS = 'getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ' +
12071 'ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime ' +
12072 'readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq' +
12073 'fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent ' +
12074 'shutdown dump chomp connect getsockname die socketpair close flock exists index shmget' +
12075 'sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr ' +
12076 'unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 ' +
12077 'getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline ' +
12078 'endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand ' +
12079 'mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink ' +
12080 'getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr ' +
12081 'untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link ' +
12082 'getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller ' +
12083 'lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and ' +
12084 'sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 ' +
12085 'chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach ' +
12086 'tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir' +
12087 'ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe ' +
12088 'atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when';
12089 var SUBST = {
12090 className: 'subst',
12091 begin: '[$@]\\{', end: '\\}',
12092 keywords: PERL_KEYWORDS
12093 };
12094 var METHOD = {
12095 begin: '->{', end: '}'
12096 // contains defined later
12097 };
12098 var VAR = {
12099 variants: [
12100 {begin: /\$\d/},
12101 {begin: /[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},
12102 {begin: /[\$%@][^\s\w{]/, relevance: 0}
12103 ]
12104 };
12105 var STRING_CONTAINS = [hljs.BACKSLASH_ESCAPE, SUBST, VAR];
12106 var PERL_DEFAULT_CONTAINS = [
12107 VAR,
12108 hljs.HASH_COMMENT_MODE,
12109 hljs.COMMENT(
12110 '^\\=\\w',
12111 '\\=cut',
12112 {
12113 endsWithParent: true
12114 }
12115 ),
12116 METHOD,
12117 {
12118 className: 'string',
12119 contains: STRING_CONTAINS,
12120 variants: [
12121 {
12122 begin: 'q[qwxr]?\\s*\\(', end: '\\)',
12123 relevance: 5
12124 },
12125 {
12126 begin: 'q[qwxr]?\\s*\\[', end: '\\]',
12127 relevance: 5
12128 },
12129 {
12130 begin: 'q[qwxr]?\\s*\\{', end: '\\}',
12131 relevance: 5
12132 },
12133 {
12134 begin: 'q[qwxr]?\\s*\\|', end: '\\|',
12135 relevance: 5
12136 },
12137 {
12138 begin: 'q[qwxr]?\\s*\\<', end: '\\>',
12139 relevance: 5
12140 },
12141 {
12142 begin: 'qw\\s+q', end: 'q',
12143 relevance: 5
12144 },
12145 {
12146 begin: '\'', end: '\'',
12147 contains: [hljs.BACKSLASH_ESCAPE]
12148 },
12149 {
12150 begin: '"', end: '"'
12151 },
12152 {
12153 begin: '`', end: '`',
12154 contains: [hljs.BACKSLASH_ESCAPE]
12155 },
12156 {
12157 begin: '{\\w+}',
12158 contains: [],
12159 relevance: 0
12160 },
12161 {
12162 begin: '\-?\\w+\\s*\\=\\>',
12163 contains: [],
12164 relevance: 0
12165 }
12166 ]
12167 },
12168 {
12169 className: 'number',
12170 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
12171 relevance: 0
12172 },
12173 { // regexp container
12174 begin: '(\\/\\/|' + hljs.RE_STARTERS_RE + '|\\b(split|return|print|reverse|grep)\\b)\\s*',
12175 keywords: 'split return print reverse grep',
12176 relevance: 0,
12177 contains: [
12178 hljs.HASH_COMMENT_MODE,
12179 {
12180 className: 'regexp',
12181 begin: '(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*',
12182 relevance: 10
12183 },
12184 {
12185 className: 'regexp',
12186 begin: '(m|qr)?/', end: '/[a-z]*',
12187 contains: [hljs.BACKSLASH_ESCAPE],
12188 relevance: 0 // allows empty "//" which is a common comment delimiter in other languages
12189 }
12190 ]
12191 },
12192 {
12193 className: 'function',
12194 beginKeywords: 'sub', end: '(\\s*\\(.*?\\))?[;{]', excludeEnd: true,
12195 relevance: 5,
12196 contains: [hljs.TITLE_MODE]
12197 },
12198 {
12199 begin: '-\\w\\b',
12200 relevance: 0
12201 },
12202 {
12203 begin: "^__DATA__$",
12204 end: "^__END__$",
12205 subLanguage: 'mojolicious',
12206 contains: [
12207 {
12208 begin: "^@@.*",
12209 end: "$",
12210 className: "comment"
12211 }
12212 ]
12213 }
12214 ];
12215 SUBST.contains = PERL_DEFAULT_CONTAINS;
12216 METHOD.contains = PERL_DEFAULT_CONTAINS;
12217
12218 return {
12219 aliases: ['pl'],
12220 keywords: PERL_KEYWORDS,
12221 contains: PERL_DEFAULT_CONTAINS
12222 };
12223}
12224},{name:"pf",create:/*
12225Language: pf
12226Category: config
12227Author: Peter Piwowarski <oldlaptop654@aol.com>
12228Description: The pf.conf(5) format as of OpenBSD 5.6
12229*/
12230
12231function(hljs) {
12232 var MACRO = {
12233 className: 'variable',
12234 begin: /\$[\w\d#@][\w\d_]*/
12235 };
12236 var TABLE = {
12237 className: 'variable',
12238 begin: /</, end: />/
12239 };
12240 var QUOTE_STRING = {
12241 className: 'string',
12242 begin: /"/, end: /"/
12243 };
12244
12245 return {
12246 aliases: ['pf.conf'],
12247 lexemes: /[a-z0-9_<>-]+/,
12248 keywords: {
12249 built_in: /* block match pass are "actions" in pf.conf(5), the rest are
12250 * lexically similar top-level commands.
12251 */
12252 'block match pass load anchor|5 antispoof|10 set table',
12253 keyword:
12254 'in out log quick on rdomain inet inet6 proto from port os to route' +
12255 'allow-opts divert-packet divert-reply divert-to flags group icmp-type' +
12256 'icmp6-type label once probability recieved-on rtable prio queue' +
12257 'tos tag tagged user keep fragment for os drop' +
12258 'af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin' +
12259 'source-hash static-port' +
12260 'dup-to reply-to route-to' +
12261 'parent bandwidth default min max qlimit' +
12262 'block-policy debug fingerprints hostid limit loginterface optimization' +
12263 'reassemble ruleset-optimization basic none profile skip state-defaults' +
12264 'state-policy timeout' +
12265 'const counters persist' +
12266 'no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy' +
12267 'source-track global rule max-src-nodes max-src-states max-src-conn' +
12268 'max-src-conn-rate overload flush' +
12269 'scrub|5 max-mss min-ttl no-df|10 random-id',
12270 literal:
12271 'all any no-route self urpf-failed egress|5 unknown'
12272 },
12273 contains: [
12274 hljs.HASH_COMMENT_MODE,
12275 hljs.NUMBER_MODE,
12276 hljs.QUOTE_STRING_MODE,
12277 MACRO,
12278 TABLE
12279 ]
12280 };
12281}
12282},{name:"php",create:/*
12283Language: PHP
12284Author: Victor Karamzin <Victor.Karamzin@enterra-inc.com>
12285Contributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>
12286Category: common
12287*/
12288
12289function(hljs) {
12290 var VARIABLE = {
12291 begin: '\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
12292 };
12293 var PREPROCESSOR = {
12294 className: 'meta', begin: /<\?(php)?|\?>/
12295 };
12296 var STRING = {
12297 className: 'string',
12298 contains: [hljs.BACKSLASH_ESCAPE, PREPROCESSOR],
12299 variants: [
12300 {
12301 begin: 'b"', end: '"'
12302 },
12303 {
12304 begin: 'b\'', end: '\''
12305 },
12306 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
12307 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
12308 ]
12309 };
12310 var NUMBER = {variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]};
12311 return {
12312 aliases: ['php3', 'php4', 'php5', 'php6'],
12313 case_insensitive: true,
12314 keywords:
12315 'and include_once list abstract global private echo interface as static endswitch ' +
12316 'array null if endwhile or const for endforeach self var while isset public ' +
12317 'protected exit foreach throw elseif include __FILE__ empty require_once do xor ' +
12318 'return parent clone use __CLASS__ __LINE__ else break print eval new ' +
12319 'catch __METHOD__ case exception default die require __FUNCTION__ ' +
12320 'enddeclare final try switch continue endfor endif declare unset true false ' +
12321 'trait goto instanceof insteadof __DIR__ __NAMESPACE__ ' +
12322 'yield finally',
12323 contains: [
12324 hljs.C_LINE_COMMENT_MODE,
12325 hljs.HASH_COMMENT_MODE,
12326 hljs.COMMENT(
12327 '/\\*',
12328 '\\*/',
12329 {
12330 contains: [
12331 {
12332 className: 'doctag',
12333 begin: '@[A-Za-z]+'
12334 },
12335 PREPROCESSOR
12336 ]
12337 }
12338 ),
12339 hljs.COMMENT(
12340 '__halt_compiler.+?;',
12341 false,
12342 {
12343 endsWithParent: true,
12344 keywords: '__halt_compiler',
12345 lexemes: hljs.UNDERSCORE_IDENT_RE
12346 }
12347 ),
12348 {
12349 className: 'string',
12350 begin: /<<<['"]?\w+['"]?$/, end: /^\w+;?$/,
12351 contains: [
12352 hljs.BACKSLASH_ESCAPE,
12353 {
12354 className: 'subst',
12355 variants: [
12356 {begin: /\$\w+/},
12357 {begin: /\{\$/, end: /\}/}
12358 ]
12359 }
12360 ]
12361 },
12362 PREPROCESSOR,
12363 VARIABLE,
12364 {
12365 // swallow composed identifiers to avoid parsing them as keywords
12366 begin: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
12367 },
12368 {
12369 className: 'function',
12370 beginKeywords: 'function', end: /[;{]/, excludeEnd: true,
12371 illegal: '\\$|\\[|%',
12372 contains: [
12373 hljs.UNDERSCORE_TITLE_MODE,
12374 {
12375 className: 'params',
12376 begin: '\\(', end: '\\)',
12377 contains: [
12378 'self',
12379 VARIABLE,
12380 hljs.C_BLOCK_COMMENT_MODE,
12381 STRING,
12382 NUMBER
12383 ]
12384 }
12385 ]
12386 },
12387 {
12388 className: 'class',
12389 beginKeywords: 'class interface', end: '{', excludeEnd: true,
12390 illegal: /[:\(\$"]/,
12391 contains: [
12392 {beginKeywords: 'extends implements'},
12393 hljs.UNDERSCORE_TITLE_MODE
12394 ]
12395 },
12396 {
12397 beginKeywords: 'namespace', end: ';',
12398 illegal: /[\.']/,
12399 contains: [hljs.UNDERSCORE_TITLE_MODE]
12400 },
12401 {
12402 beginKeywords: 'use', end: ';',
12403 contains: [hljs.UNDERSCORE_TITLE_MODE]
12404 },
12405 {
12406 begin: '=>' // No markup, just a relevance booster
12407 },
12408 STRING,
12409 NUMBER
12410 ]
12411 };
12412}
12413},{name:"powershell",create:/*
12414Language: PowerShell
12415Author: David Mohundro <david@mohundro.com>
12416Contributors: Nicholas Blumhardt <nblumhardt@nblumhardt.com>
12417*/
12418
12419function(hljs) {
12420 var backtickEscape = {
12421 begin: '`[\\s\\S]',
12422 relevance: 0
12423 };
12424 var VAR = {
12425 className: 'variable',
12426 variants: [
12427 {begin: /\$[\w\d][\w\d_:]*/}
12428 ]
12429 };
12430 var LITERAL = {
12431 className: 'literal',
12432 begin: /\$(null|true|false)\b/
12433 };
12434 var QUOTE_STRING = {
12435 className: 'string',
12436 begin: /"/, end: /"/,
12437 contains: [
12438 backtickEscape,
12439 VAR,
12440 {
12441 className: 'variable',
12442 begin: /\$[A-z]/, end: /[^A-z]/
12443 }
12444 ]
12445 };
12446 var APOS_STRING = {
12447 className: 'string',
12448 begin: /'/, end: /'/
12449 };
12450
12451 return {
12452 aliases: ['ps'],
12453 lexemes: /-?[A-z\.\-]+/,
12454 case_insensitive: true,
12455 keywords: {
12456 keyword: 'if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch',
12457 built_in: 'Add-Content Add-History Add-Member Add-PSSnapin Clear-Content Clear-Item Clear-Item Property Clear-Variable Compare-Object ConvertFrom-SecureString Convert-Path ConvertTo-Html ConvertTo-SecureString Copy-Item Copy-ItemProperty Export-Alias Export-Clixml Export-Console Export-Csv ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-Content Get-Credential Get-Culture Get-Date Get-EventLog Get-ExecutionPolicy Get-Help Get-History Get-Host Get-Item Get-ItemProperty Get-Location Get-Member Get-PfxCertificate Get-Process Get-PSDrive Get-PSProvider Get-PSSnapin Get-Service Get-TraceSource Get-UICulture Get-Unique Get-Variable Get-WmiObject Group-Object Import-Alias Import-Clixml Import-Csv Invoke-Expression Invoke-History Invoke-Item Join-Path Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Item New-ItemProperty New-Object New-PSDrive New-Service New-TimeSpan New-Variable Out-Default Out-File Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Remove-Item Remove-ItemProperty Remove-PSDrive Remove-PSSnapin Remove-Variable Rename-Item Rename-ItemProperty Resolve-Path Restart-Service Resume-Service Select-Object Select-String Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-Location Set-PSDebug Set-Service Set-TraceSource Set-Variable Sort-Object Split-Path Start-Service Start-Sleep Start-Transcript Stop-Process Stop-Service Stop-Transcript Suspend-Service Tee-Object Test-Path Trace-Command Update-FormatData Update-TypeData Where-Object Write-Debug Write-Error Write-Host Write-Output Write-Progress Write-Verbose Write-Warning',
12458 nomarkup: '-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace'
12459 },
12460 contains: [
12461 hljs.HASH_COMMENT_MODE,
12462 hljs.NUMBER_MODE,
12463 QUOTE_STRING,
12464 APOS_STRING,
12465 LITERAL,
12466 VAR
12467 ]
12468 };
12469}
12470},{name:"processing",create:/*
12471Language: Processing
12472Author: Erik Paluka <erik.paluka@gmail.com>
12473Category: graphics
12474*/
12475
12476function(hljs) {
12477 return {
12478 keywords: {
12479 keyword: 'BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color ' +
12480 'double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject ' +
12481 'Object StringDict StringList Table TableRow XML ' +
12482 // Java keywords
12483 'false synchronized int abstract float private char boolean static null if const ' +
12484 'for true while long throw strictfp finally protected import native final return void ' +
12485 'enum else break transient new catch instanceof byte super volatile case assert short ' +
12486 'package default double public try this switch continue throws protected public private',
12487 literal: 'P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI',
12488 title: 'setup draw',
12489 built_in: 'displayHeight displayWidth mouseY mouseX mousePressed pmouseX pmouseY key ' +
12490 'keyCode pixels focused frameCount frameRate height width ' +
12491 'size createGraphics beginDraw createShape loadShape PShape arc ellipse line point ' +
12492 'quad rect triangle bezier bezierDetail bezierPoint bezierTangent curve curveDetail curvePoint ' +
12493 'curveTangent curveTightness shape shapeMode beginContour beginShape bezierVertex curveVertex ' +
12494 'endContour endShape quadraticVertex vertex ellipseMode noSmooth rectMode smooth strokeCap ' +
12495 'strokeJoin strokeWeight mouseClicked mouseDragged mouseMoved mousePressed mouseReleased ' +
12496 'mouseWheel keyPressed keyPressedkeyReleased keyTyped print println save saveFrame day hour ' +
12497 'millis minute month second year background clear colorMode fill noFill noStroke stroke alpha ' +
12498 'blue brightness color green hue lerpColor red saturation modelX modelY modelZ screenX screenY ' +
12499 'screenZ ambient emissive shininess specular add createImage beginCamera camera endCamera frustum ' +
12500 'ortho perspective printCamera printProjection cursor frameRate noCursor exit loop noLoop popStyle ' +
12501 'pushStyle redraw binary boolean byte char float hex int str unbinary unhex join match matchAll nf ' +
12502 'nfc nfp nfs split splitTokens trim append arrayCopy concat expand reverse shorten sort splice subset ' +
12503 'box sphere sphereDetail createInput createReader loadBytes loadJSONArray loadJSONObject loadStrings ' +
12504 'loadTable loadXML open parseXML saveTable selectFolder selectInput beginRaw beginRecord createOutput ' +
12505 'createWriter endRaw endRecord PrintWritersaveBytes saveJSONArray saveJSONObject saveStream saveStrings ' +
12506 'saveXML selectOutput popMatrix printMatrix pushMatrix resetMatrix rotate rotateX rotateY rotateZ scale ' +
12507 'shearX shearY translate ambientLight directionalLight lightFalloff lights lightSpecular noLights normal ' +
12508 'pointLight spotLight image imageMode loadImage noTint requestImage tint texture textureMode textureWrap ' +
12509 'blend copy filter get loadPixels set updatePixels blendMode loadShader PShaderresetShader shader createFont ' +
12510 'loadFont text textFont textAlign textLeading textMode textSize textWidth textAscent textDescent abs ceil ' +
12511 'constrain dist exp floor lerp log mag map max min norm pow round sq sqrt acos asin atan atan2 cos degrees ' +
12512 'radians sin tan noise noiseDetail noiseSeed random randomGaussian randomSeed'
12513 },
12514 contains: [
12515 hljs.C_LINE_COMMENT_MODE,
12516 hljs.C_BLOCK_COMMENT_MODE,
12517 hljs.APOS_STRING_MODE,
12518 hljs.QUOTE_STRING_MODE,
12519 hljs.C_NUMBER_MODE
12520 ]
12521 };
12522}
12523},{name:"profile",create:/*
12524Language: Python profile
12525Description: Python profiler results
12526Author: Brian Beck <exogen@gmail.com>
12527*/
12528
12529function(hljs) {
12530 return {
12531 contains: [
12532 hljs.C_NUMBER_MODE,
12533 {
12534 begin: '[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}', end: ':',
12535 excludeEnd: true
12536 },
12537 {
12538 begin: '(ncalls|tottime|cumtime)', end: '$',
12539 keywords: 'ncalls tottime|10 cumtime|10 filename',
12540 relevance: 10
12541 },
12542 {
12543 begin: 'function calls', end: '$',
12544 contains: [hljs.C_NUMBER_MODE],
12545 relevance: 10
12546 },
12547 hljs.APOS_STRING_MODE,
12548 hljs.QUOTE_STRING_MODE,
12549 {
12550 className: 'string',
12551 begin: '\\(', end: '\\)$',
12552 excludeBegin: true, excludeEnd: true,
12553 relevance: 0
12554 }
12555 ]
12556 };
12557}
12558},{name:"prolog",create:/*
12559Language: Prolog
12560Description: Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.
12561Author: Raivo Laanemets <raivo@infdot.com>
12562*/
12563
12564function(hljs) {
12565
12566 var ATOM = {
12567
12568 begin: /[a-z][A-Za-z0-9_]*/,
12569 relevance: 0
12570 };
12571
12572 var VAR = {
12573
12574 className: 'symbol',
12575 variants: [
12576 {begin: /[A-Z][a-zA-Z0-9_]*/},
12577 {begin: /_[A-Za-z0-9_]*/},
12578 ],
12579 relevance: 0
12580 };
12581
12582 var PARENTED = {
12583
12584 begin: /\(/,
12585 end: /\)/,
12586 relevance: 0
12587 };
12588
12589 var LIST = {
12590
12591 begin: /\[/,
12592 end: /\]/
12593 };
12594
12595 var LINE_COMMENT = {
12596
12597 className: 'comment',
12598 begin: /%/, end: /$/,
12599 contains: [hljs.PHRASAL_WORDS_MODE]
12600 };
12601
12602 var BACKTICK_STRING = {
12603
12604 className: 'string',
12605 begin: /`/, end: /`/,
12606 contains: [hljs.BACKSLASH_ESCAPE]
12607 };
12608
12609 var CHAR_CODE = {
12610
12611 className: 'string', // 0'a etc.
12612 begin: /0\'(\\\'|.)/
12613 };
12614
12615 var SPACE_CODE = {
12616
12617 className: 'string',
12618 begin: /0\'\\s/ // 0'\s
12619 };
12620
12621 var PRED_OP = { // relevance booster
12622 begin: /:-/
12623 };
12624
12625 var inner = [
12626
12627 ATOM,
12628 VAR,
12629 PARENTED,
12630 PRED_OP,
12631 LIST,
12632 LINE_COMMENT,
12633 hljs.C_BLOCK_COMMENT_MODE,
12634 hljs.QUOTE_STRING_MODE,
12635 hljs.APOS_STRING_MODE,
12636 BACKTICK_STRING,
12637 CHAR_CODE,
12638 SPACE_CODE,
12639 hljs.C_NUMBER_MODE
12640 ];
12641
12642 PARENTED.contains = inner;
12643 LIST.contains = inner;
12644
12645 return {
12646 contains: inner.concat([
12647 {begin: /\.$/} // relevance booster
12648 ])
12649 };
12650}
12651},{name:"protobuf",create:/*
12652Language: Protocol Buffers
12653Author: Dan Tao <daniel.tao@gmail.com>
12654Description: Protocol buffer message definition format
12655Category: protocols
12656*/
12657
12658function(hljs) {
12659 return {
12660 keywords: {
12661 keyword: 'package import option optional required repeated group',
12662 built_in: 'double float int32 int64 uint32 uint64 sint32 sint64 ' +
12663 'fixed32 fixed64 sfixed32 sfixed64 bool string bytes',
12664 literal: 'true false'
12665 },
12666 contains: [
12667 hljs.QUOTE_STRING_MODE,
12668 hljs.NUMBER_MODE,
12669 hljs.C_LINE_COMMENT_MODE,
12670 {
12671 className: 'class',
12672 beginKeywords: 'message enum service', end: /\{/,
12673 illegal: /\n/,
12674 contains: [
12675 hljs.inherit(hljs.TITLE_MODE, {
12676 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
12677 })
12678 ]
12679 },
12680 {
12681 className: 'function',
12682 beginKeywords: 'rpc',
12683 end: /;/, excludeEnd: true,
12684 keywords: 'rpc returns'
12685 },
12686 {
12687 begin: /^\s*[A-Z_]+/,
12688 end: /\s*=/, excludeEnd: true
12689 }
12690 ]
12691 };
12692}
12693},{name:"puppet",create:/*
12694Language: Puppet
12695Author: Jose Molina Colmenero <gaudy41@gmail.com>
12696Category: config
12697*/
12698
12699function(hljs) {
12700
12701 var PUPPET_KEYWORDS = {
12702 keyword:
12703 /* language keywords */
12704 'and case default else elsif false if in import enherits node or true undef unless main settings $string ',
12705 literal:
12706 /* metaparameters */
12707 'alias audit before loglevel noop require subscribe tag ' +
12708 /* normal attributes */
12709 'owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check ' +
12710 'en_address ip_address realname command environment hour monute month monthday special target weekday '+
12711 'creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore ' +
12712 'links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source ' +
12713 'souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid '+
12714 'ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel ' +
12715 'native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options ' +
12716 'device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use ' +
12717 'message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform ' +
12718 'responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running ' +
12719 'start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age ' +
12720 'password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled ' +
12721 'enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist ' +
12722 'priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey ' +
12723 'sslverify mounted',
12724 built_in:
12725 /* core facts */
12726 'architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers ' +
12727 'domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces '+
12728 'ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion ' +
12729 'kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease ' +
12730 'lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major ' +
12731 'macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease '+
12732 'operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion '+
12733 'rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced '+
12734 'selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime '+
12735 'uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version'
12736 };
12737
12738 var COMMENT = hljs.COMMENT('#', '$');
12739
12740 var IDENT_RE = '([A-Za-z_]|::)(\\w|::)*';
12741
12742 var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE});
12743
12744 var VARIABLE = {className: 'variable', begin: '\\$' + IDENT_RE};
12745
12746 var STRING = {
12747 className: 'string',
12748 contains: [hljs.BACKSLASH_ESCAPE, VARIABLE],
12749 variants: [
12750 {begin: /'/, end: /'/},
12751 {begin: /"/, end: /"/}
12752 ]
12753 };
12754
12755 return {
12756 aliases: ['pp'],
12757 contains: [
12758 COMMENT,
12759 VARIABLE,
12760 STRING,
12761 {
12762 beginKeywords: 'class', end: '\\{|;',
12763 illegal: /=/,
12764 contains: [TITLE, COMMENT]
12765 },
12766 {
12767 beginKeywords: 'define', end: /\{/,
12768 contains: [
12769 {
12770 className: 'section', begin: hljs.IDENT_RE, endsParent: true
12771 }
12772 ]
12773 },
12774 {
12775 begin: hljs.IDENT_RE + '\\s+\\{', returnBegin: true,
12776 end: /\S/,
12777 contains: [
12778 {
12779 className: 'keyword',
12780 begin: hljs.IDENT_RE
12781 },
12782 {
12783 begin: /\{/, end: /\}/,
12784 keywords: PUPPET_KEYWORDS,
12785 relevance: 0,
12786 contains: [
12787 STRING,
12788 COMMENT,
12789 {
12790 begin:'[a-zA-Z_]+\\s*=>',
12791 returnBegin: true, end: '=>',
12792 contains: [
12793 {
12794 className: 'attr',
12795 begin: hljs.IDENT_RE,
12796 }
12797 ]
12798 },
12799 {
12800 className: 'number',
12801 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
12802 relevance: 0
12803 },
12804 VARIABLE
12805 ]
12806 }
12807 ],
12808 relevance: 0
12809 }
12810 ]
12811 }
12812}
12813},{name:"python",create:/*
12814Language: Python
12815Category: common
12816*/
12817
12818function(hljs) {
12819 var PROMPT = {
12820 className: 'meta', begin: /^(>>>|\.\.\.) /
12821 };
12822 var STRING = {
12823 className: 'string',
12824 contains: [hljs.BACKSLASH_ESCAPE],
12825 variants: [
12826 {
12827 begin: /(u|b)?r?'''/, end: /'''/,
12828 contains: [PROMPT],
12829 relevance: 10
12830 },
12831 {
12832 begin: /(u|b)?r?"""/, end: /"""/,
12833 contains: [PROMPT],
12834 relevance: 10
12835 },
12836 {
12837 begin: /(u|r|ur)'/, end: /'/,
12838 relevance: 10
12839 },
12840 {
12841 begin: /(u|r|ur)"/, end: /"/,
12842 relevance: 10
12843 },
12844 {
12845 begin: /(b|br)'/, end: /'/
12846 },
12847 {
12848 begin: /(b|br)"/, end: /"/
12849 },
12850 hljs.APOS_STRING_MODE,
12851 hljs.QUOTE_STRING_MODE
12852 ]
12853 };
12854 var NUMBER = {
12855 className: 'number', relevance: 0,
12856 variants: [
12857 {begin: hljs.BINARY_NUMBER_RE + '[lLjJ]?'},
12858 {begin: '\\b(0o[0-7]+)[lLjJ]?'},
12859 {begin: hljs.C_NUMBER_RE + '[lLjJ]?'}
12860 ]
12861 };
12862 var PARAMS = {
12863 className: 'params',
12864 begin: /\(/, end: /\)/,
12865 contains: ['self', PROMPT, NUMBER, STRING]
12866 };
12867 return {
12868 aliases: ['py', 'gyp'],
12869 keywords: {
12870 keyword:
12871 'and elif is global as in if from raise for except finally print import pass return ' +
12872 'exec else break not with class assert yield try while continue del or def lambda ' +
12873 'async await nonlocal|10 None True False',
12874 built_in:
12875 'Ellipsis NotImplemented'
12876 },
12877 illegal: /(<\/|->|\?)/,
12878 contains: [
12879 PROMPT,
12880 NUMBER,
12881 STRING,
12882 hljs.HASH_COMMENT_MODE,
12883 {
12884 variants: [
12885 {className: 'function', beginKeywords: 'def', relevance: 10},
12886 {className: 'class', beginKeywords: 'class'}
12887 ],
12888 end: /:/,
12889 illegal: /[${=;\n,]/,
12890 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
12891 },
12892 {
12893 className: 'meta',
12894 begin: /^[\t ]*@/, end: /$/
12895 },
12896 {
12897 begin: /\b(print|exec)\(/ // donโ€™t highlight keywords-turned-functions in Python 3
12898 }
12899 ]
12900 };
12901}
12902},{name:"q",create:/*
12903Language: Q
12904Author: Sergey Vidyuk <svidyuk@gmail.com>
12905Description: K/Q/Kdb+ from Kx Systems
12906*/
12907function(hljs) {
12908 var Q_KEYWORDS = {
12909 keyword:
12910 'do while select delete by update from',
12911 literal:
12912 '0b 1b',
12913 built_in:
12914 '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',
12915 type:
12916 '`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid'
12917 };
12918 return {
12919 aliases:['k', 'kdb'],
12920 keywords: Q_KEYWORDS,
12921 lexemes: /(`?)[A-Za-z0-9_]+\b/,
12922 contains: [
12923 hljs.C_LINE_COMMENT_MODE,
12924 hljs.QUOTE_STRING_MODE,
12925 hljs.C_NUMBER_MODE
12926 ]
12927 };
12928}
12929},{name:"r",create:/*
12930Language: R
12931Author: Joe Cheng <joe@rstudio.org>
12932Category: scientific
12933*/
12934
12935function(hljs) {
12936 var IDENT_RE = '([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*';
12937
12938 return {
12939 contains: [
12940 hljs.HASH_COMMENT_MODE,
12941 {
12942 begin: IDENT_RE,
12943 lexemes: IDENT_RE,
12944 keywords: {
12945 keyword:
12946 'function if in break next repeat else for return switch while try tryCatch ' +
12947 'stop warning require library attach detach source setMethod setGeneric ' +
12948 'setGroupGeneric setClass ...',
12949 literal:
12950 'NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 ' +
12951 'NA_complex_|10'
12952 },
12953 relevance: 0
12954 },
12955 {
12956 // hex value
12957 className: 'number',
12958 begin: "0[xX][0-9a-fA-F]+[Li]?\\b",
12959 relevance: 0
12960 },
12961 {
12962 // explicit integer
12963 className: 'number',
12964 begin: "\\d+(?:[eE][+\\-]?\\d*)?L\\b",
12965 relevance: 0
12966 },
12967 {
12968 // number with trailing decimal
12969 className: 'number',
12970 begin: "\\d+\\.(?!\\d)(?:i\\b)?",
12971 relevance: 0
12972 },
12973 {
12974 // number
12975 className: 'number',
12976 begin: "\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",
12977 relevance: 0
12978 },
12979 {
12980 // number with leading decimal
12981 className: 'number',
12982 begin: "\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",
12983 relevance: 0
12984 },
12985
12986 {
12987 // escaped identifier
12988 begin: '`',
12989 end: '`',
12990 relevance: 0
12991 },
12992
12993 {
12994 className: 'string',
12995 contains: [hljs.BACKSLASH_ESCAPE],
12996 variants: [
12997 {begin: '"', end: '"'},
12998 {begin: "'", end: "'"}
12999 ]
13000 }
13001 ]
13002 };
13003}
13004},{name:"rib",create:/*
13005Language: RenderMan RIB
13006Author: Konstantin Evdokimenko <qewerty@gmail.com>
13007Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
13008Category: graphics
13009*/
13010
13011function(hljs) {
13012 return {
13013 keywords:
13014 'ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis ' +
13015 'Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone ' +
13016 'CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail ' +
13017 'DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format ' +
13018 'FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry ' +
13019 'Hider Hyperboloid Identity Illuminate Imager Interior LightSource ' +
13020 'MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte ' +
13021 'MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option ' +
13022 'Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples ' +
13023 'PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection ' +
13024 'Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ' +
13025 'ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere ' +
13026 'SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd ' +
13027 'TransformPoints Translate TrimCurve WorldBegin WorldEnd',
13028 illegal: '</',
13029 contains: [
13030 hljs.HASH_COMMENT_MODE,
13031 hljs.C_NUMBER_MODE,
13032 hljs.APOS_STRING_MODE,
13033 hljs.QUOTE_STRING_MODE
13034 ]
13035 };
13036}
13037},{name:"roboconf",create:/*
13038Language: Roboconf
13039Author: Vincent Zurczak <vzurczak@linagora.com>
13040Website: http://roboconf.net
13041Description: Syntax highlighting for Roboconf's DSL
13042Category: config
13043*/
13044
13045function(hljs) {
13046 var IDENTIFIER = '[a-zA-Z-_][^\\n{]+\\{';
13047
13048 var PROPERTY = {
13049 className: 'attribute',
13050 begin: /[a-zA-Z-_]+/, end: /\s*:/, excludeEnd: true,
13051 starts: {
13052 end: ';',
13053 relevance: 0,
13054 contains: [
13055 {
13056 className: 'variable',
13057 begin: /\.[a-zA-Z-_]+/
13058 },
13059 {
13060 className: 'keyword',
13061 begin: /\(optional\)/
13062 }
13063 ]
13064 }
13065 };
13066
13067 return {
13068 aliases: ['graph', 'instances'],
13069 case_insensitive: true,
13070 keywords: 'import',
13071 contains: [
13072 // Facet sections
13073 {
13074 begin: '^facet ' + IDENTIFIER,
13075 end: '}',
13076 keywords: 'facet',
13077 contains: [
13078 PROPERTY,
13079 hljs.HASH_COMMENT_MODE
13080 ]
13081 },
13082
13083 // Instance sections
13084 {
13085 begin: '^\\s*instance of ' + IDENTIFIER,
13086 end: '}',
13087 keywords: 'name count channels instance-data instance-state instance of',
13088 illegal: /\S/,
13089 contains: [
13090 'self',
13091 PROPERTY,
13092 hljs.HASH_COMMENT_MODE
13093 ]
13094 },
13095
13096 // Component sections
13097 {
13098 begin: '^' + IDENTIFIER,
13099 end: '}',
13100 contains: [
13101 PROPERTY,
13102 hljs.HASH_COMMENT_MODE
13103 ]
13104 },
13105
13106 // Comments
13107 hljs.HASH_COMMENT_MODE
13108 ]
13109 };
13110}
13111},{name:"rsl",create:/*
13112Language: RenderMan RSL
13113Author: Konstantin Evdokimenko <qewerty@gmail.com>
13114Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
13115Category: graphics
13116*/
13117
13118function(hljs) {
13119 return {
13120 keywords: {
13121 keyword:
13122 'float color point normal vector matrix while for if do return else break extern continue',
13123 built_in:
13124 'abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise ' +
13125 'clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp ' +
13126 'faceforward filterstep floor format fresnel incident length lightsource log match ' +
13127 'max min mod noise normalize ntransform opposite option phong pnoise pow printf ' +
13128 'ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp ' +
13129 'setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan ' +
13130 'texture textureinfo trace transform vtransform xcomp ycomp zcomp'
13131 },
13132 illegal: '</',
13133 contains: [
13134 hljs.C_LINE_COMMENT_MODE,
13135 hljs.C_BLOCK_COMMENT_MODE,
13136 hljs.QUOTE_STRING_MODE,
13137 hljs.APOS_STRING_MODE,
13138 hljs.C_NUMBER_MODE,
13139 {
13140 className: 'meta',
13141 begin: '#', end: '$'
13142 },
13143 {
13144 className: 'class',
13145 beginKeywords: 'surface displacement light volume imager', end: '\\('
13146 },
13147 {
13148 beginKeywords: 'illuminate illuminance gather', end: '\\('
13149 }
13150 ]
13151 };
13152}
13153},{name:"ruby",create:/*
13154Language: Ruby
13155Author: Anton Kovalyov <anton@kovalyov.net>
13156Contributors: Peter Leonov <gojpeg@yandex.ru>, Vasily Polovnyov <vast@whiteants.net>, Loren Segal <lsegal@soen.ca>, Pascal Hurni <phi@ruby-reactive.org>, Cedric Sohrauer <sohrauer@googlemail.com>
13157Category: common
13158*/
13159
13160function(hljs) {
13161 var RUBY_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
13162 var RUBY_KEYWORDS =
13163 'and false then defined module in return redo if BEGIN retry end for true self when ' +
13164 'next until do begin unless END rescue nil else break undef not super class case ' +
13165 'require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor';
13166 var YARDOCTAG = {
13167 className: 'doctag',
13168 begin: '@[A-Za-z]+'
13169 };
13170 var IRB_OBJECT = {
13171 begin: '#<', end: '>'
13172 };
13173 var COMMENT_MODES = [
13174 hljs.COMMENT(
13175 '#',
13176 '$',
13177 {
13178 contains: [YARDOCTAG]
13179 }
13180 ),
13181 hljs.COMMENT(
13182 '^\\=begin',
13183 '^\\=end',
13184 {
13185 contains: [YARDOCTAG],
13186 relevance: 10
13187 }
13188 ),
13189 hljs.COMMENT('^__END__', '\\n$')
13190 ];
13191 var SUBST = {
13192 className: 'subst',
13193 begin: '#\\{', end: '}',
13194 keywords: RUBY_KEYWORDS
13195 };
13196 var STRING = {
13197 className: 'string',
13198 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
13199 variants: [
13200 {begin: /'/, end: /'/},
13201 {begin: /"/, end: /"/},
13202 {begin: /`/, end: /`/},
13203 {begin: '%[qQwWx]?\\(', end: '\\)'},
13204 {begin: '%[qQwWx]?\\[', end: '\\]'},
13205 {begin: '%[qQwWx]?{', end: '}'},
13206 {begin: '%[qQwWx]?<', end: '>'},
13207 {begin: '%[qQwWx]?/', end: '/'},
13208 {begin: '%[qQwWx]?%', end: '%'},
13209 {begin: '%[qQwWx]?-', end: '-'},
13210 {begin: '%[qQwWx]?\\|', end: '\\|'},
13211 {
13212 // \B in the beginning suppresses recognition of ?-sequences where ?
13213 // is the last character of a preceding identifier, as in: `func?4`
13214 begin: /\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/
13215 }
13216 ]
13217 };
13218 var PARAMS = {
13219 className: 'params',
13220 begin: '\\(', end: '\\)', endsParent: true,
13221 keywords: RUBY_KEYWORDS
13222 };
13223
13224 var RUBY_DEFAULT_CONTAINS = [
13225 STRING,
13226 IRB_OBJECT,
13227 {
13228 className: 'class',
13229 beginKeywords: 'class module', end: '$|;',
13230 illegal: /=/,
13231 contains: [
13232 hljs.inherit(hljs.TITLE_MODE, {begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?'}),
13233 {
13234 begin: '<\\s*',
13235 contains: [{
13236 begin: '(' + hljs.IDENT_RE + '::)?' + hljs.IDENT_RE
13237 }]
13238 }
13239 ].concat(COMMENT_MODES)
13240 },
13241 {
13242 className: 'function',
13243 beginKeywords: 'def', end: '$|;',
13244 contains: [
13245 hljs.inherit(hljs.TITLE_MODE, {begin: RUBY_METHOD_RE}),
13246 PARAMS
13247 ].concat(COMMENT_MODES)
13248 },
13249 {
13250 className: 'symbol',
13251 begin: hljs.UNDERSCORE_IDENT_RE + '(\\!|\\?)?:',
13252 relevance: 0
13253 },
13254 {
13255 className: 'symbol',
13256 begin: ':',
13257 contains: [STRING, {begin: RUBY_METHOD_RE}],
13258 relevance: 0
13259 },
13260 {
13261 className: 'number',
13262 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
13263 relevance: 0
13264 },
13265 {
13266 begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))' // variables
13267 },
13268 { // regexp container
13269 begin: '(' + hljs.RE_STARTERS_RE + ')\\s*',
13270 contains: [
13271 IRB_OBJECT,
13272 {
13273 className: 'regexp',
13274 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
13275 illegal: /\n/,
13276 variants: [
13277 {begin: '/', end: '/[a-z]*'},
13278 {begin: '%r{', end: '}[a-z]*'},
13279 {begin: '%r\\(', end: '\\)[a-z]*'},
13280 {begin: '%r!', end: '![a-z]*'},
13281 {begin: '%r\\[', end: '\\][a-z]*'}
13282 ]
13283 }
13284 ].concat(COMMENT_MODES),
13285 relevance: 0
13286 }
13287 ].concat(COMMENT_MODES);
13288
13289 SUBST.contains = RUBY_DEFAULT_CONTAINS;
13290 PARAMS.contains = RUBY_DEFAULT_CONTAINS;
13291
13292 var SIMPLE_PROMPT = "[>?]>";
13293 var DEFAULT_PROMPT = "[\\w#]+\\(\\w+\\):\\d+:\\d+>";
13294 var RVM_PROMPT = "(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>";
13295
13296 var IRB_DEFAULT = [
13297 {
13298 begin: /^\s*=>/,
13299 starts: {
13300 end: '$', contains: RUBY_DEFAULT_CONTAINS
13301 }
13302 },
13303 {
13304 className: 'meta',
13305 begin: '^('+SIMPLE_PROMPT+"|"+DEFAULT_PROMPT+'|'+RVM_PROMPT+')',
13306 starts: {
13307 end: '$', contains: RUBY_DEFAULT_CONTAINS
13308 }
13309 }
13310 ];
13311
13312 return {
13313 aliases: ['rb', 'gemspec', 'podspec', 'thor', 'irb'],
13314 keywords: RUBY_KEYWORDS,
13315 illegal: /\/\*/,
13316 contains: COMMENT_MODES.concat(IRB_DEFAULT).concat(RUBY_DEFAULT_CONTAINS)
13317 };
13318}
13319},{name:"ruleslanguage",create:/*
13320Language: Oracle Rules Language
13321Author: Jason Jacobson <jason.a.jacobson@gmail.com>
13322Description: The Oracle Utilities Rules Language is used to program the Oracle Utilities Applications acquired from LODESTAR Corporation. The products include Billing Component, LPSS, Pricing Component etc. through version 1.6.1.
13323Category: enterprise
13324*/
13325
13326function(hljs) {
13327 return {
13328 keywords: {
13329 keyword: 'BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE ' +
13330 'INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 ' +
13331 'INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 ' +
13332 'INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 ' +
13333 'INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 ' +
13334 'INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 ' +
13335 'INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 ' +
13336 'INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 ' +
13337 'INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 ' +
13338 'INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 ' +
13339 'INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 ' +
13340 'INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 ' +
13341 'INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 ' +
13342 'INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 ' +
13343 'INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 ' +
13344 'MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER ' +
13345 'OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE ' +
13346 'NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH ' +
13347 'IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND ' +
13348 'UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ' +
13349 'ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE ' +
13350 'GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE ' +
13351 'SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING ' +
13352 'DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF ' +
13353 'MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY ' +
13354 'YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE ' +
13355 'COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR ' +
13356 'READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ' +
13357 'ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE ' +
13358 'EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE ' +
13359 'SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL ' +
13360 'COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN ' +
13361 'MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING ' +
13362 'FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ' +
13363 'NUMDAYS READ_DATE STAGING',
13364 built_in: 'IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML ' +
13365 'DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT ' +
13366 'DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE ' +
13367 'DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT ' +
13368 'DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME'
13369 },
13370 contains: [
13371 hljs.C_LINE_COMMENT_MODE,
13372 hljs.C_BLOCK_COMMENT_MODE,
13373 hljs.APOS_STRING_MODE,
13374 hljs.QUOTE_STRING_MODE,
13375 hljs.C_NUMBER_MODE,
13376 {
13377 className: 'literal',
13378 variants: [
13379 {begin: '#\\s+[a-zA-Z\\ \\.]*', relevance: 0}, // looks like #-comment
13380 {begin: '#[a-zA-Z\\ \\.]+'}
13381 ]
13382 }
13383 ]
13384 };
13385}
13386},{name:"rust",create:/*
13387Language: Rust
13388Author: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
13389Contributors: Roman Shmatov <romanshmatov@gmail.com>
13390Category: system
13391*/
13392
13393function(hljs) {
13394 var NUM_SUFFIX = '([uif](8|16|32|64|size))\?';
13395 var BLOCK_COMMENT = hljs.inherit(hljs.C_BLOCK_COMMENT_MODE);
13396 BLOCK_COMMENT.contains.push('self');
13397 var BUILTINS =
13398 // prelude
13399 'Copy Send Sized Sync Drop Fn FnMut FnOnce drop Box ToOwned Clone ' +
13400 'PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator ' +
13401 'Extend IntoIterator DoubleEndedIterator ExactSizeIterator Option ' +
13402 'Some None Result Ok Err SliceConcatExt String ToString Vec ' +
13403 // macros
13404 'assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! ' +
13405 'debug_assert! debug_assert_eq! env! panic! file! format! format_args! ' +
13406 'include_bin! include_str! line! local_data_key! module_path! ' +
13407 'option_env! print! println! select! stringify! try! unimplemented! ' +
13408 'unreachable! vec! write! writeln!';
13409 return {
13410 aliases: ['rs'],
13411 keywords: {
13412 keyword:
13413 'alignof as be box break const continue crate do else enum extern ' +
13414 'false fn for if impl in let loop match mod mut offsetof once priv ' +
13415 'proc pub pure ref return self Self sizeof static struct super trait true ' +
13416 'type typeof unsafe unsized use virtual while where yield ' +
13417 'int i8 i16 i32 i64 ' +
13418 'uint u8 u32 u64 ' +
13419 'float f32 f64 ' +
13420 'str char bool',
13421 literal:
13422 'true false',
13423 built_in:
13424 BUILTINS
13425 },
13426 lexemes: hljs.IDENT_RE + '!?',
13427 illegal: '</',
13428 contains: [
13429 hljs.C_LINE_COMMENT_MODE,
13430 BLOCK_COMMENT,
13431 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
13432 {
13433 className: 'string',
13434 variants: [
13435 { begin: /r(#*)".*?"\1(?!#)/ },
13436 { begin: /'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/ },
13437 ]
13438 },
13439 {
13440 className: 'symbol',
13441 begin: /'[a-zA-Z_][a-zA-Z0-9_]*/
13442 },
13443 {
13444 className: 'number',
13445 variants: [
13446 { begin: '\\b0b([01_]+)' + NUM_SUFFIX },
13447 { begin: '\\b0o([0-7_]+)' + NUM_SUFFIX },
13448 { begin: '\\b0x([A-Fa-f0-9_]+)' + NUM_SUFFIX },
13449 { begin: '\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)' +
13450 NUM_SUFFIX
13451 }
13452 ],
13453 relevance: 0
13454 },
13455 {
13456 className: 'function',
13457 beginKeywords: 'fn', end: '(\\(|<)', excludeEnd: true,
13458 contains: [hljs.UNDERSCORE_TITLE_MODE]
13459 },
13460 {
13461 className: 'meta',
13462 begin: '#\\!?\\[', end: '\\]'
13463 },
13464 {
13465 className: 'class',
13466 beginKeywords: 'type', end: '(=|<)',
13467 contains: [hljs.UNDERSCORE_TITLE_MODE],
13468 illegal: '\\S'
13469 },
13470 {
13471 className: 'class',
13472 beginKeywords: 'trait enum', end: '{',
13473 contains: [
13474 hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, {endsParent: true})
13475 ],
13476 illegal: '[\\w\\d]'
13477 },
13478 {
13479 begin: hljs.IDENT_RE + '::',
13480 keywords: {built_in: BUILTINS}
13481 },
13482 {
13483 begin: '->'
13484 }
13485 ]
13486 };
13487}
13488},{name:"scala",create:/*
13489Language: Scala
13490Category: functional
13491Author: Jan Berkel <jan.berkel@gmail.com>
13492Contributors: Erik Osheim <d_m@plastic-idolatry.com>
13493*/
13494
13495function(hljs) {
13496
13497 var ANNOTATION = { className: 'meta', begin: '@[A-Za-z]+' };
13498
13499 // used in strings for escaping/interpolation/substitution
13500 var SUBST = {
13501 className: 'subst',
13502 variants: [
13503 {begin: '\\$[A-Za-z0-9_]+'},
13504 {begin: '\\${', end: '}'}
13505 ]
13506 };
13507
13508 var STRING = {
13509 className: 'string',
13510 variants: [
13511 {
13512 begin: '"', end: '"',
13513 illegal: '\\n',
13514 contains: [hljs.BACKSLASH_ESCAPE]
13515 },
13516 {
13517 begin: '"""', end: '"""',
13518 relevance: 10
13519 },
13520 {
13521 begin: '[a-z]+"', end: '"',
13522 illegal: '\\n',
13523 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
13524 },
13525 {
13526 className: 'string',
13527 begin: '[a-z]+"""', end: '"""',
13528 contains: [SUBST],
13529 relevance: 10
13530 }
13531 ]
13532
13533 };
13534
13535 var SYMBOL = {
13536 className: 'symbol',
13537 begin: '\'\\w[\\w\\d_]*(?!\')'
13538 };
13539
13540 var TYPE = {
13541 className: 'type',
13542 begin: '\\b[A-Z][A-Za-z0-9_]*',
13543 relevance: 0
13544 };
13545
13546 var NAME = {
13547 className: 'title',
13548 begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,
13549 relevance: 0
13550 };
13551
13552 var CLASS = {
13553 className: 'class',
13554 beginKeywords: 'class object trait type',
13555 end: /[:={\[\n;]/,
13556 excludeEnd: true,
13557 contains: [
13558 {
13559 beginKeywords: 'extends with',
13560 relevance: 10
13561 },
13562 {
13563 begin: /\[/,
13564 end: /\]/,
13565 excludeBegin: true,
13566 excludeEnd: true,
13567 relevance: 0,
13568 contains: [TYPE]
13569 },
13570 {
13571 className: 'params',
13572 begin: /\(/,
13573 end: /\)/,
13574 excludeBegin: true,
13575 excludeEnd: true,
13576 relevance: 0,
13577 contains: [TYPE]
13578 },
13579 NAME
13580 ]
13581 };
13582
13583 var METHOD = {
13584 className: 'function',
13585 beginKeywords: 'def',
13586 end: /[:={\[(\n;]/,
13587 excludeEnd: true,
13588 contains: [NAME]
13589 };
13590
13591 return {
13592 keywords: {
13593 literal: 'true false null',
13594 keyword: 'type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit'
13595 },
13596 contains: [
13597 hljs.C_LINE_COMMENT_MODE,
13598 hljs.C_BLOCK_COMMENT_MODE,
13599 STRING,
13600 SYMBOL,
13601 TYPE,
13602 METHOD,
13603 CLASS,
13604 hljs.C_NUMBER_MODE,
13605 ANNOTATION
13606 ]
13607 };
13608}
13609},{name:"scheme",create:/*
13610Language: Scheme
13611Description: Keywords based on http://community.schemewiki.org/?scheme-keywords
13612Author: JP Verkamp <me@jverkamp.com>
13613Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
13614Origin: clojure.js
13615Category: lisp
13616*/
13617
13618function(hljs) {
13619 var SCHEME_IDENT_RE = '[^\\(\\)\\[\\]\\{\\}",\'`;#|\\\\\\s]+';
13620 var SCHEME_SIMPLE_NUMBER_RE = '(\\-|\\+)?\\d+([./]\\d+)?';
13621 var SCHEME_COMPLEX_NUMBER_RE = SCHEME_SIMPLE_NUMBER_RE + '[+\\-]' + SCHEME_SIMPLE_NUMBER_RE + 'i';
13622 var BUILTINS = {
13623 'builtin-name':
13624 'case-lambda call/cc class define-class exit-handler field import ' +
13625 'inherit init-field interface let*-values let-values let/ec mixin ' +
13626 'opt-lambda override protect provide public rename require ' +
13627 'require-for-syntax syntax syntax-case syntax-error unit/sig unless ' +
13628 'when with-syntax and begin call-with-current-continuation ' +
13629 'call-with-input-file call-with-output-file case cond define ' +
13630 'define-syntax delay do dynamic-wind else for-each if lambda let let* ' +
13631 'let-syntax letrec letrec-syntax map or syntax-rules \' * + , ,@ - ... / ' +
13632 '; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan ' +
13633 'boolean? caar cadr call-with-input-file call-with-output-file ' +
13634 'call-with-values car cdddar cddddr cdr ceiling char->integer ' +
13635 'char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? ' +
13636 'char-downcase char-lower-case? char-numeric? char-ready? char-upcase ' +
13637 'char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? ' +
13638 'char? close-input-port close-output-port complex? cons cos ' +
13639 'current-input-port current-output-port denominator display eof-object? ' +
13640 'eq? equal? eqv? eval even? exact->inexact exact? exp expt floor ' +
13641 'force gcd imag-part inexact->exact inexact? input-port? integer->char ' +
13642 'integer? interaction-environment lcm length list list->string ' +
13643 'list->vector list-ref list-tail list? load log magnitude make-polar ' +
13644 'make-rectangular make-string make-vector max member memq memv min ' +
13645 'modulo negative? newline not null-environment null? number->string ' +
13646 'number? numerator odd? open-input-file open-output-file output-port? ' +
13647 'pair? peek-char port? positive? procedure? quasiquote quote quotient ' +
13648 'rational? rationalize read read-char real-part real? remainder reverse ' +
13649 'round scheme-report-environment set! set-car! set-cdr! sin sqrt string ' +
13650 'string->list string->number string->symbol string-append string-ci<=? ' +
13651 'string-ci<? string-ci=? string-ci>=? string-ci>? string-copy ' +
13652 'string-fill! string-length string-ref string-set! string<=? string<? ' +
13653 'string=? string>=? string>? string? substring symbol->string symbol? ' +
13654 'tan transcript-off transcript-on truncate values vector ' +
13655 'vector->list vector-fill! vector-length vector-ref vector-set! ' +
13656 'with-input-from-file with-output-to-file write write-char zero?'
13657 };
13658
13659 var SHEBANG = {
13660 className: 'meta',
13661 begin: '^#!',
13662 end: '$'
13663 };
13664
13665 var LITERAL = {
13666 className: 'literal',
13667 begin: '(#t|#f|#\\\\' + SCHEME_IDENT_RE + '|#\\\\.)'
13668 };
13669
13670 var NUMBER = {
13671 className: 'number',
13672 variants: [
13673 { begin: SCHEME_SIMPLE_NUMBER_RE, relevance: 0 },
13674 { begin: SCHEME_COMPLEX_NUMBER_RE, relevance: 0 },
13675 { begin: '#b[0-1]+(/[0-1]+)?' },
13676 { begin: '#o[0-7]+(/[0-7]+)?' },
13677 { begin: '#x[0-9a-f]+(/[0-9a-f]+)?' }
13678 ]
13679 };
13680
13681 var STRING = hljs.QUOTE_STRING_MODE;
13682
13683 var REGULAR_EXPRESSION = {
13684 className: 'regexp',
13685 begin: '#[pr]x"',
13686 end: '[^\\\\]"'
13687 };
13688
13689 var COMMENT_MODES = [
13690 hljs.COMMENT(
13691 ';',
13692 '$',
13693 {
13694 relevance: 0
13695 }
13696 ),
13697 hljs.COMMENT('#\\|', '\\|#')
13698 ];
13699
13700 var IDENT = {
13701 begin: SCHEME_IDENT_RE,
13702 relevance: 0
13703 };
13704
13705 var QUOTED_IDENT = {
13706 className: 'symbol',
13707 begin: '\'' + SCHEME_IDENT_RE
13708 };
13709
13710 var BODY = {
13711 endsWithParent: true,
13712 relevance: 0
13713 };
13714
13715 var LIST = {
13716 variants: [
13717 { begin: '\\(', end: '\\)' },
13718 { begin: '\\[', end: '\\]' }
13719 ],
13720 contains: [
13721 {
13722 className: 'name',
13723 begin: SCHEME_IDENT_RE,
13724 lexemes: SCHEME_IDENT_RE,
13725 keywords: BUILTINS
13726 },
13727 BODY
13728 ]
13729 };
13730
13731 BODY.contains = [LITERAL, NUMBER, STRING, IDENT, QUOTED_IDENT, LIST].concat(COMMENT_MODES);
13732
13733 return {
13734 illegal: /\S/,
13735 contains: [SHEBANG, NUMBER, STRING, QUOTED_IDENT, LIST].concat(COMMENT_MODES)
13736 };
13737}
13738},{name:"scilab",create:/*
13739Language: Scilab
13740Author: Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com>
13741Origin: matlab.js
13742Description: Scilab is a port from Matlab
13743Category: scientific
13744*/
13745
13746function(hljs) {
13747
13748 var COMMON_CONTAINS = [
13749 hljs.C_NUMBER_MODE,
13750 {
13751 className: 'string',
13752 begin: '\'|\"', end: '\'|\"',
13753 contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
13754 }
13755 ];
13756
13757 return {
13758 aliases: ['sci'],
13759 lexemes: /%?\w+/,
13760 keywords: {
13761 keyword: 'abort break case clear catch continue do elseif else endfunction end for function '+
13762 'global if pause return resume select try then while',
13763 literal:
13764 '%f %F %t %T %pi %eps %inf %nan %e %i %z %s',
13765 built_in: // Scilab has more than 2000 functions. Just list the most commons
13766 'abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error '+
13767 'exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty '+
13768 'isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log '+
13769 'max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real '+
13770 'round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan '+
13771 'type typename warning zeros matrix'
13772 },
13773 illegal: '("|#|/\\*|\\s+/\\w+)',
13774 contains: [
13775 {
13776 className: 'function',
13777 beginKeywords: 'function', end: '$',
13778 contains: [
13779 hljs.UNDERSCORE_TITLE_MODE,
13780 {
13781 className: 'params',
13782 begin: '\\(', end: '\\)'
13783 }
13784 ]
13785 },
13786 {
13787 begin: '[a-zA-Z_][a-zA-Z_0-9]*(\'+[\\.\']*|[\\.\']+)', end: '',
13788 relevance: 0
13789 },
13790 {
13791 begin: '\\[', end: '\\]\'*[\\.\']*',
13792 relevance: 0,
13793 contains: COMMON_CONTAINS
13794 },
13795 hljs.COMMENT('//', '$')
13796 ].concat(COMMON_CONTAINS)
13797 };
13798}
13799},{name:"scss",create:/*
13800Language: SCSS
13801Author: Kurt Emch <kurt@kurtemch.com>
13802Category: css
13803*/
13804function(hljs) {
13805 var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
13806 var VARIABLE = {
13807 className: 'variable',
13808 begin: '(\\$' + IDENT_RE + ')\\b'
13809 };
13810 var HEXCOLOR = {
13811 className: 'number', begin: '#[0-9A-Fa-f]+'
13812 };
13813 var DEF_INTERNALS = {
13814 className: 'attribute',
13815 begin: '[A-Z\\_\\.\\-]+', end: ':',
13816 excludeEnd: true,
13817 illegal: '[^\\s]',
13818 starts: {
13819 endsWithParent: true, excludeEnd: true,
13820 contains: [
13821 HEXCOLOR,
13822 hljs.CSS_NUMBER_MODE,
13823 hljs.QUOTE_STRING_MODE,
13824 hljs.APOS_STRING_MODE,
13825 hljs.C_BLOCK_COMMENT_MODE,
13826 {
13827 className: 'meta', begin: '!important'
13828 }
13829 ]
13830 }
13831 };
13832 return {
13833 case_insensitive: true,
13834 illegal: '[=/|\']',
13835 contains: [
13836 hljs.C_LINE_COMMENT_MODE,
13837 hljs.C_BLOCK_COMMENT_MODE,
13838 {
13839 className: 'selector-id', begin: '\\#[A-Za-z0-9_-]+',
13840 relevance: 0
13841 },
13842 {
13843 className: 'selector-class', begin: '\\.[A-Za-z0-9_-]+',
13844 relevance: 0
13845 },
13846 {
13847 className: 'selector-attr', begin: '\\[', end: '\\]',
13848 illegal: '$'
13849 },
13850 {
13851 className: 'selector-tag', // begin: IDENT_RE, end: '[,|\\s]'
13852 begin: '\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b',
13853 relevance: 0
13854 },
13855 {
13856 begin: ':(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)'
13857 },
13858 {
13859 begin: '::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)'
13860 },
13861 VARIABLE,
13862 {
13863 className: 'attribute',
13864 begin: '\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b',
13865 illegal: '[^\\s]'
13866 },
13867 {
13868 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'
13869 },
13870 {
13871 begin: ':', end: ';',
13872 contains: [
13873 VARIABLE,
13874 HEXCOLOR,
13875 hljs.CSS_NUMBER_MODE,
13876 hljs.QUOTE_STRING_MODE,
13877 hljs.APOS_STRING_MODE,
13878 {
13879 className: 'meta', begin: '!important'
13880 }
13881 ]
13882 },
13883 {
13884 begin: '@', end: '[{;]',
13885 keywords: 'mixin include extend for if else each while charset import debug media page content font-face namespace warn',
13886 contains: [
13887 VARIABLE,
13888 hljs.QUOTE_STRING_MODE,
13889 hljs.APOS_STRING_MODE,
13890 HEXCOLOR,
13891 hljs.CSS_NUMBER_MODE,
13892 {
13893 begin: '\\s[A-Za-z0-9_.-]+',
13894 relevance: 0
13895 }
13896 ]
13897 }
13898 ]
13899 };
13900}
13901},{name:"smali",create:/*
13902Language: Smali
13903Author: Dennis Titze <dennis.titze@gmail.com>
13904Description: Basic Smali highlighting
13905*/
13906
13907function(hljs) {
13908 var smali_instr_low_prio = ['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'];
13909 var smali_instr_high_prio = ['aget', 'aput', 'array', 'check', 'execute', 'fill', 'filled', 'goto/16', 'goto/32', 'iget', 'instance', 'invoke', 'iput', 'monitor', 'packed', 'sget', 'sparse'];
13910 var smali_keywords = ['transient', 'constructor', 'abstract', 'final', 'synthetic', 'public', 'private', 'protected', 'static', 'bridge', 'system'];
13911 return {
13912 aliases: ['smali'],
13913 contains: [
13914 {
13915 className: 'string',
13916 begin: '"', end: '"',
13917 relevance: 0
13918 },
13919 hljs.COMMENT(
13920 '#',
13921 '$',
13922 {
13923 relevance: 0
13924 }
13925 ),
13926 {
13927 className: 'keyword',
13928 variants: [
13929 {begin: '\\s*\\.end\\s[a-zA-Z0-9]*'},
13930 {begin: '^[ ]*\\.[a-zA-Z]*', relevance: 0},
13931 {begin: '\\s:[a-zA-Z_0-9]*', relevance: 0},
13932 {begin: '\\s(' + smali_keywords.join('|') + ')'}
13933 ]
13934 },
13935 {
13936 className: 'built_in',
13937 variants : [
13938 {
13939 begin: '\\s('+smali_instr_low_prio.join('|')+')\\s'
13940 },
13941 {
13942 begin: '\\s('+smali_instr_low_prio.join('|')+')((\\-|/)[a-zA-Z0-9]+)+\\s',
13943 relevance: 10
13944 },
13945 {
13946 begin: '\\s('+smali_instr_high_prio.join('|')+')((\\-|/)[a-zA-Z0-9]+)*\\s',
13947 relevance: 10
13948 },
13949 ]
13950 },
13951 {
13952 className: 'class',
13953 begin: 'L[^\(;:\n]*;',
13954 relevance: 0
13955 },
13956 {
13957 begin: '[vp][0-9]+',
13958 }
13959 ]
13960 };
13961}
13962},{name:"smalltalk",create:/*
13963Language: Smalltalk
13964Author: Vladimir Gubarkov <xonixx@gmail.com>
13965*/
13966
13967function(hljs) {
13968 var VAR_IDENT_RE = '[a-z][a-zA-Z0-9_]*';
13969 var CHAR = {
13970 className: 'string',
13971 begin: '\\$.{1}'
13972 };
13973 var SYMBOL = {
13974 className: 'symbol',
13975 begin: '#' + hljs.UNDERSCORE_IDENT_RE
13976 };
13977 return {
13978 aliases: ['st'],
13979 keywords: 'self super nil true false thisContext', // only 6
13980 contains: [
13981 hljs.COMMENT('"', '"'),
13982 hljs.APOS_STRING_MODE,
13983 {
13984 className: 'type',
13985 begin: '\\b[A-Z][A-Za-z0-9_]*',
13986 relevance: 0
13987 },
13988 {
13989 begin: VAR_IDENT_RE + ':',
13990 relevance: 0
13991 },
13992 hljs.C_NUMBER_MODE,
13993 SYMBOL,
13994 CHAR,
13995 {
13996 // This looks more complicated than needed to avoid combinatorial
13997 // explosion under V8. It effectively means `| var1 var2 ... |` with
13998 // whitespace adjacent to `|` being optional.
13999 begin: '\\|[ ]*' + VAR_IDENT_RE + '([ ]+' + VAR_IDENT_RE + ')*[ ]*\\|',
14000 returnBegin: true, end: /\|/,
14001 illegal: /\S/,
14002 contains: [{begin: '(\\|[ ]*)?' + VAR_IDENT_RE}]
14003 },
14004 {
14005 begin: '\\#\\(', end: '\\)',
14006 contains: [
14007 hljs.APOS_STRING_MODE,
14008 CHAR,
14009 hljs.C_NUMBER_MODE,
14010 SYMBOL
14011 ]
14012 }
14013 ]
14014 };
14015}
14016},{name:"sml",create:/*
14017Language: SML
14018Author: Edwin Dalorzo <edwin@dalorzo.org>
14019Description: SML language definition.
14020Origin: ocaml.js
14021Category: functional
14022*/
14023function(hljs) {
14024 return {
14025 aliases: ['ml'],
14026 keywords: {
14027 keyword:
14028 /* according to Definition of Standard ML 97 */
14029 'abstype and andalso as case datatype do else end eqtype ' +
14030 'exception fn fun functor handle if in include infix infixr ' +
14031 'let local nonfix of op open orelse raise rec sharing sig ' +
14032 'signature struct structure then type val with withtype where while',
14033 built_in:
14034 /* built-in types according to basis library */
14035 'array bool char exn int list option order real ref string substring vector unit word',
14036 literal:
14037 'true false NONE SOME LESS EQUAL GREATER nil'
14038 },
14039 illegal: /\/\/|>>/,
14040 lexemes: '[a-z_]\\w*!?',
14041 contains: [
14042 {
14043 className: 'literal',
14044 begin: '\\[(\\|\\|)?\\]|\\(\\)'
14045 },
14046 hljs.COMMENT(
14047 '\\(\\*',
14048 '\\*\\)',
14049 {
14050 contains: ['self']
14051 }
14052 ),
14053 { /* type variable */
14054 className: 'symbol',
14055 begin: '\'[A-Za-z_](?!\')[\\w\']*'
14056 /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */
14057 },
14058 { /* polymorphic variant */
14059 className: 'type',
14060 begin: '`[A-Z][\\w\']*'
14061 },
14062 { /* module or constructor */
14063 className: 'type',
14064 begin: '\\b[A-Z][\\w\']*',
14065 relevance: 0
14066 },
14067 { /* don't color identifiers, but safely catch all identifiers with '*/
14068 begin: '[a-z_]\\w*\'[\\w\']*'
14069 },
14070 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
14071 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
14072 {
14073 className: 'number',
14074 begin:
14075 '\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +
14076 '0[oO][0-7_]+[Lln]?|' +
14077 '0[bB][01_]+[Lln]?|' +
14078 '[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',
14079 relevance: 0
14080 },
14081 {
14082 begin: /[-=]>/ // relevance booster
14083 }
14084 ]
14085 };
14086}
14087},{name:"sqf",create:/*
14088Language: SQF
14089Author: Sรธren Enevoldsen <senevoldsen90@gmail.com>
14090Description: Scripting language for the Arma game series
14091*/
14092
14093function(hljs) {
14094 var allCommands = ['!', '-', '+', '!=', '%', '&&', '*', '/', '=', '==', '>', '>=', '<', '<=', 'or', 'plus', '^', ':', '>>', 'abs', 'accTime', 'acos', 'action', 'actionKeys', 'actionKeysImages', 'actionKeysNames', 'actionKeysNamesArray', 'actionName', 'activateAddons', 'activatedAddons', 'activateKey', 'addAction', 'addBackpack', 'addBackpackCargo', 'addBackpackCargoGlobal', 'addBackpackGlobal', 'addCamShake', 'addCuratorAddons', 'addCuratorCameraArea', 'addCuratorEditableObjects', 'addCuratorEditingArea', 'addCuratorPoints', 'addEditorObject', 'addEventHandler', 'addGoggles', 'addGroupIcon', 'addHandgunItem', 'addHeadgear', 'addItem', 'addItemCargo', 'addItemCargoGlobal', 'addItemPool', 'addItemToBackpack', 'addItemToUniform', 'addItemToVest', 'addLiveStats', 'addMagazine', 'addMagazine array', 'addMagazineAmmoCargo', 'addMagazineCargo', 'addMagazineCargoGlobal', 'addMagazineGlobal', 'addMagazinePool', 'addMagazines', 'addMagazineTurret', 'addMenu', 'addMenuItem', 'addMissionEventHandler', 'addMPEventHandler', 'addMusicEventHandler', 'addPrimaryWeaponItem', 'addPublicVariableEventHandler', 'addRating', 'addResources', 'addScore', 'addScoreSide', 'addSecondaryWeaponItem', 'addSwitchableUnit', 'addTeamMember', 'addToRemainsCollector', 'addUniform', 'addVehicle', 'addVest', 'addWaypoint', 'addWeapon', 'addWeaponCargo', 'addWeaponCargoGlobal', 'addWeaponGlobal', 'addWeaponPool', 'addWeaponTurret', 'agent', 'agents', 'AGLToASL', 'aimedAtTarget', 'aimPos', 'airDensityRTD', 'airportSide', 'AISFinishHeal', 'alive', 'allControls', 'allCurators', 'allDead', 'allDeadMen', 'allDisplays', 'allGroups', 'allMapMarkers', 'allMines', 'allMissionObjects', 'allow3DMode', 'allowCrewInImmobile', 'allowCuratorLogicIgnoreAreas', 'allowDamage', 'allowDammage', 'allowFileOperations', 'allowFleeing', 'allowGetIn', 'allPlayers', 'allSites', 'allTurrets', 'allUnits', 'allUnitsUAV', 'allVariables', 'ammo', 'and', 'animate', 'animateDoor', 'animationPhase', 'animationState', 'append', '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', 'behaviour', 'benchmark', 'binocular', 'blufor', 'boundingBox', 'boundingBoxReal', 'boundingCenter', 'breakOut', 'breakTo', 'briefingName', 'buildingExit', 'buildingPos', 'buttonAction', 'buttonSetAction', 'cadetMode', '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', 'canUnloadInCombat', 'captive', 'captiveNum', 'case', 'catch', 'cbChecked', 'cbSetChecked', 'ceil', 'cheatsEnabled', 'checkAIFeature', 'civilian', 'className', 'clearAllItemsFromBackpack', 'clearBackpackCargo', 'clearBackpackCargoGlobal', 'clearGroupIcons', 'clearItemCargo', 'clearItemCargoGlobal', 'clearItemPool', 'clearMagazineCargo', 'clearMagazineCargoGlobal', 'clearMagazinePool', 'clearOverlay', 'clearRadio', 'clearWeaponCargo', 'clearWeaponCargoGlobal', 'clearWeaponPool', 'closeDialog', 'closeDisplay', 'closeOverlay', 'collapseObjectTree', 'combatMode', 'commandArtilleryFire', 'commandChat', 'commander', 'commandFire', 'commandFollow', 'commandFSM', 'commandGetOut', 'commandingMenu', 'commandMove', 'commandRadio', 'commandStop', 'commandTarget', 'commandWatch', 'comment', 'commitOverlay', 'compile', 'compileFinal', 'completedFSM', 'composeText', 'configClasses', 'configFile', 'configHierarchy', 'configName', 'configProperties', 'configSourceMod', 'configSourceModList', 'connectTerminalToUAV', 'controlNull', 'controlsGroupCtrl', 'copyFromClipboard', 'copyToClipboard', 'copyWaypoints', 'cos', 'count', 'countEnemy', 'countFriendly', 'countSide', 'countType', 'countUnknown', 'createAgent', 'createCenter', 'createDialog', 'createDiaryLink', 'createDiaryRecord', 'createDiarySubject', 'createDisplay', 'createGearDialog', 'createGroup', 'createGuardedPoint', 'createLocation', 'createMarker', 'createMarkerLocal', 'createMenu', 'createMine', 'createMissionDisplay', 'createSimpleTask', 'createSite', 'createSoundSource', 'createTask', 'createTeam', 'createTrigger', 'createUnit', 'createUnit array', 'createVehicle', 'createVehicle array', 'createVehicleCrew', 'createVehicleLocal', 'crew', 'ctrlActivate', 'ctrlAddEventHandler', 'ctrlAutoScrollDelay', 'ctrlAutoScrollRewind', 'ctrlAutoScrollSpeed', 'ctrlChecked', 'ctrlClassName', 'ctrlCommit', 'ctrlCommitted', 'ctrlCreate', 'ctrlDelete', 'ctrlEnable', 'ctrlEnabled', 'ctrlFade', 'ctrlHTMLLoaded', 'ctrlIDC', 'ctrlIDD', 'ctrlMapAnimAdd', 'ctrlMapAnimClear', 'ctrlMapAnimCommit', 'ctrlMapAnimDone', 'ctrlMapCursor', 'ctrlMapMouseOver', 'ctrlMapScale', 'ctrlMapScreenToWorld', 'ctrlMapWorldToScreen', 'ctrlModel', 'ctrlModelDirAndUp', 'ctrlModelScale', 'ctrlParent', 'ctrlPosition', 'ctrlRemoveAllEventHandlers', 'ctrlRemoveEventHandler', 'ctrlScale', 'ctrlSetActiveColor', 'ctrlSetAutoScrollDelay', 'ctrlSetAutoScrollRewind', 'ctrlSetAutoScrollSpeed', 'ctrlSetBackgroundColor', 'ctrlSetChecked', 'ctrlSetEventHandler', 'ctrlSetFade', 'ctrlSetFocus', 'ctrlSetFont', 'ctrlSetFontH1', 'ctrlSetFontH1B', 'ctrlSetFontH2', 'ctrlSetFontH2B', 'ctrlSetFontH3', 'ctrlSetFontH3B', 'ctrlSetFontH4', 'ctrlSetFontH4B', 'ctrlSetFontH5', 'ctrlSetFontH5B', 'ctrlSetFontH6', 'ctrlSetFontH6B', 'ctrlSetFontHeight', 'ctrlSetFontHeightH1', 'ctrlSetFontHeightH2', 'ctrlSetFontHeightH3', 'ctrlSetFontHeightH4', 'ctrlSetFontHeightH5', 'ctrlSetFontHeightH6', 'ctrlSetFontP', 'ctrlSetFontPB', 'ctrlSetForegroundColor', 'ctrlSetModel', 'ctrlSetModelDirAndUp', 'ctrlSetModelScale', 'ctrlSetPosition', 'ctrlSetScale', 'ctrlSetStructuredText', 'ctrlSetText', 'ctrlSetTextColor', 'ctrlSetTooltip', 'ctrlSetTooltipColorBox', 'ctrlSetTooltipColorShade', 'ctrlSetTooltipColorText', 'ctrlShow', 'ctrlShown', 'ctrlText', 'ctrlTextHeight', 'ctrlType', 'ctrlVisible', 'curatorAddons', 'curatorCamera', 'curatorCameraArea', 'curatorCameraAreaCeiling', 'curatorCoef', 'curatorEditableObjects', 'curatorEditingArea', 'curatorEditingAreaType', 'curatorMouseOver', 'curatorPoints', 'curatorRegisteredObjects', 'curatorSelected', 'curatorWaypointCost', 'currentChannel', 'currentCommand', 'currentMagazine', 'currentMagazineDetail', 'currentMagazineDetailTurret', 'currentMagazineTurret', 'currentMuzzle', 'currentNamespace', 'currentTask', 'currentTasks', 'currentThrowable', 'currentVisionMode', 'currentWaypoint', 'currentWeapon', 'currentWeaponMode', 'currentWeaponTurret', 'currentZeroing', 'cursorTarget', 'customChat', 'customRadio', 'cutFadeOut', 'cutObj', 'cutRsc', 'cutText', 'damage', 'date', 'dateToNumber', 'daytime', 'deActivateKey', 'debriefingText', 'debugFSM', 'debugLog', 'default', 'deg', 'deleteAt', 'deleteCenter', 'deleteCollection', 'deleteEditorObject', 'deleteGroup', 'deleteIdentity', 'deleteLocation', 'deleteMarker', 'deleteMarkerLocal', 'deleteRange', 'deleteResources', 'deleteSite', 'deleteStatus', 'deleteTeam', 'deleteVehicle', 'deleteVehicleCrew', 'deleteWaypoint', 'detach', 'detectedMines', 'diag activeMissionFSMs', 'diag activeSQFScripts', 'diag activeSQSScripts', 'diag captureFrame', 'diag captureSlowFrame', 'diag fps', 'diag fpsMin', 'diag frameNo', 'diag log', 'diag logSlowFrame', 'diag tickTime', 'dialog', 'diarySubjectExists', 'didJIP', 'didJIPOwner', 'difficulty', 'difficultyEnabled', 'difficultyEnabledRTD', 'direction', 'directSay', 'disableAI', 'disableCollisionWith', 'disableConversation', 'disableDebriefingStats', 'disableSerialization', 'disableTIEquipment', 'disableUAVConnectability', 'disableUserInput', 'displayAddEventHandler', 'displayCtrl', 'displayNull', 'displayRemoveAllEventHandlers', 'displayRemoveEventHandler', 'displaySetEventHandler', 'dissolveTeam', 'distance', 'distance2D', 'distanceSqr', 'distributionRegion', 'do', 'doArtilleryFire', 'doFire', 'doFollow', 'doFSM', 'doGetOut', 'doMove', 'doorPhase', 'doStop', 'doTarget', 'doWatch', 'drawArrow', 'drawEllipse', 'drawIcon', 'drawIcon3D', 'drawLine', 'drawLine3D', 'drawLink', 'drawLocation', 'drawRectangle', 'driver', 'drop', 'east', 'echo', 'editObject', 'editorSetEventHandler', 'effectiveCommander', 'else', 'emptyPositions', 'enableAI', 'enableAIFeature', 'enableAttack', 'enableCamShake', 'enableCaustics', 'enableCollisionWith', 'enableCopilot', 'enableDebriefingStats', 'enableDiagLegend', 'enableEndDialog', 'enableEngineArtillery', 'enableEnvironment', 'enableFatigue', 'enableGunLights', 'enableIRLasers', 'enableMimics', 'enablePersonTurret', 'enableRadio', 'enableReload', 'enableRopeAttach', 'enableSatNormalOnDetail', 'enableSaving', 'enableSentences', 'enableSimulation', 'enableSimulationGlobal', 'enableTeamSwitch', 'enableUAVConnectability', 'enableUAVWaypoints', 'endLoadingScreen', 'endMission', 'engineOn', 'enginesIsOnRTD', 'enginesRpmRTD', 'enginesTorqueRTD', 'entities', 'estimatedEndServerTime', 'estimatedTimeLeft', 'evalObjectArgument', 'everyBackpack', 'everyContainer', 'exec', 'execEditorScript', 'execFSM', 'execVM', 'exit', 'exitWith', 'exp', 'expectedDestination', 'eyeDirection', 'eyePos', 'face', 'faction', 'fadeMusic', 'fadeRadio', 'fadeSound', 'fadeSpeech', 'failMission', 'false', 'fillWeaponsFromPool', 'find', 'findCover', 'findDisplay', 'findEditorObject', 'findEmptyPosition', 'findEmptyPositionReady', 'findNearestEnemy', 'finishMissionInit', 'finite', 'fire', 'fireAtTarget', 'firstBackpack', 'flag', 'flagOwner', 'fleeing', 'floor', 'flyInHeight', 'fog', 'fogForecast', 'fogParams', 'for', 'forceAddUniform', 'forceEnd', 'forceMap', 'forceRespawn', 'forceSpeed', 'forceWalk', 'forceWeaponFire', 'forceWeatherChange', 'forEach', 'forEachMember', 'forEachMemberAgent', 'forEachMemberTeam', 'format', 'formation', 'formationDirection', 'formationLeader', 'formationMembers', 'formationPosition', 'formationTask', 'formatText', 'formLeader', 'freeLook', 'from', 'fromEditor', 'fuel', 'fullCrew', 'gearSlotAmmoCount', 'gearSlotData', 'getAllHitPointsDamage', 'getAmmoCargo', 'getArray', 'getArtilleryAmmo', 'getArtilleryComputerSettings', 'getArtilleryETA', 'getAssignedCuratorLogic', 'getAssignedCuratorUnit', 'getBackpackCargo', 'getBleedingRemaining', 'getBurningValue', 'getCargoIndex', 'getCenterOfMass', 'getClientState', 'getConnectedUAV', 'getDammage', 'getDescription', 'getDir', 'getDirVisual', 'getDLCs', 'getEditorCamera', 'getEditorMode', 'getEditorObjectScope', 'getElevationOffset', 'getFatigue', 'getFriend', 'getFSMVariable', 'getFuelCargo', 'getGroupIcon', 'getGroupIconParams', 'getGroupIcons', 'getHideFrom', 'getHit', 'getHitIndex', 'getHitPointDamage', 'getItemCargo', 'getMagazineCargo', 'getMarkerColor', 'getMarkerPos', 'getMarkerSize', 'getMarkerType', 'getMass', 'getModelInfo', 'getNumber', 'getObjectArgument', 'getObjectChildren', 'getObjectDLC', 'getObjectMaterials', 'getObjectProxy', 'getObjectTextures', 'getObjectType', 'getObjectViewDistance', 'getOxygenRemaining', 'getPersonUsedDLCs', 'getPlayerChannel', 'getPlayerUID', 'getPos', 'getPosASL', 'getPosASLVisual', 'getPosASLW', 'getPosATL', 'getPosATLVisual', 'getPosVisual', 'getPosWorld', 'getRepairCargo', 'getResolution', 'getShadowDistance', 'getSlingLoad', 'getSpeed', 'getSuppression', 'getTerrainHeightASL', 'getText', 'getVariable', 'getWeaponCargo', 'getWPPos', 'glanceAt', 'globalChat', 'globalRadio', 'goggles', 'goto', 'group', 'groupChat', 'groupFromNetId', 'groupIconSelectable', 'groupIconsVisible', 'groupId', 'groupOwner', 'groupRadio', 'groupSelectedUnits', 'groupSelectUnit', 'grpNull', 'gunner', 'gusts', 'halt', 'handgunItems', 'handgunMagazine', 'handgunWeapon', 'handsHit', 'hasInterface', 'hasWeapon', 'hcAllGroups', 'hcGroupParams', 'hcLeader', 'hcRemoveAllGroups', 'hcRemoveGroup', 'hcSelected', 'hcSelectGroup', 'hcSetGroup', 'hcShowBar', 'hcShownBar', 'headgear', 'hideBody', 'hideObject', 'hideObjectGlobal', 'hint', 'hintC', 'hintCadet', 'hintSilent', 'hmd', 'hostMission', 'htmlLoad', 'HUDMovementLevels', 'humidity', 'if', 'image', 'importAllGroups', 'importance', 'in', 'incapacitatedState', 'independent', 'inflame', 'inflamed', 'inGameUISetEventHandler', 'inheritsFrom', 'initAmbientLife', 'inputAction', 'inRangeOfArtillery', 'insertEditorObject', 'intersect', 'isAbleToBreathe', 'isAgent', 'isArray', 'isAutoHoverOn', 'isAutonomous', 'isAutotest', 'isBleeding', 'isBurning', 'isClass', 'isCollisionLightOn', 'isCopilotEnabled', 'isDedicated', 'isDLCAvailable', 'isEngineOn', 'isEqualTo', 'isFlashlightOn', 'isFlatEmpty', 'isForcedWalk', 'isFormationLeader', 'isHidden', 'isInRemainsCollector', 'isInstructorFigureEnabled', 'isIRLaserOn', 'isKeyActive', 'isKindOf', 'isLightOn', 'isLocalized', 'isManualFire', 'isMarkedForCollection', 'isMultiplayer', 'isNil', 'isNull', 'isNumber', 'isObjectHidden', 'isObjectRTD', 'isOnRoad', 'isPipEnabled', 'isPlayer', 'isRealTime', 'isServer', 'isShowing3DIcons', 'isSteamMission', 'isStreamFriendlyUIEnabled', 'isText', 'isTouchingGround', 'isTurnedOut', 'isTutHintsEnabled', 'isUAVConnectable', 'isUAVConnected', 'isUniformAllowed', 'isWalking', 'isWeaponDeployed', 'isWeaponRested', 'itemCargo', 'items', 'itemsWithMagazines', 'join', 'joinAs', 'joinAsSilent', 'joinSilent', 'joinString', 'kbAddDatabase', 'kbAddDatabaseTargets', 'kbAddTopic', 'kbHasTopic', 'kbReact', 'kbRemoveTopic', 'kbTell', 'kbWasSaid', 'keyImage', 'keyName', 'knowsAbout', 'land', 'landAt', 'landResult', 'language', 'laserTarget', 'lbAdd', 'lbClear', 'lbColor', 'lbCurSel', 'lbData', 'lbDelete', 'lbIsSelected', 'lbPicture', 'lbSelection', 'lbSetColor', 'lbSetCurSel', 'lbSetData', 'lbSetPicture', 'lbSetPictureColor', 'lbSetPictureColorDisabled', 'lbSetPictureColorSelected', 'lbSetSelectColor', 'lbSetSelectColorRight', 'lbSetSelected', 'lbSetTooltip', 'lbSetValue', 'lbSize', 'lbSort', 'lbSortByValue', 'lbText', 'lbValue', 'leader', 'leaderboardDeInit', 'leaderboardGetRows', 'leaderboardInit', 'leaveVehicle', 'libraryCredits', 'libraryDisclaimers', 'lifeState', 'lightAttachObject', 'lightDetachObject', 'lightIsOn', 'lightnings', 'limitSpeed', 'linearConversion', 'lineBreak', 'lineIntersects', 'lineIntersectsObjs', 'lineIntersectsSurfaces', 'lineIntersectsWith', 'linkItem', 'list', 'listObjects', 'ln', 'lnbAddArray', 'lnbAddColumn', 'lnbAddRow', 'lnbClear', 'lnbColor', 'lnbCurSelRow', 'lnbData', 'lnbDeleteColumn', 'lnbDeleteRow', 'lnbGetColumnsPosition', 'lnbPicture', 'lnbSetColor', 'lnbSetColumnsPos', 'lnbSetCurSelRow', 'lnbSetData', 'lnbSetPicture', 'lnbSetText', 'lnbSetValue', 'lnbSize', 'lnbText', 'lnbValue', 'load', 'loadAbs', 'loadBackpack', 'loadFile', 'loadGame', 'loadIdentity', 'loadMagazine', 'loadOverlay', 'loadStatus', 'loadUniform', 'loadVest', 'local', 'localize', 'locationNull', 'locationPosition', 'lock', 'lockCameraTo', 'lockCargo', 'lockDriver', 'locked', 'lockedCargo', 'lockedDriver', 'lockedTurret', 'lockTurret', 'lockWP', 'log', 'logEntities', 'lookAt', 'lookAtPos', 'magazineCargo', 'magazines', 'magazinesAllTurrets', 'magazinesAmmo', 'magazinesAmmoCargo', 'magazinesAmmoFull', 'magazinesDetail', 'magazinesDetailBackpack', 'magazinesDetailUniform', 'magazinesDetailVest', 'magazinesTurret', 'magazineTurretAmmo', 'mapAnimAdd', 'mapAnimClear', 'mapAnimCommit', 'mapAnimDone', 'mapCenterOnCamera', 'mapGridPosition', 'markAsFinishedOnSteam', 'markerAlpha', 'markerBrush', 'markerColor', 'markerDir', 'markerPos', 'markerShape', 'markerSize', 'markerText', 'markerType', 'max', 'members', 'min', 'mineActive', 'mineDetectedBy', 'missionConfigFile', 'missionName', 'missionNamespace', 'missionStart', 'mod', 'modelToWorld', 'modelToWorldVisual', 'moonIntensity', 'morale', 'move', 'moveInAny', 'moveInCargo', 'moveInCommander', 'moveInDriver', 'moveInGunner', 'moveInTurret', 'moveObjectToEnd', 'moveOut', 'moveTime', 'moveTo', 'moveToCompleted', 'moveToFailed', 'musicVolume', 'name', 'name location', 'nameSound', 'nearEntities', 'nearestBuilding', 'nearestLocation', 'nearestLocations', 'nearestLocationWithDubbing', 'nearestObject', 'nearestObjects', 'nearObjects', 'nearObjectsReady', 'nearRoads', 'nearSupplies', 'nearTargets', 'needReload', 'netId', 'netObjNull', 'newOverlay', 'nextMenuItemIndex', 'nextWeatherChange', 'nil', 'nMenuItems', 'not', 'numberToDate', 'objectCurators', 'objectFromNetId', 'objectParent', 'objNull', 'objStatus', 'onBriefingGroup', 'onBriefingNotes', 'onBriefingPlan', 'onBriefingTeamSwitch', 'onCommandModeChanged', 'onDoubleClick', 'onEachFrame', 'onGroupIconClick', 'onGroupIconOverEnter', 'onGroupIconOverLeave', 'onHCGroupSelectionChanged', 'onMapSingleClick', 'onPlayerConnected', 'onPlayerDisconnected', 'onPreloadFinished', 'onPreloadStarted', 'onShowNewObject', 'onTeamSwitch', 'openCuratorInterface', 'openMap', 'openYoutubeVideo', 'opfor', 'or', 'orderGetIn', 'overcast', 'overcastForecast', 'owner', 'param', 'params', 'parseNumber', 'parseText', 'parsingNamespace', 'particlesQuality', 'pi', 'pickWeaponPool', 'pitch', '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', 'ppEffectForceInNVG', 'precision', 'preloadCamera', 'preloadObject', 'preloadSound', 'preloadTitleObj', 'preloadTitleRsc', 'preprocessFile', 'preprocessFileLineNumbers', 'primaryWeapon', 'primaryWeaponItems', 'primaryWeaponMagazine', 'priority', 'private', 'processDiaryLink', 'productVersion', 'profileName', 'profileNamespace', 'profileNameSteam', 'progressLoadingScreen', 'progressPosition', 'progressSetPosition', 'publicVariable', 'publicVariableClient', 'publicVariableServer', 'pushBack', 'putWeaponPool', 'queryItemsPool', 'queryMagazinePool', 'queryWeaponPool', 'rad', 'radioChannelAdd', 'radioChannelCreate', 'radioChannelRemove', 'radioChannelSetCallSign', 'radioChannelSetLabel', 'radioVolume', 'rain', 'rainbow', 'random', 'rank', 'rankId', 'rating', 'rectangular', 'registeredTasks', 'registerTask', 'reload', 'reloadEnabled', 'remoteControl', 'remoteExec', 'remoteExecCall', 'removeAction', 'removeAllActions', 'removeAllAssignedItems', 'removeAllContainers', 'removeAllCuratorAddons', 'removeAllCuratorCameraAreas', 'removeAllCuratorEditingAreas', 'removeAllEventHandlers', 'removeAllHandgunItems', 'removeAllItems', 'removeAllItemsWithMagazines', 'removeAllMissionEventHandlers', 'removeAllMPEventHandlers', 'removeAllMusicEventHandlers', 'removeAllPrimaryWeaponItems', 'removeAllWeapons', 'removeBackpack', 'removeBackpackGlobal', 'removeCuratorAddons', 'removeCuratorCameraArea', 'removeCuratorEditableObjects', 'removeCuratorEditingArea', 'removeDrawIcon', 'removeDrawLinks', 'removeEventHandler', 'removeFromRemainsCollector', 'removeGoggles', 'removeGroupIcon', 'removeHandgunItem', 'removeHeadgear', 'removeItem', 'removeItemFromBackpack', 'removeItemFromUniform', 'removeItemFromVest', 'removeItems', 'removeMagazine', 'removeMagazineGlobal', 'removeMagazines', 'removeMagazinesTurret', 'removeMagazineTurret', 'removeMenuItem', 'removeMissionEventHandler', 'removeMPEventHandler', 'removeMusicEventHandler', 'removePrimaryWeaponItem', 'removeSecondaryWeaponItem', 'removeSimpleTask', 'removeSwitchableUnit', 'removeTeamMember', 'removeUniform', 'removeVest', 'removeWeapon', 'removeWeaponGlobal', 'removeWeaponTurret', 'requiredVersion', 'resetCamShake', 'resetSubgroupDirection', 'resistance', 'resize', 'resources', 'respawnVehicle', 'restartEditorCamera', 'reveal', 'revealMine', 'reverse', 'reversedMouseY', 'roadsConnectedTo', 'roleDescription', 'ropeAttachedObjects', 'ropeAttachedTo', 'ropeAttachEnabled', 'ropeAttachTo', 'ropeCreate', 'ropeCut', 'ropeEndPosition', 'ropeLength', 'ropes', 'ropeUnwind', 'ropeUnwound', 'rotorsForcesRTD', 'rotorsRpmRTD', 'round', 'runInitScript', 'safeZoneH', 'safeZoneW', 'safeZoneWAbs', 'safeZoneX', 'safeZoneXAbs', 'safeZoneY', 'saveGame', 'saveIdentity', 'saveJoysticks', 'saveOverlay', 'saveProfileNamespace', 'saveStatus', 'saveVar', 'savingEnabled', 'say', 'say2D', 'say3D', 'scopeName', 'score', 'scoreSide', 'screenToWorld', 'scriptDone', 'scriptName', 'scriptNull', 'scudState', 'secondaryWeapon', 'secondaryWeaponItems', 'secondaryWeaponMagazine', 'select', 'selectBestPlaces', 'selectDiarySubject', 'selectedEditorObjects', 'selectEditorObject', 'selectionPosition', 'selectLeader', 'selectNoPlayer', 'selectPlayer', 'selectWeapon', 'selectWeaponTurret', 'sendAUMessage', 'sendSimpleCommand', 'sendTask', 'sendTaskResult', 'sendUDPMessage', 'serverCommand', 'serverCommandAvailable', 'serverCommandExecutable', 'serverName', 'serverTime', 'set', 'setAccTime', 'setAirportSide', 'setAmmo', 'setAmmoCargo', 'setAperture', 'setApertureNew', 'setArmoryPoints', 'setAttributes', 'setAutonomous', 'setBehaviour', 'setBleedingRemaining', 'setCameraInterest', 'setCamShakeDefParams', 'setCamShakeParams', 'setCamUseTi', 'setCaptive', 'setCenterOfMass', 'setCollisionLight', 'setCombatMode', 'setCompassOscillation', 'setCuratorCameraAreaCeiling', 'setCuratorCoef', 'setCuratorEditingAreaType', 'setCuratorWaypointCost', 'setCurrentChannel', 'setCurrentTask', 'setCurrentWaypoint', 'setDamage', 'setDammage', 'setDate', 'setDebriefingText', 'setDefaultCamera', 'setDestination', 'setDetailMapBlendPars', 'setDir', 'setDirection', 'setDrawIcon', 'setDropInterval', 'setEditorMode', 'setEditorObjectScope', 'setEffectCondition', 'setFace', 'setFaceAnimation', 'setFatigue', 'setFlagOwner', 'setFlagSide', 'setFlagTexture', 'setFog', 'setFog array', 'setFormation', 'setFormationTask', 'setFormDir', 'setFriend', 'setFromEditor', 'setFSMVariable', 'setFuel', 'setFuelCargo', 'setGroupIcon', 'setGroupIconParams', 'setGroupIconsSelectable', 'setGroupIconsVisible', 'setGroupId', 'setGroupIdGlobal', 'setGroupOwner', 'setGusts', 'setHideBehind', 'setHit', 'setHitIndex', 'setHitPointDamage', 'setHorizonParallaxCoef', 'setHUDMovementLevels', 'setIdentity', 'setImportance', 'setLeader', 'setLightAmbient', 'setLightAttenuation', 'setLightBrightness', 'setLightColor', 'setLightDayLight', 'setLightFlareMaxDistance', 'setLightFlareSize', 'setLightIntensity', 'setLightnings', 'setLightUseFlare', 'setLocalWindParams', 'setMagazineTurretAmmo', 'setMarkerAlpha', 'setMarkerAlphaLocal', 'setMarkerBrush', 'setMarkerBrushLocal', 'setMarkerColor', 'setMarkerColorLocal', 'setMarkerDir', 'setMarkerDirLocal', 'setMarkerPos', 'setMarkerPosLocal', 'setMarkerShape', 'setMarkerShapeLocal', 'setMarkerSize', 'setMarkerSizeLocal', 'setMarkerText', 'setMarkerTextLocal', 'setMarkerType', 'setMarkerTypeLocal', 'setMass', 'setMimic', 'setMousePosition', 'setMusicEffect', 'setMusicEventHandler', 'setName', 'setNameSound', 'setObjectArguments', 'setObjectMaterial', 'setObjectProxy', 'setObjectTexture', 'setObjectTextureGlobal', 'setObjectViewDistance', 'setOvercast', 'setOwner', 'setOxygenRemaining', 'setParticleCircle', 'setParticleClass', 'setParticleFire', 'setParticleParams', 'setParticleRandom', 'setPilotLight', 'setPiPEffect', 'setPitch', 'setPlayable', 'setPlayerRespawnTime', 'setPos', 'setPosASL', 'setPosASL2', 'setPosASLW', 'setPosATL', 'setPosition', 'setPosWorld', 'setRadioMsg', 'setRain', 'setRainbow', 'setRandomLip', 'setRank', 'setRectangular', 'setRepairCargo', 'setShadowDistance', 'setSide', 'setSimpleTaskDescription', 'setSimpleTaskDestination', 'setSimpleTaskTarget', 'setSimulWeatherLayers', 'setSize', 'setSkill', 'setSkill array', 'setSlingLoad', 'setSoundEffect', 'setSpeaker', 'setSpeech', 'setSpeedMode', 'setStatValue', 'setSuppression', 'setSystemOfUnits', 'setTargetAge', 'setTaskResult', 'setTaskState', 'setTerrainGrid', 'setText', 'setTimeMultiplier', 'setTitleEffect', 'setTriggerActivation', 'setTriggerArea', 'setTriggerStatements', 'setTriggerText', 'setTriggerTimeout', 'setTriggerType', 'setType', 'setUnconscious', 'setUnitAbility', 'setUnitPos', 'setUnitPosWeak', 'setUnitRank', 'setUnitRecoilCoefficient', 'setUnloadInCombat', 'setUserActionText', 'setVariable', 'setVectorDir', 'setVectorDirAndUp', 'setVectorUp', 'setVehicleAmmo', 'setVehicleAmmoDef', 'setVehicleArmor', 'setVehicleId', 'setVehicleLock', 'setVehiclePosition', 'setVehicleTiPars', 'setVehicleVarName', 'setVelocity', 'setVelocityTransformation', 'setViewDistance', 'setVisibleIfTreeCollapsed', 'setWaves', 'setWaypointBehaviour', 'setWaypointCombatMode', 'setWaypointCompletionRadius', 'setWaypointDescription', 'setWaypointFormation', 'setWaypointHousePosition', 'setWaypointLoiterRadius', 'setWaypointLoiterType', 'setWaypointName', 'setWaypointPosition', 'setWaypointScript', 'setWaypointSpeed', 'setWaypointStatements', 'setWaypointTimeout', 'setWaypointType', 'setWaypointVisible', 'setWeaponReloadingTime', 'setWind', 'setWindDir', 'setWindForce', 'setWindStr', 'setWPPos', 'show3DIcons', 'showChat', 'showCinemaBorder', 'showCommandingMenu', 'showCompass', 'showCuratorCompass', 'showGPS', 'showHUD', 'showLegend', 'showMap', 'shownArtilleryComputer', 'shownChat', 'shownCompass', 'shownCuratorCompass', 'showNewEditorObject', 'shownGPS', 'shownHUD', 'shownMap', 'shownPad', 'shownRadio', 'shownUAVFeed', 'shownWarrant', 'shownWatch', 'showPad', 'showRadio', 'showSubtitles', 'showUAVFeed', 'showWarrant', 'showWatch', 'showWaypoint', 'side', 'sideChat', 'sideEnemy', 'sideFriendly', 'sideLogic', 'sideRadio', 'sideUnknown', 'simpleTasks', 'simulationEnabled', 'simulCloudDensity', 'simulCloudOcclusion', 'simulInClouds', 'simulWeatherSync', 'sin', 'size', 'sizeOf', 'skill', 'skillFinal', 'skipTime', 'sleep', 'sliderPosition', 'sliderRange', 'sliderSetPosition', 'sliderSetRange', 'sliderSetSpeed', 'sliderSpeed', 'slingLoadAssistantShown', 'soldierMagazines', 'someAmmo', 'sort', 'soundVolume', 'spawn', 'speaker', 'speed', 'speedMode', 'splitString', 'sqrt', 'squadParams', 'stance', 'startLoadingScreen', 'step', 'stop', 'stopped', 'str', 'sunOrMoon', 'supportInfo', 'suppressFor', 'surfaceIsWater', 'surfaceNormal', 'surfaceType', 'swimInDepth', 'switch', 'switchableUnits', 'switchAction', 'switchCamera', 'switchGesture', 'switchLight', 'switchMove', 'synchronizedObjects', 'synchronizedTriggers', 'synchronizedWaypoints', 'synchronizeObjectsAdd', 'synchronizeObjectsRemove', 'synchronizeTrigger', 'synchronizeWaypoint', 'synchronizeWaypoint trigger', 'systemChat', 'systemOfUnits', 'tan', 'targetKnowledge', 'targetsAggregate', 'targetsQuery', 'taskChildren', 'taskCompleted', 'taskDescription', 'taskDestination', 'taskHint', 'taskNull', 'taskParent', 'taskResult', 'taskState', 'teamMember', 'teamMemberNull', 'teamName', 'teams', 'teamSwitch', 'teamSwitchEnabled', 'teamType', 'terminate', 'terrainIntersect', 'terrainIntersectASL', 'text', 'text location', 'textLog', 'textLogFormat', 'tg', 'then', 'throw', 'time', 'timeMultiplier', 'titleCut', 'titleFadeOut', 'titleObj', 'titleRsc', 'titleText', 'to', 'toArray', 'toLower', 'toString', 'toUpper', 'triggerActivated', 'triggerActivation', 'triggerArea', 'triggerAttachedVehicle', 'triggerAttachObject', 'triggerAttachVehicle', 'triggerStatements', 'triggerText', 'triggerTimeout', 'triggerTimeoutCurrent', 'triggerType', 'true', 'try', 'turretLocal', 'turretOwner', 'turretUnit', 'tvAdd', 'tvClear', 'tvCollapse', 'tvCount', 'tvCurSel', 'tvData', 'tvDelete', 'tvExpand', 'tvPicture', 'tvSetCurSel', 'tvSetData', 'tvSetPicture', 'tvSetPictureColor', 'tvSetTooltip', 'tvSetValue', 'tvSort', 'tvSortByValue', 'tvText', 'tvValue', 'type', 'typeName', 'typeOf', 'UAVControl', 'uiNamespace', 'uiSleep', 'unassignCurator', 'unassignItem', 'unassignTeam', 'unassignVehicle', 'underwater', 'uniform', 'uniformContainer', 'uniformItems', 'uniformMagazines', 'unitAddons', 'unitBackpack', 'unitPos', 'unitReady', 'unitRecoilCoefficient', 'units', 'unitsBelowHeight', 'unlinkItem', 'unlockAchievement', 'unregisterTask', 'updateDrawIcon', 'updateMenuItem', 'updateObjectTree', 'useAudioTimeForMoves', 'vectorAdd', 'vectorCos', 'vectorCrossProduct', 'vectorDiff', 'vectorDir', 'vectorDirVisual', 'vectorDistance', 'vectorDistanceSqr', 'vectorDotProduct', 'vectorFromTo', 'vectorMagnitude', 'vectorMagnitudeSqr', 'vectorMultiply', 'vectorNormalized', 'vectorUp', 'vectorUpVisual', 'vehicle', 'vehicleChat', 'vehicleRadio', 'vehicles', 'vehicleVarName', 'velocity', 'velocityModelSpace', 'verifySignature', 'vest', 'vestContainer', 'vestItems', 'vestMagazines', 'viewDistance', 'visibleCompass', 'visibleGPS', 'visibleMap', 'visiblePosition', 'visiblePositionASL', 'visibleWatch', 'waitUntil', 'waves', 'waypointAttachedObject', 'waypointAttachedVehicle', 'waypointAttachObject', 'waypointAttachVehicle', 'waypointBehaviour', 'waypointCombatMode', 'waypointCompletionRadius', 'waypointDescription', 'waypointFormation', 'waypointHousePosition', 'waypointLoiterRadius', 'waypointLoiterType', 'waypointName', 'waypointPosition', 'waypoints', 'waypointScript', 'waypointsEnabledUAV', 'waypointShow', 'waypointSpeed', 'waypointStatements', 'waypointTimeout', 'waypointTimeoutCurrent', 'waypointType', 'waypointVisible', 'weaponAccessories', 'weaponCargo', 'weaponDirection', 'weaponLowered', 'weapons', 'weaponsItems', 'weaponsItemsCargo', 'weaponState', 'weaponsTurret', 'weightRTD', 'west', 'WFSideText', 'while', 'wind', 'windDir', 'windStr', 'wingsForcesRTD', 'with', 'worldName', 'worldSize', 'worldToModel', 'worldToModelVisual', 'worldToScreen'];
14095 var control = ['case', 'catch', 'default', 'do', 'else', 'exit', 'exitWith|5', 'for', 'forEach', 'from', 'if', 'switch', 'then', 'throw', 'to', 'try', 'while', 'with'];
14096 var operators = ['!', '-', '+', '!=', '%', '&&', '*', '/', '=', '==', '>', '>=', '<', '<=', '^', ':', '>>'];
14097 var specials = ['_forEachIndex|10', '_this|10', '_x|10'];
14098 var literals = ['true', 'false', 'nil'];
14099 var builtins = allCommands.filter(function (command) {
14100 return control.indexOf(command) == -1 &&
14101 literals.indexOf(command) == -1 &&
14102 operators.indexOf(command) == -1;
14103 });
14104 //Note: operators will not be treated as builtins due to the lexeme rules
14105 builtins = builtins.concat(specials);
14106
14107 // In SQF strings, quotes matching the start are escaped by adding a consecutive.
14108 // Example of single escaped quotes: " "" " and ' '' '.
14109 var STRINGS = {
14110 className: 'string',
14111 relevance: 0,
14112 variants: [
14113 {
14114 begin: '"',
14115 end: '"',
14116 contains: [{begin: '""'}]
14117 },
14118 {
14119 begin: '\'',
14120 end: '\'',
14121 contains: [{begin: '\'\''}]
14122 }
14123 ]
14124 };
14125
14126 var NUMBERS = {
14127 className: 'number',
14128 begin: hljs.NUMBER_RE,
14129 relevance: 0
14130 };
14131
14132 // Preprocessor definitions borrowed from C++
14133 var PREPROCESSOR_STRINGS = {
14134 className: 'string',
14135 variants: [
14136 hljs.QUOTE_STRING_MODE,
14137 {
14138 begin: '\'\\\\?.', end: '\'',
14139 illegal: '.'
14140 }
14141 ]
14142 };
14143
14144 var PREPROCESSOR = {
14145 className: 'meta',
14146 begin: '#', end: '$',
14147 keywords: {'meta-keyword': 'if else elif endif define undef warning error line ' +
14148 'pragma ifdef ifndef'},
14149 contains: [
14150 {
14151 begin: /\\\n/, relevance: 0
14152 },
14153 {
14154 beginKeywords: 'include', end: '$',
14155 keywords: {'meta-keyword': 'include'},
14156 contains: [
14157 PREPROCESSOR_STRINGS,
14158 {
14159 className: 'meta-string',
14160 begin: '<', end: '>',
14161 illegal: '\\n'
14162 }
14163 ]
14164 },
14165 PREPROCESSOR_STRINGS,
14166 NUMBERS,
14167 hljs.C_LINE_COMMENT_MODE,
14168 hljs.C_BLOCK_COMMENT_MODE
14169 ]
14170 };
14171
14172 return {
14173 aliases: ['sqf'],
14174 case_insensitive: true,
14175 keywords: {
14176 keyword: control.join(' '),
14177 built_in: builtins.join(' '),
14178 literal: literals.join(' ')
14179 },
14180 contains: [
14181 hljs.C_LINE_COMMENT_MODE,
14182 hljs.C_BLOCK_COMMENT_MODE,
14183 NUMBERS,
14184 STRINGS,
14185 PREPROCESSOR
14186 ]
14187 };
14188}
14189},{name:"sql",create:/*
14190 Language: SQL
14191 Contributors: Nikolay Lisienko <info@neor.ru>, Heiko August <post@auge8472.de>, Travis Odom <travis.a.odom@gmail.com>, Vadimtro <vadimtro@yahoo.com>, Benjamin Auder <benjamin.auder@gmail.com>
14192 Category: common
14193 */
14194
14195function(hljs) {
14196 var COMMENT_MODE = hljs.COMMENT('--', '$');
14197 return {
14198 case_insensitive: true,
14199 illegal: /[<>{}*]/,
14200 contains: [
14201 {
14202 beginKeywords:
14203 'begin end start commit rollback savepoint lock alter create drop rename call ' +
14204 'delete do handler insert load replace select truncate update set show pragma grant ' +
14205 'merge describe use explain help declare prepare execute deallocate release ' +
14206 'unlock purge reset change stop analyze cache flush optimize repair kill ' +
14207 'install uninstall checksum restore check backup revoke',
14208 end: /;/, endsWithParent: true,
14209 keywords: {
14210 keyword:
14211 'abort abs absolute acc acce accep accept access accessed accessible account acos action activate add ' +
14212 'addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias ' +
14213 'allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply ' +
14214 'archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan ' +
14215 'atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid ' +
14216 'authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile ' +
14217 'before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float ' +
14218 'binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound ' +
14219 'buffer_cache buffer_pool build bulk by byte byteordermark bytes c cache caching call calling cancel ' +
14220 'capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base ' +
14221 'char_length character_length characters characterset charindex charset charsetform charsetid check ' +
14222 'checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close ' +
14223 'cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation ' +
14224 'collect colu colum column column_value columns columns_updated comment commit compact compatibility ' +
14225 'compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn ' +
14226 'connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection ' +
14227 'consider consistent constant constraint constraints constructor container content contents context ' +
14228 'contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost ' +
14229 'count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation ' +
14230 'critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user ' +
14231 'cursor curtime customdatum cycle d data database databases datafile datafiles datalength date_add ' +
14232 'date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts ' +
14233 'day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate ' +
14234 'declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults ' +
14235 'deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank ' +
14236 'depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor ' +
14237 'deterministic diagnostics difference dimension direct_load directory disable disable_all ' +
14238 'disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div ' +
14239 'do document domain dotnet double downgrade drop dumpfile duplicate duration e each edition editionable ' +
14240 'editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt ' +
14241 'end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors ' +
14242 'escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding ' +
14243 'execu execut execute exempt exists exit exp expire explain export export_set extended extent external ' +
14244 'external_1 external_2 externally extract f failed failed_login_attempts failover failure far fast ' +
14245 'feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final ' +
14246 'finish first first_value fixed flash_cache flashback floor flush following follows for forall force ' +
14247 'form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ' +
14248 'ftp full function g general generated get get_format get_lock getdate getutcdate global global_name ' +
14249 'globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups ' +
14250 'gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex ' +
14251 'hierarchy high high_priority hosts hour http i id ident_current ident_incr ident_seed identified ' +
14252 'identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment ' +
14253 'index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile ' +
14254 'initial initialized initially initrans inmemory inner innodb input insert install instance instantiable ' +
14255 'instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat ' +
14256 'is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists ' +
14257 'k keep keep_duplicates key keys kill l language large last last_day last_insert_id last_value lax lcase ' +
14258 'lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit ' +
14259 'lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate ' +
14260 'locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call ' +
14261 'logoff logon logs long loop low low_priority lower lpad lrtrim ltrim m main make_set makedate maketime ' +
14262 'managed management manual map mapping mask master master_pos_wait match matched materialized max ' +
14263 'maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans ' +
14264 'md5 measures median medium member memcompress memory merge microsecond mid migration min minextents ' +
14265 'minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month ' +
14266 'months mount move movement multiset mutex n name name_const names nan national native natural nav nchar ' +
14267 'nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile ' +
14268 'nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile ' +
14269 'nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder ' +
14270 'nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck ' +
14271 'noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe ' +
14272 'nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ' +
14273 'ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old ' +
14274 'on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date ' +
14275 'oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary ' +
14276 'out outer outfile outline output over overflow overriding p package pad parallel parallel_enable ' +
14277 'parameters parent parse partial partition partitions pascal passing password password_grace_time ' +
14278 'password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex ' +
14279 'pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc ' +
14280 'performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin ' +
14281 'policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction ' +
14282 'prediction_cost prediction_details prediction_probability prediction_set prepare present preserve ' +
14283 'prior priority private private_sga privileges procedural procedure procedure_analyze processlist ' +
14284 'profiles project prompt protection public publishingservername purge quarter query quick quiesce quota ' +
14285 'quotename radians raise rand range rank raw read reads readsize rebuild record records ' +
14286 'recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh ' +
14287 'regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy ' +
14288 'reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename ' +
14289 'repair repeat replace replicate replication required reset resetlogs resize resource respect restore ' +
14290 'restricted result result_cache resumable resume retention return returning returns reuse reverse revoke ' +
14291 'right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows ' +
14292 'rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll ' +
14293 'sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select ' +
14294 'self sequence sequential serializable server servererror session session_user sessions_per_user set ' +
14295 'sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor ' +
14296 'si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin ' +
14297 'size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex ' +
14298 'source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows ' +
14299 'sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone ' +
14300 'standby start starting startup statement static statistics stats_binomial_test stats_crosstab ' +
14301 'stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep ' +
14302 'stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev ' +
14303 'stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate ' +
14304 'subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum ' +
14305 'suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate ' +
14306 'sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime t table tables tablespace tan tdo ' +
14307 'template temporary terminated tertiary_weights test than then thread through tier ties time time_format ' +
14308 'time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr ' +
14309 'timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking ' +
14310 'transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate ' +
14311 'try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress ' +
14312 'under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot ' +
14313 'unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert ' +
14314 'url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date ' +
14315 'utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var ' +
14316 'var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray ' +
14317 'verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear ' +
14318 'wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped ' +
14319 'xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces ' +
14320 'xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek',
14321 literal:
14322 'true false null',
14323 built_in:
14324 'array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number ' +
14325 'numeric real record serial serial8 smallint text varchar varying void'
14326 },
14327 contains: [
14328 {
14329 className: 'string',
14330 begin: '\'', end: '\'',
14331 contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
14332 },
14333 {
14334 className: 'string',
14335 begin: '"', end: '"',
14336 contains: [hljs.BACKSLASH_ESCAPE, {begin: '""'}]
14337 },
14338 {
14339 className: 'string',
14340 begin: '`', end: '`',
14341 contains: [hljs.BACKSLASH_ESCAPE]
14342 },
14343 hljs.C_NUMBER_MODE,
14344 hljs.C_BLOCK_COMMENT_MODE,
14345 COMMENT_MODE
14346 ]
14347 },
14348 hljs.C_BLOCK_COMMENT_MODE,
14349 COMMENT_MODE
14350 ]
14351 };
14352}
14353},{name:"stata",create:/*
14354Language: Stata
14355Author: Brian Quistorff <bquistorff@gmail.com>
14356Contributors: Drew McDonald <drewmcdo@gmail.com>
14357Description: Syntax highlighting for Stata code. This is a fork and modification of Drew McDonald's file (https://github.com/drewmcdonald/stata-highlighting). I have also included a list of builtin commands from https://bugs.kde.org/show_bug.cgi?id=135646.
14358Category: scientific
14359*/
14360
14361function(hljs) {
14362 return {
14363 aliases: ['do', 'ado'],
14364 case_insensitive: true,
14365 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 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 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 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 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 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 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 g 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 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 la lab 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 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 meqparse mer merg merge 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 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 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 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',
14366 contains: [
14367 {
14368 className: 'symbol',
14369 begin: /`[a-zA-Z0-9_]+'/
14370 },
14371 {
14372 className: 'variable',
14373 begin: /\$\{?[a-zA-Z0-9_]+\}?/
14374 },
14375 {
14376 className: 'string',
14377 variants: [
14378 {begin: '`"[^\r\n]*?"\''},
14379 {begin: '"[^\r\n"]*"'}
14380 ]
14381 },
14382
14383 {
14384 className: 'built_in',
14385 variants: [
14386 {
14387 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)(?=\\(|$)'
14388 }
14389 ]
14390 },
14391
14392 hljs.COMMENT('^[ \t]*\\*.*$', false),
14393 hljs.C_LINE_COMMENT_MODE,
14394 hljs.C_BLOCK_COMMENT_MODE
14395 ]
14396 };
14397}
14398},{name:"step21",create:/*
14399Language: STEP Part 21 (ISO 10303-21)
14400Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>
14401Description: Syntax highlighter for STEP Part 21 files (ISO 10303-21).
14402*/
14403
14404function(hljs) {
14405 var STEP21_IDENT_RE = '[A-Z_][A-Z0-9_.]*';
14406 var STEP21_KEYWORDS = {
14407 keyword: 'HEADER ENDSEC DATA'
14408 };
14409 var STEP21_START = {
14410 className: 'meta',
14411 begin: 'ISO-10303-21;',
14412 relevance: 10
14413 };
14414 var STEP21_CLOSE = {
14415 className: 'meta',
14416 begin: 'END-ISO-10303-21;',
14417 relevance: 10
14418 };
14419
14420 return {
14421 aliases: ['p21', 'step', 'stp'],
14422 case_insensitive: true, // STEP 21 is case insensitive in theory, in practice all non-comments are capitalized.
14423 lexemes: STEP21_IDENT_RE,
14424 keywords: STEP21_KEYWORDS,
14425 contains: [
14426 STEP21_START,
14427 STEP21_CLOSE,
14428 hljs.C_LINE_COMMENT_MODE,
14429 hljs.C_BLOCK_COMMENT_MODE,
14430 hljs.COMMENT('/\\*\\*!', '\\*/'),
14431 hljs.C_NUMBER_MODE,
14432 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
14433 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
14434 {
14435 className: 'string',
14436 begin: "'", end: "'"
14437 },
14438 {
14439 className: 'symbol',
14440 variants: [
14441 {
14442 begin: '#', end: '\\d+',
14443 illegal: '\\W'
14444 }
14445 ]
14446 }
14447 ]
14448 };
14449}
14450},{name:"stylus",create:/*
14451Language: Stylus
14452Author: Bryant Williams <b.n.williams@gmail.com>
14453Description: Stylus (https://github.com/LearnBoost/stylus/)
14454Category: css
14455*/
14456
14457function(hljs) {
14458
14459 var VARIABLE = {
14460 className: 'variable',
14461 begin: '\\$' + hljs.IDENT_RE
14462 };
14463
14464 var HEX_COLOR = {
14465 className: 'number',
14466 begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'
14467 };
14468
14469 var AT_KEYWORDS = [
14470 'charset',
14471 'css',
14472 'debug',
14473 'extend',
14474 'font-face',
14475 'for',
14476 'import',
14477 'include',
14478 'media',
14479 'mixin',
14480 'page',
14481 'warn',
14482 'while'
14483 ];
14484
14485 var PSEUDO_SELECTORS = [
14486 'after',
14487 'before',
14488 'first-letter',
14489 'first-line',
14490 'active',
14491 'first-child',
14492 'focus',
14493 'hover',
14494 'lang',
14495 'link',
14496 'visited'
14497 ];
14498
14499 var TAGS = [
14500 'a',
14501 'abbr',
14502 'address',
14503 'article',
14504 'aside',
14505 'audio',
14506 'b',
14507 'blockquote',
14508 'body',
14509 'button',
14510 'canvas',
14511 'caption',
14512 'cite',
14513 'code',
14514 'dd',
14515 'del',
14516 'details',
14517 'dfn',
14518 'div',
14519 'dl',
14520 'dt',
14521 'em',
14522 'fieldset',
14523 'figcaption',
14524 'figure',
14525 'footer',
14526 'form',
14527 'h1',
14528 'h2',
14529 'h3',
14530 'h4',
14531 'h5',
14532 'h6',
14533 'header',
14534 'hgroup',
14535 'html',
14536 'i',
14537 'iframe',
14538 'img',
14539 'input',
14540 'ins',
14541 'kbd',
14542 'label',
14543 'legend',
14544 'li',
14545 'mark',
14546 'menu',
14547 'nav',
14548 'object',
14549 'ol',
14550 'p',
14551 'q',
14552 'quote',
14553 'samp',
14554 'section',
14555 'span',
14556 'strong',
14557 'summary',
14558 'sup',
14559 'table',
14560 'tbody',
14561 'td',
14562 'textarea',
14563 'tfoot',
14564 'th',
14565 'thead',
14566 'time',
14567 'tr',
14568 'ul',
14569 'var',
14570 'video'
14571 ];
14572
14573 var TAG_END = '[\\.\\s\\n\\[\\:,]';
14574
14575 var ATTRIBUTES = [
14576 'align-content',
14577 'align-items',
14578 'align-self',
14579 'animation',
14580 'animation-delay',
14581 'animation-direction',
14582 'animation-duration',
14583 'animation-fill-mode',
14584 'animation-iteration-count',
14585 'animation-name',
14586 'animation-play-state',
14587 'animation-timing-function',
14588 'auto',
14589 'backface-visibility',
14590 'background',
14591 'background-attachment',
14592 'background-clip',
14593 'background-color',
14594 'background-image',
14595 'background-origin',
14596 'background-position',
14597 'background-repeat',
14598 'background-size',
14599 'border',
14600 'border-bottom',
14601 'border-bottom-color',
14602 'border-bottom-left-radius',
14603 'border-bottom-right-radius',
14604 'border-bottom-style',
14605 'border-bottom-width',
14606 'border-collapse',
14607 'border-color',
14608 'border-image',
14609 'border-image-outset',
14610 'border-image-repeat',
14611 'border-image-slice',
14612 'border-image-source',
14613 'border-image-width',
14614 'border-left',
14615 'border-left-color',
14616 'border-left-style',
14617 'border-left-width',
14618 'border-radius',
14619 'border-right',
14620 'border-right-color',
14621 'border-right-style',
14622 'border-right-width',
14623 'border-spacing',
14624 'border-style',
14625 'border-top',
14626 'border-top-color',
14627 'border-top-left-radius',
14628 'border-top-right-radius',
14629 'border-top-style',
14630 'border-top-width',
14631 'border-width',
14632 'bottom',
14633 'box-decoration-break',
14634 'box-shadow',
14635 'box-sizing',
14636 'break-after',
14637 'break-before',
14638 'break-inside',
14639 'caption-side',
14640 'clear',
14641 'clip',
14642 'clip-path',
14643 'color',
14644 'column-count',
14645 'column-fill',
14646 'column-gap',
14647 'column-rule',
14648 'column-rule-color',
14649 'column-rule-style',
14650 'column-rule-width',
14651 'column-span',
14652 'column-width',
14653 'columns',
14654 'content',
14655 'counter-increment',
14656 'counter-reset',
14657 'cursor',
14658 'direction',
14659 'display',
14660 'empty-cells',
14661 'filter',
14662 'flex',
14663 'flex-basis',
14664 'flex-direction',
14665 'flex-flow',
14666 'flex-grow',
14667 'flex-shrink',
14668 'flex-wrap',
14669 'float',
14670 'font',
14671 'font-family',
14672 'font-feature-settings',
14673 'font-kerning',
14674 'font-language-override',
14675 'font-size',
14676 'font-size-adjust',
14677 'font-stretch',
14678 'font-style',
14679 'font-variant',
14680 'font-variant-ligatures',
14681 'font-weight',
14682 'height',
14683 'hyphens',
14684 'icon',
14685 'image-orientation',
14686 'image-rendering',
14687 'image-resolution',
14688 'ime-mode',
14689 'inherit',
14690 'initial',
14691 'justify-content',
14692 'left',
14693 'letter-spacing',
14694 'line-height',
14695 'list-style',
14696 'list-style-image',
14697 'list-style-position',
14698 'list-style-type',
14699 'margin',
14700 'margin-bottom',
14701 'margin-left',
14702 'margin-right',
14703 'margin-top',
14704 'marks',
14705 'mask',
14706 'max-height',
14707 'max-width',
14708 'min-height',
14709 'min-width',
14710 'nav-down',
14711 'nav-index',
14712 'nav-left',
14713 'nav-right',
14714 'nav-up',
14715 'none',
14716 'normal',
14717 'object-fit',
14718 'object-position',
14719 'opacity',
14720 'order',
14721 'orphans',
14722 'outline',
14723 'outline-color',
14724 'outline-offset',
14725 'outline-style',
14726 'outline-width',
14727 'overflow',
14728 'overflow-wrap',
14729 'overflow-x',
14730 'overflow-y',
14731 'padding',
14732 'padding-bottom',
14733 'padding-left',
14734 'padding-right',
14735 'padding-top',
14736 'page-break-after',
14737 'page-break-before',
14738 'page-break-inside',
14739 'perspective',
14740 'perspective-origin',
14741 'pointer-events',
14742 'position',
14743 'quotes',
14744 'resize',
14745 'right',
14746 'tab-size',
14747 'table-layout',
14748 'text-align',
14749 'text-align-last',
14750 'text-decoration',
14751 'text-decoration-color',
14752 'text-decoration-line',
14753 'text-decoration-style',
14754 'text-indent',
14755 'text-overflow',
14756 'text-rendering',
14757 'text-shadow',
14758 'text-transform',
14759 'text-underline-position',
14760 'top',
14761 'transform',
14762 'transform-origin',
14763 'transform-style',
14764 'transition',
14765 'transition-delay',
14766 'transition-duration',
14767 'transition-property',
14768 'transition-timing-function',
14769 'unicode-bidi',
14770 'vertical-align',
14771 'visibility',
14772 'white-space',
14773 'widows',
14774 'width',
14775 'word-break',
14776 'word-spacing',
14777 'word-wrap',
14778 'z-index'
14779 ];
14780
14781 // illegals
14782 var ILLEGAL = [
14783 '\\{',
14784 '\\}',
14785 '\\?',
14786 '(\\bReturn\\b)', // monkey
14787 '(\\bEnd\\b)', // monkey
14788 '(\\bend\\b)', // vbscript
14789 ';', // sql
14790 '#\\s', // markdown
14791 '\\*\\s', // markdown
14792 '===\\s', // markdown
14793 '\\|',
14794 '%', // prolog
14795 ];
14796
14797 return {
14798 aliases: ['styl'],
14799 case_insensitive: false,
14800 illegal: '(' + ILLEGAL.join('|') + ')',
14801 keywords: 'if else for in',
14802 contains: [
14803
14804 // strings
14805 hljs.QUOTE_STRING_MODE,
14806 hljs.APOS_STRING_MODE,
14807
14808 // comments
14809 hljs.C_LINE_COMMENT_MODE,
14810 hljs.C_BLOCK_COMMENT_MODE,
14811
14812 // hex colors
14813 HEX_COLOR,
14814
14815 // class tag
14816 {
14817 begin: '\\.[a-zA-Z][a-zA-Z0-9_-]*' + TAG_END,
14818 returnBegin: true,
14819 contains: [
14820 {className: 'selector-class', begin: '\\.[a-zA-Z][a-zA-Z0-9_-]*'}
14821 ]
14822 },
14823
14824 // id tag
14825 {
14826 begin: '\\#[a-zA-Z][a-zA-Z0-9_-]*' + TAG_END,
14827 returnBegin: true,
14828 contains: [
14829 {className: 'selector-id', begin: '\\#[a-zA-Z][a-zA-Z0-9_-]*'}
14830 ]
14831 },
14832
14833 // tags
14834 {
14835 begin: '\\b(' + TAGS.join('|') + ')' + TAG_END,
14836 returnBegin: true,
14837 contains: [
14838 {className: 'selector-tag', begin: '\\b[a-zA-Z][a-zA-Z0-9_-]*'}
14839 ]
14840 },
14841
14842 // psuedo selectors
14843 {
14844 begin: '&?:?:\\b(' + PSEUDO_SELECTORS.join('|') + ')' + TAG_END
14845 },
14846
14847 // @ keywords
14848 {
14849 begin: '\@(' + AT_KEYWORDS.join('|') + ')\\b'
14850 },
14851
14852 // variables
14853 VARIABLE,
14854
14855 // dimension
14856 hljs.CSS_NUMBER_MODE,
14857
14858 // number
14859 hljs.NUMBER_MODE,
14860
14861 // functions
14862 // - only from beginning of line + whitespace
14863 {
14864 className: 'function',
14865 begin: '^[a-zA-Z][a-zA-Z0-9_\-]*\\(.*\\)',
14866 illegal: '[\\n]',
14867 returnBegin: true,
14868 contains: [
14869 {className: 'title', begin: '\\b[a-zA-Z][a-zA-Z0-9_\-]*'},
14870 {
14871 className: 'params',
14872 begin: /\(/,
14873 end: /\)/,
14874 contains: [
14875 HEX_COLOR,
14876 VARIABLE,
14877 hljs.APOS_STRING_MODE,
14878 hljs.CSS_NUMBER_MODE,
14879 hljs.NUMBER_MODE,
14880 hljs.QUOTE_STRING_MODE
14881 ]
14882 }
14883 ]
14884 },
14885
14886 // attributes
14887 // - only from beginning of line + whitespace
14888 // - must have whitespace after it
14889 {
14890 className: 'attribute',
14891 begin: '\\b(' + ATTRIBUTES.reverse().join('|') + ')\\b'
14892 }
14893 ]
14894 };
14895}
14896},{name:"swift",create:/*
14897Language: Swift
14898Author: Chris Eidhof <chris@eidhof.nl>
14899Contributors: Nate Cook <natecook@gmail.com>
14900Category: system
14901*/
14902
14903
14904function(hljs) {
14905 var SWIFT_KEYWORDS = {
14906 keyword: '__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity ' +
14907 'break case catch class continue convenience default defer deinit didSet do ' +
14908 'dynamic dynamicType else enum extension fallthrough false final for func ' +
14909 'get guard if import in indirect infix init inout internal is lazy left let ' +
14910 'mutating nil none nonmutating operator optional override postfix precedence ' +
14911 'prefix private protocol Protocol public repeat required rethrows return ' +
14912 'right self Self set static struct subscript super switch throw throws true ' +
14913 'try try! try? Type typealias unowned var weak where while willSet',
14914 literal: 'true false nil',
14915 built_in: 'abs advance alignof alignofValue anyGenerator assert assertionFailure ' +
14916 'bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC ' +
14917 'bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros ' +
14918 'debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords ' +
14919 'enumerate equal fatalError filter find getBridgedObjectiveCType getVaList ' +
14920 'indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC ' +
14921 'isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare ' +
14922 'map max maxElement min minElement numericCast overlaps partition posix ' +
14923 'precondition preconditionFailure print println quickSort readLine reduce reflect ' +
14924 'reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split ' +
14925 'startsWith stride strideof strideofValue swap toString transcode ' +
14926 'underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap ' +
14927 'unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer ' +
14928 'withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers ' +
14929 'withUnsafePointer withUnsafePointers withVaList zip'
14930 };
14931
14932 var TYPE = {
14933 className: 'type',
14934 begin: '\\b[A-Z][\\w\']*',
14935 relevance: 0
14936 };
14937 var BLOCK_COMMENT = hljs.COMMENT(
14938 '/\\*',
14939 '\\*/',
14940 {
14941 contains: ['self']
14942 }
14943 );
14944 var SUBST = {
14945 className: 'subst',
14946 begin: /\\\(/, end: '\\)',
14947 keywords: SWIFT_KEYWORDS,
14948 contains: [] // assigned later
14949 };
14950 var NUMBERS = {
14951 className: 'number',
14952 begin: '\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b',
14953 relevance: 0
14954 };
14955 var QUOTE_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, {
14956 contains: [SUBST, hljs.BACKSLASH_ESCAPE]
14957 });
14958 SUBST.contains = [NUMBERS];
14959
14960 return {
14961 keywords: SWIFT_KEYWORDS,
14962 contains: [
14963 QUOTE_STRING_MODE,
14964 hljs.C_LINE_COMMENT_MODE,
14965 BLOCK_COMMENT,
14966 TYPE,
14967 NUMBERS,
14968 {
14969 className: 'function',
14970 beginKeywords: 'func', end: '{', excludeEnd: true,
14971 contains: [
14972 hljs.inherit(hljs.TITLE_MODE, {
14973 begin: /[A-Za-z$_][0-9A-Za-z$_]*/,
14974 illegal: /\(/
14975 }),
14976 {
14977 begin: /</, end: />/,
14978 illegal: />/
14979 },
14980 {
14981 className: 'params',
14982 begin: /\(/, end: /\)/, endsParent: true,
14983 keywords: SWIFT_KEYWORDS,
14984 contains: [
14985 'self',
14986 NUMBERS,
14987 QUOTE_STRING_MODE,
14988 hljs.C_BLOCK_COMMENT_MODE,
14989 {begin: ':'} // relevance booster
14990 ],
14991 illegal: /["']/
14992 }
14993 ],
14994 illegal: /\[|%/
14995 },
14996 {
14997 className: 'class',
14998 beginKeywords: 'struct protocol class extension enum',
14999 keywords: SWIFT_KEYWORDS,
15000 end: '\\{',
15001 excludeEnd: true,
15002 contains: [
15003 hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/})
15004 ]
15005 },
15006 {
15007 className: 'meta', // @attributes
15008 begin: '(@warn_unused_result|@exported|@lazy|@noescape|' +
15009 '@NSCopying|@NSManaged|@objc|@convention|@required|' +
15010 '@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|' +
15011 '@infix|@prefix|@postfix|@autoclosure|@testable|@available|' +
15012 '@nonobjc|@NSApplicationMain|@UIApplicationMain)'
15013
15014 },
15015 {
15016 beginKeywords: 'import', end: /$/,
15017 contains: [hljs.C_LINE_COMMENT_MODE, BLOCK_COMMENT]
15018 }
15019 ]
15020 };
15021}
15022},{name:"tcl",create:/*
15023Language: Tcl
15024Author: Radek Liska <radekliska@gmail.com>
15025*/
15026
15027function(hljs) {
15028 return {
15029 aliases: ['tk'],
15030 keywords: 'after append apply array auto_execok auto_import auto_load auto_mkindex ' +
15031 'auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock ' +
15032 'close concat continue dde dict encoding eof error eval exec exit expr fblocked ' +
15033 'fconfigure fcopy file fileevent filename flush for foreach format gets glob global ' +
15034 'history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list ' +
15035 'llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 '+
15036 'mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex '+
15037 'platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename '+
15038 'return safe scan seek set socket source split string subst switch tcl_endOfWord '+
15039 'tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter '+
15040 'tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update '+
15041 'uplevel upvar variable vwait while',
15042 contains: [
15043 hljs.COMMENT(';[ \\t]*#', '$'),
15044 hljs.COMMENT('^[ \\t]*#', '$'),
15045 {
15046 beginKeywords: 'proc',
15047 end: '[\\{]',
15048 excludeEnd: true,
15049 contains: [
15050 {
15051 className: 'title',
15052 begin: '[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',
15053 end: '[ \\t\\n\\r]',
15054 endsWithParent: true,
15055 excludeEnd: true
15056 }
15057 ]
15058 },
15059 {
15060 excludeEnd: true,
15061 variants: [
15062 {
15063 begin: '\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)',
15064 end: '[^a-zA-Z0-9_\\}\\$]'
15065 },
15066 {
15067 begin: '\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',
15068 end: '(\\))?[^a-zA-Z0-9_\\}\\$]'
15069 }
15070 ]
15071 },
15072 {
15073 className: 'string',
15074 contains: [hljs.BACKSLASH_ESCAPE],
15075 variants: [
15076 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
15077 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
15078 ]
15079 },
15080 {
15081 className: 'number',
15082 variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]
15083 }
15084 ]
15085 }
15086}
15087},{name:"tex",create:/*
15088Language: TeX
15089Author: Vladimir Moskva <vladmos@gmail.com>
15090Website: http://fulc.ru/
15091Category: markup
15092*/
15093
15094function(hljs) {
15095 var COMMAND = {
15096 className: 'tag',
15097 begin: /\\/,
15098 relevance: 0,
15099 contains: [
15100 {
15101 className: 'name',
15102 variants: [
15103 {begin: /[a-zA-Zะฐ-ัะ-ั]+[*]?/},
15104 {begin: /[^a-zA-Zะฐ-ัะ-ั0-9]/}
15105 ],
15106 starts: {
15107 endsWithParent: true,
15108 relevance: 0,
15109 contains: [
15110 {
15111 className: 'string', // because it looks like attributes in HTML tags
15112 variants: [
15113 {begin: /\[/, end: /\]/},
15114 {begin: /\{/, end: /\}/}
15115 ]
15116 },
15117 {
15118 begin: /\s*=\s*/, endsWithParent: true,
15119 relevance: 0,
15120 contains: [
15121 {
15122 className: 'number',
15123 begin: /-?\d*\.?\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?/
15124 }
15125 ]
15126 }
15127 ]
15128 }
15129 }
15130 ]
15131 };
15132
15133 return {
15134 contains: [
15135 COMMAND,
15136 {
15137 className: 'formula',
15138 contains: [COMMAND],
15139 relevance: 0,
15140 variants: [
15141 {begin: /\$\$/, end: /\$\$/},
15142 {begin: /\$/, end: /\$/}
15143 ]
15144 },
15145 hljs.COMMENT(
15146 '%',
15147 '$',
15148 {
15149 relevance: 0
15150 }
15151 )
15152 ]
15153 };
15154}
15155},{name:"thrift",create:/*
15156Language: Thrift
15157Author: Oleg Efimov <efimovov@gmail.com>
15158Description: Thrift message definition format
15159Category: protocols
15160*/
15161
15162function(hljs) {
15163 var BUILT_IN_TYPES = 'bool byte i16 i32 i64 double string binary';
15164 return {
15165 keywords: {
15166 keyword:
15167 'namespace const typedef struct enum service exception void oneway set list map required optional',
15168 built_in:
15169 BUILT_IN_TYPES,
15170 literal:
15171 'true false'
15172 },
15173 contains: [
15174 hljs.QUOTE_STRING_MODE,
15175 hljs.NUMBER_MODE,
15176 hljs.C_LINE_COMMENT_MODE,
15177 hljs.C_BLOCK_COMMENT_MODE,
15178 {
15179 className: 'class',
15180 beginKeywords: 'struct enum service exception', end: /\{/,
15181 illegal: /\n/,
15182 contains: [
15183 hljs.inherit(hljs.TITLE_MODE, {
15184 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
15185 })
15186 ]
15187 },
15188 {
15189 begin: '\\b(set|list|map)\\s*<', end: '>',
15190 keywords: BUILT_IN_TYPES,
15191 contains: ['self']
15192 }
15193 ]
15194 };
15195}
15196},{name:"tp",create:/*
15197Language: TP
15198Author: Jay Strybis <jay.strybis@gmail.com>
15199Description: FANUC TP programming language (TPP).
15200*/
15201
15202
15203function(hljs) {
15204 var TPID = {
15205 className: 'number',
15206 begin: '[1-9][0-9]*', /* no leading zeros */
15207 relevance: 0
15208 };
15209 var TPLABEL = {
15210 className: 'symbol',
15211 begin: ':[^\\]]+'
15212 };
15213 var TPDATA = {
15214 className: 'built_in',
15215 begin: '(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|\
15216 TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[', end: '\\]',
15217 contains: [
15218 'self',
15219 TPID,
15220 TPLABEL
15221 ]
15222 };
15223 var TPIO = {
15224 className: 'built_in',
15225 begin: '(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[', end: '\\]',
15226 contains: [
15227 'self',
15228 TPID,
15229 hljs.QUOTE_STRING_MODE, /* for pos section at bottom */
15230 TPLABEL
15231 ]
15232 };
15233
15234 return {
15235 keywords: {
15236 keyword:
15237 'ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB ' +
15238 'DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC ' +
15239 'IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE ' +
15240 'PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET ' +
15241 'Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN ' +
15242 'SUBSTR FINDSTR VOFFSET PROG ATTR MN POS',
15243 literal:
15244 'ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET'
15245 },
15246 contains: [
15247 TPDATA,
15248 TPIO,
15249 {
15250 className: 'keyword',
15251 begin: '/(PROG|ATTR|MN|POS|END)\\b'
15252 },
15253 {
15254 /* this is for cases like ,CALL */
15255 className: 'keyword',
15256 begin: '(CALL|RUN|POINT_LOGIC|LBL)\\b'
15257 },
15258 {
15259 /* this is for cases like CNT100 where the default lexemes do not
15260 * separate the keyword and the number */
15261 className: 'keyword',
15262 begin: '\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)'
15263 },
15264 {
15265 /* to catch numbers that do not have a word boundary on the left */
15266 className: 'number',
15267 begin: '\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b',
15268 relevance: 0
15269 },
15270 hljs.COMMENT('//', '[;$]'),
15271 hljs.COMMENT('!', '[;$]'),
15272 hljs.COMMENT('--eg:', '$'),
15273 hljs.QUOTE_STRING_MODE,
15274 {
15275 className: 'string',
15276 begin: '\'', end: '\''
15277 },
15278 hljs.C_NUMBER_MODE,
15279 {
15280 className: 'variable',
15281 begin: '\\$[A-Za-z0-9_]+'
15282 }
15283 ]
15284 };
15285}
15286},{name:"twig",create:/*
15287Language: Twig
15288Requires: xml.js
15289Author: Luke Holder <lukemh@gmail.com>
15290Description: Twig is a templating language for PHP
15291Category: template
15292*/
15293
15294function(hljs) {
15295 var PARAMS = {
15296 className: 'params',
15297 begin: '\\(', end: '\\)'
15298 };
15299
15300 var FUNCTION_NAMES = 'attribute block constant cycle date dump include ' +
15301 'max min parent random range source template_from_string';
15302
15303 var FUNCTIONS = {
15304 beginKeywords: FUNCTION_NAMES,
15305 keywords: {name: FUNCTION_NAMES},
15306 relevance: 0,
15307 contains: [
15308 PARAMS
15309 ]
15310 };
15311
15312 var FILTER = {
15313 begin: /\|[A-Za-z_]+:?/,
15314 keywords:
15315 'abs batch capitalize convert_encoding date date_modify default ' +
15316 'escape first format join json_encode keys last length lower ' +
15317 'merge nl2br number_format raw replace reverse round slice sort split ' +
15318 'striptags title trim upper url_encode',
15319 contains: [
15320 FUNCTIONS
15321 ]
15322 };
15323
15324 var TAGS = 'autoescape block do embed extends filter flush for ' +
15325 'if import include macro sandbox set spaceless use verbatim';
15326
15327 TAGS = TAGS + ' ' + TAGS.split(' ').map(function(t){return 'end' + t}).join(' ');
15328
15329 return {
15330 aliases: ['craftcms'],
15331 case_insensitive: true,
15332 subLanguage: 'xml',
15333 contains: [
15334 hljs.COMMENT(/\{#/, /#}/),
15335 {
15336 className: 'template-tag',
15337 begin: /\{%/, end: /%}/,
15338 contains: [
15339 {
15340 className: 'name',
15341 begin: /\w+/,
15342 keywords: TAGS,
15343 starts: {
15344 endsWithParent: true,
15345 contains: [FILTER, FUNCTIONS],
15346 relevance: 0
15347 }
15348 }
15349 ]
15350 },
15351 {
15352 className: 'template-variable',
15353 begin: /\{\{/, end: /}}/,
15354 contains: ['self', FILTER, FUNCTIONS]
15355 }
15356 ]
15357 };
15358}
15359},{name:"typescript",create:/*
15360Language: TypeScript
15361Author: Panu Horsmalahti <panu.horsmalahti@iki.fi>
15362Description: TypeScript is a strict superset of JavaScript
15363Category: scripting
15364*/
15365
15366function(hljs) {
15367 var KEYWORDS = {
15368 keyword:
15369 'in if for while finally var new function do return void else break catch ' +
15370 'instanceof with throw case default try this switch continue typeof delete ' +
15371 'let yield const class public private protected get set super ' +
15372 'static implements enum export import declare type namespace abstract',
15373 literal:
15374 'true false null undefined NaN Infinity',
15375 built_in:
15376 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +
15377 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +
15378 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +
15379 'TypeError URIError Number Math Date String RegExp Array Float32Array ' +
15380 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +
15381 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +
15382 'module console window document any number boolean string void'
15383 };
15384
15385 return {
15386 aliases: ['ts'],
15387 keywords: KEYWORDS,
15388 contains: [
15389 {
15390 className: 'meta',
15391 begin: /^\s*['"]use strict['"]/
15392 },
15393 hljs.APOS_STRING_MODE,
15394 hljs.QUOTE_STRING_MODE,
15395 { // template string
15396 className: 'string',
15397 begin: '`', end: '`',
15398 contains: [
15399 hljs.BACKSLASH_ESCAPE,
15400 {
15401 className: 'subst',
15402 begin: '\\$\\{', end: '\\}'
15403 }
15404 ]
15405 },
15406 hljs.C_LINE_COMMENT_MODE,
15407 hljs.C_BLOCK_COMMENT_MODE,
15408 {
15409 className: 'number',
15410 variants: [
15411 { begin: '\\b(0[bB][01]+)' },
15412 { begin: '\\b(0[oO][0-7]+)' },
15413 { begin: hljs.C_NUMBER_RE }
15414 ],
15415 relevance: 0
15416 },
15417 { // "value" container
15418 begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
15419 keywords: 'return throw case',
15420 contains: [
15421 hljs.C_LINE_COMMENT_MODE,
15422 hljs.C_BLOCK_COMMENT_MODE,
15423 hljs.REGEXP_MODE
15424 ],
15425 relevance: 0
15426 },
15427 {
15428 className: 'function',
15429 begin: 'function', end: /[\{;]/, excludeEnd: true,
15430 keywords: KEYWORDS,
15431 contains: [
15432 'self',
15433 hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}),
15434 {
15435 className: 'params',
15436 begin: /\(/, end: /\)/,
15437 excludeBegin: true,
15438 excludeEnd: true,
15439 keywords: KEYWORDS,
15440 contains: [
15441 hljs.C_LINE_COMMENT_MODE,
15442 hljs.C_BLOCK_COMMENT_MODE
15443 ],
15444 illegal: /["'\(]/
15445 }
15446 ],
15447 illegal: /\[|%/,
15448 relevance: 0 // () => {} is more typical in TypeScript
15449 },
15450 {
15451 beginKeywords: 'constructor', end: /\{/, excludeEnd: true
15452 },
15453 {
15454 beginKeywords: 'module', end: /\{/, excludeEnd: true
15455 },
15456 {
15457 beginKeywords: 'interface', end: /\{/, excludeEnd: true,
15458 keywords: 'interface extends'
15459 },
15460 {
15461 begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
15462 },
15463 {
15464 begin: '\\.' + hljs.IDENT_RE, relevance: 0 // hack: prevents detection of keywords after dots
15465 }
15466 ]
15467 };
15468}
15469},{name:"vala",create:/*
15470Language: Vala
15471Author: Antono Vasiljev <antono.vasiljev@gmail.com>
15472Description: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.
15473*/
15474
15475function(hljs) {
15476 return {
15477 keywords: {
15478 keyword:
15479 // Value types
15480 'char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 ' +
15481 'uint16 uint32 uint64 float double bool struct enum string void ' +
15482 // Reference types
15483 'weak unowned owned ' +
15484 // Modifiers
15485 'async signal static abstract interface override ' +
15486 // Control Structures
15487 'while do for foreach else switch case break default return try catch ' +
15488 // Visibility
15489 'public private protected internal ' +
15490 // Other
15491 'using new this get set const stdout stdin stderr var',
15492 built_in:
15493 'DBus GLib CCode Gee Object',
15494 literal:
15495 'false true null'
15496 },
15497 contains: [
15498 {
15499 className: 'class',
15500 beginKeywords: 'class interface delegate namespace', end: '{', excludeEnd: true,
15501 illegal: '[^,:\\n\\s\\.]',
15502 contains: [
15503 hljs.UNDERSCORE_TITLE_MODE
15504 ]
15505 },
15506 hljs.C_LINE_COMMENT_MODE,
15507 hljs.C_BLOCK_COMMENT_MODE,
15508 {
15509 className: 'string',
15510 begin: '"""', end: '"""',
15511 relevance: 5
15512 },
15513 hljs.APOS_STRING_MODE,
15514 hljs.QUOTE_STRING_MODE,
15515 hljs.C_NUMBER_MODE,
15516 {
15517 className: 'meta',
15518 begin: '^#', end: '$',
15519 relevance: 2
15520 }
15521 ]
15522 };
15523}
15524},{name:"vbnet",create:/*
15525Language: VB.NET
15526Author: Poren Chiang <ren.chiang@gmail.com>
15527*/
15528
15529function(hljs) {
15530 return {
15531 aliases: ['vb'],
15532 case_insensitive: true,
15533 keywords: {
15534 keyword:
15535 'addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval ' + /* a-b */
15536 'call case catch class compare const continue custom declare default delegate dim distinct do ' + /* c-d */
15537 'each equals else elseif end enum erase error event exit explicit finally for friend from function ' + /* e-f */
15538 'get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue ' + /* g-i */
15539 'join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass ' + /* j-m */
15540 'namespace narrowing new next not notinheritable notoverridable ' + /* n */
15541 'of off on operator option optional or order orelse overloads overridable overrides ' + /* o */
15542 'paramarray partial preserve private property protected public ' + /* p */
15543 'raiseevent readonly redim rem removehandler resume return ' + /* r */
15544 'select set shadows shared skip static step stop structure strict sub synclock ' + /* s */
15545 'take text then throw to try unicode until using when where while widening with withevents writeonly xor', /* t-x */
15546 built_in:
15547 'boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype ' + /* b-c */
15548 'date decimal directcast double gettype getxmlnamespace iif integer long object ' + /* d-o */
15549 'sbyte short single string trycast typeof uinteger ulong ushort', /* s-u */
15550 literal:
15551 'true false nothing'
15552 },
15553 illegal: '//|{|}|endif|gosub|variant|wend', /* reserved deprecated keywords */
15554 contains: [
15555 hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '""'}]}),
15556 hljs.COMMENT(
15557 '\'',
15558 '$',
15559 {
15560 returnBegin: true,
15561 contains: [
15562 {
15563 className: 'doctag',
15564 begin: '\'\'\'|<!--|-->',
15565 contains: [hljs.PHRASAL_WORDS_MODE]
15566 },
15567 {
15568 className: 'doctag',
15569 begin: '</?', end: '>',
15570 contains: [hljs.PHRASAL_WORDS_MODE]
15571 }
15572 ]
15573 }
15574 ),
15575 hljs.C_NUMBER_MODE,
15576 {
15577 className: 'meta',
15578 begin: '#', end: '$',
15579 keywords: {'meta-keyword': 'if else elseif end region externalsource'}
15580 }
15581 ]
15582 };
15583}
15584},{name:"vbscript-html",create:/*
15585Language: VBScript in HTML
15586Requires: xml.js, vbscript.js
15587Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
15588Description: "Bridge" language defining fragments of VBScript in HTML within <% .. %>
15589Category: scripting
15590*/
15591
15592function(hljs) {
15593 return {
15594 subLanguage: 'xml',
15595 contains: [
15596 {
15597 begin: '<%', end: '%>',
15598 subLanguage: 'vbscript'
15599 }
15600 ]
15601 };
15602}
15603},{name:"vbscript",create:/*
15604Language: VBScript
15605Author: Nikita Ledyaev <lenikita@yandex.ru>
15606Contributors: Michal Gabrukiewicz <mgabru@gmail.com>
15607Category: scripting
15608*/
15609
15610function(hljs) {
15611 return {
15612 aliases: ['vbs'],
15613 case_insensitive: true,
15614 keywords: {
15615 keyword:
15616 'call class const dim do loop erase execute executeglobal exit for each next function ' +
15617 'if then else on error option explicit new private property let get public randomize ' +
15618 'redim rem select case set stop sub while wend with end to elseif is or xor and not ' +
15619 'class_initialize class_terminate default preserve in me byval byref step resume goto',
15620 built_in:
15621 'lcase month vartype instrrev ubound setlocale getobject rgb getref string ' +
15622 'weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency ' +
15623 'conversions csng timevalue second year space abs clng timeserial fixs len asc ' +
15624 'isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate ' +
15625 'instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex ' +
15626 'chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim ' +
15627 'strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion ' +
15628 'scriptengine split scriptengineminorversion cint sin datepart ltrim sqr ' +
15629 'scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw ' +
15630 'chrw regexp server response request cstr err',
15631 literal:
15632 'true false null nothing empty'
15633 },
15634 illegal: '//',
15635 contains: [
15636 hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '""'}]}),
15637 hljs.COMMENT(
15638 /'/,
15639 /$/,
15640 {
15641 relevance: 0
15642 }
15643 ),
15644 hljs.C_NUMBER_MODE
15645 ]
15646 };
15647}
15648},{name:"verilog",create:/*
15649Language: Verilog
15650Author: Jon Evans <jon@craftyjon.com>
15651Description: Verilog is a hardware description language used in electronic design automation to describe digital and mixed-signal systems. This highlighter is based on Verilog-1995.
15652*/
15653
15654function(hljs) {
15655 return {
15656 aliases: ['v'],
15657 case_insensitive: true,
15658 keywords: {
15659 keyword:
15660 'always and assign begin buf bufif0 bufif1 case casex casez cmos deassign ' +
15661 'default defparam disable edge else end endcase endfunction endmodule ' +
15662 'endprimitive endspecify endtable endtask event for force forever fork ' +
15663 'function if ifnone initial inout input join macromodule module nand ' +
15664 'negedge nmos nor not notif0 notif1 or output parameter pmos posedge ' +
15665 'primitive pulldown pullup rcmos release repeat rnmos rpmos rtran ' +
15666 'rtranif0 rtranif1 specify specparam table task timescale tran ' +
15667 'tranif0 tranif1 wait while xnor xor ' +
15668 // types
15669 'highz0 highz1 integer large medium pull0 pull1 real realtime reg ' +
15670 'scalared signed small strong0 strong1 supply0 supply0 supply1 supply1 ' +
15671 'time tri tri0 tri1 triand trior trireg vectored wand weak0 weak1 wire wor'
15672 },
15673 contains: [
15674 hljs.C_BLOCK_COMMENT_MODE,
15675 hljs.C_LINE_COMMENT_MODE,
15676 hljs.QUOTE_STRING_MODE,
15677 {
15678 className: 'number',
15679 begin: '\\b(\\d+\'(b|h|o|d|B|H|O|D))?[0-9xzXZ]+',
15680 contains: [hljs.BACKSLASH_ESCAPE],
15681 relevance: 0
15682 },
15683 /* parameters to instances */
15684 {
15685 className: 'variable',
15686 begin: '#\\((?!parameter).+\\)'
15687 }
15688 ]
15689 }; // return
15690}
15691},{name:"vhdl",create:/*
15692Language: VHDL
15693Author: Igor Kalnitsky <igor@kalnitsky.org>
15694Contributors: Daniel C.K. Kho <daniel.kho@gmail.com>, Guillaume Savaton <guillaume.savaton@eseo.fr>
15695Description: VHDL is a hardware description language used in electronic design automation to describe digital and mixed-signal systems.
15696*/
15697
15698function(hljs) {
15699 // Regular expression for VHDL numeric literals.
15700
15701 // Decimal literal:
15702 var INTEGER_RE = '\\d(_|\\d)*';
15703 var EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;
15704 var DECIMAL_LITERAL_RE = INTEGER_RE + '(\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';
15705 // Based literal:
15706 var BASED_INTEGER_RE = '\\w+';
15707 var BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';
15708
15709 var NUMBER_RE = '\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';
15710
15711 return {
15712 case_insensitive: true,
15713 keywords: {
15714 keyword:
15715 'abs access after alias all and architecture array assert attribute begin block ' +
15716 'body buffer bus case component configuration constant context cover disconnect ' +
15717 'downto default else elsif end entity exit fairness file for force function generate ' +
15718 'generic group guarded if impure in inertial inout is label library linkage literal ' +
15719 'loop map mod nand new next nor not null of on open or others out package port ' +
15720 'postponed procedure process property protected pure range record register reject ' +
15721 'release rem report restrict restrict_guarantee return rol ror select sequence ' +
15722 'severity shared signal sla sll sra srl strong subtype then to transport type ' +
15723 'unaffected units until use variable vmode vprop vunit wait when while with xnor xor',
15724 built_in:
15725 'boolean bit character severity_level integer time delay_length natural positive ' +
15726 'string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector ' +
15727 'std_logic std_logic_vector unsigned signed boolean_vector integer_vector ' +
15728 'real_vector time_vector'
15729 },
15730 illegal: '{',
15731 contains: [
15732 hljs.C_BLOCK_COMMENT_MODE, // VHDL-2008 block commenting.
15733 hljs.COMMENT('--', '$'),
15734 hljs.QUOTE_STRING_MODE,
15735 {
15736 className: 'number',
15737 begin: NUMBER_RE,
15738 relevance: 0
15739 },
15740 {
15741 className: 'literal',
15742 begin: '\'(U|X|0|1|Z|W|L|H|-)\'',
15743 contains: [hljs.BACKSLASH_ESCAPE]
15744 },
15745 {
15746 className: 'symbol',
15747 begin: '\'[A-Za-z](_?[A-Za-z0-9])*',
15748 contains: [hljs.BACKSLASH_ESCAPE]
15749 }
15750 ]
15751 };
15752}
15753},{name:"vim",create:/*
15754Language: Vim Script
15755Author: Jun Yang <yangjvn@126.com>
15756Description: full keyword and built-in from http://vimdoc.sourceforge.net/htmldoc/
15757Category: scripting
15758*/
15759
15760function(hljs) {
15761 return {
15762 lexemes: /[!#@\w]+/,
15763 keywords: {
15764 keyword: //ex command
15765 // express version except: ! & * < = > !! # @ @@
15766 '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 '+
15767 'cp cpf cq cr cs cst cu cuna cunme cw d|0 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 g|0 go gr grepa gu gv ha h|0 helpf helpg helpt hi hid his i|0 ia iabc if ij il im imapc '+
15768 '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 n|0 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 '+
15769 '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 q|0 quita qa r|0 rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv s|0 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 '+
15770 '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 t|0 tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew '+
15771 '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 v|0 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 ~ '+
15772 // full version
15773 '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 '+
15774 '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 '+
15775 '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 '+
15776 '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 '+
15777 '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 '+
15778 '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 '+
15779 '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 '+
15780 '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 '+
15781 '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 '+
15782 '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 '+
15783 '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',
15784 built_in: //built in func
15785 'abs acos add and append argc argidx argv asin atan atan2 browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call ceil changenr char2nr cindent clearmatches col complete complete_add complete_check confirm copy cos cosh count cscope_connection cursor '+
15786 'deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists exp expand extend feedkeys filereadable filewritable filter finddir findfile float2nr floor fmod fnameescape fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function '+
15787 'garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getmatches getpid getpos getqflist getreg getregtype gettabvar gettabwinvar getwinposx getwinposy getwinvar glob globpath has has_key '+
15788 'haslocaldir hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert invert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime log log10 luaeval map maparg mapcheck '+
15789 'match matchadd matcharg matchdelete matchend matchlist matchstr max min mkdir mode mzeval nextnonblank nr2char or pathshorten pow prevnonblank printf pumvisible py3eval pyeval range readfile reltime reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat '+
15790 'resolve reverse round screenattr screenchar screencol screenrow search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setmatches setpos setqflist setreg settabvar settabwinvar setwinvar sha256 shellescape shiftwidth simplify sin '+
15791 'sinh sort soundfold spellbadword spellsuggest split sqrt str2float str2nr strchars strdisplaywidth strftime stridx string strlen strpart strridx strtrans strwidth submatch substitute synconcealed synID synIDattr '+
15792 'synIDtrans synstack system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tan tanh tempname tolower toupper tr trunc type undofile undotree values virtcol visualmode wildmenumode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile xor'
15793 },
15794 illegal: /[{:]/,
15795 contains: [
15796 hljs.NUMBER_MODE,
15797 hljs.APOS_STRING_MODE,
15798 {
15799 className: 'string',
15800 // quote with escape, comment as quote
15801 begin: /"((\\")|[^"\n])*("|\n)/
15802 },
15803 {
15804 className: 'variable',
15805 begin: /[bwtglsav]:[\w\d_]*/
15806 },
15807 {
15808 className: 'function',
15809 beginKeywords: 'function function!', end: '$',
15810 relevance: 0,
15811 contains: [
15812 hljs.TITLE_MODE,
15813 {
15814 className: 'params',
15815 begin: '\\(', end: '\\)'
15816 }
15817 ]
15818 }
15819 ]
15820 };
15821}
15822},{name:"x86asm",create:/*
15823Language: Intel x86 Assembly
15824Author: innocenat <innocenat@gmail.com>
15825Description: x86 assembly language using Intel's mnemonic and NASM syntax
15826Category: assembler
15827*/
15828
15829function(hljs) {
15830 return {
15831 case_insensitive: true,
15832 lexemes: '[.%]?' + hljs.IDENT_RE,
15833 keywords: {
15834 keyword:
15835 'lock rep repe repz repne repnz xaquire xrelease bnd nobnd ' +
15836 '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',
15837 built_in:
15838 // Instruction pointer
15839 'ip eip rip ' +
15840 // 8-bit registers
15841 'al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ' +
15842 // 16-bit registers
15843 'ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w ' +
15844 // 32-bit registers
15845 'eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d ' +
15846 // 64-bit registers
15847 'rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 ' +
15848 // Segment registers
15849 'cs ds es fs gs ss ' +
15850 // Floating point stack registers
15851 'st st0 st1 st2 st3 st4 st5 st6 st7 ' +
15852 // MMX Registers
15853 'mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 ' +
15854 // SSE registers
15855 'xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 ' +
15856 'xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ' +
15857 // AVX registers
15858 'ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ' +
15859 'ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 ' +
15860 // AVX-512F registers
15861 'zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 ' +
15862 'zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 ' +
15863 // AVX-512F mask registers
15864 'k0 k1 k2 k3 k4 k5 k6 k7 ' +
15865 // Bound (MPX) register
15866 'bnd0 bnd1 bnd2 bnd3 ' +
15867 // Special register
15868 'cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 ' +
15869 // NASM altreg package
15870 'r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b ' +
15871 'r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d ' +
15872 'r0h r1h r2h r3h ' +
15873 'r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l ' +
15874
15875 'db dw dd dq dt ddq do dy dz ' +
15876 'resb resw resd resq rest resdq reso resy resz ' +
15877 'incbin equ times ' +
15878 'byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr',
15879
15880 meta:
15881 '%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif ' +
15882 '%if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep ' +
15883 '%endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment ' +
15884 '.nolist ' +
15885 '__FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ ' +
15886 '__UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend ' +
15887 'align alignb sectalign daz nodaz up down zero default option assume public ' +
15888
15889 'bits use16 use32 use64 default section segment absolute extern global common cpu float ' +
15890 '__utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ ' +
15891 '__float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ ' +
15892 '__Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e ' +
15893 'float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__'
15894 },
15895 contains: [
15896 hljs.COMMENT(
15897 ';',
15898 '$',
15899 {
15900 relevance: 0
15901 }
15902 ),
15903 {
15904 className: 'number',
15905 variants: [
15906 // Float number and x87 BCD
15907 {
15908 begin: '\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|' +
15909 '(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b',
15910 relevance: 0
15911 },
15912
15913 // Hex number in $
15914 { begin: '\\$[0-9][0-9A-Fa-f]*', relevance: 0 },
15915
15916 // Number in H,D,T,Q,O,B,Y suffix
15917 { 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' },
15918
15919 // Number in X,D,T,Q,O,B,Y prefix
15920 { begin: '\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b'}
15921 ]
15922 },
15923 // Double quote string
15924 hljs.QUOTE_STRING_MODE,
15925 {
15926 className: 'string',
15927 variants: [
15928 // Single-quoted string
15929 { begin: '\'', end: '[^\\\\]\'' },
15930 // Backquoted string
15931 { begin: '`', end: '[^\\\\]`' },
15932 // Section name
15933 { begin: '\\.[A-Za-z0-9]+' }
15934 ],
15935 relevance: 0
15936 },
15937 {
15938 className: 'symbol',
15939 variants: [
15940 // Global label and local label
15941 { begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)' },
15942 // Macro-local label
15943 { begin: '^\\s*%%[A-Za-z0-9_$#@~.?]*:' }
15944 ],
15945 relevance: 0
15946 },
15947 // Macro parameter
15948 {
15949 className: 'subst',
15950 begin: '%[0-9]+',
15951 relevance: 0
15952 },
15953 // Macro parameter
15954 {
15955 className: 'subst',
15956 begin: '%!\S+',
15957 relevance: 0
15958 }
15959 ]
15960 };
15961}
15962},{name:"xl",create:/*
15963Language: XL
15964Author: Christophe de Dinechin <christophe@taodyne.com>
15965Description: An extensible programming language, based on parse tree rewriting (http://xlr.sf.net)
15966*/
15967
15968function(hljs) {
15969 var BUILTIN_MODULES =
15970 'ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo ' +
15971 'StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts';
15972
15973 var XL_KEYWORDS = {
15974 keyword:
15975 'if then else do while until for loop import with is as where when by data constant ' +
15976 'integer real text name boolean symbol infix prefix postfix block tree',
15977 literal:
15978 'true false nil',
15979 built_in:
15980 'in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin ' +
15981 'acos atan exp expm1 log log2 log10 log1p pi at text_length text_range ' +
15982 'text_find text_replace contains page slide basic_slide title_slide ' +
15983 'title subtitle fade_in fade_out fade_at clear_color color line_color ' +
15984 'line_width texture_wrap texture_transform texture scale_?x scale_?y ' +
15985 'scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y ' +
15986 'rotate_?z? rectangle circle ellipse sphere path line_to move_to ' +
15987 'quad_to curve_to theme background contents locally time mouse_?x ' +
15988 'mouse_?y mouse_buttons ' +
15989 BUILTIN_MODULES
15990 };
15991
15992 var DOUBLE_QUOTE_TEXT = {
15993 className: 'string',
15994 begin: '"', end: '"', illegal: '\\n'
15995 };
15996 var SINGLE_QUOTE_TEXT = {
15997 className: 'string',
15998 begin: '\'', end: '\'', illegal: '\\n'
15999 };
16000 var LONG_TEXT = {
16001 className: 'string',
16002 begin: '<<', end: '>>'
16003 };
16004 var BASED_NUMBER = {
16005 className: 'number',
16006 begin: '[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?'
16007 };
16008 var IMPORT = {
16009 beginKeywords: 'import', end: '$',
16010 keywords: XL_KEYWORDS,
16011 contains: [DOUBLE_QUOTE_TEXT]
16012 };
16013 var FUNCTION_DEFINITION = {
16014 className: 'function',
16015 begin: /[a-z][^\n]*->/, returnBegin: true, end: /->/,
16016 contains: [
16017 hljs.inherit(hljs.TITLE_MODE, {starts: {
16018 endsWithParent: true,
16019 keywords: XL_KEYWORDS
16020 }})
16021 ]
16022 };
16023 return {
16024 aliases: ['tao'],
16025 lexemes: /[a-zA-Z][a-zA-Z0-9_?]*/,
16026 keywords: XL_KEYWORDS,
16027 contains: [
16028 hljs.C_LINE_COMMENT_MODE,
16029 hljs.C_BLOCK_COMMENT_MODE,
16030 DOUBLE_QUOTE_TEXT,
16031 SINGLE_QUOTE_TEXT,
16032 LONG_TEXT,
16033 FUNCTION_DEFINITION,
16034 IMPORT,
16035 BASED_NUMBER,
16036 hljs.NUMBER_MODE
16037 ]
16038 };
16039}
16040},{name:"xml",create:/*
16041Language: HTML, XML
16042Category: common
16043*/
16044
16045function(hljs) {
16046 var XML_IDENT_RE = '[A-Za-z0-9\\._:-]+';
16047 var PHP = {
16048 begin: /<\?(php)?(?!\w)/, end: /\?>/,
16049 subLanguage: 'php'
16050 };
16051 var TAG_INTERNALS = {
16052 endsWithParent: true,
16053 illegal: /</,
16054 relevance: 0,
16055 contains: [
16056 PHP,
16057 {
16058 className: 'attr',
16059 begin: XML_IDENT_RE,
16060 relevance: 0
16061 },
16062 {
16063 begin: '=',
16064 relevance: 0,
16065 contains: [
16066 {
16067 className: 'string',
16068 contains: [PHP],
16069 variants: [
16070 {begin: /"/, end: /"/},
16071 {begin: /'/, end: /'/},
16072 {begin: /[^\s\/>]+/}
16073 ]
16074 }
16075 ]
16076 }
16077 ]
16078 };
16079 return {
16080 aliases: ['html', 'xhtml', 'rss', 'atom', 'xsl', 'plist'],
16081 case_insensitive: true,
16082 contains: [
16083 {
16084 className: 'meta',
16085 begin: '<!DOCTYPE', end: '>',
16086 relevance: 10,
16087 contains: [{begin: '\\[', end: '\\]'}]
16088 },
16089 hljs.COMMENT(
16090 '<!--',
16091 '-->',
16092 {
16093 relevance: 10
16094 }
16095 ),
16096 {
16097 begin: '<\\!\\[CDATA\\[', end: '\\]\\]>',
16098 relevance: 10
16099 },
16100 {
16101 className: 'tag',
16102 /*
16103 The lookahead pattern (?=...) ensures that 'begin' only matches
16104 '<style' as a single word, followed by a whitespace or an
16105 ending braket. The '$' is needed for the lexeme to be recognized
16106 by hljs.subMode() that tests lexemes outside the stream.
16107 */
16108 begin: '<style(?=\\s|>|$)', end: '>',
16109 keywords: {name: 'style'},
16110 contains: [TAG_INTERNALS],
16111 starts: {
16112 end: '</style>', returnEnd: true,
16113 subLanguage: ['css', 'xml']
16114 }
16115 },
16116 {
16117 className: 'tag',
16118 // See the comment in the <style tag about the lookahead pattern
16119 begin: '<script(?=\\s|>|$)', end: '>',
16120 keywords: {name: 'script'},
16121 contains: [TAG_INTERNALS],
16122 starts: {
16123 end: '\<\/script\>', returnEnd: true,
16124 subLanguage: ['actionscript', 'javascript', 'handlebars', 'xml']
16125 }
16126 },
16127 PHP,
16128 {
16129 className: 'meta',
16130 begin: /<\?\w+/, end: /\?>/,
16131 relevance: 10
16132 },
16133 {
16134 className: 'tag',
16135 begin: '</?', end: '/?>',
16136 contains: [
16137 {
16138 className: 'name', begin: /[^\/><\s]+/, relevance: 0
16139 },
16140 TAG_INTERNALS
16141 ]
16142 }
16143 ]
16144 };
16145}
16146},{name:"xquery",create:/*
16147Language: XQuery
16148Author: Dirk Kirsten <dk@basex.org>
16149Description: Supports XQuery 3.1 including XQuery Update 3, so also XPath (as it is a superset)
16150Category: functional
16151*/
16152
16153function(hljs) {
16154 var KEYWORDS = 'for let if while then else return where group by xquery encoding version' +
16155 'module namespace boundary-space preserve strip default collation base-uri ordering' +
16156 'copy-namespaces order declare import schema namespace function option in allowing empty' +
16157 'at tumbling window sliding window start when only end when previous next stable ascending' +
16158 'descending empty greatest least some every satisfies switch case typeswitch try catch and' +
16159 'or to union intersect instance of treat as castable cast map array delete insert into' +
16160 'replace value rename copy modify update';
16161 var LITERAL = 'false true xs:string xs:integer element item xs:date xs:datetime xs:float xs:double xs:decimal QName xs:anyURI xs:long xs:int xs:short xs:byte attribute';
16162 var VAR = {
16163 begin: /\$[a-zA-Z0-9\-]+/,
16164 relevance: 5
16165 };
16166
16167 var NUMBER = {
16168 className: 'number',
16169 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
16170 relevance: 0
16171 };
16172
16173 var STRING = {
16174 className: 'string',
16175 variants: [
16176 {begin: /"/, end: /"/, contains: [{begin: /""/, relevance: 0}]},
16177 {begin: /'/, end: /'/, contains: [{begin: /''/, relevance: 0}]}
16178 ]
16179 };
16180
16181 var ANNOTATION = {
16182 className: 'meta',
16183 begin: '%\\w+'
16184 };
16185
16186 var COMMENT = {
16187 className: 'comment',
16188 begin: '\\(:', end: ':\\)',
16189 relevance: 10,
16190 contains: [
16191 {
16192 className: 'doctag', begin: '@\\w+'
16193 }
16194 ]
16195 };
16196
16197 var METHOD = {
16198 begin: '{', end: '}'
16199 };
16200
16201 var CONTAINS = [
16202 VAR,
16203 STRING,
16204 NUMBER,
16205 COMMENT,
16206 ANNOTATION,
16207 METHOD
16208 ];
16209 METHOD.contains = CONTAINS;
16210
16211
16212 return {
16213 aliases: ['xpath', 'xq'],
16214 case_insensitive: false,
16215 lexemes: /[a-zA-Z\$][a-zA-Z0-9_:\-]*/,
16216 illegal: /(proc)|(abstract)|(extends)|(until)|(#)/,
16217 keywords: {
16218 keyword: KEYWORDS,
16219 literal: LITERAL
16220 },
16221 contains: CONTAINS
16222 };
16223}
16224},{name:"yaml",create:/*
16225Language: YAML
16226Author: Stefan Wienert <stwienert@gmail.com>
16227Requires: ruby.js
16228Description: YAML (Yet Another Markdown Language)
16229Category: config
16230*/
16231function(hljs) {
16232 var LITERALS = {literal: '{ } true false yes no Yes No True False null'};
16233
16234 var keyPrefix = '^[ \\-]*';
16235 var keyName = '[a-zA-Z_][\\w\\-]*';
16236 var KEY = {
16237 className: 'attr',
16238 variants: [
16239 { begin: keyPrefix + keyName + ":"},
16240 { begin: keyPrefix + '"' + keyName + '"' + ":"},
16241 { begin: keyPrefix + "'" + keyName + "'" + ":"}
16242 ]
16243 };
16244
16245 var TEMPLATE_VARIABLES = {
16246 className: 'template-variable',
16247 variants: [
16248 { begin: '\{\{', end: '\}\}' }, // jinja templates Ansible
16249 { begin: '%\{', end: '\}' } // Ruby i18n
16250 ]
16251 };
16252 var STRING = {
16253 className: 'string',
16254 relevance: 0,
16255 variants: [
16256 {begin: /'/, end: /'/},
16257 {begin: /"/, end: /"/}
16258 ],
16259 contains: [
16260 hljs.BACKSLASH_ESCAPE,
16261 TEMPLATE_VARIABLES
16262 ]
16263 };
16264
16265 return {
16266 case_insensitive: true,
16267 aliases: ['yml', 'YAML', 'yaml'],
16268 contains: [
16269 KEY,
16270 {
16271 className: 'meta',
16272 begin: '^---\s*$',
16273 relevance: 10
16274 },
16275 { // multi line string
16276 className: 'string',
16277 begin: '[\\|>] *$',
16278 returnEnd: true,
16279 contains: STRING.contains,
16280 // very simple termination: next hash key
16281 end: KEY.variants[0].begin
16282 },
16283 { // Ruby/Rails erb
16284 begin: '<%[%=-]?', end: '[%-]?%>',
16285 subLanguage: 'ruby',
16286 excludeBegin: true,
16287 excludeEnd: true,
16288 relevance: 0
16289 },
16290 { // data type
16291 className: 'type',
16292 begin: '!!' + hljs.UNDERSCORE_IDENT_RE,
16293 },
16294 { // fragment id &ref
16295 className: 'meta',
16296 begin: '&' + hljs.UNDERSCORE_IDENT_RE + '$',
16297 },
16298 { // fragment reference *ref
16299 className: 'meta',
16300 begin: '\\*' + hljs.UNDERSCORE_IDENT_RE + '$'
16301 },
16302 { // array listing
16303 className: 'bullet',
16304 begin: '^ *-',
16305 relevance: 0
16306 },
16307 STRING,
16308 hljs.HASH_COMMENT_MODE,
16309 hljs.C_NUMBER_MODE
16310 ],
16311 keywords: LITERALS
16312 };
16313}
16314},{name:"zephir",create:/*
16315 Language: Zephir
16316 Author: Oleg Efimov <efimovov@gmail.com>
16317 */
16318
16319function(hljs) {
16320 var STRING = {
16321 className: 'string',
16322 contains: [hljs.BACKSLASH_ESCAPE],
16323 variants: [
16324 {
16325 begin: 'b"', end: '"'
16326 },
16327 {
16328 begin: 'b\'', end: '\''
16329 },
16330 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
16331 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
16332 ]
16333 };
16334 var NUMBER = {variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]};
16335 return {
16336 aliases: ['zep'],
16337 case_insensitive: true,
16338 keywords:
16339 'and include_once list abstract global private echo interface as static endswitch ' +
16340 'array null if endwhile or const for endforeach self var let while isset public ' +
16341 'protected exit foreach throw elseif include __FILE__ empty require_once do xor ' +
16342 'return parent clone use __CLASS__ __LINE__ else break print eval new ' +
16343 'catch __METHOD__ case exception default die require __FUNCTION__ ' +
16344 'enddeclare final try switch continue endfor endif declare unset true false ' +
16345 'trait goto instanceof insteadof __DIR__ __NAMESPACE__ ' +
16346 'yield finally int uint long ulong char uchar double float bool boolean string' +
16347 'likely unlikely',
16348 contains: [
16349 hljs.C_LINE_COMMENT_MODE,
16350 hljs.HASH_COMMENT_MODE,
16351 hljs.COMMENT(
16352 '/\\*',
16353 '\\*/',
16354 {
16355 contains: [
16356 {
16357 className: 'doctag',
16358 begin: '@[A-Za-z]+'
16359 }
16360 ]
16361 }
16362 ),
16363 hljs.COMMENT(
16364 '__halt_compiler.+?;',
16365 false,
16366 {
16367 endsWithParent: true,
16368 keywords: '__halt_compiler',
16369 lexemes: hljs.UNDERSCORE_IDENT_RE
16370 }
16371 ),
16372 {
16373 className: 'string',
16374 begin: '<<<[\'"]?\\w+[\'"]?$', end: '^\\w+;',
16375 contains: [hljs.BACKSLASH_ESCAPE]
16376 },
16377 {
16378 // swallow composed identifiers to avoid parsing them as keywords
16379 begin: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
16380 },
16381 {
16382 className: 'function',
16383 beginKeywords: 'function', end: /[;{]/, excludeEnd: true,
16384 illegal: '\\$|\\[|%',
16385 contains: [
16386 hljs.UNDERSCORE_TITLE_MODE,
16387 {
16388 className: 'params',
16389 begin: '\\(', end: '\\)',
16390 contains: [
16391 'self',
16392 hljs.C_BLOCK_COMMENT_MODE,
16393 STRING,
16394 NUMBER
16395 ]
16396 }
16397 ]
16398 },
16399 {
16400 className: 'class',
16401 beginKeywords: 'class interface', end: '{', excludeEnd: true,
16402 illegal: /[:\(\$"]/,
16403 contains: [
16404 {beginKeywords: 'extends implements'},
16405 hljs.UNDERSCORE_TITLE_MODE
16406 ]
16407 },
16408 {
16409 beginKeywords: 'namespace', end: ';',
16410 illegal: /[\.']/,
16411 contains: [hljs.UNDERSCORE_TITLE_MODE]
16412 },
16413 {
16414 beginKeywords: 'use', end: ';',
16415 contains: [hljs.UNDERSCORE_TITLE_MODE]
16416 },
16417 {
16418 begin: '=>' // No markup, just a relevance booster
16419 },
16420 STRING,
16421 NUMBER
16422 ]
16423 };
16424}
16425}]
16426 ;
16427
16428for (var i = 0; i < languages.length; ++i) {
16429 hljs.registerLanguage(languages[i].name, languages[i].create);
16430}
16431
16432module.exports = {
16433 styles: {"agate":".hljs-agate{}.hljs-agate .hljs{display:block;overflow-x:auto;padding:0.5em;background:#333;color:white;}.hljs-agate .hljs-name,.hljs-agate .hljs-strong{font-weight:bold;}.hljs-agate .hljs-code,.hljs-agate .hljs-emphasis{font-style:italic;}.hljs-agate .hljs-tag{color:#62c8f3;}.hljs-agate .hljs-variable,.hljs-agate .hljs-template-variable,.hljs-agate .hljs-selector-id,.hljs-agate .hljs-selector-class{color:#ade5fc;}.hljs-agate .hljs-string,.hljs-agate .hljs-bullet{color:#a2fca2;}.hljs-agate .hljs-type,.hljs-agate .hljs-title,.hljs-agate .hljs-section,.hljs-agate .hljs-attribute,.hljs-agate .hljs-quote,.hljs-agate .hljs-built_in,.hljs-agate .hljs-builtin-name{color:#ffa;}.hljs-agate .hljs-number,.hljs-agate .hljs-symbol,.hljs-agate .hljs-bullet{color:#d36363;}.hljs-agate .hljs-keyword,.hljs-agate .hljs-selector-tag,.hljs-agate .hljs-literal{color:#fcc28c;}.hljs-agate .hljs-comment,.hljs-agate .hljs-deletion,.hljs-agate .hljs-code{color:#888;}.hljs-agate .hljs-regexp,.hljs-agate .hljs-link{color:#c6b4f0;}.hljs-agate .hljs-meta{color:#fc9b9b;}.hljs-agate .hljs-deletion{background-color:#fc9b9b;color:#333;}.hljs-agate .hljs-addition{background-color:#a2fca2;color:#333;}.hljs-agate .hljs a{color:inherit;}.hljs-agate .hljs a:focus,.hljs-agate .hljs a:hover{color:inherit;text-decoration:underline;}","androidstudio":".hljs-androidstudio{}.hljs-androidstudio .hljs{color:#a9b7c6;background:#282b2e;display:block;overflow-x:auto;padding:0.5em;}.hljs-androidstudio .hljs-number,.hljs-androidstudio .hljs-literal,.hljs-androidstudio .hljs-symbol,.hljs-androidstudio .hljs-bullet{color:#6897BB;}.hljs-androidstudio .hljs-keyword,.hljs-androidstudio .hljs-selector-tag,.hljs-androidstudio .hljs-deletion{color:#cc7832;}.hljs-androidstudio .hljs-variable,.hljs-androidstudio .hljs-template-variable,.hljs-androidstudio .hljs-link{color:#629755;}.hljs-androidstudio .hljs-comment,.hljs-androidstudio .hljs-quote{color:#808080;}.hljs-androidstudio .hljs-meta{color:#bbb529;}.hljs-androidstudio .hljs-string,.hljs-androidstudio .hljs-attribute,.hljs-androidstudio .hljs-addition{color:#6A8759;}.hljs-androidstudio .hljs-section,.hljs-androidstudio .hljs-title,.hljs-androidstudio .hljs-type{color:#ffc66d;}.hljs-androidstudio .hljs-name,.hljs-androidstudio .hljs-selector-id,.hljs-androidstudio .hljs-selector-class{color:#e8bf6a;}.hljs-androidstudio .hljs-emphasis{font-style:italic;}.hljs-androidstudio .hljs-strong{font-weight:bold;}","arta":".hljs-arta{}.hljs-arta .hljs{display:block;overflow-x:auto;padding:0.5em;background:#222;}.hljs-arta .hljs,.hljs-arta .hljs-subst{color:#aaa;}.hljs-arta .hljs-section{color:#fff;}.hljs-arta .hljs-comment,.hljs-arta .hljs-quote,.hljs-arta .hljs-meta{color:#444;}.hljs-arta .hljs-string,.hljs-arta .hljs-symbol,.hljs-arta .hljs-bullet,.hljs-arta .hljs-regexp{color:#ffcc33;}.hljs-arta .hljs-number,.hljs-arta .hljs-addition{color:#00cc66;}.hljs-arta .hljs-built_in,.hljs-arta .hljs-builtin-name,.hljs-arta .hljs-literal,.hljs-arta .hljs-type,.hljs-arta .hljs-template-variable,.hljs-arta .hljs-attribute,.hljs-arta .hljs-link{color:#32aaee;}.hljs-arta .hljs-keyword,.hljs-arta .hljs-selector-tag,.hljs-arta .hljs-name,.hljs-arta .hljs-selector-id,.hljs-arta .hljs-selector-class{color:#6644aa;}.hljs-arta .hljs-title,.hljs-arta .hljs-variable,.hljs-arta .hljs-deletion,.hljs-arta .hljs-template-tag{color:#bb1166;}.hljs-arta .hljs-section,.hljs-arta .hljs-doctag,.hljs-arta .hljs-strong{font-weight:bold;}.hljs-arta .hljs-emphasis{font-style:italic;}","ascetic":".hljs-ascetic{}.hljs-ascetic .hljs{display:block;overflow-x:auto;padding:0.5em;background:white;color:black;}.hljs-ascetic .hljs-string,.hljs-ascetic .hljs-variable,.hljs-ascetic .hljs-template-variable,.hljs-ascetic .hljs-symbol,.hljs-ascetic .hljs-bullet,.hljs-ascetic .hljs-section,.hljs-ascetic .hljs-addition,.hljs-ascetic .hljs-attribute,.hljs-ascetic .hljs-link{color:#888;}.hljs-ascetic .hljs-comment,.hljs-ascetic .hljs-quote,.hljs-ascetic .hljs-meta,.hljs-ascetic .hljs-deletion{color:#ccc;}.hljs-ascetic .hljs-keyword,.hljs-ascetic .hljs-selector-tag,.hljs-ascetic .hljs-section,.hljs-ascetic .hljs-name,.hljs-ascetic .hljs-type,.hljs-ascetic .hljs-strong{font-weight:bold;}.hljs-ascetic .hljs-emphasis{font-style:italic;}","atelier-cave-dark":".hljs-atelier-cave-dark{}.hljs-atelier-cave-dark .hljs-comment,.hljs-atelier-cave-dark .hljs-quote{color:#7e7887;}.hljs-atelier-cave-dark .hljs-variable,.hljs-atelier-cave-dark .hljs-template-variable,.hljs-atelier-cave-dark .hljs-attribute,.hljs-atelier-cave-dark .hljs-regexp,.hljs-atelier-cave-dark .hljs-link,.hljs-atelier-cave-dark .hljs-tag,.hljs-atelier-cave-dark .hljs-name,.hljs-atelier-cave-dark .hljs-selector-id,.hljs-atelier-cave-dark .hljs-selector-class{color:#be4678;}.hljs-atelier-cave-dark .hljs-number,.hljs-atelier-cave-dark .hljs-meta,.hljs-atelier-cave-dark .hljs-built_in,.hljs-atelier-cave-dark .hljs-builtin-name,.hljs-atelier-cave-dark .hljs-literal,.hljs-atelier-cave-dark .hljs-type,.hljs-atelier-cave-dark .hljs-params{color:#aa573c;}.hljs-atelier-cave-dark .hljs-string,.hljs-atelier-cave-dark .hljs-symbol,.hljs-atelier-cave-dark .hljs-bullet{color:#2a9292;}.hljs-atelier-cave-dark .hljs-title,.hljs-atelier-cave-dark .hljs-section{color:#576ddb;}.hljs-atelier-cave-dark .hljs-keyword,.hljs-atelier-cave-dark .hljs-selector-tag{color:#955ae7;}.hljs-atelier-cave-dark .hljs-deletion,.hljs-atelier-cave-dark .hljs-addition{color:#19171c;display:inline-block;width:100%;}.hljs-atelier-cave-dark .hljs-deletion{background-color:#be4678;}.hljs-atelier-cave-dark .hljs-addition{background-color:#2a9292;}.hljs-atelier-cave-dark .hljs{display:block;overflow-x:auto;background:#19171c;color:#8b8792;padding:0.5em;}.hljs-atelier-cave-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-cave-dark .hljs-strong{font-weight:bold;}","atelier-cave-light":".hljs-atelier-cave-light{}.hljs-atelier-cave-light .hljs-comment,.hljs-atelier-cave-light .hljs-quote{color:#655f6d;}.hljs-atelier-cave-light .hljs-variable,.hljs-atelier-cave-light .hljs-template-variable,.hljs-atelier-cave-light .hljs-attribute,.hljs-atelier-cave-light .hljs-tag,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-regexp,.hljs-atelier-cave-light .hljs-link,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-selector-id,.hljs-atelier-cave-light .hljs-selector-class{color:#be4678;}.hljs-atelier-cave-light .hljs-number,.hljs-atelier-cave-light .hljs-meta,.hljs-atelier-cave-light .hljs-built_in,.hljs-atelier-cave-light .hljs-builtin-name,.hljs-atelier-cave-light .hljs-literal,.hljs-atelier-cave-light .hljs-type,.hljs-atelier-cave-light .hljs-params{color:#aa573c;}.hljs-atelier-cave-light .hljs-string,.hljs-atelier-cave-light .hljs-symbol,.hljs-atelier-cave-light .hljs-bullet{color:#2a9292;}.hljs-atelier-cave-light .hljs-title,.hljs-atelier-cave-light .hljs-section{color:#576ddb;}.hljs-atelier-cave-light .hljs-keyword,.hljs-atelier-cave-light .hljs-selector-tag{color:#955ae7;}.hljs-atelier-cave-light .hljs-deletion,.hljs-atelier-cave-light .hljs-addition{color:#19171c;display:inline-block;width:100%;}.hljs-atelier-cave-light .hljs-deletion{background-color:#be4678;}.hljs-atelier-cave-light .hljs-addition{background-color:#2a9292;}.hljs-atelier-cave-light .hljs{display:block;overflow-x:auto;background:#efecf4;color:#585260;padding:0.5em;}.hljs-atelier-cave-light .hljs-emphasis{font-style:italic;}.hljs-atelier-cave-light .hljs-strong{font-weight:bold;}","atelier-dune-dark":".hljs-atelier-dune-dark{}.hljs-atelier-dune-dark .hljs-comment,.hljs-atelier-dune-dark .hljs-quote{color:#999580;}.hljs-atelier-dune-dark .hljs-variable,.hljs-atelier-dune-dark .hljs-template-variable,.hljs-atelier-dune-dark .hljs-attribute,.hljs-atelier-dune-dark .hljs-tag,.hljs-atelier-dune-dark .hljs-name,.hljs-atelier-dune-dark .hljs-regexp,.hljs-atelier-dune-dark .hljs-link,.hljs-atelier-dune-dark .hljs-name,.hljs-atelier-dune-dark .hljs-selector-id,.hljs-atelier-dune-dark .hljs-selector-class{color:#d73737;}.hljs-atelier-dune-dark .hljs-number,.hljs-atelier-dune-dark .hljs-meta,.hljs-atelier-dune-dark .hljs-built_in,.hljs-atelier-dune-dark .hljs-builtin-name,.hljs-atelier-dune-dark .hljs-literal,.hljs-atelier-dune-dark .hljs-type,.hljs-atelier-dune-dark .hljs-params{color:#b65611;}.hljs-atelier-dune-dark .hljs-string,.hljs-atelier-dune-dark .hljs-symbol,.hljs-atelier-dune-dark .hljs-bullet{color:#60ac39;}.hljs-atelier-dune-dark .hljs-title,.hljs-atelier-dune-dark .hljs-section{color:#6684e1;}.hljs-atelier-dune-dark .hljs-keyword,.hljs-atelier-dune-dark .hljs-selector-tag{color:#b854d4;}.hljs-atelier-dune-dark .hljs{display:block;overflow-x:auto;background:#20201d;color:#a6a28c;padding:0.5em;}.hljs-atelier-dune-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-dune-dark .hljs-strong{font-weight:bold;}","atelier-dune-light":".hljs-atelier-dune-light{}.hljs-atelier-dune-light .hljs-comment,.hljs-atelier-dune-light .hljs-quote{color:#7d7a68;}.hljs-atelier-dune-light .hljs-variable,.hljs-atelier-dune-light .hljs-template-variable,.hljs-atelier-dune-light .hljs-attribute,.hljs-atelier-dune-light .hljs-tag,.hljs-atelier-dune-light .hljs-name,.hljs-atelier-dune-light .hljs-regexp,.hljs-atelier-dune-light .hljs-link,.hljs-atelier-dune-light .hljs-name,.hljs-atelier-dune-light .hljs-selector-id,.hljs-atelier-dune-light .hljs-selector-class{color:#d73737;}.hljs-atelier-dune-light .hljs-number,.hljs-atelier-dune-light .hljs-meta,.hljs-atelier-dune-light .hljs-built_in,.hljs-atelier-dune-light .hljs-builtin-name,.hljs-atelier-dune-light .hljs-literal,.hljs-atelier-dune-light .hljs-type,.hljs-atelier-dune-light .hljs-params{color:#b65611;}.hljs-atelier-dune-light .hljs-string,.hljs-atelier-dune-light .hljs-symbol,.hljs-atelier-dune-light .hljs-bullet{color:#60ac39;}.hljs-atelier-dune-light .hljs-title,.hljs-atelier-dune-light .hljs-section{color:#6684e1;}.hljs-atelier-dune-light .hljs-keyword,.hljs-atelier-dune-light .hljs-selector-tag{color:#b854d4;}.hljs-atelier-dune-light .hljs{display:block;overflow-x:auto;background:#fefbec;color:#6e6b5e;padding:0.5em;}.hljs-atelier-dune-light .hljs-emphasis{font-style:italic;}.hljs-atelier-dune-light .hljs-strong{font-weight:bold;}","atelier-estuary-dark":".hljs-atelier-estuary-dark{}.hljs-atelier-estuary-dark .hljs-comment,.hljs-atelier-estuary-dark .hljs-quote{color:#878573;}.hljs-atelier-estuary-dark .hljs-variable,.hljs-atelier-estuary-dark .hljs-template-variable,.hljs-atelier-estuary-dark .hljs-attribute,.hljs-atelier-estuary-dark .hljs-tag,.hljs-atelier-estuary-dark .hljs-name,.hljs-atelier-estuary-dark .hljs-regexp,.hljs-atelier-estuary-dark .hljs-link,.hljs-atelier-estuary-dark .hljs-name,.hljs-atelier-estuary-dark .hljs-selector-id,.hljs-atelier-estuary-dark .hljs-selector-class{color:#ba6236;}.hljs-atelier-estuary-dark .hljs-number,.hljs-atelier-estuary-dark .hljs-meta,.hljs-atelier-estuary-dark .hljs-built_in,.hljs-atelier-estuary-dark .hljs-builtin-name,.hljs-atelier-estuary-dark .hljs-literal,.hljs-atelier-estuary-dark .hljs-type,.hljs-atelier-estuary-dark .hljs-params{color:#ae7313;}.hljs-atelier-estuary-dark .hljs-string,.hljs-atelier-estuary-dark .hljs-symbol,.hljs-atelier-estuary-dark .hljs-bullet{color:#7d9726;}.hljs-atelier-estuary-dark .hljs-title,.hljs-atelier-estuary-dark .hljs-section{color:#36a166;}.hljs-atelier-estuary-dark .hljs-keyword,.hljs-atelier-estuary-dark .hljs-selector-tag{color:#5f9182;}.hljs-atelier-estuary-dark .hljs-deletion,.hljs-atelier-estuary-dark .hljs-addition{color:#22221b;display:inline-block;width:100%;}.hljs-atelier-estuary-dark .hljs-deletion{background-color:#ba6236;}.hljs-atelier-estuary-dark .hljs-addition{background-color:#7d9726;}.hljs-atelier-estuary-dark .hljs{display:block;overflow-x:auto;background:#22221b;color:#929181;padding:0.5em;}.hljs-atelier-estuary-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-estuary-dark .hljs-strong{font-weight:bold;}","atelier-estuary-light":".hljs-atelier-estuary-light{}.hljs-atelier-estuary-light .hljs-comment,.hljs-atelier-estuary-light .hljs-quote{color:#6c6b5a;}.hljs-atelier-estuary-light .hljs-variable,.hljs-atelier-estuary-light .hljs-template-variable,.hljs-atelier-estuary-light .hljs-attribute,.hljs-atelier-estuary-light .hljs-tag,.hljs-atelier-estuary-light .hljs-name,.hljs-atelier-estuary-light .hljs-regexp,.hljs-atelier-estuary-light .hljs-link,.hljs-atelier-estuary-light .hljs-name,.hljs-atelier-estuary-light .hljs-selector-id,.hljs-atelier-estuary-light .hljs-selector-class{color:#ba6236;}.hljs-atelier-estuary-light .hljs-number,.hljs-atelier-estuary-light .hljs-meta,.hljs-atelier-estuary-light .hljs-built_in,.hljs-atelier-estuary-light .hljs-builtin-name,.hljs-atelier-estuary-light .hljs-literal,.hljs-atelier-estuary-light .hljs-type,.hljs-atelier-estuary-light .hljs-params{color:#ae7313;}.hljs-atelier-estuary-light .hljs-string,.hljs-atelier-estuary-light .hljs-symbol,.hljs-atelier-estuary-light .hljs-bullet{color:#7d9726;}.hljs-atelier-estuary-light .hljs-title,.hljs-atelier-estuary-light .hljs-section{color:#36a166;}.hljs-atelier-estuary-light .hljs-keyword,.hljs-atelier-estuary-light .hljs-selector-tag{color:#5f9182;}.hljs-atelier-estuary-light .hljs-deletion,.hljs-atelier-estuary-light .hljs-addition{color:#22221b;display:inline-block;width:100%;}.hljs-atelier-estuary-light .hljs-deletion{background-color:#ba6236;}.hljs-atelier-estuary-light .hljs-addition{background-color:#7d9726;}.hljs-atelier-estuary-light .hljs{display:block;overflow-x:auto;background:#f4f3ec;color:#5f5e4e;padding:0.5em;}.hljs-atelier-estuary-light .hljs-emphasis{font-style:italic;}.hljs-atelier-estuary-light .hljs-strong{font-weight:bold;}","atelier-forest-dark":".hljs-atelier-forest-dark{}.hljs-atelier-forest-dark .hljs-comment,.hljs-atelier-forest-dark .hljs-quote{color:#9c9491;}.hljs-atelier-forest-dark .hljs-variable,.hljs-atelier-forest-dark .hljs-template-variable,.hljs-atelier-forest-dark .hljs-attribute,.hljs-atelier-forest-dark .hljs-tag,.hljs-atelier-forest-dark .hljs-name,.hljs-atelier-forest-dark .hljs-regexp,.hljs-atelier-forest-dark .hljs-link,.hljs-atelier-forest-dark .hljs-name,.hljs-atelier-forest-dark .hljs-selector-id,.hljs-atelier-forest-dark .hljs-selector-class{color:#f22c40;}.hljs-atelier-forest-dark .hljs-number,.hljs-atelier-forest-dark .hljs-meta,.hljs-atelier-forest-dark .hljs-built_in,.hljs-atelier-forest-dark .hljs-builtin-name,.hljs-atelier-forest-dark .hljs-literal,.hljs-atelier-forest-dark .hljs-type,.hljs-atelier-forest-dark .hljs-params{color:#df5320;}.hljs-atelier-forest-dark .hljs-string,.hljs-atelier-forest-dark .hljs-symbol,.hljs-atelier-forest-dark .hljs-bullet{color:#7b9726;}.hljs-atelier-forest-dark .hljs-title,.hljs-atelier-forest-dark .hljs-section{color:#407ee7;}.hljs-atelier-forest-dark .hljs-keyword,.hljs-atelier-forest-dark .hljs-selector-tag{color:#6666ea;}.hljs-atelier-forest-dark .hljs{display:block;overflow-x:auto;background:#1b1918;color:#a8a19f;padding:0.5em;}.hljs-atelier-forest-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-forest-dark .hljs-strong{font-weight:bold;}","atelier-forest-light":".hljs-atelier-forest-light{}.hljs-atelier-forest-light .hljs-comment,.hljs-atelier-forest-light .hljs-quote{color:#766e6b;}.hljs-atelier-forest-light .hljs-variable,.hljs-atelier-forest-light .hljs-template-variable,.hljs-atelier-forest-light .hljs-attribute,.hljs-atelier-forest-light .hljs-tag,.hljs-atelier-forest-light .hljs-name,.hljs-atelier-forest-light .hljs-regexp,.hljs-atelier-forest-light .hljs-link,.hljs-atelier-forest-light .hljs-name,.hljs-atelier-forest-light .hljs-selector-id,.hljs-atelier-forest-light .hljs-selector-class{color:#f22c40;}.hljs-atelier-forest-light .hljs-number,.hljs-atelier-forest-light .hljs-meta,.hljs-atelier-forest-light .hljs-built_in,.hljs-atelier-forest-light .hljs-builtin-name,.hljs-atelier-forest-light .hljs-literal,.hljs-atelier-forest-light .hljs-type,.hljs-atelier-forest-light .hljs-params{color:#df5320;}.hljs-atelier-forest-light .hljs-string,.hljs-atelier-forest-light .hljs-symbol,.hljs-atelier-forest-light .hljs-bullet{color:#7b9726;}.hljs-atelier-forest-light .hljs-title,.hljs-atelier-forest-light .hljs-section{color:#407ee7;}.hljs-atelier-forest-light .hljs-keyword,.hljs-atelier-forest-light .hljs-selector-tag{color:#6666ea;}.hljs-atelier-forest-light .hljs{display:block;overflow-x:auto;background:#f1efee;color:#68615e;padding:0.5em;}.hljs-atelier-forest-light .hljs-emphasis{font-style:italic;}.hljs-atelier-forest-light .hljs-strong{font-weight:bold;}","atelier-heath-dark":".hljs-atelier-heath-dark{}.hljs-atelier-heath-dark .hljs-comment,.hljs-atelier-heath-dark .hljs-quote{color:#9e8f9e;}.hljs-atelier-heath-dark .hljs-variable,.hljs-atelier-heath-dark .hljs-template-variable,.hljs-atelier-heath-dark .hljs-attribute,.hljs-atelier-heath-dark .hljs-tag,.hljs-atelier-heath-dark .hljs-name,.hljs-atelier-heath-dark .hljs-regexp,.hljs-atelier-heath-dark .hljs-link,.hljs-atelier-heath-dark .hljs-name,.hljs-atelier-heath-dark .hljs-selector-id,.hljs-atelier-heath-dark .hljs-selector-class{color:#ca402b;}.hljs-atelier-heath-dark .hljs-number,.hljs-atelier-heath-dark .hljs-meta,.hljs-atelier-heath-dark .hljs-built_in,.hljs-atelier-heath-dark .hljs-builtin-name,.hljs-atelier-heath-dark .hljs-literal,.hljs-atelier-heath-dark .hljs-type,.hljs-atelier-heath-dark .hljs-params{color:#a65926;}.hljs-atelier-heath-dark .hljs-string,.hljs-atelier-heath-dark .hljs-symbol,.hljs-atelier-heath-dark .hljs-bullet{color:#918b3b;}.hljs-atelier-heath-dark .hljs-title,.hljs-atelier-heath-dark .hljs-section{color:#516aec;}.hljs-atelier-heath-dark .hljs-keyword,.hljs-atelier-heath-dark .hljs-selector-tag{color:#7b59c0;}.hljs-atelier-heath-dark .hljs{display:block;overflow-x:auto;background:#1b181b;color:#ab9bab;padding:0.5em;}.hljs-atelier-heath-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-heath-dark .hljs-strong{font-weight:bold;}","atelier-heath-light":".hljs-atelier-heath-light{}.hljs-atelier-heath-light .hljs-comment,.hljs-atelier-heath-light .hljs-quote{color:#776977;}.hljs-atelier-heath-light .hljs-variable,.hljs-atelier-heath-light .hljs-template-variable,.hljs-atelier-heath-light .hljs-attribute,.hljs-atelier-heath-light .hljs-tag,.hljs-atelier-heath-light .hljs-name,.hljs-atelier-heath-light .hljs-regexp,.hljs-atelier-heath-light .hljs-link,.hljs-atelier-heath-light .hljs-name,.hljs-atelier-heath-light .hljs-selector-id,.hljs-atelier-heath-light .hljs-selector-class{color:#ca402b;}.hljs-atelier-heath-light .hljs-number,.hljs-atelier-heath-light .hljs-meta,.hljs-atelier-heath-light .hljs-built_in,.hljs-atelier-heath-light .hljs-builtin-name,.hljs-atelier-heath-light .hljs-literal,.hljs-atelier-heath-light .hljs-type,.hljs-atelier-heath-light .hljs-params{color:#a65926;}.hljs-atelier-heath-light .hljs-string,.hljs-atelier-heath-light .hljs-symbol,.hljs-atelier-heath-light .hljs-bullet{color:#918b3b;}.hljs-atelier-heath-light .hljs-title,.hljs-atelier-heath-light .hljs-section{color:#516aec;}.hljs-atelier-heath-light .hljs-keyword,.hljs-atelier-heath-light .hljs-selector-tag{color:#7b59c0;}.hljs-atelier-heath-light .hljs{display:block;overflow-x:auto;background:#f7f3f7;color:#695d69;padding:0.5em;}.hljs-atelier-heath-light .hljs-emphasis{font-style:italic;}.hljs-atelier-heath-light .hljs-strong{font-weight:bold;}","atelier-lakeside-dark":".hljs-atelier-lakeside-dark{}.hljs-atelier-lakeside-dark .hljs-comment,.hljs-atelier-lakeside-dark .hljs-quote{color:#7195a8;}.hljs-atelier-lakeside-dark .hljs-variable,.hljs-atelier-lakeside-dark .hljs-template-variable,.hljs-atelier-lakeside-dark .hljs-attribute,.hljs-atelier-lakeside-dark .hljs-tag,.hljs-atelier-lakeside-dark .hljs-name,.hljs-atelier-lakeside-dark .hljs-regexp,.hljs-atelier-lakeside-dark .hljs-link,.hljs-atelier-lakeside-dark .hljs-name,.hljs-atelier-lakeside-dark .hljs-selector-id,.hljs-atelier-lakeside-dark .hljs-selector-class{color:#d22d72;}.hljs-atelier-lakeside-dark .hljs-number,.hljs-atelier-lakeside-dark .hljs-meta,.hljs-atelier-lakeside-dark .hljs-built_in,.hljs-atelier-lakeside-dark .hljs-builtin-name,.hljs-atelier-lakeside-dark .hljs-literal,.hljs-atelier-lakeside-dark .hljs-type,.hljs-atelier-lakeside-dark .hljs-params{color:#935c25;}.hljs-atelier-lakeside-dark .hljs-string,.hljs-atelier-lakeside-dark .hljs-symbol,.hljs-atelier-lakeside-dark .hljs-bullet{color:#568c3b;}.hljs-atelier-lakeside-dark .hljs-title,.hljs-atelier-lakeside-dark .hljs-section{color:#257fad;}.hljs-atelier-lakeside-dark .hljs-keyword,.hljs-atelier-lakeside-dark .hljs-selector-tag{color:#6b6bb8;}.hljs-atelier-lakeside-dark .hljs{display:block;overflow-x:auto;background:#161b1d;color:#7ea2b4;padding:0.5em;}.hljs-atelier-lakeside-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-lakeside-dark .hljs-strong{font-weight:bold;}","atelier-lakeside-light":".hljs-atelier-lakeside-light{}.hljs-atelier-lakeside-light .hljs-comment,.hljs-atelier-lakeside-light .hljs-quote{color:#5a7b8c;}.hljs-atelier-lakeside-light .hljs-variable,.hljs-atelier-lakeside-light .hljs-template-variable,.hljs-atelier-lakeside-light .hljs-attribute,.hljs-atelier-lakeside-light .hljs-tag,.hljs-atelier-lakeside-light .hljs-name,.hljs-atelier-lakeside-light .hljs-regexp,.hljs-atelier-lakeside-light .hljs-link,.hljs-atelier-lakeside-light .hljs-name,.hljs-atelier-lakeside-light .hljs-selector-id,.hljs-atelier-lakeside-light .hljs-selector-class{color:#d22d72;}.hljs-atelier-lakeside-light .hljs-number,.hljs-atelier-lakeside-light .hljs-meta,.hljs-atelier-lakeside-light .hljs-built_in,.hljs-atelier-lakeside-light .hljs-builtin-name,.hljs-atelier-lakeside-light .hljs-literal,.hljs-atelier-lakeside-light .hljs-type,.hljs-atelier-lakeside-light .hljs-params{color:#935c25;}.hljs-atelier-lakeside-light .hljs-string,.hljs-atelier-lakeside-light .hljs-symbol,.hljs-atelier-lakeside-light .hljs-bullet{color:#568c3b;}.hljs-atelier-lakeside-light .hljs-title,.hljs-atelier-lakeside-light .hljs-section{color:#257fad;}.hljs-atelier-lakeside-light .hljs-keyword,.hljs-atelier-lakeside-light .hljs-selector-tag{color:#6b6bb8;}.hljs-atelier-lakeside-light .hljs{display:block;overflow-x:auto;background:#ebf8ff;color:#516d7b;padding:0.5em;}.hljs-atelier-lakeside-light .hljs-emphasis{font-style:italic;}.hljs-atelier-lakeside-light .hljs-strong{font-weight:bold;}","atelier-plateau-dark":".hljs-atelier-plateau-dark{}.hljs-atelier-plateau-dark .hljs-comment,.hljs-atelier-plateau-dark .hljs-quote{color:#7e7777;}.hljs-atelier-plateau-dark .hljs-variable,.hljs-atelier-plateau-dark .hljs-template-variable,.hljs-atelier-plateau-dark .hljs-attribute,.hljs-atelier-plateau-dark .hljs-tag,.hljs-atelier-plateau-dark .hljs-name,.hljs-atelier-plateau-dark .hljs-regexp,.hljs-atelier-plateau-dark .hljs-link,.hljs-atelier-plateau-dark .hljs-name,.hljs-atelier-plateau-dark .hljs-selector-id,.hljs-atelier-plateau-dark .hljs-selector-class{color:#ca4949;}.hljs-atelier-plateau-dark .hljs-number,.hljs-atelier-plateau-dark .hljs-meta,.hljs-atelier-plateau-dark .hljs-built_in,.hljs-atelier-plateau-dark .hljs-builtin-name,.hljs-atelier-plateau-dark .hljs-literal,.hljs-atelier-plateau-dark .hljs-type,.hljs-atelier-plateau-dark .hljs-params{color:#b45a3c;}.hljs-atelier-plateau-dark .hljs-string,.hljs-atelier-plateau-dark .hljs-symbol,.hljs-atelier-plateau-dark .hljs-bullet{color:#4b8b8b;}.hljs-atelier-plateau-dark .hljs-title,.hljs-atelier-plateau-dark .hljs-section{color:#7272ca;}.hljs-atelier-plateau-dark .hljs-keyword,.hljs-atelier-plateau-dark .hljs-selector-tag{color:#8464c4;}.hljs-atelier-plateau-dark .hljs-deletion,.hljs-atelier-plateau-dark .hljs-addition{color:#1b1818;display:inline-block;width:100%;}.hljs-atelier-plateau-dark .hljs-deletion{background-color:#ca4949;}.hljs-atelier-plateau-dark .hljs-addition{background-color:#4b8b8b;}.hljs-atelier-plateau-dark .hljs{display:block;overflow-x:auto;background:#1b1818;color:#8a8585;padding:0.5em;}.hljs-atelier-plateau-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-plateau-dark .hljs-strong{font-weight:bold;}","atelier-plateau-light":".hljs-atelier-plateau-light{}.hljs-atelier-plateau-light .hljs-comment,.hljs-atelier-plateau-light .hljs-quote{color:#655d5d;}.hljs-atelier-plateau-light .hljs-variable,.hljs-atelier-plateau-light .hljs-template-variable,.hljs-atelier-plateau-light .hljs-attribute,.hljs-atelier-plateau-light .hljs-tag,.hljs-atelier-plateau-light .hljs-name,.hljs-atelier-plateau-light .hljs-regexp,.hljs-atelier-plateau-light .hljs-link,.hljs-atelier-plateau-light .hljs-name,.hljs-atelier-plateau-light .hljs-selector-id,.hljs-atelier-plateau-light .hljs-selector-class{color:#ca4949;}.hljs-atelier-plateau-light .hljs-number,.hljs-atelier-plateau-light .hljs-meta,.hljs-atelier-plateau-light .hljs-built_in,.hljs-atelier-plateau-light .hljs-builtin-name,.hljs-atelier-plateau-light .hljs-literal,.hljs-atelier-plateau-light .hljs-type,.hljs-atelier-plateau-light .hljs-params{color:#b45a3c;}.hljs-atelier-plateau-light .hljs-string,.hljs-atelier-plateau-light .hljs-symbol,.hljs-atelier-plateau-light .hljs-bullet{color:#4b8b8b;}.hljs-atelier-plateau-light .hljs-title,.hljs-atelier-plateau-light .hljs-section{color:#7272ca;}.hljs-atelier-plateau-light .hljs-keyword,.hljs-atelier-plateau-light .hljs-selector-tag{color:#8464c4;}.hljs-atelier-plateau-light .hljs-deletion,.hljs-atelier-plateau-light .hljs-addition{color:#1b1818;display:inline-block;width:100%;}.hljs-atelier-plateau-light .hljs-deletion{background-color:#ca4949;}.hljs-atelier-plateau-light .hljs-addition{background-color:#4b8b8b;}.hljs-atelier-plateau-light .hljs{display:block;overflow-x:auto;background:#f4ecec;color:#585050;padding:0.5em;}.hljs-atelier-plateau-light .hljs-emphasis{font-style:italic;}.hljs-atelier-plateau-light .hljs-strong{font-weight:bold;}","atelier-savanna-dark":".hljs-atelier-savanna-dark{}.hljs-atelier-savanna-dark .hljs-comment,.hljs-atelier-savanna-dark .hljs-quote{color:#78877d;}.hljs-atelier-savanna-dark .hljs-variable,.hljs-atelier-savanna-dark .hljs-template-variable,.hljs-atelier-savanna-dark .hljs-attribute,.hljs-atelier-savanna-dark .hljs-tag,.hljs-atelier-savanna-dark .hljs-name,.hljs-atelier-savanna-dark .hljs-regexp,.hljs-atelier-savanna-dark .hljs-link,.hljs-atelier-savanna-dark .hljs-name,.hljs-atelier-savanna-dark .hljs-selector-id,.hljs-atelier-savanna-dark .hljs-selector-class{color:#b16139;}.hljs-atelier-savanna-dark .hljs-number,.hljs-atelier-savanna-dark .hljs-meta,.hljs-atelier-savanna-dark .hljs-built_in,.hljs-atelier-savanna-dark .hljs-builtin-name,.hljs-atelier-savanna-dark .hljs-literal,.hljs-atelier-savanna-dark .hljs-type,.hljs-atelier-savanna-dark .hljs-params{color:#9f713c;}.hljs-atelier-savanna-dark .hljs-string,.hljs-atelier-savanna-dark .hljs-symbol,.hljs-atelier-savanna-dark .hljs-bullet{color:#489963;}.hljs-atelier-savanna-dark .hljs-title,.hljs-atelier-savanna-dark .hljs-section{color:#478c90;}.hljs-atelier-savanna-dark .hljs-keyword,.hljs-atelier-savanna-dark .hljs-selector-tag{color:#55859b;}.hljs-atelier-savanna-dark .hljs-deletion,.hljs-atelier-savanna-dark .hljs-addition{color:#171c19;display:inline-block;width:100%;}.hljs-atelier-savanna-dark .hljs-deletion{background-color:#b16139;}.hljs-atelier-savanna-dark .hljs-addition{background-color:#489963;}.hljs-atelier-savanna-dark .hljs{display:block;overflow-x:auto;background:#171c19;color:#87928a;padding:0.5em;}.hljs-atelier-savanna-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-savanna-dark .hljs-strong{font-weight:bold;}","atelier-savanna-light":".hljs-atelier-savanna-light{}.hljs-atelier-savanna-light .hljs-comment,.hljs-atelier-savanna-light .hljs-quote{color:#5f6d64;}.hljs-atelier-savanna-light .hljs-variable,.hljs-atelier-savanna-light .hljs-template-variable,.hljs-atelier-savanna-light .hljs-attribute,.hljs-atelier-savanna-light .hljs-tag,.hljs-atelier-savanna-light .hljs-name,.hljs-atelier-savanna-light .hljs-regexp,.hljs-atelier-savanna-light .hljs-link,.hljs-atelier-savanna-light .hljs-name,.hljs-atelier-savanna-light .hljs-selector-id,.hljs-atelier-savanna-light .hljs-selector-class{color:#b16139;}.hljs-atelier-savanna-light .hljs-number,.hljs-atelier-savanna-light .hljs-meta,.hljs-atelier-savanna-light .hljs-built_in,.hljs-atelier-savanna-light .hljs-builtin-name,.hljs-atelier-savanna-light .hljs-literal,.hljs-atelier-savanna-light .hljs-type,.hljs-atelier-savanna-light .hljs-params{color:#9f713c;}.hljs-atelier-savanna-light .hljs-string,.hljs-atelier-savanna-light .hljs-symbol,.hljs-atelier-savanna-light .hljs-bullet{color:#489963;}.hljs-atelier-savanna-light .hljs-title,.hljs-atelier-savanna-light .hljs-section{color:#478c90;}.hljs-atelier-savanna-light .hljs-keyword,.hljs-atelier-savanna-light .hljs-selector-tag{color:#55859b;}.hljs-atelier-savanna-light .hljs-deletion,.hljs-atelier-savanna-light .hljs-addition{color:#171c19;display:inline-block;width:100%;}.hljs-atelier-savanna-light .hljs-deletion{background-color:#b16139;}.hljs-atelier-savanna-light .hljs-addition{background-color:#489963;}.hljs-atelier-savanna-light .hljs{display:block;overflow-x:auto;background:#ecf4ee;color:#526057;padding:0.5em;}.hljs-atelier-savanna-light .hljs-emphasis{font-style:italic;}.hljs-atelier-savanna-light .hljs-strong{font-weight:bold;}","atelier-seaside-dark":".hljs-atelier-seaside-dark{}.hljs-atelier-seaside-dark .hljs-comment,.hljs-atelier-seaside-dark .hljs-quote{color:#809980;}.hljs-atelier-seaside-dark .hljs-variable,.hljs-atelier-seaside-dark .hljs-template-variable,.hljs-atelier-seaside-dark .hljs-attribute,.hljs-atelier-seaside-dark .hljs-tag,.hljs-atelier-seaside-dark .hljs-name,.hljs-atelier-seaside-dark .hljs-regexp,.hljs-atelier-seaside-dark .hljs-link,.hljs-atelier-seaside-dark .hljs-name,.hljs-atelier-seaside-dark .hljs-selector-id,.hljs-atelier-seaside-dark .hljs-selector-class{color:#e6193c;}.hljs-atelier-seaside-dark .hljs-number,.hljs-atelier-seaside-dark .hljs-meta,.hljs-atelier-seaside-dark .hljs-built_in,.hljs-atelier-seaside-dark .hljs-builtin-name,.hljs-atelier-seaside-dark .hljs-literal,.hljs-atelier-seaside-dark .hljs-type,.hljs-atelier-seaside-dark .hljs-params{color:#87711d;}.hljs-atelier-seaside-dark .hljs-string,.hljs-atelier-seaside-dark .hljs-symbol,.hljs-atelier-seaside-dark .hljs-bullet{color:#29a329;}.hljs-atelier-seaside-dark .hljs-title,.hljs-atelier-seaside-dark .hljs-section{color:#3d62f5;}.hljs-atelier-seaside-dark .hljs-keyword,.hljs-atelier-seaside-dark .hljs-selector-tag{color:#ad2bee;}.hljs-atelier-seaside-dark .hljs{display:block;overflow-x:auto;background:#131513;color:#8ca68c;padding:0.5em;}.hljs-atelier-seaside-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-seaside-dark .hljs-strong{font-weight:bold;}","atelier-seaside-light":".hljs-atelier-seaside-light{}.hljs-atelier-seaside-light .hljs-comment,.hljs-atelier-seaside-light .hljs-quote{color:#687d68;}.hljs-atelier-seaside-light .hljs-variable,.hljs-atelier-seaside-light .hljs-template-variable,.hljs-atelier-seaside-light .hljs-attribute,.hljs-atelier-seaside-light .hljs-tag,.hljs-atelier-seaside-light .hljs-name,.hljs-atelier-seaside-light .hljs-regexp,.hljs-atelier-seaside-light .hljs-link,.hljs-atelier-seaside-light .hljs-name,.hljs-atelier-seaside-light .hljs-selector-id,.hljs-atelier-seaside-light .hljs-selector-class{color:#e6193c;}.hljs-atelier-seaside-light .hljs-number,.hljs-atelier-seaside-light .hljs-meta,.hljs-atelier-seaside-light .hljs-built_in,.hljs-atelier-seaside-light .hljs-builtin-name,.hljs-atelier-seaside-light .hljs-literal,.hljs-atelier-seaside-light .hljs-type,.hljs-atelier-seaside-light .hljs-params{color:#87711d;}.hljs-atelier-seaside-light .hljs-string,.hljs-atelier-seaside-light .hljs-symbol,.hljs-atelier-seaside-light .hljs-bullet{color:#29a329;}.hljs-atelier-seaside-light .hljs-title,.hljs-atelier-seaside-light .hljs-section{color:#3d62f5;}.hljs-atelier-seaside-light .hljs-keyword,.hljs-atelier-seaside-light .hljs-selector-tag{color:#ad2bee;}.hljs-atelier-seaside-light .hljs{display:block;overflow-x:auto;background:#f4fbf4;color:#5e6e5e;padding:0.5em;}.hljs-atelier-seaside-light .hljs-emphasis{font-style:italic;}.hljs-atelier-seaside-light .hljs-strong{font-weight:bold;}","atelier-sulphurpool-dark":".hljs-atelier-sulphurpool-dark{}.hljs-atelier-sulphurpool-dark .hljs-comment,.hljs-atelier-sulphurpool-dark .hljs-quote{color:#898ea4;}.hljs-atelier-sulphurpool-dark .hljs-variable,.hljs-atelier-sulphurpool-dark .hljs-template-variable,.hljs-atelier-sulphurpool-dark .hljs-attribute,.hljs-atelier-sulphurpool-dark .hljs-tag,.hljs-atelier-sulphurpool-dark .hljs-name,.hljs-atelier-sulphurpool-dark .hljs-regexp,.hljs-atelier-sulphurpool-dark .hljs-link,.hljs-atelier-sulphurpool-dark .hljs-name,.hljs-atelier-sulphurpool-dark .hljs-selector-id,.hljs-atelier-sulphurpool-dark .hljs-selector-class{color:#c94922;}.hljs-atelier-sulphurpool-dark .hljs-number,.hljs-atelier-sulphurpool-dark .hljs-meta,.hljs-atelier-sulphurpool-dark .hljs-built_in,.hljs-atelier-sulphurpool-dark .hljs-builtin-name,.hljs-atelier-sulphurpool-dark .hljs-literal,.hljs-atelier-sulphurpool-dark .hljs-type,.hljs-atelier-sulphurpool-dark .hljs-params{color:#c76b29;}.hljs-atelier-sulphurpool-dark .hljs-string,.hljs-atelier-sulphurpool-dark .hljs-symbol,.hljs-atelier-sulphurpool-dark .hljs-bullet{color:#ac9739;}.hljs-atelier-sulphurpool-dark .hljs-title,.hljs-atelier-sulphurpool-dark .hljs-section{color:#3d8fd1;}.hljs-atelier-sulphurpool-dark .hljs-keyword,.hljs-atelier-sulphurpool-dark .hljs-selector-tag{color:#6679cc;}.hljs-atelier-sulphurpool-dark .hljs{display:block;overflow-x:auto;background:#202746;color:#979db4;padding:0.5em;}.hljs-atelier-sulphurpool-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-sulphurpool-dark .hljs-strong{font-weight:bold;}","atelier-sulphurpool-light":".hljs-atelier-sulphurpool-light{}.hljs-atelier-sulphurpool-light .hljs-comment,.hljs-atelier-sulphurpool-light .hljs-quote{color:#6b7394;}.hljs-atelier-sulphurpool-light .hljs-variable,.hljs-atelier-sulphurpool-light .hljs-template-variable,.hljs-atelier-sulphurpool-light .hljs-attribute,.hljs-atelier-sulphurpool-light .hljs-tag,.hljs-atelier-sulphurpool-light .hljs-name,.hljs-atelier-sulphurpool-light .hljs-regexp,.hljs-atelier-sulphurpool-light .hljs-link,.hljs-atelier-sulphurpool-light .hljs-name,.hljs-atelier-sulphurpool-light .hljs-selector-id,.hljs-atelier-sulphurpool-light .hljs-selector-class{color:#c94922;}.hljs-atelier-sulphurpool-light .hljs-number,.hljs-atelier-sulphurpool-light .hljs-meta,.hljs-atelier-sulphurpool-light .hljs-built_in,.hljs-atelier-sulphurpool-light .hljs-builtin-name,.hljs-atelier-sulphurpool-light .hljs-literal,.hljs-atelier-sulphurpool-light .hljs-type,.hljs-atelier-sulphurpool-light .hljs-params{color:#c76b29;}.hljs-atelier-sulphurpool-light .hljs-string,.hljs-atelier-sulphurpool-light .hljs-symbol,.hljs-atelier-sulphurpool-light .hljs-bullet{color:#ac9739;}.hljs-atelier-sulphurpool-light .hljs-title,.hljs-atelier-sulphurpool-light .hljs-section{color:#3d8fd1;}.hljs-atelier-sulphurpool-light .hljs-keyword,.hljs-atelier-sulphurpool-light .hljs-selector-tag{color:#6679cc;}.hljs-atelier-sulphurpool-light .hljs{display:block;overflow-x:auto;background:#f5f7ff;color:#5e6687;padding:0.5em;}.hljs-atelier-sulphurpool-light .hljs-emphasis{font-style:italic;}.hljs-atelier-sulphurpool-light .hljs-strong{font-weight:bold;}","brown-paper":".hljs-brown-paper{}.hljs-brown-paper .hljs{display:block;overflow-x:auto;padding:0.5em;background:#b7a68e url(./brown-papersq.png);}.hljs-brown-paper .hljs-keyword,.hljs-brown-paper .hljs-selector-tag,.hljs-brown-paper .hljs-literal{color:#005599;font-weight:bold;}.hljs-brown-paper .hljs,.hljs-brown-paper .hljs-subst{color:#363c69;}.hljs-brown-paper .hljs-string,.hljs-brown-paper .hljs-title,.hljs-brown-paper .hljs-section,.hljs-brown-paper .hljs-type,.hljs-brown-paper .hljs-attribute,.hljs-brown-paper .hljs-symbol,.hljs-brown-paper .hljs-bullet,.hljs-brown-paper .hljs-built_in,.hljs-brown-paper .hljs-addition,.hljs-brown-paper .hljs-variable,.hljs-brown-paper .hljs-template-tag,.hljs-brown-paper .hljs-template-variable,.hljs-brown-paper .hljs-link,.hljs-brown-paper .hljs-name{color:#2c009f;}.hljs-brown-paper .hljs-comment,.hljs-brown-paper .hljs-quote,.hljs-brown-paper .hljs-meta,.hljs-brown-paper .hljs-deletion{color:#802022;}.hljs-brown-paper .hljs-keyword,.hljs-brown-paper .hljs-selector-tag,.hljs-brown-paper .hljs-literal,.hljs-brown-paper .hljs-doctag,.hljs-brown-paper .hljs-title,.hljs-brown-paper .hljs-section,.hljs-brown-paper .hljs-type,.hljs-brown-paper .hljs-name,.hljs-brown-paper .hljs-strong{font-weight:bold;}.hljs-brown-paper .hljs-emphasis{font-style:italic;}","codepen-embed":".hljs-codepen-embed{}.hljs-codepen-embed .hljs{display:block;overflow-x:auto;padding:0.5em;background:#222;color:#fff;}.hljs-codepen-embed .hljs-comment,.hljs-codepen-embed .hljs-quote{color:#777;}.hljs-codepen-embed .hljs-variable,.hljs-codepen-embed .hljs-template-variable,.hljs-codepen-embed .hljs-tag,.hljs-codepen-embed .hljs-regexp,.hljs-codepen-embed .hljs-meta,.hljs-codepen-embed .hljs-number,.hljs-codepen-embed .hljs-built_in,.hljs-codepen-embed .hljs-builtin-name,.hljs-codepen-embed .hljs-literal,.hljs-codepen-embed .hljs-params,.hljs-codepen-embed .hljs-symbol,.hljs-codepen-embed .hljs-bullet,.hljs-codepen-embed .hljs-link,.hljs-codepen-embed .hljs-deletion{color:#ab875d;}.hljs-codepen-embed .hljs-section,.hljs-codepen-embed .hljs-title,.hljs-codepen-embed .hljs-name,.hljs-codepen-embed .hljs-selector-id,.hljs-codepen-embed .hljs-selector-class,.hljs-codepen-embed .hljs-type,.hljs-codepen-embed .hljs-attribute{color:#9b869b;}.hljs-codepen-embed .hljs-string,.hljs-codepen-embed .hljs-keyword,.hljs-codepen-embed .hljs-selector-tag,.hljs-codepen-embed .hljs-addition{color:#8f9c6c;}.hljs-codepen-embed .hljs-emphasis{font-style:italic;}.hljs-codepen-embed .hljs-strong{font-weight:bold;}","color-brewer":".hljs-color-brewer{}.hljs-color-brewer .hljs{display:block;overflow-x:auto;padding:0.5em;background:#fff;}.hljs-color-brewer .hljs,.hljs-color-brewer .hljs-subst{color:#000;}.hljs-color-brewer .hljs-string,.hljs-color-brewer .hljs-meta,.hljs-color-brewer .hljs-symbol,.hljs-color-brewer .hljs-template-tag,.hljs-color-brewer .hljs-template-variable,.hljs-color-brewer .hljs-addition{color:#756bb1;}.hljs-color-brewer .hljs-comment,.hljs-color-brewer .hljs-quote{color:#636363;}.hljs-color-brewer .hljs-number,.hljs-color-brewer .hljs-regexp,.hljs-color-brewer .hljs-literal,.hljs-color-brewer .hljs-bullet,.hljs-color-brewer .hljs-link{color:#31a354;}.hljs-color-brewer .hljs-deletion,.hljs-color-brewer .hljs-variable{color:#88f;}.hljs-color-brewer .hljs-keyword,.hljs-color-brewer .hljs-selector-tag,.hljs-color-brewer .hljs-title,.hljs-color-brewer .hljs-section,.hljs-color-brewer .hljs-built_in,.hljs-color-brewer .hljs-doctag,.hljs-color-brewer .hljs-type,.hljs-color-brewer .hljs-tag,.hljs-color-brewer .hljs-name,.hljs-color-brewer .hljs-selector-id,.hljs-color-brewer .hljs-selector-class,.hljs-color-brewer .hljs-strong{color:#3182bd;}.hljs-color-brewer .hljs-emphasis{font-style:italic;}.hljs-color-brewer .hljs-attribute{color:#e6550d;}","dark":".hljs-dark{}.hljs-dark .hljs{display:block;overflow-x:auto;padding:0.5em;background:#444;}.hljs-dark .hljs-keyword,.hljs-dark .hljs-selector-tag,.hljs-dark .hljs-literal,.hljs-dark .hljs-section,.hljs-dark .hljs-link{color:white;}.hljs-dark .hljs,.hljs-dark .hljs-subst{color:#ddd;}.hljs-dark .hljs-string,.hljs-dark .hljs-title,.hljs-dark .hljs-name,.hljs-dark .hljs-type,.hljs-dark .hljs-attribute,.hljs-dark .hljs-symbol,.hljs-dark .hljs-bullet,.hljs-dark .hljs-built_in,.hljs-dark .hljs-addition,.hljs-dark .hljs-variable,.hljs-dark .hljs-template-tag,.hljs-dark .hljs-template-variable{color:#d88;}.hljs-dark .hljs-comment,.hljs-dark .hljs-quote,.hljs-dark .hljs-deletion,.hljs-dark .hljs-meta{color:#777;}.hljs-dark .hljs-keyword,.hljs-dark .hljs-selector-tag,.hljs-dark .hljs-literal,.hljs-dark .hljs-title,.hljs-dark .hljs-section,.hljs-dark .hljs-doctag,.hljs-dark .hljs-type,.hljs-dark .hljs-name,.hljs-dark .hljs-strong{font-weight:bold;}.hljs-dark .hljs-emphasis{font-style:italic;}","darkula":".hljs-darkula{}.hljs-darkula .hljs{display:block;overflow-x:auto;padding:0.5em;background:#2b2b2b;}.hljs-darkula .hljs{color:#bababa;}.hljs-darkula .hljs-strong,.hljs-darkula .hljs-emphasis{color:#a8a8a2;}.hljs-darkula .hljs-bullet,.hljs-darkula .hljs-quote,.hljs-darkula .hljs-link,.hljs-darkula .hljs-number,.hljs-darkula .hljs-regexp,.hljs-darkula .hljs-literal{color:#6896ba;}.hljs-darkula .hljs-code,.hljs-darkula .hljs-selector-class{color:#a6e22e;}.hljs-darkula .hljs-emphasis{font-style:italic;}.hljs-darkula .hljs-keyword,.hljs-darkula .hljs-selector-tag,.hljs-darkula .hljs-section,.hljs-darkula .hljs-attribute,.hljs-darkula .hljs-name,.hljs-darkula .hljs-variable{color:#cb7832;}.hljs-darkula .hljs-params{color:#b9b9b9;}.hljs-darkula .hljs-string,.hljs-darkula .hljs-subst,.hljs-darkula .hljs-type,.hljs-darkula .hljs-built_in,.hljs-darkula .hljs-builtin-name,.hljs-darkula .hljs-symbol,.hljs-darkula .hljs-selector-id,.hljs-darkula .hljs-selector-attr,.hljs-darkula .hljs-selector-pseudo,.hljs-darkula .hljs-template-tag,.hljs-darkula .hljs-template-variable,.hljs-darkula .hljs-addition{color:#e0c46c;}.hljs-darkula .hljs-comment,.hljs-darkula .hljs-deletion,.hljs-darkula .hljs-meta{color:#7f7f7f;}","default":".hljs-default{}.hljs-default .hljs{display:block;overflow-x:auto;padding:0.5em;background:#F0F0F0;}.hljs-default .hljs,.hljs-default .hljs-subst{color:#444;}.hljs-default .hljs-keyword,.hljs-default .hljs-attribute,.hljs-default .hljs-selector-tag,.hljs-default .hljs-meta-keyword,.hljs-default .hljs-doctag,.hljs-default .hljs-name{font-weight:bold;}.hljs-default .hljs-built_in,.hljs-default .hljs-literal,.hljs-default .hljs-bullet,.hljs-default .hljs-code,.hljs-default .hljs-addition{color:#1F811F;}.hljs-default .hljs-regexp,.hljs-default .hljs-symbol,.hljs-default .hljs-variable,.hljs-default .hljs-template-variable,.hljs-default .hljs-link,.hljs-default .hljs-selector-attr,.hljs-default .hljs-selector-pseudo{color:#BC6060;}.hljs-default .hljs-type,.hljs-default .hljs-string,.hljs-default .hljs-number,.hljs-default .hljs-selector-id,.hljs-default .hljs-selector-class,.hljs-default .hljs-quote,.hljs-default .hljs-template-tag,.hljs-default .hljs-deletion{color:#880000;}.hljs-default .hljs-title,.hljs-default .hljs-section{color:#880000;font-weight:bold;}.hljs-default .hljs-comment{color:#888888;}.hljs-default .hljs-meta{color:#2B6EA1;}.hljs-default .hljs-emphasis{font-style:italic;}.hljs-default .hljs-strong{font-weight:bold;}","docco":".hljs-docco{}.hljs-docco .hljs{display:block;overflow-x:auto;padding:0.5em;color:#000;background:#f8f8ff;}.hljs-docco .hljs-comment,.hljs-docco .hljs-quote{color:#408080;font-style:italic;}.hljs-docco .hljs-keyword,.hljs-docco .hljs-selector-tag,.hljs-docco .hljs-literal,.hljs-docco .hljs-subst{color:#954121;}.hljs-docco .hljs-number{color:#40a070;}.hljs-docco .hljs-string,.hljs-docco .hljs-doctag{color:#219161;}.hljs-docco .hljs-selector-id,.hljs-docco .hljs-selector-class,.hljs-docco .hljs-section,.hljs-docco .hljs-type{color:#19469d;}.hljs-docco .hljs-params{color:#00f;}.hljs-docco .hljs-title{color:#458;font-weight:bold;}.hljs-docco .hljs-tag,.hljs-docco .hljs-name,.hljs-docco .hljs-attribute{color:#000080;font-weight:normal;}.hljs-docco .hljs-variable,.hljs-docco .hljs-template-variable{color:#008080;}.hljs-docco .hljs-regexp,.hljs-docco .hljs-link{color:#b68;}.hljs-docco .hljs-symbol,.hljs-docco .hljs-bullet{color:#990073;}.hljs-docco .hljs-built_in,.hljs-docco .hljs-builtin-name{color:#0086b3;}.hljs-docco .hljs-meta{color:#999;font-weight:bold;}.hljs-docco .hljs-deletion{background:#fdd;}.hljs-docco .hljs-addition{background:#dfd;}.hljs-docco .hljs-emphasis{font-style:italic;}.hljs-docco .hljs-strong{font-weight:bold;}","far":".hljs-far{}.hljs-far .hljs{display:block;overflow-x:auto;padding:0.5em;background:#000080;}.hljs-far .hljs,.hljs-far .hljs-subst{color:#0ff;}.hljs-far .hljs-string,.hljs-far .hljs-attribute,.hljs-far .hljs-symbol,.hljs-far .hljs-bullet,.hljs-far .hljs-built_in,.hljs-far .hljs-builtin-name,.hljs-far .hljs-template-tag,.hljs-far .hljs-template-variable,.hljs-far .hljs-addition{color:#ff0;}.hljs-far .hljs-keyword,.hljs-far .hljs-selector-tag,.hljs-far .hljs-section,.hljs-far .hljs-type,.hljs-far .hljs-name,.hljs-far .hljs-selector-id,.hljs-far .hljs-selector-class,.hljs-far .hljs-variable{color:#fff;}.hljs-far .hljs-comment,.hljs-far .hljs-quote,.hljs-far .hljs-doctag,.hljs-far .hljs-deletion{color:#888;}.hljs-far .hljs-number,.hljs-far .hljs-regexp,.hljs-far .hljs-literal,.hljs-far .hljs-link{color:#0f0;}.hljs-far .hljs-meta{color:#008080;}.hljs-far .hljs-keyword,.hljs-far .hljs-selector-tag,.hljs-far .hljs-title,.hljs-far .hljs-section,.hljs-far .hljs-name,.hljs-far .hljs-strong{font-weight:bold;}.hljs-far .hljs-emphasis{font-style:italic;}","foundation":".hljs-foundation{}.hljs-foundation .hljs{display:block;overflow-x:auto;padding:0.5em;background:#eee;color:black;}.hljs-foundation .hljs-link,.hljs-foundation .hljs-emphasis,.hljs-foundation .hljs-attribute,.hljs-foundation .hljs-addition{color:#070;}.hljs-foundation .hljs-emphasis{font-style:italic;}.hljs-foundation .hljs-strong,.hljs-foundation .hljs-string,.hljs-foundation .hljs-deletion{color:#d14;}.hljs-foundation .hljs-strong{font-weight:bold;}.hljs-foundation .hljs-quote,.hljs-foundation .hljs-comment{color:#998;font-style:italic;}.hljs-foundation .hljs-section,.hljs-foundation .hljs-title{color:#900;}.hljs-foundation .hljs-class .hljs-title,.hljs-foundation .hljs-type{color:#458;}.hljs-foundation .hljs-variable,.hljs-foundation .hljs-template-variable{color:#336699;}.hljs-foundation .hljs-bullet{color:#997700;}.hljs-foundation .hljs-meta{color:#3344bb;}.hljs-foundation .hljs-code,.hljs-foundation .hljs-number,.hljs-foundation .hljs-literal,.hljs-foundation .hljs-keyword,.hljs-foundation .hljs-selector-tag{color:#099;}.hljs-foundation .hljs-regexp{background-color:#fff0ff;color:#880088;}.hljs-foundation .hljs-symbol{color:#990073;}.hljs-foundation .hljs-tag,.hljs-foundation .hljs-name,.hljs-foundation .hljs-selector-id,.hljs-foundation .hljs-selector-class{color:#007700;}","github-gist":".hljs-github-gist{}.hljs-github-gist .hljs{display:block;background:white;padding:0.5em;color:#333333;overflow-x:auto;}.hljs-github-gist .hljs-comment,.hljs-github-gist .hljs-meta{color:#969896;}.hljs-github-gist .hljs-string,.hljs-github-gist .hljs-variable,.hljs-github-gist .hljs-template-variable,.hljs-github-gist .hljs-strong,.hljs-github-gist .hljs-emphasis,.hljs-github-gist .hljs-quote{color:#df5000;}.hljs-github-gist .hljs-keyword,.hljs-github-gist .hljs-selector-tag,.hljs-github-gist .hljs-type{color:#a71d5d;}.hljs-github-gist .hljs-literal,.hljs-github-gist .hljs-symbol,.hljs-github-gist .hljs-bullet,.hljs-github-gist .hljs-attribute{color:#0086b3;}.hljs-github-gist .hljs-section,.hljs-github-gist .hljs-name{color:#63a35c;}.hljs-github-gist .hljs-tag{color:#333333;}.hljs-github-gist .hljs-title,.hljs-github-gist .hljs-attr,.hljs-github-gist .hljs-selector-id,.hljs-github-gist .hljs-selector-class,.hljs-github-gist .hljs-selector-attr,.hljs-github-gist .hljs-selector-pseudo{color:#795da3;}.hljs-github-gist .hljs-addition{color:#55a532;background-color:#eaffea;}.hljs-github-gist .hljs-deletion{color:#bd2c00;background-color:#ffecec;}.hljs-github-gist .hljs-link{text-decoration:underline;}","github":".hljs-github{}.hljs-github .hljs{display:block;overflow-x:auto;padding:0.5em;color:#333;background:#f8f8f8;}.hljs-github .hljs-comment,.hljs-github .hljs-quote{color:#998;font-style:italic;}.hljs-github .hljs-keyword,.hljs-github .hljs-selector-tag,.hljs-github .hljs-subst{color:#333;font-weight:bold;}.hljs-github .hljs-number,.hljs-github .hljs-literal,.hljs-github .hljs-variable,.hljs-github .hljs-template-variable,.hljs-github .hljs-tag .hljs-attr{color:#008080;}.hljs-github .hljs-string,.hljs-github .hljs-doctag{color:#d14;}.hljs-github .hljs-title,.hljs-github .hljs-section,.hljs-github .hljs-selector-id{color:#900;font-weight:bold;}.hljs-github .hljs-subst{font-weight:normal;}.hljs-github .hljs-type,.hljs-github .hljs-class .hljs-title{color:#458;font-weight:bold;}.hljs-github .hljs-tag,.hljs-github .hljs-name,.hljs-github .hljs-attribute{color:#000080;font-weight:normal;}.hljs-github .hljs-regexp,.hljs-github .hljs-link{color:#009926;}.hljs-github .hljs-symbol,.hljs-github .hljs-bullet{color:#990073;}.hljs-github .hljs-built_in,.hljs-github .hljs-builtin-name{color:#0086b3;}.hljs-github .hljs-meta{color:#999;font-weight:bold;}.hljs-github .hljs-deletion{background:#fdd;}.hljs-github .hljs-addition{background:#dfd;}.hljs-github .hljs-emphasis{font-style:italic;}.hljs-github .hljs-strong{font-weight:bold;}","googlecode":".hljs-googlecode{}.hljs-googlecode .hljs{display:block;overflow-x:auto;padding:0.5em;background:white;color:black;}.hljs-googlecode .hljs-comment,.hljs-googlecode .hljs-quote{color:#800;}.hljs-googlecode .hljs-keyword,.hljs-googlecode .hljs-selector-tag,.hljs-googlecode .hljs-section,.hljs-googlecode .hljs-title,.hljs-googlecode .hljs-name{color:#008;}.hljs-googlecode .hljs-variable,.hljs-googlecode .hljs-template-variable{color:#660;}.hljs-googlecode .hljs-string,.hljs-googlecode .hljs-selector-attr,.hljs-googlecode .hljs-selector-pseudo,.hljs-googlecode .hljs-regexp{color:#080;}.hljs-googlecode .hljs-literal,.hljs-googlecode .hljs-symbol,.hljs-googlecode .hljs-bullet,.hljs-googlecode .hljs-meta,.hljs-googlecode .hljs-number,.hljs-googlecode .hljs-link{color:#066;}.hljs-googlecode .hljs-title,.hljs-googlecode .hljs-doctag,.hljs-googlecode .hljs-type,.hljs-googlecode .hljs-attr,.hljs-googlecode .hljs-built_in,.hljs-googlecode .hljs-builtin-name,.hljs-googlecode .hljs-params{color:#606;}.hljs-googlecode .hljs-attribute,.hljs-googlecode .hljs-subst{color:#000;}.hljs-googlecode .hljs-formula{background-color:#eee;font-style:italic;}.hljs-googlecode .hljs-selector-id,.hljs-googlecode .hljs-selector-class{color:#9b703f;}.hljs-googlecode .hljs-addition{background-color:#baeeba;}.hljs-googlecode .hljs-deletion{background-color:#ffc8bd;}.hljs-googlecode .hljs-doctag,.hljs-googlecode .hljs-strong{font-weight:bold;}.hljs-googlecode .hljs-emphasis{font-style:italic;}","grayscale":".hljs-grayscale{}.hljs-grayscale .hljs{display:block;overflow-x:auto;padding:0.5em;color:#333;background:#fff;}.hljs-grayscale .hljs-comment,.hljs-grayscale .hljs-quote{color:#777;font-style:italic;}.hljs-grayscale .hljs-keyword,.hljs-grayscale .hljs-selector-tag,.hljs-grayscale .hljs-subst{color:#333;font-weight:bold;}.hljs-grayscale .hljs-number,.hljs-grayscale .hljs-literal{color:#777;}.hljs-grayscale .hljs-string,.hljs-grayscale .hljs-doctag,.hljs-grayscale .hljs-formula{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat;}.hljs-grayscale .hljs-title,.hljs-grayscale .hljs-section,.hljs-grayscale .hljs-selector-id{color:#000;font-weight:bold;}.hljs-grayscale .hljs-subst{font-weight:normal;}.hljs-grayscale .hljs-class .hljs-title,.hljs-grayscale .hljs-type,.hljs-grayscale .hljs-name{color:#333;font-weight:bold;}.hljs-grayscale .hljs-tag{color:#333;}.hljs-grayscale .hljs-regexp{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat;}.hljs-grayscale .hljs-symbol,.hljs-grayscale .hljs-bullet,.hljs-grayscale .hljs-link{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat;}.hljs-grayscale .hljs-built_in,.hljs-grayscale .hljs-builtin-name{color:#000;text-decoration:underline;}.hljs-grayscale .hljs-meta{color:#999;font-weight:bold;}.hljs-grayscale .hljs-deletion{color:#fff;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat;}.hljs-grayscale .hljs-addition{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat;}.hljs-grayscale .hljs-emphasis{font-style:italic;}.hljs-grayscale .hljs-strong{font-weight:bold;}","hopscotch":".hljs-hopscotch{}.hljs-hopscotch .hljs-comment,.hljs-hopscotch .hljs-quote{color:#989498;}.hljs-hopscotch .hljs-variable,.hljs-hopscotch .hljs-template-variable,.hljs-hopscotch .hljs-attribute,.hljs-hopscotch .hljs-tag,.hljs-hopscotch .hljs-name,.hljs-hopscotch .hljs-selector-id,.hljs-hopscotch .hljs-selector-class,.hljs-hopscotch .hljs-regexp,.hljs-hopscotch .hljs-link,.hljs-hopscotch .hljs-deletion{color:#dd464c;}.hljs-hopscotch .hljs-number,.hljs-hopscotch .hljs-built_in,.hljs-hopscotch .hljs-builtin-name,.hljs-hopscotch .hljs-literal,.hljs-hopscotch .hljs-type,.hljs-hopscotch .hljs-params{color:#fd8b19;}.hljs-hopscotch .hljs-class .hljs-title{color:#fdcc59;}.hljs-hopscotch .hljs-string,.hljs-hopscotch .hljs-symbol,.hljs-hopscotch .hljs-bullet,.hljs-hopscotch .hljs-addition{color:#8fc13e;}.hljs-hopscotch .hljs-meta{color:#149b93;}.hljs-hopscotch .hljs-function,.hljs-hopscotch .hljs-section,.hljs-hopscotch .hljs-title{color:#1290bf;}.hljs-hopscotch .hljs-keyword,.hljs-hopscotch .hljs-selector-tag{color:#c85e7c;}.hljs-hopscotch .hljs{display:block;background:#322931;color:#b9b5b8;padding:0.5em;}.hljs-hopscotch .hljs-emphasis{font-style:italic;}.hljs-hopscotch .hljs-strong{font-weight:bold;}","hybrid":".hljs-hybrid{}.hljs-hybrid .hljs{display:block;overflow-x:auto;padding:0.5em;background:#1d1f21;}.hljs-hybrid .hljs::selection,.hljs-hybrid .hljs span::selection{background:#373b41;}.hljs-hybrid .hljs::-moz-selection,.hljs-hybrid .hljs span::-moz-selection{background:#373b41;}.hljs-hybrid .hljs{color:#c5c8c6;}.hljs-hybrid .hljs-title,.hljs-hybrid .hljs-name{color:#f0c674;}.hljs-hybrid .hljs-comment,.hljs-hybrid .hljs-meta,.hljs-hybrid .hljs-meta .hljs-keyword{color:#707880;}.hljs-hybrid .hljs-number,.hljs-hybrid .hljs-symbol,.hljs-hybrid .hljs-literal,.hljs-hybrid .hljs-deletion,.hljs-hybrid .hljs-link{color:#cc6666;}.hljs-hybrid .hljs-string,.hljs-hybrid .hljs-doctag,.hljs-hybrid .hljs-addition,.hljs-hybrid .hljs-regexp,.hljs-hybrid .hljs-selector-attr,.hljs-hybrid .hljs-selector-pseudo{color:#b5bd68;}.hljs-hybrid .hljs-attribute,.hljs-hybrid .hljs-code,.hljs-hybrid .hljs-selector-id{color:#b294bb;}.hljs-hybrid .hljs-keyword,.hljs-hybrid .hljs-selector-tag,.hljs-hybrid .hljs-bullet,.hljs-hybrid .hljs-tag{color:#81a2be;}.hljs-hybrid .hljs-subst,.hljs-hybrid .hljs-variable,.hljs-hybrid .hljs-template-tag,.hljs-hybrid .hljs-template-variable{color:#8abeb7;}.hljs-hybrid .hljs-type,.hljs-hybrid .hljs-built_in,.hljs-hybrid .hljs-builtin-name,.hljs-hybrid .hljs-quote,.hljs-hybrid .hljs-section,.hljs-hybrid .hljs-selector-class{color:#de935f;}.hljs-hybrid .hljs-emphasis{font-style:italic;}.hljs-hybrid .hljs-strong{font-weight:bold;}","idea":".hljs-idea{}.hljs-idea .hljs{display:block;overflow-x:auto;padding:0.5em;color:#000;background:#fff;}.hljs-idea .hljs-subst,.hljs-idea .hljs-title{font-weight:normal;color:#000;}.hljs-idea .hljs-comment,.hljs-idea .hljs-quote{color:#808080;font-style:italic;}.hljs-idea .hljs-meta{color:#808000;}.hljs-idea .hljs-tag{background:#efefef;}.hljs-idea .hljs-section,.hljs-idea .hljs-name,.hljs-idea .hljs-literal,.hljs-idea .hljs-keyword,.hljs-idea .hljs-selector-tag,.hljs-idea .hljs-type,.hljs-idea .hljs-selector-id,.hljs-idea .hljs-selector-class{font-weight:bold;color:#000080;}.hljs-idea .hljs-attribute,.hljs-idea .hljs-number,.hljs-idea .hljs-regexp,.hljs-idea .hljs-link{font-weight:bold;color:#0000ff;}.hljs-idea .hljs-number,.hljs-idea .hljs-regexp,.hljs-idea .hljs-link{font-weight:normal;}.hljs-idea .hljs-string{color:#008000;font-weight:bold;}.hljs-idea .hljs-symbol,.hljs-idea .hljs-bullet,.hljs-idea .hljs-formula{color:#000;background:#d0eded;font-style:italic;}.hljs-idea .hljs-doctag{text-decoration:underline;}.hljs-idea .hljs-variable,.hljs-idea .hljs-template-variable{color:#660e7a;}.hljs-idea .hljs-addition{background:#baeeba;}.hljs-idea .hljs-deletion{background:#ffc8bd;}.hljs-idea .hljs-emphasis{font-style:italic;}.hljs-idea .hljs-strong{font-weight:bold;}","ir-black":".hljs-ir-black{}.hljs-ir-black .hljs{display:block;overflow-x:auto;padding:0.5em;background:#000;color:#f8f8f8;}.hljs-ir-black .hljs-comment,.hljs-ir-black .hljs-quote,.hljs-ir-black .hljs-meta{color:#7c7c7c;}.hljs-ir-black .hljs-keyword,.hljs-ir-black .hljs-selector-tag,.hljs-ir-black .hljs-tag,.hljs-ir-black .hljs-name{color:#96cbfe;}.hljs-ir-black .hljs-attribute,.hljs-ir-black .hljs-selector-id{color:#ffffb6;}.hljs-ir-black .hljs-string,.hljs-ir-black .hljs-selector-attr,.hljs-ir-black .hljs-selector-pseudo,.hljs-ir-black .hljs-addition{color:#a8ff60;}.hljs-ir-black .hljs-subst{color:#daefa3;}.hljs-ir-black .hljs-regexp,.hljs-ir-black .hljs-link{color:#e9c062;}.hljs-ir-black .hljs-title,.hljs-ir-black .hljs-section,.hljs-ir-black .hljs-type,.hljs-ir-black .hljs-doctag{color:#ffffb6;}.hljs-ir-black .hljs-symbol,.hljs-ir-black .hljs-bullet,.hljs-ir-black .hljs-variable,.hljs-ir-black .hljs-template-variable,.hljs-ir-black .hljs-literal{color:#c6c5fe;}.hljs-ir-black .hljs-number,.hljs-ir-black .hljs-deletion{color:#ff73fd;}.hljs-ir-black .hljs-emphasis{font-style:italic;}.hljs-ir-black .hljs-strong{font-weight:bold;}","kimbie.dark":".hljs-kimbie.dark{}.hljs-kimbie.dark .hljs-comment,.hljs-kimbie.dark .hljs-quote{color:#d6baad;}.hljs-kimbie.dark .hljs-variable,.hljs-kimbie.dark .hljs-template-variable,.hljs-kimbie.dark .hljs-tag,.hljs-kimbie.dark .hljs-name,.hljs-kimbie.dark .hljs-selector-id,.hljs-kimbie.dark .hljs-selector-class,.hljs-kimbie.dark .hljs-regexp,.hljs-kimbie.dark .hljs-meta{color:#dc3958;}.hljs-kimbie.dark .hljs-number,.hljs-kimbie.dark .hljs-built_in,.hljs-kimbie.dark .hljs-builtin-name,.hljs-kimbie.dark .hljs-literal,.hljs-kimbie.dark .hljs-type,.hljs-kimbie.dark .hljs-params,.hljs-kimbie.dark .hljs-deletion,.hljs-kimbie.dark .hljs-link{color:#f79a32;}.hljs-kimbie.dark .hljs-title,.hljs-kimbie.dark .hljs-section,.hljs-kimbie.dark .hljs-attribute{color:#f06431;}.hljs-kimbie.dark .hljs-string,.hljs-kimbie.dark .hljs-symbol,.hljs-kimbie.dark .hljs-bullet,.hljs-kimbie.dark .hljs-addition{color:#889b4a;}.hljs-kimbie.dark .hljs-keyword,.hljs-kimbie.dark .hljs-selector-tag,.hljs-kimbie.dark .hljs-function{color:#98676a;}.hljs-kimbie.dark .hljs{display:block;overflow-x:auto;background:#221a0f;color:#d3af86;padding:0.5em;}.hljs-kimbie.dark .hljs-emphasis{font-style:italic;}.hljs-kimbie.dark .hljs-strong{font-weight:bold;}","kimbie.light":".hljs-kimbie.light{}.hljs-kimbie.light .hljs-comment,.hljs-kimbie.light .hljs-quote{color:#a57a4c;}.hljs-kimbie.light .hljs-variable,.hljs-kimbie.light .hljs-template-variable,.hljs-kimbie.light .hljs-tag,.hljs-kimbie.light .hljs-name,.hljs-kimbie.light .hljs-selector-id,.hljs-kimbie.light .hljs-selector-class,.hljs-kimbie.light .hljs-regexp,.hljs-kimbie.light .hljs-meta{color:#dc3958;}.hljs-kimbie.light .hljs-number,.hljs-kimbie.light .hljs-built_in,.hljs-kimbie.light .hljs-builtin-name,.hljs-kimbie.light .hljs-literal,.hljs-kimbie.light .hljs-type,.hljs-kimbie.light .hljs-params,.hljs-kimbie.light .hljs-deletion,.hljs-kimbie.light .hljs-link{color:#f79a32;}.hljs-kimbie.light .hljs-title,.hljs-kimbie.light .hljs-section,.hljs-kimbie.light .hljs-attribute{color:#f06431;}.hljs-kimbie.light .hljs-string,.hljs-kimbie.light .hljs-symbol,.hljs-kimbie.light .hljs-bullet,.hljs-kimbie.light .hljs-addition{color:#889b4a;}.hljs-kimbie.light .hljs-keyword,.hljs-kimbie.light .hljs-selector-tag,.hljs-kimbie.light .hljs-function{color:#98676a;}.hljs-kimbie.light .hljs{display:block;overflow-x:auto;background:#fbebd4;color:#84613d;padding:0.5em;}.hljs-kimbie.light .hljs-emphasis{font-style:italic;}.hljs-kimbie.light .hljs-strong{font-weight:bold;}","magula":".hljs-magula{}.hljs-magula .hljs{display:block;overflow-x:auto;padding:0.5em;background-color:#f4f4f4;}.hljs-magula .hljs,.hljs-magula .hljs-subst{color:black;}.hljs-magula .hljs-string,.hljs-magula .hljs-title,.hljs-magula .hljs-symbol,.hljs-magula .hljs-bullet,.hljs-magula .hljs-attribute,.hljs-magula .hljs-addition,.hljs-magula .hljs-variable,.hljs-magula .hljs-template-tag,.hljs-magula .hljs-template-variable{color:#050;}.hljs-magula .hljs-comment,.hljs-magula .hljs-quote{color:#777;}.hljs-magula .hljs-number,.hljs-magula .hljs-regexp,.hljs-magula .hljs-literal,.hljs-magula .hljs-type,.hljs-magula .hljs-link{color:#800;}.hljs-magula .hljs-deletion,.hljs-magula .hljs-meta{color:#00e;}.hljs-magula .hljs-keyword,.hljs-magula .hljs-selector-tag,.hljs-magula .hljs-doctag,.hljs-magula .hljs-title,.hljs-magula .hljs-section,.hljs-magula .hljs-built_in,.hljs-magula .hljs-tag,.hljs-magula .hljs-name{font-weight:bold;color:navy;}.hljs-magula .hljs-emphasis{font-style:italic;}.hljs-magula .hljs-strong{font-weight:bold;}","mono-blue":".hljs-mono-blue{}.hljs-mono-blue .hljs{display:block;overflow-x:auto;padding:0.5em;background:#eaeef3;}.hljs-mono-blue .hljs{color:#00193a;}.hljs-mono-blue .hljs-keyword,.hljs-mono-blue .hljs-selector-tag,.hljs-mono-blue .hljs-title,.hljs-mono-blue .hljs-section,.hljs-mono-blue .hljs-doctag,.hljs-mono-blue .hljs-name,.hljs-mono-blue .hljs-strong{font-weight:bold;}.hljs-mono-blue .hljs-comment{color:#738191;}.hljs-mono-blue .hljs-string,.hljs-mono-blue .hljs-title,.hljs-mono-blue .hljs-section,.hljs-mono-blue .hljs-built_in,.hljs-mono-blue .hljs-literal,.hljs-mono-blue .hljs-type,.hljs-mono-blue .hljs-addition,.hljs-mono-blue .hljs-tag,.hljs-mono-blue .hljs-quote,.hljs-mono-blue .hljs-name,.hljs-mono-blue .hljs-selector-id,.hljs-mono-blue .hljs-selector-class{color:#0048ab;}.hljs-mono-blue .hljs-meta,.hljs-mono-blue .hljs-subst,.hljs-mono-blue .hljs-symbol,.hljs-mono-blue .hljs-regexp,.hljs-mono-blue .hljs-attribute,.hljs-mono-blue .hljs-deletion,.hljs-mono-blue .hljs-variable,.hljs-mono-blue .hljs-template-variable,.hljs-mono-blue .hljs-link,.hljs-mono-blue .hljs-bullet{color:#4c81c9;}.hljs-mono-blue .hljs-emphasis{font-style:italic;}","monokai-sublime":".hljs-monokai-sublime{}.hljs-monokai-sublime .hljs{display:block;overflow-x:auto;padding:0.5em;background:#23241f;}.hljs-monokai-sublime .hljs,.hljs-monokai-sublime .hljs-tag,.hljs-monokai-sublime .hljs-subst{color:#f8f8f2;}.hljs-monokai-sublime .hljs-strong,.hljs-monokai-sublime .hljs-emphasis{color:#a8a8a2;}.hljs-monokai-sublime .hljs-bullet,.hljs-monokai-sublime .hljs-quote,.hljs-monokai-sublime .hljs-number,.hljs-monokai-sublime .hljs-regexp,.hljs-monokai-sublime .hljs-literal,.hljs-monokai-sublime .hljs-link{color:#ae81ff;}.hljs-monokai-sublime .hljs-code,.hljs-monokai-sublime .hljs-title,.hljs-monokai-sublime .hljs-section,.hljs-monokai-sublime .hljs-selector-class{color:#a6e22e;}.hljs-monokai-sublime .hljs-strong{font-weight:bold;}.hljs-monokai-sublime .hljs-emphasis{font-style:italic;}.hljs-monokai-sublime .hljs-keyword,.hljs-monokai-sublime .hljs-selector-tag,.hljs-monokai-sublime .hljs-name,.hljs-monokai-sublime .hljs-attr{color:#f92672;}.hljs-monokai-sublime .hljs-symbol,.hljs-monokai-sublime .hljs-attribute{color:#66d9ef;}.hljs-monokai-sublime .hljs-params,.hljs-monokai-sublime .hljs-class .hljs-title{color:#f8f8f2;}.hljs-monokai-sublime .hljs-string,.hljs-monokai-sublime .hljs-type,.hljs-monokai-sublime .hljs-built_in,.hljs-monokai-sublime .hljs-builtin-name,.hljs-monokai-sublime .hljs-selector-id,.hljs-monokai-sublime .hljs-selector-attr,.hljs-monokai-sublime .hljs-selector-pseudo,.hljs-monokai-sublime .hljs-addition,.hljs-monokai-sublime .hljs-variable,.hljs-monokai-sublime .hljs-template-variable{color:#e6db74;}.hljs-monokai-sublime .hljs-comment,.hljs-monokai-sublime .hljs-deletion,.hljs-monokai-sublime .hljs-meta{color:#75715e;}","monokai":".hljs-monokai{}.hljs-monokai .hljs{display:block;overflow-x:auto;padding:0.5em;background:#272822;color:#ddd;}.hljs-monokai .hljs-tag,.hljs-monokai .hljs-keyword,.hljs-monokai .hljs-selector-tag,.hljs-monokai .hljs-literal,.hljs-monokai .hljs-strong,.hljs-monokai .hljs-name{color:#f92672;}.hljs-monokai .hljs-code{color:#66d9ef;}.hljs-monokai .hljs-class .hljs-title{color:white;}.hljs-monokai .hljs-attribute,.hljs-monokai .hljs-symbol,.hljs-monokai .hljs-regexp,.hljs-monokai .hljs-link{color:#bf79db;}.hljs-monokai .hljs-string,.hljs-monokai .hljs-bullet,.hljs-monokai .hljs-subst,.hljs-monokai .hljs-title,.hljs-monokai .hljs-section,.hljs-monokai .hljs-emphasis,.hljs-monokai .hljs-type,.hljs-monokai .hljs-built_in,.hljs-monokai .hljs-builtin-name,.hljs-monokai .hljs-selector-attr,.hljs-monokai .hljs-selector-pseudo,.hljs-monokai .hljs-addition,.hljs-monokai .hljs-variable,.hljs-monokai .hljs-template-tag,.hljs-monokai .hljs-template-variable{color:#a6e22e;}.hljs-monokai .hljs-comment,.hljs-monokai .hljs-quote,.hljs-monokai .hljs-deletion,.hljs-monokai .hljs-meta{color:#75715e;}.hljs-monokai .hljs-keyword,.hljs-monokai .hljs-selector-tag,.hljs-monokai .hljs-literal,.hljs-monokai .hljs-doctag,.hljs-monokai .hljs-title,.hljs-monokai .hljs-section,.hljs-monokai .hljs-type,.hljs-monokai .hljs-selector-id{font-weight:bold;}","obsidian":".hljs-obsidian{}.hljs-obsidian .hljs{display:block;overflow-x:auto;padding:0.5em;background:#282b2e;}.hljs-obsidian .hljs-keyword,.hljs-obsidian .hljs-selector-tag,.hljs-obsidian .hljs-literal,.hljs-obsidian .hljs-selector-id{color:#93c763;}.hljs-obsidian .hljs-number{color:#ffcd22;}.hljs-obsidian .hljs{color:#e0e2e4;}.hljs-obsidian .hljs-attribute{color:#668bb0;}.hljs-obsidian .hljs-code,.hljs-obsidian .hljs-class .hljs-title,.hljs-obsidian .hljs-section{color:white;}.hljs-obsidian .hljs-regexp,.hljs-obsidian .hljs-link{color:#d39745;}.hljs-obsidian .hljs-meta{color:#557182;}.hljs-obsidian .hljs-tag,.hljs-obsidian .hljs-name,.hljs-obsidian .hljs-bullet,.hljs-obsidian .hljs-subst,.hljs-obsidian .hljs-emphasis,.hljs-obsidian .hljs-type,.hljs-obsidian .hljs-built_in,.hljs-obsidian .hljs-selector-attr,.hljs-obsidian .hljs-selector-pseudo,.hljs-obsidian .hljs-addition,.hljs-obsidian .hljs-variable,.hljs-obsidian .hljs-template-tag,.hljs-obsidian .hljs-template-variable{color:#8cbbad;}.hljs-obsidian .hljs-string,.hljs-obsidian .hljs-symbol{color:#ec7600;}.hljs-obsidian .hljs-comment,.hljs-obsidian .hljs-quote,.hljs-obsidian .hljs-deletion{color:#818e96;}.hljs-obsidian .hljs-selector-class{color:#a082bd;}.hljs-obsidian .hljs-keyword,.hljs-obsidian .hljs-selector-tag,.hljs-obsidian .hljs-literal,.hljs-obsidian .hljs-doctag,.hljs-obsidian .hljs-title,.hljs-obsidian .hljs-section,.hljs-obsidian .hljs-type,.hljs-obsidian .hljs-name,.hljs-obsidian .hljs-strong{font-weight:bold;}","paraiso-dark":".hljs-paraiso-dark{}.hljs-paraiso-dark .hljs-comment,.hljs-paraiso-dark .hljs-quote{color:#8d8687;}.hljs-paraiso-dark .hljs-variable,.hljs-paraiso-dark .hljs-template-variable,.hljs-paraiso-dark .hljs-tag,.hljs-paraiso-dark .hljs-name,.hljs-paraiso-dark .hljs-selector-id,.hljs-paraiso-dark .hljs-selector-class,.hljs-paraiso-dark .hljs-regexp,.hljs-paraiso-dark .hljs-link,.hljs-paraiso-dark .hljs-meta{color:#ef6155;}.hljs-paraiso-dark .hljs-number,.hljs-paraiso-dark .hljs-built_in,.hljs-paraiso-dark .hljs-builtin-name,.hljs-paraiso-dark .hljs-literal,.hljs-paraiso-dark .hljs-type,.hljs-paraiso-dark .hljs-params,.hljs-paraiso-dark .hljs-deletion{color:#f99b15;}.hljs-paraiso-dark .hljs-title,.hljs-paraiso-dark .hljs-section,.hljs-paraiso-dark .hljs-attribute{color:#fec418;}.hljs-paraiso-dark .hljs-string,.hljs-paraiso-dark .hljs-symbol,.hljs-paraiso-dark .hljs-bullet,.hljs-paraiso-dark .hljs-addition{color:#48b685;}.hljs-paraiso-dark .hljs-keyword,.hljs-paraiso-dark .hljs-selector-tag{color:#815ba4;}.hljs-paraiso-dark .hljs{display:block;overflow-x:auto;background:#2f1e2e;color:#a39e9b;padding:0.5em;}.hljs-paraiso-dark .hljs-emphasis{font-style:italic;}.hljs-paraiso-dark .hljs-strong{font-weight:bold;}","paraiso-light":".hljs-paraiso-light{}.hljs-paraiso-light .hljs-comment,.hljs-paraiso-light .hljs-quote{color:#776e71;}.hljs-paraiso-light .hljs-variable,.hljs-paraiso-light .hljs-template-variable,.hljs-paraiso-light .hljs-tag,.hljs-paraiso-light .hljs-name,.hljs-paraiso-light .hljs-selector-id,.hljs-paraiso-light .hljs-selector-class,.hljs-paraiso-light .hljs-regexp,.hljs-paraiso-light .hljs-link,.hljs-paraiso-light .hljs-meta{color:#ef6155;}.hljs-paraiso-light .hljs-number,.hljs-paraiso-light .hljs-built_in,.hljs-paraiso-light .hljs-builtin-name,.hljs-paraiso-light .hljs-literal,.hljs-paraiso-light .hljs-type,.hljs-paraiso-light .hljs-params,.hljs-paraiso-light .hljs-deletion{color:#f99b15;}.hljs-paraiso-light .hljs-title,.hljs-paraiso-light .hljs-section,.hljs-paraiso-light .hljs-attribute{color:#fec418;}.hljs-paraiso-light .hljs-string,.hljs-paraiso-light .hljs-symbol,.hljs-paraiso-light .hljs-bullet,.hljs-paraiso-light .hljs-addition{color:#48b685;}.hljs-paraiso-light .hljs-keyword,.hljs-paraiso-light .hljs-selector-tag{color:#815ba4;}.hljs-paraiso-light .hljs{display:block;overflow-x:auto;background:#e7e9db;color:#4f424c;padding:0.5em;}.hljs-paraiso-light .hljs-emphasis{font-style:italic;}.hljs-paraiso-light .hljs-strong{font-weight:bold;}","railscasts":".hljs-railscasts{}.hljs-railscasts .hljs{display:block;overflow-x:auto;padding:0.5em;background:#232323;color:#e6e1dc;}.hljs-railscasts .hljs-comment,.hljs-railscasts .hljs-quote{color:#bc9458;font-style:italic;}.hljs-railscasts .hljs-keyword,.hljs-railscasts .hljs-selector-tag{color:#c26230;}.hljs-railscasts .hljs-string,.hljs-railscasts .hljs-number,.hljs-railscasts .hljs-regexp,.hljs-railscasts .hljs-variable,.hljs-railscasts .hljs-template-variable{color:#a5c261;}.hljs-railscasts .hljs-subst{color:#519f50;}.hljs-railscasts .hljs-tag,.hljs-railscasts .hljs-name{color:#e8bf6a;}.hljs-railscasts .hljs-type{color:#da4939;}.hljs-railscasts .hljs-symbol,.hljs-railscasts .hljs-bullet,.hljs-railscasts .hljs-built_in,.hljs-railscasts .hljs-builtin-name,.hljs-railscasts .hljs-attr,.hljs-railscasts .hljs-link{color:#6d9cbe;}.hljs-railscasts .hljs-params{color:#d0d0ff;}.hljs-railscasts .hljs-attribute{color:#cda869;}.hljs-railscasts .hljs-meta{color:#9b859d;}.hljs-railscasts .hljs-title,.hljs-railscasts .hljs-section{color:#ffc66d;}.hljs-railscasts .hljs-addition{background-color:#144212;color:#e6e1dc;display:inline-block;width:100%;}.hljs-railscasts .hljs-deletion{background-color:#600;color:#e6e1dc;display:inline-block;width:100%;}.hljs-railscasts .hljs-selector-class{color:#9b703f;}.hljs-railscasts .hljs-selector-id{color:#8b98ab;}.hljs-railscasts .hljs-emphasis{font-style:italic;}.hljs-railscasts .hljs-strong{font-weight:bold;}.hljs-railscasts .hljs-link{text-decoration:underline;}","rainbow":".hljs-rainbow{}.hljs-rainbow .hljs{display:block;overflow-x:auto;padding:0.5em;background:#474949;color:#d1d9e1;}.hljs-rainbow .hljs-comment,.hljs-rainbow .hljs-quote{color:#969896;font-style:italic;}.hljs-rainbow .hljs-keyword,.hljs-rainbow .hljs-selector-tag,.hljs-rainbow .hljs-literal,.hljs-rainbow .hljs-type,.hljs-rainbow .hljs-addition{color:#cc99cc;}.hljs-rainbow .hljs-number,.hljs-rainbow .hljs-selector-attr,.hljs-rainbow .hljs-selector-pseudo{color:#f99157;}.hljs-rainbow .hljs-string,.hljs-rainbow .hljs-doctag,.hljs-rainbow .hljs-regexp{color:#8abeb7;}.hljs-rainbow .hljs-title,.hljs-rainbow .hljs-name,.hljs-rainbow .hljs-section,.hljs-rainbow .hljs-built_in{color:#b5bd68;}.hljs-rainbow .hljs-variable,.hljs-rainbow .hljs-template-variable,.hljs-rainbow .hljs-selector-id,.hljs-rainbow .hljs-class .hljs-title{color:#ffcc66;}.hljs-rainbow .hljs-section,.hljs-rainbow .hljs-name,.hljs-rainbow .hljs-strong{font-weight:bold;}.hljs-rainbow .hljs-symbol,.hljs-rainbow .hljs-bullet,.hljs-rainbow .hljs-subst,.hljs-rainbow .hljs-meta,.hljs-rainbow .hljs-link{color:#f99157;}.hljs-rainbow .hljs-deletion{color:#dc322f;}.hljs-rainbow .hljs-formula{background:#eee8d5;}.hljs-rainbow .hljs-attr,.hljs-rainbow .hljs-attribute{color:#81a2be;}.hljs-rainbow .hljs-emphasis{font-style:italic;}","school-book":".hljs-school-book{}.hljs-school-book .hljs{display:block;overflow-x:auto;padding:15px 0.5em 0.5em 30px;font-size:11px;line-height:16px;}.hljs-school-book pre{background:#f6f6ae url(./school-book.png);border-top:solid 2px #d2e8b9;border-bottom:solid 1px #d2e8b9;}.hljs-school-book .hljs-keyword,.hljs-school-book .hljs-selector-tag,.hljs-school-book .hljs-literal{color:#005599;font-weight:bold;}.hljs-school-book .hljs,.hljs-school-book .hljs-subst{color:#3e5915;}.hljs-school-book .hljs-string,.hljs-school-book .hljs-title,.hljs-school-book .hljs-section,.hljs-school-book .hljs-type,.hljs-school-book .hljs-symbol,.hljs-school-book .hljs-bullet,.hljs-school-book .hljs-attribute,.hljs-school-book .hljs-built_in,.hljs-school-book .hljs-builtin-name,.hljs-school-book .hljs-addition,.hljs-school-book .hljs-variable,.hljs-school-book .hljs-template-tag,.hljs-school-book .hljs-template-variable,.hljs-school-book .hljs-link{color:#2c009f;}.hljs-school-book .hljs-comment,.hljs-school-book .hljs-quote,.hljs-school-book .hljs-deletion,.hljs-school-book .hljs-meta{color:#e60415;}.hljs-school-book .hljs-keyword,.hljs-school-book .hljs-selector-tag,.hljs-school-book .hljs-literal,.hljs-school-book .hljs-doctag,.hljs-school-book .hljs-title,.hljs-school-book .hljs-section,.hljs-school-book .hljs-type,.hljs-school-book .hljs-name,.hljs-school-book .hljs-selector-id,.hljs-school-book .hljs-strong{font-weight:bold;}.hljs-school-book .hljs-emphasis{font-style:italic;}","solarized-dark":".hljs-solarized-dark{}.hljs-solarized-dark .hljs{display:block;overflow-x:auto;padding:0.5em;background:#002b36;color:#839496;}.hljs-solarized-dark .hljs-comment,.hljs-solarized-dark .hljs-quote{color:#586e75;}.hljs-solarized-dark .hljs-keyword,.hljs-solarized-dark .hljs-selector-tag,.hljs-solarized-dark .hljs-addition{color:#859900;}.hljs-solarized-dark .hljs-number,.hljs-solarized-dark .hljs-string,.hljs-solarized-dark .hljs-meta .hljs-meta-string,.hljs-solarized-dark .hljs-literal,.hljs-solarized-dark .hljs-doctag,.hljs-solarized-dark .hljs-regexp{color:#2aa198;}.hljs-solarized-dark .hljs-title,.hljs-solarized-dark .hljs-section,.hljs-solarized-dark .hljs-name,.hljs-solarized-dark .hljs-selector-id,.hljs-solarized-dark .hljs-selector-class{color:#268bd2;}.hljs-solarized-dark .hljs-attribute,.hljs-solarized-dark .hljs-attr,.hljs-solarized-dark .hljs-variable,.hljs-solarized-dark .hljs-template-variable,.hljs-solarized-dark .hljs-class .hljs-title,.hljs-solarized-dark .hljs-type{color:#b58900;}.hljs-solarized-dark .hljs-symbol,.hljs-solarized-dark .hljs-bullet,.hljs-solarized-dark .hljs-subst,.hljs-solarized-dark .hljs-meta,.hljs-solarized-dark .hljs-meta .hljs-keyword,.hljs-solarized-dark .hljs-selector-attr,.hljs-solarized-dark .hljs-selector-pseudo,.hljs-solarized-dark .hljs-link{color:#cb4b16;}.hljs-solarized-dark .hljs-built_in,.hljs-solarized-dark .hljs-deletion{color:#dc322f;}.hljs-solarized-dark .hljs-formula{background:#073642;}.hljs-solarized-dark .hljs-emphasis{font-style:italic;}.hljs-solarized-dark .hljs-strong{font-weight:bold;}","solarized-light":".hljs-solarized-light{}.hljs-solarized-light .hljs{display:block;overflow-x:auto;padding:0.5em;background:#fdf6e3;color:#657b83;}.hljs-solarized-light .hljs-comment,.hljs-solarized-light .hljs-quote{color:#93a1a1;}.hljs-solarized-light .hljs-keyword,.hljs-solarized-light .hljs-selector-tag,.hljs-solarized-light .hljs-addition{color:#859900;}.hljs-solarized-light .hljs-number,.hljs-solarized-light .hljs-string,.hljs-solarized-light .hljs-meta .hljs-meta-string,.hljs-solarized-light .hljs-literal,.hljs-solarized-light .hljs-doctag,.hljs-solarized-light .hljs-regexp{color:#2aa198;}.hljs-solarized-light .hljs-title,.hljs-solarized-light .hljs-section,.hljs-solarized-light .hljs-name,.hljs-solarized-light .hljs-selector-id,.hljs-solarized-light .hljs-selector-class{color:#268bd2;}.hljs-solarized-light .hljs-attribute,.hljs-solarized-light .hljs-attr,.hljs-solarized-light .hljs-variable,.hljs-solarized-light .hljs-template-variable,.hljs-solarized-light .hljs-class .hljs-title,.hljs-solarized-light .hljs-type{color:#b58900;}.hljs-solarized-light .hljs-symbol,.hljs-solarized-light .hljs-bullet,.hljs-solarized-light .hljs-subst,.hljs-solarized-light .hljs-meta,.hljs-solarized-light .hljs-meta .hljs-keyword,.hljs-solarized-light .hljs-selector-attr,.hljs-solarized-light .hljs-selector-pseudo,.hljs-solarized-light .hljs-link{color:#cb4b16;}.hljs-solarized-light .hljs-built_in,.hljs-solarized-light .hljs-deletion{color:#dc322f;}.hljs-solarized-light .hljs-formula{background:#eee8d5;}.hljs-solarized-light .hljs-emphasis{font-style:italic;}.hljs-solarized-light .hljs-strong{font-weight:bold;}","sunburst":".hljs-sunburst{}.hljs-sunburst .hljs{display:block;overflow-x:auto;padding:0.5em;background:#000;color:#f8f8f8;}.hljs-sunburst .hljs-comment,.hljs-sunburst .hljs-quote{color:#aeaeae;font-style:italic;}.hljs-sunburst .hljs-keyword,.hljs-sunburst .hljs-selector-tag,.hljs-sunburst .hljs-type{color:#e28964;}.hljs-sunburst .hljs-string{color:#65b042;}.hljs-sunburst .hljs-subst{color:#daefa3;}.hljs-sunburst .hljs-regexp,.hljs-sunburst .hljs-link{color:#e9c062;}.hljs-sunburst .hljs-title,.hljs-sunburst .hljs-section,.hljs-sunburst .hljs-tag,.hljs-sunburst .hljs-name{color:#89bdff;}.hljs-sunburst .hljs-class .hljs-title,.hljs-sunburst .hljs-doctag{text-decoration:underline;}.hljs-sunburst .hljs-symbol,.hljs-sunburst .hljs-bullet,.hljs-sunburst .hljs-number{color:#3387cc;}.hljs-sunburst .hljs-params,.hljs-sunburst .hljs-variable,.hljs-sunburst .hljs-template-variable{color:#3e87e3;}.hljs-sunburst .hljs-attribute{color:#cda869;}.hljs-sunburst .hljs-meta{color:#8996a8;}.hljs-sunburst .hljs-formula{background-color:#0e2231;color:#f8f8f8;font-style:italic;}.hljs-sunburst .hljs-addition{background-color:#253b22;color:#f8f8f8;}.hljs-sunburst .hljs-deletion{background-color:#420e09;color:#f8f8f8;}.hljs-sunburst .hljs-selector-class{color:#9b703f;}.hljs-sunburst .hljs-selector-id{color:#8b98ab;}.hljs-sunburst .hljs-emphasis{font-style:italic;}.hljs-sunburst .hljs-strong{font-weight:bold;}","tomorrow-night-blue":".hljs-tomorrow-night-blue{}.hljs-tomorrow-night-blue .hljs-comment,.hljs-tomorrow-night-blue .hljs-quote{color:#7285b7;}.hljs-tomorrow-night-blue .hljs-variable,.hljs-tomorrow-night-blue .hljs-template-variable,.hljs-tomorrow-night-blue .hljs-tag,.hljs-tomorrow-night-blue .hljs-name,.hljs-tomorrow-night-blue .hljs-selector-id,.hljs-tomorrow-night-blue .hljs-selector-class,.hljs-tomorrow-night-blue .hljs-regexp,.hljs-tomorrow-night-blue .hljs-deletion{color:#ff9da4;}.hljs-tomorrow-night-blue .hljs-number,.hljs-tomorrow-night-blue .hljs-built_in,.hljs-tomorrow-night-blue .hljs-builtin-name,.hljs-tomorrow-night-blue .hljs-literal,.hljs-tomorrow-night-blue .hljs-type,.hljs-tomorrow-night-blue .hljs-params,.hljs-tomorrow-night-blue .hljs-meta,.hljs-tomorrow-night-blue .hljs-link{color:#ffc58f;}.hljs-tomorrow-night-blue .hljs-attribute{color:#ffeead;}.hljs-tomorrow-night-blue .hljs-string,.hljs-tomorrow-night-blue .hljs-symbol,.hljs-tomorrow-night-blue .hljs-bullet,.hljs-tomorrow-night-blue .hljs-addition{color:#d1f1a9;}.hljs-tomorrow-night-blue .hljs-title,.hljs-tomorrow-night-blue .hljs-section{color:#bbdaff;}.hljs-tomorrow-night-blue .hljs-keyword,.hljs-tomorrow-night-blue .hljs-selector-tag{color:#ebbbff;}.hljs-tomorrow-night-blue .hljs{display:block;overflow-x:auto;background:#002451;color:white;padding:0.5em;}.hljs-tomorrow-night-blue .hljs-emphasis{font-style:italic;}.hljs-tomorrow-night-blue .hljs-strong{font-weight:bold;}","tomorrow-night-bright":".hljs-tomorrow-night-bright{}.hljs-tomorrow-night-bright .hljs-comment,.hljs-tomorrow-night-bright .hljs-quote{color:#969896;}.hljs-tomorrow-night-bright .hljs-variable,.hljs-tomorrow-night-bright .hljs-template-variable,.hljs-tomorrow-night-bright .hljs-tag,.hljs-tomorrow-night-bright .hljs-name,.hljs-tomorrow-night-bright .hljs-selector-id,.hljs-tomorrow-night-bright .hljs-selector-class,.hljs-tomorrow-night-bright .hljs-regexp,.hljs-tomorrow-night-bright .hljs-deletion{color:#d54e53;}.hljs-tomorrow-night-bright .hljs-number,.hljs-tomorrow-night-bright .hljs-built_in,.hljs-tomorrow-night-bright .hljs-builtin-name,.hljs-tomorrow-night-bright .hljs-literal,.hljs-tomorrow-night-bright .hljs-type,.hljs-tomorrow-night-bright .hljs-params,.hljs-tomorrow-night-bright .hljs-meta,.hljs-tomorrow-night-bright .hljs-link{color:#e78c45;}.hljs-tomorrow-night-bright .hljs-attribute{color:#e7c547;}.hljs-tomorrow-night-bright .hljs-string,.hljs-tomorrow-night-bright .hljs-symbol,.hljs-tomorrow-night-bright .hljs-bullet,.hljs-tomorrow-night-bright .hljs-addition{color:#b9ca4a;}.hljs-tomorrow-night-bright .hljs-title,.hljs-tomorrow-night-bright .hljs-section{color:#7aa6da;}.hljs-tomorrow-night-bright .hljs-keyword,.hljs-tomorrow-night-bright .hljs-selector-tag{color:#c397d8;}.hljs-tomorrow-night-bright .hljs{display:block;overflow-x:auto;background:black;color:#eaeaea;padding:0.5em;}.hljs-tomorrow-night-bright .hljs-emphasis{font-style:italic;}.hljs-tomorrow-night-bright .hljs-strong{font-weight:bold;}","tomorrow-night-eighties":".hljs-tomorrow-night-eighties{}.hljs-tomorrow-night-eighties .hljs-comment,.hljs-tomorrow-night-eighties .hljs-quote{color:#999999;}.hljs-tomorrow-night-eighties .hljs-variable,.hljs-tomorrow-night-eighties .hljs-template-variable,.hljs-tomorrow-night-eighties .hljs-tag,.hljs-tomorrow-night-eighties .hljs-name,.hljs-tomorrow-night-eighties .hljs-selector-id,.hljs-tomorrow-night-eighties .hljs-selector-class,.hljs-tomorrow-night-eighties .hljs-regexp,.hljs-tomorrow-night-eighties .hljs-deletion{color:#f2777a;}.hljs-tomorrow-night-eighties .hljs-number,.hljs-tomorrow-night-eighties .hljs-built_in,.hljs-tomorrow-night-eighties .hljs-builtin-name,.hljs-tomorrow-night-eighties .hljs-literal,.hljs-tomorrow-night-eighties .hljs-type,.hljs-tomorrow-night-eighties .hljs-params,.hljs-tomorrow-night-eighties .hljs-meta,.hljs-tomorrow-night-eighties .hljs-link{color:#f99157;}.hljs-tomorrow-night-eighties .hljs-attribute{color:#ffcc66;}.hljs-tomorrow-night-eighties .hljs-string,.hljs-tomorrow-night-eighties .hljs-symbol,.hljs-tomorrow-night-eighties .hljs-bullet,.hljs-tomorrow-night-eighties .hljs-addition{color:#99cc99;}.hljs-tomorrow-night-eighties .hljs-title,.hljs-tomorrow-night-eighties .hljs-section{color:#6699cc;}.hljs-tomorrow-night-eighties .hljs-keyword,.hljs-tomorrow-night-eighties .hljs-selector-tag{color:#cc99cc;}.hljs-tomorrow-night-eighties .hljs{display:block;overflow-x:auto;background:#2d2d2d;color:#cccccc;padding:0.5em;}.hljs-tomorrow-night-eighties .hljs-emphasis{font-style:italic;}.hljs-tomorrow-night-eighties .hljs-strong{font-weight:bold;}","tomorrow-night":".hljs-tomorrow-night{}.hljs-tomorrow-night .hljs-comment,.hljs-tomorrow-night .hljs-quote{color:#969896;}.hljs-tomorrow-night .hljs-variable,.hljs-tomorrow-night .hljs-template-variable,.hljs-tomorrow-night .hljs-tag,.hljs-tomorrow-night .hljs-name,.hljs-tomorrow-night .hljs-selector-id,.hljs-tomorrow-night .hljs-selector-class,.hljs-tomorrow-night .hljs-regexp,.hljs-tomorrow-night .hljs-deletion{color:#cc6666;}.hljs-tomorrow-night .hljs-number,.hljs-tomorrow-night .hljs-built_in,.hljs-tomorrow-night .hljs-builtin-name,.hljs-tomorrow-night .hljs-literal,.hljs-tomorrow-night .hljs-type,.hljs-tomorrow-night .hljs-params,.hljs-tomorrow-night .hljs-meta,.hljs-tomorrow-night .hljs-link{color:#de935f;}.hljs-tomorrow-night .hljs-attribute{color:#f0c674;}.hljs-tomorrow-night .hljs-string,.hljs-tomorrow-night .hljs-symbol,.hljs-tomorrow-night .hljs-bullet,.hljs-tomorrow-night .hljs-addition{color:#b5bd68;}.hljs-tomorrow-night .hljs-title,.hljs-tomorrow-night .hljs-section{color:#81a2be;}.hljs-tomorrow-night .hljs-keyword,.hljs-tomorrow-night .hljs-selector-tag{color:#b294bb;}.hljs-tomorrow-night .hljs{display:block;overflow-x:auto;background:#1d1f21;color:#c5c8c6;padding:0.5em;}.hljs-tomorrow-night .hljs-emphasis{font-style:italic;}.hljs-tomorrow-night .hljs-strong{font-weight:bold;}","tomorrow":".hljs-tomorrow{}.hljs-tomorrow .hljs-comment,.hljs-tomorrow .hljs-quote{color:#8e908c;}.hljs-tomorrow .hljs-variable,.hljs-tomorrow .hljs-template-variable,.hljs-tomorrow .hljs-tag,.hljs-tomorrow .hljs-name,.hljs-tomorrow .hljs-selector-id,.hljs-tomorrow .hljs-selector-class,.hljs-tomorrow .hljs-regexp,.hljs-tomorrow .hljs-deletion{color:#c82829;}.hljs-tomorrow .hljs-number,.hljs-tomorrow .hljs-built_in,.hljs-tomorrow .hljs-builtin-name,.hljs-tomorrow .hljs-literal,.hljs-tomorrow .hljs-type,.hljs-tomorrow .hljs-params,.hljs-tomorrow .hljs-meta,.hljs-tomorrow .hljs-link{color:#f5871f;}.hljs-tomorrow .hljs-attribute{color:#eab700;}.hljs-tomorrow .hljs-string,.hljs-tomorrow .hljs-symbol,.hljs-tomorrow .hljs-bullet,.hljs-tomorrow .hljs-addition{color:#718c00;}.hljs-tomorrow .hljs-title,.hljs-tomorrow .hljs-section{color:#4271ae;}.hljs-tomorrow .hljs-keyword,.hljs-tomorrow .hljs-selector-tag{color:#8959a8;}.hljs-tomorrow .hljs{display:block;overflow-x:auto;background:white;color:#4d4d4c;padding:0.5em;}.hljs-tomorrow .hljs-emphasis{font-style:italic;}.hljs-tomorrow .hljs-strong{font-weight:bold;}","vs":".hljs-vs{}.hljs-vs .hljs{display:block;overflow-x:auto;padding:0.5em;background:white;color:black;}.hljs-vs .hljs-comment,.hljs-vs .hljs-quote,.hljs-vs .hljs-variable{color:#008000;}.hljs-vs .hljs-keyword,.hljs-vs .hljs-selector-tag,.hljs-vs .hljs-built_in,.hljs-vs .hljs-name,.hljs-vs .hljs-tag{color:#00f;}.hljs-vs .hljs-string,.hljs-vs .hljs-title,.hljs-vs .hljs-section,.hljs-vs .hljs-attribute,.hljs-vs .hljs-literal,.hljs-vs .hljs-template-tag,.hljs-vs .hljs-template-variable,.hljs-vs .hljs-type,.hljs-vs .hljs-addition{color:#a31515;}.hljs-vs .hljs-deletion,.hljs-vs .hljs-selector-attr,.hljs-vs .hljs-selector-pseudo,.hljs-vs .hljs-meta{color:#2b91af;}.hljs-vs .hljs-doctag{color:#808080;}.hljs-vs .hljs-attr{color:#f00;}.hljs-vs .hljs-symbol,.hljs-vs .hljs-bullet,.hljs-vs .hljs-link{color:#00b0e8;}.hljs-vs .hljs-emphasis{font-style:italic;}.hljs-vs .hljs-strong{font-weight:bold;}","xcode":".hljs-xcode{}.hljs-xcode .hljs{display:block;overflow-x:auto;padding:0.5em;background:#fff;color:black;}.hljs-xcode .hljs-comment,.hljs-xcode .hljs-quote{color:#006a00;}.hljs-xcode .hljs-keyword,.hljs-xcode .hljs-selector-tag,.hljs-xcode .hljs-literal{color:#aa0d91;}.hljs-xcode .hljs-name{color:#008;}.hljs-xcode .hljs-variable,.hljs-xcode .hljs-template-variable{color:#660;}.hljs-xcode .hljs-string{color:#c41a16;}.hljs-xcode .hljs-regexp,.hljs-xcode .hljs-link{color:#080;}.hljs-xcode .hljs-title,.hljs-xcode .hljs-tag,.hljs-xcode .hljs-symbol,.hljs-xcode .hljs-bullet,.hljs-xcode .hljs-number,.hljs-xcode .hljs-meta{color:#1c00cf;}.hljs-xcode .hljs-section,.hljs-xcode .hljs-class .hljs-title,.hljs-xcode .hljs-type,.hljs-xcode .hljs-attr,.hljs-xcode .hljs-built_in,.hljs-xcode .hljs-builtin-name,.hljs-xcode .hljs-params{color:#5c2699;}.hljs-xcode .hljs-attribute,.hljs-xcode .hljs-subst{color:#000;}.hljs-xcode .hljs-formula{background-color:#eee;font-style:italic;}.hljs-xcode .hljs-addition{background-color:#baeeba;}.hljs-xcode .hljs-deletion{background-color:#ffc8bd;}.hljs-xcode .hljs-selector-id,.hljs-xcode .hljs-selector-class{color:#9b703f;}.hljs-xcode .hljs-doctag,.hljs-xcode .hljs-strong{font-weight:bold;}.hljs-xcode .hljs-emphasis{font-style:italic;}","zenburn":".hljs-zenburn{}.hljs-zenburn .hljs{display:block;overflow-x:auto;padding:0.5em;background:#3f3f3f;color:#dcdcdc;}.hljs-zenburn .hljs-keyword,.hljs-zenburn .hljs-selector-tag,.hljs-zenburn .hljs-tag{color:#e3ceab;}.hljs-zenburn .hljs-template-tag{color:#dcdcdc;}.hljs-zenburn .hljs-number{color:#8cd0d3;}.hljs-zenburn .hljs-variable,.hljs-zenburn .hljs-template-variable,.hljs-zenburn .hljs-attribute{color:#efdcbc;}.hljs-zenburn .hljs-literal{color:#efefaf;}.hljs-zenburn .hljs-subst{color:#8f8f8f;}.hljs-zenburn .hljs-title,.hljs-zenburn .hljs-name,.hljs-zenburn .hljs-selector-id,.hljs-zenburn .hljs-selector-class,.hljs-zenburn .hljs-section,.hljs-zenburn .hljs-type{color:#efef8f;}.hljs-zenburn .hljs-symbol,.hljs-zenburn .hljs-bullet,.hljs-zenburn .hljs-link{color:#dca3a3;}.hljs-zenburn .hljs-deletion,.hljs-zenburn .hljs-string,.hljs-zenburn .hljs-built_in,.hljs-zenburn .hljs-builtin-name{color:#cc9393;}.hljs-zenburn .hljs-addition,.hljs-zenburn .hljs-comment,.hljs-zenburn .hljs-quote,.hljs-zenburn .hljs-meta{color:#7f9f7f;}.hljs-zenburn .hljs-emphasis{font-style:italic;}.hljs-zenburn .hljs-strong{font-weight:bold;}"},
16434 engine: hljs
16435};
16436
16437})()
16438},{}],8:[function(require,module,exports){
16439exports.addClass = function (element, className) {
16440 element.className = exports.getClasses(element)
16441 .concat([className])
16442 .join(' ');
16443};
16444
16445exports.removeClass = function (element, className) {
16446 element.className = exports.getClasses(element)
16447 .filter(function (klass) { return klass !== className; })
16448 .join(' ');
16449};
16450
16451exports.toggleClass = function (element, className) {
16452 var classes = exports.getClasses(element),
16453 index = classes.indexOf(className);
16454
16455 if (index !== -1) {
16456 classes.splice(index, 1);
16457 }
16458 else {
16459 classes.push(className);
16460 }
16461
16462 element.className = classes.join(' ');
16463};
16464
16465exports.getClasses = function (element) {
16466 return element.className
16467 .split(' ')
16468 .filter(function (s) { return s !== ''; });
16469};
16470
16471exports.hasClass = function (element, className) {
16472 return exports.getClasses(element).indexOf(className) !== -1;
16473};
16474
16475exports.getPrefixedProperty = function (element, propertyName) {
16476 var capitalizedPropertName = propertyName[0].toUpperCase() +
16477 propertyName.slice(1);
16478
16479 return element[propertyName] || element['moz' + capitalizedPropertName] ||
16480 element['webkit' + capitalizedPropertName];
16481};
16482
16483},{}],4:[function(require,module,exports){
16484var EventEmitter = require('events').EventEmitter
16485 , highlighter = require('./highlighter')
16486 , converter = require('./converter')
16487 , resources = require('./resources')
16488 , Parser = require('./parser')
16489 , Slideshow = require('./models/slideshow')
16490 , SlideshowView = require('./views/slideshowView')
16491 , DefaultController = require('./controllers/defaultController')
16492 , Dom = require('./dom')
16493 , macros = require('./macros')
16494 ;
16495
16496module.exports = Api;
16497
16498function Api (dom) {
16499 this.dom = dom || new Dom();
16500 this.macros = macros;
16501 this.version = resources.version;
16502}
16503
16504// Expose highlighter to allow enumerating available styles and
16505// including external language grammars
16506Api.prototype.highlighter = highlighter;
16507
16508Api.prototype.convert = function (markdown) {
16509 var parser = new Parser()
16510 , content = parser.parse(markdown || '', macros)[0].content
16511 ;
16512
16513 return converter.convertMarkdown(content, {}, true);
16514};
16515
16516// Creates slideshow initialized from options
16517Api.prototype.create = function (options) {
16518 var events
16519 , slideshow
16520 , slideshowView
16521 , controller
16522 ;
16523
16524 options = applyDefaults(this.dom, options);
16525
16526 events = new EventEmitter();
16527 events.setMaxListeners(0);
16528
16529 slideshow = new Slideshow(events, options);
16530 slideshowView = new SlideshowView(events, this.dom, options.container, slideshow);
16531 controller = options.controller || new DefaultController(events, this.dom, slideshowView, options.navigation);
16532
16533 return slideshow;
16534};
16535
16536function applyDefaults (dom, options) {
16537 var sourceElement;
16538
16539 options = options || {};
16540
16541 if (options.hasOwnProperty('sourceUrl')) {
16542 var req = new dom.XMLHttpRequest();
16543 req.open('GET', options.sourceUrl, false);
16544 req.send();
16545 options.source = req.responseText.replace(/\r\n/g, '\n');
16546 }
16547 else if (!options.hasOwnProperty('source')) {
16548 sourceElement = dom.getElementById('source');
16549 if (sourceElement) {
16550 options.source = unescape(sourceElement.innerHTML);
16551 sourceElement.style.display = 'none';
16552 }
16553 }
16554
16555 if (!(options.container instanceof window.HTMLElement)) {
16556 options.container = dom.getBodyElement();
16557 }
16558
16559 return options;
16560}
16561
16562function unescape (source) {
16563 source = source.replace(/&[l|g]t;/g,
16564 function (match) {
16565 return match === '&lt;' ? '<' : '>';
16566 });
16567
16568 source = source.replace(/&amp;/g, '&');
16569 source = source.replace(/&quot;/g, '"');
16570
16571 return source;
16572}
16573
16574},{"events":1,"./highlighter":7,"./converter":9,"./resources":6,"./parser":10,"./models/slideshow":11,"./views/slideshowView":12,"./controllers/defaultController":13,"./dom":14,"./macros":15}],14:[function(require,module,exports){
16575module.exports = Dom;
16576
16577function Dom () { }
16578
16579Dom.prototype.XMLHttpRequest = XMLHttpRequest;
16580
16581Dom.prototype.getHTMLElement = function () {
16582 return document.getElementsByTagName('html')[0];
16583};
16584
16585Dom.prototype.getBodyElement = function () {
16586 return document.body;
16587};
16588
16589Dom.prototype.getElementById = function (id) {
16590 return document.getElementById(id);
16591};
16592
16593Dom.prototype.getLocationHash = function () {
16594 return window.location.hash;
16595};
16596
16597Dom.prototype.setLocationHash = function (hash) {
16598 if (typeof window.history.replaceState === 'function' && document.origin !== 'null') {
16599 window.history.replaceState(undefined, undefined, hash);
16600 }
16601 else {
16602 window.location.hash = hash;
16603 }
16604};
16605
16606},{}],15:[function(require,module,exports){
16607var macros = module.exports = {};
16608
16609macros.hello = function () {
16610 return 'hello!';
16611};
16612
16613},{}],10:[function(require,module,exports){
16614(function(){var Lexer = require('./lexer');
16615
16616module.exports = Parser;
16617
16618function Parser () { }
16619
16620/*
16621 * Parses source string into list of slides.
16622 *
16623 * Output format:
16624 *
16625 * [
16626 * // Per slide
16627 * {
16628 * // Properties
16629 * properties: {
16630 * name: 'value'
16631 * },
16632 * // Notes (optional, same format as content list)
16633 * notes: [...],
16634 * // Link definitions
16635 * links: {
16636 * id: { href: 'url', title: 'optional title' },
16637 * ...
16638 * ],
16639 * content: [
16640 * // Any content but content classes are represented as strings
16641 * 'plain text ',
16642 * // Content classes are represented as objects
16643 * { block: false, class: 'the-class', content: [...] },
16644 * { block: true, class: 'the-class', content: [...] },
16645 * ...
16646 * ]
16647 * },
16648 * ...
16649 * ]
16650 */
16651Parser.prototype.parse = function (src, macros) {
16652 var self = this,
16653 lexer = new Lexer(),
16654 tokens = lexer.lex(cleanInput(src)),
16655 slides = [],
16656
16657 // The last item on the stack contains the current slide or
16658 // content class we're currently appending content to.
16659 stack = [createSlide()];
16660
16661 macros = macros || {};
16662
16663 tokens.forEach(function (token) {
16664 switch (token.type) {
16665 case 'text':
16666 case 'code':
16667 case 'fences':
16668 // Text, code and fenced code tokens are appended to their
16669 // respective parents as string literals, and are only included
16670 // in the parse process in order to reason about structure
16671 // (like ignoring a slide separator inside fenced code).
16672 appendTo(stack[stack.length - 1], token.text);
16673 break;
16674 case 'def':
16675 // Link definition
16676 stack[0].links[token.id] = {
16677 href: token.href,
16678 title: token.title
16679 };
16680 break;
16681 case 'macro':
16682 // Macro
16683 var macro = macros[token.name];
16684 if (typeof macro !== 'function') {
16685 throw new Error('Macro "' + token.name + '" not found. ' +
16686 'You need to define macro using remark.macros[\'' +
16687 token.name + '\'] = function () { ... };');
16688 }
16689 var value = macro.apply(token.obj, token.args);
16690 if (typeof value === 'string') {
16691 value = self.parse(value, macros);
16692 appendTo(stack[stack.length - 1], value[0].content[0]);
16693 }
16694 else {
16695 appendTo(stack[stack.length - 1], value === undefined ?
16696 '' : value.toString());
16697 }
16698 break;
16699 case 'content_start':
16700 // Entering content class, so create stack entry for appending
16701 // upcoming content to.
16702 //
16703 // Lexer handles open/close bracket balance, so there's no need
16704 // to worry about there being a matching closing bracket.
16705 stack.push(createContentClass(token));
16706 break;
16707 case 'content_end':
16708 // Exiting content class, so remove entry from stack and
16709 // append to previous item (outer content class or slide).
16710 appendTo(stack[stack.length - 2], stack[stack.length - 1]);
16711 stack.pop();
16712 break;
16713 case 'separator':
16714 // Slide separator (--- or --), so add current slide to list of
16715 // slides and re-initialize stack with new, blank slide.
16716 slides.push(stack[0]);
16717 stack = [createSlide()];
16718 // Tag the new slide as a continued slide if the separator
16719 // used was -- instead of --- (2 vs. 3 dashes).
16720 stack[0].properties.continued = (token.text === '--').toString();
16721 break;
16722 case 'notes_separator':
16723 // Notes separator (???), so create empty content list on slide
16724 // in which all remaining slide content will be put.
16725 stack[0].notes = [];
16726 break;
16727 }
16728 });
16729
16730 // Push current slide to list of slides.
16731 slides.push(stack[0]);
16732
16733 slides.forEach(function (slide) {
16734 slide.content[0] = extractProperties(slide.content[0] || '', slide.properties);
16735 });
16736
16737 return slides.filter(function (slide) {
16738 var exclude = (slide.properties.exclude || '').toLowerCase();
16739
16740 if (exclude === 'true') {
16741 return false;
16742 }
16743
16744 return true;
16745 });
16746};
16747
16748function createSlide () {
16749 return {
16750 content: [],
16751 properties: {
16752 continued: 'false'
16753 },
16754 links: {}
16755 };
16756}
16757
16758function createContentClass (token) {
16759 return {
16760 class: token.classes.join(' '),
16761 block: token.block,
16762 content: []
16763 };
16764}
16765
16766function appendTo (element, content) {
16767 var target = element.content;
16768
16769 if (element.notes !== undefined) {
16770 target = element.notes;
16771 }
16772
16773 // If two string are added after one another, we can just as well
16774 // go ahead and concatenate them into a single string.
16775 var lastIdx = target.length - 1;
16776 if (typeof target[lastIdx] === 'string' && typeof content === 'string') {
16777 target[lastIdx] += content;
16778 }
16779 else {
16780 target.push(content);
16781 }
16782}
16783
16784function extractProperties (source, properties) {
16785 var propertyFinder = /^\n*([-\w]+):([^$\n]*)|\n*(?:<!--\s*)([-\w]+):([^$\n]*?)(?:\s*-->)/i
16786 , match
16787 ;
16788
16789 while ((match = propertyFinder.exec(source)) !== null) {
16790 source = source.substr(0, match.index) +
16791 source.substr(match.index + match[0].length);
16792
16793 if (match[1] !== undefined) {
16794 properties[match[1].trim()] = match[2].trim();
16795 }
16796 else {
16797 properties[match[3].trim()] = match[4].trim();
16798 }
16799
16800 propertyFinder.lastIndex = match.index;
16801 }
16802
16803 return source;
16804}
16805
16806function cleanInput(source) {
16807 // If all lines are indented, we should trim them all to the same point so that code doesn't
16808 // need to start at column 0 in the source (see GitHub Issue #105)
16809
16810 // Helper to extract captures from the regex
16811 var getMatchCaptures = function (source, pattern) {
16812 var results = [], match;
16813 while ((match = pattern.exec(source)) !== null)
16814 results.push(match[1]);
16815 return results;
16816 };
16817
16818 // Calculate the minimum leading whitespace
16819 // Ensure there's at least one char that's not newline nor whitespace to ignore empty and blank lines
16820 var leadingWhitespacePattern = /^([ \t]*)[^ \t\n]/gm;
16821 var whitespace = getMatchCaptures(source, leadingWhitespacePattern).map(function (s) { return s.length; });
16822 var minWhitespace = Math.min.apply(Math, whitespace);
16823
16824 // Trim off the exact amount of whitespace, or less for blank lines (non-empty)
16825 var trimWhitespacePattern = new RegExp('^[ \\t]{0,' + minWhitespace + '}', 'gm');
16826 return source.replace(trimWhitespacePattern, '');
16827}
16828
16829})()
16830},{"./lexer":16}],11:[function(require,module,exports){
16831var Navigation = require('./slideshow/navigation')
16832 , Events = require('./slideshow/events')
16833 , utils = require('../utils')
16834 , Slide = require('./slide')
16835 , Parser = require('../parser')
16836 , macros = require('../macros')
16837 ;
16838
16839module.exports = Slideshow;
16840
16841function Slideshow (events, options) {
16842 var self = this
16843 , slides = []
16844 , links = {}
16845 ;
16846
16847 options = options || {};
16848
16849 // Extend slideshow functionality
16850 Events.call(self, events);
16851 Navigation.call(self, events);
16852
16853 self.loadFromString = loadFromString;
16854 self.update = update;
16855 self.getLinks = getLinks;
16856 self.getSlides = getSlides;
16857 self.getSlideCount = getSlideCount;
16858 self.getSlideByName = getSlideByName;
16859
16860 self.togglePresenterMode = togglePresenterMode;
16861 self.toggleHelp = toggleHelp;
16862 self.toggleBlackout = toggleBlackout;
16863 self.toggleMirrored = toggleMirrored;
16864 self.toggleFullscreen = toggleFullscreen;
16865 self.createClone = createClone;
16866
16867 self.resetTimer = resetTimer;
16868
16869 self.getRatio = getOrDefault('ratio', '4:3');
16870 self.getHighlightStyle = getOrDefault('highlightStyle', 'default');
16871 self.getHighlightLines = getOrDefault('highlightLines', false);
16872 self.getHighlightSpans = getOrDefault('highlightSpans', false);
16873 self.getHighlightLanguage = getOrDefault('highlightLanguage', '');
16874 self.getSlideNumberFormat = getOrDefault('slideNumberFormat', '%current% / %total%');
16875
16876 loadFromString(options.source);
16877
16878 events.on('toggleBlackout', function () {
16879 if (self.clone && !self.clone.closed) {
16880 self.clone.postMessage('toggleBlackout', '*');
16881 }
16882 });
16883
16884 function loadFromString (source) {
16885 source = source || '';
16886
16887 slides = createSlides(source, options);
16888 expandVariables(slides);
16889
16890 links = {};
16891 slides.forEach(function (slide) {
16892 for (var id in slide.links) {
16893 if (slide.links.hasOwnProperty(id)) {
16894 links[id] = slide.links[id];
16895 }
16896 }
16897 });
16898
16899 events.emit('slidesChanged');
16900 }
16901
16902 function update () {
16903 events.emit('resize');
16904 }
16905
16906 function getLinks () {
16907 return links;
16908 }
16909
16910 function getSlides () {
16911 return slides.map(function (slide) { return slide; });
16912 }
16913
16914 function getSlideCount () {
16915 return slides.length;
16916 }
16917
16918 function getSlideByName (name) {
16919 return slides.byName[name];
16920 }
16921
16922 function togglePresenterMode () {
16923 events.emit('togglePresenterMode');
16924 }
16925
16926 function toggleHelp () {
16927 events.emit('toggleHelp');
16928 }
16929
16930 function toggleBlackout () {
16931 events.emit('toggleBlackout');
16932 }
16933
16934 function toggleMirrored() {
16935 events.emit('toggleMirrored');
16936 }
16937
16938 function toggleFullscreen () {
16939 events.emit('toggleFullscreen');
16940 }
16941
16942 function createClone () {
16943 events.emit('createClone');
16944 }
16945
16946 function resetTimer () {
16947 events.emit('resetTimer');
16948 }
16949
16950 function getOrDefault (key, defaultValue) {
16951 return function () {
16952 if (options[key] === undefined) {
16953 return defaultValue;
16954 }
16955
16956 return options[key];
16957 };
16958 }
16959}
16960
16961function createSlides (slideshowSource, options) {
16962 var parser = new Parser()
16963 , parsedSlides = parser.parse(slideshowSource, macros)
16964 , slides = []
16965 , byName = {}
16966 , layoutSlide
16967 ;
16968
16969 slides.byName = {};
16970
16971 parsedSlides.forEach(function (slide, i) {
16972 var template, slideViewModel;
16973
16974 if (slide.properties.continued === 'true' && i > 0) {
16975 template = slides[slides.length - 1];
16976 }
16977 else if (byName[slide.properties.template]) {
16978 template = byName[slide.properties.template];
16979 }
16980 else if (slide.properties.layout === 'false') {
16981 layoutSlide = undefined;
16982 }
16983 else if (layoutSlide && slide.properties.layout !== 'true') {
16984 template = layoutSlide;
16985 }
16986
16987 if (slide.properties.continued === 'true' &&
16988 options.countIncrementalSlides === false &&
16989 slide.properties.count === undefined) {
16990 slide.properties.count = 'false';
16991 }
16992
16993 slideViewModel = new Slide(slides.length, slide, template);
16994
16995 if (slide.properties.layout === 'true') {
16996 layoutSlide = slideViewModel;
16997 }
16998
16999 if (slide.properties.name) {
17000 byName[slide.properties.name] = slideViewModel;
17001 }
17002
17003 if (slide.properties.layout !== 'true') {
17004 slides.push(slideViewModel);
17005 if (slide.properties.name) {
17006 slides.byName[slide.properties.name] = slideViewModel;
17007 }
17008 }
17009 });
17010
17011 return slides;
17012}
17013
17014function expandVariables (slides) {
17015 slides.forEach(function (slide) {
17016 slide.expandVariables();
17017 });
17018}
17019
17020},{"./slideshow/navigation":17,"../utils":8,"./slide":18,"./slideshow/events":19,"../parser":10,"../macros":15}],12:[function(require,module,exports){
17021var SlideView = require('./slideView')
17022 , Timer = require('components/timer')
17023 , NotesView = require('./notesView')
17024 , Scaler = require('../scaler')
17025 , resources = require('../resources')
17026 , utils = require('../utils')
17027 , printing = require('components/printing')
17028 ;
17029
17030module.exports = SlideshowView;
17031
17032function SlideshowView (events, dom, containerElement, slideshow) {
17033 var self = this;
17034
17035 self.events = events;
17036 self.dom = dom;
17037 self.slideshow = slideshow;
17038 self.scaler = new Scaler(events, slideshow);
17039 self.slideViews = [];
17040
17041 self.configureContainerElement(containerElement);
17042 self.configureChildElements();
17043
17044 self.updateDimensions();
17045 self.scaleElements();
17046 self.updateSlideViews();
17047
17048 self.timer = new Timer(events, self.timerElement);
17049
17050 events.on('slidesChanged', function () {
17051 self.updateSlideViews();
17052 });
17053
17054 events.on('hideSlide', function (slideIndex) {
17055 // To make sure that there is only one element fading at a time,
17056 // remove the fading class from all slides before hiding
17057 // the new slide.
17058 self.elementArea.getElementsByClassName('remark-fading').forEach(function (slide) {
17059 utils.removeClass(slide, 'remark-fading');
17060 });
17061 self.hideSlide(slideIndex);
17062 });
17063
17064 events.on('showSlide', function (slideIndex) {
17065 self.showSlide(slideIndex);
17066 });
17067
17068 events.on('forcePresenterMode', function () {
17069
17070 if (!utils.hasClass(self.containerElement, 'remark-presenter-mode')) {
17071 utils.toggleClass(self.containerElement, 'remark-presenter-mode');
17072 self.scaleElements();
17073 printing.setPageOrientation('landscape');
17074 }
17075 });
17076
17077 events.on('togglePresenterMode', function () {
17078 utils.toggleClass(self.containerElement, 'remark-presenter-mode');
17079 self.scaleElements();
17080 events.emit('toggledPresenter', self.slideshow.getCurrentSlideIndex() + 1);
17081
17082 if (utils.hasClass(self.containerElement, 'remark-presenter-mode')) {
17083 printing.setPageOrientation('portrait');
17084 }
17085 else {
17086 printing.setPageOrientation('landscape');
17087 }
17088 });
17089
17090 events.on('toggleHelp', function () {
17091 utils.toggleClass(self.containerElement, 'remark-help-mode');
17092 });
17093
17094 events.on('toggleBlackout', function () {
17095 utils.toggleClass(self.containerElement, 'remark-blackout-mode');
17096 });
17097
17098 events.on('toggleMirrored', function () {
17099 utils.toggleClass(self.containerElement, 'remark-mirrored-mode');
17100 });
17101
17102 events.on('hideOverlay', function () {
17103 utils.removeClass(self.containerElement, 'remark-blackout-mode');
17104 utils.removeClass(self.containerElement, 'remark-help-mode');
17105 });
17106
17107 events.on('pause', function () {
17108 utils.toggleClass(self.containerElement, 'remark-pause-mode');
17109 });
17110
17111 events.on('resume', function () {
17112 utils.toggleClass(self.containerElement, 'remark-pause-mode');
17113 });
17114
17115 handleFullscreen(self);
17116}
17117
17118function handleFullscreen(self) {
17119 var requestFullscreen = utils.getPrefixedProperty(self.containerElement, 'requestFullScreen')
17120 , cancelFullscreen = utils.getPrefixedProperty(document, 'cancelFullScreen')
17121 ;
17122
17123 self.events.on('toggleFullscreen', function () {
17124 var fullscreenElement = utils.getPrefixedProperty(document, 'fullscreenElement') ||
17125 utils.getPrefixedProperty(document, 'fullScreenElement');
17126
17127 if (!fullscreenElement && requestFullscreen) {
17128 requestFullscreen.call(self.containerElement, Element.ALLOW_KEYBOARD_INPUT);
17129 }
17130 else if (cancelFullscreen) {
17131 cancelFullscreen.call(document);
17132 }
17133 self.scaleElements();
17134 });
17135}
17136
17137SlideshowView.prototype.isEmbedded = function () {
17138 return this.containerElement !== this.dom.getBodyElement();
17139};
17140
17141SlideshowView.prototype.configureContainerElement = function (element) {
17142 var self = this;
17143
17144 self.containerElement = element;
17145
17146 utils.addClass(element, 'remark-container');
17147
17148 if (element === self.dom.getBodyElement()) {
17149 utils.addClass(self.dom.getHTMLElement(), 'remark-container');
17150
17151 forwardEvents(self.events, window, [
17152 'hashchange', 'resize', 'keydown', 'keypress', 'mousewheel',
17153 'message', 'DOMMouseScroll'
17154 ]);
17155 forwardEvents(self.events, self.containerElement, [
17156 'touchstart', 'touchmove', 'touchend', 'click', 'contextmenu'
17157 ]);
17158 }
17159 else {
17160 element.style.position = 'absolute';
17161 element.tabIndex = -1;
17162
17163 forwardEvents(self.events, window, ['resize']);
17164 forwardEvents(self.events, element, [
17165 'keydown', 'keypress', 'mousewheel',
17166 'touchstart', 'touchmove', 'touchend'
17167 ]);
17168 }
17169
17170 // Tap event is handled in slideshow view
17171 // rather than controller as knowledge of
17172 // container width is needed to determine
17173 // whether to move backwards or forwards
17174 self.events.on('tap', function (endX) {
17175 if (endX < self.containerElement.clientWidth / 2) {
17176 self.slideshow.gotoPreviousSlide();
17177 }
17178 else {
17179 self.slideshow.gotoNextSlide();
17180 }
17181 });
17182};
17183
17184function forwardEvents (target, source, events) {
17185 events.forEach(function (eventName) {
17186 source.addEventListener(eventName, function () {
17187 var args = Array.prototype.slice.call(arguments);
17188 target.emit.apply(target, [eventName].concat(args));
17189 });
17190 });
17191}
17192
17193SlideshowView.prototype.configureChildElements = function () {
17194 var self = this;
17195
17196 self.containerElement.innerHTML += resources.containerLayout;
17197
17198 self.elementArea = self.containerElement.getElementsByClassName('remark-slides-area')[0];
17199 self.previewArea = self.containerElement.getElementsByClassName('remark-preview-area')[0];
17200 self.notesArea = self.containerElement.getElementsByClassName('remark-notes-area')[0];
17201
17202 self.notesView = new NotesView (self.events, self.notesArea, function () {
17203 return self.slideViews;
17204 });
17205
17206 self.backdropElement = self.containerElement.getElementsByClassName('remark-backdrop')[0];
17207 self.helpElement = self.containerElement.getElementsByClassName('remark-help')[0];
17208
17209 self.timerElement = self.notesArea.getElementsByClassName('remark-toolbar-timer')[0];
17210 self.pauseElement = self.containerElement.getElementsByClassName('remark-pause')[0];
17211
17212 self.events.on('propertiesChanged', function (changes) {
17213 if (changes.hasOwnProperty('ratio')) {
17214 self.updateDimensions();
17215 }
17216 });
17217
17218 self.events.on('resize', onResize);
17219
17220 printing.init();
17221 printing.on('print', onPrint);
17222
17223 function onResize () {
17224 self.scaleElements();
17225 }
17226
17227 function onPrint (e) {
17228 var slideHeight;
17229
17230 if (e.isPortrait) {
17231 slideHeight = e.pageHeight * 0.4;
17232 }
17233 else {
17234 slideHeight = e.pageHeight;
17235 }
17236
17237 self.slideViews.forEach(function (slideView) {
17238 slideView.scale({
17239 clientWidth: e.pageWidth,
17240 clientHeight: slideHeight
17241 });
17242
17243 if (e.isPortrait) {
17244 slideView.scalingElement.style.top = '20px';
17245 slideView.notesElement.style.top = slideHeight + 40 + 'px';
17246 }
17247 });
17248 }
17249};
17250
17251SlideshowView.prototype.updateSlideViews = function () {
17252 var self = this;
17253
17254 self.slideViews.forEach(function (slideView) {
17255 self.elementArea.removeChild(slideView.containerElement);
17256 });
17257
17258 self.slideViews = self.slideshow.getSlides().map(function (slide) {
17259 return new SlideView(self.events, self.slideshow, self.scaler, slide);
17260 });
17261
17262 self.slideViews.forEach(function (slideView) {
17263 self.elementArea.appendChild(slideView.containerElement);
17264 });
17265
17266 self.updateDimensions();
17267
17268 if (self.slideshow.getCurrentSlideIndex() > -1) {
17269 self.showSlide(self.slideshow.getCurrentSlideIndex());
17270 }
17271};
17272
17273SlideshowView.prototype.scaleSlideBackgroundImages = function (dimensions) {
17274 var self = this;
17275
17276 self.slideViews.forEach(function (slideView) {
17277 slideView.scaleBackgroundImage(dimensions);
17278 });
17279};
17280
17281SlideshowView.prototype.showSlide = function (slideIndex) {
17282 var self = this
17283 , slideView = self.slideViews[slideIndex]
17284 , nextSlideView = self.slideViews[slideIndex + 1]
17285 ;
17286
17287 self.events.emit("beforeShowSlide", slideIndex);
17288
17289 slideView.show();
17290
17291 if (nextSlideView) {
17292 self.previewArea.innerHTML = nextSlideView.containerElement.outerHTML;
17293 }
17294 else {
17295 self.previewArea.innerHTML = '';
17296 }
17297
17298 self.events.emit("afterShowSlide", slideIndex);
17299};
17300
17301SlideshowView.prototype.hideSlide = function (slideIndex) {
17302 var self = this
17303 , slideView = self.slideViews[slideIndex]
17304 ;
17305
17306 self.events.emit("beforeHideSlide", slideIndex);
17307 slideView.hide();
17308 self.events.emit("afterHideSlide", slideIndex);
17309
17310};
17311
17312SlideshowView.prototype.updateDimensions = function () {
17313 var self = this
17314 , dimensions = self.scaler.dimensions
17315 ;
17316
17317 self.helpElement.style.width = dimensions.width + 'px';
17318 self.helpElement.style.height = dimensions.height + 'px';
17319
17320 self.scaleSlideBackgroundImages(dimensions);
17321 self.scaleElements();
17322};
17323
17324SlideshowView.prototype.scaleElements = function () {
17325 var self = this;
17326
17327 self.slideViews.forEach(function (slideView) {
17328 slideView.scale(self.elementArea);
17329 });
17330
17331 if (self.previewArea.children.length) {
17332 self.scaler.scaleToFit(self.previewArea.children[0].children[0], self.previewArea);
17333 }
17334 self.scaler.scaleToFit(self.helpElement, self.containerElement);
17335 self.scaler.scaleToFit(self.pauseElement, self.containerElement);
17336};
17337
17338},{"components/timer":"GFo1Ae","components/printing":"yoGRCZ","./slideView":20,"./notesView":21,"../scaler":22,"../resources":6,"../utils":8}],13:[function(require,module,exports){
17339(function(){// Allow override of global `location`
17340/* global location:true */
17341
17342module.exports = Controller;
17343
17344var keyboard = require('./inputs/keyboard')
17345 , mouse = require('./inputs/mouse')
17346 , touch = require('./inputs/touch')
17347 , message = require('./inputs/message')
17348 , location = require('./inputs/location')
17349 ;
17350
17351function Controller (events, dom, slideshowView, options) {
17352 options = options || {};
17353
17354 message.register(events);
17355 location.register(events, dom, slideshowView);
17356 keyboard.register(events);
17357 mouse.register(events, options);
17358 touch.register(events, options);
17359
17360 addApiEventListeners(events, slideshowView, options);
17361}
17362
17363function addApiEventListeners(events, slideshowView, options) {
17364 events.on('pause', function(event) {
17365 keyboard.unregister(events);
17366 mouse.unregister(events);
17367 touch.unregister(events);
17368 });
17369
17370 events.on('resume', function(event) {
17371 keyboard.register(events);
17372 mouse.register(events, options);
17373 touch.register(events, options);
17374 });
17375}
17376
17377})()
17378},{"./inputs/keyboard":23,"./inputs/mouse":24,"./inputs/touch":25,"./inputs/message":26,"./inputs/location":27}],16:[function(require,module,exports){
17379module.exports = Lexer;
17380
17381var CODE = 1,
17382 INLINE_CODE = 2,
17383 CONTENT = 3,
17384 FENCES = 4,
17385 DEF = 5,
17386 DEF_HREF = 6,
17387 DEF_TITLE = 7,
17388 MACRO = 8,
17389 MACRO_ARGS = 9,
17390 MACRO_OBJ = 10,
17391 SEPARATOR = 11,
17392 NOTES_SEPARATOR = 12;
17393
17394var regexByName = {
17395 CODE: /(?:^|\n)( {4}[^\n]+\n*)+/,
17396 INLINE_CODE: /`([^`]+?)`/,
17397 CONTENT: /(?:\\)?((?:\.[a-zA-Z_\-][a-zA-Z\-_0-9]*)+)\[/,
17398 FENCES: /(?:^|\n) *(`{3,}|~{3,}) *(?:\S+)? *\n(?:[\s\S]+?)\s*\4 *(?:\n+|$)/,
17399 DEF: /(?:^|\n) *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
17400 MACRO: /!\[:([^\] ]+)([^\]]*)\](?:\(([^\)]*)\))?/,
17401 SEPARATOR: /(?:^|\n)(---?)(?:\n|$)/,
17402 NOTES_SEPARATOR: /(?:^|\n)(\?{3})(?:\n|$)/
17403 };
17404
17405var block = replace(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO|SEPARATOR|NOTES_SEPARATOR/, regexByName),
17406 inline = replace(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO/, regexByName);
17407
17408function Lexer () { }
17409
17410Lexer.prototype.lex = function (src) {
17411 var tokens = lex(src, block),
17412 i;
17413
17414 for (i = tokens.length - 2; i >= 0; i--) {
17415 if (tokens[i].type === 'text' && tokens[i+1].type === 'text') {
17416 tokens[i].text += tokens[i+1].text;
17417 tokens.splice(i+1, 1);
17418 }
17419 }
17420
17421 return tokens;
17422};
17423
17424function lex (src, regex, tokens) {
17425 var cap, text;
17426
17427 tokens = tokens || [];
17428
17429 while ((cap = regex.exec(src)) !== null) {
17430 if (cap.index > 0) {
17431 tokens.push({
17432 type: 'text',
17433 text: src.substring(0, cap.index)
17434 });
17435 }
17436
17437 if (cap[CODE]) {
17438 tokens.push({
17439 type: 'code',
17440 text: cap[0]
17441 });
17442 }
17443 else if (cap[INLINE_CODE]) {
17444 tokens.push({
17445 type: 'text',
17446 text: cap[0]
17447 });
17448 }
17449 else if (cap[FENCES]) {
17450 tokens.push({
17451 type: 'fences',
17452 text: cap[0]
17453 });
17454 }
17455 else if (cap[DEF]) {
17456 tokens.push({
17457 type: 'def',
17458 id: cap[DEF],
17459 href: cap[DEF_HREF],
17460 title: cap[DEF_TITLE]
17461 });
17462 }
17463 else if (cap[MACRO]) {
17464 tokens.push({
17465 type: 'macro',
17466 name: cap[MACRO],
17467 args: (cap[MACRO_ARGS] || '').split(',').map(trim),
17468 obj: cap[MACRO_OBJ]
17469 });
17470 }
17471 else if (cap[SEPARATOR]) {
17472 tokens.push({
17473 type: 'separator',
17474 text: cap[SEPARATOR]
17475 });
17476 }
17477 else if (cap[NOTES_SEPARATOR]) {
17478 tokens.push({
17479 type: 'notes_separator',
17480 text: cap[NOTES_SEPARATOR]
17481 });
17482 }
17483 else if (cap[CONTENT]) {
17484 text = getTextInBrackets(src, cap.index + cap[0].length);
17485 if (text !== undefined) {
17486 src = src.substring(text.length + 1);
17487
17488 if (cap[0][0] !== '\\') {
17489 tokens.push({
17490 type: 'content_start',
17491 classes: cap[CONTENT].substring(1).split('.'),
17492 block: text.indexOf('\n') !== -1
17493 });
17494 lex(text, inline, tokens);
17495 tokens.push({
17496 type: 'content_end',
17497 block: text.indexOf('\n') !== -1
17498 });
17499 }
17500 else {
17501 tokens.push({
17502 type: 'text',
17503 text: cap[0].substring(1) + text + ']'
17504 });
17505 }
17506 }
17507 else {
17508 tokens.push({
17509 type: 'text',
17510 text: cap[0]
17511 });
17512 }
17513 }
17514
17515 src = src.substring(cap.index + cap[0].length);
17516 }
17517
17518 if (src || (!src && tokens.length === 0)) {
17519 tokens.push({
17520 type: 'text',
17521 text: src
17522 });
17523 }
17524
17525 return tokens;
17526}
17527
17528function replace (regex, replacements) {
17529 return new RegExp(regex.source.replace(/\w{2,}/g, function (key) {
17530 return replacements[key].source;
17531 }));
17532}
17533
17534function trim (text) {
17535 if (typeof text === 'string') {
17536 return text.trim();
17537 }
17538
17539 return text;
17540}
17541
17542function getTextInBrackets (src, offset) {
17543 var depth = 1,
17544 pos = offset,
17545 chr;
17546
17547 while (depth > 0 && pos < src.length) {
17548 chr = src[pos++];
17549 depth += (chr === '[' && 1) || (chr === ']' && -1) || 0;
17550 }
17551
17552 if (depth === 0) {
17553 src = src.substr(offset, pos - offset - 1);
17554 return src;
17555 }
17556}
17557
17558},{}],17:[function(require,module,exports){
17559module.exports = Navigation;
17560
17561function Navigation (events) {
17562 var self = this
17563 , currentSlideIndex = -1
17564 , started = null
17565 ;
17566
17567 self.getCurrentSlideIndex = getCurrentSlideIndex;
17568 self.gotoSlide = gotoSlide;
17569 self.gotoPreviousSlide = gotoPreviousSlide;
17570 self.gotoNextSlide = gotoNextSlide;
17571 self.gotoFirstSlide = gotoFirstSlide;
17572 self.gotoLastSlide = gotoLastSlide;
17573 self.pause = pause;
17574 self.resume = resume;
17575
17576 events.on('gotoSlide', gotoSlide);
17577 events.on('gotoPreviousSlide', gotoPreviousSlide);
17578 events.on('gotoNextSlide', gotoNextSlide);
17579 events.on('gotoFirstSlide', gotoFirstSlide);
17580 events.on('gotoLastSlide', gotoLastSlide);
17581
17582 events.on('slidesChanged', function () {
17583 if (currentSlideIndex > self.getSlideCount()) {
17584 currentSlideIndex = self.getSlideCount();
17585 }
17586 });
17587
17588 events.on('createClone', function () {
17589 if (!self.clone || self.clone.closed) {
17590 self.clone = window.open(location.href, '_blank', 'location=no');
17591 }
17592 else {
17593 self.clone.focus();
17594 }
17595 });
17596
17597 events.on('resetTimer', function() {
17598 started = false;
17599 });
17600
17601 function pause () {
17602 events.emit('pause');
17603 }
17604
17605 function resume () {
17606 events.emit('resume');
17607 }
17608
17609 function getCurrentSlideIndex () {
17610 return currentSlideIndex;
17611 }
17612
17613 function gotoSlideByIndex(slideIndex, noMessage) {
17614 var alreadyOnSlide = slideIndex === currentSlideIndex
17615 , slideOutOfRange = slideIndex < 0 || slideIndex > self.getSlideCount()-1
17616 ;
17617
17618 if (noMessage === undefined) noMessage = false;
17619
17620 if (alreadyOnSlide || slideOutOfRange) {
17621 return;
17622 }
17623
17624 if (currentSlideIndex !== -1) {
17625 events.emit('hideSlide', currentSlideIndex, false);
17626 }
17627
17628 // Use some tri-state logic here.
17629 // null = We haven't shown the first slide yet.
17630 // false = We've shown the initial slide, but we haven't progressed beyond that.
17631 // true = We've issued the first slide change command.
17632 if (started === null) {
17633 started = false;
17634 } else if (started === false) {
17635 // We've shown the initial slide previously - that means this is a
17636 // genuine move to a new slide.
17637 events.emit('start');
17638 started = true;
17639 }
17640
17641 events.emit('showSlide', slideIndex);
17642
17643 currentSlideIndex = slideIndex;
17644
17645 events.emit('slideChanged', slideIndex + 1);
17646
17647 if (!noMessage) {
17648 if (self.clone && !self.clone.closed) {
17649 self.clone.postMessage('gotoSlide:' + (currentSlideIndex + 1), '*');
17650 }
17651
17652 if (window.opener) {
17653 window.opener.postMessage('gotoSlide:' + (currentSlideIndex + 1), '*');
17654 }
17655 }
17656 }
17657
17658 function gotoSlide (slideNoOrName, noMessage) {
17659 var slideIndex = getSlideIndex(slideNoOrName);
17660
17661 gotoSlideByIndex(slideIndex, noMessage);
17662 }
17663
17664 function gotoPreviousSlide() {
17665 gotoSlideByIndex(currentSlideIndex - 1);
17666 }
17667
17668 function gotoNextSlide() {
17669 gotoSlideByIndex(currentSlideIndex + 1);
17670 }
17671
17672 function gotoFirstSlide () {
17673 gotoSlideByIndex(0);
17674 }
17675
17676 function gotoLastSlide () {
17677 gotoSlideByIndex(self.getSlideCount() - 1);
17678 }
17679
17680 function getSlideIndex (slideNoOrName) {
17681 var slideNo
17682 , slide
17683 ;
17684
17685 if (typeof slideNoOrName === 'number') {
17686 return slideNoOrName - 1;
17687 }
17688
17689 slideNo = parseInt(slideNoOrName, 10);
17690 if (slideNo.toString() === slideNoOrName) {
17691 return slideNo - 1;
17692 }
17693
17694 if(slideNoOrName.match(/^p\d+$/)){
17695 events.emit('forcePresenterMode');
17696 return parseInt(slideNoOrName.substr(1), 10)-1;
17697 }
17698
17699 slide = self.getSlideByName(slideNoOrName);
17700 if (slide) {
17701 return slide.getSlideIndex();
17702 }
17703
17704 return 0;
17705 }
17706}
17707
17708},{}],18:[function(require,module,exports){
17709module.exports = Slide;
17710
17711function Slide (slideIndex, slide, template) {
17712 var self = this;
17713
17714 self.properties = slide.properties || {};
17715 self.links = slide.links || {};
17716 self.content = slide.content || [];
17717 self.notes = slide.notes || '';
17718
17719 self.getSlideIndex = function () { return slideIndex; };
17720
17721 if (template) {
17722 inherit(self, template);
17723 }
17724}
17725
17726function inherit (slide, template) {
17727 inheritProperties(slide, template);
17728 inheritContent(slide, template);
17729 inheritNotes(slide, template);
17730}
17731
17732function inheritProperties (slide, template) {
17733 var property
17734 , value
17735 ;
17736
17737 for (property in template.properties) {
17738 if (!template.properties.hasOwnProperty(property) ||
17739 ignoreProperty(property)) {
17740 continue;
17741 }
17742
17743 value = [template.properties[property]];
17744
17745 if (property === 'class' && slide.properties[property]) {
17746 value.push(slide.properties[property]);
17747 }
17748
17749 if (property === 'class' || slide.properties[property] === undefined) {
17750 slide.properties[property] = value.join(', ');
17751 }
17752 }
17753}
17754
17755function ignoreProperty (property) {
17756 return property === 'name' ||
17757 property === 'layout' ||
17758 property === 'count';
17759}
17760
17761function inheritContent (slide, template) {
17762 var expandedVariables;
17763
17764 slide.properties.content = slide.content.slice();
17765 slide.content = template.content.slice();
17766
17767 expandedVariables = slide.expandVariables(/* contentOnly: */ true);
17768
17769 if (expandedVariables.content === undefined) {
17770 slide.content = slide.content.concat(slide.properties.content);
17771 }
17772
17773 delete slide.properties.content;
17774}
17775
17776function inheritNotes (slide, template) {
17777 if (template.notes) {
17778 slide.notes = template.notes + '\n\n' + slide.notes;
17779 }
17780}
17781
17782Slide.prototype.expandVariables = function (contentOnly, content, expandResult) {
17783 var properties = this.properties
17784 , i
17785 ;
17786
17787 content = content !== undefined ? content : this.content;
17788 expandResult = expandResult || {};
17789
17790 for (i = 0; i < content.length; ++i) {
17791 if (typeof content[i] === 'string') {
17792 content[i] = content[i].replace(/(\\)?(\{\{([^\}\n]+)\}\})/g, expand);
17793 }
17794 else {
17795 this.expandVariables(contentOnly, content[i].content, expandResult);
17796 }
17797 }
17798
17799 function expand (match, escaped, unescapedMatch, property) {
17800 var propertyName = property.trim()
17801 , propertyValue
17802 ;
17803
17804 if (escaped) {
17805 return contentOnly ? match[0] : unescapedMatch;
17806 }
17807
17808 if (contentOnly && propertyName !== 'content') {
17809 return match;
17810 }
17811
17812 propertyValue = properties[propertyName];
17813
17814 if (propertyValue !== undefined) {
17815 expandResult[propertyName] = propertyValue;
17816 return propertyValue;
17817 }
17818
17819 return propertyName === 'content' ? '' : unescapedMatch;
17820 }
17821
17822 return expandResult;
17823};
17824
17825},{}],19:[function(require,module,exports){
17826var EventEmitter = require('events').EventEmitter;
17827
17828module.exports = Events;
17829
17830function Events (events) {
17831 var self = this
17832 , externalEvents = new EventEmitter()
17833 ;
17834
17835 externalEvents.setMaxListeners(0);
17836
17837 self.on = function () {
17838 externalEvents.on.apply(externalEvents, arguments);
17839 return self;
17840 };
17841
17842 ['showSlide', 'hideSlide', 'beforeShowSlide', 'afterShowSlide', 'beforeHideSlide', 'afterHideSlide', 'toggledPresenter'].map(function (eventName) {
17843 events.on(eventName, function (slideIndex) {
17844 var slide = self.getSlides()[slideIndex];
17845 externalEvents.emit(eventName, slide);
17846 });
17847 });
17848}
17849
17850},{"events":1}],22:[function(require,module,exports){
17851var referenceWidth = 908
17852 , referenceHeight = 681
17853 , referenceRatio = referenceWidth / referenceHeight
17854 ;
17855
17856module.exports = Scaler;
17857
17858function Scaler (events, slideshow) {
17859 var self = this;
17860
17861 self.events = events;
17862 self.slideshow = slideshow;
17863 self.ratio = getRatio(slideshow);
17864 self.dimensions = getDimensions(self.ratio);
17865
17866 self.events.on('propertiesChanged', function (changes) {
17867 if (changes.hasOwnProperty('ratio')) {
17868 self.ratio = getRatio(slideshow);
17869 self.dimensions = getDimensions(self.ratio);
17870 }
17871 });
17872}
17873
17874Scaler.prototype.scaleToFit = function (element, container) {
17875 var self = this
17876 , containerHeight = container.clientHeight
17877 , containerWidth = container.clientWidth
17878 , scale
17879 , scaledWidth
17880 , scaledHeight
17881 , ratio = self.ratio
17882 , dimensions = self.dimensions
17883 , direction
17884 , left
17885 , top
17886 ;
17887
17888 if (containerWidth / ratio.width > containerHeight / ratio.height) {
17889 scale = containerHeight / dimensions.height;
17890 }
17891 else {
17892 scale = containerWidth / dimensions.width;
17893 }
17894
17895 scaledWidth = dimensions.width * scale;
17896 scaledHeight = dimensions.height * scale;
17897
17898 left = (containerWidth - scaledWidth) / 2;
17899 top = (containerHeight - scaledHeight) / 2;
17900
17901 element.style['-webkit-transform'] = 'scale(' + scale + ')';
17902 element.style.MozTransform = 'scale(' + scale + ')';
17903 element.style.left = Math.max(left, 0) + 'px';
17904 element.style.top = Math.max(top, 0) + 'px';
17905};
17906
17907function getRatio (slideshow) {
17908 var ratioComponents = slideshow.getRatio().split(':')
17909 , ratio
17910 ;
17911
17912 ratio = {
17913 width: parseInt(ratioComponents[0], 10)
17914 , height: parseInt(ratioComponents[1], 10)
17915 };
17916
17917 ratio.ratio = ratio.width / ratio.height;
17918
17919 return ratio;
17920}
17921
17922function getDimensions (ratio) {
17923 return {
17924 width: Math.floor(referenceWidth / referenceRatio * ratio.ratio)
17925 , height: referenceHeight
17926 };
17927}
17928
17929},{}],23:[function(require,module,exports){
17930exports.register = function (events) {
17931 addKeyboardEventListeners(events);
17932};
17933
17934exports.unregister = function (events) {
17935 removeKeyboardEventListeners(events);
17936};
17937
17938function addKeyboardEventListeners (events) {
17939 events.on('keydown', function (event) {
17940 if (event.metaKey || event.ctrlKey) {
17941 // Bail out if meta or ctrl key was pressed
17942 return;
17943 }
17944
17945 switch (event.keyCode) {
17946 case 33: // Page up
17947 case 37: // Left
17948 case 38: // Up
17949 events.emit('gotoPreviousSlide');
17950 break;
17951 case 32: // Space
17952 case 34: // Page down
17953 case 39: // Right
17954 case 40: // Down
17955 events.emit('gotoNextSlide');
17956 break;
17957 case 36: // Home
17958 events.emit('gotoFirstSlide');
17959 break;
17960 case 35: // End
17961 events.emit('gotoLastSlide');
17962 break;
17963 case 27: // Escape
17964 events.emit('hideOverlay');
17965 break;
17966 }
17967 });
17968
17969 events.on('keypress', function (event) {
17970 if (event.metaKey || event.ctrlKey) {
17971 // Bail out if meta or ctrl key was pressed
17972 return;
17973 }
17974
17975 switch (String.fromCharCode(event.which).toLowerCase()) {
17976 case 'j':
17977 events.emit('gotoNextSlide');
17978 break;
17979 case 'k':
17980 events.emit('gotoPreviousSlide');
17981 break;
17982 case 'b':
17983 events.emit('toggleBlackout');
17984 break;
17985 case 'm':
17986 events.emit('toggleMirrored');
17987 break;
17988 case 'c':
17989 events.emit('createClone');
17990 break;
17991 case 'p':
17992 events.emit('togglePresenterMode');
17993 break;
17994 case 'f':
17995 events.emit('toggleFullscreen');
17996 break;
17997 case 't':
17998 events.emit('resetTimer');
17999 break;
18000 case 'h':
18001 case '?':
18002 events.emit('toggleHelp');
18003 break;
18004 }
18005 });
18006}
18007
18008function removeKeyboardEventListeners(events) {
18009 events.removeAllListeners("keydown");
18010 events.removeAllListeners("keypress");
18011}
18012
18013},{}],24:[function(require,module,exports){
18014exports.register = function (events, options) {
18015 addMouseEventListeners(events, options);
18016};
18017
18018exports.unregister = function (events) {
18019 removeMouseEventListeners(events);
18020};
18021
18022function addMouseEventListeners (events, options) {
18023 if (options.click) {
18024 events.on('click', function (event) {
18025 if (event.target.nodeName === 'A') {
18026 // Don't interfere when clicking link
18027 return;
18028 }
18029 else if (event.button === 0) {
18030 events.emit('gotoNextSlide');
18031 }
18032 });
18033 events.on('contextmenu', function (event) {
18034 if (event.target.nodeName === 'A') {
18035 // Don't interfere when right-clicking link
18036 return;
18037 }
18038 event.preventDefault();
18039 events.emit('gotoPreviousSlide');
18040 });
18041 }
18042
18043 if (options.scroll !== false) {
18044 var scrollHandler = function (event) {
18045 if (event.wheelDeltaY > 0 || event.detail < 0) {
18046 events.emit('gotoPreviousSlide');
18047 }
18048 else if (event.wheelDeltaY < 0 || event.detail > 0) {
18049 events.emit('gotoNextSlide');
18050 }
18051 };
18052
18053 // IE9, Chrome, Safari, Opera
18054 events.on('mousewheel', scrollHandler);
18055 // Firefox
18056 events.on('DOMMouseScroll', scrollHandler);
18057 }
18058}
18059
18060function removeMouseEventListeners(events) {
18061 events.removeAllListeners('click');
18062 events.removeAllListeners('contextmenu');
18063 events.removeAllListeners('mousewheel');
18064}
18065
18066},{}],25:[function(require,module,exports){
18067exports.register = function (events, options) {
18068 addTouchEventListeners(events, options);
18069};
18070
18071exports.unregister = function (events) {
18072 removeTouchEventListeners(events);
18073};
18074
18075function addTouchEventListeners (events, options) {
18076 var touch
18077 , startX
18078 , endX
18079 ;
18080
18081 if (options.touch === false) {
18082 return;
18083 }
18084
18085 var isTap = function () {
18086 return Math.abs(startX - endX) < 10;
18087 };
18088
18089 var handleTap = function () {
18090 events.emit('tap', endX);
18091 };
18092
18093 var handleSwipe = function () {
18094 if (startX > endX) {
18095 events.emit('gotoNextSlide');
18096 }
18097 else {
18098 events.emit('gotoPreviousSlide');
18099 }
18100 };
18101
18102 events.on('touchstart', function (event) {
18103 touch = event.touches[0];
18104 startX = touch.clientX;
18105 });
18106
18107 events.on('touchend', function (event) {
18108 if (event.target.nodeName.toUpperCase() === 'A') {
18109 return;
18110 }
18111
18112 touch = event.changedTouches[0];
18113 endX = touch.clientX;
18114
18115 if (isTap()) {
18116 handleTap();
18117 }
18118 else {
18119 handleSwipe();
18120 }
18121 });
18122
18123 events.on('touchmove', function (event) {
18124 event.preventDefault();
18125 });
18126}
18127
18128function removeTouchEventListeners(events) {
18129 events.removeAllListeners("touchstart");
18130 events.removeAllListeners("touchend");
18131 events.removeAllListeners("touchmove");
18132}
18133
18134},{}],26:[function(require,module,exports){
18135exports.register = function (events) {
18136 addMessageEventListeners(events);
18137};
18138
18139function addMessageEventListeners (events) {
18140 events.on('message', navigateByMessage);
18141
18142 function navigateByMessage(message) {
18143 var cap;
18144
18145 if ((cap = /^gotoSlide:(\d+)$/.exec(message.data)) !== null) {
18146 events.emit('gotoSlide', parseInt(cap[1], 10), true);
18147 }
18148 else if (message.data === 'toggleBlackout') {
18149 events.emit('toggleBlackout');
18150 }
18151 }
18152}
18153
18154},{}],20:[function(require,module,exports){
18155var SlideNumber = require('components/slide-number')
18156 , converter = require('../converter')
18157 , highlighter = require('../highlighter')
18158 , utils = require('../utils')
18159 ;
18160
18161module.exports = SlideView;
18162
18163function SlideView (events, slideshow, scaler, slide) {
18164 var self = this;
18165
18166 self.events = events;
18167 self.slideshow = slideshow;
18168 self.scaler = scaler;
18169 self.slide = slide;
18170
18171 self.slideNumber = new SlideNumber(slide, slideshow);
18172
18173 self.configureElements();
18174 self.updateDimensions();
18175
18176 self.events.on('propertiesChanged', function (changes) {
18177 if (changes.hasOwnProperty('ratio')) {
18178 self.updateDimensions();
18179 }
18180 });
18181}
18182
18183SlideView.prototype.updateDimensions = function () {
18184 var self = this
18185 , dimensions = self.scaler.dimensions
18186 ;
18187
18188 self.scalingElement.style.width = dimensions.width + 'px';
18189 self.scalingElement.style.height = dimensions.height + 'px';
18190};
18191
18192SlideView.prototype.scale = function (containerElement) {
18193 var self = this;
18194
18195 self.scaler.scaleToFit(self.scalingElement, containerElement);
18196};
18197
18198SlideView.prototype.show = function () {
18199 utils.addClass(this.containerElement, 'remark-visible');
18200 utils.removeClass(this.containerElement, 'remark-fading');
18201};
18202
18203SlideView.prototype.hide = function () {
18204 var self = this;
18205 utils.removeClass(this.containerElement, 'remark-visible');
18206 // Don't just disappear the slide. Mark it as fading, which
18207 // keeps it on the screen, but at a reduced z-index.
18208 // Then set a timer to remove the fading state in 1s.
18209 utils.addClass(this.containerElement, 'remark-fading');
18210 setTimeout(function(){
18211 utils.removeClass(self.containerElement, 'remark-fading');
18212 }, 1000);
18213};
18214
18215SlideView.prototype.configureElements = function () {
18216 var self = this;
18217
18218 self.containerElement = document.createElement('div');
18219 self.containerElement.className = 'remark-slide-container';
18220
18221 self.scalingElement = document.createElement('div');
18222 self.scalingElement.className = 'remark-slide-scaler';
18223
18224 self.element = document.createElement('div');
18225 self.element.className = 'remark-slide';
18226
18227 self.contentElement = createContentElement(self.events, self.slideshow, self.slide);
18228 self.notesElement = createNotesElement(self.slideshow, self.slide.notes);
18229
18230 self.contentElement.appendChild(self.slideNumber.element);
18231 self.element.appendChild(self.contentElement);
18232 self.scalingElement.appendChild(self.element);
18233 self.containerElement.appendChild(self.scalingElement);
18234 self.containerElement.appendChild(self.notesElement);
18235};
18236
18237SlideView.prototype.scaleBackgroundImage = function (dimensions) {
18238 var self = this
18239 , styles = window.getComputedStyle(this.contentElement)
18240 , backgroundImage = styles.backgroundImage
18241 , match
18242 , image
18243 , scale
18244 ;
18245
18246 if ((match = /^url\(("?)([^\)]+?)\1\)/.exec(backgroundImage)) !== null) {
18247 image = new Image();
18248 image.onload = function () {
18249 if (image.width > dimensions.width ||
18250 image.height > dimensions.height) {
18251 // Background image is larger than slide
18252 if (!self.originalBackgroundSize) {
18253 // No custom background size has been set
18254 self.originalBackgroundSize = self.contentElement.style.backgroundSize;
18255 self.originalBackgroundPosition = self.contentElement.style.backgroundPosition;
18256 self.backgroundSizeSet = true;
18257
18258 if (dimensions.width / image.width < dimensions.height / image.height) {
18259 scale = dimensions.width / image.width;
18260 }
18261 else {
18262 scale = dimensions.height / image.height;
18263 }
18264
18265 self.contentElement.style.backgroundSize = image.width * scale +
18266 'px ' + image.height * scale + 'px';
18267 self.contentElement.style.backgroundPosition = '50% ' +
18268 ((dimensions.height - (image.height * scale)) / 2) + 'px';
18269 }
18270 }
18271 else {
18272 // Revert to previous background size setting
18273 if (self.backgroundSizeSet) {
18274 self.contentElement.style.backgroundSize = self.originalBackgroundSize;
18275 self.contentElement.style.backgroundPosition = self.originalBackgroundPosition;
18276 self.backgroundSizeSet = false;
18277 }
18278 }
18279 };
18280 image.src = match[2];
18281 }
18282};
18283
18284function createContentElement (events, slideshow, slide) {
18285 var element = document.createElement('div');
18286
18287 if (slide.properties.name) {
18288 element.id = 'slide-' + slide.properties.name;
18289 }
18290
18291 styleContentElement(slideshow, element, slide.properties);
18292
18293 element.innerHTML = converter.convertMarkdown(slide.content, slideshow.getLinks());
18294
18295 highlightCodeBlocks(element, slideshow);
18296
18297 return element;
18298}
18299
18300function styleContentElement (slideshow, element, properties) {
18301 element.className = '';
18302
18303 setClassFromProperties(element, properties);
18304 setHighlightStyleFromProperties(element, properties, slideshow);
18305 setBackgroundFromProperties(element, properties);
18306}
18307
18308function createNotesElement (slideshow, notes) {
18309 var element = document.createElement('div');
18310
18311 element.className = 'remark-slide-notes';
18312
18313 element.innerHTML = converter.convertMarkdown(notes);
18314
18315 highlightCodeBlocks(element, slideshow);
18316
18317 return element;
18318}
18319
18320function setBackgroundFromProperties (element, properties) {
18321 var backgroundImage = properties['background-image'];
18322 var backgroundColor = properties['background-color'];
18323
18324 if (backgroundImage) {
18325 element.style.backgroundImage = backgroundImage;
18326 }
18327 if (backgroundColor) {
18328 element.style.backgroundColor = backgroundColor;
18329 }
18330}
18331
18332function setHighlightStyleFromProperties (element, properties, slideshow) {
18333 var highlightStyle = properties['highlight-style'] ||
18334 slideshow.getHighlightStyle();
18335
18336 if (highlightStyle) {
18337 utils.addClass(element, 'hljs-' + highlightStyle);
18338 }
18339}
18340
18341function setClassFromProperties (element, properties) {
18342 utils.addClass(element, 'remark-slide-content');
18343
18344 (properties['class'] || '').split(/,| /)
18345 .filter(function (s) { return s !== ''; })
18346 .forEach(function (c) { utils.addClass(element, c); });
18347}
18348
18349function highlightCodeBlocks (content, slideshow) {
18350 var codeBlocks = content.getElementsByTagName('code'),
18351 highlightLines = slideshow.getHighlightLines(),
18352 highlightSpans = slideshow.getHighlightSpans(),
18353 meta;
18354
18355 codeBlocks.forEach(function (block) {
18356 if (block.parentElement.tagName !== 'PRE') {
18357 utils.addClass(block, 'remark-inline-code');
18358 return;
18359 }
18360
18361 if (block.className === '') {
18362 block.className = slideshow.getHighlightLanguage();
18363 }
18364
18365 if (highlightLines) {
18366 meta = extractMetadata(block);
18367 }
18368
18369 if (block.className !== '') {
18370 highlighter.engine.highlightBlock(block, ' ');
18371 }
18372
18373 wrapLines(block);
18374
18375 if (highlightLines) {
18376 highlightBlockLines(block, meta.highlightedLines);
18377 }
18378
18379 if (highlightSpans) {
18380 highlightBlockSpans(block);
18381 }
18382
18383 utils.addClass(block, 'remark-code');
18384 });
18385}
18386
18387function extractMetadata (block) {
18388 var highlightedLines = [];
18389
18390 block.innerHTML = block.innerHTML.split(/\r?\n/).map(function (line, i) {
18391 if (line.indexOf('*') === 0) {
18392 highlightedLines.push(i);
18393 return line.replace(/^\*( )?/, '$1$1');
18394 }
18395
18396 return line;
18397 }).join('\n');
18398
18399 return {
18400 highlightedLines: highlightedLines
18401 };
18402}
18403
18404function wrapLines (block) {
18405 var lines = block.innerHTML.split(/\r?\n/).map(function (line) {
18406 return '<div class="remark-code-line">' + line + '</div>';
18407 });
18408
18409 // Remove empty last line (due to last \n)
18410 if (lines.length && lines[lines.length - 1].indexOf('><') !== -1) {
18411 lines.pop();
18412 }
18413
18414 block.innerHTML = lines.join('');
18415}
18416
18417function highlightBlockLines (block, lines) {
18418 lines.forEach(function (i) {
18419 utils.addClass(block.childNodes[i], 'remark-code-line-highlighted');
18420 });
18421}
18422
18423function highlightBlockSpans (block) {
18424 var pattern = /([^`])`([^`]+?)`/g ;
18425
18426 block.childNodes.forEach(function (element) {
18427 element.innerHTML = element.innerHTML.replace(pattern,
18428 function (m,e,c) {
18429 if (e === '\\') {
18430 return m.substr(1);
18431 }
18432 return e + '<span class="remark-code-span-highlighted">' +
18433 c + '</span>';
18434 });
18435 });
18436}
18437
18438},{"components/slide-number":"GSZq7a","../converter":9,"../highlighter":7,"../utils":8}],21:[function(require,module,exports){
18439var converter = require('../converter');
18440
18441module.exports = NotesView;
18442
18443function NotesView (events, element, slideViewsAccessor) {
18444 var self = this;
18445
18446 self.events = events;
18447 self.element = element;
18448 self.slideViewsAccessor = slideViewsAccessor;
18449
18450 self.configureElements();
18451
18452 events.on('showSlide', function (slideIndex) {
18453 self.showSlide(slideIndex);
18454 });
18455}
18456
18457NotesView.prototype.showSlide = function (slideIndex) {
18458 var self = this
18459 , slideViews = self.slideViewsAccessor()
18460 , slideView = slideViews[slideIndex]
18461 , nextSlideView = slideViews[slideIndex + 1]
18462 ;
18463
18464 self.notesElement.innerHTML = slideView.notesElement.innerHTML;
18465
18466 if (nextSlideView) {
18467 self.notesPreviewElement.innerHTML = nextSlideView.notesElement.innerHTML;
18468 }
18469 else {
18470 self.notesPreviewElement.innerHTML = '';
18471 }
18472};
18473
18474NotesView.prototype.configureElements = function () {
18475 var self = this;
18476
18477 self.notesElement = self.element.getElementsByClassName('remark-notes')[0];
18478 self.notesPreviewElement = self.element.getElementsByClassName('remark-notes-preview')[0];
18479
18480 self.notesElement.addEventListener('mousewheel', function (event) {
18481 event.stopPropagation();
18482 });
18483
18484 self.notesPreviewElement.addEventListener('mousewheel', function (event) {
18485 event.stopPropagation();
18486 });
18487
18488 self.toolbarElement = self.element.getElementsByClassName('remark-toolbar')[0];
18489
18490 var commands = {
18491 increase: function () {
18492 self.notesElement.style.fontSize = (parseFloat(self.notesElement.style.fontSize) || 1) + 0.1 + 'em';
18493 self.notesPreviewElement.style.fontsize = self.notesElement.style.fontSize;
18494 },
18495 decrease: function () {
18496 self.notesElement.style.fontSize = (parseFloat(self.notesElement.style.fontSize) || 1) - 0.1 + 'em';
18497 self.notesPreviewElement.style.fontsize = self.notesElement.style.fontSize;
18498 }
18499 };
18500
18501 self.toolbarElement.getElementsByTagName('a').forEach(function (link) {
18502 link.addEventListener('click', function (e) {
18503 var command = e.target.hash.substr(1);
18504 commands[command]();
18505 e.preventDefault();
18506 });
18507 });
18508};
18509
18510},{"../converter":9}],27:[function(require,module,exports){
18511var utils = require('../../utils.js');
18512
18513exports.register = function (events, dom, slideshowView) {
18514 addLocationEventListeners(events, dom, slideshowView);
18515};
18516
18517function addLocationEventListeners (events, dom, slideshowView) {
18518 // If slideshow is embedded into custom DOM element, we don't
18519 // hook up to location hash changes, so just go to first slide.
18520 if (slideshowView.isEmbedded()) {
18521 events.emit('gotoSlide', 1);
18522 }
18523 // When slideshow is not embedded into custom DOM element, but
18524 // rather hosted directly inside document.body, we hook up to
18525 // location hash changes, and trigger initial navigation.
18526 else {
18527 events.on('hashchange', navigateByHash);
18528 events.on('slideChanged', updateHash);
18529 events.on('toggledPresenter', updateHash);
18530
18531 navigateByHash();
18532 }
18533
18534 function navigateByHash () {
18535 var slideNoOrName = (dom.getLocationHash() || '').substr(1);
18536 events.emit('gotoSlide', slideNoOrName);
18537 }
18538
18539 function updateHash (slideNoOrName) {
18540 if(utils.hasClass(slideshowView.containerElement, 'remark-presenter-mode')){
18541 dom.setLocationHash('#p' + slideNoOrName);
18542 }
18543 else{
18544 dom.setLocationHash('#' + slideNoOrName);
18545 }
18546 }
18547}
18548
18549},{"../../utils.js":8}],9:[function(require,module,exports){
18550var marked = require('marked')
18551 , converter = module.exports = {}
18552 , element = document.createElement('div')
18553 ;
18554
18555marked.setOptions({
18556 gfm: true,
18557 tables: true,
18558 breaks: false,
18559
18560 // Without this set to true, converting something like
18561 // <p>*</p><p>*</p> will become <p><em></p><p></em></p>
18562 pedantic: true,
18563
18564 sanitize: false,
18565 smartLists: true,
18566 langPrefix: ''
18567});
18568
18569converter.convertMarkdown = function (content, links, inline) {
18570 element.innerHTML = convertMarkdown(content, links || {}, inline);
18571 element.innerHTML = element.innerHTML.replace(/<p>\s*<\/p>/g, '');
18572 return element.innerHTML.replace(/\n\r?$/, '');
18573};
18574
18575function convertMarkdown (content, links, insideContentClass) {
18576 var i, tag, markdown = '', html;
18577
18578 for (i = 0; i < content.length; ++i) {
18579 if (typeof content[i] === 'string') {
18580 markdown += content[i];
18581 }
18582 else {
18583 tag = content[i].block ? 'div' : 'span';
18584 markdown += '<' + tag + ' class="' + content[i].class + '">';
18585 markdown += convertMarkdown(content[i].content, links, true);
18586 markdown += '</' + tag + '>';
18587 }
18588 }
18589
18590 var tokens = marked.Lexer.lex(markdown.replace(/^\s+/, ''));
18591 tokens.links = links;
18592 html = marked.Parser.parse(tokens);
18593
18594 if (insideContentClass) {
18595 element.innerHTML = html;
18596 if (element.children.length === 1 && element.children[0].tagName === 'P') {
18597 html = element.children[0].innerHTML;
18598 }
18599 }
18600
18601 return html;
18602}
18603
18604},{"marked":28}],28:[function(require,module,exports){
18605(function(global){/**
18606 * marked - a markdown parser
18607 * Copyright (c) 2011-2013, Christopher Jeffrey. (MIT Licensed)
18608 * https://github.com/chjj/marked
18609 */
18610
18611;(function() {
18612
18613/**
18614 * Block-Level Grammar
18615 */
18616
18617var block = {
18618 newline: /^\n+/,
18619 code: /^( {4}[^\n]+\n*)+/,
18620 fences: noop,
18621 hr: /^( *[-*_]){3,} *(?:\n+|$)/,
18622 heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,
18623 nptable: noop,
18624 lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,
18625 blockquote: /^( *>[^\n]+(\n[^\n]+)*\n*)+/,
18626 list: /^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
18627 html: /^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,
18628 def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
18629 table: noop,
18630 paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
18631 text: /^[^\n]+/
18632};
18633
18634block.bullet = /(?:[*+-]|\d+\.)/;
18635block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;
18636block.item = replace(block.item, 'gm')
18637 (/bull/g, block.bullet)
18638 ();
18639
18640block.list = replace(block.list)
18641 (/bull/g, block.bullet)
18642 ('hr', /\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)
18643 ();
18644
18645block._tag = '(?!(?:'
18646 + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'
18647 + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'
18648 + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b';
18649
18650block.html = replace(block.html)
18651 ('comment', /<!--[\s\S]*?-->/)
18652 ('closed', /<(tag)[\s\S]+?<\/\1>/)
18653 ('closing', /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)
18654 (/tag/g, block._tag)
18655 ();
18656
18657block.paragraph = replace(block.paragraph)
18658 ('hr', block.hr)
18659 ('heading', block.heading)
18660 ('lheading', block.lheading)
18661 ('blockquote', block.blockquote)
18662 ('tag', '<' + block._tag)
18663 ('def', block.def)
18664 ();
18665
18666/**
18667 * Normal Block Grammar
18668 */
18669
18670block.normal = merge({}, block);
18671
18672/**
18673 * GFM Block Grammar
18674 */
18675
18676block.gfm = merge({}, block.normal, {
18677 fences: /^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,
18678 paragraph: /^/
18679});
18680
18681block.gfm.paragraph = replace(block.paragraph)
18682 ('(?!', '(?!'
18683 + block.gfm.fences.source.replace('\\1', '\\2') + '|'
18684 + block.list.source.replace('\\1', '\\3') + '|')
18685 ();
18686
18687/**
18688 * GFM + Tables Block Grammar
18689 */
18690
18691block.tables = merge({}, block.gfm, {
18692 nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,
18693 table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/
18694});
18695
18696/**
18697 * Block Lexer
18698 */
18699
18700function Lexer(options) {
18701 this.tokens = [];
18702 this.tokens.links = {};
18703 this.options = options || marked.defaults;
18704 this.rules = block.normal;
18705
18706 if (this.options.gfm) {
18707 if (this.options.tables) {
18708 this.rules = block.tables;
18709 } else {
18710 this.rules = block.gfm;
18711 }
18712 }
18713}
18714
18715/**
18716 * Expose Block Rules
18717 */
18718
18719Lexer.rules = block;
18720
18721/**
18722 * Static Lex Method
18723 */
18724
18725Lexer.lex = function(src, options) {
18726 var lexer = new Lexer(options);
18727 return lexer.lex(src);
18728};
18729
18730/**
18731 * Preprocessing
18732 */
18733
18734Lexer.prototype.lex = function(src) {
18735 src = src
18736 .replace(/\r\n|\r/g, '\n')
18737 .replace(/\t/g, ' ')
18738 .replace(/\u00a0/g, ' ')
18739 .replace(/\u2424/g, '\n');
18740
18741 return this.token(src, true);
18742};
18743
18744/**
18745 * Lexing
18746 */
18747
18748Lexer.prototype.token = function(src, top) {
18749 var src = src.replace(/^ +$/gm, '')
18750 , next
18751 , loose
18752 , cap
18753 , bull
18754 , b
18755 , item
18756 , space
18757 , i
18758 , l;
18759
18760 while (src) {
18761 // newline
18762 if (cap = this.rules.newline.exec(src)) {
18763 src = src.substring(cap[0].length);
18764 if (cap[0].length > 1) {
18765 this.tokens.push({
18766 type: 'space'
18767 });
18768 }
18769 }
18770
18771 // code
18772 if (cap = this.rules.code.exec(src)) {
18773 src = src.substring(cap[0].length);
18774 cap = cap[0].replace(/^ {4}/gm, '');
18775 this.tokens.push({
18776 type: 'code',
18777 text: !this.options.pedantic
18778 ? cap.replace(/\n+$/, '')
18779 : cap
18780 });
18781 continue;
18782 }
18783
18784 // fences (gfm)
18785 if (cap = this.rules.fences.exec(src)) {
18786 src = src.substring(cap[0].length);
18787 this.tokens.push({
18788 type: 'code',
18789 lang: cap[2],
18790 text: cap[3]
18791 });
18792 continue;
18793 }
18794
18795 // heading
18796 if (cap = this.rules.heading.exec(src)) {
18797 src = src.substring(cap[0].length);
18798 this.tokens.push({
18799 type: 'heading',
18800 depth: cap[1].length,
18801 text: cap[2]
18802 });
18803 continue;
18804 }
18805
18806 // table no leading pipe (gfm)
18807 if (top && (cap = this.rules.nptable.exec(src))) {
18808 src = src.substring(cap[0].length);
18809
18810 item = {
18811 type: 'table',
18812 header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
18813 align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
18814 cells: cap[3].replace(/\n$/, '').split('\n')
18815 };
18816
18817 for (i = 0; i < item.align.length; i++) {
18818 if (/^ *-+: *$/.test(item.align[i])) {
18819 item.align[i] = 'right';
18820 } else if (/^ *:-+: *$/.test(item.align[i])) {
18821 item.align[i] = 'center';
18822 } else if (/^ *:-+ *$/.test(item.align[i])) {
18823 item.align[i] = 'left';
18824 } else {
18825 item.align[i] = null;
18826 }
18827 }
18828
18829 for (i = 0; i < item.cells.length; i++) {
18830 item.cells[i] = item.cells[i].split(/ *\| */);
18831 }
18832
18833 this.tokens.push(item);
18834
18835 continue;
18836 }
18837
18838 // lheading
18839 if (cap = this.rules.lheading.exec(src)) {
18840 src = src.substring(cap[0].length);
18841 this.tokens.push({
18842 type: 'heading',
18843 depth: cap[2] === '=' ? 1 : 2,
18844 text: cap[1]
18845 });
18846 continue;
18847 }
18848
18849 // hr
18850 if (cap = this.rules.hr.exec(src)) {
18851 src = src.substring(cap[0].length);
18852 this.tokens.push({
18853 type: 'hr'
18854 });
18855 continue;
18856 }
18857
18858 // blockquote
18859 if (cap = this.rules.blockquote.exec(src)) {
18860 src = src.substring(cap[0].length);
18861
18862 this.tokens.push({
18863 type: 'blockquote_start'
18864 });
18865
18866 cap = cap[0].replace(/^ *> ?/gm, '');
18867
18868 // Pass `top` to keep the current
18869 // "toplevel" state. This is exactly
18870 // how markdown.pl works.
18871 this.token(cap, top);
18872
18873 this.tokens.push({
18874 type: 'blockquote_end'
18875 });
18876
18877 continue;
18878 }
18879
18880 // list
18881 if (cap = this.rules.list.exec(src)) {
18882 src = src.substring(cap[0].length);
18883 bull = cap[2];
18884
18885 this.tokens.push({
18886 type: 'list_start',
18887 ordered: bull.length > 1
18888 });
18889
18890 // Get each top-level item.
18891 cap = cap[0].match(this.rules.item);
18892
18893 next = false;
18894 l = cap.length;
18895 i = 0;
18896
18897 for (; i < l; i++) {
18898 item = cap[i];
18899
18900 // Remove the list item's bullet
18901 // so it is seen as the next token.
18902 space = item.length;
18903 item = item.replace(/^ *([*+-]|\d+\.) +/, '');
18904
18905 // Outdent whatever the
18906 // list item contains. Hacky.
18907 if (~item.indexOf('\n ')) {
18908 space -= item.length;
18909 item = !this.options.pedantic
18910 ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')
18911 : item.replace(/^ {1,4}/gm, '');
18912 }
18913
18914 // Determine whether the next list item belongs here.
18915 // Backpedal if it does not belong in this list.
18916 if (this.options.smartLists && i !== l - 1) {
18917 b = block.bullet.exec(cap[i + 1])[0];
18918 if (bull !== b && !(bull.length > 1 && b.length > 1)) {
18919 src = cap.slice(i + 1).join('\n') + src;
18920 i = l - 1;
18921 }
18922 }
18923
18924 // Determine whether item is loose or not.
18925 // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/
18926 // for discount behavior.
18927 loose = next || /\n\n(?!\s*$)/.test(item);
18928 if (i !== l - 1) {
18929 next = item.charAt(item.length - 1) === '\n';
18930 if (!loose) loose = next;
18931 }
18932
18933 this.tokens.push({
18934 type: loose
18935 ? 'loose_item_start'
18936 : 'list_item_start'
18937 });
18938
18939 // Recurse.
18940 this.token(item, false);
18941
18942 this.tokens.push({
18943 type: 'list_item_end'
18944 });
18945 }
18946
18947 this.tokens.push({
18948 type: 'list_end'
18949 });
18950
18951 continue;
18952 }
18953
18954 // html
18955 if (cap = this.rules.html.exec(src)) {
18956 src = src.substring(cap[0].length);
18957 this.tokens.push({
18958 type: this.options.sanitize
18959 ? 'paragraph'
18960 : 'html',
18961 pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',
18962 text: cap[0]
18963 });
18964 continue;
18965 }
18966
18967 // def
18968 if (top && (cap = this.rules.def.exec(src))) {
18969 src = src.substring(cap[0].length);
18970 this.tokens.links[cap[1].toLowerCase()] = {
18971 href: cap[2],
18972 title: cap[3]
18973 };
18974 continue;
18975 }
18976
18977 // table (gfm)
18978 if (top && (cap = this.rules.table.exec(src))) {
18979 src = src.substring(cap[0].length);
18980
18981 item = {
18982 type: 'table',
18983 header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
18984 align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
18985 cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n')
18986 };
18987
18988 for (i = 0; i < item.align.length; i++) {
18989 if (/^ *-+: *$/.test(item.align[i])) {
18990 item.align[i] = 'right';
18991 } else if (/^ *:-+: *$/.test(item.align[i])) {
18992 item.align[i] = 'center';
18993 } else if (/^ *:-+ *$/.test(item.align[i])) {
18994 item.align[i] = 'left';
18995 } else {
18996 item.align[i] = null;
18997 }
18998 }
18999
19000 for (i = 0; i < item.cells.length; i++) {
19001 item.cells[i] = item.cells[i]
19002 .replace(/^ *\| *| *\| *$/g, '')
19003 .split(/ *\| */);
19004 }
19005
19006 this.tokens.push(item);
19007
19008 continue;
19009 }
19010
19011 // top-level paragraph
19012 if (top && (cap = this.rules.paragraph.exec(src))) {
19013 src = src.substring(cap[0].length);
19014 this.tokens.push({
19015 type: 'paragraph',
19016 text: cap[1].charAt(cap[1].length - 1) === '\n'
19017 ? cap[1].slice(0, -1)
19018 : cap[1]
19019 });
19020 continue;
19021 }
19022
19023 // text
19024 if (cap = this.rules.text.exec(src)) {
19025 // Top-level should never reach here.
19026 src = src.substring(cap[0].length);
19027 this.tokens.push({
19028 type: 'text',
19029 text: cap[0]
19030 });
19031 continue;
19032 }
19033
19034 if (src) {
19035 throw new
19036 Error('Infinite loop on byte: ' + src.charCodeAt(0));
19037 }
19038 }
19039
19040 return this.tokens;
19041};
19042
19043/**
19044 * Inline-Level Grammar
19045 */
19046
19047var inline = {
19048 escape: /^\\([\\`*{}\[\]()#+\-.!_>])/,
19049 autolink: /^<([^ >]+(@|:\/)[^ >]+)>/,
19050 url: noop,
19051 tag: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,
19052 link: /^!?\[(inside)\]\(href\)/,
19053 reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
19054 nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
19055 strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
19056 em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
19057 code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,
19058 br: /^ {2,}\n(?!\s*$)/,
19059 del: noop,
19060 text: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/
19061};
19062
19063inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;
19064inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;
19065
19066inline.link = replace(inline.link)
19067 ('inside', inline._inside)
19068 ('href', inline._href)
19069 ();
19070
19071inline.reflink = replace(inline.reflink)
19072 ('inside', inline._inside)
19073 ();
19074
19075/**
19076 * Normal Inline Grammar
19077 */
19078
19079inline.normal = merge({}, inline);
19080
19081/**
19082 * Pedantic Inline Grammar
19083 */
19084
19085inline.pedantic = merge({}, inline.normal, {
19086 strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
19087 em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/
19088});
19089
19090/**
19091 * GFM Inline Grammar
19092 */
19093
19094inline.gfm = merge({}, inline.normal, {
19095 escape: replace(inline.escape)('])', '~|])')(),
19096 url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,
19097 del: /^~~(?=\S)([\s\S]*?\S)~~/,
19098 text: replace(inline.text)
19099 (']|', '~]|')
19100 ('|', '|https?://|')
19101 ()
19102});
19103
19104/**
19105 * GFM + Line Breaks Inline Grammar
19106 */
19107
19108inline.breaks = merge({}, inline.gfm, {
19109 br: replace(inline.br)('{2,}', '*')(),
19110 text: replace(inline.gfm.text)('{2,}', '*')()
19111});
19112
19113/**
19114 * Inline Lexer & Compiler
19115 */
19116
19117function InlineLexer(links, options) {
19118 this.options = options || marked.defaults;
19119 this.links = links;
19120 this.rules = inline.normal;
19121 this.renderer = this.options.renderer || new Renderer;
19122 this.renderer.options = this.options;
19123
19124 if (!this.links) {
19125 throw new
19126 Error('Tokens array requires a `links` property.');
19127 }
19128
19129 if (this.options.gfm) {
19130 if (this.options.breaks) {
19131 this.rules = inline.breaks;
19132 } else {
19133 this.rules = inline.gfm;
19134 }
19135 } else if (this.options.pedantic) {
19136 this.rules = inline.pedantic;
19137 }
19138}
19139
19140/**
19141 * Expose Inline Rules
19142 */
19143
19144InlineLexer.rules = inline;
19145
19146/**
19147 * Static Lexing/Compiling Method
19148 */
19149
19150InlineLexer.output = function(src, links, options) {
19151 var inline = new InlineLexer(links, options);
19152 return inline.output(src);
19153};
19154
19155/**
19156 * Lexing/Compiling
19157 */
19158
19159InlineLexer.prototype.output = function(src) {
19160 var out = ''
19161 , link
19162 , text
19163 , href
19164 , cap;
19165
19166 while (src) {
19167 // escape
19168 if (cap = this.rules.escape.exec(src)) {
19169 src = src.substring(cap[0].length);
19170 out += cap[1];
19171 continue;
19172 }
19173
19174 // autolink
19175 if (cap = this.rules.autolink.exec(src)) {
19176 src = src.substring(cap[0].length);
19177 if (cap[2] === '@') {
19178 text = cap[1].charAt(6) === ':'
19179 ? this.mangle(cap[1].substring(7))
19180 : this.mangle(cap[1]);
19181 href = this.mangle('mailto:') + text;
19182 } else {
19183 text = escape(cap[1]);
19184 href = text;
19185 }
19186 out += this.renderer.link(href, null, text);
19187 continue;
19188 }
19189
19190 // url (gfm)
19191 if (cap = this.rules.url.exec(src)) {
19192 src = src.substring(cap[0].length);
19193 text = escape(cap[1]);
19194 href = text;
19195 out += this.renderer.link(href, null, text);
19196 continue;
19197 }
19198
19199 // tag
19200 if (cap = this.rules.tag.exec(src)) {
19201 src = src.substring(cap[0].length);
19202 out += this.options.sanitize
19203 ? escape(cap[0])
19204 : cap[0];
19205 continue;
19206 }
19207
19208 // link
19209 if (cap = this.rules.link.exec(src)) {
19210 src = src.substring(cap[0].length);
19211 out += this.outputLink(cap, {
19212 href: cap[2],
19213 title: cap[3]
19214 });
19215 continue;
19216 }
19217
19218 // reflink, nolink
19219 if ((cap = this.rules.reflink.exec(src))
19220 || (cap = this.rules.nolink.exec(src))) {
19221 src = src.substring(cap[0].length);
19222 link = (cap[2] || cap[1]).replace(/\s+/g, ' ');
19223 link = this.links[link.toLowerCase()];
19224 if (!link || !link.href) {
19225 out += cap[0].charAt(0);
19226 src = cap[0].substring(1) + src;
19227 continue;
19228 }
19229 out += this.outputLink(cap, link);
19230 continue;
19231 }
19232
19233 // strong
19234 if (cap = this.rules.strong.exec(src)) {
19235 src = src.substring(cap[0].length);
19236 out += this.renderer.strong(this.output(cap[2] || cap[1]));
19237 continue;
19238 }
19239
19240 // em
19241 if (cap = this.rules.em.exec(src)) {
19242 src = src.substring(cap[0].length);
19243 out += this.renderer.em(this.output(cap[2] || cap[1]));
19244 continue;
19245 }
19246
19247 // code
19248 if (cap = this.rules.code.exec(src)) {
19249 src = src.substring(cap[0].length);
19250 out += this.renderer.codespan(escape(cap[2], true));
19251 continue;
19252 }
19253
19254 // br
19255 if (cap = this.rules.br.exec(src)) {
19256 src = src.substring(cap[0].length);
19257 out += this.renderer.br();
19258 continue;
19259 }
19260
19261 // del (gfm)
19262 if (cap = this.rules.del.exec(src)) {
19263 src = src.substring(cap[0].length);
19264 out += this.renderer.del(this.output(cap[1]));
19265 continue;
19266 }
19267
19268 // text
19269 if (cap = this.rules.text.exec(src)) {
19270 src = src.substring(cap[0].length);
19271 out += escape(this.smartypants(cap[0]));
19272 continue;
19273 }
19274
19275 if (src) {
19276 throw new
19277 Error('Infinite loop on byte: ' + src.charCodeAt(0));
19278 }
19279 }
19280
19281 return out;
19282};
19283
19284/**
19285 * Compile Link
19286 */
19287
19288InlineLexer.prototype.outputLink = function(cap, link) {
19289 var href = escape(link.href)
19290 , title = link.title ? escape(link.title) : null;
19291
19292 return cap[0].charAt(0) !== '!'
19293 ? this.renderer.link(href, title, this.output(cap[1]))
19294 : this.renderer.image(href, title, escape(cap[1]));
19295};
19296
19297/**
19298 * Smartypants Transformations
19299 */
19300
19301InlineLexer.prototype.smartypants = function(text) {
19302 if (!this.options.smartypants) return text;
19303 return text
19304 // em-dashes
19305 .replace(/--/g, '\u2014')
19306 // opening singles
19307 .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018')
19308 // closing singles & apostrophes
19309 .replace(/'/g, '\u2019')
19310 // opening doubles
19311 .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c')
19312 // closing doubles
19313 .replace(/"/g, '\u201d')
19314 // ellipses
19315 .replace(/\.{3}/g, '\u2026');
19316};
19317
19318/**
19319 * Mangle Links
19320 */
19321
19322InlineLexer.prototype.mangle = function(text) {
19323 var out = ''
19324 , l = text.length
19325 , i = 0
19326 , ch;
19327
19328 for (; i < l; i++) {
19329 ch = text.charCodeAt(i);
19330 if (Math.random() > 0.5) {
19331 ch = 'x' + ch.toString(16);
19332 }
19333 out += '&#' + ch + ';';
19334 }
19335
19336 return out;
19337};
19338
19339/**
19340 * Renderer
19341 */
19342
19343function Renderer(options) {
19344 this.options = options || {};
19345}
19346
19347Renderer.prototype.code = function(code, lang, escaped) {
19348 if (this.options.highlight) {
19349 var out = this.options.highlight(code, lang);
19350 if (out != null && out !== code) {
19351 escaped = true;
19352 code = out;
19353 }
19354 }
19355
19356 if (!lang) {
19357 return '<pre><code>'
19358 + (escaped ? code : escape(code, true))
19359 + '\n</code></pre>';
19360 }
19361
19362 return '<pre><code class="'
19363 + this.options.langPrefix
19364 + escape(lang, true)
19365 + '">'
19366 + (escaped ? code : escape(code, true))
19367 + '\n</code></pre>\n';
19368};
19369
19370Renderer.prototype.blockquote = function(quote) {
19371 return '<blockquote>\n' + quote + '</blockquote>\n';
19372};
19373
19374Renderer.prototype.html = function(html) {
19375 return html;
19376};
19377
19378Renderer.prototype.heading = function(text, level, raw) {
19379 return '<h'
19380 + level
19381 + ' id="'
19382 + this.options.headerPrefix
19383 + raw.toLowerCase().replace(/[^\w]+/g, '-')
19384 + '">'
19385 + text
19386 + '</h'
19387 + level
19388 + '>\n';
19389};
19390
19391Renderer.prototype.hr = function() {
19392 return '<hr>\n';
19393};
19394
19395Renderer.prototype.list = function(body, ordered) {
19396 var type = ordered ? 'ol' : 'ul';
19397 return '<' + type + '>\n' + body + '</' + type + '>\n';
19398};
19399
19400Renderer.prototype.listitem = function(text) {
19401 return '<li>' + text + '</li>\n';
19402};
19403
19404Renderer.prototype.paragraph = function(text) {
19405 return '<p>' + text + '</p>\n';
19406};
19407
19408Renderer.prototype.table = function(header, body) {
19409 return '<table>\n'
19410 + '<thead>\n'
19411 + header
19412 + '</thead>\n'
19413 + '<tbody>\n'
19414 + body
19415 + '</tbody>\n'
19416 + '</table>\n';
19417};
19418
19419Renderer.prototype.tablerow = function(content) {
19420 return '<tr>\n' + content + '</tr>\n';
19421};
19422
19423Renderer.prototype.tablecell = function(content, flags) {
19424 var type = flags.header ? 'th' : 'td';
19425 var tag = flags.align
19426 ? '<' + type + ' style="text-align:' + flags.align + '">'
19427 : '<' + type + '>';
19428 return tag + content + '</' + type + '>\n';
19429};
19430
19431// span level renderer
19432Renderer.prototype.strong = function(text) {
19433 return '<strong>' + text + '</strong>';
19434};
19435
19436Renderer.prototype.em = function(text) {
19437 return '<em>' + text + '</em>';
19438};
19439
19440Renderer.prototype.codespan = function(text) {
19441 return '<code>' + text + '</code>';
19442};
19443
19444Renderer.prototype.br = function() {
19445 return '<br>';
19446};
19447
19448Renderer.prototype.del = function(text) {
19449 return '<del>' + text + '</del>';
19450};
19451
19452Renderer.prototype.link = function(href, title, text) {
19453 if (this.options.sanitize) {
19454 try {
19455 var prot = decodeURIComponent(unescape(href))
19456 .replace(/[^\w:]/g, '')
19457 .toLowerCase();
19458 } catch (e) {
19459 return '';
19460 }
19461 if (prot.indexOf('javascript:') === 0) {
19462 return '';
19463 }
19464 }
19465 var out = '<a href="' + href + '"';
19466 if (title) {
19467 out += ' title="' + title + '"';
19468 }
19469 out += '>' + text + '</a>';
19470 return out;
19471};
19472
19473Renderer.prototype.image = function(href, title, text) {
19474 var out = '<img src="' + href + '" alt="' + text + '"';
19475 if (title) {
19476 out += ' title="' + title + '"';
19477 }
19478 out += '>';
19479 return out;
19480};
19481
19482/**
19483 * Parsing & Compiling
19484 */
19485
19486function Parser(options) {
19487 this.tokens = [];
19488 this.token = null;
19489 this.options = options || marked.defaults;
19490 this.options.renderer = this.options.renderer || new Renderer;
19491 this.renderer = this.options.renderer;
19492 this.renderer.options = this.options;
19493}
19494
19495/**
19496 * Static Parse Method
19497 */
19498
19499Parser.parse = function(src, options, renderer) {
19500 var parser = new Parser(options, renderer);
19501 return parser.parse(src);
19502};
19503
19504/**
19505 * Parse Loop
19506 */
19507
19508Parser.prototype.parse = function(src) {
19509 this.inline = new InlineLexer(src.links, this.options, this.renderer);
19510 this.tokens = src.reverse();
19511
19512 var out = '';
19513 while (this.next()) {
19514 out += this.tok();
19515 }
19516
19517 return out;
19518};
19519
19520/**
19521 * Next Token
19522 */
19523
19524Parser.prototype.next = function() {
19525 return this.token = this.tokens.pop();
19526};
19527
19528/**
19529 * Preview Next Token
19530 */
19531
19532Parser.prototype.peek = function() {
19533 return this.tokens[this.tokens.length - 1] || 0;
19534};
19535
19536/**
19537 * Parse Text Tokens
19538 */
19539
19540Parser.prototype.parseText = function() {
19541 var body = this.token.text;
19542
19543 while (this.peek().type === 'text') {
19544 body += '\n' + this.next().text;
19545 }
19546
19547 return this.inline.output(body);
19548};
19549
19550/**
19551 * Parse Current Token
19552 */
19553
19554Parser.prototype.tok = function() {
19555 switch (this.token.type) {
19556 case 'space': {
19557 return '';
19558 }
19559 case 'hr': {
19560 return this.renderer.hr();
19561 }
19562 case 'heading': {
19563 return this.renderer.heading(
19564 this.inline.output(this.token.text),
19565 this.token.depth,
19566 this.token.text);
19567 }
19568 case 'code': {
19569 return this.renderer.code(this.token.text,
19570 this.token.lang,
19571 this.token.escaped);
19572 }
19573 case 'table': {
19574 var header = ''
19575 , body = ''
19576 , i
19577 , row
19578 , cell
19579 , flags
19580 , j;
19581
19582 // header
19583 cell = '';
19584 for (i = 0; i < this.token.header.length; i++) {
19585 flags = { header: true, align: this.token.align[i] };
19586 cell += this.renderer.tablecell(
19587 this.inline.output(this.token.header[i]),
19588 { header: true, align: this.token.align[i] }
19589 );
19590 }
19591 header += this.renderer.tablerow(cell);
19592
19593 for (i = 0; i < this.token.cells.length; i++) {
19594 row = this.token.cells[i];
19595
19596 cell = '';
19597 for (j = 0; j < row.length; j++) {
19598 cell += this.renderer.tablecell(
19599 this.inline.output(row[j]),
19600 { header: false, align: this.token.align[j] }
19601 );
19602 }
19603
19604 body += this.renderer.tablerow(cell);
19605 }
19606 return this.renderer.table(header, body);
19607 }
19608 case 'blockquote_start': {
19609 var body = '';
19610
19611 while (this.next().type !== 'blockquote_end') {
19612 body += this.tok();
19613 }
19614
19615 return this.renderer.blockquote(body);
19616 }
19617 case 'list_start': {
19618 var body = ''
19619 , ordered = this.token.ordered;
19620
19621 while (this.next().type !== 'list_end') {
19622 body += this.tok();
19623 }
19624
19625 return this.renderer.list(body, ordered);
19626 }
19627 case 'list_item_start': {
19628 var body = '';
19629
19630 while (this.next().type !== 'list_item_end') {
19631 body += this.token.type === 'text'
19632 ? this.parseText()
19633 : this.tok();
19634 }
19635
19636 return this.renderer.listitem(body);
19637 }
19638 case 'loose_item_start': {
19639 var body = '';
19640
19641 while (this.next().type !== 'list_item_end') {
19642 body += this.tok();
19643 }
19644
19645 return this.renderer.listitem(body);
19646 }
19647 case 'html': {
19648 var html = !this.token.pre && !this.options.pedantic
19649 ? this.inline.output(this.token.text)
19650 : this.token.text;
19651 return this.renderer.html(html);
19652 }
19653 case 'paragraph': {
19654 return this.renderer.paragraph(this.inline.output(this.token.text));
19655 }
19656 case 'text': {
19657 return this.renderer.paragraph(this.parseText());
19658 }
19659 }
19660};
19661
19662/**
19663 * Helpers
19664 */
19665
19666function escape(html, encode) {
19667 return html
19668 .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;')
19669 .replace(/</g, '&lt;')
19670 .replace(/>/g, '&gt;')
19671 .replace(/"/g, '&quot;')
19672 .replace(/'/g, '&#39;');
19673}
19674
19675function unescape(html) {
19676 return html.replace(/&([#\w]+);/g, function(_, n) {
19677 n = n.toLowerCase();
19678 if (n === 'colon') return ':';
19679 if (n.charAt(0) === '#') {
19680 return n.charAt(1) === 'x'
19681 ? String.fromCharCode(parseInt(n.substring(2), 16))
19682 : String.fromCharCode(+n.substring(1));
19683 }
19684 return '';
19685 });
19686}
19687
19688function replace(regex, opt) {
19689 regex = regex.source;
19690 opt = opt || '';
19691 return function self(name, val) {
19692 if (!name) return new RegExp(regex, opt);
19693 val = val.source || val;
19694 val = val.replace(/(^|[^\[])\^/g, '$1');
19695 regex = regex.replace(name, val);
19696 return self;
19697 };
19698}
19699
19700function noop() {}
19701noop.exec = noop;
19702
19703function merge(obj) {
19704 var i = 1
19705 , target
19706 , key;
19707
19708 for (; i < arguments.length; i++) {
19709 target = arguments[i];
19710 for (key in target) {
19711 if (Object.prototype.hasOwnProperty.call(target, key)) {
19712 obj[key] = target[key];
19713 }
19714 }
19715 }
19716
19717 return obj;
19718}
19719
19720
19721/**
19722 * Marked
19723 */
19724
19725function marked(src, opt, callback) {
19726 if (callback || typeof opt === 'function') {
19727 if (!callback) {
19728 callback = opt;
19729 opt = null;
19730 }
19731
19732 opt = merge({}, marked.defaults, opt || {});
19733
19734 var highlight = opt.highlight
19735 , tokens
19736 , pending
19737 , i = 0;
19738
19739 try {
19740 tokens = Lexer.lex(src, opt)
19741 } catch (e) {
19742 return callback(e);
19743 }
19744
19745 pending = tokens.length;
19746
19747 var done = function() {
19748 var out, err;
19749
19750 try {
19751 out = Parser.parse(tokens, opt);
19752 } catch (e) {
19753 err = e;
19754 }
19755
19756 opt.highlight = highlight;
19757
19758 return err
19759 ? callback(err)
19760 : callback(null, out);
19761 };
19762
19763 if (!highlight || highlight.length < 3) {
19764 return done();
19765 }
19766
19767 delete opt.highlight;
19768
19769 if (!pending) return done();
19770
19771 for (; i < tokens.length; i++) {
19772 (function(token) {
19773 if (token.type !== 'code') {
19774 return --pending || done();
19775 }
19776 return highlight(token.text, token.lang, function(err, code) {
19777 if (code == null || code === token.text) {
19778 return --pending || done();
19779 }
19780 token.text = code;
19781 token.escaped = true;
19782 --pending || done();
19783 });
19784 })(tokens[i]);
19785 }
19786
19787 return;
19788 }
19789 try {
19790 if (opt) opt = merge({}, marked.defaults, opt);
19791 return Parser.parse(Lexer.lex(src, opt), opt);
19792 } catch (e) {
19793 e.message += '\nPlease report this to https://github.com/chjj/marked.';
19794 if ((opt || marked.defaults).silent) {
19795 return '<p>An error occured:</p><pre>'
19796 + escape(e.message + '', true)
19797 + '</pre>';
19798 }
19799 throw e;
19800 }
19801}
19802
19803/**
19804 * Options
19805 */
19806
19807marked.options =
19808marked.setOptions = function(opt) {
19809 merge(marked.defaults, opt);
19810 return marked;
19811};
19812
19813marked.defaults = {
19814 gfm: true,
19815 tables: true,
19816 breaks: false,
19817 pedantic: false,
19818 sanitize: false,
19819 smartLists: false,
19820 silent: false,
19821 highlight: null,
19822 langPrefix: 'lang-',
19823 smartypants: false,
19824 headerPrefix: '',
19825 renderer: new Renderer
19826};
19827
19828/**
19829 * Expose
19830 */
19831
19832marked.Parser = Parser;
19833marked.parser = Parser.parse;
19834
19835marked.Renderer = Renderer;
19836
19837marked.Lexer = Lexer;
19838marked.lexer = Lexer.lex;
19839
19840marked.InlineLexer = InlineLexer;
19841marked.inlineLexer = InlineLexer.output;
19842
19843marked.parse = marked;
19844
19845if (typeof exports === 'object') {
19846 module.exports = marked;
19847} else if (typeof define === 'function' && define.amd) {
19848 define(function() { return marked; });
19849} else {
19850 this.marked = marked;
19851}
19852
19853}).call(function() {
19854 return this || (typeof window !== 'undefined' ? window : global);
19855}());
19856
19857})(window)
19858},{}]},{},[3])
19859;</script>
19860 <script>
19861 var slideshow = remark.create();
19862 </script>
19863 <script></script>
19864 </body>
19865</html>
19866

Built with git-ssb-web