git ssb

0+

dinoworm ๐Ÿ› / campjs-viii-ludditejs



Tree: 4db53a552e3e351132de9ff96cd61a20cc4810ee

Files: 4db53a552e3e351132de9ff96cd61a20cc4810ee / index.html

904646 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, deep 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 - not a good idea to sweep complexity under the rug
191- so priority is not ease of use but powerful human computer expression
192 - kinda the opposite of Steve Jobs
193- keen to evolve our JavaScript with this in mind
194
195references:
196
197- https://alistapart.com/column/douglas-engelbart
198- http://www.dougengelbart.org/pubs/augment-3906.html
199- http://99percentinvisible.org/episode/of-mice-and-men/
200
201---
202class: center
203
204### let's adventure
205
206#### to the silly wonderland of luddite.js
207
208<img src="./rabbit-hole.jpg" height='380' class="center" />
209
210<!-- image credit to Mary Blair at Disney -->
211
212???
213
214an ambiguous utopia
215
216---
217class: info
218
219## Luddite?
220
221the [Luddites](https://en.wikipedia.org/wiki/Luddite) was a political movement against _centralized automated technology_.
222
223<img src="./luddite.jpg" height='300' class="center" />
224
225???
226
227- many Luddites were skilled machine operators in the textile industry
228- they wanted machines to make high-quality goods, run by workers who had gone through an apprenticeship and got paid decent wages
229- they attacked centralized factories who used automated machines operated by unskilled labor
230- they used fictious characters to make their story ring
231 - see Ned Ludd, the made-up leader, who lived in Sherwood Forest
232
233---
234class: info
235
236## luddite.js?
237
238**luddite.js** is a (made-up) meme for _decentralized simple JavaScript_.
239
240- decentralized userland ecosystems
241- simple patterns based on function signatures
242
243???
244
245- not centralized core committees
246- not trendy libraries that lock you in
247- gonna lead you on a journey through the luddite way to do things
248- a study of functional JavaScript patterns that have evolved in userland
249
250---
251class: center, info
252
253## decentralized userland ecosystems
254
255---
256class: info
257
258what if i told you...
259
260<img src="./morpheus-cat.png" height="400" />
261
262that anyone can create a _standard_?
263
264???
265
266- not everyone needs to agree with you
267- no corporate sponsorship necessary
268
269---
270class: info
271
272### what is a standard?
273
274a standard is an opinion about a pattern
275
276example: ["standard style"](https://github.com/feross/standard)
277
278```
279npm install --global standard
280```
281
282???
283
284- an opinion that enough people agree with is a serious standard
285- tc39 is a great team advancing the state of the art in JavaScript,
286 - but the standards produced by tc39 are only one of _many_ possible JavaScript opinions
287- we all have the power to create our own JavaScript opinions
288 - no experience necessary!
289- what other standards can you think of?
290 - anything "best practice", maybe even within a small niche community
291
292---
293class: info
294
295what if i told you...
296
297<img src="./morpheus-cat.png" height="400" />
298
299that you only needed _functions and objects_?
300
301???
302
303- no fancy syntax necessary
304 - less language clutter
305- how can we apply this pattern to the full stack?
306
307
308---
309class: info
310
311### what is a _luddite.js_ standard?
312
313a standard based on a function signature
314
315example: [Redux](https://redux.js.org) reducers
316
317```js
318const reducer = (state, action) => nextState
319```
320
321???
322
323- what other standards based on function signatures can you think of?
324 - express / connect: (req, res, next)
325
326---
327class: info
328
329### why is this important?
330
331- easy to test
332- accessible for anyone to participate
333- no module lock-in
334
335???
336
337- you can test the functions directly without using the module
338- you don't need anyone's approval to write a "function specification"
339- you can swap libraries that are compatible with the "function specification"
340
341---
342class: center, info
343
344## simple patterns based on function signatures
345
346---
347class: success
348
349### just a function
350
351```js
352function fn (options) { return value }
353```
354
355```js
356const fn = (...args) => ({ [key]: value })
357```
358
359---
360class: info
361
362### sync function signals
363
364with a sync function, there are two possible signals:
365
3661. value: `return value`
3672. error: `throw error`
368
369???
370
371```js
372function fn (...args) { throw error }
373```
374
375```js
376try {
377 fn(...args)
378} catch (const err) {
379 // handle error
380}
381```
382
383---
384class: center, info
385
386## modules
387
388---
389class: danger
390
391### es modules
392
393```js
394import thing from 'module'
395
396export default thing
397```
398
399```js
400import { thing as thingy } from 'module'
401
402export const thing = thingy
403```
404
405???
406
407- why new syntax?
408 - there's myths that es modules make possible something new
409- what is happening here?
410 - i find this can be confusing for beginners who don't understand the special syntax and complex implementation details
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
441---
442class: success
443
444### depject
445
446```js
447const module = {
448 needs: {
449 message: {
450 layout: 'first',
451 render: 'map',
452 decorate: 'reduce'
453 }
454 },
455 gives: {
456 message: {
457 view: true
458 }
459 },
460 create: ({ message: { layout, render, decorate }) => {
461 return { message: { view } }
462
463 function view () {}
464 }
465}
466
467combine([modules...])
468```
469
470???
471
472https://github.com/depject/depject
473
474- dependency injection for overlapping opinions
475- each module is an object with exposes `{ needs, gives, create }`
476- `needs` is a map of names to types
477 - first: use the first module that has an opinion about a thing
478 - map: get each module's opinion about a thing
479 - reduce: compose each module's opinion about a thing into one opinion
480- gives is an object of names to export
481- create is a function which receives needed plugs and returns given plugs
482
483---
484class: center, info
485
486## dom elements
487
488---
489class: danger
490
491### jsx
492
493```js
494import React from 'react'
495import classNames from 'classnames'
496
497export default Todos
498
499const Todos = ({ items }) => (
500 <List>{items.map(item => (
501 <Item item={item} />
502 ))}</List>
503)
504
505const List = ({ children }) => (
506 <div className='list'>{children}</div>
507)
508
509const Item = ({ item: { isActive, text } }) => {
510 const className = classNames({
511 item: true,
512 active: isActive
513 })
514 return <div className={className}>{text}</div>
515}
516```
517
518???
519
520- made by Facebook to make React easier to use
521- looks friendly on the surface, but underneath has non-obvious edge cases
522 - hides that JSX is actually `React.createElement` function calls
523 - "why can't i use `if () { first } else { second }`?
524 - can only use expressions, not statements
525- new syntax means you need a special code syntax highlighter, i ran out of time
526
527---
528
529class: success
530
531### hyperscript
532
533```js
534const h = require('react-hyperscript')
535const classNames = require('classnames')
536
537module.exports = Todos
538
539const Todos = ({ items }) => (
540 h(List, items.map(item =>
541 h(Item, { item })
542 ))
543)
544
545const List = ({ children }) => (
546 h('div', { className: 'list' }, children)
547)
548
549const Item = ({ item: { isActive, text } }) => {
550 const className = classNames({
551 item: true,
552 active: isActive
553 })
554 return h('div', { className }, text)
555)
556```
557
558???
559
560- same with lust functions
561- syntax can be unattractive at first
562
563see also:
564
565- [`hyperscript-helpers`](https://github.com/ohanhi/hyperscript-helpers)
566 - `div`, `span`, `ul`, `li`, etc functions
567- [`hyperx`](https://github.com/substack/hyperx)
568 - similar to JSX, but uses existing language features: tagged template literals
569
570---
571class: success
572
573### React.createElement
574
575```js
576const h = require('react').createElement
577const classNames = require('classnames')
578
579module.exports = Todos
580
581const Todos = ({ items }) => (
582 h(List, null, items.map(item =>
583 h(Item, { item })
584 ))
585)
586
587const List = ({ children }) => (
588 h('div', { className: 'list' }, children)
589)
590
591const Item = ({ item: { isActive, text } }) => {
592 const className = classNames({
593 item: true,
594 active: isActive
595 })
596 return h('div', { className }, text)
597)
598```
599
600???
601
602- `React.createElement` is basically a strict hyperscript
603
604---
605class: center, info
606
607## eventual value
608
609---
610class: danger
611
612### promise spec
613
614```js
615const promise = new Promise((resolve, reject) => {
616 // do stuff...
617 resolve(value)
618 // oh no!
619 reject(error)
620}
621```
622
623```js
624promise
625 .then(value => console.log(value))
626 .catch(err => console.error(value))
627```
628
629???
630
631https://tc39.github.io/ecma262/#sec-promise-objects
632
633TODO waterfall
634
635parallel
636
637```js
638module.exports = fetchCats
639
640function fetchCats ({ cats }) {
641 return Promise.all(cats.map(cat => {
642 return fetch(cat)
643 }))
644})
645```
646
647---
648class: success
649
650### continuable
651
652a "continuable" is a function that takes a single argument, a node-style error-first callback
653
654```js
655const continuable = (callback) => {
656 // do stuff...
657 callback(null, value)
658 // oh no!
659 callback(error)
660}
661```
662
663```js
664continuable((err, value) => {
665 if (err) console.error(err)
666 else console.log(value)
667})
668```
669
670???
671
672a continuable is the callback version of a promise
673
674can be passed around as an "eventual value", same as promises. but without the resolved, pending, rejected state machine complexity.
675
676- [`continuable`](https://github.com/Raynos/continuable)
677- [`cont`](https://github.com/dominictarr/cont)
678
679TODO waterfall
680
681parallel
682
683```js
684const request = require('request')
685const parallel = require('run-parallel')
686
687module.exports = fetchCats
688
689function fetchCats ({ cats }) {
690 return callback => parallel(cats.map(cat => {
691 return callback => request(cat, callback)
692 }), callback)
693})
694```
695
696---
697class: info
698
699### async errors
700
701with a node-style error-first callback, there are three possible signals:
702
7031. value: `callback(null, value)`
7042. user error: `callback(error)`
7053. programmer error: `throw error`
706
707???
708
709- promise errors smush the user and programmer errors together
710- 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
711
712i could talk about how to do pipe continuable as a waterfall, in parallel, etc, but...
713
714both continuables and promises have their own place in hell, we need better abstractions.
715
716---
717class: center, info
718
719## reactive values
720
721---
722class: danger
723
724### es observables
725
726https://tc39.github.io/proposal-observable/
727
728???
729
730too much detail to explain here
731
732- https://github.com/tc39/proposal-observable
733
734---
735class: success
736
737### observ-ables
738
739reactive values using only functions!
740
741- `thing()` gets the value
742- `thing.set(value)` sets the value
743- `thing((value) => { ... })` listens to the value
744
745???
746
747- [`observ`](https://github.com/Raynos/observ)
748- [`observable`](https://github.com/dominictarr/observable)
749- [`push-stream`](https://github.com/ahdinosaur/push-stream)
750- [`mutant`](https://github.com/mmckegg/mutant)
751
752---
753class: success
754
755```js
756const { h, Struct, Value, when } = require('mutant')
757
758const toggle = (state) => {
759 state.set(!state())
760}
761
762const Activity = ({ activity: { isActive, text }) => (
763 h('div', {
764 style: {
765 color: when(isActive, 'green', 'red')
766 },
767 events: {
768 click: () => toggle(isActive)
769 }
770 }, text)
771)
772
773var activity = Struct({
774 text: Value('give a talk'),
775 isActive: Value(true)
776})
777var element = Activity({ activity })
778
779document.body.appendChild(element)
780```
781
782???
783
784- mutant has observables for all composite data structures: arrays, sets, dictionaries, etc
785- updates in-place, no dom diff-ing!
786
787---
788class: center, info
789
790## values over time
791
792---
793class: danger
794
795### node streams
796
797https://nodejs.org/api/stream.html
798
799???
800
801- https://github.com/substack/stream-handbook
802- https://github.com/workshopper/stream-adventure
803
804---
805class: danger
806
807### whatwg streams
808
809https://streams.spec.whatwg.org/
810
811???
812
813- https://github.com/whatwg/streams
814
815---
816class: success
817
818### pull streams
819
820async streams using only functions!
821
822```js
823pull(source, through, sink)
824```
825
826- composable partial pipelines
827- unbuffered by default
828- pipeline error propogation
829- source and sink back-pressure
830
831???
832
833pull streams could be its own talk, going to be a quick intro
834
835- [history of streams](http://dominictarr.com/post/145135293917/history-of-streams)
836- [pull stream examples](https://github.com/dominictarr/pull-stream-examples)
837- [pull streams intro](http://dominictarr.com/post/149248845122/pull-streams-pull-streams-are-a-very-simple)
838- [pull stream](https://pull-stream.github.io/)
839- [pull stream workshop](https://github.com/pull-stream/pull-stream-workshop)
840
841---
842class: success
843
844#### source
845
846```js
847function createSource (...args) {
848 // a source function accepts
849 // - abort: a boolean whether to signal end
850 // - callback: where to send next signal
851 return (abort, callback) => {
852 if (abort || done) callback(true)
853 else callback(null, value)
854 }
855}
856```
857
858???
859
860- look ma, just functions!
861- yes, we are using callbacks even for synchronous results
862 - much faster this way, no reason to delay til next tick
863
864```js
865function values (array) {
866 var i = 0
867 return (abort, callback) => {
868 if (abort || i === array.length) {
869 callback(true)
870 }
871 else {
872 callback(null, array[i++]
873 }
874 }
875}
876```
877
878---
879class: success
880
881#### source usage
882
883```js
884const values = require('pull-stream/sources/values')
885
886const source = values([0, 1, 2, 3])
887
888source(null, (err, value) {
889 console.log('first value:', value)
890})
891// first value: 0
892```
893
894---
895class: info
896
897#### pull stream errors
898
899with a pull stream source callback, there are four possible signals:
900
9011. value: `callback(null, value)`
9022. user error: `callback(error)`
9033. programmer error: `throw error`
9044. complete: `callback(true)`
905
906???
907
908- both the source and sink can signal back-pressure ("hey i'm busy") by not calling the respective callback
909
910
911---
912class: success
913
914#### sink spec
915
916```js
917function createSink (...args) {
918 // a sink function accepts a source
919 return (source) => {
920 // reads a value from the source
921 source(null, function next (err, value) {
922 // handle the result
923 if (err) return handleError(err)
924 handleValue(value)
925
926 // recursively call source again!
927 source(null, next)
928 })
929 }
930}
931```
932
933???
934
935- `handleError` might abort the source and call a done callback passed in through the args
936- `handleValue` might do something with each value
937
938
939```js
940function log (source) {
941 source(null, function next (err, data) {
942 if (err) return console.log(err)
943 console.log(data)
944 // recursively call source again!
945 source(null, next)
946 })
947}
948```
949
950with continuables:
951
952```js
953function log (source) {
954 return (callback) => {
955 source(null, function next (err, data) {
956 if (err) return callback(err)
957 console.log(data)
958 // recursively call source again!
959 source(null, next)
960 })
961 }
962}
963```
964
965---
966class: success
967
968#### sink usage
969
970```js
971const values = require('pull-stream/sources/values')
972const drain = require('pull-stream/sinks/drain')
973
974const source = values([0, 1, 2, 3])
975const log = drain(console.log)
976
977log(source)
978// 0
979// 1
980// 2
981// 3
982```
983
984---
985class: success
986
987#### through spec
988
989```js
990function createThrough (...args) {
991 // a sink function: accept a source
992 return (source) => {
993 // but return another source!
994 return (abort, callback) {
995 // ...
996 }
997 }
998}
999```
1000
1001???
1002
1003```js
1004function map (mapper) {
1005 // a sink function: accept a source
1006 return function (source) {
1007 // but return another source!
1008 return function (abort, callback) {
1009 source(abort, function (err, data) {
1010 // if the stream has ended, pass that on.
1011 if (err) callback(err)
1012 // apply a mapping to that data
1013 else callback(null, mapper(data))
1014 })
1015 }
1016 }
1017}
1018```
1019
1020---
1021class: success
1022
1023#### through usage
1024
1025```js
1026const values = require('pull-stream/sources/values')
1027const drain = require('pull-stream/sinks/drain')
1028const map = require('pull-stream/throughs/map')
1029
1030const source = values([0, 1, 2, 3])
1031const log = drain(console.log)
1032const double = map(x => x * 2)
1033
1034log(double(source))
1035// 0
1036// 2
1037// 4
1038// 6
1039```
1040
1041---
1042class: success
1043
1044#### compose pull streams
1045
1046```js
1047pull(source, through, sink) === sink(through(source))
1048
1049pull(source, through) // returns source
1050
1051pull(through, sink) // returns sink
1052
1053pull(source, sink) // runs to end
1054```
1055
1056---
1057class: success
1058
1059#### wild pull streams
1060
1061ecosystem of modules: [pull-stream.github.io](https://pull-stream.github.io)
1062
1063```js
1064// parse a csv file
1065pull(
1066 File(filename),
1067 CSV(),
1068 pull.drain(console.log)
1069)
1070
1071function CSV () {
1072 return pull(
1073 Split(), // defaults to '\n'
1074 pull.map(function (line) {
1075 return line.split(',')
1076 })
1077 )
1078}
1079```
1080
1081???
1082
1083obviously you don't want to re-implement simple streams from scratch all the time
1084
1085---
1086class: center, info
1087
1088## why should you be a JavaScript luddite?
1089
1090---
1091class: success
1092
1093### better performance
1094
1095software performance is
1096
1097less about gaining muscle
1098
1099more about losing weight
1100
1101???
1102
1103- code runs faster when it does less
1104- was going to put a picture showing an over-powered muscly person versus a light and lean runner, but hey i'll leave it to your imagination :)
1105- if you don't use fancy syntax (jsx, etc), you don't need fancy build steps
1106
1107---
1108class: success
1109
1110### easier to describe
1111
1112specification is a function signature,
1113
1114not a complex state machine
1115
1116???
1117
1118- clear inputs and outputs
1119- small code blocks (or "snippets") can be deceiving
1120 - leads to a positive first impression, until you use in production where the edge cases leak through the abstractions
1121 - i find nothing more difficult than edge cases at scale caused by hiding complexity in our tools
1122
1123---
1124class: success
1125
1126### path to mastery
1127
1128learnable tools focused on power users
1129
1130<img src="./training-wheels.jpg" height="350" class="center" />
1131
1132???
1133
1134- training wheels are great to get started and go around the blockS
1135- yes promises are easier than callbacks, a beginner can start using with less learning, training, or practice
1136- but when you want to go up a hill or go a long distance, you want a real bike
1137 - this takes time to learn how to steer and balance on
1138- how many hours to do we spend writing complex code, is the most intuitive abstraction best suited for our evolving understanding?
1139 - here's one of many possible abstractions, but is not the end answer
1140
1141---
1142class: center, info
1143
1144## stories
1145
1146---
1147class: warning
1148
1149### story: catstack
1150
1151build a framework from scratch, alone
1152
1153<img src="./catstack.jpg" height="350" class="center" />
1154
1155???
1156
1157reinvent every wheel possible! the entire web stack.
1158
1159https://github.com/root-systems/catstack
1160
1161i did it, but it was unsustainable, unable to transfer context to team
1162
1163---
1164class: warning
1165
1166### learning:
1167
1168yay, reinventing wheels for fun and learning
1169
1170boo, the world on your shoulders
1171
1172???
1173
1174pros
1175
1176- no better way to learn how systems work than by building them from scratch
1177- own your dependencies, don't consume them for granted
1178- provide consistent flavoring across subsystems
1179- marginally better than other libraries
1180
1181cons
1182
1183- easy to become isolated
1184 - if you aren't enough to become popular, you're alone
1185- spreads you thin
1186 - hard to work on what you can do best, because you have to spend limited resources on your marginally better stack
1187- easy to rabbit hole
1188- probably miss the long tail: i18n, accessibility, tests
1189- always doing maintenance
1190
1191---
1192class: info
1193
1194### revised: dogstack
1195
1196choose your battles
1197
1198<img src="./dogstack.jpg" height="350" class="center" />
1199
1200???
1201
1202focus on what you do best
1203
1204delegates parts where you are only marginally better
1205
1206http://dogstack.js.org/
1207
1208---
1209class: success
1210
1211### story: patch ecosystem
1212
1213bring-your-own-JavaScript potluck
1214
1215<img src="./patchwork.png" height="350" class="center" />
1216
1217???
1218
1219build an app with others, bring your own JavaScript opinions
1220
1221references:
1222
1223- https://github.com/ssbc/patchcore
1224- https://github.com/ssbc/patchwork
1225- https://github.com/ssbc/patchbay
1226- https://github.com/ssbc/patchlite
1227
1228---
1229class: success, center
1230
1231#### offline social media
1232
1233[patchwork.campjs.com](http://patchwork.campjs.com)
1234&
1235[scuttlebutt.nz](https://www.scuttlebutt.nz)
1236
1237<img src="./patchwork-screenshot.jpg" height="400" class="center" />
1238
1239---
1240class: success, center
1241
1242#### git projects
1243
1244```js
1245npm install -g git-ssb
1246```
1247
1248<img src="./git-ssb-screenshot.png" height="400" class="center" />
1249
1250---
1251class: success
1252
1253### learning: mad science works!
1254
1255follow your passion
1256
1257find others who share your passion
1258
1259???
1260
1261- somebody should: if you see something that needs doing, it's your job to do
1262- find ways to collaborate with active listening and empathy
1263- mad science: find something worth doing, do it, publish, repeat
1264
1265---
1266class: center, info
1267
1268## conclusion
1269
1270---
1271class: info
1272
1273### so what
1274
1275everyone has opinions.
1276
1277this one is mine. =^.^=
1278
1279???
1280
1281as my Mom always says:
1282
1283> it's not about being right, it's about being successful
1284
1285takaways
1286- izs pants post: https://groups.google.com/forum/#!msg/nodejs/MWaivVTirPY/0pnRjKsggkIJ
1287 - everyone has opinions, be aware of yours' and others'
1288 - when you come over to someone's house, be polite and respect their opinions
1289- don't force your opinions on others
1290 - share what you're passionate about
1291 - avoid persuading anyone that your way is better
1292- the luddite.js way is just another opinion, not better or worse than yours
1293
1294## aids
1295
1296- [eating your own dog food](https://en.wikipedia.org/wiki/Eating_your_own_dog_food)
1297- [mad science method](https://github.com/ahdinosaur/mad-science-handbook/blob/master/collaboration.md#the-mad-science-cycle)
1298- [do-ocracy](https://communitywiki.org/wiki/DoOcracy)
1299- marathon: keep a slow & steady pace one step at a time
1300- if you see a job that needs doing, it's your job to do (do-ocrarcy)
1301- too much sugar is bad for your health (simple interfaces)
1302
1303## blocks
1304
1305- cave method: try to design or implement the _perfect_ system before sharing it
1306- [design by committee](https://en.wikipedia.org/wiki/Design_by_committee)
1307- sprint: hype, mania, and burn-out
1308- [waterfall design](https://en.wikipedia.org/wiki/Waterfall_model)
1309
1310---
1311class: info
1312
1313### all the "standards"
1314
1315make up your own opinions!
1316
1317your opinion about JavaScript is valid.
1318
1319???
1320
1321at the end of the day, standards are just somebody's opinion.
1322
1323---
1324class: info
1325
1326## questions?
1327
1328---
1329class: success
1330
1331## thanks!
1332
1333i appreciate the gift of your attention. โ™ฅ
1334
1335<img src="./follow_your_dreams.png" height="300" class="center" />
1336
1337<!-- image credit to @substack -->
1338
1339???
1340
1341## references
1342
1343- [es2040](https://github.com/ahdinosaur/es2040)
1344- [Art of Node](https://github.com/maxogden/art-of-node)
1345- [Art of I/O](http://ioschool.is/art-of-io/sessions/0/?notes=true)
1346- [Tiny Guide to Non Fancy Node](https://github.com/yoshuawuyts/tiny-guide-to-non-fancy-node)
1347
1348- [Simple made easy](http://www.infoq.com/presentations/Simple-Made-Easy)
1349- [Programming with Hand Tools](https://www.youtube.com/watch?v=ShEez0JkOFw)
1350- [Feynman's Nobel Amibition](http://www.physics.ohio-state.edu/~kilcup/262/feynman.html)
1351- "[I want programming computers to be like coloring with crayons and playing with duplo blocks](https://news.ycombinator.com/item?id=4310723)"
1352
1353## luddite.js apps
1354
1355- https://scuttlebutt.nz/
1356- http://loopjs.com/
1357- https://choo.io/
1358- https://webtorrent.io/
1359- http://standardjs.com/
1360- https://peermaps.github.io/
1361
1362 </textarea>
1363 <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){
1364module.exports=require('yoGRCZ');
1365},{}],"yoGRCZ":[function(require,module,exports){
1366var EventEmitter = require('events').EventEmitter
1367 , styler = require('components/styler')
1368 ;
1369
1370var LANDSCAPE = 'landscape'
1371 , PORTRAIT = 'portrait'
1372 , PAGE_HEIGHT = 681
1373 , PAGE_WIDTH = 908
1374 ;
1375
1376function PrintComponent () {}
1377
1378// Add eventing
1379PrintComponent.prototype = new EventEmitter();
1380
1381// Sets up listener for printing
1382PrintComponent.prototype.init = function () {
1383 var self = this;
1384
1385 this.setPageOrientation(LANDSCAPE);
1386
1387 if (!window.matchMedia) {
1388 return false;
1389 }
1390
1391 window.matchMedia('print').addListener(function (e) {
1392 self.onPrint(e);
1393 });
1394};
1395
1396// Handles printing event
1397PrintComponent.prototype.onPrint = function (e) {
1398 var slideHeight;
1399
1400 if (!e.matches) {
1401 return;
1402 }
1403
1404 this.emit('print', {
1405 isPortrait: this._orientation === 'portrait'
1406 , pageHeight: this._pageHeight
1407 , pageWidth: this._pageWidth
1408 });
1409};
1410
1411PrintComponent.prototype.setPageOrientation = function (orientation) {
1412 if (orientation === PORTRAIT) {
1413 // Flip dimensions for portrait orientation
1414 this._pageHeight = PAGE_WIDTH;
1415 this._pageWidth = PAGE_HEIGHT;
1416 }
1417 else if (orientation === LANDSCAPE) {
1418 this._pageHeight = PAGE_HEIGHT;
1419 this._pageWidth = PAGE_WIDTH;
1420 }
1421 else {
1422 throw new Error('Unknown print orientation: ' + orientation);
1423 }
1424
1425 this._orientation = orientation;
1426
1427 styler.setPageSize(this._pageWidth + 'px ' + this._pageHeight + 'px');
1428};
1429
1430// Export singleton instance
1431module.exports = new PrintComponent();
1432
1433},{"events":1,"components/styler":"syTcZF"}],"components/slide-number":[function(require,module,exports){
1434module.exports=require('GSZq7a');
1435},{}],"GSZq7a":[function(require,module,exports){
1436module.exports = SlideNumberViewModel;
1437
1438function SlideNumberViewModel (slide, slideshow) {
1439 var self = this;
1440
1441 self.slide = slide;
1442 self.slideshow = slideshow;
1443
1444 self.element = document.createElement('div');
1445 self.element.className = 'remark-slide-number';
1446 self.element.innerHTML = formatSlideNumber(self.slide, self.slideshow);
1447}
1448
1449function formatSlideNumber (slide, slideshow) {
1450 var format = slideshow.getSlideNumberFormat()
1451 , slides = slideshow.getSlides()
1452 , current = getSlideNo(slide, slideshow)
1453 , total = getSlideNo(slides[slides.length - 1], slideshow)
1454 ;
1455
1456 if (typeof format === 'function') {
1457 return format.call(slideshow, current, total);
1458 }
1459
1460 return format
1461 .replace('%current%', current)
1462 .replace('%total%', total);
1463}
1464
1465function getSlideNo (slide, slideshow) {
1466 var slides = slideshow.getSlides(), i, slideNo = 0;
1467
1468 for (i = 0; i <= slide.getSlideIndex() && i < slides.length; ++i) {
1469 if (slides[i].properties.count !== 'false') {
1470 slideNo += 1;
1471 }
1472 }
1473
1474 return Math.max(1, slideNo);
1475}
1476
1477},{}],2:[function(require,module,exports){
1478// shim for using process in browser
1479
1480var process = module.exports = {};
1481
1482process.nextTick = (function () {
1483 var canSetImmediate = typeof window !== 'undefined'
1484 && window.setImmediate;
1485 var canPost = typeof window !== 'undefined'
1486 && window.postMessage && window.addEventListener
1487 ;
1488
1489 if (canSetImmediate) {
1490 return function (f) { return window.setImmediate(f) };
1491 }
1492
1493 if (canPost) {
1494 var queue = [];
1495 window.addEventListener('message', function (ev) {
1496 var source = ev.source;
1497 if ((source === window || source === null) && ev.data === 'process-tick') {
1498 ev.stopPropagation();
1499 if (queue.length > 0) {
1500 var fn = queue.shift();
1501 fn();
1502 }
1503 }
1504 }, true);
1505
1506 return function nextTick(fn) {
1507 queue.push(fn);
1508 window.postMessage('process-tick', '*');
1509 };
1510 }
1511
1512 return function nextTick(fn) {
1513 setTimeout(fn, 0);
1514 };
1515})();
1516
1517process.title = 'browser';
1518process.browser = true;
1519process.env = {};
1520process.argv = [];
1521
1522process.binding = function (name) {
1523 throw new Error('process.binding is not supported');
1524}
1525
1526// TODO(shtylman)
1527process.cwd = function () { return '/' };
1528process.chdir = function (dir) {
1529 throw new Error('process.chdir is not supported');
1530};
1531
1532},{}],1:[function(require,module,exports){
1533(function(process){if (!process.EventEmitter) process.EventEmitter = function () {};
1534
1535var EventEmitter = exports.EventEmitter = process.EventEmitter;
1536var isArray = typeof Array.isArray === 'function'
1537 ? Array.isArray
1538 : function (xs) {
1539 return Object.prototype.toString.call(xs) === '[object Array]'
1540 }
1541;
1542function indexOf (xs, x) {
1543 if (xs.indexOf) return xs.indexOf(x);
1544 for (var i = 0; i < xs.length; i++) {
1545 if (x === xs[i]) return i;
1546 }
1547 return -1;
1548}
1549
1550// By default EventEmitters will print a warning if more than
1551// 10 listeners are added to it. This is a useful default which
1552// helps finding memory leaks.
1553//
1554// Obviously not all Emitters should be limited to 10. This function allows
1555// that to be increased. Set to zero for unlimited.
1556var defaultMaxListeners = 10;
1557EventEmitter.prototype.setMaxListeners = function(n) {
1558 if (!this._events) this._events = {};
1559 this._events.maxListeners = n;
1560};
1561
1562
1563EventEmitter.prototype.emit = function(type) {
1564 // If there is no 'error' event listener then throw.
1565 if (type === 'error') {
1566 if (!this._events || !this._events.error ||
1567 (isArray(this._events.error) && !this._events.error.length))
1568 {
1569 if (arguments[1] instanceof Error) {
1570 throw arguments[1]; // Unhandled 'error' event
1571 } else {
1572 throw new Error("Uncaught, unspecified 'error' event.");
1573 }
1574 return false;
1575 }
1576 }
1577
1578 if (!this._events) return false;
1579 var handler = this._events[type];
1580 if (!handler) return false;
1581
1582 if (typeof handler == 'function') {
1583 switch (arguments.length) {
1584 // fast cases
1585 case 1:
1586 handler.call(this);
1587 break;
1588 case 2:
1589 handler.call(this, arguments[1]);
1590 break;
1591 case 3:
1592 handler.call(this, arguments[1], arguments[2]);
1593 break;
1594 // slower
1595 default:
1596 var args = Array.prototype.slice.call(arguments, 1);
1597 handler.apply(this, args);
1598 }
1599 return true;
1600
1601 } else if (isArray(handler)) {
1602 var args = Array.prototype.slice.call(arguments, 1);
1603
1604 var listeners = handler.slice();
1605 for (var i = 0, l = listeners.length; i < l; i++) {
1606 listeners[i].apply(this, args);
1607 }
1608 return true;
1609
1610 } else {
1611 return false;
1612 }
1613};
1614
1615// EventEmitter is defined in src/node_events.cc
1616// EventEmitter.prototype.emit() is also defined there.
1617EventEmitter.prototype.addListener = function(type, listener) {
1618 if ('function' !== typeof listener) {
1619 throw new Error('addListener only takes instances of Function');
1620 }
1621
1622 if (!this._events) this._events = {};
1623
1624 // To avoid recursion in the case that type == "newListeners"! Before
1625 // adding it to the listeners, first emit "newListeners".
1626 this.emit('newListener', type, listener);
1627
1628 if (!this._events[type]) {
1629 // Optimize the case of one listener. Don't need the extra array object.
1630 this._events[type] = listener;
1631 } else if (isArray(this._events[type])) {
1632
1633 // Check for listener leak
1634 if (!this._events[type].warned) {
1635 var m;
1636 if (this._events.maxListeners !== undefined) {
1637 m = this._events.maxListeners;
1638 } else {
1639 m = defaultMaxListeners;
1640 }
1641
1642 if (m && m > 0 && this._events[type].length > m) {
1643 this._events[type].warned = true;
1644 console.error('(node) warning: possible EventEmitter memory ' +
1645 'leak detected. %d listeners added. ' +
1646 'Use emitter.setMaxListeners() to increase limit.',
1647 this._events[type].length);
1648 console.trace();
1649 }
1650 }
1651
1652 // If we've already got an array, just append.
1653 this._events[type].push(listener);
1654 } else {
1655 // Adding the second element, need to change to array.
1656 this._events[type] = [this._events[type], listener];
1657 }
1658
1659 return this;
1660};
1661
1662EventEmitter.prototype.on = EventEmitter.prototype.addListener;
1663
1664EventEmitter.prototype.once = function(type, listener) {
1665 var self = this;
1666 self.on(type, function g() {
1667 self.removeListener(type, g);
1668 listener.apply(this, arguments);
1669 });
1670
1671 return this;
1672};
1673
1674EventEmitter.prototype.removeListener = function(type, listener) {
1675 if ('function' !== typeof listener) {
1676 throw new Error('removeListener only takes instances of Function');
1677 }
1678
1679 // does not use listeners(), so no side effect of creating _events[type]
1680 if (!this._events || !this._events[type]) return this;
1681
1682 var list = this._events[type];
1683
1684 if (isArray(list)) {
1685 var i = indexOf(list, listener);
1686 if (i < 0) return this;
1687 list.splice(i, 1);
1688 if (list.length == 0)
1689 delete this._events[type];
1690 } else if (this._events[type] === listener) {
1691 delete this._events[type];
1692 }
1693
1694 return this;
1695};
1696
1697EventEmitter.prototype.removeAllListeners = function(type) {
1698 if (arguments.length === 0) {
1699 this._events = {};
1700 return this;
1701 }
1702
1703 // does not use listeners(), so no side effect of creating _events[type]
1704 if (type && this._events && this._events[type]) this._events[type] = null;
1705 return this;
1706};
1707
1708EventEmitter.prototype.listeners = function(type) {
1709 if (!this._events) this._events = {};
1710 if (!this._events[type]) this._events[type] = [];
1711 if (!isArray(this._events[type])) {
1712 this._events[type] = [this._events[type]];
1713 }
1714 return this._events[type];
1715};
1716
1717})(require("__browserify_process"))
1718},{"__browserify_process":2}],3:[function(require,module,exports){
1719var Api = require('./remark/api')
1720 , polyfills = require('./polyfills')
1721 , styler = require('components/styler')
1722 ;
1723
1724// Expose API as `remark`
1725window.remark = new Api();
1726
1727// Apply polyfills as needed
1728polyfills.apply();
1729
1730// Apply embedded styles to document
1731styler.styleDocument();
1732
1733},{"components/styler":"syTcZF","./remark/api":4,"./polyfills":5}],"components/styler":[function(require,module,exports){
1734module.exports=require('syTcZF');
1735},{}],"syTcZF":[function(require,module,exports){
1736var resources = require('../../resources')
1737 , highlighter = require('../../highlighter')
1738 ;
1739
1740module.exports = {
1741 styleDocument: styleDocument
1742, setPageSize: setPageSize
1743};
1744
1745// Applies bundled styles to document
1746function styleDocument () {
1747 var headElement, styleElement, style;
1748
1749 // Bail out if document has already been styled
1750 if (getRemarkStylesheet()) {
1751 return;
1752 }
1753
1754 headElement = document.getElementsByTagName('head')[0];
1755 styleElement = document.createElement('style');
1756 styleElement.type = 'text/css';
1757
1758 // Set title in order to enable lookup
1759 styleElement.title = 'remark';
1760
1761 // Set document styles
1762 styleElement.innerHTML = resources.documentStyles;
1763
1764 // Append highlighting styles
1765 for (style in highlighter.styles) {
1766 if (highlighter.styles.hasOwnProperty(style)) {
1767 styleElement.innerHTML = styleElement.innerHTML +
1768 highlighter.styles[style];
1769 }
1770 }
1771
1772 // Put element first to prevent overriding user styles
1773 headElement.insertBefore(styleElement, headElement.firstChild);
1774}
1775
1776function setPageSize (size) {
1777 var stylesheet = getRemarkStylesheet()
1778 , pageRule = getPageRule(stylesheet)
1779 ;
1780
1781 pageRule.style.size = size;
1782}
1783
1784// Locates the embedded remark stylesheet
1785function getRemarkStylesheet () {
1786 var i, l = document.styleSheets.length;
1787
1788 for (i = 0; i < l; ++i) {
1789 if (document.styleSheets[i].title === 'remark') {
1790 return document.styleSheets[i];
1791 }
1792 }
1793}
1794
1795// Locates the CSS @page rule
1796function getPageRule (stylesheet) {
1797 var i, l = stylesheet.cssRules.length;
1798
1799 for (i = 0; i < l; ++i) {
1800 if (stylesheet.cssRules[i] instanceof window.CSSPageRule) {
1801 return stylesheet.cssRules[i];
1802 }
1803 }
1804}
1805
1806},{"../../resources":6,"../../highlighter":7}],"components/timer":[function(require,module,exports){
1807module.exports=require('GFo1Ae');
1808},{}],"GFo1Ae":[function(require,module,exports){
1809var utils = require('../../utils');
1810
1811module.exports = TimerViewModel;
1812
1813function TimerViewModel (events, element) {
1814 var self = this;
1815
1816 self.events = events;
1817 self.element = element;
1818
1819 self.startTime = null;
1820 self.pauseStart = null;
1821 self.pauseLength = 0;
1822
1823 element.innerHTML = '0:00:00';
1824
1825 setInterval(function() {
1826 self.updateTimer();
1827 }, 100);
1828
1829 events.on('start', function () {
1830 // When we do the first slide change, start the clock.
1831 self.startTime = new Date();
1832 });
1833
1834 events.on('resetTimer', function () {
1835 // If we reset the timer, clear everything.
1836 self.startTime = null;
1837 self.pauseStart = null;
1838 self.pauseLength = 0;
1839 self.element.innerHTML = '0:00:00';
1840 });
1841
1842 events.on('pause', function () {
1843 self.pauseStart = new Date();
1844 });
1845
1846 events.on('resume', function () {
1847 self.pauseLength += new Date() - self.pauseStart;
1848 self.pauseStart = null;
1849 });
1850}
1851
1852TimerViewModel.prototype.updateTimer = function () {
1853 var self = this;
1854
1855 if (self.startTime) {
1856 var millis;
1857 // If we're currently paused, measure elapsed time from the pauseStart.
1858 // Otherwise, use "now".
1859 if (self.pauseStart) {
1860 millis = self.pauseStart - self.startTime - self.pauseLength;
1861 } else {
1862 millis = new Date() - self.startTime - self.pauseLength;
1863 }
1864
1865 var seconds = Math.floor(millis / 1000) % 60;
1866 var minutes = Math.floor(millis / 60000) % 60;
1867 var hours = Math.floor(millis / 3600000);
1868
1869 self.element.innerHTML = hours + (minutes > 9 ? ':' : ':0') + minutes + (seconds > 9 ? ':' : ':0') + seconds;
1870 }
1871};
1872
1873},{"../../utils":8}],5:[function(require,module,exports){
1874exports.apply = function () {
1875 forEach([Array, window.NodeList, window.HTMLCollection], extend);
1876};
1877
1878function forEach (list, f) {
1879 var i;
1880
1881 for (i = 0; i < list.length; ++i) {
1882 f(list[i], i);
1883 }
1884}
1885
1886function extend (object) {
1887 var prototype = object && object.prototype;
1888
1889 if (!prototype) {
1890 return;
1891 }
1892
1893 prototype.forEach = prototype.forEach || function (f) {
1894 forEach(this, f);
1895 };
1896
1897 prototype.filter = prototype.filter || function (f) {
1898 var result = [];
1899
1900 this.forEach(function (element) {
1901 if (f(element, result.length)) {
1902 result.push(element);
1903 }
1904 });
1905
1906 return result;
1907 };
1908
1909 prototype.map = prototype.map || function (f) {
1910 var result = [];
1911
1912 this.forEach(function (element) {
1913 result.push(f(element, result.length));
1914 });
1915
1916 return result;
1917 };
1918}
1919},{}],6:[function(require,module,exports){
1920/* Automatically generated */
1921
1922module.exports = {
1923 version: "0.13.0",
1924 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;}",
1925 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"
1926};
1927
1928},{}],7:[function(require,module,exports){
1929(function(){/* Automatically generated */
1930
1931var hljs = (function() {
1932 var exports = {};
1933 /*
1934Syntax highlighting with language autodetection.
1935https://highlightjs.org/
1936*/
1937
1938(function(factory) {
1939
1940 // Setup highlight.js for different environments. First is Node.js or
1941 // CommonJS.
1942 if(typeof exports !== 'undefined') {
1943 factory(exports);
1944 } else {
1945 // Export hljs globally even when using AMD for cases when this script
1946 // is loaded with others that may still expect a global hljs.
1947 self.hljs = factory({});
1948
1949 // Finally register the global hljs with AMD.
1950 if(typeof define === 'function' && define.amd) {
1951 define('hljs', [], function() {
1952 return self.hljs;
1953 });
1954 }
1955 }
1956
1957}(function(hljs) {
1958
1959 /* Utility functions */
1960
1961 function escape(value) {
1962 return value.replace(/&/gm, '&amp;').replace(/</gm, '&lt;').replace(/>/gm, '&gt;');
1963 }
1964
1965 function tag(node) {
1966 return node.nodeName.toLowerCase();
1967 }
1968
1969 function testRe(re, lexeme) {
1970 var match = re && re.exec(lexeme);
1971 return match && match.index == 0;
1972 }
1973
1974 function isNotHighlighted(language) {
1975 return (/^(no-?highlight|plain|text)$/i).test(language);
1976 }
1977
1978 function blockLanguage(block) {
1979 var i, match, length,
1980 classes = block.className + ' ';
1981
1982 classes += block.parentNode ? block.parentNode.className : '';
1983
1984 // language-* takes precedence over non-prefixed class names
1985 match = (/\blang(?:uage)?-([\w-]+)\b/i).exec(classes);
1986 if (match) {
1987 return getLanguage(match[1]) ? match[1] : 'no-highlight';
1988 }
1989
1990 classes = classes.split(/\s+/);
1991 for (i = 0, length = classes.length; i < length; i++) {
1992 if (getLanguage(classes[i]) || isNotHighlighted(classes[i])) {
1993 return classes[i];
1994 }
1995 }
1996 }
1997
1998 function inherit(parent, obj) {
1999 var result = {}, key;
2000 for (key in parent)
2001 result[key] = parent[key];
2002 if (obj)
2003 for (key in obj)
2004 result[key] = obj[key];
2005 return result;
2006 }
2007
2008 /* Stream merging */
2009
2010 function nodeStream(node) {
2011 var result = [];
2012 (function _nodeStream(node, offset) {
2013 for (var child = node.firstChild; child; child = child.nextSibling) {
2014 if (child.nodeType == 3)
2015 offset += child.nodeValue.length;
2016 else if (child.nodeType == 1) {
2017 result.push({
2018 event: 'start',
2019 offset: offset,
2020 node: child
2021 });
2022 offset = _nodeStream(child, offset);
2023 // Prevent void elements from having an end tag that would actually
2024 // double them in the output. There are more void elements in HTML
2025 // but we list only those realistically expected in code display.
2026 if (!tag(child).match(/br|hr|img|input/)) {
2027 result.push({
2028 event: 'stop',
2029 offset: offset,
2030 node: child
2031 });
2032 }
2033 }
2034 }
2035 return offset;
2036 })(node, 0);
2037 return result;
2038 }
2039
2040 function mergeStreams(original, highlighted, value) {
2041 var processed = 0;
2042 var result = '';
2043 var nodeStack = [];
2044
2045 function selectStream() {
2046 if (!original.length || !highlighted.length) {
2047 return original.length ? original : highlighted;
2048 }
2049 if (original[0].offset != highlighted[0].offset) {
2050 return (original[0].offset < highlighted[0].offset) ? original : highlighted;
2051 }
2052
2053 /*
2054 To avoid starting the stream just before it should stop the order is
2055 ensured that original always starts first and closes last:
2056
2057 if (event1 == 'start' && event2 == 'start')
2058 return original;
2059 if (event1 == 'start' && event2 == 'stop')
2060 return highlighted;
2061 if (event1 == 'stop' && event2 == 'start')
2062 return original;
2063 if (event1 == 'stop' && event2 == 'stop')
2064 return highlighted;
2065
2066 ... which is collapsed to:
2067 */
2068 return highlighted[0].event == 'start' ? original : highlighted;
2069 }
2070
2071 function open(node) {
2072 function attr_str(a) {return ' ' + a.nodeName + '="' + escape(a.value) + '"';}
2073 result += '<' + tag(node) + Array.prototype.map.call(node.attributes, attr_str).join('') + '>';
2074 }
2075
2076 function close(node) {
2077 result += '</' + tag(node) + '>';
2078 }
2079
2080 function render(event) {
2081 (event.event == 'start' ? open : close)(event.node);
2082 }
2083
2084 while (original.length || highlighted.length) {
2085 var stream = selectStream();
2086 result += escape(value.substr(processed, stream[0].offset - processed));
2087 processed = stream[0].offset;
2088 if (stream == original) {
2089 /*
2090 On any opening or closing tag of the original markup we first close
2091 the entire highlighted node stack, then render the original tag along
2092 with all the following original tags at the same offset and then
2093 reopen all the tags on the highlighted stack.
2094 */
2095 nodeStack.reverse().forEach(close);
2096 do {
2097 render(stream.splice(0, 1)[0]);
2098 stream = selectStream();
2099 } while (stream == original && stream.length && stream[0].offset == processed);
2100 nodeStack.reverse().forEach(open);
2101 } else {
2102 if (stream[0].event == 'start') {
2103 nodeStack.push(stream[0].node);
2104 } else {
2105 nodeStack.pop();
2106 }
2107 render(stream.splice(0, 1)[0]);
2108 }
2109 }
2110 return result + escape(value.substr(processed));
2111 }
2112
2113 /* Initialization */
2114
2115 function compileLanguage(language) {
2116
2117 function reStr(re) {
2118 return (re && re.source) || re;
2119 }
2120
2121 function langRe(value, global) {
2122 return new RegExp(
2123 reStr(value),
2124 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '')
2125 );
2126 }
2127
2128 function compileMode(mode, parent) {
2129 if (mode.compiled)
2130 return;
2131 mode.compiled = true;
2132
2133 mode.keywords = mode.keywords || mode.beginKeywords;
2134 if (mode.keywords) {
2135 var compiled_keywords = {};
2136
2137 var flatten = function(className, str) {
2138 if (language.case_insensitive) {
2139 str = str.toLowerCase();
2140 }
2141 str.split(' ').forEach(function(kw) {
2142 var pair = kw.split('|');
2143 compiled_keywords[pair[0]] = [className, pair[1] ? Number(pair[1]) : 1];
2144 });
2145 };
2146
2147 if (typeof mode.keywords == 'string') { // string
2148 flatten('keyword', mode.keywords);
2149 } else {
2150 Object.keys(mode.keywords).forEach(function (className) {
2151 flatten(className, mode.keywords[className]);
2152 });
2153 }
2154 mode.keywords = compiled_keywords;
2155 }
2156 mode.lexemesRe = langRe(mode.lexemes || /\b\w+\b/, true);
2157
2158 if (parent) {
2159 if (mode.beginKeywords) {
2160 mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')\\b';
2161 }
2162 if (!mode.begin)
2163 mode.begin = /\B|\b/;
2164 mode.beginRe = langRe(mode.begin);
2165 if (!mode.end && !mode.endsWithParent)
2166 mode.end = /\B|\b/;
2167 if (mode.end)
2168 mode.endRe = langRe(mode.end);
2169 mode.terminator_end = reStr(mode.end) || '';
2170 if (mode.endsWithParent && parent.terminator_end)
2171 mode.terminator_end += (mode.end ? '|' : '') + parent.terminator_end;
2172 }
2173 if (mode.illegal)
2174 mode.illegalRe = langRe(mode.illegal);
2175 if (mode.relevance === undefined)
2176 mode.relevance = 1;
2177 if (!mode.contains) {
2178 mode.contains = [];
2179 }
2180 var expanded_contains = [];
2181 mode.contains.forEach(function(c) {
2182 if (c.variants) {
2183 c.variants.forEach(function(v) {expanded_contains.push(inherit(c, v));});
2184 } else {
2185 expanded_contains.push(c == 'self' ? mode : c);
2186 }
2187 });
2188 mode.contains = expanded_contains;
2189 mode.contains.forEach(function(c) {compileMode(c, mode);});
2190
2191 if (mode.starts) {
2192 compileMode(mode.starts, parent);
2193 }
2194
2195 var terminators =
2196 mode.contains.map(function(c) {
2197 return c.beginKeywords ? '\\.?(' + c.begin + ')\\.?' : c.begin;
2198 })
2199 .concat([mode.terminator_end, mode.illegal])
2200 .map(reStr)
2201 .filter(Boolean);
2202 mode.terminators = terminators.length ? langRe(terminators.join('|'), true) : {exec: function(/*s*/) {return null;}};
2203 }
2204
2205 compileMode(language);
2206 }
2207
2208 /*
2209 Core highlighting function. Accepts a language name, or an alias, and a
2210 string with the code to highlight. Returns an object with the following
2211 properties:
2212
2213 - relevance (int)
2214 - value (an HTML string with highlighting markup)
2215
2216 */
2217 function highlight(name, value, ignore_illegals, continuation) {
2218
2219 function subMode(lexeme, mode) {
2220 for (var i = 0; i < mode.contains.length; i++) {
2221 if (testRe(mode.contains[i].beginRe, lexeme)) {
2222 return mode.contains[i];
2223 }
2224 }
2225 }
2226
2227 function endOfMode(mode, lexeme) {
2228 if (testRe(mode.endRe, lexeme)) {
2229 while (mode.endsParent && mode.parent) {
2230 mode = mode.parent;
2231 }
2232 return mode;
2233 }
2234 if (mode.endsWithParent) {
2235 return endOfMode(mode.parent, lexeme);
2236 }
2237 }
2238
2239 function isIllegal(lexeme, mode) {
2240 return !ignore_illegals && testRe(mode.illegalRe, lexeme);
2241 }
2242
2243 function keywordMatch(mode, match) {
2244 var match_str = language.case_insensitive ? match[0].toLowerCase() : match[0];
2245 return mode.keywords.hasOwnProperty(match_str) && mode.keywords[match_str];
2246 }
2247
2248 function buildSpan(classname, insideSpan, leaveOpen, noPrefix) {
2249 var classPrefix = noPrefix ? '' : options.classPrefix,
2250 openSpan = '<span class="' + classPrefix,
2251 closeSpan = leaveOpen ? '' : '</span>';
2252
2253 openSpan += classname + '">';
2254
2255 return openSpan + insideSpan + closeSpan;
2256 }
2257
2258 function processKeywords() {
2259 if (!top.keywords)
2260 return escape(mode_buffer);
2261 var result = '';
2262 var last_index = 0;
2263 top.lexemesRe.lastIndex = 0;
2264 var match = top.lexemesRe.exec(mode_buffer);
2265 while (match) {
2266 result += escape(mode_buffer.substr(last_index, match.index - last_index));
2267 var keyword_match = keywordMatch(top, match);
2268 if (keyword_match) {
2269 relevance += keyword_match[1];
2270 result += buildSpan(keyword_match[0], escape(match[0]));
2271 } else {
2272 result += escape(match[0]);
2273 }
2274 last_index = top.lexemesRe.lastIndex;
2275 match = top.lexemesRe.exec(mode_buffer);
2276 }
2277 return result + escape(mode_buffer.substr(last_index));
2278 }
2279
2280 function processSubLanguage() {
2281 var explicit = typeof top.subLanguage == 'string';
2282 if (explicit && !languages[top.subLanguage]) {
2283 return escape(mode_buffer);
2284 }
2285
2286 var result = explicit ?
2287 highlight(top.subLanguage, mode_buffer, true, continuations[top.subLanguage]) :
2288 highlightAuto(mode_buffer, top.subLanguage.length ? top.subLanguage : undefined);
2289
2290 // Counting embedded language score towards the host language may be disabled
2291 // with zeroing the containing mode relevance. Usecase in point is Markdown that
2292 // allows XML everywhere and makes every XML snippet to have a much larger Markdown
2293 // score.
2294 if (top.relevance > 0) {
2295 relevance += result.relevance;
2296 }
2297 if (explicit) {
2298 continuations[top.subLanguage] = result.top;
2299 }
2300 return buildSpan(result.language, result.value, false, true);
2301 }
2302
2303 function processBuffer() {
2304 return top.subLanguage !== undefined ? processSubLanguage() : processKeywords();
2305 }
2306
2307 function startNewMode(mode, lexeme) {
2308 var markup = mode.className? buildSpan(mode.className, '', true): '';
2309 if (mode.returnBegin) {
2310 result += markup;
2311 mode_buffer = '';
2312 } else if (mode.excludeBegin) {
2313 result += escape(lexeme) + markup;
2314 mode_buffer = '';
2315 } else {
2316 result += markup;
2317 mode_buffer = lexeme;
2318 }
2319 top = Object.create(mode, {parent: {value: top}});
2320 }
2321
2322 function processLexeme(buffer, lexeme) {
2323
2324 mode_buffer += buffer;
2325 if (lexeme === undefined) {
2326 result += processBuffer();
2327 return 0;
2328 }
2329
2330 var new_mode = subMode(lexeme, top);
2331 if (new_mode) {
2332 result += processBuffer();
2333 startNewMode(new_mode, lexeme);
2334 return new_mode.returnBegin ? 0 : lexeme.length;
2335 }
2336
2337 var end_mode = endOfMode(top, lexeme);
2338 if (end_mode) {
2339 var origin = top;
2340 if (!(origin.returnEnd || origin.excludeEnd)) {
2341 mode_buffer += lexeme;
2342 }
2343 result += processBuffer();
2344 do {
2345 if (top.className) {
2346 result += '</span>';
2347 }
2348 relevance += top.relevance;
2349 top = top.parent;
2350 } while (top != end_mode.parent);
2351 if (origin.excludeEnd) {
2352 result += escape(lexeme);
2353 }
2354 mode_buffer = '';
2355 if (end_mode.starts) {
2356 startNewMode(end_mode.starts, '');
2357 }
2358 return origin.returnEnd ? 0 : lexeme.length;
2359 }
2360
2361 if (isIllegal(lexeme, top))
2362 throw new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.className || '<unnamed>') + '"');
2363
2364 /*
2365 Parser should not reach this point as all types of lexemes should be caught
2366 earlier, but if it does due to some bug make sure it advances at least one
2367 character forward to prevent infinite looping.
2368 */
2369 mode_buffer += lexeme;
2370 return lexeme.length || 1;
2371 }
2372
2373 var language = getLanguage(name);
2374 if (!language) {
2375 throw new Error('Unknown language: "' + name + '"');
2376 }
2377
2378 compileLanguage(language);
2379 var top = continuation || language;
2380 var continuations = {}; // keep continuations for sub-languages
2381 var result = '', current;
2382 for(current = top; current != language; current = current.parent) {
2383 if (current.className) {
2384 result = buildSpan(current.className, '', true) + result;
2385 }
2386 }
2387 var mode_buffer = '';
2388 var relevance = 0;
2389 try {
2390 var match, count, index = 0;
2391 while (true) {
2392 top.terminators.lastIndex = index;
2393 match = top.terminators.exec(value);
2394 if (!match)
2395 break;
2396 count = processLexeme(value.substr(index, match.index - index), match[0]);
2397 index = match.index + count;
2398 }
2399 processLexeme(value.substr(index));
2400 for(current = top; current.parent; current = current.parent) { // close dangling modes
2401 if (current.className) {
2402 result += '</span>';
2403 }
2404 }
2405 return {
2406 relevance: relevance,
2407 value: result,
2408 language: name,
2409 top: top
2410 };
2411 } catch (e) {
2412 if (e.message.indexOf('Illegal') != -1) {
2413 return {
2414 relevance: 0,
2415 value: escape(value)
2416 };
2417 } else {
2418 throw e;
2419 }
2420 }
2421 }
2422
2423 /*
2424 Highlighting with language detection. Accepts a string with the code to
2425 highlight. Returns an object with the following properties:
2426
2427 - language (detected language)
2428 - relevance (int)
2429 - value (an HTML string with highlighting markup)
2430 - second_best (object with the same structure for second-best heuristically
2431 detected language, may be absent)
2432
2433 */
2434 function highlightAuto(text, languageSubset) {
2435 languageSubset = languageSubset || options.languages || Object.keys(languages);
2436 var result = {
2437 relevance: 0,
2438 value: escape(text)
2439 };
2440 var second_best = result;
2441 languageSubset.forEach(function(name) {
2442 if (!getLanguage(name)) {
2443 return;
2444 }
2445 var current = highlight(name, text, false);
2446 current.language = name;
2447 if (current.relevance > second_best.relevance) {
2448 second_best = current;
2449 }
2450 if (current.relevance > result.relevance) {
2451 second_best = result;
2452 result = current;
2453 }
2454 });
2455 if (second_best.language) {
2456 result.second_best = second_best;
2457 }
2458 return result;
2459 }
2460
2461 /*
2462 Post-processing of the highlighted markup:
2463
2464 - replace TABs with something more useful
2465 - replace real line-breaks with '<br>' for non-pre containers
2466
2467 */
2468 function fixMarkup(value) {
2469 if (options.tabReplace) {
2470 value = value.replace(/^((<[^>]+>|\t)+)/gm, function(match, p1 /*..., offset, s*/) {
2471 return p1.replace(/\t/g, options.tabReplace);
2472 });
2473 }
2474 if (options.useBR) {
2475 value = value.replace(/\n/g, '<br>');
2476 }
2477 return value;
2478 }
2479
2480 function buildClassName(prevClassName, currentLang, resultLang) {
2481 var language = currentLang ? aliases[currentLang] : resultLang,
2482 result = [prevClassName.trim()];
2483
2484 if (!prevClassName.match(/\bhljs\b/)) {
2485 result.push('hljs');
2486 }
2487
2488 if (prevClassName.indexOf(language) === -1) {
2489 result.push(language);
2490 }
2491
2492 return result.join(' ').trim();
2493 }
2494
2495 /*
2496 Applies highlighting to a DOM node containing code. Accepts a DOM node and
2497 two optional parameters for fixMarkup.
2498 */
2499 function highlightBlock(block) {
2500 var language = blockLanguage(block);
2501 if (isNotHighlighted(language))
2502 return;
2503
2504 var node;
2505 if (options.useBR) {
2506 node = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
2507 node.innerHTML = block.innerHTML.replace(/\n/g, '').replace(/<br[ \/]*>/g, '\n');
2508 } else {
2509 node = block;
2510 }
2511 var text = node.textContent;
2512 var result = language ? highlight(language, text, true) : highlightAuto(text);
2513
2514 var originalStream = nodeStream(node);
2515 if (originalStream.length) {
2516 var resultNode = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
2517 resultNode.innerHTML = result.value;
2518 result.value = mergeStreams(originalStream, nodeStream(resultNode), text);
2519 }
2520 result.value = fixMarkup(result.value);
2521
2522 block.innerHTML = result.value;
2523 block.className = buildClassName(block.className, language, result.language);
2524 block.result = {
2525 language: result.language,
2526 re: result.relevance
2527 };
2528 if (result.second_best) {
2529 block.second_best = {
2530 language: result.second_best.language,
2531 re: result.second_best.relevance
2532 };
2533 }
2534 }
2535
2536 var options = {
2537 classPrefix: 'hljs-',
2538 tabReplace: null,
2539 useBR: false,
2540 languages: undefined
2541 };
2542
2543 /*
2544 Updates highlight.js global options with values passed in the form of an object
2545 */
2546 function configure(user_options) {
2547 options = inherit(options, user_options);
2548 }
2549
2550 /*
2551 Applies highlighting to all <pre><code>..</code></pre> blocks on a page.
2552 */
2553 function initHighlighting() {
2554 if (initHighlighting.called)
2555 return;
2556 initHighlighting.called = true;
2557
2558 var blocks = document.querySelectorAll('pre code');
2559 Array.prototype.forEach.call(blocks, highlightBlock);
2560 }
2561
2562 /*
2563 Attaches highlighting to the page load event.
2564 */
2565 function initHighlightingOnLoad() {
2566 addEventListener('DOMContentLoaded', initHighlighting, false);
2567 addEventListener('load', initHighlighting, false);
2568 }
2569
2570 var languages = {};
2571 var aliases = {};
2572
2573 function registerLanguage(name, language) {
2574 var lang = languages[name] = language(hljs);
2575 if (lang.aliases) {
2576 lang.aliases.forEach(function(alias) {aliases[alias] = name;});
2577 }
2578 }
2579
2580 function listLanguages() {
2581 return Object.keys(languages);
2582 }
2583
2584 function getLanguage(name) {
2585 name = (name || '').toLowerCase();
2586 return languages[name] || languages[aliases[name]];
2587 }
2588
2589 /* Interface definition */
2590
2591 hljs.highlight = highlight;
2592 hljs.highlightAuto = highlightAuto;
2593 hljs.fixMarkup = fixMarkup;
2594 hljs.highlightBlock = highlightBlock;
2595 hljs.configure = configure;
2596 hljs.initHighlighting = initHighlighting;
2597 hljs.initHighlightingOnLoad = initHighlightingOnLoad;
2598 hljs.registerLanguage = registerLanguage;
2599 hljs.listLanguages = listLanguages;
2600 hljs.getLanguage = getLanguage;
2601 hljs.inherit = inherit;
2602
2603 // Common regexps
2604 hljs.IDENT_RE = '[a-zA-Z]\\w*';
2605 hljs.UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*';
2606 hljs.NUMBER_RE = '\\b\\d+(\\.\\d+)?';
2607 hljs.C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float
2608 hljs.BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b...
2609 hljs.RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
2610
2611 // Common modes
2612 hljs.BACKSLASH_ESCAPE = {
2613 begin: '\\\\[\\s\\S]', relevance: 0
2614 };
2615 hljs.APOS_STRING_MODE = {
2616 className: 'string',
2617 begin: '\'', end: '\'',
2618 illegal: '\\n',
2619 contains: [hljs.BACKSLASH_ESCAPE]
2620 };
2621 hljs.QUOTE_STRING_MODE = {
2622 className: 'string',
2623 begin: '"', end: '"',
2624 illegal: '\\n',
2625 contains: [hljs.BACKSLASH_ESCAPE]
2626 };
2627 hljs.PHRASAL_WORDS_MODE = {
2628 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/
2629 };
2630 hljs.COMMENT = function (begin, end, inherits) {
2631 var mode = hljs.inherit(
2632 {
2633 className: 'comment',
2634 begin: begin, end: end,
2635 contains: []
2636 },
2637 inherits || {}
2638 );
2639 mode.contains.push(hljs.PHRASAL_WORDS_MODE);
2640 mode.contains.push({
2641 className: 'doctag',
2642 begin: "(?:TODO|FIXME|NOTE|BUG|XXX):",
2643 relevance: 0
2644 });
2645 return mode;
2646 };
2647 hljs.C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$');
2648 hljs.C_BLOCK_COMMENT_MODE = hljs.COMMENT('/\\*', '\\*/');
2649 hljs.HASH_COMMENT_MODE = hljs.COMMENT('#', '$');
2650 hljs.NUMBER_MODE = {
2651 className: 'number',
2652 begin: hljs.NUMBER_RE,
2653 relevance: 0
2654 };
2655 hljs.C_NUMBER_MODE = {
2656 className: 'number',
2657 begin: hljs.C_NUMBER_RE,
2658 relevance: 0
2659 };
2660 hljs.BINARY_NUMBER_MODE = {
2661 className: 'number',
2662 begin: hljs.BINARY_NUMBER_RE,
2663 relevance: 0
2664 };
2665 hljs.CSS_NUMBER_MODE = {
2666 className: 'number',
2667 begin: hljs.NUMBER_RE + '(' +
2668 '%|em|ex|ch|rem' +
2669 '|vw|vh|vmin|vmax' +
2670 '|cm|mm|in|pt|pc|px' +
2671 '|deg|grad|rad|turn' +
2672 '|s|ms' +
2673 '|Hz|kHz' +
2674 '|dpi|dpcm|dppx' +
2675 ')?',
2676 relevance: 0
2677 };
2678 hljs.REGEXP_MODE = {
2679 className: 'regexp',
2680 begin: /\//, end: /\/[gimuy]*/,
2681 illegal: /\n/,
2682 contains: [
2683 hljs.BACKSLASH_ESCAPE,
2684 {
2685 begin: /\[/, end: /\]/,
2686 relevance: 0,
2687 contains: [hljs.BACKSLASH_ESCAPE]
2688 }
2689 ]
2690 };
2691 hljs.TITLE_MODE = {
2692 className: 'title',
2693 begin: hljs.IDENT_RE,
2694 relevance: 0
2695 };
2696 hljs.UNDERSCORE_TITLE_MODE = {
2697 className: 'title',
2698 begin: hljs.UNDERSCORE_IDENT_RE,
2699 relevance: 0
2700 };
2701
2702 return hljs;
2703}));
2704;
2705 return exports;
2706 }())
2707 , languages = [{name:"1c",create:/*
2708Language: 1C
2709Author: Yuri Ivanov <ivanov@supersoft.ru>
2710Contributors: Sergey Baranov <segyrn@yandex.ru>
2711Category: enterprise
2712*/
2713
2714function(hljs){
2715 var IDENT_RE_RU = '[a-zA-Zะฐ-ัะ-ะฏ][a-zA-Z0-9_ะฐ-ัะ-ะฏ]*';
2716 var OneS_KEYWORDS = 'ะฒะพะทะฒั€ะฐั‚ ะดะฐั‚ะฐ ะดะปั ะตัะปะธ ะธ ะธะปะธ ะธะฝะฐั‡ะต ะธะฝะฐั‡ะตะตัะปะธ ะธัะบะปัŽั‡ะตะฝะธะต ะบะพะฝะตั†ะตัะปะธ ' +
2717 'ะบะพะฝะตั†ะฟะพะฟั‹ั‚ะบะธ ะบะพะฝะตั†ะฟั€ะพั†ะตะดัƒั€ั‹ ะบะพะฝะตั†ั„ัƒะฝะบั†ะธะธ ะบะพะฝะตั†ั†ะธะบะปะฐ ะบะพะฝัั‚ะฐะฝั‚ะฐ ะฝะต ะฟะตั€ะตะนั‚ะธ ะฟะตั€ะตะผ ' +
2718 'ะฟะตั€ะตั‡ะธัะปะตะฝะธะต ะฟะพ ะฟะพะบะฐ ะฟะพะฟั‹ั‚ะบะฐ ะฟั€ะตั€ะฒะฐั‚ัŒ ะฟั€ะพะดะพะปะถะธั‚ัŒ ะฟั€ะพั†ะตะดัƒั€ะฐ ัั‚ั€ะพะบะฐ ั‚ะพะณะดะฐ ั„ั ั„ัƒะฝะบั†ะธั ั†ะธะบะป ' +
2719 'ั‡ะธัะปะพ ัะบัะฟะพั€ั‚';
2720 var OneS_BUILT_IN = 'ansitooem oemtoansi ะฒะฒะตัั‚ะธะฒะธะดััƒะฑะบะพะฝั‚ะพ ะฒะฒะตัั‚ะธะดะฐั‚ัƒ ะฒะฒะตัั‚ะธะทะฝะฐั‡ะตะฝะธะต ' +
2721 'ะฒะฒะตัั‚ะธะฟะตั€ะตั‡ะธัะปะตะฝะธะต ะฒะฒะตัั‚ะธะฟะตั€ะธะพะด ะฒะฒะตัั‚ะธะฟะปะฐะฝัั‡ะตั‚ะพะฒ ะฒะฒะตัั‚ะธัั‚ั€ะพะบัƒ ะฒะฒะตัั‚ะธั‡ะธัะปะพ ะฒะพะฟั€ะพั ' +
2722 'ะฒะพััั‚ะฐะฝะพะฒะธั‚ัŒะทะฝะฐั‡ะตะฝะธะต ะฒั€ะตะณ ะฒั‹ะฑั€ะฐะฝะฝั‹ะนะฟะปะฐะฝัั‡ะตั‚ะพะฒ ะฒั‹ะทะฒะฐั‚ัŒะธัะบะปัŽั‡ะตะฝะธะต ะดะฐั‚ะฐะณะพะด ะดะฐั‚ะฐะผะตััั† ' +
2723 'ะดะฐั‚ะฐั‡ะธัะปะพ ะดะพะฑะฐะฒะธั‚ัŒะผะตััั† ะทะฐะฒะตั€ัˆะธั‚ัŒั€ะฐะฑะพั‚ัƒัะธัั‚ะตะผั‹ ะทะฐะณะพะปะพะฒะพะบัะธัั‚ะตะผั‹ ะทะฐะฟะธััŒะถัƒั€ะฝะฐะปะฐั€ะตะณะธัั‚ั€ะฐั†ะธะธ ' +
2724 'ะทะฐะฟัƒัั‚ะธั‚ัŒะฟั€ะธะปะพะถะตะฝะธะต ะทะฐั„ะธะบัะธั€ะพะฒะฐั‚ัŒั‚ั€ะฐะฝะทะฐะบั†ะธัŽ ะทะฝะฐั‡ะตะฝะธะตะฒัั‚ั€ะพะบัƒ ะทะฝะฐั‡ะตะฝะธะตะฒัั‚ั€ะพะบัƒะฒะฝัƒั‚ั€ ' +
2725 'ะทะฝะฐั‡ะตะฝะธะตะฒั„ะฐะนะป ะทะฝะฐั‡ะตะฝะธะตะธะทัั‚ั€ะพะบะธ ะทะฝะฐั‡ะตะฝะธะตะธะทัั‚ั€ะพะบะธะฒะฝัƒั‚ั€ ะทะฝะฐั‡ะตะฝะธะตะธะทั„ะฐะนะปะฐ ะธะผัะบะพะผะฟัŒัŽั‚ะตั€ะฐ ' +
2726 'ะธะผัะฟะพะปัŒะทะพะฒะฐั‚ะตะปั ะบะฐั‚ะฐะปะพะณะฒั€ะตะผะตะฝะฝั‹ั…ั„ะฐะนะปะพะฒ ะบะฐั‚ะฐะปะพะณะธะฑ ะบะฐั‚ะฐะปะพะณะฟะพะปัŒะทะพะฒะฐั‚ะตะปั ะบะฐั‚ะฐะปะพะณะฟั€ะพะณั€ะฐะผะผั‹ ' +
2727 'ะบะพะดัะธะผะฒ ะบะพะผะฐะฝะดะฐัะธัั‚ะตะผั‹ ะบะพะฝะณะพะดะฐ ะบะพะฝะตั†ะฟะตั€ะธะพะดะฐะฑะธ ะบะพะฝะตั†ั€ะฐััั‡ะธั‚ะฐะฝะฝะพะณะพะฟะตั€ะธะพะดะฐะฑะธ ' +
2728 'ะบะพะฝะตั†ัั‚ะฐะฝะดะฐั€ั‚ะฝะพะณะพะธะฝั‚ะตั€ะฒะฐะปะฐ ะบะพะฝะบะฒะฐั€ั‚ะฐะปะฐ ะบะพะฝะผะตััั†ะฐ ะบะพะฝะฝะตะดะตะปะธ ะปะตะฒ ะปะพะณ ะปะพะณ10 ะผะฐะบั ' +
2729 'ะผะฐะบัะธะผะฐะปัŒะฝะพะตะบะพะปะธั‡ะตัั‚ะฒะพััƒะฑะบะพะฝั‚ะพ ะผะธะฝ ะผะพะฝะพะฟะพะปัŒะฝั‹ะนั€ะตะถะธะผ ะฝะฐะทะฒะฐะฝะธะตะธะฝั‚ะตั€ั„ะตะนัะฐ ะฝะฐะทะฒะฐะฝะธะตะฝะฐะฑะพั€ะฐะฟั€ะฐะฒ ' +
2730 'ะฝะฐะทะฝะฐั‡ะธั‚ัŒะฒะธะด ะฝะฐะทะฝะฐั‡ะธั‚ัŒัั‡ะตั‚ ะฝะฐะนั‚ะธ ะฝะฐะนั‚ะธะฟะพะผะตั‡ะตะฝะฝั‹ะตะฝะฐัƒะดะฐะปะตะฝะธะต ะฝะฐะนั‚ะธััั‹ะปะบะธ ะฝะฐั‡ะฐะปะพะฟะตั€ะธะพะดะฐะฑะธ ' +
2731 'ะฝะฐั‡ะฐะปะพัั‚ะฐะฝะดะฐั€ั‚ะฝะพะณะพะธะฝั‚ะตั€ะฒะฐะปะฐ ะฝะฐั‡ะฐั‚ัŒั‚ั€ะฐะฝะทะฐะบั†ะธัŽ ะฝะฐั‡ะณะพะดะฐ ะฝะฐั‡ะบะฒะฐั€ั‚ะฐะปะฐ ะฝะฐั‡ะผะตััั†ะฐ ะฝะฐั‡ะฝะตะดะตะปะธ ' +
2732 'ะฝะพะผะตั€ะดะฝัะณะพะดะฐ ะฝะพะผะตั€ะดะฝัะฝะตะดะตะปะธ ะฝะพะผะตั€ะฝะตะดะตะปะธะณะพะดะฐ ะฝั€ะตะณ ะพะฑั€ะฐะฑะพั‚ะบะฐะพะถะธะดะฐะฝะธั ะพะบั€ ะพะฟะธัะฐะฝะธะตะพัˆะธะฑะบะธ ' +
2733 'ะพัะฝะพะฒะฝะพะนะถัƒั€ะฝะฐะปั€ะฐัั‡ะตั‚ะพะฒ ะพัะฝะพะฒะฝะพะนะฟะปะฐะฝัั‡ะตั‚ะพะฒ ะพัะฝะพะฒะฝะพะนัะทั‹ะบ ะพั‚ะบั€ั‹ั‚ัŒั„ะพั€ะผัƒ ะพั‚ะบั€ั‹ั‚ัŒั„ะพั€ะผัƒะผะพะดะฐะปัŒะฝะพ ' +
2734 'ะพั‚ะผะตะฝะธั‚ัŒั‚ั€ะฐะฝะทะฐะบั†ะธัŽ ะพั‡ะธัั‚ะธั‚ัŒะพะบะฝะพัะพะพะฑั‰ะตะฝะธะน ะฟะตั€ะธะพะดัั‚ั€ ะฟะพะปะฝะพะตะธะผัะฟะพะปัŒะทะพะฒะฐั‚ะตะปั ะฟะพะปัƒั‡ะธั‚ัŒะฒั€ะตะผัั‚ะฐ ' +
2735 'ะฟะพะปัƒั‡ะธั‚ัŒะดะฐั‚ัƒั‚ะฐ ะฟะพะปัƒั‡ะธั‚ัŒะดะพะบัƒะผะตะฝั‚ั‚ะฐ ะฟะพะปัƒั‡ะธั‚ัŒะทะฝะฐั‡ะตะฝะธัะพั‚ะฑะพั€ะฐ ะฟะพะปัƒั‡ะธั‚ัŒะฟะพะทะธั†ะธัŽั‚ะฐ ' +
2736 'ะฟะพะปัƒั‡ะธั‚ัŒะฟัƒัั‚ะพะตะทะฝะฐั‡ะตะฝะธะต ะฟะพะปัƒั‡ะธั‚ัŒั‚ะฐ ะฟั€ะฐะฒ ะฟั€ะฐะฒะพะดะพัั‚ัƒะฟะฐ ะฟั€ะตะดัƒะฟั€ะตะถะดะตะฝะธะต ะฟั€ะตั„ะธะบัะฐะฒั‚ะพะฝัƒะผะตั€ะฐั†ะธะธ ' +
2737 'ะฟัƒัั‚ะฐััั‚ั€ะพะบะฐ ะฟัƒัั‚ะพะตะทะฝะฐั‡ะตะฝะธะต ั€ะฐะฑะพั‡ะฐัะดะฐั‚ั‚ัŒะฟัƒัั‚ะพะตะทะฝะฐั‡ะตะฝะธะต ั€ะฐะฑะพั‡ะฐัะดะฐั‚ะฐ ั€ะฐะทะดะตะปะธั‚ะตะปัŒัั‚ั€ะฐะฝะธั† ' +
2738 'ั€ะฐะทะดะตะปะธั‚ะตะปัŒัั‚ั€ะพะบ ั€ะฐะทะผ ั€ะฐะทะพะฑั€ะฐั‚ัŒะฟะพะทะธั†ะธัŽะดะพะบัƒะผะตะฝั‚ะฐ ั€ะฐััั‡ะธั‚ะฐั‚ัŒั€ะตะณะธัั‚ั€ั‹ะฝะฐ ' +
2739 'ั€ะฐััั‡ะธั‚ะฐั‚ัŒั€ะตะณะธัั‚ั€ั‹ะฟะพ ัะธะณะฝะฐะป ัะธะผะฒ ัะธะผะฒะพะปั‚ะฐะฑัƒะปัั†ะธะธ ัะพะทะดะฐั‚ัŒะพะฑัŠะตะบั‚ ัะพะบั€ะป ัะพะบั€ะปะฟ ัะพะบั€ะฟ ' +
2740 'ัะพะพะฑั‰ะธั‚ัŒ ัะพัั‚ะพัะฝะธะต ัะพั…ั€ะฐะฝะธั‚ัŒะทะฝะฐั‡ะตะฝะธะต ัั€ะตะด ัั‚ะฐั‚ัƒัะฒะพะทะฒั€ะฐั‚ะฐ ัั‚ั€ะดะปะธะฝะฐ ัั‚ั€ะทะฐะผะตะฝะธั‚ัŒ ' +
2741 'ัั‚ั€ะบะพะปะธั‡ะตัั‚ะฒะพัั‚ั€ะพะบ ัั‚ั€ะฟะพะปัƒั‡ะธั‚ัŒัั‚ั€ะพะบัƒ ัั‚ั€ั‡ะธัะปะพะฒั…ะพะถะดะตะฝะธะน ัั„ะพั€ะผะธั€ะพะฒะฐั‚ัŒะฟะพะทะธั†ะธัŽะดะพะบัƒะผะตะฝั‚ะฐ ' +
2742 'ัั‡ะตั‚ะฟะพะบะพะดัƒ ั‚ะตะบัƒั‰ะฐัะดะฐั‚ะฐ ั‚ะตะบัƒั‰ะตะตะฒั€ะตะผั ั‚ะธะฟะทะฝะฐั‡ะตะฝะธั ั‚ะธะฟะทะฝะฐั‡ะตะฝะธััั‚ั€ ัƒะดะฐะปะธั‚ัŒะพะฑัŠะตะบั‚ั‹ ' +
2743 'ัƒัั‚ะฐะฝะพะฒะธั‚ัŒั‚ะฐะฝะฐ ัƒัั‚ะฐะฝะพะฒะธั‚ัŒั‚ะฐะฟะพ ั„ะธะบััˆะฐะฑะปะพะฝ ั„ะพั€ะผะฐั‚ ั†ะตะป ัˆะฐะฑะปะพะฝ';
2744 var DQUOTE = {begin: '""'};
2745 var STR_START = {
2746 className: 'string',
2747 begin: '"', end: '"|$',
2748 contains: [DQUOTE]
2749 };
2750 var STR_CONT = {
2751 className: 'string',
2752 begin: '\\|', end: '"|$',
2753 contains: [DQUOTE]
2754 };
2755
2756 return {
2757 case_insensitive: true,
2758 lexemes: IDENT_RE_RU,
2759 keywords: {keyword: OneS_KEYWORDS, built_in: OneS_BUILT_IN},
2760 contains: [
2761 hljs.C_LINE_COMMENT_MODE,
2762 hljs.NUMBER_MODE,
2763 STR_START, STR_CONT,
2764 {
2765 className: 'function',
2766 begin: '(ะฟั€ะพั†ะตะดัƒั€ะฐ|ั„ัƒะฝะบั†ะธั)', end: '$',
2767 lexemes: IDENT_RE_RU,
2768 keywords: 'ะฟั€ะพั†ะตะดัƒั€ะฐ ั„ัƒะฝะบั†ะธั',
2769 contains: [
2770 {
2771 begin: 'ัะบัะฟะพั€ั‚', endsWithParent: true,
2772 lexemes: IDENT_RE_RU,
2773 keywords: 'ัะบัะฟะพั€ั‚',
2774 contains: [hljs.C_LINE_COMMENT_MODE]
2775 },
2776 {
2777 className: 'params',
2778 begin: '\\(', end: '\\)',
2779 lexemes: IDENT_RE_RU,
2780 keywords: 'ะทะฝะฐั‡',
2781 contains: [STR_START, STR_CONT]
2782 },
2783 hljs.C_LINE_COMMENT_MODE,
2784 hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE_RU})
2785 ]
2786 },
2787 {className: 'meta', begin: '#', end: '$'},
2788 {className: 'number', begin: '\'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})\''} // date
2789 ]
2790 };
2791}
2792},{name:"accesslog",create:/*
2793 Language: Access log
2794 Author: Oleg Efimov <efimovov@gmail.com>
2795 Description: Apache/Nginx Access Logs
2796 */
2797
2798function(hljs) {
2799 return {
2800 contains: [
2801 // IP
2802 {
2803 className: 'number',
2804 begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b'
2805 },
2806 // Other numbers
2807 {
2808 className: 'number',
2809 begin: '\\b\\d+\\b',
2810 relevance: 0
2811 },
2812 // Requests
2813 {
2814 className: 'string',
2815 begin: '"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)', end: '"',
2816 keywords: 'GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE',
2817 illegal: '\\n',
2818 relevance: 10
2819 },
2820 // Dates
2821 {
2822 className: 'string',
2823 begin: /\[/, end: /\]/,
2824 illegal: '\\n'
2825 },
2826 // Strings
2827 {
2828 className: 'string',
2829 begin: '"', end: '"',
2830 illegal: '\\n'
2831 }
2832 ]
2833 };
2834}
2835},{name:"actionscript",create:/*
2836Language: ActionScript
2837Author: Alexander Myadzel <myadzel@gmail.com>
2838Category: scripting
2839*/
2840
2841function(hljs) {
2842 var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*';
2843 var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)';
2844
2845 var AS3_REST_ARG_MODE = {
2846 className: 'rest_arg',
2847 begin: '[.]{3}', end: IDENT_RE,
2848 relevance: 10
2849 };
2850
2851 return {
2852 aliases: ['as'],
2853 keywords: {
2854 keyword: 'as break case catch class const continue default delete do dynamic each ' +
2855 'else extends final finally for function get if implements import in include ' +
2856 'instanceof interface internal is namespace native new override package private ' +
2857 'protected public return set static super switch this throw try typeof use var void ' +
2858 'while with',
2859 literal: 'true false null undefined'
2860 },
2861 contains: [
2862 hljs.APOS_STRING_MODE,
2863 hljs.QUOTE_STRING_MODE,
2864 hljs.C_LINE_COMMENT_MODE,
2865 hljs.C_BLOCK_COMMENT_MODE,
2866 hljs.C_NUMBER_MODE,
2867 {
2868 className: 'class',
2869 beginKeywords: 'package', end: '{',
2870 contains: [hljs.TITLE_MODE]
2871 },
2872 {
2873 className: 'class',
2874 beginKeywords: 'class interface', end: '{', excludeEnd: true,
2875 contains: [
2876 {
2877 beginKeywords: 'extends implements'
2878 },
2879 hljs.TITLE_MODE
2880 ]
2881 },
2882 {
2883 className: 'meta',
2884 beginKeywords: 'import include', end: ';',
2885 keywords: {'meta-keyword': 'import include'}
2886 },
2887 {
2888 className: 'function',
2889 beginKeywords: 'function', end: '[{;]', excludeEnd: true,
2890 illegal: '\\S',
2891 contains: [
2892 hljs.TITLE_MODE,
2893 {
2894 className: 'params',
2895 begin: '\\(', end: '\\)',
2896 contains: [
2897 hljs.APOS_STRING_MODE,
2898 hljs.QUOTE_STRING_MODE,
2899 hljs.C_LINE_COMMENT_MODE,
2900 hljs.C_BLOCK_COMMENT_MODE,
2901 AS3_REST_ARG_MODE
2902 ]
2903 },
2904 {
2905 begin: ':\\s*' + IDENT_FUNC_RETURN_TYPE_RE
2906 }
2907 ]
2908 }
2909 ],
2910 illegal: /#/
2911 };
2912}
2913},{name:"apache",create:/*
2914Language: Apache
2915Author: Ruslan Keba <rukeba@gmail.com>
2916Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
2917Website: http://rukeba.com/
2918Description: language definition for Apache configuration files (httpd.conf & .htaccess)
2919Category: common, config
2920*/
2921
2922function(hljs) {
2923 var NUMBER = {className: 'number', begin: '[\\$%]\\d+'};
2924 return {
2925 aliases: ['apacheconf'],
2926 case_insensitive: true,
2927 contains: [
2928 hljs.HASH_COMMENT_MODE,
2929 {className: 'section', begin: '</?', end: '>'},
2930 {
2931 className: 'attribute',
2932 begin: /\w+/,
2933 relevance: 0,
2934 // keywords arenโ€™t needed for highlighting per se, they only boost relevance
2935 // for a very generally defined mode (starts with a word, ends with line-end
2936 keywords: {
2937 nomarkup:
2938 'order deny allow setenv rewriterule rewriteengine rewritecond documentroot ' +
2939 'sethandler errordocument loadmodule options header listen serverroot ' +
2940 'servername'
2941 },
2942 starts: {
2943 end: /$/,
2944 relevance: 0,
2945 keywords: {
2946 literal: 'on off all'
2947 },
2948 contains: [
2949 {
2950 className: 'meta',
2951 begin: '\\s\\[', end: '\\]$'
2952 },
2953 {
2954 className: 'variable',
2955 begin: '[\\$%]\\{', end: '\\}',
2956 contains: ['self', NUMBER]
2957 },
2958 NUMBER,
2959 hljs.QUOTE_STRING_MODE
2960 ]
2961 }
2962 }
2963 ],
2964 illegal: /\S/
2965 };
2966}
2967},{name:"applescript",create:/*
2968Language: AppleScript
2969Authors: Nathan Grigg <nathan@nathanamy.org>, Dr. Drang <drdrang@gmail.com>
2970Category: scripting
2971*/
2972
2973function(hljs) {
2974 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: ''});
2975 var PARAMS = {
2976 className: 'params',
2977 begin: '\\(', end: '\\)',
2978 contains: ['self', hljs.C_NUMBER_MODE, STRING]
2979 };
2980 var COMMENT_MODE_1 = hljs.COMMENT('--', '$');
2981 var COMMENT_MODE_2 = hljs.COMMENT(
2982 '\\(\\*',
2983 '\\*\\)',
2984 {
2985 contains: ['self', COMMENT_MODE_1] //allow nesting
2986 }
2987 );
2988 var COMMENTS = [
2989 COMMENT_MODE_1,
2990 COMMENT_MODE_2,
2991 hljs.HASH_COMMENT_MODE
2992 ];
2993
2994 return {
2995 aliases: ['osascript'],
2996 keywords: {
2997 keyword:
2998 'about above after against and around as at back before beginning ' +
2999 'behind below beneath beside between but by considering ' +
3000 'contain contains continue copy div does eighth else end equal ' +
3001 'equals error every exit fifth first for fourth from front ' +
3002 'get given global if ignoring in into is it its last local me ' +
3003 'middle mod my ninth not of on onto or over prop property put ref ' +
3004 'reference repeat returning script second set seventh since ' +
3005 'sixth some tell tenth that the|0 then third through thru ' +
3006 'timeout times to transaction try until where while whose with ' +
3007 'without',
3008 literal:
3009 'AppleScript false linefeed return pi quote result space tab true',
3010 built_in:
3011 'alias application boolean class constant date file integer list ' +
3012 'number real record string text ' +
3013 'activate beep count delay launch log offset read round ' +
3014 'run say summarize write ' +
3015 'character characters contents day frontmost id item length ' +
3016 'month name paragraph paragraphs rest reverse running time version ' +
3017 'weekday word words year'
3018 },
3019 contains: [
3020 STRING,
3021 hljs.C_NUMBER_MODE,
3022 {
3023 className: 'built_in',
3024 begin:
3025 '\\b(clipboard info|the clipboard|info for|list (disks|folder)|' +
3026 'mount volume|path to|(close|open for) access|(get|set) eof|' +
3027 'current date|do shell script|get volume settings|random number|' +
3028 'set volume|system attribute|system info|time to GMT|' +
3029 '(load|run|store) script|scripting components|' +
3030 'ASCII (character|number)|localized string|' +
3031 'choose (application|color|file|file name|' +
3032 'folder|from list|remote application|URL)|' +
3033 'display (alert|dialog))\\b|^\\s*return\\b'
3034 },
3035 {
3036 className: 'literal',
3037 begin:
3038 '\\b(text item delimiters|current application|missing value)\\b'
3039 },
3040 {
3041 className: 'keyword',
3042 begin:
3043 '\\b(apart from|aside from|instead of|out of|greater than|' +
3044 "isn't|(doesn't|does not) (equal|come before|come after|contain)|" +
3045 '(greater|less) than( or equal)?|(starts?|ends|begins?) with|' +
3046 'contained by|comes (before|after)|a (ref|reference)|POSIX file|' +
3047 'POSIX path|(date|time) string|quoted form)\\b'
3048 },
3049 {
3050 beginKeywords: 'on',
3051 illegal: '[${=;\\n]',
3052 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
3053 }
3054 ].concat(COMMENTS),
3055 illegal: '//|->|=>|\\[\\['
3056 };
3057}
3058},{name:"armasm",create:/*
3059Language: ARM Assembly
3060Author: Dan Panzarella <alsoelp@gmail.com>
3061Description: ARM Assembly including Thumb and Thumb2 instructions
3062Category: assembler
3063*/
3064
3065function(hljs) {
3066 //local labels: %?[FB]?[AT]?\d{1,2}\w+
3067 return {
3068 case_insensitive: true,
3069 aliases: ['arm'],
3070 lexemes: '\\.?' + hljs.IDENT_RE,
3071 keywords: {
3072 meta:
3073 //GNU preprocs
3074 '.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 '+
3075 //ARM directives
3076 '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 ',
3077 built_in:
3078 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 '+ //standard registers
3079 'pc lr sp ip sl sb fp '+ //typical regs plus backward compatibility
3080 'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 '+ //more regs and fp
3081 'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 '+ //coprocessor regs
3082 'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 '+ //more coproc
3083 'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 '+ //advanced SIMD NEON regs
3084
3085 //program status registers
3086 'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf '+
3087 'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf '+
3088
3089 //NEON and VFP registers
3090 's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 '+
3091 's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 '+
3092 'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 '+
3093 'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ' +
3094
3095 '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @'
3096 },
3097 contains: [
3098 {
3099 className: 'keyword',
3100 begin: '\\b('+ //mnemonics
3101 'adc|'+
3102 '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|'+
3103 'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|'+
3104 'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|'+
3105 'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|'+
3106 'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|'+
3107 'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|'+
3108 'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|'+
3109 'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|'+
3110 'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|'+
3111 'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|'+
3112 '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|'+
3113 'wfe|wfi|yield'+
3114 ')'+
3115 '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?'+ //condition codes
3116 '[sptrx]?' , //legal postfixes
3117 end: '\\s'
3118 },
3119 hljs.COMMENT('[;@]', '$', {relevance: 0}),
3120 hljs.C_BLOCK_COMMENT_MODE,
3121 hljs.QUOTE_STRING_MODE,
3122 {
3123 className: 'string',
3124 begin: '\'',
3125 end: '[^\\\\]\'',
3126 relevance: 0
3127 },
3128 {
3129 className: 'title',
3130 begin: '\\|', end: '\\|',
3131 illegal: '\\n',
3132 relevance: 0
3133 },
3134 {
3135 className: 'number',
3136 variants: [
3137 {begin: '[#$=]?0x[0-9a-f]+'}, //hex
3138 {begin: '[#$=]?0b[01]+'}, //bin
3139 {begin: '[#$=]\\d+'}, //literal
3140 {begin: '\\b\\d+'} //bare number
3141 ],
3142 relevance: 0
3143 },
3144 {
3145 className: 'symbol',
3146 variants: [
3147 {begin: '^[a-z_\\.\\$][a-z0-9_\\.\\$]+'}, //ARM syntax
3148 {begin: '^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:'}, //GNU ARM syntax
3149 {begin: '[=#]\\w+' } //label reference
3150 ],
3151 relevance: 0
3152 }
3153 ]
3154 };
3155}
3156},{name:"asciidoc",create:/*
3157Language: AsciiDoc
3158Requires: xml.js
3159Author: Dan Allen <dan.j.allen@gmail.com>
3160Website: http://google.com/profiles/dan.j.allen
3161Description: A semantic, text-based document format that can be exported to HTML, DocBook and other backends.
3162Category: markup
3163*/
3164
3165function(hljs) {
3166 return {
3167 aliases: ['adoc'],
3168 contains: [
3169 // block comment
3170 hljs.COMMENT(
3171 '^/{4,}\\n',
3172 '\\n/{4,}$',
3173 // can also be done as...
3174 //'^/{4,}$',
3175 //'^/{4,}$',
3176 {
3177 relevance: 10
3178 }
3179 ),
3180 // line comment
3181 hljs.COMMENT(
3182 '^//',
3183 '$',
3184 {
3185 relevance: 0
3186 }
3187 ),
3188 // title
3189 {
3190 className: 'title',
3191 begin: '^\\.\\w.*$'
3192 },
3193 // example, admonition & sidebar blocks
3194 {
3195 begin: '^[=\\*]{4,}\\n',
3196 end: '\\n^[=\\*]{4,}$',
3197 relevance: 10
3198 },
3199 // headings
3200 {
3201 className: 'section',
3202 relevance: 10,
3203 variants: [
3204 {begin: '^(={1,5}) .+?( \\1)?$'},
3205 {begin: '^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$'},
3206 ]
3207 },
3208 // document attributes
3209 {
3210 className: 'meta',
3211 begin: '^:.+?:',
3212 end: '\\s',
3213 excludeEnd: true,
3214 relevance: 10
3215 },
3216 // block attributes
3217 {
3218 className: 'meta',
3219 begin: '^\\[.+?\\]$',
3220 relevance: 0
3221 },
3222 // quoteblocks
3223 {
3224 className: 'quote',
3225 begin: '^_{4,}\\n',
3226 end: '\\n_{4,}$',
3227 relevance: 10
3228 },
3229 // listing and literal blocks
3230 {
3231 className: 'code',
3232 begin: '^[\\-\\.]{4,}\\n',
3233 end: '\\n[\\-\\.]{4,}$',
3234 relevance: 10
3235 },
3236 // passthrough blocks
3237 {
3238 begin: '^\\+{4,}\\n',
3239 end: '\\n\\+{4,}$',
3240 contains: [
3241 {
3242 begin: '<', end: '>',
3243 subLanguage: 'xml',
3244 relevance: 0
3245 }
3246 ],
3247 relevance: 10
3248 },
3249 // lists (can only capture indicators)
3250 {
3251 className: 'bullet',
3252 begin: '^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+'
3253 },
3254 // admonition
3255 {
3256 className: 'symbol',
3257 begin: '^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+',
3258 relevance: 10
3259 },
3260 // inline strong
3261 {
3262 className: 'strong',
3263 // must not follow a word character or be followed by an asterisk or space
3264 begin: '\\B\\*(?![\\*\\s])',
3265 end: '(\\n{2}|\\*)',
3266 // allow escaped asterisk followed by word char
3267 contains: [
3268 {
3269 begin: '\\\\*\\w',
3270 relevance: 0
3271 }
3272 ]
3273 },
3274 // inline emphasis
3275 {
3276 className: 'emphasis',
3277 // must not follow a word character or be followed by a single quote or space
3278 begin: '\\B\'(?![\'\\s])',
3279 end: '(\\n{2}|\')',
3280 // allow escaped single quote followed by word char
3281 contains: [
3282 {
3283 begin: '\\\\\'\\w',
3284 relevance: 0
3285 }
3286 ],
3287 relevance: 0
3288 },
3289 // inline emphasis (alt)
3290 {
3291 className: 'emphasis',
3292 // must not follow a word character or be followed by an underline or space
3293 begin: '_(?![_\\s])',
3294 end: '(\\n{2}|_)',
3295 relevance: 0
3296 },
3297 // inline smart quotes
3298 {
3299 className: 'string',
3300 variants: [
3301 {begin: "``.+?''"},
3302 {begin: "`.+?'"}
3303 ]
3304 },
3305 // inline code snippets (TODO should get same treatment as strong and emphasis)
3306 {
3307 className: 'code',
3308 begin: '(`.+?`|\\+.+?\\+)',
3309 relevance: 0
3310 },
3311 // indented literal block
3312 {
3313 className: 'code',
3314 begin: '^[ \\t]',
3315 end: '$',
3316 relevance: 0
3317 },
3318 // horizontal rules
3319 {
3320 begin: '^\'{3,}[ \\t]*$',
3321 relevance: 10
3322 },
3323 // images and links
3324 {
3325 begin: '(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]',
3326 returnBegin: true,
3327 contains: [
3328 {
3329 begin: '(link|image:?):',
3330 relevance: 0
3331 },
3332 {
3333 className: 'link',
3334 begin: '\\w',
3335 end: '[^\\[]+',
3336 relevance: 0
3337 },
3338 {
3339 className: 'string',
3340 begin: '\\[',
3341 end: '\\]',
3342 excludeBegin: true,
3343 excludeEnd: true,
3344 relevance: 0
3345 }
3346 ],
3347 relevance: 10
3348 }
3349 ]
3350 };
3351}
3352},{name:"aspectj",create:/*
3353Language: AspectJ
3354Author: Hakan Ozler <ozler.hakan@gmail.com>
3355Description: Syntax Highlighting for the AspectJ Language which is a general-purpose aspect-oriented extension to the Java programming language.
3356 */
3357function (hljs) {
3358 var KEYWORDS =
3359 'false synchronized int abstract float private char boolean static null if const ' +
3360 'for true while long throw strictfp finally protected import native final return void ' +
3361 'enum else extends implements break transient new catch instanceof byte super volatile case ' +
3362 'assert short package default double public try this switch continue throws privileged ' +
3363 'aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization ' +
3364 'staticinitialization withincode target within execution getWithinTypeName handler ' +
3365 'thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents '+
3366 'warning error soft precedence thisAspectInstance';
3367 var SHORTKEYS = 'get set args call';
3368 return {
3369 keywords : KEYWORDS,
3370 illegal : /<\/|#/,
3371 contains : [
3372 hljs.COMMENT(
3373 '/\\*\\*',
3374 '\\*/',
3375 {
3376 relevance : 0,
3377 contains : [
3378 {
3379 // eat up @'s in emails to prevent them to be recognized as doctags
3380 begin: /\w+@/, relevance: 0
3381 },
3382 {
3383 className : 'doctag',
3384 begin : '@[A-Za-z]+'
3385 }
3386 ]
3387 }
3388 ),
3389 hljs.C_LINE_COMMENT_MODE,
3390 hljs.C_BLOCK_COMMENT_MODE,
3391 hljs.APOS_STRING_MODE,
3392 hljs.QUOTE_STRING_MODE,
3393 {
3394 className : 'class',
3395 beginKeywords : 'aspect',
3396 end : /[{;=]/,
3397 excludeEnd : true,
3398 illegal : /[:;"\[\]]/,
3399 contains : [
3400 {
3401 beginKeywords : 'extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton'
3402 },
3403 hljs.UNDERSCORE_TITLE_MODE,
3404 {
3405 begin : /\([^\)]*/,
3406 end : /[)]+/,
3407 keywords : KEYWORDS + ' ' + SHORTKEYS,
3408 excludeEnd : false
3409 }
3410 ]
3411 },
3412 {
3413 className : 'class',
3414 beginKeywords : 'class interface',
3415 end : /[{;=]/,
3416 excludeEnd : true,
3417 relevance: 0,
3418 keywords : 'class interface',
3419 illegal : /[:"\[\]]/,
3420 contains : [
3421 {beginKeywords : 'extends implements'},
3422 hljs.UNDERSCORE_TITLE_MODE
3423 ]
3424 },
3425 {
3426 // AspectJ Constructs
3427 beginKeywords : 'pointcut after before around throwing returning',
3428 end : /[)]/,
3429 excludeEnd : false,
3430 illegal : /["\[\]]/,
3431 contains : [
3432 {
3433 begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
3434 returnBegin : true,
3435 contains : [hljs.UNDERSCORE_TITLE_MODE]
3436 }
3437 ]
3438 },
3439 {
3440 begin : /[:]/,
3441 returnBegin : true,
3442 end : /[{;]/,
3443 relevance: 0,
3444 excludeEnd : false,
3445 keywords : KEYWORDS,
3446 illegal : /["\[\]]/,
3447 contains : [
3448 {
3449 begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
3450 keywords : KEYWORDS + ' ' + SHORTKEYS
3451 },
3452 hljs.QUOTE_STRING_MODE
3453 ]
3454 },
3455 {
3456 // this prevents 'new Name(...), or throw ...' from being recognized as a function definition
3457 beginKeywords : 'new throw',
3458 relevance : 0
3459 },
3460 {
3461 // the function class is a bit different for AspectJ compared to the Java language
3462 className : 'function',
3463 begin : /\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,
3464 returnBegin : true,
3465 end : /[{;=]/,
3466 keywords : KEYWORDS,
3467 excludeEnd : true,
3468 contains : [
3469 {
3470 begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
3471 returnBegin : true,
3472 relevance: 0,
3473 contains : [hljs.UNDERSCORE_TITLE_MODE]
3474 },
3475 {
3476 className : 'params',
3477 begin : /\(/, end : /\)/,
3478 relevance: 0,
3479 keywords : KEYWORDS,
3480 contains : [
3481 hljs.APOS_STRING_MODE,
3482 hljs.QUOTE_STRING_MODE,
3483 hljs.C_NUMBER_MODE,
3484 hljs.C_BLOCK_COMMENT_MODE
3485 ]
3486 },
3487 hljs.C_LINE_COMMENT_MODE,
3488 hljs.C_BLOCK_COMMENT_MODE
3489 ]
3490 },
3491 hljs.C_NUMBER_MODE,
3492 {
3493 // annotation is also used in this language
3494 className : 'meta',
3495 begin : '@[A-Za-z]+'
3496 }
3497 ]
3498 };
3499}
3500},{name:"autohotkey",create:/*
3501Language: AutoHotkey
3502Author: Seongwon Lee <dlimpid@gmail.com>
3503Description: AutoHotkey language definition
3504Category: scripting
3505*/
3506
3507function(hljs) {
3508 var BACKTICK_ESCAPE = {
3509 begin: /`[\s\S]/
3510 };
3511
3512 return {
3513 case_insensitive: true,
3514 keywords: {
3515 keyword: 'Break Continue Else Gosub If Loop Return While',
3516 literal: 'A true false NOT AND OR',
3517 built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel',
3518 },
3519 contains: [
3520 {
3521 className: 'built_in',
3522 begin: 'A_[a-zA-Z0-9]+'
3523 },
3524 BACKTICK_ESCAPE,
3525 hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [BACKTICK_ESCAPE]}),
3526 hljs.COMMENT(';', '$', {relevance: 0}),
3527 {
3528 className: 'number',
3529 begin: hljs.NUMBER_RE,
3530 relevance: 0
3531 },
3532 {
3533 className: 'variable', // FIXME
3534 begin: '%', end: '%',
3535 illegal: '\\n',
3536 contains: [BACKTICK_ESCAPE]
3537 },
3538 {
3539 className: 'symbol',
3540 contains: [BACKTICK_ESCAPE],
3541 variants: [
3542 {begin: '^[^\\n";]+::(?!=)'},
3543 {begin: '^[^\\n";]+:(?!=)', relevance: 0} // zero relevance as it catches a lot of things
3544 // followed by a single ':' in many languages
3545 ]
3546 },
3547 {
3548 // consecutive commas, not for highlighting but just for relevance
3549 begin: ',\\s*,'
3550 }
3551 ]
3552 }
3553}
3554},{name:"autoit",create:/*
3555Language: AutoIt
3556Author: Manh Tuan <junookyo@gmail.com>
3557Description: AutoIt language definition
3558Category: scripting
3559*/
3560
3561function(hljs) {
3562 var KEYWORDS = 'ByRef Case Const ContinueCase ContinueLoop ' +
3563 'Default Dim Do Else ElseIf EndFunc EndIf EndSelect ' +
3564 'EndSwitch EndWith Enum Exit ExitLoop For Func ' +
3565 'Global If In Local Next ReDim Return Select Static ' +
3566 'Step Switch Then To Until Volatile WEnd While With',
3567
3568 LITERAL = 'True False And Null Not Or',
3569
3570 BUILT_IN = 'Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin ' +
3571 'Assign ATan AutoItSetOption AutoItWinGetTitle ' +
3572 'AutoItWinSetTitle Beep Binary BinaryLen BinaryMid ' +
3573 'BinaryToString BitAND BitNOT BitOR BitRotate BitShift ' +
3574 'BitXOR BlockInput Break Call CDTray Ceiling Chr ' +
3575 'ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ' +
3576 'ConsoleWriteError ControlClick ControlCommand ' +
3577 'ControlDisable ControlEnable ControlFocus ControlGetFocus ' +
3578 'ControlGetHandle ControlGetPos ControlGetText ControlHide ' +
3579 'ControlListView ControlMove ControlSend ControlSetText ' +
3580 'ControlShow ControlTreeView Cos Dec DirCopy DirCreate ' +
3581 'DirGetSize DirMove DirRemove DllCall DllCallAddress ' +
3582 'DllCallbackFree DllCallbackGetPtr DllCallbackRegister ' +
3583 'DllClose DllOpen DllStructCreate DllStructGetData ' +
3584 'DllStructGetPtr DllStructGetSize DllStructSetData ' +
3585 'DriveGetDrive DriveGetFileSystem DriveGetLabel ' +
3586 'DriveGetSerial DriveGetType DriveMapAdd DriveMapDel ' +
3587 'DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal ' +
3588 'DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp ' +
3589 'FileChangeDir FileClose FileCopy FileCreateNTFSLink ' +
3590 'FileCreateShortcut FileDelete FileExists FileFindFirstFile ' +
3591 'FileFindNextFile FileFlush FileGetAttrib FileGetEncoding ' +
3592 'FileGetLongName FileGetPos FileGetShortcut FileGetShortName ' +
3593 'FileGetSize FileGetTime FileGetVersion FileInstall ' +
3594 'FileMove FileOpen FileOpenDialog FileRead FileReadLine ' +
3595 'FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog ' +
3596 'FileSelectFolder FileSetAttrib FileSetEnd FileSetPos ' +
3597 'FileSetTime FileWrite FileWriteLine Floor FtpSetProxy ' +
3598 'FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton ' +
3599 'GUICtrlCreateCheckbox GUICtrlCreateCombo ' +
3600 'GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy ' +
3601 'GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup ' +
3602 'GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel ' +
3603 'GUICtrlCreateList GUICtrlCreateListView ' +
3604 'GUICtrlCreateListViewItem GUICtrlCreateMenu ' +
3605 'GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj ' +
3606 'GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio ' +
3607 'GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem ' +
3608 'GUICtrlCreateTreeView GUICtrlCreateTreeViewItem ' +
3609 'GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle ' +
3610 'GUICtrlGetState GUICtrlRead GUICtrlRecvMsg ' +
3611 'GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy ' +
3612 'GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor ' +
3613 'GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor ' +
3614 'GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage ' +
3615 'GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos ' +
3616 'GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle ' +
3617 'GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg ' +
3618 'GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor ' +
3619 'GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon ' +
3620 'GUISetOnEvent GUISetState GUISetStyle GUIStartGroup ' +
3621 'GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent ' +
3622 'HWnd InetClose InetGet InetGetInfo InetGetSize InetRead ' +
3623 'IniDelete IniRead IniReadSection IniReadSectionNames ' +
3624 'IniRenameSection IniWrite IniWriteSection InputBox Int ' +
3625 'IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct ' +
3626 'IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj ' +
3627 'IsPtr IsString Log MemGetStats Mod MouseClick ' +
3628 'MouseClickDrag MouseDown MouseGetCursor MouseGetPos ' +
3629 'MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ' +
3630 'ObjCreateInterface ObjEvent ObjGet ObjName ' +
3631 'OnAutoItExitRegister OnAutoItExitUnRegister Opt Ping ' +
3632 'PixelChecksum PixelGetColor PixelSearch ProcessClose ' +
3633 'ProcessExists ProcessGetStats ProcessList ' +
3634 'ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ' +
3635 'ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey ' +
3636 'RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait ' +
3637 'RunWait Send SendKeepActive SetError SetExtended ' +
3638 'ShellExecute ShellExecuteWait Shutdown Sin Sleep ' +
3639 'SoundPlay SoundSetWaveVolume SplashImageOn SplashOff ' +
3640 'SplashTextOn Sqrt SRandom StatusbarGetText StderrRead ' +
3641 'StdinWrite StdioClose StdoutRead String StringAddCR ' +
3642 'StringCompare StringFormat StringFromASCIIArray StringInStr ' +
3643 'StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit ' +
3644 'StringIsFloat StringIsInt StringIsLower StringIsSpace ' +
3645 'StringIsUpper StringIsXDigit StringLeft StringLen ' +
3646 'StringLower StringMid StringRegExp StringRegExpReplace ' +
3647 'StringReplace StringReverse StringRight StringSplit ' +
3648 'StringStripCR StringStripWS StringToASCIIArray ' +
3649 'StringToBinary StringTrimLeft StringTrimRight StringUpper ' +
3650 'Tan TCPAccept TCPCloseSocket TCPConnect TCPListen ' +
3651 'TCPNameToIP TCPRecv TCPSend TCPShutdown TCPStartup ' +
3652 'TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu ' +
3653 'TrayGetMsg TrayItemDelete TrayItemGetHandle ' +
3654 'TrayItemGetState TrayItemGetText TrayItemSetOnEvent ' +
3655 'TrayItemSetState TrayItemSetText TraySetClick TraySetIcon ' +
3656 'TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip ' +
3657 'TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv ' +
3658 'UDPSend UDPShutdown UDPStartup VarGetType WinActivate ' +
3659 'WinActive WinClose WinExists WinFlash WinGetCaretPos ' +
3660 'WinGetClassList WinGetClientSize WinGetHandle WinGetPos ' +
3661 'WinGetProcess WinGetState WinGetText WinGetTitle WinKill ' +
3662 'WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo ' +
3663 'WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans ' +
3664 'WinWait WinWaitActive WinWaitClose WinWaitNotActive ' +
3665 'Array1DToHistogram ArrayAdd ArrayBinarySearch ' +
3666 'ArrayColDelete ArrayColInsert ArrayCombinations ' +
3667 'ArrayConcatenate ArrayDelete ArrayDisplay ArrayExtract ' +
3668 'ArrayFindAll ArrayInsert ArrayMax ArrayMaxIndex ArrayMin ' +
3669 'ArrayMinIndex ArrayPermute ArrayPop ArrayPush ' +
3670 'ArrayReverse ArraySearch ArrayShuffle ArraySort ArraySwap ' +
3671 'ArrayToClip ArrayToString ArrayTranspose ArrayTrim ' +
3672 'ArrayUnique Assert ChooseColor ChooseFont ' +
3673 'ClipBoard_ChangeChain ClipBoard_Close ClipBoard_CountFormats ' +
3674 'ClipBoard_Empty ClipBoard_EnumFormats ClipBoard_FormatStr ' +
3675 'ClipBoard_GetData ClipBoard_GetDataEx ClipBoard_GetFormatName ' +
3676 'ClipBoard_GetOpenWindow ClipBoard_GetOwner ' +
3677 'ClipBoard_GetPriorityFormat ClipBoard_GetSequenceNumber ' +
3678 'ClipBoard_GetViewer ClipBoard_IsFormatAvailable ' +
3679 'ClipBoard_Open ClipBoard_RegisterFormat ClipBoard_SetData ' +
3680 'ClipBoard_SetDataEx ClipBoard_SetViewer ClipPutFile ' +
3681 'ColorConvertHSLtoRGB ColorConvertRGBtoHSL ColorGetBlue ' +
3682 'ColorGetCOLORREF ColorGetGreen ColorGetRed ColorGetRGB ' +
3683 'ColorSetCOLORREF ColorSetRGB Crypt_DecryptData ' +
3684 'Crypt_DecryptFile Crypt_DeriveKey Crypt_DestroyKey ' +
3685 'Crypt_EncryptData Crypt_EncryptFile Crypt_GenRandom ' +
3686 'Crypt_HashData Crypt_HashFile Crypt_Shutdown Crypt_Startup ' +
3687 'DateAdd DateDayOfWeek DateDaysInMonth DateDiff ' +
3688 'DateIsLeapYear DateIsValid DateTimeFormat DateTimeSplit ' +
3689 'DateToDayOfWeek DateToDayOfWeekISO DateToDayValue ' +
3690 'DateToMonth Date_Time_CompareFileTime ' +
3691 'Date_Time_DOSDateTimeToArray Date_Time_DOSDateTimeToFileTime ' +
3692 'Date_Time_DOSDateTimeToStr Date_Time_DOSDateToArray ' +
3693 'Date_Time_DOSDateToStr Date_Time_DOSTimeToArray ' +
3694 'Date_Time_DOSTimeToStr Date_Time_EncodeFileTime ' +
3695 'Date_Time_EncodeSystemTime Date_Time_FileTimeToArray ' +
3696 'Date_Time_FileTimeToDOSDateTime ' +
3697 'Date_Time_FileTimeToLocalFileTime Date_Time_FileTimeToStr ' +
3698 'Date_Time_FileTimeToSystemTime Date_Time_GetFileTime ' +
3699 'Date_Time_GetLocalTime Date_Time_GetSystemTime ' +
3700 'Date_Time_GetSystemTimeAdjustment ' +
3701 'Date_Time_GetSystemTimeAsFileTime Date_Time_GetSystemTimes ' +
3702 'Date_Time_GetTickCount Date_Time_GetTimeZoneInformation ' +
3703 'Date_Time_LocalFileTimeToFileTime Date_Time_SetFileTime ' +
3704 'Date_Time_SetLocalTime Date_Time_SetSystemTime ' +
3705 'Date_Time_SetSystemTimeAdjustment ' +
3706 'Date_Time_SetTimeZoneInformation Date_Time_SystemTimeToArray ' +
3707 'Date_Time_SystemTimeToDateStr Date_Time_SystemTimeToDateTimeStr ' +
3708 'Date_Time_SystemTimeToFileTime Date_Time_SystemTimeToTimeStr ' +
3709 'Date_Time_SystemTimeToTzSpecificLocalTime ' +
3710 'Date_Time_TzSpecificLocalTimeToSystemTime DayValueToDate ' +
3711 'DebugBugReportEnv DebugCOMError DebugOut DebugReport ' +
3712 'DebugReportEx DebugReportVar DebugSetup Degree ' +
3713 'EventLog__Backup EventLog__Clear EventLog__Close ' +
3714 'EventLog__Count EventLog__DeregisterSource EventLog__Full ' +
3715 'EventLog__Notify EventLog__Oldest EventLog__Open ' +
3716 'EventLog__OpenBackup EventLog__Read EventLog__RegisterSource ' +
3717 'EventLog__Report Excel_BookAttach Excel_BookClose ' +
3718 'Excel_BookList Excel_BookNew Excel_BookOpen ' +
3719 'Excel_BookOpenText Excel_BookSave Excel_BookSaveAs ' +
3720 'Excel_Close Excel_ColumnToLetter Excel_ColumnToNumber ' +
3721 'Excel_ConvertFormula Excel_Export Excel_FilterGet ' +
3722 'Excel_FilterSet Excel_Open Excel_PictureAdd Excel_Print ' +
3723 'Excel_RangeCopyPaste Excel_RangeDelete Excel_RangeFind ' +
3724 'Excel_RangeInsert Excel_RangeLinkAddRemove Excel_RangeRead ' +
3725 'Excel_RangeReplace Excel_RangeSort Excel_RangeValidate ' +
3726 'Excel_RangeWrite Excel_SheetAdd Excel_SheetCopyMove ' +
3727 'Excel_SheetDelete Excel_SheetList FileCountLines FileCreate ' +
3728 'FileListToArray FileListToArrayRec FilePrint ' +
3729 'FileReadToArray FileWriteFromArray FileWriteLog ' +
3730 'FileWriteToLine FTP_Close FTP_Command FTP_Connect ' +
3731 'FTP_DecodeInternetStatus FTP_DirCreate FTP_DirDelete ' +
3732 'FTP_DirGetCurrent FTP_DirPutContents FTP_DirSetCurrent ' +
3733 'FTP_FileClose FTP_FileDelete FTP_FileGet FTP_FileGetSize ' +
3734 'FTP_FileOpen FTP_FilePut FTP_FileRead FTP_FileRename ' +
3735 'FTP_FileTimeLoHiToStr FTP_FindFileClose FTP_FindFileFirst ' +
3736 'FTP_FindFileNext FTP_GetLastResponseInfo FTP_ListToArray ' +
3737 'FTP_ListToArray2D FTP_ListToArrayEx FTP_Open ' +
3738 'FTP_ProgressDownload FTP_ProgressUpload FTP_SetStatusCallback ' +
3739 'GDIPlus_ArrowCapCreate GDIPlus_ArrowCapDispose ' +
3740 'GDIPlus_ArrowCapGetFillState GDIPlus_ArrowCapGetHeight ' +
3741 'GDIPlus_ArrowCapGetMiddleInset GDIPlus_ArrowCapGetWidth ' +
3742 'GDIPlus_ArrowCapSetFillState GDIPlus_ArrowCapSetHeight ' +
3743 'GDIPlus_ArrowCapSetMiddleInset GDIPlus_ArrowCapSetWidth ' +
3744 'GDIPlus_BitmapApplyEffect GDIPlus_BitmapApplyEffectEx ' +
3745 'GDIPlus_BitmapCloneArea GDIPlus_BitmapConvertFormat ' +
3746 'GDIPlus_BitmapCreateApplyEffect ' +
3747 'GDIPlus_BitmapCreateApplyEffectEx ' +
3748 'GDIPlus_BitmapCreateDIBFromBitmap GDIPlus_BitmapCreateFromFile ' +
3749 'GDIPlus_BitmapCreateFromGraphics ' +
3750 'GDIPlus_BitmapCreateFromHBITMAP GDIPlus_BitmapCreateFromHICON ' +
3751 'GDIPlus_BitmapCreateFromHICON32 GDIPlus_BitmapCreateFromMemory ' +
3752 'GDIPlus_BitmapCreateFromResource GDIPlus_BitmapCreateFromScan0 ' +
3753 'GDIPlus_BitmapCreateFromStream ' +
3754 'GDIPlus_BitmapCreateHBITMAPFromBitmap GDIPlus_BitmapDispose ' +
3755 'GDIPlus_BitmapGetHistogram GDIPlus_BitmapGetHistogramEx ' +
3756 'GDIPlus_BitmapGetHistogramSize GDIPlus_BitmapGetPixel ' +
3757 'GDIPlus_BitmapLockBits GDIPlus_BitmapSetPixel ' +
3758 'GDIPlus_BitmapUnlockBits GDIPlus_BrushClone ' +
3759 'GDIPlus_BrushCreateSolid GDIPlus_BrushDispose ' +
3760 'GDIPlus_BrushGetSolidColor GDIPlus_BrushGetType ' +
3761 'GDIPlus_BrushSetSolidColor GDIPlus_ColorMatrixCreate ' +
3762 'GDIPlus_ColorMatrixCreateGrayScale ' +
3763 'GDIPlus_ColorMatrixCreateNegative ' +
3764 'GDIPlus_ColorMatrixCreateSaturation ' +
3765 'GDIPlus_ColorMatrixCreateScale ' +
3766 'GDIPlus_ColorMatrixCreateTranslate GDIPlus_CustomLineCapClone ' +
3767 'GDIPlus_CustomLineCapCreate GDIPlus_CustomLineCapDispose ' +
3768 'GDIPlus_CustomLineCapGetStrokeCaps ' +
3769 'GDIPlus_CustomLineCapSetStrokeCaps GDIPlus_Decoders ' +
3770 'GDIPlus_DecodersGetCount GDIPlus_DecodersGetSize ' +
3771 'GDIPlus_DrawImageFX GDIPlus_DrawImageFXEx ' +
3772 'GDIPlus_DrawImagePoints GDIPlus_EffectCreate ' +
3773 'GDIPlus_EffectCreateBlur GDIPlus_EffectCreateBrightnessContrast ' +
3774 'GDIPlus_EffectCreateColorBalance GDIPlus_EffectCreateColorCurve ' +
3775 'GDIPlus_EffectCreateColorLUT GDIPlus_EffectCreateColorMatrix ' +
3776 'GDIPlus_EffectCreateHueSaturationLightness ' +
3777 'GDIPlus_EffectCreateLevels GDIPlus_EffectCreateRedEyeCorrection ' +
3778 'GDIPlus_EffectCreateSharpen GDIPlus_EffectCreateTint ' +
3779 'GDIPlus_EffectDispose GDIPlus_EffectGetParameters ' +
3780 'GDIPlus_EffectSetParameters GDIPlus_Encoders ' +
3781 'GDIPlus_EncodersGetCLSID GDIPlus_EncodersGetCount ' +
3782 'GDIPlus_EncodersGetParamList GDIPlus_EncodersGetParamListSize ' +
3783 'GDIPlus_EncodersGetSize GDIPlus_FontCreate ' +
3784 'GDIPlus_FontDispose GDIPlus_FontFamilyCreate ' +
3785 'GDIPlus_FontFamilyCreateFromCollection ' +
3786 'GDIPlus_FontFamilyDispose GDIPlus_FontFamilyGetCellAscent ' +
3787 'GDIPlus_FontFamilyGetCellDescent GDIPlus_FontFamilyGetEmHeight ' +
3788 'GDIPlus_FontFamilyGetLineSpacing GDIPlus_FontGetHeight ' +
3789 'GDIPlus_FontPrivateAddFont GDIPlus_FontPrivateAddMemoryFont ' +
3790 'GDIPlus_FontPrivateCollectionDispose ' +
3791 'GDIPlus_FontPrivateCreateCollection GDIPlus_GraphicsClear ' +
3792 'GDIPlus_GraphicsCreateFromHDC GDIPlus_GraphicsCreateFromHWND ' +
3793 'GDIPlus_GraphicsDispose GDIPlus_GraphicsDrawArc ' +
3794 'GDIPlus_GraphicsDrawBezier GDIPlus_GraphicsDrawClosedCurve ' +
3795 'GDIPlus_GraphicsDrawClosedCurve2 GDIPlus_GraphicsDrawCurve ' +
3796 'GDIPlus_GraphicsDrawCurve2 GDIPlus_GraphicsDrawEllipse ' +
3797 'GDIPlus_GraphicsDrawImage GDIPlus_GraphicsDrawImagePointsRect ' +
3798 'GDIPlus_GraphicsDrawImageRect GDIPlus_GraphicsDrawImageRectRect ' +
3799 'GDIPlus_GraphicsDrawLine GDIPlus_GraphicsDrawPath ' +
3800 'GDIPlus_GraphicsDrawPie GDIPlus_GraphicsDrawPolygon ' +
3801 'GDIPlus_GraphicsDrawRect GDIPlus_GraphicsDrawString ' +
3802 'GDIPlus_GraphicsDrawStringEx GDIPlus_GraphicsFillClosedCurve ' +
3803 'GDIPlus_GraphicsFillClosedCurve2 GDIPlus_GraphicsFillEllipse ' +
3804 'GDIPlus_GraphicsFillPath GDIPlus_GraphicsFillPie ' +
3805 'GDIPlus_GraphicsFillPolygon GDIPlus_GraphicsFillRect ' +
3806 'GDIPlus_GraphicsFillRegion GDIPlus_GraphicsGetCompositingMode ' +
3807 'GDIPlus_GraphicsGetCompositingQuality GDIPlus_GraphicsGetDC ' +
3808 'GDIPlus_GraphicsGetInterpolationMode ' +
3809 'GDIPlus_GraphicsGetSmoothingMode GDIPlus_GraphicsGetTransform ' +
3810 'GDIPlus_GraphicsMeasureCharacterRanges ' +
3811 'GDIPlus_GraphicsMeasureString GDIPlus_GraphicsReleaseDC ' +
3812 'GDIPlus_GraphicsResetClip GDIPlus_GraphicsResetTransform ' +
3813 'GDIPlus_GraphicsRestore GDIPlus_GraphicsRotateTransform ' +
3814 'GDIPlus_GraphicsSave GDIPlus_GraphicsScaleTransform ' +
3815 'GDIPlus_GraphicsSetClipPath GDIPlus_GraphicsSetClipRect ' +
3816 'GDIPlus_GraphicsSetClipRegion ' +
3817 'GDIPlus_GraphicsSetCompositingMode ' +
3818 'GDIPlus_GraphicsSetCompositingQuality ' +
3819 'GDIPlus_GraphicsSetInterpolationMode ' +
3820 'GDIPlus_GraphicsSetPixelOffsetMode ' +
3821 'GDIPlus_GraphicsSetSmoothingMode ' +
3822 'GDIPlus_GraphicsSetTextRenderingHint ' +
3823 'GDIPlus_GraphicsSetTransform GDIPlus_GraphicsTransformPoints ' +
3824 'GDIPlus_GraphicsTranslateTransform GDIPlus_HatchBrushCreate ' +
3825 'GDIPlus_HICONCreateFromBitmap GDIPlus_ImageAttributesCreate ' +
3826 'GDIPlus_ImageAttributesDispose ' +
3827 'GDIPlus_ImageAttributesSetColorKeys ' +
3828 'GDIPlus_ImageAttributesSetColorMatrix GDIPlus_ImageDispose ' +
3829 'GDIPlus_ImageGetDimension GDIPlus_ImageGetFlags ' +
3830 'GDIPlus_ImageGetGraphicsContext GDIPlus_ImageGetHeight ' +
3831 'GDIPlus_ImageGetHorizontalResolution ' +
3832 'GDIPlus_ImageGetPixelFormat GDIPlus_ImageGetRawFormat ' +
3833 'GDIPlus_ImageGetThumbnail GDIPlus_ImageGetType ' +
3834 'GDIPlus_ImageGetVerticalResolution GDIPlus_ImageGetWidth ' +
3835 'GDIPlus_ImageLoadFromFile GDIPlus_ImageLoadFromStream ' +
3836 'GDIPlus_ImageResize GDIPlus_ImageRotateFlip ' +
3837 'GDIPlus_ImageSaveToFile GDIPlus_ImageSaveToFileEx ' +
3838 'GDIPlus_ImageSaveToStream GDIPlus_ImageScale ' +
3839 'GDIPlus_LineBrushCreate GDIPlus_LineBrushCreateFromRect ' +
3840 'GDIPlus_LineBrushCreateFromRectWithAngle ' +
3841 'GDIPlus_LineBrushGetColors GDIPlus_LineBrushGetRect ' +
3842 'GDIPlus_LineBrushMultiplyTransform ' +
3843 'GDIPlus_LineBrushResetTransform GDIPlus_LineBrushSetBlend ' +
3844 'GDIPlus_LineBrushSetColors GDIPlus_LineBrushSetGammaCorrection ' +
3845 'GDIPlus_LineBrushSetLinearBlend GDIPlus_LineBrushSetPresetBlend ' +
3846 'GDIPlus_LineBrushSetSigmaBlend GDIPlus_LineBrushSetTransform ' +
3847 'GDIPlus_MatrixClone GDIPlus_MatrixCreate ' +
3848 'GDIPlus_MatrixDispose GDIPlus_MatrixGetElements ' +
3849 'GDIPlus_MatrixInvert GDIPlus_MatrixMultiply ' +
3850 'GDIPlus_MatrixRotate GDIPlus_MatrixScale ' +
3851 'GDIPlus_MatrixSetElements GDIPlus_MatrixShear ' +
3852 'GDIPlus_MatrixTransformPoints GDIPlus_MatrixTranslate ' +
3853 'GDIPlus_PaletteInitialize GDIPlus_ParamAdd GDIPlus_ParamInit ' +
3854 'GDIPlus_ParamSize GDIPlus_PathAddArc GDIPlus_PathAddBezier ' +
3855 'GDIPlus_PathAddClosedCurve GDIPlus_PathAddClosedCurve2 ' +
3856 'GDIPlus_PathAddCurve GDIPlus_PathAddCurve2 ' +
3857 'GDIPlus_PathAddCurve3 GDIPlus_PathAddEllipse ' +
3858 'GDIPlus_PathAddLine GDIPlus_PathAddLine2 GDIPlus_PathAddPath ' +
3859 'GDIPlus_PathAddPie GDIPlus_PathAddPolygon ' +
3860 'GDIPlus_PathAddRectangle GDIPlus_PathAddString ' +
3861 'GDIPlus_PathBrushCreate GDIPlus_PathBrushCreateFromPath ' +
3862 'GDIPlus_PathBrushGetCenterPoint GDIPlus_PathBrushGetFocusScales ' +
3863 'GDIPlus_PathBrushGetPointCount GDIPlus_PathBrushGetRect ' +
3864 'GDIPlus_PathBrushGetWrapMode GDIPlus_PathBrushMultiplyTransform ' +
3865 'GDIPlus_PathBrushResetTransform GDIPlus_PathBrushSetBlend ' +
3866 'GDIPlus_PathBrushSetCenterColor GDIPlus_PathBrushSetCenterPoint ' +
3867 'GDIPlus_PathBrushSetFocusScales ' +
3868 'GDIPlus_PathBrushSetGammaCorrection ' +
3869 'GDIPlus_PathBrushSetLinearBlend GDIPlus_PathBrushSetPresetBlend ' +
3870 'GDIPlus_PathBrushSetSigmaBlend ' +
3871 'GDIPlus_PathBrushSetSurroundColor ' +
3872 'GDIPlus_PathBrushSetSurroundColorsWithCount ' +
3873 'GDIPlus_PathBrushSetTransform GDIPlus_PathBrushSetWrapMode ' +
3874 'GDIPlus_PathClone GDIPlus_PathCloseFigure GDIPlus_PathCreate ' +
3875 'GDIPlus_PathCreate2 GDIPlus_PathDispose GDIPlus_PathFlatten ' +
3876 'GDIPlus_PathGetData GDIPlus_PathGetFillMode ' +
3877 'GDIPlus_PathGetLastPoint GDIPlus_PathGetPointCount ' +
3878 'GDIPlus_PathGetPoints GDIPlus_PathGetWorldBounds ' +
3879 'GDIPlus_PathIsOutlineVisiblePoint GDIPlus_PathIsVisiblePoint ' +
3880 'GDIPlus_PathIterCreate GDIPlus_PathIterDispose ' +
3881 'GDIPlus_PathIterGetSubpathCount GDIPlus_PathIterNextMarkerPath ' +
3882 'GDIPlus_PathIterNextSubpathPath GDIPlus_PathIterRewind ' +
3883 'GDIPlus_PathReset GDIPlus_PathReverse GDIPlus_PathSetFillMode ' +
3884 'GDIPlus_PathSetMarker GDIPlus_PathStartFigure ' +
3885 'GDIPlus_PathTransform GDIPlus_PathWarp GDIPlus_PathWiden ' +
3886 'GDIPlus_PathWindingModeOutline GDIPlus_PenCreate ' +
3887 'GDIPlus_PenCreate2 GDIPlus_PenDispose GDIPlus_PenGetAlignment ' +
3888 'GDIPlus_PenGetColor GDIPlus_PenGetCustomEndCap ' +
3889 'GDIPlus_PenGetDashCap GDIPlus_PenGetDashStyle ' +
3890 'GDIPlus_PenGetEndCap GDIPlus_PenGetMiterLimit ' +
3891 'GDIPlus_PenGetWidth GDIPlus_PenSetAlignment ' +
3892 'GDIPlus_PenSetColor GDIPlus_PenSetCustomEndCap ' +
3893 'GDIPlus_PenSetDashCap GDIPlus_PenSetDashStyle ' +
3894 'GDIPlus_PenSetEndCap GDIPlus_PenSetLineCap ' +
3895 'GDIPlus_PenSetLineJoin GDIPlus_PenSetMiterLimit ' +
3896 'GDIPlus_PenSetStartCap GDIPlus_PenSetWidth ' +
3897 'GDIPlus_RectFCreate GDIPlus_RegionClone ' +
3898 'GDIPlus_RegionCombinePath GDIPlus_RegionCombineRect ' +
3899 'GDIPlus_RegionCombineRegion GDIPlus_RegionCreate ' +
3900 'GDIPlus_RegionCreateFromPath GDIPlus_RegionCreateFromRect ' +
3901 'GDIPlus_RegionDispose GDIPlus_RegionGetBounds ' +
3902 'GDIPlus_RegionGetHRgn GDIPlus_RegionTransform ' +
3903 'GDIPlus_RegionTranslate GDIPlus_Shutdown GDIPlus_Startup ' +
3904 'GDIPlus_StringFormatCreate GDIPlus_StringFormatDispose ' +
3905 'GDIPlus_StringFormatGetMeasurableCharacterRangeCount ' +
3906 'GDIPlus_StringFormatSetAlign GDIPlus_StringFormatSetLineAlign ' +
3907 'GDIPlus_StringFormatSetMeasurableCharacterRanges ' +
3908 'GDIPlus_TextureCreate GDIPlus_TextureCreate2 ' +
3909 'GDIPlus_TextureCreateIA GetIP GUICtrlAVI_Close ' +
3910 'GUICtrlAVI_Create GUICtrlAVI_Destroy GUICtrlAVI_IsPlaying ' +
3911 'GUICtrlAVI_Open GUICtrlAVI_OpenEx GUICtrlAVI_Play ' +
3912 'GUICtrlAVI_Seek GUICtrlAVI_Show GUICtrlAVI_Stop ' +
3913 'GUICtrlButton_Click GUICtrlButton_Create ' +
3914 'GUICtrlButton_Destroy GUICtrlButton_Enable ' +
3915 'GUICtrlButton_GetCheck GUICtrlButton_GetFocus ' +
3916 'GUICtrlButton_GetIdealSize GUICtrlButton_GetImage ' +
3917 'GUICtrlButton_GetImageList GUICtrlButton_GetNote ' +
3918 'GUICtrlButton_GetNoteLength GUICtrlButton_GetSplitInfo ' +
3919 'GUICtrlButton_GetState GUICtrlButton_GetText ' +
3920 'GUICtrlButton_GetTextMargin GUICtrlButton_SetCheck ' +
3921 'GUICtrlButton_SetDontClick GUICtrlButton_SetFocus ' +
3922 'GUICtrlButton_SetImage GUICtrlButton_SetImageList ' +
3923 'GUICtrlButton_SetNote GUICtrlButton_SetShield ' +
3924 'GUICtrlButton_SetSize GUICtrlButton_SetSplitInfo ' +
3925 'GUICtrlButton_SetState GUICtrlButton_SetStyle ' +
3926 'GUICtrlButton_SetText GUICtrlButton_SetTextMargin ' +
3927 'GUICtrlButton_Show GUICtrlComboBoxEx_AddDir ' +
3928 'GUICtrlComboBoxEx_AddString GUICtrlComboBoxEx_BeginUpdate ' +
3929 'GUICtrlComboBoxEx_Create GUICtrlComboBoxEx_CreateSolidBitMap ' +
3930 'GUICtrlComboBoxEx_DeleteString GUICtrlComboBoxEx_Destroy ' +
3931 'GUICtrlComboBoxEx_EndUpdate GUICtrlComboBoxEx_FindStringExact ' +
3932 'GUICtrlComboBoxEx_GetComboBoxInfo ' +
3933 'GUICtrlComboBoxEx_GetComboControl GUICtrlComboBoxEx_GetCount ' +
3934 'GUICtrlComboBoxEx_GetCurSel ' +
3935 'GUICtrlComboBoxEx_GetDroppedControlRect ' +
3936 'GUICtrlComboBoxEx_GetDroppedControlRectEx ' +
3937 'GUICtrlComboBoxEx_GetDroppedState ' +
3938 'GUICtrlComboBoxEx_GetDroppedWidth ' +
3939 'GUICtrlComboBoxEx_GetEditControl GUICtrlComboBoxEx_GetEditSel ' +
3940 'GUICtrlComboBoxEx_GetEditText ' +
3941 'GUICtrlComboBoxEx_GetExtendedStyle ' +
3942 'GUICtrlComboBoxEx_GetExtendedUI GUICtrlComboBoxEx_GetImageList ' +
3943 'GUICtrlComboBoxEx_GetItem GUICtrlComboBoxEx_GetItemEx ' +
3944 'GUICtrlComboBoxEx_GetItemHeight GUICtrlComboBoxEx_GetItemImage ' +
3945 'GUICtrlComboBoxEx_GetItemIndent ' +
3946 'GUICtrlComboBoxEx_GetItemOverlayImage ' +
3947 'GUICtrlComboBoxEx_GetItemParam ' +
3948 'GUICtrlComboBoxEx_GetItemSelectedImage ' +
3949 'GUICtrlComboBoxEx_GetItemText GUICtrlComboBoxEx_GetItemTextLen ' +
3950 'GUICtrlComboBoxEx_GetList GUICtrlComboBoxEx_GetListArray ' +
3951 'GUICtrlComboBoxEx_GetLocale GUICtrlComboBoxEx_GetLocaleCountry ' +
3952 'GUICtrlComboBoxEx_GetLocaleLang ' +
3953 'GUICtrlComboBoxEx_GetLocalePrimLang ' +
3954 'GUICtrlComboBoxEx_GetLocaleSubLang ' +
3955 'GUICtrlComboBoxEx_GetMinVisible GUICtrlComboBoxEx_GetTopIndex ' +
3956 'GUICtrlComboBoxEx_GetUnicode GUICtrlComboBoxEx_InitStorage ' +
3957 'GUICtrlComboBoxEx_InsertString GUICtrlComboBoxEx_LimitText ' +
3958 'GUICtrlComboBoxEx_ReplaceEditSel GUICtrlComboBoxEx_ResetContent ' +
3959 'GUICtrlComboBoxEx_SetCurSel GUICtrlComboBoxEx_SetDroppedWidth ' +
3960 'GUICtrlComboBoxEx_SetEditSel GUICtrlComboBoxEx_SetEditText ' +
3961 'GUICtrlComboBoxEx_SetExtendedStyle ' +
3962 'GUICtrlComboBoxEx_SetExtendedUI GUICtrlComboBoxEx_SetImageList ' +
3963 'GUICtrlComboBoxEx_SetItem GUICtrlComboBoxEx_SetItemEx ' +
3964 'GUICtrlComboBoxEx_SetItemHeight GUICtrlComboBoxEx_SetItemImage ' +
3965 'GUICtrlComboBoxEx_SetItemIndent ' +
3966 'GUICtrlComboBoxEx_SetItemOverlayImage ' +
3967 'GUICtrlComboBoxEx_SetItemParam ' +
3968 'GUICtrlComboBoxEx_SetItemSelectedImage ' +
3969 'GUICtrlComboBoxEx_SetMinVisible GUICtrlComboBoxEx_SetTopIndex ' +
3970 'GUICtrlComboBoxEx_SetUnicode GUICtrlComboBoxEx_ShowDropDown ' +
3971 'GUICtrlComboBox_AddDir GUICtrlComboBox_AddString ' +
3972 'GUICtrlComboBox_AutoComplete GUICtrlComboBox_BeginUpdate ' +
3973 'GUICtrlComboBox_Create GUICtrlComboBox_DeleteString ' +
3974 'GUICtrlComboBox_Destroy GUICtrlComboBox_EndUpdate ' +
3975 'GUICtrlComboBox_FindString GUICtrlComboBox_FindStringExact ' +
3976 'GUICtrlComboBox_GetComboBoxInfo GUICtrlComboBox_GetCount ' +
3977 'GUICtrlComboBox_GetCueBanner GUICtrlComboBox_GetCurSel ' +
3978 'GUICtrlComboBox_GetDroppedControlRect ' +
3979 'GUICtrlComboBox_GetDroppedControlRectEx ' +
3980 'GUICtrlComboBox_GetDroppedState GUICtrlComboBox_GetDroppedWidth ' +
3981 'GUICtrlComboBox_GetEditSel GUICtrlComboBox_GetEditText ' +
3982 'GUICtrlComboBox_GetExtendedUI ' +
3983 'GUICtrlComboBox_GetHorizontalExtent ' +
3984 'GUICtrlComboBox_GetItemHeight GUICtrlComboBox_GetLBText ' +
3985 'GUICtrlComboBox_GetLBTextLen GUICtrlComboBox_GetList ' +
3986 'GUICtrlComboBox_GetListArray GUICtrlComboBox_GetLocale ' +
3987 'GUICtrlComboBox_GetLocaleCountry GUICtrlComboBox_GetLocaleLang ' +
3988 'GUICtrlComboBox_GetLocalePrimLang ' +
3989 'GUICtrlComboBox_GetLocaleSubLang GUICtrlComboBox_GetMinVisible ' +
3990 'GUICtrlComboBox_GetTopIndex GUICtrlComboBox_InitStorage ' +
3991 'GUICtrlComboBox_InsertString GUICtrlComboBox_LimitText ' +
3992 'GUICtrlComboBox_ReplaceEditSel GUICtrlComboBox_ResetContent ' +
3993 'GUICtrlComboBox_SelectString GUICtrlComboBox_SetCueBanner ' +
3994 'GUICtrlComboBox_SetCurSel GUICtrlComboBox_SetDroppedWidth ' +
3995 'GUICtrlComboBox_SetEditSel GUICtrlComboBox_SetEditText ' +
3996 'GUICtrlComboBox_SetExtendedUI ' +
3997 'GUICtrlComboBox_SetHorizontalExtent ' +
3998 'GUICtrlComboBox_SetItemHeight GUICtrlComboBox_SetMinVisible ' +
3999 'GUICtrlComboBox_SetTopIndex GUICtrlComboBox_ShowDropDown ' +
4000 'GUICtrlDTP_Create GUICtrlDTP_Destroy GUICtrlDTP_GetMCColor ' +
4001 'GUICtrlDTP_GetMCFont GUICtrlDTP_GetMonthCal ' +
4002 'GUICtrlDTP_GetRange GUICtrlDTP_GetRangeEx ' +
4003 'GUICtrlDTP_GetSystemTime GUICtrlDTP_GetSystemTimeEx ' +
4004 'GUICtrlDTP_SetFormat GUICtrlDTP_SetMCColor ' +
4005 'GUICtrlDTP_SetMCFont GUICtrlDTP_SetRange ' +
4006 'GUICtrlDTP_SetRangeEx GUICtrlDTP_SetSystemTime ' +
4007 'GUICtrlDTP_SetSystemTimeEx GUICtrlEdit_AppendText ' +
4008 'GUICtrlEdit_BeginUpdate GUICtrlEdit_CanUndo ' +
4009 'GUICtrlEdit_CharFromPos GUICtrlEdit_Create ' +
4010 'GUICtrlEdit_Destroy GUICtrlEdit_EmptyUndoBuffer ' +
4011 'GUICtrlEdit_EndUpdate GUICtrlEdit_Find GUICtrlEdit_FmtLines ' +
4012 'GUICtrlEdit_GetCueBanner GUICtrlEdit_GetFirstVisibleLine ' +
4013 'GUICtrlEdit_GetLimitText GUICtrlEdit_GetLine ' +
4014 'GUICtrlEdit_GetLineCount GUICtrlEdit_GetMargins ' +
4015 'GUICtrlEdit_GetModify GUICtrlEdit_GetPasswordChar ' +
4016 'GUICtrlEdit_GetRECT GUICtrlEdit_GetRECTEx GUICtrlEdit_GetSel ' +
4017 'GUICtrlEdit_GetText GUICtrlEdit_GetTextLen ' +
4018 'GUICtrlEdit_HideBalloonTip GUICtrlEdit_InsertText ' +
4019 'GUICtrlEdit_LineFromChar GUICtrlEdit_LineIndex ' +
4020 'GUICtrlEdit_LineLength GUICtrlEdit_LineScroll ' +
4021 'GUICtrlEdit_PosFromChar GUICtrlEdit_ReplaceSel ' +
4022 'GUICtrlEdit_Scroll GUICtrlEdit_SetCueBanner ' +
4023 'GUICtrlEdit_SetLimitText GUICtrlEdit_SetMargins ' +
4024 'GUICtrlEdit_SetModify GUICtrlEdit_SetPasswordChar ' +
4025 'GUICtrlEdit_SetReadOnly GUICtrlEdit_SetRECT ' +
4026 'GUICtrlEdit_SetRECTEx GUICtrlEdit_SetRECTNP ' +
4027 'GUICtrlEdit_SetRectNPEx GUICtrlEdit_SetSel ' +
4028 'GUICtrlEdit_SetTabStops GUICtrlEdit_SetText ' +
4029 'GUICtrlEdit_ShowBalloonTip GUICtrlEdit_Undo ' +
4030 'GUICtrlHeader_AddItem GUICtrlHeader_ClearFilter ' +
4031 'GUICtrlHeader_ClearFilterAll GUICtrlHeader_Create ' +
4032 'GUICtrlHeader_CreateDragImage GUICtrlHeader_DeleteItem ' +
4033 'GUICtrlHeader_Destroy GUICtrlHeader_EditFilter ' +
4034 'GUICtrlHeader_GetBitmapMargin GUICtrlHeader_GetImageList ' +
4035 'GUICtrlHeader_GetItem GUICtrlHeader_GetItemAlign ' +
4036 'GUICtrlHeader_GetItemBitmap GUICtrlHeader_GetItemCount ' +
4037 'GUICtrlHeader_GetItemDisplay GUICtrlHeader_GetItemFlags ' +
4038 'GUICtrlHeader_GetItemFormat GUICtrlHeader_GetItemImage ' +
4039 'GUICtrlHeader_GetItemOrder GUICtrlHeader_GetItemParam ' +
4040 'GUICtrlHeader_GetItemRect GUICtrlHeader_GetItemRectEx ' +
4041 'GUICtrlHeader_GetItemText GUICtrlHeader_GetItemWidth ' +
4042 'GUICtrlHeader_GetOrderArray GUICtrlHeader_GetUnicodeFormat ' +
4043 'GUICtrlHeader_HitTest GUICtrlHeader_InsertItem ' +
4044 'GUICtrlHeader_Layout GUICtrlHeader_OrderToIndex ' +
4045 'GUICtrlHeader_SetBitmapMargin ' +
4046 'GUICtrlHeader_SetFilterChangeTimeout ' +
4047 'GUICtrlHeader_SetHotDivider GUICtrlHeader_SetImageList ' +
4048 'GUICtrlHeader_SetItem GUICtrlHeader_SetItemAlign ' +
4049 'GUICtrlHeader_SetItemBitmap GUICtrlHeader_SetItemDisplay ' +
4050 'GUICtrlHeader_SetItemFlags GUICtrlHeader_SetItemFormat ' +
4051 'GUICtrlHeader_SetItemImage GUICtrlHeader_SetItemOrder ' +
4052 'GUICtrlHeader_SetItemParam GUICtrlHeader_SetItemText ' +
4053 'GUICtrlHeader_SetItemWidth GUICtrlHeader_SetOrderArray ' +
4054 'GUICtrlHeader_SetUnicodeFormat GUICtrlIpAddress_ClearAddress ' +
4055 'GUICtrlIpAddress_Create GUICtrlIpAddress_Destroy ' +
4056 'GUICtrlIpAddress_Get GUICtrlIpAddress_GetArray ' +
4057 'GUICtrlIpAddress_GetEx GUICtrlIpAddress_IsBlank ' +
4058 'GUICtrlIpAddress_Set GUICtrlIpAddress_SetArray ' +
4059 'GUICtrlIpAddress_SetEx GUICtrlIpAddress_SetFocus ' +
4060 'GUICtrlIpAddress_SetFont GUICtrlIpAddress_SetRange ' +
4061 'GUICtrlIpAddress_ShowHide GUICtrlListBox_AddFile ' +
4062 'GUICtrlListBox_AddString GUICtrlListBox_BeginUpdate ' +
4063 'GUICtrlListBox_ClickItem GUICtrlListBox_Create ' +
4064 'GUICtrlListBox_DeleteString GUICtrlListBox_Destroy ' +
4065 'GUICtrlListBox_Dir GUICtrlListBox_EndUpdate ' +
4066 'GUICtrlListBox_FindInText GUICtrlListBox_FindString ' +
4067 'GUICtrlListBox_GetAnchorIndex GUICtrlListBox_GetCaretIndex ' +
4068 'GUICtrlListBox_GetCount GUICtrlListBox_GetCurSel ' +
4069 'GUICtrlListBox_GetHorizontalExtent GUICtrlListBox_GetItemData ' +
4070 'GUICtrlListBox_GetItemHeight GUICtrlListBox_GetItemRect ' +
4071 'GUICtrlListBox_GetItemRectEx GUICtrlListBox_GetListBoxInfo ' +
4072 'GUICtrlListBox_GetLocale GUICtrlListBox_GetLocaleCountry ' +
4073 'GUICtrlListBox_GetLocaleLang GUICtrlListBox_GetLocalePrimLang ' +
4074 'GUICtrlListBox_GetLocaleSubLang GUICtrlListBox_GetSel ' +
4075 'GUICtrlListBox_GetSelCount GUICtrlListBox_GetSelItems ' +
4076 'GUICtrlListBox_GetSelItemsText GUICtrlListBox_GetText ' +
4077 'GUICtrlListBox_GetTextLen GUICtrlListBox_GetTopIndex ' +
4078 'GUICtrlListBox_InitStorage GUICtrlListBox_InsertString ' +
4079 'GUICtrlListBox_ItemFromPoint GUICtrlListBox_ReplaceString ' +
4080 'GUICtrlListBox_ResetContent GUICtrlListBox_SelectString ' +
4081 'GUICtrlListBox_SelItemRange GUICtrlListBox_SelItemRangeEx ' +
4082 'GUICtrlListBox_SetAnchorIndex GUICtrlListBox_SetCaretIndex ' +
4083 'GUICtrlListBox_SetColumnWidth GUICtrlListBox_SetCurSel ' +
4084 'GUICtrlListBox_SetHorizontalExtent GUICtrlListBox_SetItemData ' +
4085 'GUICtrlListBox_SetItemHeight GUICtrlListBox_SetLocale ' +
4086 'GUICtrlListBox_SetSel GUICtrlListBox_SetTabStops ' +
4087 'GUICtrlListBox_SetTopIndex GUICtrlListBox_Sort ' +
4088 'GUICtrlListBox_SwapString GUICtrlListBox_UpdateHScroll ' +
4089 'GUICtrlListView_AddArray GUICtrlListView_AddColumn ' +
4090 'GUICtrlListView_AddItem GUICtrlListView_AddSubItem ' +
4091 'GUICtrlListView_ApproximateViewHeight ' +
4092 'GUICtrlListView_ApproximateViewRect ' +
4093 'GUICtrlListView_ApproximateViewWidth GUICtrlListView_Arrange ' +
4094 'GUICtrlListView_BeginUpdate GUICtrlListView_CancelEditLabel ' +
4095 'GUICtrlListView_ClickItem GUICtrlListView_CopyItems ' +
4096 'GUICtrlListView_Create GUICtrlListView_CreateDragImage ' +
4097 'GUICtrlListView_CreateSolidBitMap ' +
4098 'GUICtrlListView_DeleteAllItems GUICtrlListView_DeleteColumn ' +
4099 'GUICtrlListView_DeleteItem GUICtrlListView_DeleteItemsSelected ' +
4100 'GUICtrlListView_Destroy GUICtrlListView_DrawDragImage ' +
4101 'GUICtrlListView_EditLabel GUICtrlListView_EnableGroupView ' +
4102 'GUICtrlListView_EndUpdate GUICtrlListView_EnsureVisible ' +
4103 'GUICtrlListView_FindInText GUICtrlListView_FindItem ' +
4104 'GUICtrlListView_FindNearest GUICtrlListView_FindParam ' +
4105 'GUICtrlListView_FindText GUICtrlListView_GetBkColor ' +
4106 'GUICtrlListView_GetBkImage GUICtrlListView_GetCallbackMask ' +
4107 'GUICtrlListView_GetColumn GUICtrlListView_GetColumnCount ' +
4108 'GUICtrlListView_GetColumnOrder ' +
4109 'GUICtrlListView_GetColumnOrderArray ' +
4110 'GUICtrlListView_GetColumnWidth GUICtrlListView_GetCounterPage ' +
4111 'GUICtrlListView_GetEditControl ' +
4112 'GUICtrlListView_GetExtendedListViewStyle ' +
4113 'GUICtrlListView_GetFocusedGroup GUICtrlListView_GetGroupCount ' +
4114 'GUICtrlListView_GetGroupInfo ' +
4115 'GUICtrlListView_GetGroupInfoByIndex ' +
4116 'GUICtrlListView_GetGroupRect ' +
4117 'GUICtrlListView_GetGroupViewEnabled GUICtrlListView_GetHeader ' +
4118 'GUICtrlListView_GetHotCursor GUICtrlListView_GetHotItem ' +
4119 'GUICtrlListView_GetHoverTime GUICtrlListView_GetImageList ' +
4120 'GUICtrlListView_GetISearchString GUICtrlListView_GetItem ' +
4121 'GUICtrlListView_GetItemChecked GUICtrlListView_GetItemCount ' +
4122 'GUICtrlListView_GetItemCut GUICtrlListView_GetItemDropHilited ' +
4123 'GUICtrlListView_GetItemEx GUICtrlListView_GetItemFocused ' +
4124 'GUICtrlListView_GetItemGroupID GUICtrlListView_GetItemImage ' +
4125 'GUICtrlListView_GetItemIndent GUICtrlListView_GetItemParam ' +
4126 'GUICtrlListView_GetItemPosition ' +
4127 'GUICtrlListView_GetItemPositionX ' +
4128 'GUICtrlListView_GetItemPositionY GUICtrlListView_GetItemRect ' +
4129 'GUICtrlListView_GetItemRectEx GUICtrlListView_GetItemSelected ' +
4130 'GUICtrlListView_GetItemSpacing GUICtrlListView_GetItemSpacingX ' +
4131 'GUICtrlListView_GetItemSpacingY GUICtrlListView_GetItemState ' +
4132 'GUICtrlListView_GetItemStateImage GUICtrlListView_GetItemText ' +
4133 'GUICtrlListView_GetItemTextArray ' +
4134 'GUICtrlListView_GetItemTextString GUICtrlListView_GetNextItem ' +
4135 'GUICtrlListView_GetNumberOfWorkAreas GUICtrlListView_GetOrigin ' +
4136 'GUICtrlListView_GetOriginX GUICtrlListView_GetOriginY ' +
4137 'GUICtrlListView_GetOutlineColor ' +
4138 'GUICtrlListView_GetSelectedColumn ' +
4139 'GUICtrlListView_GetSelectedCount ' +
4140 'GUICtrlListView_GetSelectedIndices ' +
4141 'GUICtrlListView_GetSelectionMark GUICtrlListView_GetStringWidth ' +
4142 'GUICtrlListView_GetSubItemRect GUICtrlListView_GetTextBkColor ' +
4143 'GUICtrlListView_GetTextColor GUICtrlListView_GetToolTips ' +
4144 'GUICtrlListView_GetTopIndex GUICtrlListView_GetUnicodeFormat ' +
4145 'GUICtrlListView_GetView GUICtrlListView_GetViewDetails ' +
4146 'GUICtrlListView_GetViewLarge GUICtrlListView_GetViewList ' +
4147 'GUICtrlListView_GetViewRect GUICtrlListView_GetViewSmall ' +
4148 'GUICtrlListView_GetViewTile GUICtrlListView_HideColumn ' +
4149 'GUICtrlListView_HitTest GUICtrlListView_InsertColumn ' +
4150 'GUICtrlListView_InsertGroup GUICtrlListView_InsertItem ' +
4151 'GUICtrlListView_JustifyColumn GUICtrlListView_MapIDToIndex ' +
4152 'GUICtrlListView_MapIndexToID GUICtrlListView_RedrawItems ' +
4153 'GUICtrlListView_RegisterSortCallBack ' +
4154 'GUICtrlListView_RemoveAllGroups GUICtrlListView_RemoveGroup ' +
4155 'GUICtrlListView_Scroll GUICtrlListView_SetBkColor ' +
4156 'GUICtrlListView_SetBkImage GUICtrlListView_SetCallBackMask ' +
4157 'GUICtrlListView_SetColumn GUICtrlListView_SetColumnOrder ' +
4158 'GUICtrlListView_SetColumnOrderArray ' +
4159 'GUICtrlListView_SetColumnWidth ' +
4160 'GUICtrlListView_SetExtendedListViewStyle ' +
4161 'GUICtrlListView_SetGroupInfo GUICtrlListView_SetHotItem ' +
4162 'GUICtrlListView_SetHoverTime GUICtrlListView_SetIconSpacing ' +
4163 'GUICtrlListView_SetImageList GUICtrlListView_SetItem ' +
4164 'GUICtrlListView_SetItemChecked GUICtrlListView_SetItemCount ' +
4165 'GUICtrlListView_SetItemCut GUICtrlListView_SetItemDropHilited ' +
4166 'GUICtrlListView_SetItemEx GUICtrlListView_SetItemFocused ' +
4167 'GUICtrlListView_SetItemGroupID GUICtrlListView_SetItemImage ' +
4168 'GUICtrlListView_SetItemIndent GUICtrlListView_SetItemParam ' +
4169 'GUICtrlListView_SetItemPosition ' +
4170 'GUICtrlListView_SetItemPosition32 ' +
4171 'GUICtrlListView_SetItemSelected GUICtrlListView_SetItemState ' +
4172 'GUICtrlListView_SetItemStateImage GUICtrlListView_SetItemText ' +
4173 'GUICtrlListView_SetOutlineColor ' +
4174 'GUICtrlListView_SetSelectedColumn ' +
4175 'GUICtrlListView_SetSelectionMark GUICtrlListView_SetTextBkColor ' +
4176 'GUICtrlListView_SetTextColor GUICtrlListView_SetToolTips ' +
4177 'GUICtrlListView_SetUnicodeFormat GUICtrlListView_SetView ' +
4178 'GUICtrlListView_SetWorkAreas GUICtrlListView_SimpleSort ' +
4179 'GUICtrlListView_SortItems GUICtrlListView_SubItemHitTest ' +
4180 'GUICtrlListView_UnRegisterSortCallBack GUICtrlMenu_AddMenuItem ' +
4181 'GUICtrlMenu_AppendMenu GUICtrlMenu_CalculatePopupWindowPosition ' +
4182 'GUICtrlMenu_CheckMenuItem GUICtrlMenu_CheckRadioItem ' +
4183 'GUICtrlMenu_CreateMenu GUICtrlMenu_CreatePopup ' +
4184 'GUICtrlMenu_DeleteMenu GUICtrlMenu_DestroyMenu ' +
4185 'GUICtrlMenu_DrawMenuBar GUICtrlMenu_EnableMenuItem ' +
4186 'GUICtrlMenu_FindItem GUICtrlMenu_FindParent ' +
4187 'GUICtrlMenu_GetItemBmp GUICtrlMenu_GetItemBmpChecked ' +
4188 'GUICtrlMenu_GetItemBmpUnchecked GUICtrlMenu_GetItemChecked ' +
4189 'GUICtrlMenu_GetItemCount GUICtrlMenu_GetItemData ' +
4190 'GUICtrlMenu_GetItemDefault GUICtrlMenu_GetItemDisabled ' +
4191 'GUICtrlMenu_GetItemEnabled GUICtrlMenu_GetItemGrayed ' +
4192 'GUICtrlMenu_GetItemHighlighted GUICtrlMenu_GetItemID ' +
4193 'GUICtrlMenu_GetItemInfo GUICtrlMenu_GetItemRect ' +
4194 'GUICtrlMenu_GetItemRectEx GUICtrlMenu_GetItemState ' +
4195 'GUICtrlMenu_GetItemStateEx GUICtrlMenu_GetItemSubMenu ' +
4196 'GUICtrlMenu_GetItemText GUICtrlMenu_GetItemType ' +
4197 'GUICtrlMenu_GetMenu GUICtrlMenu_GetMenuBackground ' +
4198 'GUICtrlMenu_GetMenuBarInfo GUICtrlMenu_GetMenuContextHelpID ' +
4199 'GUICtrlMenu_GetMenuData GUICtrlMenu_GetMenuDefaultItem ' +
4200 'GUICtrlMenu_GetMenuHeight GUICtrlMenu_GetMenuInfo ' +
4201 'GUICtrlMenu_GetMenuStyle GUICtrlMenu_GetSystemMenu ' +
4202 'GUICtrlMenu_InsertMenuItem GUICtrlMenu_InsertMenuItemEx ' +
4203 'GUICtrlMenu_IsMenu GUICtrlMenu_LoadMenu ' +
4204 'GUICtrlMenu_MapAccelerator GUICtrlMenu_MenuItemFromPoint ' +
4205 'GUICtrlMenu_RemoveMenu GUICtrlMenu_SetItemBitmaps ' +
4206 'GUICtrlMenu_SetItemBmp GUICtrlMenu_SetItemBmpChecked ' +
4207 'GUICtrlMenu_SetItemBmpUnchecked GUICtrlMenu_SetItemChecked ' +
4208 'GUICtrlMenu_SetItemData GUICtrlMenu_SetItemDefault ' +
4209 'GUICtrlMenu_SetItemDisabled GUICtrlMenu_SetItemEnabled ' +
4210 'GUICtrlMenu_SetItemGrayed GUICtrlMenu_SetItemHighlighted ' +
4211 'GUICtrlMenu_SetItemID GUICtrlMenu_SetItemInfo ' +
4212 'GUICtrlMenu_SetItemState GUICtrlMenu_SetItemSubMenu ' +
4213 'GUICtrlMenu_SetItemText GUICtrlMenu_SetItemType ' +
4214 'GUICtrlMenu_SetMenu GUICtrlMenu_SetMenuBackground ' +
4215 'GUICtrlMenu_SetMenuContextHelpID GUICtrlMenu_SetMenuData ' +
4216 'GUICtrlMenu_SetMenuDefaultItem GUICtrlMenu_SetMenuHeight ' +
4217 'GUICtrlMenu_SetMenuInfo GUICtrlMenu_SetMenuStyle ' +
4218 'GUICtrlMenu_TrackPopupMenu GUICtrlMonthCal_Create ' +
4219 'GUICtrlMonthCal_Destroy GUICtrlMonthCal_GetCalendarBorder ' +
4220 'GUICtrlMonthCal_GetCalendarCount GUICtrlMonthCal_GetColor ' +
4221 'GUICtrlMonthCal_GetColorArray GUICtrlMonthCal_GetCurSel ' +
4222 'GUICtrlMonthCal_GetCurSelStr GUICtrlMonthCal_GetFirstDOW ' +
4223 'GUICtrlMonthCal_GetFirstDOWStr GUICtrlMonthCal_GetMaxSelCount ' +
4224 'GUICtrlMonthCal_GetMaxTodayWidth ' +
4225 'GUICtrlMonthCal_GetMinReqHeight GUICtrlMonthCal_GetMinReqRect ' +
4226 'GUICtrlMonthCal_GetMinReqRectArray ' +
4227 'GUICtrlMonthCal_GetMinReqWidth GUICtrlMonthCal_GetMonthDelta ' +
4228 'GUICtrlMonthCal_GetMonthRange GUICtrlMonthCal_GetMonthRangeMax ' +
4229 'GUICtrlMonthCal_GetMonthRangeMaxStr ' +
4230 'GUICtrlMonthCal_GetMonthRangeMin ' +
4231 'GUICtrlMonthCal_GetMonthRangeMinStr ' +
4232 'GUICtrlMonthCal_GetMonthRangeSpan GUICtrlMonthCal_GetRange ' +
4233 'GUICtrlMonthCal_GetRangeMax GUICtrlMonthCal_GetRangeMaxStr ' +
4234 'GUICtrlMonthCal_GetRangeMin GUICtrlMonthCal_GetRangeMinStr ' +
4235 'GUICtrlMonthCal_GetSelRange GUICtrlMonthCal_GetSelRangeMax ' +
4236 'GUICtrlMonthCal_GetSelRangeMaxStr ' +
4237 'GUICtrlMonthCal_GetSelRangeMin ' +
4238 'GUICtrlMonthCal_GetSelRangeMinStr GUICtrlMonthCal_GetToday ' +
4239 'GUICtrlMonthCal_GetTodayStr GUICtrlMonthCal_GetUnicodeFormat ' +
4240 'GUICtrlMonthCal_HitTest GUICtrlMonthCal_SetCalendarBorder ' +
4241 'GUICtrlMonthCal_SetColor GUICtrlMonthCal_SetCurSel ' +
4242 'GUICtrlMonthCal_SetDayState GUICtrlMonthCal_SetFirstDOW ' +
4243 'GUICtrlMonthCal_SetMaxSelCount GUICtrlMonthCal_SetMonthDelta ' +
4244 'GUICtrlMonthCal_SetRange GUICtrlMonthCal_SetSelRange ' +
4245 'GUICtrlMonthCal_SetToday GUICtrlMonthCal_SetUnicodeFormat ' +
4246 'GUICtrlRebar_AddBand GUICtrlRebar_AddToolBarBand ' +
4247 'GUICtrlRebar_BeginDrag GUICtrlRebar_Create ' +
4248 'GUICtrlRebar_DeleteBand GUICtrlRebar_Destroy ' +
4249 'GUICtrlRebar_DragMove GUICtrlRebar_EndDrag ' +
4250 'GUICtrlRebar_GetBandBackColor GUICtrlRebar_GetBandBorders ' +
4251 'GUICtrlRebar_GetBandBordersEx GUICtrlRebar_GetBandChildHandle ' +
4252 'GUICtrlRebar_GetBandChildSize GUICtrlRebar_GetBandCount ' +
4253 'GUICtrlRebar_GetBandForeColor GUICtrlRebar_GetBandHeaderSize ' +
4254 'GUICtrlRebar_GetBandID GUICtrlRebar_GetBandIdealSize ' +
4255 'GUICtrlRebar_GetBandLength GUICtrlRebar_GetBandLParam ' +
4256 'GUICtrlRebar_GetBandMargins GUICtrlRebar_GetBandMarginsEx ' +
4257 'GUICtrlRebar_GetBandRect GUICtrlRebar_GetBandRectEx ' +
4258 'GUICtrlRebar_GetBandStyle GUICtrlRebar_GetBandStyleBreak ' +
4259 'GUICtrlRebar_GetBandStyleChildEdge ' +
4260 'GUICtrlRebar_GetBandStyleFixedBMP ' +
4261 'GUICtrlRebar_GetBandStyleFixedSize ' +
4262 'GUICtrlRebar_GetBandStyleGripperAlways ' +
4263 'GUICtrlRebar_GetBandStyleHidden ' +
4264 'GUICtrlRebar_GetBandStyleHideTitle ' +
4265 'GUICtrlRebar_GetBandStyleNoGripper ' +
4266 'GUICtrlRebar_GetBandStyleTopAlign ' +
4267 'GUICtrlRebar_GetBandStyleUseChevron ' +
4268 'GUICtrlRebar_GetBandStyleVariableHeight ' +
4269 'GUICtrlRebar_GetBandText GUICtrlRebar_GetBarHeight ' +
4270 'GUICtrlRebar_GetBarInfo GUICtrlRebar_GetBKColor ' +
4271 'GUICtrlRebar_GetColorScheme GUICtrlRebar_GetRowCount ' +
4272 'GUICtrlRebar_GetRowHeight GUICtrlRebar_GetTextColor ' +
4273 'GUICtrlRebar_GetToolTips GUICtrlRebar_GetUnicodeFormat ' +
4274 'GUICtrlRebar_HitTest GUICtrlRebar_IDToIndex ' +
4275 'GUICtrlRebar_MaximizeBand GUICtrlRebar_MinimizeBand ' +
4276 'GUICtrlRebar_MoveBand GUICtrlRebar_SetBandBackColor ' +
4277 'GUICtrlRebar_SetBandForeColor GUICtrlRebar_SetBandHeaderSize ' +
4278 'GUICtrlRebar_SetBandID GUICtrlRebar_SetBandIdealSize ' +
4279 'GUICtrlRebar_SetBandLength GUICtrlRebar_SetBandLParam ' +
4280 'GUICtrlRebar_SetBandStyle GUICtrlRebar_SetBandStyleBreak ' +
4281 'GUICtrlRebar_SetBandStyleChildEdge ' +
4282 'GUICtrlRebar_SetBandStyleFixedBMP ' +
4283 'GUICtrlRebar_SetBandStyleFixedSize ' +
4284 'GUICtrlRebar_SetBandStyleGripperAlways ' +
4285 'GUICtrlRebar_SetBandStyleHidden ' +
4286 'GUICtrlRebar_SetBandStyleHideTitle ' +
4287 'GUICtrlRebar_SetBandStyleNoGripper ' +
4288 'GUICtrlRebar_SetBandStyleTopAlign ' +
4289 'GUICtrlRebar_SetBandStyleUseChevron ' +
4290 'GUICtrlRebar_SetBandStyleVariableHeight ' +
4291 'GUICtrlRebar_SetBandText GUICtrlRebar_SetBarInfo ' +
4292 'GUICtrlRebar_SetBKColor GUICtrlRebar_SetColorScheme ' +
4293 'GUICtrlRebar_SetTextColor GUICtrlRebar_SetToolTips ' +
4294 'GUICtrlRebar_SetUnicodeFormat GUICtrlRebar_ShowBand ' +
4295 'GUICtrlRichEdit_AppendText GUICtrlRichEdit_AutoDetectURL ' +
4296 'GUICtrlRichEdit_CanPaste GUICtrlRichEdit_CanPasteSpecial ' +
4297 'GUICtrlRichEdit_CanRedo GUICtrlRichEdit_CanUndo ' +
4298 'GUICtrlRichEdit_ChangeFontSize GUICtrlRichEdit_Copy ' +
4299 'GUICtrlRichEdit_Create GUICtrlRichEdit_Cut ' +
4300 'GUICtrlRichEdit_Deselect GUICtrlRichEdit_Destroy ' +
4301 'GUICtrlRichEdit_EmptyUndoBuffer GUICtrlRichEdit_FindText ' +
4302 'GUICtrlRichEdit_FindTextInRange GUICtrlRichEdit_GetBkColor ' +
4303 'GUICtrlRichEdit_GetCharAttributes ' +
4304 'GUICtrlRichEdit_GetCharBkColor GUICtrlRichEdit_GetCharColor ' +
4305 'GUICtrlRichEdit_GetCharPosFromXY ' +
4306 'GUICtrlRichEdit_GetCharPosOfNextWord ' +
4307 'GUICtrlRichEdit_GetCharPosOfPreviousWord ' +
4308 'GUICtrlRichEdit_GetCharWordBreakInfo ' +
4309 'GUICtrlRichEdit_GetFirstCharPosOnLine GUICtrlRichEdit_GetFont ' +
4310 'GUICtrlRichEdit_GetLineCount GUICtrlRichEdit_GetLineLength ' +
4311 'GUICtrlRichEdit_GetLineNumberFromCharPos ' +
4312 'GUICtrlRichEdit_GetNextRedo GUICtrlRichEdit_GetNextUndo ' +
4313 'GUICtrlRichEdit_GetNumberOfFirstVisibleLine ' +
4314 'GUICtrlRichEdit_GetParaAlignment ' +
4315 'GUICtrlRichEdit_GetParaAttributes GUICtrlRichEdit_GetParaBorder ' +
4316 'GUICtrlRichEdit_GetParaIndents GUICtrlRichEdit_GetParaNumbering ' +
4317 'GUICtrlRichEdit_GetParaShading GUICtrlRichEdit_GetParaSpacing ' +
4318 'GUICtrlRichEdit_GetParaTabStops GUICtrlRichEdit_GetPasswordChar ' +
4319 'GUICtrlRichEdit_GetRECT GUICtrlRichEdit_GetScrollPos ' +
4320 'GUICtrlRichEdit_GetSel GUICtrlRichEdit_GetSelAA ' +
4321 'GUICtrlRichEdit_GetSelText GUICtrlRichEdit_GetSpaceUnit ' +
4322 'GUICtrlRichEdit_GetText GUICtrlRichEdit_GetTextInLine ' +
4323 'GUICtrlRichEdit_GetTextInRange GUICtrlRichEdit_GetTextLength ' +
4324 'GUICtrlRichEdit_GetVersion GUICtrlRichEdit_GetXYFromCharPos ' +
4325 'GUICtrlRichEdit_GetZoom GUICtrlRichEdit_GotoCharPos ' +
4326 'GUICtrlRichEdit_HideSelection GUICtrlRichEdit_InsertText ' +
4327 'GUICtrlRichEdit_IsModified GUICtrlRichEdit_IsTextSelected ' +
4328 'GUICtrlRichEdit_Paste GUICtrlRichEdit_PasteSpecial ' +
4329 'GUICtrlRichEdit_PauseRedraw GUICtrlRichEdit_Redo ' +
4330 'GUICtrlRichEdit_ReplaceText GUICtrlRichEdit_ResumeRedraw ' +
4331 'GUICtrlRichEdit_ScrollLineOrPage GUICtrlRichEdit_ScrollLines ' +
4332 'GUICtrlRichEdit_ScrollToCaret GUICtrlRichEdit_SetBkColor ' +
4333 'GUICtrlRichEdit_SetCharAttributes ' +
4334 'GUICtrlRichEdit_SetCharBkColor GUICtrlRichEdit_SetCharColor ' +
4335 'GUICtrlRichEdit_SetEventMask GUICtrlRichEdit_SetFont ' +
4336 'GUICtrlRichEdit_SetLimitOnText GUICtrlRichEdit_SetModified ' +
4337 'GUICtrlRichEdit_SetParaAlignment ' +
4338 'GUICtrlRichEdit_SetParaAttributes GUICtrlRichEdit_SetParaBorder ' +
4339 'GUICtrlRichEdit_SetParaIndents GUICtrlRichEdit_SetParaNumbering ' +
4340 'GUICtrlRichEdit_SetParaShading GUICtrlRichEdit_SetParaSpacing ' +
4341 'GUICtrlRichEdit_SetParaTabStops GUICtrlRichEdit_SetPasswordChar ' +
4342 'GUICtrlRichEdit_SetReadOnly GUICtrlRichEdit_SetRECT ' +
4343 'GUICtrlRichEdit_SetScrollPos GUICtrlRichEdit_SetSel ' +
4344 'GUICtrlRichEdit_SetSpaceUnit GUICtrlRichEdit_SetTabStops ' +
4345 'GUICtrlRichEdit_SetText GUICtrlRichEdit_SetUndoLimit ' +
4346 'GUICtrlRichEdit_SetZoom GUICtrlRichEdit_StreamFromFile ' +
4347 'GUICtrlRichEdit_StreamFromVar GUICtrlRichEdit_StreamToFile ' +
4348 'GUICtrlRichEdit_StreamToVar GUICtrlRichEdit_Undo ' +
4349 'GUICtrlSlider_ClearSel GUICtrlSlider_ClearTics ' +
4350 'GUICtrlSlider_Create GUICtrlSlider_Destroy ' +
4351 'GUICtrlSlider_GetBuddy GUICtrlSlider_GetChannelRect ' +
4352 'GUICtrlSlider_GetChannelRectEx GUICtrlSlider_GetLineSize ' +
4353 'GUICtrlSlider_GetLogicalTics GUICtrlSlider_GetNumTics ' +
4354 'GUICtrlSlider_GetPageSize GUICtrlSlider_GetPos ' +
4355 'GUICtrlSlider_GetRange GUICtrlSlider_GetRangeMax ' +
4356 'GUICtrlSlider_GetRangeMin GUICtrlSlider_GetSel ' +
4357 'GUICtrlSlider_GetSelEnd GUICtrlSlider_GetSelStart ' +
4358 'GUICtrlSlider_GetThumbLength GUICtrlSlider_GetThumbRect ' +
4359 'GUICtrlSlider_GetThumbRectEx GUICtrlSlider_GetTic ' +
4360 'GUICtrlSlider_GetTicPos GUICtrlSlider_GetToolTips ' +
4361 'GUICtrlSlider_GetUnicodeFormat GUICtrlSlider_SetBuddy ' +
4362 'GUICtrlSlider_SetLineSize GUICtrlSlider_SetPageSize ' +
4363 'GUICtrlSlider_SetPos GUICtrlSlider_SetRange ' +
4364 'GUICtrlSlider_SetRangeMax GUICtrlSlider_SetRangeMin ' +
4365 'GUICtrlSlider_SetSel GUICtrlSlider_SetSelEnd ' +
4366 'GUICtrlSlider_SetSelStart GUICtrlSlider_SetThumbLength ' +
4367 'GUICtrlSlider_SetTic GUICtrlSlider_SetTicFreq ' +
4368 'GUICtrlSlider_SetTipSide GUICtrlSlider_SetToolTips ' +
4369 'GUICtrlSlider_SetUnicodeFormat GUICtrlStatusBar_Create ' +
4370 'GUICtrlStatusBar_Destroy GUICtrlStatusBar_EmbedControl ' +
4371 'GUICtrlStatusBar_GetBorders GUICtrlStatusBar_GetBordersHorz ' +
4372 'GUICtrlStatusBar_GetBordersRect GUICtrlStatusBar_GetBordersVert ' +
4373 'GUICtrlStatusBar_GetCount GUICtrlStatusBar_GetHeight ' +
4374 'GUICtrlStatusBar_GetIcon GUICtrlStatusBar_GetParts ' +
4375 'GUICtrlStatusBar_GetRect GUICtrlStatusBar_GetRectEx ' +
4376 'GUICtrlStatusBar_GetText GUICtrlStatusBar_GetTextFlags ' +
4377 'GUICtrlStatusBar_GetTextLength GUICtrlStatusBar_GetTextLengthEx ' +
4378 'GUICtrlStatusBar_GetTipText GUICtrlStatusBar_GetUnicodeFormat ' +
4379 'GUICtrlStatusBar_GetWidth GUICtrlStatusBar_IsSimple ' +
4380 'GUICtrlStatusBar_Resize GUICtrlStatusBar_SetBkColor ' +
4381 'GUICtrlStatusBar_SetIcon GUICtrlStatusBar_SetMinHeight ' +
4382 'GUICtrlStatusBar_SetParts GUICtrlStatusBar_SetSimple ' +
4383 'GUICtrlStatusBar_SetText GUICtrlStatusBar_SetTipText ' +
4384 'GUICtrlStatusBar_SetUnicodeFormat GUICtrlStatusBar_ShowHide ' +
4385 'GUICtrlTab_ActivateTab GUICtrlTab_ClickTab GUICtrlTab_Create ' +
4386 'GUICtrlTab_DeleteAllItems GUICtrlTab_DeleteItem ' +
4387 'GUICtrlTab_DeselectAll GUICtrlTab_Destroy GUICtrlTab_FindTab ' +
4388 'GUICtrlTab_GetCurFocus GUICtrlTab_GetCurSel ' +
4389 'GUICtrlTab_GetDisplayRect GUICtrlTab_GetDisplayRectEx ' +
4390 'GUICtrlTab_GetExtendedStyle GUICtrlTab_GetImageList ' +
4391 'GUICtrlTab_GetItem GUICtrlTab_GetItemCount ' +
4392 'GUICtrlTab_GetItemImage GUICtrlTab_GetItemParam ' +
4393 'GUICtrlTab_GetItemRect GUICtrlTab_GetItemRectEx ' +
4394 'GUICtrlTab_GetItemState GUICtrlTab_GetItemText ' +
4395 'GUICtrlTab_GetRowCount GUICtrlTab_GetToolTips ' +
4396 'GUICtrlTab_GetUnicodeFormat GUICtrlTab_HighlightItem ' +
4397 'GUICtrlTab_HitTest GUICtrlTab_InsertItem ' +
4398 'GUICtrlTab_RemoveImage GUICtrlTab_SetCurFocus ' +
4399 'GUICtrlTab_SetCurSel GUICtrlTab_SetExtendedStyle ' +
4400 'GUICtrlTab_SetImageList GUICtrlTab_SetItem ' +
4401 'GUICtrlTab_SetItemImage GUICtrlTab_SetItemParam ' +
4402 'GUICtrlTab_SetItemSize GUICtrlTab_SetItemState ' +
4403 'GUICtrlTab_SetItemText GUICtrlTab_SetMinTabWidth ' +
4404 'GUICtrlTab_SetPadding GUICtrlTab_SetToolTips ' +
4405 'GUICtrlTab_SetUnicodeFormat GUICtrlToolbar_AddBitmap ' +
4406 'GUICtrlToolbar_AddButton GUICtrlToolbar_AddButtonSep ' +
4407 'GUICtrlToolbar_AddString GUICtrlToolbar_ButtonCount ' +
4408 'GUICtrlToolbar_CheckButton GUICtrlToolbar_ClickAccel ' +
4409 'GUICtrlToolbar_ClickButton GUICtrlToolbar_ClickIndex ' +
4410 'GUICtrlToolbar_CommandToIndex GUICtrlToolbar_Create ' +
4411 'GUICtrlToolbar_Customize GUICtrlToolbar_DeleteButton ' +
4412 'GUICtrlToolbar_Destroy GUICtrlToolbar_EnableButton ' +
4413 'GUICtrlToolbar_FindToolbar GUICtrlToolbar_GetAnchorHighlight ' +
4414 'GUICtrlToolbar_GetBitmapFlags GUICtrlToolbar_GetButtonBitmap ' +
4415 'GUICtrlToolbar_GetButtonInfo GUICtrlToolbar_GetButtonInfoEx ' +
4416 'GUICtrlToolbar_GetButtonParam GUICtrlToolbar_GetButtonRect ' +
4417 'GUICtrlToolbar_GetButtonRectEx GUICtrlToolbar_GetButtonSize ' +
4418 'GUICtrlToolbar_GetButtonState GUICtrlToolbar_GetButtonStyle ' +
4419 'GUICtrlToolbar_GetButtonText GUICtrlToolbar_GetColorScheme ' +
4420 'GUICtrlToolbar_GetDisabledImageList ' +
4421 'GUICtrlToolbar_GetExtendedStyle GUICtrlToolbar_GetHotImageList ' +
4422 'GUICtrlToolbar_GetHotItem GUICtrlToolbar_GetImageList ' +
4423 'GUICtrlToolbar_GetInsertMark GUICtrlToolbar_GetInsertMarkColor ' +
4424 'GUICtrlToolbar_GetMaxSize GUICtrlToolbar_GetMetrics ' +
4425 'GUICtrlToolbar_GetPadding GUICtrlToolbar_GetRows ' +
4426 'GUICtrlToolbar_GetString GUICtrlToolbar_GetStyle ' +
4427 'GUICtrlToolbar_GetStyleAltDrag ' +
4428 'GUICtrlToolbar_GetStyleCustomErase GUICtrlToolbar_GetStyleFlat ' +
4429 'GUICtrlToolbar_GetStyleList GUICtrlToolbar_GetStyleRegisterDrop ' +
4430 'GUICtrlToolbar_GetStyleToolTips ' +
4431 'GUICtrlToolbar_GetStyleTransparent ' +
4432 'GUICtrlToolbar_GetStyleWrapable GUICtrlToolbar_GetTextRows ' +
4433 'GUICtrlToolbar_GetToolTips GUICtrlToolbar_GetUnicodeFormat ' +
4434 'GUICtrlToolbar_HideButton GUICtrlToolbar_HighlightButton ' +
4435 'GUICtrlToolbar_HitTest GUICtrlToolbar_IndexToCommand ' +
4436 'GUICtrlToolbar_InsertButton GUICtrlToolbar_InsertMarkHitTest ' +
4437 'GUICtrlToolbar_IsButtonChecked GUICtrlToolbar_IsButtonEnabled ' +
4438 'GUICtrlToolbar_IsButtonHidden ' +
4439 'GUICtrlToolbar_IsButtonHighlighted ' +
4440 'GUICtrlToolbar_IsButtonIndeterminate ' +
4441 'GUICtrlToolbar_IsButtonPressed GUICtrlToolbar_LoadBitmap ' +
4442 'GUICtrlToolbar_LoadImages GUICtrlToolbar_MapAccelerator ' +
4443 'GUICtrlToolbar_MoveButton GUICtrlToolbar_PressButton ' +
4444 'GUICtrlToolbar_SetAnchorHighlight GUICtrlToolbar_SetBitmapSize ' +
4445 'GUICtrlToolbar_SetButtonBitMap GUICtrlToolbar_SetButtonInfo ' +
4446 'GUICtrlToolbar_SetButtonInfoEx GUICtrlToolbar_SetButtonParam ' +
4447 'GUICtrlToolbar_SetButtonSize GUICtrlToolbar_SetButtonState ' +
4448 'GUICtrlToolbar_SetButtonStyle GUICtrlToolbar_SetButtonText ' +
4449 'GUICtrlToolbar_SetButtonWidth GUICtrlToolbar_SetCmdID ' +
4450 'GUICtrlToolbar_SetColorScheme ' +
4451 'GUICtrlToolbar_SetDisabledImageList ' +
4452 'GUICtrlToolbar_SetDrawTextFlags GUICtrlToolbar_SetExtendedStyle ' +
4453 'GUICtrlToolbar_SetHotImageList GUICtrlToolbar_SetHotItem ' +
4454 'GUICtrlToolbar_SetImageList GUICtrlToolbar_SetIndent ' +
4455 'GUICtrlToolbar_SetIndeterminate GUICtrlToolbar_SetInsertMark ' +
4456 'GUICtrlToolbar_SetInsertMarkColor GUICtrlToolbar_SetMaxTextRows ' +
4457 'GUICtrlToolbar_SetMetrics GUICtrlToolbar_SetPadding ' +
4458 'GUICtrlToolbar_SetParent GUICtrlToolbar_SetRows ' +
4459 'GUICtrlToolbar_SetStyle GUICtrlToolbar_SetStyleAltDrag ' +
4460 'GUICtrlToolbar_SetStyleCustomErase GUICtrlToolbar_SetStyleFlat ' +
4461 'GUICtrlToolbar_SetStyleList GUICtrlToolbar_SetStyleRegisterDrop ' +
4462 'GUICtrlToolbar_SetStyleToolTips ' +
4463 'GUICtrlToolbar_SetStyleTransparent ' +
4464 'GUICtrlToolbar_SetStyleWrapable GUICtrlToolbar_SetToolTips ' +
4465 'GUICtrlToolbar_SetUnicodeFormat GUICtrlToolbar_SetWindowTheme ' +
4466 'GUICtrlTreeView_Add GUICtrlTreeView_AddChild ' +
4467 'GUICtrlTreeView_AddChildFirst GUICtrlTreeView_AddFirst ' +
4468 'GUICtrlTreeView_BeginUpdate GUICtrlTreeView_ClickItem ' +
4469 'GUICtrlTreeView_Create GUICtrlTreeView_CreateDragImage ' +
4470 'GUICtrlTreeView_CreateSolidBitMap GUICtrlTreeView_Delete ' +
4471 'GUICtrlTreeView_DeleteAll GUICtrlTreeView_DeleteChildren ' +
4472 'GUICtrlTreeView_Destroy GUICtrlTreeView_DisplayRect ' +
4473 'GUICtrlTreeView_DisplayRectEx GUICtrlTreeView_EditText ' +
4474 'GUICtrlTreeView_EndEdit GUICtrlTreeView_EndUpdate ' +
4475 'GUICtrlTreeView_EnsureVisible GUICtrlTreeView_Expand ' +
4476 'GUICtrlTreeView_ExpandedOnce GUICtrlTreeView_FindItem ' +
4477 'GUICtrlTreeView_FindItemEx GUICtrlTreeView_GetBkColor ' +
4478 'GUICtrlTreeView_GetBold GUICtrlTreeView_GetChecked ' +
4479 'GUICtrlTreeView_GetChildCount GUICtrlTreeView_GetChildren ' +
4480 'GUICtrlTreeView_GetCount GUICtrlTreeView_GetCut ' +
4481 'GUICtrlTreeView_GetDropTarget GUICtrlTreeView_GetEditControl ' +
4482 'GUICtrlTreeView_GetExpanded GUICtrlTreeView_GetFirstChild ' +
4483 'GUICtrlTreeView_GetFirstItem GUICtrlTreeView_GetFirstVisible ' +
4484 'GUICtrlTreeView_GetFocused GUICtrlTreeView_GetHeight ' +
4485 'GUICtrlTreeView_GetImageIndex ' +
4486 'GUICtrlTreeView_GetImageListIconHandle ' +
4487 'GUICtrlTreeView_GetIndent GUICtrlTreeView_GetInsertMarkColor ' +
4488 'GUICtrlTreeView_GetISearchString GUICtrlTreeView_GetItemByIndex ' +
4489 'GUICtrlTreeView_GetItemHandle GUICtrlTreeView_GetItemParam ' +
4490 'GUICtrlTreeView_GetLastChild GUICtrlTreeView_GetLineColor ' +
4491 'GUICtrlTreeView_GetNext GUICtrlTreeView_GetNextChild ' +
4492 'GUICtrlTreeView_GetNextSibling GUICtrlTreeView_GetNextVisible ' +
4493 'GUICtrlTreeView_GetNormalImageList ' +
4494 'GUICtrlTreeView_GetParentHandle GUICtrlTreeView_GetParentParam ' +
4495 'GUICtrlTreeView_GetPrev GUICtrlTreeView_GetPrevChild ' +
4496 'GUICtrlTreeView_GetPrevSibling GUICtrlTreeView_GetPrevVisible ' +
4497 'GUICtrlTreeView_GetScrollTime GUICtrlTreeView_GetSelected ' +
4498 'GUICtrlTreeView_GetSelectedImageIndex ' +
4499 'GUICtrlTreeView_GetSelection GUICtrlTreeView_GetSiblingCount ' +
4500 'GUICtrlTreeView_GetState GUICtrlTreeView_GetStateImageIndex ' +
4501 'GUICtrlTreeView_GetStateImageList GUICtrlTreeView_GetText ' +
4502 'GUICtrlTreeView_GetTextColor GUICtrlTreeView_GetToolTips ' +
4503 'GUICtrlTreeView_GetTree GUICtrlTreeView_GetUnicodeFormat ' +
4504 'GUICtrlTreeView_GetVisible GUICtrlTreeView_GetVisibleCount ' +
4505 'GUICtrlTreeView_HitTest GUICtrlTreeView_HitTestEx ' +
4506 'GUICtrlTreeView_HitTestItem GUICtrlTreeView_Index ' +
4507 'GUICtrlTreeView_InsertItem GUICtrlTreeView_IsFirstItem ' +
4508 'GUICtrlTreeView_IsParent GUICtrlTreeView_Level ' +
4509 'GUICtrlTreeView_SelectItem GUICtrlTreeView_SelectItemByIndex ' +
4510 'GUICtrlTreeView_SetBkColor GUICtrlTreeView_SetBold ' +
4511 'GUICtrlTreeView_SetChecked GUICtrlTreeView_SetCheckedByIndex ' +
4512 'GUICtrlTreeView_SetChildren GUICtrlTreeView_SetCut ' +
4513 'GUICtrlTreeView_SetDropTarget GUICtrlTreeView_SetFocused ' +
4514 'GUICtrlTreeView_SetHeight GUICtrlTreeView_SetIcon ' +
4515 'GUICtrlTreeView_SetImageIndex GUICtrlTreeView_SetIndent ' +
4516 'GUICtrlTreeView_SetInsertMark ' +
4517 'GUICtrlTreeView_SetInsertMarkColor ' +
4518 'GUICtrlTreeView_SetItemHeight GUICtrlTreeView_SetItemParam ' +
4519 'GUICtrlTreeView_SetLineColor GUICtrlTreeView_SetNormalImageList ' +
4520 'GUICtrlTreeView_SetScrollTime GUICtrlTreeView_SetSelected ' +
4521 'GUICtrlTreeView_SetSelectedImageIndex GUICtrlTreeView_SetState ' +
4522 'GUICtrlTreeView_SetStateImageIndex ' +
4523 'GUICtrlTreeView_SetStateImageList GUICtrlTreeView_SetText ' +
4524 'GUICtrlTreeView_SetTextColor GUICtrlTreeView_SetToolTips ' +
4525 'GUICtrlTreeView_SetUnicodeFormat GUICtrlTreeView_Sort ' +
4526 'GUIImageList_Add GUIImageList_AddBitmap GUIImageList_AddIcon ' +
4527 'GUIImageList_AddMasked GUIImageList_BeginDrag ' +
4528 'GUIImageList_Copy GUIImageList_Create GUIImageList_Destroy ' +
4529 'GUIImageList_DestroyIcon GUIImageList_DragEnter ' +
4530 'GUIImageList_DragLeave GUIImageList_DragMove ' +
4531 'GUIImageList_Draw GUIImageList_DrawEx GUIImageList_Duplicate ' +
4532 'GUIImageList_EndDrag GUIImageList_GetBkColor ' +
4533 'GUIImageList_GetIcon GUIImageList_GetIconHeight ' +
4534 'GUIImageList_GetIconSize GUIImageList_GetIconSizeEx ' +
4535 'GUIImageList_GetIconWidth GUIImageList_GetImageCount ' +
4536 'GUIImageList_GetImageInfoEx GUIImageList_Remove ' +
4537 'GUIImageList_ReplaceIcon GUIImageList_SetBkColor ' +
4538 'GUIImageList_SetIconSize GUIImageList_SetImageCount ' +
4539 'GUIImageList_Swap GUIScrollBars_EnableScrollBar ' +
4540 'GUIScrollBars_GetScrollBarInfoEx GUIScrollBars_GetScrollBarRect ' +
4541 'GUIScrollBars_GetScrollBarRGState ' +
4542 'GUIScrollBars_GetScrollBarXYLineButton ' +
4543 'GUIScrollBars_GetScrollBarXYThumbBottom ' +
4544 'GUIScrollBars_GetScrollBarXYThumbTop ' +
4545 'GUIScrollBars_GetScrollInfo GUIScrollBars_GetScrollInfoEx ' +
4546 'GUIScrollBars_GetScrollInfoMax GUIScrollBars_GetScrollInfoMin ' +
4547 'GUIScrollBars_GetScrollInfoPage GUIScrollBars_GetScrollInfoPos ' +
4548 'GUIScrollBars_GetScrollInfoTrackPos GUIScrollBars_GetScrollPos ' +
4549 'GUIScrollBars_GetScrollRange GUIScrollBars_Init ' +
4550 'GUIScrollBars_ScrollWindow GUIScrollBars_SetScrollInfo ' +
4551 'GUIScrollBars_SetScrollInfoMax GUIScrollBars_SetScrollInfoMin ' +
4552 'GUIScrollBars_SetScrollInfoPage GUIScrollBars_SetScrollInfoPos ' +
4553 'GUIScrollBars_SetScrollRange GUIScrollBars_ShowScrollBar ' +
4554 'GUIToolTip_Activate GUIToolTip_AddTool GUIToolTip_AdjustRect ' +
4555 'GUIToolTip_BitsToTTF GUIToolTip_Create GUIToolTip_Deactivate ' +
4556 'GUIToolTip_DelTool GUIToolTip_Destroy GUIToolTip_EnumTools ' +
4557 'GUIToolTip_GetBubbleHeight GUIToolTip_GetBubbleSize ' +
4558 'GUIToolTip_GetBubbleWidth GUIToolTip_GetCurrentTool ' +
4559 'GUIToolTip_GetDelayTime GUIToolTip_GetMargin ' +
4560 'GUIToolTip_GetMarginEx GUIToolTip_GetMaxTipWidth ' +
4561 'GUIToolTip_GetText GUIToolTip_GetTipBkColor ' +
4562 'GUIToolTip_GetTipTextColor GUIToolTip_GetTitleBitMap ' +
4563 'GUIToolTip_GetTitleText GUIToolTip_GetToolCount ' +
4564 'GUIToolTip_GetToolInfo GUIToolTip_HitTest ' +
4565 'GUIToolTip_NewToolRect GUIToolTip_Pop GUIToolTip_PopUp ' +
4566 'GUIToolTip_SetDelayTime GUIToolTip_SetMargin ' +
4567 'GUIToolTip_SetMaxTipWidth GUIToolTip_SetTipBkColor ' +
4568 'GUIToolTip_SetTipTextColor GUIToolTip_SetTitle ' +
4569 'GUIToolTip_SetToolInfo GUIToolTip_SetWindowTheme ' +
4570 'GUIToolTip_ToolExists GUIToolTip_ToolToArray ' +
4571 'GUIToolTip_TrackActivate GUIToolTip_TrackPosition ' +
4572 'GUIToolTip_Update GUIToolTip_UpdateTipText HexToString ' +
4573 'IEAction IEAttach IEBodyReadHTML IEBodyReadText ' +
4574 'IEBodyWriteHTML IECreate IECreateEmbedded IEDocGetObj ' +
4575 'IEDocInsertHTML IEDocInsertText IEDocReadHTML ' +
4576 'IEDocWriteHTML IEErrorNotify IEFormElementCheckBoxSelect ' +
4577 'IEFormElementGetCollection IEFormElementGetObjByName ' +
4578 'IEFormElementGetValue IEFormElementOptionSelect ' +
4579 'IEFormElementRadioSelect IEFormElementSetValue ' +
4580 'IEFormGetCollection IEFormGetObjByName IEFormImageClick ' +
4581 'IEFormReset IEFormSubmit IEFrameGetCollection ' +
4582 'IEFrameGetObjByName IEGetObjById IEGetObjByName ' +
4583 'IEHeadInsertEventScript IEImgClick IEImgGetCollection ' +
4584 'IEIsFrameSet IELinkClickByIndex IELinkClickByText ' +
4585 'IELinkGetCollection IELoadWait IELoadWaitTimeout IENavigate ' +
4586 'IEPropertyGet IEPropertySet IEQuit IETableGetCollection ' +
4587 'IETableWriteToArray IETagNameAllGetCollection ' +
4588 'IETagNameGetCollection IE_Example IE_Introduction ' +
4589 'IE_VersionInfo INetExplorerCapable INetGetSource INetMail ' +
4590 'INetSmtpMail IsPressed MathCheckDiv Max MemGlobalAlloc ' +
4591 'MemGlobalFree MemGlobalLock MemGlobalSize MemGlobalUnlock ' +
4592 'MemMoveMemory MemVirtualAlloc MemVirtualAllocEx ' +
4593 'MemVirtualFree MemVirtualFreeEx Min MouseTrap ' +
4594 'NamedPipes_CallNamedPipe NamedPipes_ConnectNamedPipe ' +
4595 'NamedPipes_CreateNamedPipe NamedPipes_CreatePipe ' +
4596 'NamedPipes_DisconnectNamedPipe ' +
4597 'NamedPipes_GetNamedPipeHandleState NamedPipes_GetNamedPipeInfo ' +
4598 'NamedPipes_PeekNamedPipe NamedPipes_SetNamedPipeHandleState ' +
4599 'NamedPipes_TransactNamedPipe NamedPipes_WaitNamedPipe ' +
4600 'Net_Share_ConnectionEnum Net_Share_FileClose ' +
4601 'Net_Share_FileEnum Net_Share_FileGetInfo Net_Share_PermStr ' +
4602 'Net_Share_ResourceStr Net_Share_SessionDel ' +
4603 'Net_Share_SessionEnum Net_Share_SessionGetInfo ' +
4604 'Net_Share_ShareAdd Net_Share_ShareCheck Net_Share_ShareDel ' +
4605 'Net_Share_ShareEnum Net_Share_ShareGetInfo ' +
4606 'Net_Share_ShareSetInfo Net_Share_StatisticsGetSvr ' +
4607 'Net_Share_StatisticsGetWrk Now NowCalc NowCalcDate ' +
4608 'NowDate NowTime PathFull PathGetRelative PathMake ' +
4609 'PathSplit ProcessGetName ProcessGetPriority Radian ' +
4610 'ReplaceStringInFile RunDos ScreenCapture_Capture ' +
4611 'ScreenCapture_CaptureWnd ScreenCapture_SaveImage ' +
4612 'ScreenCapture_SetBMPFormat ScreenCapture_SetJPGQuality ' +
4613 'ScreenCapture_SetTIFColorDepth ScreenCapture_SetTIFCompression ' +
4614 'Security__AdjustTokenPrivileges ' +
4615 'Security__CreateProcessWithToken Security__DuplicateTokenEx ' +
4616 'Security__GetAccountSid Security__GetLengthSid ' +
4617 'Security__GetTokenInformation Security__ImpersonateSelf ' +
4618 'Security__IsValidSid Security__LookupAccountName ' +
4619 'Security__LookupAccountSid Security__LookupPrivilegeValue ' +
4620 'Security__OpenProcessToken Security__OpenThreadToken ' +
4621 'Security__OpenThreadTokenEx Security__SetPrivilege ' +
4622 'Security__SetTokenInformation Security__SidToStringSid ' +
4623 'Security__SidTypeStr Security__StringSidToSid SendMessage ' +
4624 'SendMessageA SetDate SetTime Singleton SoundClose ' +
4625 'SoundLength SoundOpen SoundPause SoundPlay SoundPos ' +
4626 'SoundResume SoundSeek SoundStatus SoundStop ' +
4627 'SQLite_Changes SQLite_Close SQLite_Display2DResult ' +
4628 'SQLite_Encode SQLite_ErrCode SQLite_ErrMsg SQLite_Escape ' +
4629 'SQLite_Exec SQLite_FastEncode SQLite_FastEscape ' +
4630 'SQLite_FetchData SQLite_FetchNames SQLite_GetTable ' +
4631 'SQLite_GetTable2d SQLite_LastInsertRowID SQLite_LibVersion ' +
4632 'SQLite_Open SQLite_Query SQLite_QueryFinalize ' +
4633 'SQLite_QueryReset SQLite_QuerySingleRow SQLite_SafeMode ' +
4634 'SQLite_SetTimeout SQLite_Shutdown SQLite_SQLiteExe ' +
4635 'SQLite_Startup SQLite_TotalChanges StringBetween ' +
4636 'StringExplode StringInsert StringProper StringRepeat ' +
4637 'StringTitleCase StringToHex TCPIpToName TempFile ' +
4638 'TicksToTime Timer_Diff Timer_GetIdleTime Timer_GetTimerID ' +
4639 'Timer_Init Timer_KillAllTimers Timer_KillTimer ' +
4640 'Timer_SetTimer TimeToTicks VersionCompare viClose ' +
4641 'viExecCommand viFindGpib viGpibBusReset viGTL ' +
4642 'viInteractiveControl viOpen viSetAttribute viSetTimeout ' +
4643 'WeekNumberISO WinAPI_AbortPath WinAPI_ActivateKeyboardLayout ' +
4644 'WinAPI_AddClipboardFormatListener WinAPI_AddFontMemResourceEx ' +
4645 'WinAPI_AddFontResourceEx WinAPI_AddIconOverlay ' +
4646 'WinAPI_AddIconTransparency WinAPI_AddMRUString ' +
4647 'WinAPI_AdjustBitmap WinAPI_AdjustTokenPrivileges ' +
4648 'WinAPI_AdjustWindowRectEx WinAPI_AlphaBlend WinAPI_AngleArc ' +
4649 'WinAPI_AnimateWindow WinAPI_Arc WinAPI_ArcTo ' +
4650 'WinAPI_ArrayToStruct WinAPI_AssignProcessToJobObject ' +
4651 'WinAPI_AssocGetPerceivedType WinAPI_AssocQueryString ' +
4652 'WinAPI_AttachConsole WinAPI_AttachThreadInput ' +
4653 'WinAPI_BackupRead WinAPI_BackupReadAbort WinAPI_BackupSeek ' +
4654 'WinAPI_BackupWrite WinAPI_BackupWriteAbort WinAPI_Beep ' +
4655 'WinAPI_BeginBufferedPaint WinAPI_BeginDeferWindowPos ' +
4656 'WinAPI_BeginPaint WinAPI_BeginPath WinAPI_BeginUpdateResource ' +
4657 'WinAPI_BitBlt WinAPI_BringWindowToTop ' +
4658 'WinAPI_BroadcastSystemMessage WinAPI_BrowseForFolderDlg ' +
4659 'WinAPI_BufferedPaintClear WinAPI_BufferedPaintInit ' +
4660 'WinAPI_BufferedPaintSetAlpha WinAPI_BufferedPaintUnInit ' +
4661 'WinAPI_CallNextHookEx WinAPI_CallWindowProc ' +
4662 'WinAPI_CallWindowProcW WinAPI_CascadeWindows ' +
4663 'WinAPI_ChangeWindowMessageFilterEx WinAPI_CharToOem ' +
4664 'WinAPI_ChildWindowFromPointEx WinAPI_ClientToScreen ' +
4665 'WinAPI_ClipCursor WinAPI_CloseDesktop WinAPI_CloseEnhMetaFile ' +
4666 'WinAPI_CloseFigure WinAPI_CloseHandle WinAPI_CloseThemeData ' +
4667 'WinAPI_CloseWindow WinAPI_CloseWindowStation ' +
4668 'WinAPI_CLSIDFromProgID WinAPI_CoInitialize ' +
4669 'WinAPI_ColorAdjustLuma WinAPI_ColorHLSToRGB ' +
4670 'WinAPI_ColorRGBToHLS WinAPI_CombineRgn ' +
4671 'WinAPI_CombineTransform WinAPI_CommandLineToArgv ' +
4672 'WinAPI_CommDlgExtendedError WinAPI_CommDlgExtendedErrorEx ' +
4673 'WinAPI_CompareString WinAPI_CompressBitmapBits ' +
4674 'WinAPI_CompressBuffer WinAPI_ComputeCrc32 ' +
4675 'WinAPI_ConfirmCredentials WinAPI_CopyBitmap WinAPI_CopyCursor ' +
4676 'WinAPI_CopyEnhMetaFile WinAPI_CopyFileEx WinAPI_CopyIcon ' +
4677 'WinAPI_CopyImage WinAPI_CopyRect WinAPI_CopyStruct ' +
4678 'WinAPI_CoTaskMemAlloc WinAPI_CoTaskMemFree ' +
4679 'WinAPI_CoTaskMemRealloc WinAPI_CoUninitialize ' +
4680 'WinAPI_Create32BitHBITMAP WinAPI_Create32BitHICON ' +
4681 'WinAPI_CreateANDBitmap WinAPI_CreateBitmap ' +
4682 'WinAPI_CreateBitmapIndirect WinAPI_CreateBrushIndirect ' +
4683 'WinAPI_CreateBuffer WinAPI_CreateBufferFromStruct ' +
4684 'WinAPI_CreateCaret WinAPI_CreateColorAdjustment ' +
4685 'WinAPI_CreateCompatibleBitmap WinAPI_CreateCompatibleBitmapEx ' +
4686 'WinAPI_CreateCompatibleDC WinAPI_CreateDesktop ' +
4687 'WinAPI_CreateDIB WinAPI_CreateDIBColorTable ' +
4688 'WinAPI_CreateDIBitmap WinAPI_CreateDIBSection ' +
4689 'WinAPI_CreateDirectory WinAPI_CreateDirectoryEx ' +
4690 'WinAPI_CreateEllipticRgn WinAPI_CreateEmptyIcon ' +
4691 'WinAPI_CreateEnhMetaFile WinAPI_CreateEvent WinAPI_CreateFile ' +
4692 'WinAPI_CreateFileEx WinAPI_CreateFileMapping ' +
4693 'WinAPI_CreateFont WinAPI_CreateFontEx ' +
4694 'WinAPI_CreateFontIndirect WinAPI_CreateGUID ' +
4695 'WinAPI_CreateHardLink WinAPI_CreateIcon ' +
4696 'WinAPI_CreateIconFromResourceEx WinAPI_CreateIconIndirect ' +
4697 'WinAPI_CreateJobObject WinAPI_CreateMargins ' +
4698 'WinAPI_CreateMRUList WinAPI_CreateMutex WinAPI_CreateNullRgn ' +
4699 'WinAPI_CreateNumberFormatInfo WinAPI_CreateObjectID ' +
4700 'WinAPI_CreatePen WinAPI_CreatePoint WinAPI_CreatePolygonRgn ' +
4701 'WinAPI_CreateProcess WinAPI_CreateProcessWithToken ' +
4702 'WinAPI_CreateRect WinAPI_CreateRectEx WinAPI_CreateRectRgn ' +
4703 'WinAPI_CreateRectRgnIndirect WinAPI_CreateRoundRectRgn ' +
4704 'WinAPI_CreateSemaphore WinAPI_CreateSize ' +
4705 'WinAPI_CreateSolidBitmap WinAPI_CreateSolidBrush ' +
4706 'WinAPI_CreateStreamOnHGlobal WinAPI_CreateString ' +
4707 'WinAPI_CreateSymbolicLink WinAPI_CreateTransform ' +
4708 'WinAPI_CreateWindowEx WinAPI_CreateWindowStation ' +
4709 'WinAPI_DecompressBuffer WinAPI_DecryptFile ' +
4710 'WinAPI_DeferWindowPos WinAPI_DefineDosDevice ' +
4711 'WinAPI_DefRawInputProc WinAPI_DefSubclassProc ' +
4712 'WinAPI_DefWindowProc WinAPI_DefWindowProcW WinAPI_DeleteDC ' +
4713 'WinAPI_DeleteEnhMetaFile WinAPI_DeleteFile ' +
4714 'WinAPI_DeleteObject WinAPI_DeleteObjectID ' +
4715 'WinAPI_DeleteVolumeMountPoint WinAPI_DeregisterShellHookWindow ' +
4716 'WinAPI_DestroyCaret WinAPI_DestroyCursor WinAPI_DestroyIcon ' +
4717 'WinAPI_DestroyWindow WinAPI_DeviceIoControl ' +
4718 'WinAPI_DisplayStruct WinAPI_DllGetVersion WinAPI_DllInstall ' +
4719 'WinAPI_DllUninstall WinAPI_DPtoLP WinAPI_DragAcceptFiles ' +
4720 'WinAPI_DragFinish WinAPI_DragQueryFileEx ' +
4721 'WinAPI_DragQueryPoint WinAPI_DrawAnimatedRects ' +
4722 'WinAPI_DrawBitmap WinAPI_DrawEdge WinAPI_DrawFocusRect ' +
4723 'WinAPI_DrawFrameControl WinAPI_DrawIcon WinAPI_DrawIconEx ' +
4724 'WinAPI_DrawLine WinAPI_DrawShadowText WinAPI_DrawText ' +
4725 'WinAPI_DrawThemeBackground WinAPI_DrawThemeEdge ' +
4726 'WinAPI_DrawThemeIcon WinAPI_DrawThemeParentBackground ' +
4727 'WinAPI_DrawThemeText WinAPI_DrawThemeTextEx ' +
4728 'WinAPI_DuplicateEncryptionInfoFile WinAPI_DuplicateHandle ' +
4729 'WinAPI_DuplicateTokenEx WinAPI_DwmDefWindowProc ' +
4730 'WinAPI_DwmEnableBlurBehindWindow WinAPI_DwmEnableComposition ' +
4731 'WinAPI_DwmExtendFrameIntoClientArea ' +
4732 'WinAPI_DwmGetColorizationColor ' +
4733 'WinAPI_DwmGetColorizationParameters ' +
4734 'WinAPI_DwmGetWindowAttribute WinAPI_DwmInvalidateIconicBitmaps ' +
4735 'WinAPI_DwmIsCompositionEnabled ' +
4736 'WinAPI_DwmQueryThumbnailSourceSize WinAPI_DwmRegisterThumbnail ' +
4737 'WinAPI_DwmSetColorizationParameters ' +
4738 'WinAPI_DwmSetIconicLivePreviewBitmap ' +
4739 'WinAPI_DwmSetIconicThumbnail WinAPI_DwmSetWindowAttribute ' +
4740 'WinAPI_DwmUnregisterThumbnail ' +
4741 'WinAPI_DwmUpdateThumbnailProperties WinAPI_DWordToFloat ' +
4742 'WinAPI_DWordToInt WinAPI_EjectMedia WinAPI_Ellipse ' +
4743 'WinAPI_EmptyWorkingSet WinAPI_EnableWindow WinAPI_EncryptFile ' +
4744 'WinAPI_EncryptionDisable WinAPI_EndBufferedPaint ' +
4745 'WinAPI_EndDeferWindowPos WinAPI_EndPaint WinAPI_EndPath ' +
4746 'WinAPI_EndUpdateResource WinAPI_EnumChildProcess ' +
4747 'WinAPI_EnumChildWindows WinAPI_EnumDesktops ' +
4748 'WinAPI_EnumDesktopWindows WinAPI_EnumDeviceDrivers ' +
4749 'WinAPI_EnumDisplayDevices WinAPI_EnumDisplayMonitors ' +
4750 'WinAPI_EnumDisplaySettings WinAPI_EnumDllProc ' +
4751 'WinAPI_EnumFiles WinAPI_EnumFileStreams ' +
4752 'WinAPI_EnumFontFamilies WinAPI_EnumHardLinks ' +
4753 'WinAPI_EnumMRUList WinAPI_EnumPageFiles ' +
4754 'WinAPI_EnumProcessHandles WinAPI_EnumProcessModules ' +
4755 'WinAPI_EnumProcessThreads WinAPI_EnumProcessWindows ' +
4756 'WinAPI_EnumRawInputDevices WinAPI_EnumResourceLanguages ' +
4757 'WinAPI_EnumResourceNames WinAPI_EnumResourceTypes ' +
4758 'WinAPI_EnumSystemGeoID WinAPI_EnumSystemLocales ' +
4759 'WinAPI_EnumUILanguages WinAPI_EnumWindows ' +
4760 'WinAPI_EnumWindowsPopup WinAPI_EnumWindowStations ' +
4761 'WinAPI_EnumWindowsTop WinAPI_EqualMemory WinAPI_EqualRect ' +
4762 'WinAPI_EqualRgn WinAPI_ExcludeClipRect ' +
4763 'WinAPI_ExpandEnvironmentStrings WinAPI_ExtCreatePen ' +
4764 'WinAPI_ExtCreateRegion WinAPI_ExtFloodFill WinAPI_ExtractIcon ' +
4765 'WinAPI_ExtractIconEx WinAPI_ExtSelectClipRgn ' +
4766 'WinAPI_FatalAppExit WinAPI_FatalExit ' +
4767 'WinAPI_FileEncryptionStatus WinAPI_FileExists ' +
4768 'WinAPI_FileIconInit WinAPI_FileInUse WinAPI_FillMemory ' +
4769 'WinAPI_FillPath WinAPI_FillRect WinAPI_FillRgn ' +
4770 'WinAPI_FindClose WinAPI_FindCloseChangeNotification ' +
4771 'WinAPI_FindExecutable WinAPI_FindFirstChangeNotification ' +
4772 'WinAPI_FindFirstFile WinAPI_FindFirstFileName ' +
4773 'WinAPI_FindFirstStream WinAPI_FindNextChangeNotification ' +
4774 'WinAPI_FindNextFile WinAPI_FindNextFileName ' +
4775 'WinAPI_FindNextStream WinAPI_FindResource ' +
4776 'WinAPI_FindResourceEx WinAPI_FindTextDlg WinAPI_FindWindow ' +
4777 'WinAPI_FlashWindow WinAPI_FlashWindowEx WinAPI_FlattenPath ' +
4778 'WinAPI_FloatToDWord WinAPI_FloatToInt WinAPI_FlushFileBuffers ' +
4779 'WinAPI_FlushFRBuffer WinAPI_FlushViewOfFile ' +
4780 'WinAPI_FormatDriveDlg WinAPI_FormatMessage WinAPI_FrameRect ' +
4781 'WinAPI_FrameRgn WinAPI_FreeLibrary WinAPI_FreeMemory ' +
4782 'WinAPI_FreeMRUList WinAPI_FreeResource WinAPI_GdiComment ' +
4783 'WinAPI_GetActiveWindow WinAPI_GetAllUsersProfileDirectory ' +
4784 'WinAPI_GetAncestor WinAPI_GetApplicationRestartSettings ' +
4785 'WinAPI_GetArcDirection WinAPI_GetAsyncKeyState ' +
4786 'WinAPI_GetBinaryType WinAPI_GetBitmapBits ' +
4787 'WinAPI_GetBitmapDimension WinAPI_GetBitmapDimensionEx ' +
4788 'WinAPI_GetBkColor WinAPI_GetBkMode WinAPI_GetBoundsRect ' +
4789 'WinAPI_GetBrushOrg WinAPI_GetBufferedPaintBits ' +
4790 'WinAPI_GetBufferedPaintDC WinAPI_GetBufferedPaintTargetDC ' +
4791 'WinAPI_GetBufferedPaintTargetRect WinAPI_GetBValue ' +
4792 'WinAPI_GetCaretBlinkTime WinAPI_GetCaretPos WinAPI_GetCDType ' +
4793 'WinAPI_GetClassInfoEx WinAPI_GetClassLongEx ' +
4794 'WinAPI_GetClassName WinAPI_GetClientHeight ' +
4795 'WinAPI_GetClientRect WinAPI_GetClientWidth ' +
4796 'WinAPI_GetClipboardSequenceNumber WinAPI_GetClipBox ' +
4797 'WinAPI_GetClipCursor WinAPI_GetClipRgn ' +
4798 'WinAPI_GetColorAdjustment WinAPI_GetCompressedFileSize ' +
4799 'WinAPI_GetCompression WinAPI_GetConnectedDlg ' +
4800 'WinAPI_GetCurrentDirectory WinAPI_GetCurrentHwProfile ' +
4801 'WinAPI_GetCurrentObject WinAPI_GetCurrentPosition ' +
4802 'WinAPI_GetCurrentProcess ' +
4803 'WinAPI_GetCurrentProcessExplicitAppUserModelID ' +
4804 'WinAPI_GetCurrentProcessID WinAPI_GetCurrentThemeName ' +
4805 'WinAPI_GetCurrentThread WinAPI_GetCurrentThreadId ' +
4806 'WinAPI_GetCursor WinAPI_GetCursorInfo WinAPI_GetDateFormat ' +
4807 'WinAPI_GetDC WinAPI_GetDCEx WinAPI_GetDefaultPrinter ' +
4808 'WinAPI_GetDefaultUserProfileDirectory WinAPI_GetDesktopWindow ' +
4809 'WinAPI_GetDeviceCaps WinAPI_GetDeviceDriverBaseName ' +
4810 'WinAPI_GetDeviceDriverFileName WinAPI_GetDeviceGammaRamp ' +
4811 'WinAPI_GetDIBColorTable WinAPI_GetDIBits ' +
4812 'WinAPI_GetDiskFreeSpaceEx WinAPI_GetDlgCtrlID ' +
4813 'WinAPI_GetDlgItem WinAPI_GetDllDirectory ' +
4814 'WinAPI_GetDriveBusType WinAPI_GetDriveGeometryEx ' +
4815 'WinAPI_GetDriveNumber WinAPI_GetDriveType ' +
4816 'WinAPI_GetDurationFormat WinAPI_GetEffectiveClientRect ' +
4817 'WinAPI_GetEnhMetaFile WinAPI_GetEnhMetaFileBits ' +
4818 'WinAPI_GetEnhMetaFileDescription WinAPI_GetEnhMetaFileDimension ' +
4819 'WinAPI_GetEnhMetaFileHeader WinAPI_GetErrorMessage ' +
4820 'WinAPI_GetErrorMode WinAPI_GetExitCodeProcess ' +
4821 'WinAPI_GetExtended WinAPI_GetFileAttributes WinAPI_GetFileID ' +
4822 'WinAPI_GetFileInformationByHandle ' +
4823 'WinAPI_GetFileInformationByHandleEx WinAPI_GetFilePointerEx ' +
4824 'WinAPI_GetFileSizeEx WinAPI_GetFileSizeOnDisk ' +
4825 'WinAPI_GetFileTitle WinAPI_GetFileType ' +
4826 'WinAPI_GetFileVersionInfo WinAPI_GetFinalPathNameByHandle ' +
4827 'WinAPI_GetFinalPathNameByHandleEx WinAPI_GetFocus ' +
4828 'WinAPI_GetFontMemoryResourceInfo WinAPI_GetFontName ' +
4829 'WinAPI_GetFontResourceInfo WinAPI_GetForegroundWindow ' +
4830 'WinAPI_GetFRBuffer WinAPI_GetFullPathName WinAPI_GetGeoInfo ' +
4831 'WinAPI_GetGlyphOutline WinAPI_GetGraphicsMode ' +
4832 'WinAPI_GetGuiResources WinAPI_GetGUIThreadInfo ' +
4833 'WinAPI_GetGValue WinAPI_GetHandleInformation ' +
4834 'WinAPI_GetHGlobalFromStream WinAPI_GetIconDimension ' +
4835 'WinAPI_GetIconInfo WinAPI_GetIconInfoEx WinAPI_GetIdleTime ' +
4836 'WinAPI_GetKeyboardLayout WinAPI_GetKeyboardLayoutList ' +
4837 'WinAPI_GetKeyboardState WinAPI_GetKeyboardType ' +
4838 'WinAPI_GetKeyNameText WinAPI_GetKeyState ' +
4839 'WinAPI_GetLastActivePopup WinAPI_GetLastError ' +
4840 'WinAPI_GetLastErrorMessage WinAPI_GetLayeredWindowAttributes ' +
4841 'WinAPI_GetLocaleInfo WinAPI_GetLogicalDrives ' +
4842 'WinAPI_GetMapMode WinAPI_GetMemorySize ' +
4843 'WinAPI_GetMessageExtraInfo WinAPI_GetModuleFileNameEx ' +
4844 'WinAPI_GetModuleHandle WinAPI_GetModuleHandleEx ' +
4845 'WinAPI_GetModuleInformation WinAPI_GetMonitorInfo ' +
4846 'WinAPI_GetMousePos WinAPI_GetMousePosX WinAPI_GetMousePosY ' +
4847 'WinAPI_GetMUILanguage WinAPI_GetNumberFormat WinAPI_GetObject ' +
4848 'WinAPI_GetObjectID WinAPI_GetObjectInfoByHandle ' +
4849 'WinAPI_GetObjectNameByHandle WinAPI_GetObjectType ' +
4850 'WinAPI_GetOpenFileName WinAPI_GetOutlineTextMetrics ' +
4851 'WinAPI_GetOverlappedResult WinAPI_GetParent ' +
4852 'WinAPI_GetParentProcess WinAPI_GetPerformanceInfo ' +
4853 'WinAPI_GetPEType WinAPI_GetPhysicallyInstalledSystemMemory ' +
4854 'WinAPI_GetPixel WinAPI_GetPolyFillMode WinAPI_GetPosFromRect ' +
4855 'WinAPI_GetPriorityClass WinAPI_GetProcAddress ' +
4856 'WinAPI_GetProcessAffinityMask WinAPI_GetProcessCommandLine ' +
4857 'WinAPI_GetProcessFileName WinAPI_GetProcessHandleCount ' +
4858 'WinAPI_GetProcessID WinAPI_GetProcessIoCounters ' +
4859 'WinAPI_GetProcessMemoryInfo WinAPI_GetProcessName ' +
4860 'WinAPI_GetProcessShutdownParameters WinAPI_GetProcessTimes ' +
4861 'WinAPI_GetProcessUser WinAPI_GetProcessWindowStation ' +
4862 'WinAPI_GetProcessWorkingDirectory WinAPI_GetProfilesDirectory ' +
4863 'WinAPI_GetPwrCapabilities WinAPI_GetRawInputBuffer ' +
4864 'WinAPI_GetRawInputBufferLength WinAPI_GetRawInputData ' +
4865 'WinAPI_GetRawInputDeviceInfo WinAPI_GetRegionData ' +
4866 'WinAPI_GetRegisteredRawInputDevices ' +
4867 'WinAPI_GetRegKeyNameByHandle WinAPI_GetRgnBox WinAPI_GetROP2 ' +
4868 'WinAPI_GetRValue WinAPI_GetSaveFileName WinAPI_GetShellWindow ' +
4869 'WinAPI_GetStartupInfo WinAPI_GetStdHandle ' +
4870 'WinAPI_GetStockObject WinAPI_GetStretchBltMode ' +
4871 'WinAPI_GetString WinAPI_GetSysColor WinAPI_GetSysColorBrush ' +
4872 'WinAPI_GetSystemDefaultLangID WinAPI_GetSystemDefaultLCID ' +
4873 'WinAPI_GetSystemDefaultUILanguage WinAPI_GetSystemDEPPolicy ' +
4874 'WinAPI_GetSystemInfo WinAPI_GetSystemMetrics ' +
4875 'WinAPI_GetSystemPowerStatus WinAPI_GetSystemTimes ' +
4876 'WinAPI_GetSystemWow64Directory WinAPI_GetTabbedTextExtent ' +
4877 'WinAPI_GetTempFileName WinAPI_GetTextAlign ' +
4878 'WinAPI_GetTextCharacterExtra WinAPI_GetTextColor ' +
4879 'WinAPI_GetTextExtentPoint32 WinAPI_GetTextFace ' +
4880 'WinAPI_GetTextMetrics WinAPI_GetThemeAppProperties ' +
4881 'WinAPI_GetThemeBackgroundContentRect ' +
4882 'WinAPI_GetThemeBackgroundExtent WinAPI_GetThemeBackgroundRegion ' +
4883 'WinAPI_GetThemeBitmap WinAPI_GetThemeBool ' +
4884 'WinAPI_GetThemeColor WinAPI_GetThemeDocumentationProperty ' +
4885 'WinAPI_GetThemeEnumValue WinAPI_GetThemeFilename ' +
4886 'WinAPI_GetThemeFont WinAPI_GetThemeInt WinAPI_GetThemeMargins ' +
4887 'WinAPI_GetThemeMetric WinAPI_GetThemePartSize ' +
4888 'WinAPI_GetThemePosition WinAPI_GetThemePropertyOrigin ' +
4889 'WinAPI_GetThemeRect WinAPI_GetThemeString ' +
4890 'WinAPI_GetThemeSysBool WinAPI_GetThemeSysColor ' +
4891 'WinAPI_GetThemeSysColorBrush WinAPI_GetThemeSysFont ' +
4892 'WinAPI_GetThemeSysInt WinAPI_GetThemeSysSize ' +
4893 'WinAPI_GetThemeSysString WinAPI_GetThemeTextExtent ' +
4894 'WinAPI_GetThemeTextMetrics WinAPI_GetThemeTransitionDuration ' +
4895 'WinAPI_GetThreadDesktop WinAPI_GetThreadErrorMode ' +
4896 'WinAPI_GetThreadLocale WinAPI_GetThreadUILanguage ' +
4897 'WinAPI_GetTickCount WinAPI_GetTickCount64 ' +
4898 'WinAPI_GetTimeFormat WinAPI_GetTopWindow ' +
4899 'WinAPI_GetUDFColorMode WinAPI_GetUpdateRect ' +
4900 'WinAPI_GetUpdateRgn WinAPI_GetUserDefaultLangID ' +
4901 'WinAPI_GetUserDefaultLCID WinAPI_GetUserDefaultUILanguage ' +
4902 'WinAPI_GetUserGeoID WinAPI_GetUserObjectInformation ' +
4903 'WinAPI_GetVersion WinAPI_GetVersionEx ' +
4904 'WinAPI_GetVolumeInformation WinAPI_GetVolumeInformationByHandle ' +
4905 'WinAPI_GetVolumeNameForVolumeMountPoint WinAPI_GetWindow ' +
4906 'WinAPI_GetWindowDC WinAPI_GetWindowDisplayAffinity ' +
4907 'WinAPI_GetWindowExt WinAPI_GetWindowFileName ' +
4908 'WinAPI_GetWindowHeight WinAPI_GetWindowInfo ' +
4909 'WinAPI_GetWindowLong WinAPI_GetWindowOrg ' +
4910 'WinAPI_GetWindowPlacement WinAPI_GetWindowRect ' +
4911 'WinAPI_GetWindowRgn WinAPI_GetWindowRgnBox ' +
4912 'WinAPI_GetWindowSubclass WinAPI_GetWindowText ' +
4913 'WinAPI_GetWindowTheme WinAPI_GetWindowThreadProcessId ' +
4914 'WinAPI_GetWindowWidth WinAPI_GetWorkArea ' +
4915 'WinAPI_GetWorldTransform WinAPI_GetXYFromPoint ' +
4916 'WinAPI_GlobalMemoryStatus WinAPI_GradientFill ' +
4917 'WinAPI_GUIDFromString WinAPI_GUIDFromStringEx WinAPI_HashData ' +
4918 'WinAPI_HashString WinAPI_HiByte WinAPI_HideCaret ' +
4919 'WinAPI_HiDWord WinAPI_HiWord WinAPI_InflateRect ' +
4920 'WinAPI_InitMUILanguage WinAPI_InProcess ' +
4921 'WinAPI_IntersectClipRect WinAPI_IntersectRect ' +
4922 'WinAPI_IntToDWord WinAPI_IntToFloat WinAPI_InvalidateRect ' +
4923 'WinAPI_InvalidateRgn WinAPI_InvertANDBitmap ' +
4924 'WinAPI_InvertColor WinAPI_InvertRect WinAPI_InvertRgn ' +
4925 'WinAPI_IOCTL WinAPI_IsAlphaBitmap WinAPI_IsBadCodePtr ' +
4926 'WinAPI_IsBadReadPtr WinAPI_IsBadStringPtr ' +
4927 'WinAPI_IsBadWritePtr WinAPI_IsChild WinAPI_IsClassName ' +
4928 'WinAPI_IsDoorOpen WinAPI_IsElevated WinAPI_IsHungAppWindow ' +
4929 'WinAPI_IsIconic WinAPI_IsInternetConnected ' +
4930 'WinAPI_IsLoadKBLayout WinAPI_IsMemory ' +
4931 'WinAPI_IsNameInExpression WinAPI_IsNetworkAlive ' +
4932 'WinAPI_IsPathShared WinAPI_IsProcessInJob ' +
4933 'WinAPI_IsProcessorFeaturePresent WinAPI_IsRectEmpty ' +
4934 'WinAPI_IsThemeActive ' +
4935 'WinAPI_IsThemeBackgroundPartiallyTransparent ' +
4936 'WinAPI_IsThemePartDefined WinAPI_IsValidLocale ' +
4937 'WinAPI_IsWindow WinAPI_IsWindowEnabled WinAPI_IsWindowUnicode ' +
4938 'WinAPI_IsWindowVisible WinAPI_IsWow64Process ' +
4939 'WinAPI_IsWritable WinAPI_IsZoomed WinAPI_Keybd_Event ' +
4940 'WinAPI_KillTimer WinAPI_LineDDA WinAPI_LineTo ' +
4941 'WinAPI_LoadBitmap WinAPI_LoadCursor WinAPI_LoadCursorFromFile ' +
4942 'WinAPI_LoadIcon WinAPI_LoadIconMetric ' +
4943 'WinAPI_LoadIconWithScaleDown WinAPI_LoadImage ' +
4944 'WinAPI_LoadIndirectString WinAPI_LoadKeyboardLayout ' +
4945 'WinAPI_LoadLibrary WinAPI_LoadLibraryEx WinAPI_LoadMedia ' +
4946 'WinAPI_LoadResource WinAPI_LoadShell32Icon WinAPI_LoadString ' +
4947 'WinAPI_LoadStringEx WinAPI_LoByte WinAPI_LocalFree ' +
4948 'WinAPI_LockDevice WinAPI_LockFile WinAPI_LockResource ' +
4949 'WinAPI_LockWindowUpdate WinAPI_LockWorkStation WinAPI_LoDWord ' +
4950 'WinAPI_LongMid WinAPI_LookupIconIdFromDirectoryEx ' +
4951 'WinAPI_LoWord WinAPI_LPtoDP WinAPI_MAKELANGID ' +
4952 'WinAPI_MAKELCID WinAPI_MakeLong WinAPI_MakeQWord ' +
4953 'WinAPI_MakeWord WinAPI_MapViewOfFile WinAPI_MapVirtualKey ' +
4954 'WinAPI_MaskBlt WinAPI_MessageBeep WinAPI_MessageBoxCheck ' +
4955 'WinAPI_MessageBoxIndirect WinAPI_MirrorIcon ' +
4956 'WinAPI_ModifyWorldTransform WinAPI_MonitorFromPoint ' +
4957 'WinAPI_MonitorFromRect WinAPI_MonitorFromWindow ' +
4958 'WinAPI_Mouse_Event WinAPI_MoveFileEx WinAPI_MoveMemory ' +
4959 'WinAPI_MoveTo WinAPI_MoveToEx WinAPI_MoveWindow ' +
4960 'WinAPI_MsgBox WinAPI_MulDiv WinAPI_MultiByteToWideChar ' +
4961 'WinAPI_MultiByteToWideCharEx WinAPI_NtStatusToDosError ' +
4962 'WinAPI_OemToChar WinAPI_OffsetClipRgn WinAPI_OffsetPoints ' +
4963 'WinAPI_OffsetRect WinAPI_OffsetRgn WinAPI_OffsetWindowOrg ' +
4964 'WinAPI_OpenDesktop WinAPI_OpenFileById WinAPI_OpenFileDlg ' +
4965 'WinAPI_OpenFileMapping WinAPI_OpenIcon ' +
4966 'WinAPI_OpenInputDesktop WinAPI_OpenJobObject WinAPI_OpenMutex ' +
4967 'WinAPI_OpenProcess WinAPI_OpenProcessToken ' +
4968 'WinAPI_OpenSemaphore WinAPI_OpenThemeData ' +
4969 'WinAPI_OpenWindowStation WinAPI_PageSetupDlg ' +
4970 'WinAPI_PaintDesktop WinAPI_PaintRgn WinAPI_ParseURL ' +
4971 'WinAPI_ParseUserName WinAPI_PatBlt WinAPI_PathAddBackslash ' +
4972 'WinAPI_PathAddExtension WinAPI_PathAppend ' +
4973 'WinAPI_PathBuildRoot WinAPI_PathCanonicalize ' +
4974 'WinAPI_PathCommonPrefix WinAPI_PathCompactPath ' +
4975 'WinAPI_PathCompactPathEx WinAPI_PathCreateFromUrl ' +
4976 'WinAPI_PathFindExtension WinAPI_PathFindFileName ' +
4977 'WinAPI_PathFindNextComponent WinAPI_PathFindOnPath ' +
4978 'WinAPI_PathGetArgs WinAPI_PathGetCharType ' +
4979 'WinAPI_PathGetDriveNumber WinAPI_PathIsContentType ' +
4980 'WinAPI_PathIsDirectory WinAPI_PathIsDirectoryEmpty ' +
4981 'WinAPI_PathIsExe WinAPI_PathIsFileSpec ' +
4982 'WinAPI_PathIsLFNFileSpec WinAPI_PathIsRelative ' +
4983 'WinAPI_PathIsRoot WinAPI_PathIsSameRoot ' +
4984 'WinAPI_PathIsSystemFolder WinAPI_PathIsUNC ' +
4985 'WinAPI_PathIsUNCServer WinAPI_PathIsUNCServerShare ' +
4986 'WinAPI_PathMakeSystemFolder WinAPI_PathMatchSpec ' +
4987 'WinAPI_PathParseIconLocation WinAPI_PathRelativePathTo ' +
4988 'WinAPI_PathRemoveArgs WinAPI_PathRemoveBackslash ' +
4989 'WinAPI_PathRemoveExtension WinAPI_PathRemoveFileSpec ' +
4990 'WinAPI_PathRenameExtension WinAPI_PathSearchAndQualify ' +
4991 'WinAPI_PathSkipRoot WinAPI_PathStripPath ' +
4992 'WinAPI_PathStripToRoot WinAPI_PathToRegion ' +
4993 'WinAPI_PathUndecorate WinAPI_PathUnExpandEnvStrings ' +
4994 'WinAPI_PathUnmakeSystemFolder WinAPI_PathUnquoteSpaces ' +
4995 'WinAPI_PathYetAnotherMakeUniqueName WinAPI_PickIconDlg ' +
4996 'WinAPI_PlayEnhMetaFile WinAPI_PlaySound WinAPI_PlgBlt ' +
4997 'WinAPI_PointFromRect WinAPI_PolyBezier WinAPI_PolyBezierTo ' +
4998 'WinAPI_PolyDraw WinAPI_Polygon WinAPI_PostMessage ' +
4999 'WinAPI_PrimaryLangId WinAPI_PrintDlg WinAPI_PrintDlgEx ' +
5000 'WinAPI_PrintWindow WinAPI_ProgIDFromCLSID WinAPI_PtInRect ' +
5001 'WinAPI_PtInRectEx WinAPI_PtInRegion WinAPI_PtVisible ' +
5002 'WinAPI_QueryDosDevice WinAPI_QueryInformationJobObject ' +
5003 'WinAPI_QueryPerformanceCounter WinAPI_QueryPerformanceFrequency ' +
5004 'WinAPI_RadialGradientFill WinAPI_ReadDirectoryChanges ' +
5005 'WinAPI_ReadFile WinAPI_ReadProcessMemory WinAPI_Rectangle ' +
5006 'WinAPI_RectInRegion WinAPI_RectIsEmpty WinAPI_RectVisible ' +
5007 'WinAPI_RedrawWindow WinAPI_RegCloseKey ' +
5008 'WinAPI_RegConnectRegistry WinAPI_RegCopyTree ' +
5009 'WinAPI_RegCopyTreeEx WinAPI_RegCreateKey ' +
5010 'WinAPI_RegDeleteEmptyKey WinAPI_RegDeleteKey ' +
5011 'WinAPI_RegDeleteKeyValue WinAPI_RegDeleteTree ' +
5012 'WinAPI_RegDeleteTreeEx WinAPI_RegDeleteValue ' +
5013 'WinAPI_RegDisableReflectionKey WinAPI_RegDuplicateHKey ' +
5014 'WinAPI_RegEnableReflectionKey WinAPI_RegEnumKey ' +
5015 'WinAPI_RegEnumValue WinAPI_RegFlushKey ' +
5016 'WinAPI_RegisterApplicationRestart WinAPI_RegisterClass ' +
5017 'WinAPI_RegisterClassEx WinAPI_RegisterHotKey ' +
5018 'WinAPI_RegisterPowerSettingNotification ' +
5019 'WinAPI_RegisterRawInputDevices WinAPI_RegisterShellHookWindow ' +
5020 'WinAPI_RegisterWindowMessage WinAPI_RegLoadMUIString ' +
5021 'WinAPI_RegNotifyChangeKeyValue WinAPI_RegOpenKey ' +
5022 'WinAPI_RegQueryInfoKey WinAPI_RegQueryLastWriteTime ' +
5023 'WinAPI_RegQueryMultipleValues WinAPI_RegQueryReflectionKey ' +
5024 'WinAPI_RegQueryValue WinAPI_RegRestoreKey WinAPI_RegSaveKey ' +
5025 'WinAPI_RegSetValue WinAPI_ReleaseCapture WinAPI_ReleaseDC ' +
5026 'WinAPI_ReleaseMutex WinAPI_ReleaseSemaphore ' +
5027 'WinAPI_ReleaseStream WinAPI_RemoveClipboardFormatListener ' +
5028 'WinAPI_RemoveDirectory WinAPI_RemoveFontMemResourceEx ' +
5029 'WinAPI_RemoveFontResourceEx WinAPI_RemoveWindowSubclass ' +
5030 'WinAPI_ReOpenFile WinAPI_ReplaceFile WinAPI_ReplaceTextDlg ' +
5031 'WinAPI_ResetEvent WinAPI_RestartDlg WinAPI_RestoreDC ' +
5032 'WinAPI_RGB WinAPI_RotatePoints WinAPI_RoundRect ' +
5033 'WinAPI_SaveDC WinAPI_SaveFileDlg WinAPI_SaveHBITMAPToFile ' +
5034 'WinAPI_SaveHICONToFile WinAPI_ScaleWindowExt ' +
5035 'WinAPI_ScreenToClient WinAPI_SearchPath WinAPI_SelectClipPath ' +
5036 'WinAPI_SelectClipRgn WinAPI_SelectObject ' +
5037 'WinAPI_SendMessageTimeout WinAPI_SetActiveWindow ' +
5038 'WinAPI_SetArcDirection WinAPI_SetBitmapBits ' +
5039 'WinAPI_SetBitmapDimensionEx WinAPI_SetBkColor ' +
5040 'WinAPI_SetBkMode WinAPI_SetBoundsRect WinAPI_SetBrushOrg ' +
5041 'WinAPI_SetCapture WinAPI_SetCaretBlinkTime WinAPI_SetCaretPos ' +
5042 'WinAPI_SetClassLongEx WinAPI_SetColorAdjustment ' +
5043 'WinAPI_SetCompression WinAPI_SetCurrentDirectory ' +
5044 'WinAPI_SetCurrentProcessExplicitAppUserModelID WinAPI_SetCursor ' +
5045 'WinAPI_SetDCBrushColor WinAPI_SetDCPenColor ' +
5046 'WinAPI_SetDefaultPrinter WinAPI_SetDeviceGammaRamp ' +
5047 'WinAPI_SetDIBColorTable WinAPI_SetDIBits ' +
5048 'WinAPI_SetDIBitsToDevice WinAPI_SetDllDirectory ' +
5049 'WinAPI_SetEndOfFile WinAPI_SetEnhMetaFileBits ' +
5050 'WinAPI_SetErrorMode WinAPI_SetEvent WinAPI_SetFileAttributes ' +
5051 'WinAPI_SetFileInformationByHandleEx WinAPI_SetFilePointer ' +
5052 'WinAPI_SetFilePointerEx WinAPI_SetFileShortName ' +
5053 'WinAPI_SetFileValidData WinAPI_SetFocus WinAPI_SetFont ' +
5054 'WinAPI_SetForegroundWindow WinAPI_SetFRBuffer ' +
5055 'WinAPI_SetGraphicsMode WinAPI_SetHandleInformation ' +
5056 'WinAPI_SetInformationJobObject WinAPI_SetKeyboardLayout ' +
5057 'WinAPI_SetKeyboardState WinAPI_SetLastError ' +
5058 'WinAPI_SetLayeredWindowAttributes WinAPI_SetLocaleInfo ' +
5059 'WinAPI_SetMapMode WinAPI_SetMessageExtraInfo WinAPI_SetParent ' +
5060 'WinAPI_SetPixel WinAPI_SetPolyFillMode ' +
5061 'WinAPI_SetPriorityClass WinAPI_SetProcessAffinityMask ' +
5062 'WinAPI_SetProcessShutdownParameters ' +
5063 'WinAPI_SetProcessWindowStation WinAPI_SetRectRgn ' +
5064 'WinAPI_SetROP2 WinAPI_SetSearchPathMode ' +
5065 'WinAPI_SetStretchBltMode WinAPI_SetSysColors ' +
5066 'WinAPI_SetSystemCursor WinAPI_SetTextAlign ' +
5067 'WinAPI_SetTextCharacterExtra WinAPI_SetTextColor ' +
5068 'WinAPI_SetTextJustification WinAPI_SetThemeAppProperties ' +
5069 'WinAPI_SetThreadDesktop WinAPI_SetThreadErrorMode ' +
5070 'WinAPI_SetThreadExecutionState WinAPI_SetThreadLocale ' +
5071 'WinAPI_SetThreadUILanguage WinAPI_SetTimer ' +
5072 'WinAPI_SetUDFColorMode WinAPI_SetUserGeoID ' +
5073 'WinAPI_SetUserObjectInformation WinAPI_SetVolumeMountPoint ' +
5074 'WinAPI_SetWindowDisplayAffinity WinAPI_SetWindowExt ' +
5075 'WinAPI_SetWindowLong WinAPI_SetWindowOrg ' +
5076 'WinAPI_SetWindowPlacement WinAPI_SetWindowPos ' +
5077 'WinAPI_SetWindowRgn WinAPI_SetWindowsHookEx ' +
5078 'WinAPI_SetWindowSubclass WinAPI_SetWindowText ' +
5079 'WinAPI_SetWindowTheme WinAPI_SetWinEventHook ' +
5080 'WinAPI_SetWorldTransform WinAPI_SfcIsFileProtected ' +
5081 'WinAPI_SfcIsKeyProtected WinAPI_ShellAboutDlg ' +
5082 'WinAPI_ShellAddToRecentDocs WinAPI_ShellChangeNotify ' +
5083 'WinAPI_ShellChangeNotifyDeregister ' +
5084 'WinAPI_ShellChangeNotifyRegister WinAPI_ShellCreateDirectory ' +
5085 'WinAPI_ShellEmptyRecycleBin WinAPI_ShellExecute ' +
5086 'WinAPI_ShellExecuteEx WinAPI_ShellExtractAssociatedIcon ' +
5087 'WinAPI_ShellExtractIcon WinAPI_ShellFileOperation ' +
5088 'WinAPI_ShellFlushSFCache WinAPI_ShellGetFileInfo ' +
5089 'WinAPI_ShellGetIconOverlayIndex WinAPI_ShellGetImageList ' +
5090 'WinAPI_ShellGetKnownFolderIDList WinAPI_ShellGetKnownFolderPath ' +
5091 'WinAPI_ShellGetLocalizedName WinAPI_ShellGetPathFromIDList ' +
5092 'WinAPI_ShellGetSetFolderCustomSettings WinAPI_ShellGetSettings ' +
5093 'WinAPI_ShellGetSpecialFolderLocation ' +
5094 'WinAPI_ShellGetSpecialFolderPath WinAPI_ShellGetStockIconInfo ' +
5095 'WinAPI_ShellILCreateFromPath WinAPI_ShellNotifyIcon ' +
5096 'WinAPI_ShellNotifyIconGetRect WinAPI_ShellObjectProperties ' +
5097 'WinAPI_ShellOpenFolderAndSelectItems WinAPI_ShellOpenWithDlg ' +
5098 'WinAPI_ShellQueryRecycleBin ' +
5099 'WinAPI_ShellQueryUserNotificationState ' +
5100 'WinAPI_ShellRemoveLocalizedName WinAPI_ShellRestricted ' +
5101 'WinAPI_ShellSetKnownFolderPath WinAPI_ShellSetLocalizedName ' +
5102 'WinAPI_ShellSetSettings WinAPI_ShellStartNetConnectionDlg ' +
5103 'WinAPI_ShellUpdateImage WinAPI_ShellUserAuthenticationDlg ' +
5104 'WinAPI_ShellUserAuthenticationDlgEx WinAPI_ShortToWord ' +
5105 'WinAPI_ShowCaret WinAPI_ShowCursor WinAPI_ShowError ' +
5106 'WinAPI_ShowLastError WinAPI_ShowMsg WinAPI_ShowOwnedPopups ' +
5107 'WinAPI_ShowWindow WinAPI_ShutdownBlockReasonCreate ' +
5108 'WinAPI_ShutdownBlockReasonDestroy ' +
5109 'WinAPI_ShutdownBlockReasonQuery WinAPI_SizeOfResource ' +
5110 'WinAPI_StretchBlt WinAPI_StretchDIBits ' +
5111 'WinAPI_StrFormatByteSize WinAPI_StrFormatByteSizeEx ' +
5112 'WinAPI_StrFormatKBSize WinAPI_StrFromTimeInterval ' +
5113 'WinAPI_StringFromGUID WinAPI_StringLenA WinAPI_StringLenW ' +
5114 'WinAPI_StrLen WinAPI_StrokeAndFillPath WinAPI_StrokePath ' +
5115 'WinAPI_StructToArray WinAPI_SubLangId WinAPI_SubtractRect ' +
5116 'WinAPI_SwapDWord WinAPI_SwapQWord WinAPI_SwapWord ' +
5117 'WinAPI_SwitchColor WinAPI_SwitchDesktop ' +
5118 'WinAPI_SwitchToThisWindow WinAPI_SystemParametersInfo ' +
5119 'WinAPI_TabbedTextOut WinAPI_TerminateJobObject ' +
5120 'WinAPI_TerminateProcess WinAPI_TextOut WinAPI_TileWindows ' +
5121 'WinAPI_TrackMouseEvent WinAPI_TransparentBlt ' +
5122 'WinAPI_TwipsPerPixelX WinAPI_TwipsPerPixelY ' +
5123 'WinAPI_UnhookWindowsHookEx WinAPI_UnhookWinEvent ' +
5124 'WinAPI_UnionRect WinAPI_UnionStruct WinAPI_UniqueHardwareID ' +
5125 'WinAPI_UnloadKeyboardLayout WinAPI_UnlockFile ' +
5126 'WinAPI_UnmapViewOfFile WinAPI_UnregisterApplicationRestart ' +
5127 'WinAPI_UnregisterClass WinAPI_UnregisterHotKey ' +
5128 'WinAPI_UnregisterPowerSettingNotification ' +
5129 'WinAPI_UpdateLayeredWindow WinAPI_UpdateLayeredWindowEx ' +
5130 'WinAPI_UpdateLayeredWindowIndirect WinAPI_UpdateResource ' +
5131 'WinAPI_UpdateWindow WinAPI_UrlApplyScheme ' +
5132 'WinAPI_UrlCanonicalize WinAPI_UrlCombine WinAPI_UrlCompare ' +
5133 'WinAPI_UrlCreateFromPath WinAPI_UrlFixup WinAPI_UrlGetPart ' +
5134 'WinAPI_UrlHash WinAPI_UrlIs WinAPI_UserHandleGrantAccess ' +
5135 'WinAPI_ValidateRect WinAPI_ValidateRgn WinAPI_VerQueryRoot ' +
5136 'WinAPI_VerQueryValue WinAPI_VerQueryValueEx ' +
5137 'WinAPI_WaitForInputIdle WinAPI_WaitForMultipleObjects ' +
5138 'WinAPI_WaitForSingleObject WinAPI_WideCharToMultiByte ' +
5139 'WinAPI_WidenPath WinAPI_WindowFromDC WinAPI_WindowFromPoint ' +
5140 'WinAPI_WordToShort WinAPI_Wow64EnableWow64FsRedirection ' +
5141 'WinAPI_WriteConsole WinAPI_WriteFile ' +
5142 'WinAPI_WriteProcessMemory WinAPI_ZeroMemory ' +
5143 'WinNet_AddConnection WinNet_AddConnection2 ' +
5144 'WinNet_AddConnection3 WinNet_CancelConnection ' +
5145 'WinNet_CancelConnection2 WinNet_CloseEnum ' +
5146 'WinNet_ConnectionDialog WinNet_ConnectionDialog1 ' +
5147 'WinNet_DisconnectDialog WinNet_DisconnectDialog1 ' +
5148 'WinNet_EnumResource WinNet_GetConnection ' +
5149 'WinNet_GetConnectionPerformance WinNet_GetLastError ' +
5150 'WinNet_GetNetworkInformation WinNet_GetProviderName ' +
5151 'WinNet_GetResourceInformation WinNet_GetResourceParent ' +
5152 'WinNet_GetUniversalName WinNet_GetUser WinNet_OpenEnum ' +
5153 'WinNet_RestoreConnection WinNet_UseConnection Word_Create ' +
5154 'Word_DocAdd Word_DocAttach Word_DocClose Word_DocExport ' +
5155 'Word_DocFind Word_DocFindReplace Word_DocGet ' +
5156 'Word_DocLinkAdd Word_DocLinkGet Word_DocOpen ' +
5157 'Word_DocPictureAdd Word_DocPrint Word_DocRangeSet ' +
5158 'Word_DocSave Word_DocSaveAs Word_DocTableRead ' +
5159 'Word_DocTableWrite Word_Quit',
5160
5161 COMMENT = {
5162 variants: [
5163 hljs.COMMENT(';', '$', {relevance: 0}),
5164 hljs.COMMENT('#cs', '#ce'),
5165 hljs.COMMENT('#comments-start', '#comments-end')
5166 ]
5167 },
5168
5169 VARIABLE = {
5170 begin: '\\$[A-z0-9_]+'
5171 },
5172
5173 STRING = {
5174 className: 'string',
5175 variants: [{
5176 begin: /"/,
5177 end: /"/,
5178 contains: [{
5179 begin: /""/,
5180 relevance: 0
5181 }]
5182 }, {
5183 begin: /'/,
5184 end: /'/,
5185 contains: [{
5186 begin: /''/,
5187 relevance: 0
5188 }]
5189 }]
5190 },
5191
5192 NUMBER = {
5193 variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]
5194 },
5195
5196 PREPROCESSOR = {
5197 className: 'meta',
5198 begin: '#',
5199 end: '$',
5200 keywords: {'meta-keyword': 'include include-once NoTrayIcon OnAutoItStartRegister RequireAdmin pragma ' +
5201 'Au3Stripper_Ignore_Funcs Au3Stripper_Ignore_Variables ' +
5202 'Au3Stripper_Off Au3Stripper_On Au3Stripper_Parameters ' +
5203 'AutoIt3Wrapper_Add_Constants AutoIt3Wrapper_Au3Check_Parameters ' +
5204 'AutoIt3Wrapper_Au3Check_Stop_OnWarning AutoIt3Wrapper_Aut2Exe ' +
5205 'AutoIt3Wrapper_AutoIt3 AutoIt3Wrapper_AutoIt3Dir ' +
5206 'AutoIt3Wrapper_Change2CUI AutoIt3Wrapper_Compile_Both ' +
5207 'AutoIt3Wrapper_Compression AutoIt3Wrapper_EndIf ' +
5208 'AutoIt3Wrapper_Icon AutoIt3Wrapper_If_Compile ' +
5209 'AutoIt3Wrapper_If_Run AutoIt3Wrapper_Jump_To_First_Error ' +
5210 'AutoIt3Wrapper_OutFile AutoIt3Wrapper_OutFile_Type ' +
5211 'AutoIt3Wrapper_OutFile_X64 AutoIt3Wrapper_PlugIn_Funcs ' +
5212 'AutoIt3Wrapper_Res_Comment Autoit3Wrapper_Res_Compatibility ' +
5213 'AutoIt3Wrapper_Res_Description AutoIt3Wrapper_Res_Field ' +
5214 'AutoIt3Wrapper_Res_File_Add AutoIt3Wrapper_Res_FileVersion ' +
5215 'AutoIt3Wrapper_Res_FileVersion_AutoIncrement ' +
5216 'AutoIt3Wrapper_Res_Icon_Add AutoIt3Wrapper_Res_Language ' +
5217 'AutoIt3Wrapper_Res_LegalCopyright ' +
5218 'AutoIt3Wrapper_Res_ProductVersion ' +
5219 'AutoIt3Wrapper_Res_requestedExecutionLevel ' +
5220 'AutoIt3Wrapper_Res_SaveSource AutoIt3Wrapper_Run_After ' +
5221 'AutoIt3Wrapper_Run_Au3Check AutoIt3Wrapper_Run_Au3Stripper ' +
5222 'AutoIt3Wrapper_Run_Before AutoIt3Wrapper_Run_Debug_Mode ' +
5223 'AutoIt3Wrapper_Run_SciTE_Minimized ' +
5224 'AutoIt3Wrapper_Run_SciTE_OutputPane_Minimized ' +
5225 'AutoIt3Wrapper_Run_Tidy AutoIt3Wrapper_ShowProgress ' +
5226 'AutoIt3Wrapper_Testing AutoIt3Wrapper_Tidy_Stop_OnError ' +
5227 'AutoIt3Wrapper_UPX_Parameters AutoIt3Wrapper_UseUPX ' +
5228 'AutoIt3Wrapper_UseX64 AutoIt3Wrapper_Version ' +
5229 'AutoIt3Wrapper_Versioning AutoIt3Wrapper_Versioning_Parameters ' +
5230 'Tidy_Off Tidy_On Tidy_Parameters EndRegion Region'},
5231 contains: [{
5232 begin: /\\\n/,
5233 relevance: 0
5234 }, {
5235 beginKeywords: 'include',
5236 keywords: {'meta-keyword': 'include'},
5237 end: '$',
5238 contains: [
5239 STRING, {
5240 className: 'meta-string',
5241 variants: [{
5242 begin: '<',
5243 end: '>'
5244 }, {
5245 begin: /"/,
5246 end: /"/,
5247 contains: [{
5248 begin: /""/,
5249 relevance: 0
5250 }]
5251 }, {
5252 begin: /'/,
5253 end: /'/,
5254 contains: [{
5255 begin: /''/,
5256 relevance: 0
5257 }]
5258 }]
5259 }
5260 ]
5261 },
5262 STRING,
5263 COMMENT
5264 ]
5265 },
5266
5267 CONSTANT = {
5268 className: 'symbol',
5269 // begin: '@',
5270 // end: '$',
5271 // 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',
5272 // relevance: 5
5273 begin: '@[A-z0-9_]+'
5274 },
5275
5276 FUNCTION = {
5277 className: 'function',
5278 beginKeywords: 'Func',
5279 end: '$',
5280 illegal: '\\$|\\[|%',
5281 contains: [
5282 hljs.UNDERSCORE_TITLE_MODE, {
5283 className: 'params',
5284 begin: '\\(',
5285 end: '\\)',
5286 contains: [
5287 VARIABLE,
5288 STRING,
5289 NUMBER
5290 ]
5291 }
5292 ]
5293 };
5294
5295 return {
5296 case_insensitive: true,
5297 illegal: /\/\*/,
5298 keywords: {
5299 keyword: KEYWORDS,
5300 built_in: BUILT_IN,
5301 literal: LITERAL
5302 },
5303 contains: [
5304 COMMENT,
5305 VARIABLE,
5306 STRING,
5307 NUMBER,
5308 PREPROCESSOR,
5309 CONSTANT,
5310 FUNCTION
5311 ]
5312 }
5313}
5314},{name:"avrasm",create:/*
5315Language: AVR Assembler
5316Author: Vladimir Ermakov <vooon341@gmail.com>
5317Category: assembler
5318*/
5319
5320function(hljs) {
5321 return {
5322 case_insensitive: true,
5323 lexemes: '\\.?' + hljs.IDENT_RE,
5324 keywords: {
5325 keyword:
5326 /* mnemonic */
5327 'adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs ' +
5328 'brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr ' +
5329 'clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor ' +
5330 'fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul ' +
5331 'muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs ' +
5332 'sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub ' +
5333 'subi swap tst wdr',
5334 built_in:
5335 /* general purpose registers */
5336 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 ' +
5337 'r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ' +
5338 /* IO Registers (ATMega128) */
5339 'ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h ' +
5340 'tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ' +
5341 'ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ' +
5342 'ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk ' +
5343 'tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ' +
5344 'ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr ' +
5345 'porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ' +
5346 'ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf',
5347 meta:
5348 '.byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list ' +
5349 '.listmac .macro .nolist .org .set'
5350 },
5351 contains: [
5352 hljs.C_BLOCK_COMMENT_MODE,
5353 hljs.COMMENT(
5354 ';',
5355 '$',
5356 {
5357 relevance: 0
5358 }
5359 ),
5360 hljs.C_NUMBER_MODE, // 0x..., decimal, float
5361 hljs.BINARY_NUMBER_MODE, // 0b...
5362 {
5363 className: 'number',
5364 begin: '\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)' // $..., 0o...
5365 },
5366 hljs.QUOTE_STRING_MODE,
5367 {
5368 className: 'string',
5369 begin: '\'', end: '[^\\\\]\'',
5370 illegal: '[^\\\\][^\']'
5371 },
5372 {className: 'symbol', begin: '^[A-Za-z0-9_.$]+:'},
5373 {className: 'meta', begin: '#', end: '$'},
5374 { // ะฟะพะดัั‚ะฐะฝะพะฒะบะฐ ะฒ ยซ.macroยป
5375 className: 'subst',
5376 begin: '@[0-9]+'
5377 }
5378 ]
5379 };
5380}
5381},{name:"axapta",create:/*
5382Language: Axapta
5383Author: Dmitri Roudakov <dmitri@roudakov.ru>
5384Category: enterprise
5385*/
5386
5387function(hljs) {
5388 return {
5389 keywords: 'false int abstract private char boolean static null if for true ' +
5390 'while long throw finally protected final return void enum else ' +
5391 'break new catch byte super case short default double public try this switch ' +
5392 'continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count ' +
5393 'order group by asc desc index hint like dispaly edit client server ttsbegin ' +
5394 'ttscommit str real date container anytype common div mod',
5395 contains: [
5396 hljs.C_LINE_COMMENT_MODE,
5397 hljs.C_BLOCK_COMMENT_MODE,
5398 hljs.APOS_STRING_MODE,
5399 hljs.QUOTE_STRING_MODE,
5400 hljs.C_NUMBER_MODE,
5401 {
5402 className: 'meta',
5403 begin: '#', end: '$'
5404 },
5405 {
5406 className: 'class',
5407 beginKeywords: 'class interface', end: '{', excludeEnd: true,
5408 illegal: ':',
5409 contains: [
5410 {beginKeywords: 'extends implements'},
5411 hljs.UNDERSCORE_TITLE_MODE
5412 ]
5413 }
5414 ]
5415 };
5416}
5417},{name:"bash",create:/*
5418Language: Bash
5419Author: vah <vahtenberg@gmail.com>
5420Contributrors: Benjamin Pannell <contact@sierrasoftworks.com>
5421Category: common
5422*/
5423
5424function(hljs) {
5425 var VAR = {
5426 className: 'variable',
5427 variants: [
5428 {begin: /\$[\w\d#@][\w\d_]*/},
5429 {begin: /\$\{(.*?)}/}
5430 ]
5431 };
5432 var QUOTE_STRING = {
5433 className: 'string',
5434 begin: /"/, end: /"/,
5435 contains: [
5436 hljs.BACKSLASH_ESCAPE,
5437 VAR,
5438 {
5439 className: 'variable',
5440 begin: /\$\(/, end: /\)/,
5441 contains: [hljs.BACKSLASH_ESCAPE]
5442 }
5443 ]
5444 };
5445 var APOS_STRING = {
5446 className: 'string',
5447 begin: /'/, end: /'/
5448 };
5449
5450 return {
5451 aliases: ['sh', 'zsh'],
5452 lexemes: /-?[a-z\.]+/,
5453 keywords: {
5454 keyword:
5455 'if then else elif fi for while in do done case esac function',
5456 literal:
5457 'true false',
5458 built_in:
5459 // Shell built-ins
5460 // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html
5461 'break cd continue eval exec exit export getopts hash pwd readonly return shift test times ' +
5462 'trap umask unset ' +
5463 // Bash built-ins
5464 'alias bind builtin caller command declare echo enable help let local logout mapfile printf ' +
5465 'read readarray source type typeset ulimit unalias ' +
5466 // Shell modifiers
5467 'set shopt ' +
5468 // Zsh built-ins
5469 'autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles ' +
5470 'compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate ' +
5471 'fc fg float functions getcap getln history integer jobs kill limit log noglob popd print ' +
5472 'pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit ' +
5473 'unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof ' +
5474 'zpty zregexparse zsocket zstyle ztcp',
5475 _:
5476 '-ne -eq -lt -gt -f -d -e -s -l -a' // relevance booster
5477 },
5478 contains: [
5479 {
5480 className: 'meta',
5481 begin: /^#![^\n]+sh\s*$/,
5482 relevance: 10
5483 },
5484 {
5485 className: 'function',
5486 begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/,
5487 returnBegin: true,
5488 contains: [hljs.inherit(hljs.TITLE_MODE, {begin: /\w[\w\d_]*/})],
5489 relevance: 0
5490 },
5491 hljs.HASH_COMMENT_MODE,
5492 QUOTE_STRING,
5493 APOS_STRING,
5494 VAR
5495 ]
5496 };
5497}
5498},{name:"brainfuck",create:/*
5499Language: Brainfuck
5500Author: Evgeny Stepanischev <imbolk@gmail.com>
5501*/
5502
5503function(hljs){
5504 var LITERAL = {
5505 className: 'literal',
5506 begin: '[\\+\\-]',
5507 relevance: 0
5508 };
5509 return {
5510 aliases: ['bf'],
5511 contains: [
5512 hljs.COMMENT(
5513 '[^\\[\\]\\.,\\+\\-<> \r\n]',
5514 '[\\[\\]\\.,\\+\\-<> \r\n]',
5515 {
5516 returnEnd: true,
5517 relevance: 0
5518 }
5519 ),
5520 {
5521 className: 'title',
5522 begin: '[\\[\\]]',
5523 relevance: 0
5524 },
5525 {
5526 className: 'string',
5527 begin: '[\\.,]',
5528 relevance: 0
5529 },
5530 {
5531 // this mode works as the only relevance counter
5532 begin: /\+\+|\-\-/, returnBegin: true,
5533 contains: [LITERAL]
5534 },
5535 LITERAL
5536 ]
5537 };
5538}
5539},{name:"cal",create:/*
5540Language: C/AL
5541Author: Kenneth Fuglsang Christensen <kfuglsang@gmail.com>
5542Description: Provides highlighting of Microsoft Dynamics NAV C/AL code files
5543*/
5544
5545function(hljs) {
5546 var KEYWORDS =
5547 'div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to ' +
5548 'until while with var';
5549 var LITERALS = 'false true';
5550 var COMMENT_MODES = [
5551 hljs.C_LINE_COMMENT_MODE,
5552 hljs.COMMENT(
5553 /\{/,
5554 /\}/,
5555 {
5556 relevance: 0
5557 }
5558 ),
5559 hljs.COMMENT(
5560 /\(\*/,
5561 /\*\)/,
5562 {
5563 relevance: 10
5564 }
5565 )
5566 ];
5567 var STRING = {
5568 className: 'string',
5569 begin: /'/, end: /'/,
5570 contains: [{begin: /''/}]
5571 };
5572 var CHAR_STRING = {
5573 className: 'string', begin: /(#\d+)+/
5574 };
5575 var DATE = {
5576 className: 'number',
5577 begin: '\\b\\d+(\\.\\d+)?(DT|D|T)',
5578 relevance: 0
5579 };
5580 var DBL_QUOTED_VARIABLE = {
5581 className: 'string', // not a string technically but makes sense to be highlighted in the same style
5582 begin: '"',
5583 end: '"'
5584 };
5585
5586 var PROCEDURE = {
5587 className: 'function',
5588 beginKeywords: 'procedure', end: /[:;]/,
5589 keywords: 'procedure|10',
5590 contains: [
5591 hljs.TITLE_MODE,
5592 {
5593 className: 'params',
5594 begin: /\(/, end: /\)/,
5595 keywords: KEYWORDS,
5596 contains: [STRING, CHAR_STRING]
5597 }
5598 ].concat(COMMENT_MODES)
5599 };
5600
5601 var OBJECT = {
5602 className: 'class',
5603 begin: 'OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)',
5604 returnBegin: true,
5605 contains: [
5606 hljs.TITLE_MODE,
5607 PROCEDURE
5608 ]
5609 };
5610
5611 return {
5612 case_insensitive: true,
5613 keywords: { keyword: KEYWORDS, literal: LITERALS },
5614 illegal: /\/\*/,
5615 contains: [
5616 STRING, CHAR_STRING,
5617 DATE, DBL_QUOTED_VARIABLE,
5618 hljs.NUMBER_MODE,
5619 OBJECT,
5620 PROCEDURE
5621 ]
5622 };
5623}
5624},{name:"capnproto",create:/*
5625Language: Capโ€™n Proto
5626Author: Oleg Efimov <efimovov@gmail.com>
5627Description: Capโ€™n Proto message definition format
5628Category: protocols
5629*/
5630
5631function(hljs) {
5632 return {
5633 aliases: ['capnp'],
5634 keywords: {
5635 keyword:
5636 'struct enum interface union group import using const annotation extends in of on as with from fixed',
5637 built_in:
5638 'Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 ' +
5639 'Text Data AnyPointer AnyStruct Capability List',
5640 literal:
5641 'true false'
5642 },
5643 contains: [
5644 hljs.QUOTE_STRING_MODE,
5645 hljs.NUMBER_MODE,
5646 hljs.HASH_COMMENT_MODE,
5647 {
5648 className: 'meta',
5649 begin: /@0x[\w\d]{16};/,
5650 illegal: /\n/
5651 },
5652 {
5653 className: 'symbol',
5654 begin: /@\d+\b/
5655 },
5656 {
5657 className: 'class',
5658 beginKeywords: 'struct enum', end: /\{/,
5659 illegal: /\n/,
5660 contains: [
5661 hljs.inherit(hljs.TITLE_MODE, {
5662 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
5663 })
5664 ]
5665 },
5666 {
5667 className: 'class',
5668 beginKeywords: 'interface', end: /\{/,
5669 illegal: /\n/,
5670 contains: [
5671 hljs.inherit(hljs.TITLE_MODE, {
5672 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
5673 })
5674 ]
5675 }
5676 ]
5677 };
5678}
5679},{name:"ceylon",create:/*
5680Language: Ceylon
5681Author: Lucas Werkmeister <mail@lucaswerkmeister.de>
5682*/
5683function(hljs) {
5684 // 2.3. Identifiers and keywords
5685 var KEYWORDS =
5686 'assembly module package import alias class interface object given value ' +
5687 'assign void function new of extends satisfies abstracts in out return ' +
5688 'break continue throw assert dynamic if else switch case for while try ' +
5689 'catch finally then let this outer super is exists nonempty';
5690 // 7.4.1 Declaration Modifiers
5691 var DECLARATION_MODIFIERS =
5692 'shared abstract formal default actual variable late native deprecated' +
5693 'final sealed annotation suppressWarnings small';
5694 // 7.4.2 Documentation
5695 var DOCUMENTATION =
5696 'doc by license see throws tagged';
5697 var SUBST = {
5698 className: 'subst', excludeBegin: true, excludeEnd: true,
5699 begin: /``/, end: /``/,
5700 keywords: KEYWORDS,
5701 relevance: 10
5702 };
5703 var EXPRESSIONS = [
5704 {
5705 // verbatim string
5706 className: 'string',
5707 begin: '"""',
5708 end: '"""',
5709 relevance: 10
5710 },
5711 {
5712 // string literal or template
5713 className: 'string',
5714 begin: '"', end: '"',
5715 contains: [SUBST]
5716 },
5717 {
5718 // character literal
5719 className: 'string',
5720 begin: "'",
5721 end: "'"
5722 },
5723 {
5724 // numeric literal
5725 className: 'number',
5726 begin: '#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?',
5727 relevance: 0
5728 }
5729 ];
5730 SUBST.contains = EXPRESSIONS;
5731
5732 return {
5733 keywords: {
5734 keyword: KEYWORDS + ' ' + DECLARATION_MODIFIERS,
5735 meta: DOCUMENTATION
5736 },
5737 illegal: '\\$[^01]|#[^0-9a-fA-F]',
5738 contains: [
5739 hljs.C_LINE_COMMENT_MODE,
5740 hljs.COMMENT('/\\*', '\\*/', {contains: ['self']}),
5741 {
5742 // compiler annotation
5743 className: 'meta',
5744 begin: '@[a-z]\\w*(?:\\:\"[^\"]*\")?'
5745 }
5746 ].concat(EXPRESSIONS)
5747 };
5748}
5749},{name:"clojure-repl",create:/*
5750Language: Clojure REPL
5751Description: Clojure REPL sessions
5752Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
5753Requires: clojure.js
5754Category: lisp
5755*/
5756
5757function(hljs) {
5758 return {
5759 contains: [
5760 {
5761 className: 'meta',
5762 begin: /^([\w.-]+|\s*#_)=>/,
5763 starts: {
5764 end: /$/,
5765 subLanguage: 'clojure'
5766 }
5767 }
5768 ]
5769 }
5770}
5771},{name:"clojure",create:/*
5772Language: Clojure
5773Description: Clojure syntax (based on lisp.js)
5774Author: mfornos
5775Category: lisp
5776*/
5777
5778function(hljs) {
5779 var keywords = {
5780 'builtin-name':
5781 // Clojure keywords
5782 'def defonce cond apply if-not if-let if not not= = < > <= >= == + / * - rem '+
5783 'quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? '+
5784 'set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? '+
5785 'class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? '+
5786 'string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . '+
5787 'inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last '+
5788 'drop-while while intern condp case reduced cycle split-at split-with repeat replicate '+
5789 'iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext '+
5790 'nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends '+
5791 'add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler '+
5792 'set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter '+
5793 'monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or '+
5794 'when when-not when-let comp juxt partial sequence memoize constantly complement identity assert '+
5795 'peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast '+
5796 'sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import '+
5797 'refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! '+
5798 'assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger '+
5799 'bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline '+
5800 'flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking '+
5801 'assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! '+
5802 'reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! '+
5803 'new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty '+
5804 'hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list '+
5805 'disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer '+
5806 'chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate '+
5807 'unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta '+
5808 'lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize'
5809 };
5810
5811 var SYMBOLSTART = 'a-zA-Z_\\-!.?+*=<>&#\'';
5812 var SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*';
5813 var SIMPLE_NUMBER_RE = '[-+]?\\d+(\\.\\d+)?';
5814
5815 var SYMBOL = {
5816 begin: SYMBOL_RE,
5817 relevance: 0
5818 };
5819 var NUMBER = {
5820 className: 'number', begin: SIMPLE_NUMBER_RE,
5821 relevance: 0
5822 };
5823 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});
5824 var COMMENT = hljs.COMMENT(
5825 ';',
5826 '$',
5827 {
5828 relevance: 0
5829 }
5830 );
5831 var LITERAL = {
5832 className: 'literal',
5833 begin: /\b(true|false|nil)\b/
5834 };
5835 var COLLECTION = {
5836 begin: '[\\[\\{]', end: '[\\]\\}]'
5837 };
5838 var HINT = {
5839 className: 'comment',
5840 begin: '\\^' + SYMBOL_RE
5841 };
5842 var HINT_COL = hljs.COMMENT('\\^\\{', '\\}');
5843 var KEY = {
5844 className: 'symbol',
5845 begin: '[:]' + SYMBOL_RE
5846 };
5847 var LIST = {
5848 begin: '\\(', end: '\\)'
5849 };
5850 var BODY = {
5851 endsWithParent: true,
5852 relevance: 0
5853 };
5854 var NAME = {
5855 keywords: keywords,
5856 lexemes: SYMBOL_RE,
5857 className: 'name', begin: SYMBOL_RE,
5858 starts: BODY
5859 };
5860 var DEFAULT_CONTAINS = [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL, SYMBOL];
5861
5862 LIST.contains = [hljs.COMMENT('comment', ''), NAME, BODY];
5863 BODY.contains = DEFAULT_CONTAINS;
5864 COLLECTION.contains = DEFAULT_CONTAINS;
5865
5866 return {
5867 aliases: ['clj'],
5868 illegal: /\S/,
5869 contains: [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL]
5870 }
5871}
5872},{name:"cmake",create:/*
5873Language: CMake
5874Description: CMake is an open-source cross-platform system for build automation.
5875Author: Igor Kalnitsky <igor@kalnitsky.org>
5876Website: http://kalnitsky.org/
5877*/
5878
5879function(hljs) {
5880 return {
5881 aliases: ['cmake.in'],
5882 case_insensitive: true,
5883 keywords: {
5884 keyword:
5885 'add_custom_command add_custom_target add_definitions add_dependencies ' +
5886 'add_executable add_library add_subdirectory add_test aux_source_directory ' +
5887 'break build_command cmake_minimum_required cmake_policy configure_file ' +
5888 'create_test_sourcelist define_property else elseif enable_language enable_testing ' +
5889 'endforeach endfunction endif endmacro endwhile execute_process export find_file ' +
5890 'find_library find_package find_path find_program fltk_wrap_ui foreach function ' +
5891 'get_cmake_property get_directory_property get_filename_component get_property ' +
5892 'get_source_file_property get_target_property get_test_property if include ' +
5893 'include_directories include_external_msproject include_regular_expression install ' +
5894 'link_directories load_cache load_command macro mark_as_advanced message option ' +
5895 'output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return ' +
5896 'separate_arguments set set_directory_properties set_property ' +
5897 'set_source_files_properties set_target_properties set_tests_properties site_name ' +
5898 'source_group string target_link_libraries try_compile try_run unset variable_watch ' +
5899 'while build_name exec_program export_library_dependencies install_files ' +
5900 'install_programs install_targets link_libraries make_directory remove subdir_depends ' +
5901 'subdirs use_mangled_mesa utility_source variable_requires write_file ' +
5902 'qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or ' +
5903 'equal less greater strless strgreater strequal matches'
5904 },
5905 contains: [
5906 {
5907 className: 'variable',
5908 begin: '\\${', end: '}'
5909 },
5910 hljs.HASH_COMMENT_MODE,
5911 hljs.QUOTE_STRING_MODE,
5912 hljs.NUMBER_MODE
5913 ]
5914 };
5915}
5916},{name:"coffeescript",create:/*
5917Language: CoffeeScript
5918Author: Dmytrii Nagirniak <dnagir@gmail.com>
5919Contributors: Oleg Efimov <efimovov@gmail.com>, Cรฉdric Nรฉhรฉmie <cedric.nehemie@gmail.com>
5920Description: CoffeeScript is a programming language that transcompiles to JavaScript. For info about language see http://coffeescript.org/
5921Category: common, scripting
5922*/
5923
5924function(hljs) {
5925 var KEYWORDS = {
5926 keyword:
5927 // JS keywords
5928 'in if for while finally new do return else break catch instanceof throw try this ' +
5929 'switch continue typeof delete debugger super ' +
5930 // Coffee keywords
5931 'then unless until loop of by when and or is isnt not',
5932 literal:
5933 // JS literals
5934 'true false null undefined ' +
5935 // Coffee literals
5936 'yes no on off',
5937 built_in:
5938 'npm require console print module global window document'
5939 };
5940 var JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';
5941 var SUBST = {
5942 className: 'subst',
5943 begin: /#\{/, end: /}/,
5944 keywords: KEYWORDS
5945 };
5946 var EXPRESSIONS = [
5947 hljs.BINARY_NUMBER_MODE,
5948 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
5949 {
5950 className: 'string',
5951 variants: [
5952 {
5953 begin: /'''/, end: /'''/,
5954 contains: [hljs.BACKSLASH_ESCAPE]
5955 },
5956 {
5957 begin: /'/, end: /'/,
5958 contains: [hljs.BACKSLASH_ESCAPE]
5959 },
5960 {
5961 begin: /"""/, end: /"""/,
5962 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
5963 },
5964 {
5965 begin: /"/, end: /"/,
5966 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
5967 }
5968 ]
5969 },
5970 {
5971 className: 'regexp',
5972 variants: [
5973 {
5974 begin: '///', end: '///',
5975 contains: [SUBST, hljs.HASH_COMMENT_MODE]
5976 },
5977 {
5978 begin: '//[gim]*',
5979 relevance: 0
5980 },
5981 {
5982 // regex can't start with space to parse x / 2 / 3 as two divisions
5983 // regex can't start with *, and it supports an "illegal" in the main mode
5984 begin: /\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/
5985 }
5986 ]
5987 },
5988 {
5989 begin: '@' + JS_IDENT_RE // relevance booster
5990 },
5991 {
5992 begin: '`', end: '`',
5993 excludeBegin: true, excludeEnd: true,
5994 subLanguage: 'javascript'
5995 }
5996 ];
5997 SUBST.contains = EXPRESSIONS;
5998
5999 var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE});
6000 var PARAMS_RE = '(\\(.*\\))?\\s*\\B[-=]>';
6001 var PARAMS = {
6002 className: 'params',
6003 begin: '\\([^\\(]', returnBegin: true,
6004 /* We need another contained nameless mode to not have every nested
6005 pair of parens to be called "params" */
6006 contains: [{
6007 begin: /\(/, end: /\)/,
6008 keywords: KEYWORDS,
6009 contains: ['self'].concat(EXPRESSIONS)
6010 }]
6011 };
6012
6013 return {
6014 aliases: ['coffee', 'cson', 'iced'],
6015 keywords: KEYWORDS,
6016 illegal: /\/\*/,
6017 contains: EXPRESSIONS.concat([
6018 hljs.COMMENT('###', '###'),
6019 hljs.HASH_COMMENT_MODE,
6020 {
6021 className: 'function',
6022 begin: '^\\s*' + JS_IDENT_RE + '\\s*=\\s*' + PARAMS_RE, end: '[-=]>',
6023 returnBegin: true,
6024 contains: [TITLE, PARAMS]
6025 },
6026 {
6027 // anonymous function start
6028 begin: /[:\(,=]\s*/,
6029 relevance: 0,
6030 contains: [
6031 {
6032 className: 'function',
6033 begin: PARAMS_RE, end: '[-=]>',
6034 returnBegin: true,
6035 contains: [PARAMS]
6036 }
6037 ]
6038 },
6039 {
6040 className: 'class',
6041 beginKeywords: 'class',
6042 end: '$',
6043 illegal: /[:="\[\]]/,
6044 contains: [
6045 {
6046 beginKeywords: 'extends',
6047 endsWithParent: true,
6048 illegal: /[:="\[\]]/,
6049 contains: [TITLE]
6050 },
6051 TITLE
6052 ]
6053 },
6054 {
6055 begin: JS_IDENT_RE + ':', end: ':',
6056 returnBegin: true, returnEnd: true,
6057 relevance: 0
6058 }
6059 ])
6060 };
6061}
6062},{name:"cos",create:/*
6063Language: Cachรฉ Object Script
6064Author: Nikita Savchenko <zitros.lab@gmail.com>
6065Category: common
6066*/
6067function cos (hljs) {
6068
6069 var STRINGS = {
6070 className: 'string',
6071 variants: [
6072 {
6073 begin: '"',
6074 end: '"',
6075 contains: [{ // escaped
6076 begin: "\"\"",
6077 relevance: 0
6078 }]
6079 }
6080 ]
6081 };
6082
6083 var NUMBERS = {
6084 className: "number",
6085 begin: "\\b(\\d+(\\.\\d*)?|\\.\\d+)",
6086 relevance: 0
6087 };
6088
6089 var METHOD_TITLE = hljs.IDENT_RE + "\\s*\\(";
6090
6091 var COS_KEYWORDS = {
6092 keyword: [
6093
6094 "break", "catch", "close", "continue", "do", "d", "else",
6095 "elseif", "for", "goto", "halt", "hang", "h", "if", "job",
6096 "j", "kill", "k", "lock", "l", "merge", "new", "open", "quit",
6097 "q", "read", "r", "return", "set", "s", "tcommit", "throw",
6098 "trollback", "try", "tstart", "use", "view", "while", "write",
6099 "w", "xecute", "x", "zkill", "znspace", "zn", "ztrap", "zwrite",
6100 "zw", "zzdump", "zzwrite", "print", "zbreak", "zinsert", "zload",
6101 "zprint", "zremove", "zsave", "zzprint", "mv", "mvcall", "mvcrt",
6102 "mvdim", "mvprint", "zquit", "zsync", "ascii"
6103
6104 // registered function - no need in them due to all functions are highlighted,
6105 // but I'll just leave this here.
6106
6107 //"$bit", "$bitcount",
6108 //"$bitfind", "$bitlogic", "$case", "$char", "$classmethod", "$classname",
6109 //"$compile", "$data", "$decimal", "$double", "$extract", "$factor",
6110 //"$find", "$fnumber", "$get", "$increment", "$inumber", "$isobject",
6111 //"$isvaliddouble", "$isvalidnum", "$justify", "$length", "$list",
6112 //"$listbuild", "$listdata", "$listfind", "$listfromstring", "$listget",
6113 //"$listlength", "$listnext", "$listsame", "$listtostring", "$listvalid",
6114 //"$locate", "$match", "$method", "$name", "$nconvert", "$next",
6115 //"$normalize", "$now", "$number", "$order", "$parameter", "$piece",
6116 //"$prefetchoff", "$prefetchon", "$property", "$qlength", "$qsubscript",
6117 //"$query", "$random", "$replace", "$reverse", "$sconvert", "$select",
6118 //"$sortbegin", "$sortend", "$stack", "$text", "$translate", "$view",
6119 //"$wascii", "$wchar", "$wextract", "$wfind", "$wiswide", "$wlength",
6120 //"$wreverse", "$xecute", "$zabs", "$zarccos", "$zarcsin", "$zarctan",
6121 //"$zcos", "$zcot", "$zcsc", "$zdate", "$zdateh", "$zdatetime",
6122 //"$zdatetimeh", "$zexp", "$zhex", "$zln", "$zlog", "$zpower", "$zsec",
6123 //"$zsin", "$zsqr", "$ztan", "$ztime", "$ztimeh", "$zboolean",
6124 //"$zconvert", "$zcrc", "$zcyc", "$zdascii", "$zdchar", "$zf",
6125 //"$ziswide", "$zlascii", "$zlchar", "$zname", "$zposition", "$zqascii",
6126 //"$zqchar", "$zsearch", "$zseek", "$zstrip", "$zwascii", "$zwchar",
6127 //"$zwidth", "$zwpack", "$zwbpack", "$zwunpack", "$zwbunpack", "$zzenkaku",
6128 //"$change", "$mv", "$mvat", "$mvfmt", "$mvfmts", "$mviconv",
6129 //"$mviconvs", "$mvinmat", "$mvlover", "$mvoconv", "$mvoconvs", "$mvraise",
6130 //"$mvtrans", "$mvv", "$mvname", "$zbitand", "$zbitcount", "$zbitfind",
6131 //"$zbitget", "$zbitlen", "$zbitnot", "$zbitor", "$zbitset", "$zbitstr",
6132 //"$zbitxor", "$zincrement", "$znext", "$zorder", "$zprevious", "$zsort",
6133 //"device", "$ecode", "$estack", "$etrap", "$halt", "$horolog",
6134 //"$io", "$job", "$key", "$namespace", "$principal", "$quit", "$roles",
6135 //"$storage", "$system", "$test", "$this", "$tlevel", "$username",
6136 //"$x", "$y", "$za", "$zb", "$zchild", "$zeof", "$zeos", "$zerror",
6137 //"$zhorolog", "$zio", "$zjob", "$zmode", "$znspace", "$zparent", "$zpi",
6138 //"$zpos", "$zreference", "$zstorage", "$ztimestamp", "$ztimezone",
6139 //"$ztrap", "$zversion"
6140
6141 ].join(" ")
6142 };
6143
6144 return {
6145 case_insensitive: true,
6146 aliases: ["cos", "cls"],
6147 keywords: COS_KEYWORDS,
6148 contains: [
6149 NUMBERS,
6150 STRINGS,
6151 hljs.C_LINE_COMMENT_MODE,
6152 hljs.C_BLOCK_COMMENT_MODE,
6153 { // functions
6154 className: "built_in",
6155 begin: /\$\$?[a-zA-Z]+/
6156 },
6157 { // macro
6158 className: "keyword",
6159 begin: /\$\$\$[a-zA-Z]+/
6160 },
6161 { // globals
6162 className: "symbol",
6163 begin: /\^%?[a-zA-Z][\w]*/
6164 },
6165 { // static class reference constructions
6166 className: 'keyword',
6167 begin: /##class/
6168 },
6169
6170 // sub-languages: are not fully supported by hljs by 11/15/2015
6171 // left for the future implementation.
6172 {
6173 begin: /&sql\(/, end: /\)/,
6174 excludeBegin: true, excludeEnd: true,
6175 subLanguage: "sql"
6176 },
6177 {
6178 begin: /&(js|jscript|javascript)</, end: />/,
6179 excludeBegin: true, excludeEnd: true,
6180 subLanguage: "javascript"
6181 },
6182 {
6183 begin: /&html<\s*</, end: />\s*>/, // brakes first tag, but the only way to embed valid html
6184 subLanguage: "xml" // no html?
6185 }
6186 ]
6187 };
6188}
6189},{name:"cpp",create:/*
6190Language: C++
6191Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
6192Contributors: Evgeny Stepanischev <imbolk@gmail.com>, Zaven Muradyan <megalivoithos@gmail.com>, Roel Deckers <admin@codingcat.nl>
6193Category: common, system
6194*/
6195
6196function(hljs) {
6197 var CPP_PRIMATIVE_TYPES = {
6198 className: 'keyword',
6199 begin: '\\b[a-z\\d_]*_t\\b'
6200 };
6201
6202 var STRINGS = {
6203 className: 'string',
6204 variants: [
6205 hljs.inherit(hljs.QUOTE_STRING_MODE, { begin: '((u8?|U)|L)?"' }),
6206 {
6207 begin: '(u8?|U)?R"', end: '"',
6208 contains: [hljs.BACKSLASH_ESCAPE]
6209 },
6210 {
6211 begin: '\'\\\\?.', end: '\'',
6212 illegal: '.'
6213 }
6214 ]
6215 };
6216
6217 var NUMBERS = {
6218 className: 'number',
6219 variants: [
6220 { begin: '\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)' },
6221 { begin: hljs.C_NUMBER_RE }
6222 ],
6223 relevance: 0
6224 };
6225
6226 var PREPROCESSOR = {
6227 className: 'meta',
6228 begin: '#', end: '$',
6229 keywords: {'meta-keyword': 'if else elif endif define undef warning error line ' +
6230 'pragma ifdef ifndef'},
6231 contains: [
6232 {
6233 begin: /\\\n/, relevance: 0
6234 },
6235 {
6236 beginKeywords: 'include', end: '$',
6237 keywords: {'meta-keyword': 'include'},
6238 contains: [
6239 hljs.inherit(STRINGS, {className: 'meta-string'}),
6240 {
6241 className: 'meta-string',
6242 begin: '<', end: '>',
6243 illegal: '\\n',
6244 }
6245 ]
6246 },
6247 STRINGS,
6248 hljs.C_LINE_COMMENT_MODE,
6249 hljs.C_BLOCK_COMMENT_MODE
6250 ]
6251 };
6252
6253 var FUNCTION_TITLE = hljs.IDENT_RE + '\\s*\\(';
6254
6255 var CPP_KEYWORDS = {
6256 keyword: 'int float while private char catch export virtual operator sizeof ' +
6257 'dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace ' +
6258 'unsigned long volatile static protected bool template mutable if public friend ' +
6259 'do goto auto void enum else break extern using class asm case typeid ' +
6260 'short reinterpret_cast|10 default double register explicit signed typename try this ' +
6261 'switch continue inline delete alignof constexpr decltype ' +
6262 'noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary ' +
6263 'atomic_bool atomic_char atomic_schar ' +
6264 'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +
6265 'atomic_ullong',
6266 built_in: 'std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream ' +
6267 'auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set ' +
6268 'unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos ' +
6269 'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp ' +
6270 'fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper ' +
6271 'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow ' +
6272 'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp ' +
6273 'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan ' +
6274 'vfprintf vprintf vsprintf endl initializer_list unique_ptr',
6275 literal: 'true false nullptr NULL'
6276 };
6277
6278 return {
6279 aliases: ['c', 'cc', 'h', 'c++', 'h++', 'hpp'],
6280 keywords: CPP_KEYWORDS,
6281 illegal: '</',
6282 contains: [
6283 CPP_PRIMATIVE_TYPES,
6284 hljs.C_LINE_COMMENT_MODE,
6285 hljs.C_BLOCK_COMMENT_MODE,
6286 NUMBERS,
6287 STRINGS,
6288 PREPROCESSOR,
6289 {
6290 begin: '\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<', end: '>',
6291 keywords: CPP_KEYWORDS,
6292 contains: ['self', CPP_PRIMATIVE_TYPES]
6293 },
6294 {
6295 begin: hljs.IDENT_RE + '::',
6296 keywords: CPP_KEYWORDS
6297 },
6298 {
6299 // Expression keywords prevent 'keyword Name(...) or else if(...)' from
6300 // being recognized as a function definition
6301 beginKeywords: 'new throw return else',
6302 relevance: 0
6303 },
6304 {
6305 className: 'function',
6306 begin: '(' + hljs.IDENT_RE + '[\\*&\\s]+)+' + FUNCTION_TITLE,
6307 returnBegin: true, end: /[{;=]/,
6308 excludeEnd: true,
6309 keywords: CPP_KEYWORDS,
6310 illegal: /[^\w\s\*&]/,
6311 contains: [
6312 {
6313 begin: FUNCTION_TITLE, returnBegin: true,
6314 contains: [hljs.TITLE_MODE],
6315 relevance: 0
6316 },
6317 {
6318 className: 'params',
6319 begin: /\(/, end: /\)/,
6320 keywords: CPP_KEYWORDS,
6321 relevance: 0,
6322 contains: [
6323 hljs.C_LINE_COMMENT_MODE,
6324 hljs.C_BLOCK_COMMENT_MODE,
6325 STRINGS,
6326 NUMBERS
6327 ]
6328 },
6329 hljs.C_LINE_COMMENT_MODE,
6330 hljs.C_BLOCK_COMMENT_MODE,
6331 PREPROCESSOR
6332 ]
6333 }
6334 ]
6335 };
6336}
6337},{name:"crmsh",create:/*
6338Language: crmsh
6339Author: Kristoffer Gronlund <kgronlund@suse.com>
6340Website: http://crmsh.github.io
6341Description: Syntax Highlighting for the crmsh DSL
6342Category: config
6343*/
6344
6345function(hljs) {
6346 var RESOURCES = 'primitive rsc_template';
6347
6348 var COMMANDS = 'group clone ms master location colocation order fencing_topology ' +
6349 'rsc_ticket acl_target acl_group user role ' +
6350 'tag xml';
6351
6352 var PROPERTY_SETS = 'property rsc_defaults op_defaults';
6353
6354 var KEYWORDS = 'params meta operations op rule attributes utilization';
6355
6356 var OPERATORS = 'read write deny defined not_defined in_range date spec in ' +
6357 'ref reference attribute type xpath version and or lt gt tag ' +
6358 'lte gte eq ne \\';
6359
6360 var TYPES = 'number string';
6361
6362 var LITERALS = 'Master Started Slave Stopped start promote demote stop monitor true false';
6363
6364 return {
6365 aliases: ['crm', 'pcmk'],
6366 case_insensitive: true,
6367 keywords: {
6368 keyword: KEYWORDS + ' ' + OPERATORS + ' ' + TYPES,
6369 literal: LITERALS
6370 },
6371 contains: [
6372 hljs.HASH_COMMENT_MODE,
6373 {
6374 beginKeywords: 'node',
6375 starts: {
6376 end: '\\s*([\\w_-]+:)?',
6377 starts: {
6378 className: 'title',
6379 end: '\\s*[\\$\\w_][\\w_-]*'
6380 }
6381 }
6382 },
6383 {
6384 beginKeywords: RESOURCES,
6385 starts: {
6386 className: 'title',
6387 end: '\\s*[\\$\\w_][\\w_-]*',
6388 starts: {
6389 end: '\\s*@?[\\w_][\\w_\\.:-]*'
6390 }
6391 }
6392 },
6393 {
6394 begin: '\\b(' + COMMANDS.split(' ').join('|') + ')\\s+',
6395 keywords: COMMANDS,
6396 starts: {
6397 className: 'title',
6398 end: '[\\$\\w_][\\w_-]*'
6399 }
6400 },
6401 {
6402 beginKeywords: PROPERTY_SETS,
6403 starts: {
6404 className: 'title',
6405 end: '\\s*([\\w_-]+:)?'
6406 }
6407 },
6408 hljs.QUOTE_STRING_MODE,
6409 {
6410 className: 'meta',
6411 begin: '(ocf|systemd|service|lsb):[\\w_:-]+',
6412 relevance: 0
6413 },
6414 {
6415 className: 'number',
6416 begin: '\\b\\d+(\\.\\d+)?(ms|s|h|m)?',
6417 relevance: 0
6418 },
6419 {
6420 className: 'literal',
6421 begin: '[-]?(infinity|inf)',
6422 relevance: 0
6423 },
6424 {
6425 className: 'attr',
6426 begin: /([A-Za-z\$_\#][\w_-]+)=/,
6427 relevance: 0
6428 },
6429 {
6430 className: 'tag',
6431 begin: '</?',
6432 end: '/?>',
6433 relevance: 0
6434 }
6435 ]
6436 };
6437}
6438},{name:"crystal",create:/*
6439Language: Crystal
6440Author: TSUYUSATO Kitsune <make.just.on@gmail.com>
6441*/
6442
6443function(hljs) {
6444 var NUM_SUFFIX = '(_[uif](8|16|32|64))?';
6445 var CRYSTAL_IDENT_RE = '[a-zA-Z_]\\w*[!?=]?';
6446 var RE_STARTER = '!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|' +
6447 '>>|>|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
6448 var CRYSTAL_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?';
6449 var CRYSTAL_KEYWORDS = {
6450 keyword:
6451 'abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef ' +
6452 'include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? ' +
6453 'return require self sizeof struct super then type typeof union unless until when while with yield ' +
6454 '__DIR__ __FILE__ __LINE__',
6455 literal: 'false nil true'
6456 };
6457 var SUBST = {
6458 className: 'subst',
6459 begin: '#{', end: '}',
6460 keywords: CRYSTAL_KEYWORDS
6461 };
6462 var EXPANSION = {
6463 className: 'template-variable',
6464 variants: [
6465 {begin: '\\{\\{', end: '\\}\\}'},
6466 {begin: '\\{%', end: '%\\}'}
6467 ],
6468 keywords: CRYSTAL_KEYWORDS,
6469 relevance: 10
6470 };
6471
6472 function recursiveParen(begin, end) {
6473 var
6474 contains = [{begin: begin, end: end}];
6475 contains[0].contains = contains;
6476 return contains;
6477 }
6478 var STRING = {
6479 className: 'string',
6480 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
6481 variants: [
6482 {begin: /'/, end: /'/},
6483 {begin: /"/, end: /"/},
6484 {begin: /`/, end: /`/},
6485 {begin: '%w?\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
6486 {begin: '%w?\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
6487 {begin: '%w?{', end: '}', contains: recursiveParen('{', '}')},
6488 {begin: '%w?<', end: '>', contains: recursiveParen('<', '>')},
6489 {begin: '%w?/', end: '/'},
6490 {begin: '%w?%', end: '%'},
6491 {begin: '%w?-', end: '-'},
6492 {begin: '%w?\\|', end: '\\|'},
6493 ],
6494 relevance: 0,
6495 };
6496 var REGEXP = {
6497 begin: '(' + RE_STARTER + ')\\s*',
6498 contains: [
6499 {
6500 className: 'regexp',
6501 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
6502 variants: [
6503 {begin: '/', end: '/[a-z]*'},
6504 {begin: '%r\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
6505 {begin: '%r\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
6506 {begin: '%r{', end: '}', contains: recursiveParen('{', '}')},
6507 {begin: '%r<', end: '>', contains: recursiveParen('<', '>')},
6508 {begin: '%r/', end: '/'},
6509 {begin: '%r%', end: '%'},
6510 {begin: '%r-', end: '-'},
6511 {begin: '%r\\|', end: '\\|'},
6512 ]
6513 }
6514 ],
6515 relevance: 0
6516 };
6517 var REGEXP2 = {
6518 className: 'regexp',
6519 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
6520 variants: [
6521 {begin: '%r\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
6522 {begin: '%r\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
6523 {begin: '%r{', end: '}', contains: recursiveParen('{', '}')},
6524 {begin: '%r<', end: '>', contains: recursiveParen('<', '>')},
6525 {begin: '%r/', end: '/'},
6526 {begin: '%r%', end: '%'},
6527 {begin: '%r-', end: '-'},
6528 {begin: '%r\\|', end: '\\|'},
6529 ],
6530 relevance: 0
6531 };
6532 var ATTRIBUTE = {
6533 className: 'meta',
6534 begin: '@\\[', end: '\\]',
6535 relevance: 5
6536 };
6537 var CRYSTAL_DEFAULT_CONTAINS = [
6538 EXPANSION,
6539 STRING,
6540 REGEXP,
6541 REGEXP2,
6542 ATTRIBUTE,
6543 hljs.HASH_COMMENT_MODE,
6544 {
6545 className: 'class',
6546 beginKeywords: 'class module struct', end: '$|;',
6547 illegal: /=/,
6548 contains: [
6549 hljs.HASH_COMMENT_MODE,
6550 hljs.inherit(hljs.TITLE_MODE, {begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?'}),
6551 {begin: '<'} // relevance booster for inheritance
6552 ]
6553 },
6554 {
6555 className: 'class',
6556 beginKeywords: 'lib enum union', end: '$|;',
6557 illegal: /=/,
6558 contains: [
6559 hljs.HASH_COMMENT_MODE,
6560 hljs.inherit(hljs.TITLE_MODE, {begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?'}),
6561 ],
6562 relevance: 10
6563 },
6564 {
6565 className: 'function',
6566 beginKeywords: 'def', end: /\B\b/,
6567 contains: [
6568 hljs.inherit(hljs.TITLE_MODE, {
6569 begin: CRYSTAL_METHOD_RE,
6570 endsParent: true
6571 })
6572 ]
6573 },
6574 {
6575 className: 'function',
6576 beginKeywords: 'fun macro', end: /\B\b/,
6577 contains: [
6578 hljs.inherit(hljs.TITLE_MODE, {
6579 begin: CRYSTAL_METHOD_RE,
6580 endsParent: true
6581 })
6582 ],
6583 relevance: 5
6584 },
6585 {
6586 className: 'symbol',
6587 begin: hljs.UNDERSCORE_IDENT_RE + '(\\!|\\?)?:',
6588 relevance: 0
6589 },
6590 {
6591 className: 'symbol',
6592 begin: ':',
6593 contains: [STRING, {begin: CRYSTAL_METHOD_RE}],
6594 relevance: 0
6595 },
6596 {
6597 className: 'number',
6598 variants: [
6599 { begin: '\\b0b([01_]*[01])' + NUM_SUFFIX },
6600 { begin: '\\b0o([0-7_]*[0-7])' + NUM_SUFFIX },
6601 { begin: '\\b0x([A-Fa-f0-9_]*[A-Fa-f0-9])' + NUM_SUFFIX },
6602 { begin: '\\b(([0-9][0-9_]*[0-9]|[0-9])(\\.[0-9_]*[0-9])?([eE][+-]?[0-9_]*[0-9])?)' + NUM_SUFFIX}
6603 ],
6604 relevance: 0
6605 }
6606 ];
6607 SUBST.contains = CRYSTAL_DEFAULT_CONTAINS;
6608 ATTRIBUTE.contains = CRYSTAL_DEFAULT_CONTAINS;
6609 EXPANSION.contains = CRYSTAL_DEFAULT_CONTAINS.slice(1); // without EXPANSION
6610
6611 return {
6612 aliases: ['cr'],
6613 lexemes: CRYSTAL_IDENT_RE,
6614 keywords: CRYSTAL_KEYWORDS,
6615 contains: CRYSTAL_DEFAULT_CONTAINS
6616 };
6617}
6618},{name:"cs",create:/*
6619Language: C#
6620Author: Jason Diamond <jason@diamond.name>
6621Category: common
6622*/
6623
6624function(hljs) {
6625 var KEYWORDS =
6626 // Normal keywords.
6627 'abstract as base bool break byte case catch char checked const continue decimal dynamic ' +
6628 'default delegate do double else enum event explicit extern false finally fixed float ' +
6629 'for foreach goto if implicit in int interface internal is lock long null when ' +
6630 'object operator out override params private protected public readonly ref sbyte ' +
6631 'sealed short sizeof stackalloc static string struct switch this true try typeof ' +
6632 'uint ulong unchecked unsafe ushort using virtual volatile void while async ' +
6633 'protected public private internal ' +
6634 // Contextual keywords.
6635 'ascending descending from get group into join let orderby partial select set value var ' +
6636 'where yield';
6637 var GENERIC_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '>)?';
6638 return {
6639 aliases: ['csharp'],
6640 keywords: KEYWORDS,
6641 illegal: /::/,
6642 contains: [
6643 hljs.COMMENT(
6644 '///',
6645 '$',
6646 {
6647 returnBegin: true,
6648 contains: [
6649 {
6650 className: 'doctag',
6651 variants: [
6652 {
6653 begin: '///', relevance: 0
6654 },
6655 {
6656 begin: '<!--|-->'
6657 },
6658 {
6659 begin: '</?', end: '>'
6660 }
6661 ]
6662 }
6663 ]
6664 }
6665 ),
6666 hljs.C_LINE_COMMENT_MODE,
6667 hljs.C_BLOCK_COMMENT_MODE,
6668 {
6669 className: 'meta',
6670 begin: '#', end: '$',
6671 keywords: {'meta-keyword': 'if else elif endif define undef warning error line region endregion pragma checksum'}
6672 },
6673 {
6674 className: 'string',
6675 begin: '@"', end: '"',
6676 contains: [{begin: '""'}]
6677 },
6678 hljs.APOS_STRING_MODE,
6679 hljs.QUOTE_STRING_MODE,
6680 hljs.C_NUMBER_MODE,
6681 {
6682 beginKeywords: 'class interface', end: /[{;=]/,
6683 illegal: /[^\s:]/,
6684 contains: [
6685 hljs.TITLE_MODE,
6686 hljs.C_LINE_COMMENT_MODE,
6687 hljs.C_BLOCK_COMMENT_MODE
6688 ]
6689 },
6690 {
6691 beginKeywords: 'namespace', end: /[{;=]/,
6692 illegal: /[^\s:]/,
6693 contains: [
6694 hljs.inherit(hljs.TITLE_MODE, {begin: '[a-zA-Z](\\.?\\w)*'}),
6695 hljs.C_LINE_COMMENT_MODE,
6696 hljs.C_BLOCK_COMMENT_MODE
6697 ]
6698 },
6699 {
6700 // Expression keywords prevent 'keyword Name(...)' from being
6701 // recognized as a function definition
6702 beginKeywords: 'new return throw await',
6703 relevance: 0
6704 },
6705 {
6706 className: 'function',
6707 begin: '(' + GENERIC_IDENT_RE + '\\s+)+' + hljs.IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/,
6708 excludeEnd: true,
6709 keywords: KEYWORDS,
6710 contains: [
6711 {
6712 begin: hljs.IDENT_RE + '\\s*\\(', returnBegin: true,
6713 contains: [hljs.TITLE_MODE],
6714 relevance: 0
6715 },
6716 {
6717 className: 'params',
6718 begin: /\(/, end: /\)/,
6719 excludeBegin: true,
6720 excludeEnd: true,
6721 keywords: KEYWORDS,
6722 relevance: 0,
6723 contains: [
6724 hljs.APOS_STRING_MODE,
6725 hljs.QUOTE_STRING_MODE,
6726 hljs.C_NUMBER_MODE,
6727 hljs.C_BLOCK_COMMENT_MODE
6728 ]
6729 },
6730 hljs.C_LINE_COMMENT_MODE,
6731 hljs.C_BLOCK_COMMENT_MODE
6732 ]
6733 }
6734 ]
6735 };
6736}
6737},{name:"css",create:/*
6738Language: CSS
6739Category: common, css
6740*/
6741
6742function(hljs) {
6743 var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
6744 var RULE = {
6745 begin: /[A-Z\_\.\-]+\s*:/, returnBegin: true, end: ';', endsWithParent: true,
6746 contains: [
6747 {
6748 className: 'attribute',
6749 begin: /\S/, end: ':', excludeEnd: true,
6750 starts: {
6751 endsWithParent: true, excludeEnd: true,
6752 contains: [
6753 {
6754 begin: /[\w-]+\s*\(/, returnBegin: true,
6755 contains: [
6756 {
6757 className: 'built_in',
6758 begin: /[\w-]+/
6759 }
6760 ]
6761 },
6762 hljs.CSS_NUMBER_MODE,
6763 hljs.QUOTE_STRING_MODE,
6764 hljs.APOS_STRING_MODE,
6765 hljs.C_BLOCK_COMMENT_MODE,
6766 {
6767 className: 'number', begin: '#[0-9A-Fa-f]+'
6768 },
6769 {
6770 className: 'meta', begin: '!important'
6771 }
6772 ]
6773 }
6774 }
6775 ]
6776 };
6777
6778 return {
6779 case_insensitive: true,
6780 illegal: /[=\/|'\$]/,
6781 contains: [
6782 hljs.C_BLOCK_COMMENT_MODE,
6783 {
6784 className: 'selector-id', begin: /#[A-Za-z0-9_-]+/
6785 },
6786 {
6787 className: 'selector-class', begin: /\.[A-Za-z0-9_-]+/
6788 },
6789 {
6790 className: 'selector-attr',
6791 begin: /\[/, end: /\]/,
6792 illegal: '$'
6793 },
6794 {
6795 className: 'selector-pseudo',
6796 begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/
6797 },
6798 {
6799 begin: '@(font-face|page)',
6800 lexemes: '[a-z-]+',
6801 keywords: 'font-face page'
6802 },
6803 {
6804 begin: '@', end: '[{;]', // at_rule eating first "{" is a good thing
6805 // because it doesnโ€™t let it to be parsed as
6806 // a rule set but instead drops parser into
6807 // the default mode which is how it should be.
6808 contains: [
6809 {
6810 className: 'keyword',
6811 begin: /\S+/
6812 },
6813 {
6814 begin: /\s/, endsWithParent: true, excludeEnd: true,
6815 relevance: 0,
6816 contains: [
6817 hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE,
6818 hljs.CSS_NUMBER_MODE
6819 ]
6820 }
6821 ]
6822 },
6823 {
6824 className: 'selector-tag', begin: IDENT_RE,
6825 relevance: 0
6826 },
6827 {
6828 begin: '{', end: '}',
6829 illegal: /\S/,
6830 contains: [
6831 hljs.C_BLOCK_COMMENT_MODE,
6832 RULE,
6833 ]
6834 }
6835 ]
6836 };
6837}
6838},{name:"d",create:/*
6839Language: D
6840Author: Aleksandar Ruzicic <aleksandar@ruzicic.info>
6841Description: D is a language with C-like syntax and static typing. It pragmatically combines efficiency, control, and modeling power, with safety and programmer productivity.
6842Version: 1.0a
6843Date: 2012-04-08
6844*/
6845
6846/**
6847 * Known issues:
6848 *
6849 * - invalid hex string literals will be recognized as a double quoted strings
6850 * but 'x' at the beginning of string will not be matched
6851 *
6852 * - delimited string literals are not checked for matching end delimiter
6853 * (not possible to do with js regexp)
6854 *
6855 * - content of token string is colored as a string (i.e. no keyword coloring inside a token string)
6856 * also, content of token string is not validated to contain only valid D tokens
6857 *
6858 * - special token sequence rule is not strictly following D grammar (anything following #line
6859 * up to the end of line is matched as special token sequence)
6860 */
6861
6862function(hljs) {
6863 /**
6864 * Language keywords
6865 *
6866 * @type {Object}
6867 */
6868 var D_KEYWORDS = {
6869 keyword:
6870 'abstract alias align asm assert auto body break byte case cast catch class ' +
6871 'const continue debug default delete deprecated do else enum export extern final ' +
6872 'finally for foreach foreach_reverse|10 goto if immutable import in inout int ' +
6873 'interface invariant is lazy macro mixin module new nothrow out override package ' +
6874 'pragma private protected public pure ref return scope shared static struct ' +
6875 'super switch synchronized template this throw try typedef typeid typeof union ' +
6876 'unittest version void volatile while with __FILE__ __LINE__ __gshared|10 ' +
6877 '__thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__',
6878 built_in:
6879 'bool cdouble cent cfloat char creal dchar delegate double dstring float function ' +
6880 'idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar ' +
6881 'wstring',
6882 literal:
6883 'false null true'
6884 };
6885
6886 /**
6887 * Number literal regexps
6888 *
6889 * @type {String}
6890 */
6891 var decimal_integer_re = '(0|[1-9][\\d_]*)',
6892 decimal_integer_nosus_re = '(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)',
6893 binary_integer_re = '0[bB][01_]+',
6894 hexadecimal_digits_re = '([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)',
6895 hexadecimal_integer_re = '0[xX]' + hexadecimal_digits_re,
6896
6897 decimal_exponent_re = '([eE][+-]?' + decimal_integer_nosus_re + ')',
6898 decimal_float_re = '(' + decimal_integer_nosus_re + '(\\.\\d*|' + decimal_exponent_re + ')|' +
6899 '\\d+\\.' + decimal_integer_nosus_re + decimal_integer_nosus_re + '|' +
6900 '\\.' + decimal_integer_re + decimal_exponent_re + '?' +
6901 ')',
6902 hexadecimal_float_re = '(0[xX](' +
6903 hexadecimal_digits_re + '\\.' + hexadecimal_digits_re + '|'+
6904 '\\.?' + hexadecimal_digits_re +
6905 ')[pP][+-]?' + decimal_integer_nosus_re + ')',
6906
6907 integer_re = '(' +
6908 decimal_integer_re + '|' +
6909 binary_integer_re + '|' +
6910 hexadecimal_integer_re +
6911 ')',
6912
6913 float_re = '(' +
6914 hexadecimal_float_re + '|' +
6915 decimal_float_re +
6916 ')';
6917
6918 /**
6919 * Escape sequence supported in D string and character literals
6920 *
6921 * @type {String}
6922 */
6923 var escape_sequence_re = '\\\\(' +
6924 '[\'"\\?\\\\abfnrtv]|' + // common escapes
6925 'u[\\dA-Fa-f]{4}|' + // four hex digit unicode codepoint
6926 '[0-7]{1,3}|' + // one to three octal digit ascii char code
6927 'x[\\dA-Fa-f]{2}|' + // two hex digit ascii char code
6928 'U[\\dA-Fa-f]{8}' + // eight hex digit unicode codepoint
6929 ')|' +
6930 '&[a-zA-Z\\d]{2,};'; // named character entity
6931
6932 /**
6933 * D integer number literals
6934 *
6935 * @type {Object}
6936 */
6937 var D_INTEGER_MODE = {
6938 className: 'number',
6939 begin: '\\b' + integer_re + '(L|u|U|Lu|LU|uL|UL)?',
6940 relevance: 0
6941 };
6942
6943 /**
6944 * [D_FLOAT_MODE description]
6945 * @type {Object}
6946 */
6947 var D_FLOAT_MODE = {
6948 className: 'number',
6949 begin: '\\b(' +
6950 float_re + '([fF]|L|i|[fF]i|Li)?|' +
6951 integer_re + '(i|[fF]i|Li)' +
6952 ')',
6953 relevance: 0
6954 };
6955
6956 /**
6957 * D character literal
6958 *
6959 * @type {Object}
6960 */
6961 var D_CHARACTER_MODE = {
6962 className: 'string',
6963 begin: '\'(' + escape_sequence_re + '|.)', end: '\'',
6964 illegal: '.'
6965 };
6966
6967 /**
6968 * D string escape sequence
6969 *
6970 * @type {Object}
6971 */
6972 var D_ESCAPE_SEQUENCE = {
6973 begin: escape_sequence_re,
6974 relevance: 0
6975 };
6976
6977 /**
6978 * D double quoted string literal
6979 *
6980 * @type {Object}
6981 */
6982 var D_STRING_MODE = {
6983 className: 'string',
6984 begin: '"',
6985 contains: [D_ESCAPE_SEQUENCE],
6986 end: '"[cwd]?'
6987 };
6988
6989 /**
6990 * D wysiwyg and delimited string literals
6991 *
6992 * @type {Object}
6993 */
6994 var D_WYSIWYG_DELIMITED_STRING_MODE = {
6995 className: 'string',
6996 begin: '[rq]"',
6997 end: '"[cwd]?',
6998 relevance: 5
6999 };
7000
7001 /**
7002 * D alternate wysiwyg string literal
7003 *
7004 * @type {Object}
7005 */
7006 var D_ALTERNATE_WYSIWYG_STRING_MODE = {
7007 className: 'string',
7008 begin: '`',
7009 end: '`[cwd]?'
7010 };
7011
7012 /**
7013 * D hexadecimal string literal
7014 *
7015 * @type {Object}
7016 */
7017 var D_HEX_STRING_MODE = {
7018 className: 'string',
7019 begin: 'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',
7020 relevance: 10
7021 };
7022
7023 /**
7024 * D delimited string literal
7025 *
7026 * @type {Object}
7027 */
7028 var D_TOKEN_STRING_MODE = {
7029 className: 'string',
7030 begin: 'q"\\{',
7031 end: '\\}"'
7032 };
7033
7034 /**
7035 * Hashbang support
7036 *
7037 * @type {Object}
7038 */
7039 var D_HASHBANG_MODE = {
7040 className: 'meta',
7041 begin: '^#!',
7042 end: '$',
7043 relevance: 5
7044 };
7045
7046 /**
7047 * D special token sequence
7048 *
7049 * @type {Object}
7050 */
7051 var D_SPECIAL_TOKEN_SEQUENCE_MODE = {
7052 className: 'meta',
7053 begin: '#(line)',
7054 end: '$',
7055 relevance: 5
7056 };
7057
7058 /**
7059 * D attributes
7060 *
7061 * @type {Object}
7062 */
7063 var D_ATTRIBUTE_MODE = {
7064 className: 'keyword',
7065 begin: '@[a-zA-Z_][a-zA-Z_\\d]*'
7066 };
7067
7068 /**
7069 * D nesting comment
7070 *
7071 * @type {Object}
7072 */
7073 var D_NESTING_COMMENT_MODE = hljs.COMMENT(
7074 '\\/\\+',
7075 '\\+\\/',
7076 {
7077 contains: ['self'],
7078 relevance: 10
7079 }
7080 );
7081
7082 return {
7083 lexemes: hljs.UNDERSCORE_IDENT_RE,
7084 keywords: D_KEYWORDS,
7085 contains: [
7086 hljs.C_LINE_COMMENT_MODE,
7087 hljs.C_BLOCK_COMMENT_MODE,
7088 D_NESTING_COMMENT_MODE,
7089 D_HEX_STRING_MODE,
7090 D_STRING_MODE,
7091 D_WYSIWYG_DELIMITED_STRING_MODE,
7092 D_ALTERNATE_WYSIWYG_STRING_MODE,
7093 D_TOKEN_STRING_MODE,
7094 D_FLOAT_MODE,
7095 D_INTEGER_MODE,
7096 D_CHARACTER_MODE,
7097 D_HASHBANG_MODE,
7098 D_SPECIAL_TOKEN_SEQUENCE_MODE,
7099 D_ATTRIBUTE_MODE
7100 ]
7101 };
7102}
7103},{name:"dart",create:/*
7104Language: Dart
7105Requires: markdown.js
7106Author: Maxim Dikun <dikmax@gmail.com>
7107Description: Dart is a JavaScript replacement language developed by Google. For more information see http://dartlang.org/
7108Category: scripting
7109*/
7110
7111function (hljs) {
7112 var SUBST = {
7113 className: 'subst',
7114 begin: '\\$\\{', end: '}',
7115 keywords: 'true false null this is new super'
7116 };
7117
7118 var STRING = {
7119 className: 'string',
7120 variants: [
7121 {
7122 begin: 'r\'\'\'', end: '\'\'\''
7123 },
7124 {
7125 begin: 'r"""', end: '"""'
7126 },
7127 {
7128 begin: 'r\'', end: '\'',
7129 illegal: '\\n'
7130 },
7131 {
7132 begin: 'r"', end: '"',
7133 illegal: '\\n'
7134 },
7135 {
7136 begin: '\'\'\'', end: '\'\'\'',
7137 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
7138 },
7139 {
7140 begin: '"""', end: '"""',
7141 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
7142 },
7143 {
7144 begin: '\'', end: '\'',
7145 illegal: '\\n',
7146 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
7147 },
7148 {
7149 begin: '"', end: '"',
7150 illegal: '\\n',
7151 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
7152 }
7153 ]
7154 };
7155 SUBST.contains = [
7156 hljs.C_NUMBER_MODE, STRING
7157 ];
7158
7159 var KEYWORDS = {
7160 keyword: 'assert break case catch class const continue default do else enum extends false final finally for if ' +
7161 'in is new null rethrow return super switch this throw true try var void while with ' +
7162 'abstract as dynamic export external factory get implements import library operator part set static typedef',
7163 built_in:
7164 // dart:core
7165 'print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set ' +
7166 'Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num ' +
7167 // dart:html
7168 'document window querySelector querySelectorAll Element ElementList'
7169 };
7170
7171 return {
7172 keywords: KEYWORDS,
7173 contains: [
7174 STRING,
7175 hljs.COMMENT(
7176 '/\\*\\*',
7177 '\\*/',
7178 {
7179 subLanguage: 'markdown'
7180 }
7181 ),
7182 hljs.COMMENT(
7183 '///',
7184 '$',
7185 {
7186 subLanguage: 'markdown'
7187 }
7188 ),
7189 hljs.C_LINE_COMMENT_MODE,
7190 hljs.C_BLOCK_COMMENT_MODE,
7191 {
7192 className: 'class',
7193 beginKeywords: 'class interface', end: '{', excludeEnd: true,
7194 contains: [
7195 {
7196 beginKeywords: 'extends implements'
7197 },
7198 hljs.UNDERSCORE_TITLE_MODE
7199 ]
7200 },
7201 hljs.C_NUMBER_MODE,
7202 {
7203 className: 'meta', begin: '@[A-Za-z]+'
7204 },
7205 {
7206 begin: '=>' // No markup, just a relevance booster
7207 }
7208 ]
7209 }
7210}
7211
7212},{name:"delphi",create:/*
7213Language: Delphi
7214*/
7215
7216function(hljs) {
7217 var KEYWORDS =
7218 'exports register file shl array record property for mod while set ally label uses raise not ' +
7219 'stored class safecall var interface or private static exit index inherited to else stdcall ' +
7220 'override shr asm far resourcestring finalization packed virtual out and protected library do ' +
7221 'xorwrite goto near function end div overload object unit begin string on inline repeat until ' +
7222 'destructor write message program with read initialization except default nil if case cdecl in ' +
7223 'downto threadvar of try pascal const external constructor type public then implementation ' +
7224 'finally published procedure';
7225 var COMMENT_MODES = [
7226 hljs.C_LINE_COMMENT_MODE,
7227 hljs.COMMENT(
7228 /\{/,
7229 /\}/,
7230 {
7231 relevance: 0
7232 }
7233 ),
7234 hljs.COMMENT(
7235 /\(\*/,
7236 /\*\)/,
7237 {
7238 relevance: 10
7239 }
7240 )
7241 ];
7242 var STRING = {
7243 className: 'string',
7244 begin: /'/, end: /'/,
7245 contains: [{begin: /''/}]
7246 };
7247 var CHAR_STRING = {
7248 className: 'string', begin: /(#\d+)+/
7249 };
7250 var CLASS = {
7251 begin: hljs.IDENT_RE + '\\s*=\\s*class\\s*\\(', returnBegin: true,
7252 contains: [
7253 hljs.TITLE_MODE
7254 ]
7255 };
7256 var FUNCTION = {
7257 className: 'function',
7258 beginKeywords: 'function constructor destructor procedure', end: /[:;]/,
7259 keywords: 'function constructor|10 destructor|10 procedure|10',
7260 contains: [
7261 hljs.TITLE_MODE,
7262 {
7263 className: 'params',
7264 begin: /\(/, end: /\)/,
7265 keywords: KEYWORDS,
7266 contains: [STRING, CHAR_STRING]
7267 }
7268 ].concat(COMMENT_MODES)
7269 };
7270 return {
7271 case_insensitive: true,
7272 keywords: KEYWORDS,
7273 illegal: /"|\$[G-Zg-z]|\/\*|<\/|\|/,
7274 contains: [
7275 STRING, CHAR_STRING,
7276 hljs.NUMBER_MODE,
7277 CLASS,
7278 FUNCTION
7279 ].concat(COMMENT_MODES)
7280 };
7281}
7282},{name:"diff",create:/*
7283Language: Diff
7284Description: Unified and context diff
7285Author: Vasily Polovnyov <vast@whiteants.net>
7286Category: common
7287*/
7288
7289function(hljs) {
7290 return {
7291 aliases: ['patch'],
7292 contains: [
7293 {
7294 className: 'meta',
7295 relevance: 10,
7296 variants: [
7297 {begin: /^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},
7298 {begin: /^\*\*\* +\d+,\d+ +\*\*\*\*$/},
7299 {begin: /^\-\-\- +\d+,\d+ +\-\-\-\-$/}
7300 ]
7301 },
7302 {
7303 className: 'comment',
7304 variants: [
7305 {begin: /Index: /, end: /$/},
7306 {begin: /=====/, end: /=====$/},
7307 {begin: /^\-\-\-/, end: /$/},
7308 {begin: /^\*{3} /, end: /$/},
7309 {begin: /^\+\+\+/, end: /$/},
7310 {begin: /\*{5}/, end: /\*{5}$/}
7311 ]
7312 },
7313 {
7314 className: 'addition',
7315 begin: '^\\+', end: '$'
7316 },
7317 {
7318 className: 'deletion',
7319 begin: '^\\-', end: '$'
7320 },
7321 {
7322 className: 'addition',
7323 begin: '^\\!', end: '$'
7324 }
7325 ]
7326 };
7327}
7328},{name:"django",create:/*
7329Language: Django
7330Requires: xml.js
7331Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
7332Contributors: Ilya Baryshev <baryshev@gmail.com>
7333Category: template
7334*/
7335
7336function(hljs) {
7337 var FILTER = {
7338 begin: /\|[A-Za-z]+:?/,
7339 keywords: {
7340 name:
7341 'truncatewords removetags linebreaksbr yesno get_digit timesince random striptags ' +
7342 'filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands ' +
7343 'title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode ' +
7344 'timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort ' +
7345 'dictsortreversed default_if_none pluralize lower join center default ' +
7346 'truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first ' +
7347 'escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize ' +
7348 'localtime utc timezone'
7349 },
7350 contains: [
7351 hljs.QUOTE_STRING_MODE,
7352 hljs.APOS_STRING_MODE
7353 ]
7354 };
7355
7356 return {
7357 aliases: ['jinja'],
7358 case_insensitive: true,
7359 subLanguage: 'xml',
7360 contains: [
7361 hljs.COMMENT(/\{%\s*comment\s*%}/, /\{%\s*endcomment\s*%}/),
7362 hljs.COMMENT(/\{#/, /#}/),
7363 {
7364 className: 'template-tag',
7365 begin: /\{%/, end: /%}/,
7366 contains: [
7367 {
7368 className: 'name',
7369 begin: /\w+/,
7370 keywords: {
7371 name:
7372 'comment endcomment load templatetag ifchanged endifchanged if endif firstof for ' +
7373 'endfor ifnotequal endifnotequal widthratio extends include spaceless ' +
7374 'endspaceless regroup ifequal endifequal ssi now with cycle url filter ' +
7375 'endfilter debug block endblock else autoescape endautoescape csrf_token empty elif ' +
7376 'endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix ' +
7377 'plural get_current_language language get_available_languages ' +
7378 'get_current_language_bidi get_language_info get_language_info_list localize ' +
7379 'endlocalize localtime endlocaltime timezone endtimezone get_current_timezone ' +
7380 'verbatim'
7381 },
7382 starts: {
7383 endsWithParent: true,
7384 keywords: 'in by as',
7385 contains: [FILTER],
7386 relevance: 0
7387 }
7388 }
7389 ]
7390 },
7391 {
7392 className: 'template-variable',
7393 begin: /\{\{/, end: /}}/,
7394 contains: [FILTER]
7395 }
7396 ]
7397 };
7398}
7399},{name:"dns",create:/*
7400Language: DNS Zone file
7401Author: Tim Schumacher <tim@datenknoten.me>
7402Category: config
7403*/
7404
7405function(hljs) {
7406 return {
7407 aliases: ['bind', 'zone'],
7408 keywords: {
7409 keyword:
7410 'IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX ' +
7411 'LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT'
7412 },
7413 contains: [
7414 hljs.COMMENT(';', '$'),
7415 {
7416 className: 'meta',
7417 begin: /^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/
7418 },
7419 // IPv6
7420 {
7421 className: 'number',
7422 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'
7423 },
7424 // IPv4
7425 {
7426 className: 'number',
7427 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'
7428 },
7429 hljs.inherit(hljs.NUMBER_MODE, {begin: /\b\d+[dhwm]?/})
7430 ]
7431 };
7432}
7433},{name:"dockerfile",create:/*
7434Language: Dockerfile
7435Requires: bash.js
7436Author: Alexis Hรฉnaut <alexis@henaut.net>
7437Description: language definition for Dockerfile files
7438Category: config
7439*/
7440
7441function(hljs) {
7442 return {
7443 aliases: ['docker'],
7444 case_insensitive: true,
7445 keywords: 'from maintainer cmd expose add copy entrypoint volume user workdir onbuild run env label',
7446 contains: [
7447 hljs.HASH_COMMENT_MODE,
7448 {
7449 keywords: 'run cmd entrypoint volume add copy workdir onbuild label',
7450 begin: /^ *(onbuild +)?(run|cmd|entrypoint|volume|add|copy|workdir|label) +/,
7451 starts: {
7452 end: /[^\\]\n/,
7453 subLanguage: 'bash'
7454 }
7455 },
7456 {
7457 keywords: 'from maintainer expose env user onbuild',
7458 begin: /^ *(onbuild +)?(from|maintainer|expose|env|user|onbuild) +/, end: /[^\\]\n/,
7459 contains: [
7460 hljs.APOS_STRING_MODE,
7461 hljs.QUOTE_STRING_MODE,
7462 hljs.NUMBER_MODE,
7463 hljs.HASH_COMMENT_MODE
7464 ]
7465 }
7466 ]
7467 }
7468}
7469},{name:"dos",create:/*
7470Language: DOS .bat
7471Author: Alexander Makarov <sam@rmcreative.ru>
7472Contributors: Anton Kochkov <anton.kochkov@gmail.com>
7473*/
7474
7475function(hljs) {
7476 var COMMENT = hljs.COMMENT(
7477 /@?rem\b/, /$/,
7478 {
7479 relevance: 10
7480 }
7481 );
7482 var LABEL = {
7483 className: 'symbol',
7484 begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)',
7485 relevance: 0
7486 };
7487 return {
7488 aliases: ['bat', 'cmd'],
7489 case_insensitive: true,
7490 illegal: /\/\*/,
7491 keywords: {
7492 keyword:
7493 'if else goto for in do call exit not exist errorlevel defined ' +
7494 'equ neq lss leq gtr geq',
7495 built_in:
7496 'prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux ' +
7497 'shift cd dir echo setlocal endlocal set pause copy ' +
7498 'append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color ' +
7499 'comp compact convert date dir diskcomp diskcopy doskey erase fs ' +
7500 'find findstr format ftype graftabl help keyb label md mkdir mode more move path ' +
7501 'pause print popd pushd promt rd recover rem rename replace restore rmdir shift' +
7502 'sort start subst time title tree type ver verify vol ' +
7503 // winutils
7504 'ping net ipconfig taskkill xcopy ren del'
7505 },
7506 contains: [
7507 {
7508 className: 'variable', begin: /%%[^ ]|%[^ ]+?%|![^ ]+?!/
7509 },
7510 {
7511 className: 'function',
7512 begin: LABEL.begin, end: 'goto:eof',
7513 contains: [
7514 hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}),
7515 COMMENT
7516 ]
7517 },
7518 {
7519 className: 'number', begin: '\\b\\d+',
7520 relevance: 0
7521 },
7522 COMMENT
7523 ]
7524 };
7525}
7526},{name:"dust",create:/*
7527Language: Dust
7528Requires: xml.js
7529Author: Michael Allen <michael.allen@benefitfocus.com>
7530Description: Matcher for dust.js templates.
7531Category: template
7532*/
7533
7534function(hljs) {
7535 var EXPRESSION_KEYWORDS = 'if eq ne lt lte gt gte select default math sep';
7536 return {
7537 aliases: ['dst'],
7538 case_insensitive: true,
7539 subLanguage: 'xml',
7540 contains: [
7541 {
7542 className: 'template-tag',
7543 begin: /\{[#\/]/, end: /\}/, illegal: /;/,
7544 contains: [
7545 {
7546 className: 'name',
7547 begin: /[a-zA-Z\.-]+/,
7548 starts: {
7549 endsWithParent: true, relevance: 0,
7550 contains: [
7551 hljs.QUOTE_STRING_MODE
7552 ]
7553 }
7554 }
7555 ]
7556 },
7557 {
7558 className: 'template-variable',
7559 begin: /\{/, end: /\}/, illegal: /;/,
7560 keywords: EXPRESSION_KEYWORDS
7561 }
7562 ]
7563 };
7564}
7565},{name:"elixir",create:/*
7566Language: Elixir
7567Author: Josh Adams <josh@isotope11.com>
7568Description: language definition for Elixir source code files (.ex and .exs). Based on ruby language support.
7569Category: functional
7570*/
7571
7572function(hljs) {
7573 var ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?';
7574 var ELIXIR_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
7575 var ELIXIR_KEYWORDS =
7576 'and false then defined module in return redo retry end for true self when ' +
7577 'next until do begin unless nil break not case cond alias while ensure or ' +
7578 'include use alias fn quote';
7579 var SUBST = {
7580 className: 'subst',
7581 begin: '#\\{', end: '}',
7582 lexemes: ELIXIR_IDENT_RE,
7583 keywords: ELIXIR_KEYWORDS
7584 };
7585 var STRING = {
7586 className: 'string',
7587 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
7588 variants: [
7589 {
7590 begin: /'/, end: /'/
7591 },
7592 {
7593 begin: /"/, end: /"/
7594 }
7595 ]
7596 };
7597 var FUNCTION = {
7598 className: 'function',
7599 beginKeywords: 'def defp defmacro', end: /\B\b/, // the mode is ended by the title
7600 contains: [
7601 hljs.inherit(hljs.TITLE_MODE, {
7602 begin: ELIXIR_IDENT_RE,
7603 endsParent: true
7604 })
7605 ]
7606 };
7607 var CLASS = hljs.inherit(FUNCTION, {
7608 className: 'class',
7609 beginKeywords: 'defmodule defrecord', end: /\bdo\b|$|;/
7610 });
7611 var ELIXIR_DEFAULT_CONTAINS = [
7612 STRING,
7613 hljs.HASH_COMMENT_MODE,
7614 CLASS,
7615 FUNCTION,
7616 {
7617 className: 'symbol',
7618 begin: ':',
7619 contains: [STRING, {begin: ELIXIR_METHOD_RE}],
7620 relevance: 0
7621 },
7622 {
7623 className: 'symbol',
7624 begin: ELIXIR_IDENT_RE + ':',
7625 relevance: 0
7626 },
7627 {
7628 className: 'number',
7629 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
7630 relevance: 0
7631 },
7632 {
7633 className: 'variable',
7634 begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))'
7635 },
7636 {
7637 begin: '->'
7638 },
7639 { // regexp container
7640 begin: '(' + hljs.RE_STARTERS_RE + ')\\s*',
7641 contains: [
7642 hljs.HASH_COMMENT_MODE,
7643 {
7644 className: 'regexp',
7645 illegal: '\\n',
7646 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
7647 variants: [
7648 {
7649 begin: '/', end: '/[a-z]*'
7650 },
7651 {
7652 begin: '%r\\[', end: '\\][a-z]*'
7653 }
7654 ]
7655 }
7656 ],
7657 relevance: 0
7658 }
7659 ];
7660 SUBST.contains = ELIXIR_DEFAULT_CONTAINS;
7661
7662 return {
7663 lexemes: ELIXIR_IDENT_RE,
7664 keywords: ELIXIR_KEYWORDS,
7665 contains: ELIXIR_DEFAULT_CONTAINS
7666 };
7667}
7668},{name:"elm",create:/*
7669Language: Elm
7670Author: Janis Voigtlaender <janis.voigtlaender@gmail.com>
7671Category: functional
7672*/
7673
7674function(hljs) {
7675 var COMMENT = {
7676 variants: [
7677 hljs.COMMENT('--', '$'),
7678 hljs.COMMENT(
7679 '{-',
7680 '-}',
7681 {
7682 contains: ['self']
7683 }
7684 )
7685 ]
7686 };
7687
7688 var CONSTRUCTOR = {
7689 className: 'type',
7690 begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (built-in, infix).
7691 relevance: 0
7692 };
7693
7694 var LIST = {
7695 begin: '\\(', end: '\\)',
7696 illegal: '"',
7697 contains: [
7698 {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
7699 COMMENT
7700 ]
7701 };
7702
7703 var RECORD = {
7704 begin: '{', end: '}',
7705 contains: LIST.contains
7706 };
7707
7708 return {
7709 keywords:
7710 'let in if then else case of where module import exposing ' +
7711 'type alias as infix infixl infixr port',
7712 contains: [
7713
7714 // Top-level constructions.
7715
7716 {
7717 beginKeywords: 'module', end: 'where',
7718 keywords: 'module where',
7719 contains: [LIST, COMMENT],
7720 illegal: '\\W\\.|;'
7721 },
7722 {
7723 begin: 'import', end: '$',
7724 keywords: 'import as exposing',
7725 contains: [LIST, COMMENT],
7726 illegal: '\\W\\.|;'
7727 },
7728 {
7729 begin: 'type', end: '$',
7730 keywords: 'type alias',
7731 contains: [CONSTRUCTOR, LIST, RECORD, COMMENT]
7732 },
7733 {
7734 beginKeywords: 'infix infixl infixr', end: '$',
7735 contains: [hljs.C_NUMBER_MODE, COMMENT]
7736 },
7737 {
7738 begin: 'port', end: '$',
7739 keywords: 'port',
7740 contains: [COMMENT]
7741 },
7742
7743 // Literals and names.
7744
7745 // TODO: characters.
7746 hljs.QUOTE_STRING_MODE,
7747 hljs.C_NUMBER_MODE,
7748 CONSTRUCTOR,
7749 hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}),
7750 COMMENT,
7751
7752 {begin: '->|<-'} // No markup, relevance booster
7753 ]
7754 };
7755}
7756},{name:"erb",create:/*
7757Language: ERB (Embedded Ruby)
7758Requires: xml.js, ruby.js
7759Author: Lucas Mazza <lucastmazza@gmail.com>
7760Contributors: Kassio Borges <kassioborgesm@gmail.com>
7761Description: "Bridge" language defining fragments of Ruby in HTML within <% .. %>
7762Category: template
7763*/
7764
7765function(hljs) {
7766 return {
7767 subLanguage: 'xml',
7768 contains: [
7769 hljs.COMMENT('<%#', '%>'),
7770 {
7771 begin: '<%[%=-]?', end: '[%-]?%>',
7772 subLanguage: 'ruby',
7773 excludeBegin: true,
7774 excludeEnd: true
7775 }
7776 ]
7777 };
7778}
7779},{name:"erlang-repl",create:/*
7780 Language: Erlang REPL
7781 Author: Sergey Ignatov <sergey@ignatov.spb.su>
7782Category: functional
7783 */
7784
7785function(hljs) {
7786 return {
7787 keywords: {
7788 built_in:
7789 'spawn spawn_link self',
7790 keyword:
7791 'after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if ' +
7792 'let not of or orelse|10 query receive rem try when xor'
7793 },
7794 contains: [
7795 {
7796 className: 'meta', begin: '^[0-9]+> ',
7797 relevance: 10
7798 },
7799 hljs.COMMENT('%', '$'),
7800 {
7801 className: 'number',
7802 begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)',
7803 relevance: 0
7804 },
7805 hljs.APOS_STRING_MODE,
7806 hljs.QUOTE_STRING_MODE,
7807 {
7808 begin: '\\?(::)?([A-Z]\\w*(::)?)+'
7809 },
7810 {
7811 begin: '->'
7812 },
7813 {
7814 begin: 'ok'
7815 },
7816 {
7817 begin: '!'
7818 },
7819 {
7820 begin: '(\\b[a-z\'][a-zA-Z0-9_\']*:[a-z\'][a-zA-Z0-9_\']*)|(\\b[a-z\'][a-zA-Z0-9_\']*)',
7821 relevance: 0
7822 },
7823 {
7824 begin: '[A-Z][a-zA-Z0-9_\']*',
7825 relevance: 0
7826 }
7827 ]
7828 };
7829}
7830},{name:"erlang",create:/*
7831Language: Erlang
7832Description: Erlang is a general-purpose functional language, with strict evaluation, single assignment, and dynamic typing.
7833Author: Nikolay Zakharov <nikolay.desh@gmail.com>, Dmitry Kovega <arhibot@gmail.com>
7834Category: functional
7835*/
7836
7837function(hljs) {
7838 var BASIC_ATOM_RE = '[a-z\'][a-zA-Z0-9_\']*';
7839 var FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')';
7840 var ERLANG_RESERVED = {
7841 keyword:
7842 'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if ' +
7843 'let not of orelse|10 query receive rem try when xor',
7844 literal:
7845 'false true'
7846 };
7847
7848 var COMMENT = hljs.COMMENT('%', '$');
7849 var NUMBER = {
7850 className: 'number',
7851 begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)',
7852 relevance: 0
7853 };
7854 var NAMED_FUN = {
7855 begin: 'fun\\s+' + BASIC_ATOM_RE + '/\\d+'
7856 };
7857 var FUNCTION_CALL = {
7858 begin: FUNCTION_NAME_RE + '\\(', end: '\\)',
7859 returnBegin: true,
7860 relevance: 0,
7861 contains: [
7862 {
7863 begin: FUNCTION_NAME_RE, relevance: 0
7864 },
7865 {
7866 begin: '\\(', end: '\\)', endsWithParent: true,
7867 returnEnd: true,
7868 relevance: 0
7869 // "contains" defined later
7870 }
7871 ]
7872 };
7873 var TUPLE = {
7874 begin: '{', end: '}',
7875 relevance: 0
7876 // "contains" defined later
7877 };
7878 var VAR1 = {
7879 begin: '\\b_([A-Z][A-Za-z0-9_]*)?',
7880 relevance: 0
7881 };
7882 var VAR2 = {
7883 begin: '[A-Z][a-zA-Z0-9_]*',
7884 relevance: 0
7885 };
7886 var RECORD_ACCESS = {
7887 begin: '#' + hljs.UNDERSCORE_IDENT_RE,
7888 relevance: 0,
7889 returnBegin: true,
7890 contains: [
7891 {
7892 begin: '#' + hljs.UNDERSCORE_IDENT_RE,
7893 relevance: 0
7894 },
7895 {
7896 begin: '{', end: '}',
7897 relevance: 0
7898 // "contains" defined later
7899 }
7900 ]
7901 };
7902
7903 var BLOCK_STATEMENTS = {
7904 beginKeywords: 'fun receive if try case', end: 'end',
7905 keywords: ERLANG_RESERVED
7906 };
7907 BLOCK_STATEMENTS.contains = [
7908 COMMENT,
7909 NAMED_FUN,
7910 hljs.inherit(hljs.APOS_STRING_MODE, {className: ''}),
7911 BLOCK_STATEMENTS,
7912 FUNCTION_CALL,
7913 hljs.QUOTE_STRING_MODE,
7914 NUMBER,
7915 TUPLE,
7916 VAR1, VAR2,
7917 RECORD_ACCESS
7918 ];
7919
7920 var BASIC_MODES = [
7921 COMMENT,
7922 NAMED_FUN,
7923 BLOCK_STATEMENTS,
7924 FUNCTION_CALL,
7925 hljs.QUOTE_STRING_MODE,
7926 NUMBER,
7927 TUPLE,
7928 VAR1, VAR2,
7929 RECORD_ACCESS
7930 ];
7931 FUNCTION_CALL.contains[1].contains = BASIC_MODES;
7932 TUPLE.contains = BASIC_MODES;
7933 RECORD_ACCESS.contains[1].contains = BASIC_MODES;
7934
7935 var PARAMS = {
7936 className: 'params',
7937 begin: '\\(', end: '\\)',
7938 contains: BASIC_MODES
7939 };
7940 return {
7941 aliases: ['erl'],
7942 keywords: ERLANG_RESERVED,
7943 illegal: '(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))',
7944 contains: [
7945 {
7946 className: 'function',
7947 begin: '^' + BASIC_ATOM_RE + '\\s*\\(', end: '->',
7948 returnBegin: true,
7949 illegal: '\\(|#|//|/\\*|\\\\|:|;',
7950 contains: [
7951 PARAMS,
7952 hljs.inherit(hljs.TITLE_MODE, {begin: BASIC_ATOM_RE})
7953 ],
7954 starts: {
7955 end: ';|\\.',
7956 keywords: ERLANG_RESERVED,
7957 contains: BASIC_MODES
7958 }
7959 },
7960 COMMENT,
7961 {
7962 begin: '^-', end: '\\.',
7963 relevance: 0,
7964 excludeEnd: true,
7965 returnBegin: true,
7966 lexemes: '-' + hljs.IDENT_RE,
7967 keywords:
7968 '-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn ' +
7969 '-import -include -include_lib -compile -define -else -endif -file -behaviour ' +
7970 '-behavior -spec',
7971 contains: [PARAMS]
7972 },
7973 NUMBER,
7974 hljs.QUOTE_STRING_MODE,
7975 RECORD_ACCESS,
7976 VAR1, VAR2,
7977 TUPLE,
7978 {begin: /\.$/} // relevance booster
7979 ]
7980 };
7981}
7982},{name:"fix",create:/*
7983Language: FIX
7984Author: Brent Bradbury <brent@brentium.com>
7985*/
7986
7987function(hljs) {
7988 return {
7989 contains: [
7990 {
7991 begin: /[^\u2401\u0001]+/,
7992 end: /[\u2401\u0001]/,
7993 excludeEnd: true,
7994 returnBegin: true,
7995 returnEnd: false,
7996 contains: [
7997 {
7998 begin: /([^\u2401\u0001=]+)/,
7999 end: /=([^\u2401\u0001=]+)/,
8000 returnEnd: true,
8001 returnBegin: false,
8002 className: 'attr'
8003 },
8004 {
8005 begin: /=/,
8006 end: /([\u2401\u0001])/,
8007 excludeEnd: true,
8008 excludeBegin: true,
8009 className: 'string'
8010 }]
8011 }],
8012 case_insensitive: true
8013 };
8014}
8015},{name:"fortran",create:/*
8016Language: Fortran
8017Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
8018Category: scientific
8019*/
8020
8021function(hljs) {
8022 var PARAMS = {
8023 className: 'params',
8024 begin: '\\(', end: '\\)'
8025 };
8026
8027 var F_KEYWORDS = {
8028 literal: '.False. .True.',
8029 keyword: 'kind do while private call intrinsic where elsewhere ' +
8030 'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' +
8031 'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +
8032 'goto save else use module select case ' +
8033 'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +
8034 'continue format pause cycle exit ' +
8035 'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +
8036 'synchronous nopass non_overridable pass protected volatile abstract extends import ' +
8037 'non_intrinsic value deferred generic final enumerator class associate bind enum ' +
8038 '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 ' +
8039 '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 ' +
8040 'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +
8041 'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer ' +
8042 'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +
8043 'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +
8044 'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +
8045 'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure ' +
8046 'integer real character complex logical dimension allocatable|10 parameter ' +
8047 'external implicit|10 none double precision assign intent optional pointer ' +
8048 'target in out common equivalence data',
8049 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 ' +
8050 'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +
8051 'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +
8052 'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +
8053 '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 ' +
8054 'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +
8055 'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +
8056 'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +
8057 'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +
8058 'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +
8059 'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +
8060 'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +
8061 'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +
8062 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of' +
8063 'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +
8064 'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +
8065 'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +
8066 'num_images parity popcnt poppar shifta shiftl shiftr this_image'
8067 };
8068 return {
8069 case_insensitive: true,
8070 aliases: ['f90', 'f95'],
8071 keywords: F_KEYWORDS,
8072 illegal: /\/\*/,
8073 contains: [
8074 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
8075 hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'string', relevance: 0}),
8076 {
8077 className: 'function',
8078 beginKeywords: 'subroutine function program',
8079 illegal: '[${=\\n]',
8080 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
8081 },
8082 hljs.COMMENT('!', '$', {relevance: 0}),
8083 {
8084 className: 'number',
8085 begin: '(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?',
8086 relevance: 0
8087 }
8088 ]
8089 };
8090}
8091},{name:"fsharp",create:/*
8092Language: F#
8093Author: Jonas Follesรธ <jonas@follesoe.no>
8094Contributors: Troy Kershaw <hello@troykershaw.com>, Henrik Feldt <henrik@haf.se>
8095Category: functional
8096*/
8097function(hljs) {
8098 var TYPEPARAM = {
8099 begin: '<', end: '>',
8100 contains: [
8101 hljs.inherit(hljs.TITLE_MODE, {begin: /'[a-zA-Z0-9_]+/})
8102 ]
8103 };
8104
8105 return {
8106 aliases: ['fs'],
8107 keywords:
8108 'abstract and as assert base begin class default delegate do done ' +
8109 'downcast downto elif else end exception extern false finally for ' +
8110 'fun function global if in inherit inline interface internal lazy let ' +
8111 'match member module mutable namespace new null of open or ' +
8112 'override private public rec return sig static struct then to ' +
8113 'true try type upcast use val void when while with yield',
8114 illegal: /\/\*/,
8115 contains: [
8116 {
8117 // monad builder keywords (matches before non-bang kws)
8118 className: 'keyword',
8119 begin: /\b(yield|return|let|do)!/
8120 },
8121 {
8122 className: 'string',
8123 begin: '@"', end: '"',
8124 contains: [{begin: '""'}]
8125 },
8126 {
8127 className: 'string',
8128 begin: '"""', end: '"""'
8129 },
8130 hljs.COMMENT('\\(\\*', '\\*\\)'),
8131 {
8132 className: 'class',
8133 beginKeywords: 'type', end: '\\(|=|$', excludeEnd: true,
8134 contains: [
8135 hljs.UNDERSCORE_TITLE_MODE,
8136 TYPEPARAM
8137 ]
8138 },
8139 {
8140 className: 'meta',
8141 begin: '\\[<', end: '>\\]',
8142 relevance: 10
8143 },
8144 {
8145 className: 'symbol',
8146 begin: '\\B(\'[A-Za-z])\\b',
8147 contains: [hljs.BACKSLASH_ESCAPE]
8148 },
8149 hljs.C_LINE_COMMENT_MODE,
8150 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
8151 hljs.C_NUMBER_MODE
8152 ]
8153 };
8154}
8155},{name:"gams",create:/*
8156 Language: GAMS
8157 Author: Stefan Bechert <stefan.bechert@gmx.net>
8158 Contributors: Oleg Efimov <efimovov@gmail.com>
8159 Description: The General Algebraic Modeling System language
8160 Category: scientific
8161 */
8162
8163function (hljs) {
8164 var KEYWORDS =
8165 'abort acronym acronyms alias all and assign binary card diag display else1 eps eq equation equations file files ' +
8166 'for1 free ge gt if inf integer le loop lt maximizing minimizing model models na ne negative no not option ' +
8167 'options or ord parameter parameters positive prod putpage puttl repeat sameas scalar scalars semicont semiint ' +
8168 'set1 sets smax smin solve sos1 sos2 sum system table then until using variable variables while1 xor yes';
8169
8170 return {
8171 aliases: ['gms'],
8172 case_insensitive: true,
8173 keywords: KEYWORDS,
8174 contains: [
8175 {
8176 beginKeywords: 'sets parameters variables equations',
8177 end: ';',
8178 contains: [
8179 {
8180 begin: '/',
8181 end: '/',
8182 contains: [hljs.NUMBER_MODE]
8183 }
8184 ]
8185 },
8186 {
8187 className: 'string',
8188 begin: '\\*{3}', end: '\\*{3}'
8189 },
8190 hljs.NUMBER_MODE,
8191 {
8192 className: 'number',
8193 begin: '\\$[a-zA-Z0-9]+'
8194 }
8195 ]
8196 };
8197}
8198
8199},{name:"gcode",create:/*
8200 Language: G-code (ISO 6983)
8201 Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>
8202 Description: G-code syntax highlighter for Fanuc and other common CNC machine tool controls.
8203 */
8204
8205function(hljs) {
8206 var GCODE_IDENT_RE = '[A-Z_][A-Z0-9_.]*';
8207 var GCODE_CLOSE_RE = '\\%';
8208 var GCODE_KEYWORDS =
8209 'IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT ' +
8210 'EQ LT GT NE GE LE OR XOR';
8211 var GCODE_START = {
8212 className: 'meta',
8213 begin: '([O])([0-9]+)'
8214 };
8215 var GCODE_CODE = [
8216 hljs.C_LINE_COMMENT_MODE,
8217 hljs.C_BLOCK_COMMENT_MODE,
8218 hljs.COMMENT(/\(/, /\)/),
8219 hljs.inherit(hljs.C_NUMBER_MODE, {begin: '([-+]?([0-9]*\\.?[0-9]+\\.?))|' + hljs.C_NUMBER_RE}),
8220 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
8221 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
8222 {
8223 className: 'name',
8224 begin: '([G])([0-9]+\\.?[0-9]?)'
8225 },
8226 {
8227 className: 'name',
8228 begin: '([M])([0-9]+\\.?[0-9]?)'
8229 },
8230 {
8231 className: 'attr',
8232 begin: '(VC|VS|#)',
8233 end: '(\\d+)'
8234 },
8235 {
8236 className: 'attr',
8237 begin: '(VZOFX|VZOFY|VZOFZ)'
8238 },
8239 {
8240 className: 'built_in',
8241 begin: '(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)',
8242 end: '([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])'
8243 },
8244 {
8245 className: 'symbol',
8246 variants: [
8247 {
8248 begin: 'N', end: '\\d+',
8249 illegal: '\\W'
8250 }
8251 ]
8252 }
8253 ];
8254
8255 return {
8256 aliases: ['nc'],
8257 // Some implementations (CNC controls) of G-code are interoperable with uppercase and lowercase letters seamlessly.
8258 // However, most prefer all uppercase and uppercase is customary.
8259 case_insensitive: true,
8260 lexemes: GCODE_IDENT_RE,
8261 keywords: GCODE_KEYWORDS,
8262 contains: [
8263 {
8264 className: 'meta',
8265 begin: GCODE_CLOSE_RE
8266 },
8267 GCODE_START
8268 ].concat(GCODE_CODE)
8269 };
8270}
8271},{name:"gherkin",create:/*
8272 Language: Gherkin
8273 Author: Sam Pikesley (@pikesley) <sam.pikesley@theodi.org>
8274 Description: Gherkin (Cucumber etc)
8275 */
8276
8277function (hljs) {
8278 return {
8279 aliases: ['feature'],
8280 keywords: 'Feature Background Ability Business\ Need Scenario Scenarios Scenario\ Outline Scenario\ Template Examples Given And Then But When',
8281 contains: [
8282 {
8283 className: 'keyword',
8284 begin: '\\*'
8285 },
8286 {
8287 className: 'meta',
8288 begin: '@[^@\\s]+'
8289 },
8290 {
8291 begin: '\\|', end: '\\|\\w*$',
8292 contains: [
8293 {
8294 className: 'string',
8295 begin: '[^|]+'
8296 }
8297 ]
8298 },
8299 {
8300 className: 'variable',
8301 begin: '<', end: '>'
8302 },
8303 hljs.HASH_COMMENT_MODE,
8304 {
8305 className: 'string',
8306 begin: '"""', end: '"""'
8307 },
8308 hljs.QUOTE_STRING_MODE
8309 ]
8310 };
8311}
8312},{name:"glsl",create:/*
8313Language: GLSL
8314Description: OpenGL Shading Language
8315Author: Sergey Tikhomirov <sergey@tikhomirov.io>
8316Category: graphics
8317*/
8318
8319function(hljs) {
8320 return {
8321 keywords: {
8322 keyword:
8323 // Statements
8324 'break continue discard do else for if return while' +
8325 // Qualifiers
8326 'attribute binding buffer ccw centroid centroid varying coherent column_major const cw ' +
8327 'depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing ' +
8328 'flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant ' +
8329 'invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y ' +
8330 'local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left ' +
8331 'out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f '+
8332 'r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict ' +
8333 'rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 ' +
8334 'rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 ' +
8335 'rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip ' +
8336 'triangles triangles_adjacency uniform varying vertices volatile writeonly',
8337 type:
8338 'atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 ' +
8339 'dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray ' +
8340 'iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer' +
8341 'iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray ' +
8342 'image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray ' +
8343 'isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D ' +
8344 'isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 ' +
8345 'mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray ' +
8346 'sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow ' +
8347 'sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D ' +
8348 'samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow ' +
8349 'image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect ' +
8350 'uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray ' +
8351 'usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D ' +
8352 'samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void',
8353 built_in:
8354 // Constants
8355 'gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes ' +
8356 'gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms ' +
8357 'gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers ' +
8358 'gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits ' +
8359 'gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize ' +
8360 'gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters ' +
8361 'gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors ' +
8362 'gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers ' +
8363 'gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents ' +
8364 'gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits ' +
8365 'gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents ' +
8366 'gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset ' +
8367 'gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms ' +
8368 'gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits ' +
8369 'gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents ' +
8370 'gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters ' +
8371 'gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents ' +
8372 'gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents ' +
8373 'gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits ' +
8374 'gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors ' +
8375 'gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms ' +
8376 'gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits ' +
8377 'gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset ' +
8378 // Variables
8379 'gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial ' +
8380 'gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color ' +
8381 'gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord ' +
8382 'gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor ' +
8383 'gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial ' +
8384 'gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel ' +
8385 'gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix ' +
8386 'gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose ' +
8387 'gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose ' +
8388 'gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 ' +
8389 'gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 ' +
8390 'gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ ' +
8391 'gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord ' +
8392 'gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse ' +
8393 'gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask ' +
8394 'gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter ' +
8395 'gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose ' +
8396 'gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out ' +
8397 // Functions
8398 'EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin ' +
8399 'asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement ' +
8400 'atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier ' +
8401 'bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross ' +
8402 'dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB ' +
8403 'floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan ' +
8404 'greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap ' +
8405 'imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad ' +
8406 'imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset ' +
8407 'interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log ' +
8408 'log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer ' +
8409 'memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 ' +
8410 'normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 ' +
8411 'packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod ' +
8412 'shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh ' +
8413 'smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod ' +
8414 'texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod ' +
8415 'texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod ' +
8416 'textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset ' +
8417 'textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset ' +
8418 'textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod ' +
8419 'textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 ' +
8420 'unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow',
8421 literal: 'true false'
8422 },
8423 illegal: '"',
8424 contains: [
8425 hljs.C_LINE_COMMENT_MODE,
8426 hljs.C_BLOCK_COMMENT_MODE,
8427 hljs.C_NUMBER_MODE,
8428 {
8429 className: 'meta',
8430 begin: '#', end: '$'
8431 }
8432 ]
8433 };
8434}
8435},{name:"go",create:/*
8436Language: Go
8437Author: Stephan Kountso aka StepLg <steplg@gmail.com>
8438Contributors: Evgeny Stepanischev <imbolk@gmail.com>
8439Description: Google go language (golang). For info about language see http://golang.org/
8440Category: system
8441*/
8442
8443function(hljs) {
8444 var GO_KEYWORDS = {
8445 keyword:
8446 'break default func interface select case map struct chan else goto package switch ' +
8447 'const fallthrough if range type continue for import return var go defer ' +
8448 'bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 ' +
8449 'uint16 uint32 uint64 int uint uintptr rune',
8450 literal:
8451 'true false iota nil',
8452 built_in:
8453 'append cap close complex copy imag len make new panic print println real recover delete'
8454 };
8455 return {
8456 aliases: ['golang'],
8457 keywords: GO_KEYWORDS,
8458 illegal: '</',
8459 contains: [
8460 hljs.C_LINE_COMMENT_MODE,
8461 hljs.C_BLOCK_COMMENT_MODE,
8462 hljs.QUOTE_STRING_MODE,
8463 {
8464 className: 'string',
8465 begin: '\'', end: '[^\\\\]\''
8466 },
8467 {
8468 className: 'string',
8469 begin: '`', end: '`'
8470 },
8471 {
8472 className: 'number',
8473 begin: hljs.C_NUMBER_RE + '[dflsi]?',
8474 relevance: 0
8475 },
8476 hljs.C_NUMBER_MODE
8477 ]
8478 };
8479}
8480},{name:"golo",create:/*
8481Language: Golo
8482Author: Philippe Charriere <ph.charriere@gmail.com>
8483Description: a lightweight dynamic language for the JVM, see http://golo-lang.org/
8484*/
8485
8486function(hljs) {
8487 return {
8488 keywords: {
8489 keyword:
8490 'println readln print import module function local return let var ' +
8491 'while for foreach times in case when match with break continue ' +
8492 'augment augmentation each find filter reduce ' +
8493 'if then else otherwise try catch finally raise throw orIfNull ' +
8494 'DynamicObject|10 DynamicVariable struct Observable map set vector list array',
8495 literal:
8496 'true false null'
8497 },
8498 contains: [
8499 hljs.HASH_COMMENT_MODE,
8500 hljs.QUOTE_STRING_MODE,
8501 hljs.C_NUMBER_MODE,
8502 {
8503 className: 'meta', begin: '@[A-Za-z]+'
8504 }
8505 ]
8506 }
8507}
8508},{name:"gradle",create:/*
8509Language: Gradle
8510Author: Damian Mee <mee.damian@gmail.com>
8511Website: http://meeDamian.com
8512*/
8513
8514function(hljs) {
8515 return {
8516 case_insensitive: true,
8517 keywords: {
8518 keyword:
8519 'task project allprojects subprojects artifacts buildscript configurations ' +
8520 'dependencies repositories sourceSets description delete from into include ' +
8521 'exclude source classpath destinationDir includes options sourceCompatibility ' +
8522 'targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant ' +
8523 'def abstract break case catch continue default do else extends final finally ' +
8524 'for if implements instanceof native new private protected public return static ' +
8525 'switch synchronized throw throws transient try volatile while strictfp package ' +
8526 'import false null super this true antlrtask checkstyle codenarc copy boolean ' +
8527 'byte char class double float int interface long short void compile runTime ' +
8528 'file fileTree abs any append asList asWritable call collect compareTo count ' +
8529 'div dump each eachByte eachFile eachLine every find findAll flatten getAt ' +
8530 'getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods ' +
8531 'isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter ' +
8532 'newReader newWriter next plus pop power previous print println push putAt read ' +
8533 'readBytes readLines reverse reverseEach round size sort splitEachLine step subMap ' +
8534 'times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader ' +
8535 'withStream withWriter withWriterAppend write writeLine'
8536 },
8537 contains: [
8538 hljs.C_LINE_COMMENT_MODE,
8539 hljs.C_BLOCK_COMMENT_MODE,
8540 hljs.APOS_STRING_MODE,
8541 hljs.QUOTE_STRING_MODE,
8542 hljs.NUMBER_MODE,
8543 hljs.REGEXP_MODE
8544
8545 ]
8546 }
8547}
8548},{name:"groovy",create:/*
8549 Language: Groovy
8550 Author: Guillaume Laforge <glaforge@gmail.com>
8551 Website: http://glaforge.appspot.com
8552 Description: Groovy programming language implementation inspired from Vsevolod's Java mode
8553 */
8554
8555function(hljs) {
8556 return {
8557 keywords: {
8558 literal : 'true false null',
8559 keyword:
8560 'byte short char int long boolean float double void ' +
8561 // groovy specific keywords
8562 'def as in assert trait ' +
8563 // common keywords with Java
8564 'super this abstract static volatile transient public private protected synchronized final ' +
8565 'class interface enum if else for while switch case break default continue ' +
8566 'throw throws try catch finally implements extends new import package return instanceof'
8567 },
8568
8569 contains: [
8570 hljs.COMMENT(
8571 '/\\*\\*',
8572 '\\*/',
8573 {
8574 relevance : 0,
8575 contains : [
8576 {
8577 // eat up @'s in emails to prevent them to be recognized as doctags
8578 begin: /\w+@/, relevance: 0
8579 },
8580 {
8581 className : 'doctag',
8582 begin : '@[A-Za-z]+'
8583 }
8584 ]
8585 }
8586 ),
8587 hljs.C_LINE_COMMENT_MODE,
8588 hljs.C_BLOCK_COMMENT_MODE,
8589 {
8590 className: 'string',
8591 begin: '"""', end: '"""'
8592 },
8593 {
8594 className: 'string',
8595 begin: "'''", end: "'''"
8596 },
8597 {
8598 className: 'string',
8599 begin: "\\$/", end: "/\\$",
8600 relevance: 10
8601 },
8602 hljs.APOS_STRING_MODE,
8603 {
8604 className: 'regexp',
8605 begin: /~?\/[^\/\n]+\//,
8606 contains: [
8607 hljs.BACKSLASH_ESCAPE
8608 ]
8609 },
8610 hljs.QUOTE_STRING_MODE,
8611 {
8612 className: 'meta',
8613 begin: "^#!/usr/bin/env", end: '$',
8614 illegal: '\n'
8615 },
8616 hljs.BINARY_NUMBER_MODE,
8617 {
8618 className: 'class',
8619 beginKeywords: 'class interface trait enum', end: '{',
8620 illegal: ':',
8621 contains: [
8622 {beginKeywords: 'extends implements'},
8623 hljs.UNDERSCORE_TITLE_MODE,
8624 ]
8625 },
8626 hljs.C_NUMBER_MODE,
8627 {
8628 className: 'meta', begin: '@[A-Za-z]+'
8629 },
8630 {
8631 // highlight map keys and named parameters as strings
8632 className: 'string', begin: /[^\?]{0}[A-Za-z0-9_$]+ *:/
8633 },
8634 {
8635 // catch middle element of the ternary operator
8636 // to avoid highlight it as a label, named parameter, or map key
8637 begin: /\?/, end: /\:/
8638 },
8639 {
8640 // highlight labeled statements
8641 className: 'symbol', begin: '^\\s*[A-Za-z0-9_$]+:',
8642 relevance: 0
8643 },
8644 ],
8645 illegal: /#|<\//
8646 }
8647}
8648},{name:"haml",create:/*
8649Language: Haml
8650Requires: ruby.js
8651Author: Dan Allen <dan.j.allen@gmail.com>
8652Website: http://google.com/profiles/dan.j.allen
8653Category: template
8654*/
8655
8656// TODO support filter tags like :javascript, support inline HTML
8657function(hljs) {
8658 return {
8659 case_insensitive: true,
8660 contains: [
8661 {
8662 className: 'meta',
8663 begin: '^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$',
8664 relevance: 10
8665 },
8666 // FIXME these comments should be allowed to span indented lines
8667 hljs.COMMENT(
8668 '^\\s*(!=#|=#|-#|/).*$',
8669 false,
8670 {
8671 relevance: 0
8672 }
8673 ),
8674 {
8675 begin: '^\\s*(-|=|!=)(?!#)',
8676 starts: {
8677 end: '\\n',
8678 subLanguage: 'ruby'
8679 }
8680 },
8681 {
8682 className: 'tag',
8683 begin: '^\\s*%',
8684 contains: [
8685 {
8686 className: 'selector-tag',
8687 begin: '\\w+'
8688 },
8689 {
8690 className: 'selector-id',
8691 begin: '#[\\w-]+'
8692 },
8693 {
8694 className: 'selector-class',
8695 begin: '\\.[\\w-]+'
8696 },
8697 {
8698 begin: '{\\s*',
8699 end: '\\s*}',
8700 contains: [
8701 {
8702 begin: ':\\w+\\s*=>',
8703 end: ',\\s+',
8704 returnBegin: true,
8705 endsWithParent: true,
8706 contains: [
8707 {
8708 className: 'attr',
8709 begin: ':\\w+'
8710 },
8711 hljs.APOS_STRING_MODE,
8712 hljs.QUOTE_STRING_MODE,
8713 {
8714 begin: '\\w+',
8715 relevance: 0
8716 }
8717 ]
8718 }
8719 ]
8720 },
8721 {
8722 begin: '\\(\\s*',
8723 end: '\\s*\\)',
8724 excludeEnd: true,
8725 contains: [
8726 {
8727 begin: '\\w+\\s*=',
8728 end: '\\s+',
8729 returnBegin: true,
8730 endsWithParent: true,
8731 contains: [
8732 {
8733 className: 'attr',
8734 begin: '\\w+',
8735 relevance: 0
8736 },
8737 hljs.APOS_STRING_MODE,
8738 hljs.QUOTE_STRING_MODE,
8739 {
8740 begin: '\\w+',
8741 relevance: 0
8742 }
8743 ]
8744 }
8745 ]
8746 }
8747 ]
8748 },
8749 {
8750 begin: '^\\s*[=~]\\s*'
8751 },
8752 {
8753 begin: '#{',
8754 starts: {
8755 end: '}',
8756 subLanguage: 'ruby'
8757 }
8758 }
8759 ]
8760 };
8761}
8762},{name:"handlebars",create:/*
8763Language: Handlebars
8764Requires: xml.js
8765Author: Robin Ward <robin.ward@gmail.com>
8766Description: Matcher for Handlebars as well as EmberJS additions.
8767Category: template
8768*/
8769
8770function(hljs) {
8771 var BUILT_INS = {'builtin-name': 'each in with if else unless bindattr action collection debugger log outlet template unbound view yield'};
8772 return {
8773 aliases: ['hbs', 'html.hbs', 'html.handlebars'],
8774 case_insensitive: true,
8775 subLanguage: 'xml',
8776 contains: [
8777 hljs.COMMENT('{{!(--)?', '(--)?}}'),
8778 {
8779 className: 'template-tag',
8780 begin: /\{\{[#\/]/, end: /\}\}/,
8781 contains: [
8782 {
8783 className: 'name',
8784 begin: /[a-zA-Z\.-]+/,
8785 keywords: BUILT_INS,
8786 starts: {
8787 endsWithParent: true, relevance: 0,
8788 contains: [
8789 hljs.QUOTE_STRING_MODE
8790 ]
8791 }
8792 }
8793 ]
8794 },
8795 {
8796 className: 'template-variable',
8797 begin: /\{\{/, end: /\}\}/,
8798 keywords: BUILT_INS
8799 }
8800 ]
8801 };
8802}
8803},{name:"haskell",create:/*
8804Language: Haskell
8805Author: Jeremy Hull <sourdrums@gmail.com>
8806Contributors: Zena Treep <zena.treep@gmail.com>
8807Category: functional
8808*/
8809
8810function(hljs) {
8811 var COMMENT = {
8812 variants: [
8813 hljs.COMMENT('--', '$'),
8814 hljs.COMMENT(
8815 '{-',
8816 '-}',
8817 {
8818 contains: ['self']
8819 }
8820 )
8821 ]
8822 };
8823
8824 var PRAGMA = {
8825 className: 'meta',
8826 begin: '{-#', end: '#-}'
8827 };
8828
8829 var PREPROCESSOR = {
8830 className: 'meta',
8831 begin: '^#', end: '$'
8832 };
8833
8834 var CONSTRUCTOR = {
8835 className: 'type',
8836 begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (build-in, infix).
8837 relevance: 0
8838 };
8839
8840 var LIST = {
8841 begin: '\\(', end: '\\)',
8842 illegal: '"',
8843 contains: [
8844 PRAGMA,
8845 PREPROCESSOR,
8846 {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
8847 hljs.inherit(hljs.TITLE_MODE, {begin: '[_a-z][\\w\']*'}),
8848 COMMENT
8849 ]
8850 };
8851
8852 var RECORD = {
8853 begin: '{', end: '}',
8854 contains: LIST.contains
8855 };
8856
8857 return {
8858 aliases: ['hs'],
8859 keywords:
8860 'let in if then else case of where do module import hiding ' +
8861 'qualified type data newtype deriving class instance as default ' +
8862 'infix infixl infixr foreign export ccall stdcall cplusplus ' +
8863 'jvm dotnet safe unsafe family forall mdo proc rec',
8864 contains: [
8865
8866 // Top-level constructions.
8867
8868 {
8869 beginKeywords: 'module', end: 'where',
8870 keywords: 'module where',
8871 contains: [LIST, COMMENT],
8872 illegal: '\\W\\.|;'
8873 },
8874 {
8875 begin: '\\bimport\\b', end: '$',
8876 keywords: 'import qualified as hiding',
8877 contains: [LIST, COMMENT],
8878 illegal: '\\W\\.|;'
8879 },
8880
8881 {
8882 className: 'class',
8883 begin: '^(\\s*)?(class|instance)\\b', end: 'where',
8884 keywords: 'class family instance where',
8885 contains: [CONSTRUCTOR, LIST, COMMENT]
8886 },
8887 {
8888 className: 'class',
8889 begin: '\\b(data|(new)?type)\\b', end: '$',
8890 keywords: 'data family type newtype deriving',
8891 contains: [PRAGMA, CONSTRUCTOR, LIST, RECORD, COMMENT]
8892 },
8893 {
8894 beginKeywords: 'default', end: '$',
8895 contains: [CONSTRUCTOR, LIST, COMMENT]
8896 },
8897 {
8898 beginKeywords: 'infix infixl infixr', end: '$',
8899 contains: [hljs.C_NUMBER_MODE, COMMENT]
8900 },
8901 {
8902 begin: '\\bforeign\\b', end: '$',
8903 keywords: 'foreign import export ccall stdcall cplusplus jvm ' +
8904 'dotnet safe unsafe',
8905 contains: [CONSTRUCTOR, hljs.QUOTE_STRING_MODE, COMMENT]
8906 },
8907 {
8908 className: 'meta',
8909 begin: '#!\\/usr\\/bin\\/env\ runhaskell', end: '$'
8910 },
8911
8912 // "Whitespaces".
8913
8914 PRAGMA,
8915 PREPROCESSOR,
8916
8917 // Literals and names.
8918
8919 // TODO: characters.
8920 hljs.QUOTE_STRING_MODE,
8921 hljs.C_NUMBER_MODE,
8922 CONSTRUCTOR,
8923 hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}),
8924
8925 COMMENT,
8926
8927 {begin: '->|<-'} // No markup, relevance booster
8928 ]
8929 };
8930}
8931},{name:"haxe",create:/*
8932Language: Haxe
8933Author: Christopher Kaster <ikasoki@gmail.com> (Based on the actionscript.js language file by Alexander Myadzel)
8934*/
8935
8936function(hljs) {
8937 var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*';
8938 var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)';
8939
8940 return {
8941 aliases: ['hx'],
8942 keywords: {
8943 keyword: 'break callback case cast catch class continue default do dynamic else enum extends extern ' +
8944 'for function here if implements import in inline interface never new override package private ' +
8945 'public return static super switch this throw trace try typedef untyped using var while',
8946 literal: 'true false null'
8947 },
8948 contains: [
8949 hljs.APOS_STRING_MODE,
8950 hljs.QUOTE_STRING_MODE,
8951 hljs.C_LINE_COMMENT_MODE,
8952 hljs.C_BLOCK_COMMENT_MODE,
8953 hljs.C_NUMBER_MODE,
8954 {
8955 className: 'class',
8956 beginKeywords: 'class interface', end: '{', excludeEnd: true,
8957 contains: [
8958 {
8959 beginKeywords: 'extends implements'
8960 },
8961 hljs.TITLE_MODE
8962 ]
8963 },
8964 {
8965 className: 'meta',
8966 begin: '#', end: '$',
8967 keywords: {'meta-keyword': 'if else elseif end error'}
8968 },
8969 {
8970 className: 'function',
8971 beginKeywords: 'function', end: '[{;]', excludeEnd: true,
8972 illegal: '\\S',
8973 contains: [
8974 hljs.TITLE_MODE,
8975 {
8976 className: 'params',
8977 begin: '\\(', end: '\\)',
8978 contains: [
8979 hljs.APOS_STRING_MODE,
8980 hljs.QUOTE_STRING_MODE,
8981 hljs.C_LINE_COMMENT_MODE,
8982 hljs.C_BLOCK_COMMENT_MODE
8983 ]
8984 },
8985 {
8986 begin: ':\\s*' + IDENT_FUNC_RETURN_TYPE_RE
8987 }
8988 ]
8989 }
8990 ]
8991 };
8992}
8993},{name:"hsp",create:/*
8994Language: HSP
8995Author: prince <MC.prince.0203@gmail.com>
8996Website: http://prince.webcrow.jp/
8997Category: scripting
8998*/
8999
9000function(hljs) {
9001 return {
9002 case_insensitive: true,
9003 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',
9004 contains: [
9005 hljs.C_LINE_COMMENT_MODE,
9006 hljs.C_BLOCK_COMMENT_MODE,
9007 hljs.QUOTE_STRING_MODE,
9008 hljs.APOS_STRING_MODE,
9009
9010 {
9011 // multi-line string
9012 className: 'string',
9013 begin: '{"', end: '"}',
9014 contains: [hljs.BACKSLASH_ESCAPE]
9015 },
9016
9017 hljs.COMMENT(';', '$'),
9018
9019 {
9020 // pre-processor
9021 className: 'meta',
9022 begin: '#', end: '$',
9023 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'},
9024 contains: [
9025 hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'meta-string'}),
9026 hljs.NUMBER_MODE,
9027 hljs.C_NUMBER_MODE,
9028 hljs.C_LINE_COMMENT_MODE,
9029 hljs.C_BLOCK_COMMENT_MODE
9030 ]
9031 },
9032
9033 {
9034 // label
9035 className: 'symbol',
9036 begin: '^\\*(\\w+|@)'
9037 },
9038
9039 hljs.NUMBER_MODE,
9040 hljs.C_NUMBER_MODE
9041 ]
9042 };
9043}
9044},{name:"http",create:/*
9045Language: HTTP
9046Description: HTTP request and response headers with automatic body highlighting
9047Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
9048Category: common, protocols
9049*/
9050
9051function(hljs) {
9052 var VERSION = 'HTTP/[0-9\\.]+';
9053 return {
9054 aliases: ['https'],
9055 illegal: '\\S',
9056 contains: [
9057 {
9058 begin: '^' + VERSION, end: '$',
9059 contains: [{className: 'number', begin: '\\b\\d{3}\\b'}]
9060 },
9061 {
9062 begin: '^[A-Z]+ (.*?) ' + VERSION + '$', returnBegin: true, end: '$',
9063 contains: [
9064 {
9065 className: 'string',
9066 begin: ' ', end: ' ',
9067 excludeBegin: true, excludeEnd: true
9068 },
9069 {
9070 begin: VERSION
9071 },
9072 {
9073 className: 'keyword',
9074 begin: '[A-Z]+'
9075 }
9076 ]
9077 },
9078 {
9079 className: 'attribute',
9080 begin: '^\\w', end: ': ', excludeEnd: true,
9081 illegal: '\\n|\\s|=',
9082 starts: {end: '$', relevance: 0}
9083 },
9084 {
9085 begin: '\\n\\n',
9086 starts: {subLanguage: [], endsWithParent: true}
9087 }
9088 ]
9089 };
9090}
9091},{name:"inform7",create:/*
9092Language: Inform 7
9093Author: Bruno Dias <bruno.r.dias@gmail.com>
9094Description: Language definition for Inform 7, a DSL for writing parser interactive fiction.
9095*/
9096
9097function(hljs) {
9098 var START_BRACKET = '\\[';
9099 var END_BRACKET = '\\]';
9100 return {
9101 aliases: ['i7'],
9102 case_insensitive: true,
9103 keywords: {
9104 // Some keywords more or less unique to I7, for relevance.
9105 keyword:
9106 // kind:
9107 'thing room person man woman animal container ' +
9108 'supporter backdrop door ' +
9109 // characteristic:
9110 'scenery open closed locked inside gender ' +
9111 // verb:
9112 'is are say understand ' +
9113 // misc keyword:
9114 'kind of rule'
9115 },
9116 contains: [
9117 {
9118 className: 'string',
9119 begin: '"', end: '"',
9120 relevance: 0,
9121 contains: [
9122 {
9123 className: 'subst',
9124 begin: START_BRACKET, end: END_BRACKET
9125 }
9126 ]
9127 },
9128 {
9129 className: 'section',
9130 begin: /^(Volume|Book|Part|Chapter|Section|Table)\b/,
9131 end: '$'
9132 },
9133 {
9134 // Rule definition
9135 // This is here for relevance.
9136 begin: /^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,
9137 end: ':',
9138 contains: [
9139 {
9140 //Rule name
9141 begin: '\\(This', end: '\\)'
9142 }
9143 ]
9144 },
9145 {
9146 className: 'comment',
9147 begin: START_BRACKET, end: END_BRACKET,
9148 contains: ['self']
9149 }
9150 ]
9151 };
9152}
9153},{name:"ini",create:/*
9154Language: Ini
9155Contributors: Guillaume Gomez <guillaume1.gomez@gmail.com>
9156Category: common, config
9157*/
9158
9159function(hljs) {
9160 var STRING = {
9161 className: "string",
9162 contains: [hljs.BACKSLASH_ESCAPE],
9163 variants: [
9164 {
9165 begin: "'''", end: "'''",
9166 relevance: 10
9167 }, {
9168 begin: '"""', end: '"""',
9169 relevance: 10
9170 }, {
9171 begin: '"', end: '"'
9172 }, {
9173 begin: "'", end: "'"
9174 }
9175 ]
9176 };
9177 return {
9178 aliases: ['toml'],
9179 case_insensitive: true,
9180 illegal: /\S/,
9181 contains: [
9182 hljs.COMMENT(';', '$'),
9183 hljs.HASH_COMMENT_MODE,
9184 {
9185 className: 'section',
9186 begin: /^\s*\[+/, end: /\]+/
9187 },
9188 {
9189 begin: /^[a-z0-9\[\]_-]+\s*=\s*/, end: '$',
9190 returnBegin: true,
9191 contains: [
9192 {
9193 className: 'attr',
9194 begin: /[a-z0-9\[\]_-]+/
9195 },
9196 {
9197 begin: /=/, endsWithParent: true,
9198 relevance: 0,
9199 contains: [
9200 {
9201 className: 'literal',
9202 begin: /\bon|off|true|false|yes|no\b/
9203 },
9204 {
9205 className: 'variable',
9206 variants: [
9207 {begin: /\$[\w\d"][\w\d_]*/},
9208 {begin: /\$\{(.*?)}/}
9209 ]
9210 },
9211 STRING,
9212 {
9213 className: 'number',
9214 begin: /([\+\-]+)?[\d]+_[\d_]+/
9215 },
9216 hljs.NUMBER_MODE
9217 ]
9218 }
9219 ]
9220 }
9221 ]
9222 };
9223}
9224},{name:"irpf90",create:/*
9225Language: IRPF90
9226Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
9227Description: IRPF90 is an open-source Fortran code generator : http://irpf90.ups-tlse.fr
9228Category: scientific
9229*/
9230
9231function(hljs) {
9232 var PARAMS = {
9233 className: 'params',
9234 begin: '\\(', end: '\\)'
9235 };
9236
9237 var F_KEYWORDS = {
9238 literal: '.False. .True.',
9239 keyword: 'kind do while private call intrinsic where elsewhere ' +
9240 'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' +
9241 'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +
9242 'goto save else use module select case ' +
9243 'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +
9244 'continue format pause cycle exit ' +
9245 'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +
9246 'synchronous nopass non_overridable pass protected volatile abstract extends import ' +
9247 'non_intrinsic value deferred generic final enumerator class associate bind enum ' +
9248 '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 ' +
9249 '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 ' +
9250 'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +
9251 'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer ' +
9252 'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +
9253 'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +
9254 'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +
9255 'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure ' +
9256 'integer real character complex logical dimension allocatable|10 parameter ' +
9257 'external implicit|10 none double precision assign intent optional pointer ' +
9258 'target in out common equivalence data ' +
9259 // IRPF90 special keywords
9260 'begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch ' +
9261 'soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read',
9262 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 ' +
9263 'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +
9264 'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +
9265 'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +
9266 '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 ' +
9267 'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +
9268 'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +
9269 'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +
9270 'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +
9271 'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +
9272 'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +
9273 'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +
9274 'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +
9275 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of' +
9276 'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +
9277 'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +
9278 'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +
9279 'num_images parity popcnt poppar shifta shiftl shiftr this_image ' +
9280 // IRPF90 special built_ins
9281 'IRP_ALIGN irp_here'
9282 };
9283 return {
9284 case_insensitive: true,
9285 keywords: F_KEYWORDS,
9286 illegal: /\/\*/,
9287 contains: [
9288 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
9289 hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'string', relevance: 0}),
9290 {
9291 className: 'function',
9292 beginKeywords: 'subroutine function program',
9293 illegal: '[${=\\n]',
9294 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
9295 },
9296 hljs.COMMENT('!', '$', {relevance: 0}),
9297 hljs.COMMENT('begin_doc', 'end_doc', {relevance: 10}),
9298 {
9299 className: 'number',
9300 begin: '(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?',
9301 relevance: 0
9302 }
9303 ]
9304 };
9305}
9306},{name:"java",create:/*
9307Language: Java
9308Author: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>
9309Category: common, enterprise
9310*/
9311
9312function(hljs) {
9313 var GENERIC_IDENT_RE = hljs.UNDERSCORE_IDENT_RE + '(<(' + hljs.UNDERSCORE_IDENT_RE + '|\\s*,\\s*)+>)?';
9314 var KEYWORDS =
9315 'false synchronized int abstract float private char boolean static null if const ' +
9316 'for true while long strictfp finally protected import native final void ' +
9317 'enum else break transient catch instanceof byte super volatile case assert short ' +
9318 'package default double public try this switch continue throws protected public private';
9319
9320 // https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html
9321 var JAVA_NUMBER_RE = '\\b' +
9322 '(' +
9323 '0[bB]([01]+[01_]+[01]+|[01]+)' + // 0b...
9324 '|' +
9325 '0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)' + // 0x...
9326 '|' +
9327 '(' +
9328 '([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?' +
9329 '|' +
9330 '\\.([\\d]+[\\d_]+[\\d]+|[\\d]+)' +
9331 ')' +
9332 '([eE][-+]?\\d+)?' + // octal, decimal, float
9333 ')' +
9334 '[lLfF]?';
9335 var JAVA_NUMBER_MODE = {
9336 className: 'number',
9337 begin: JAVA_NUMBER_RE,
9338 relevance: 0
9339 };
9340
9341 return {
9342 aliases: ['jsp'],
9343 keywords: KEYWORDS,
9344 illegal: /<\/|#/,
9345 contains: [
9346 hljs.COMMENT(
9347 '/\\*\\*',
9348 '\\*/',
9349 {
9350 relevance : 0,
9351 contains : [
9352 {
9353 // eat up @'s in emails to prevent them to be recognized as doctags
9354 begin: /\w+@/, relevance: 0
9355 },
9356 {
9357 className : 'doctag',
9358 begin : '@[A-Za-z]+'
9359 }
9360 ]
9361 }
9362 ),
9363 hljs.C_LINE_COMMENT_MODE,
9364 hljs.C_BLOCK_COMMENT_MODE,
9365 hljs.APOS_STRING_MODE,
9366 hljs.QUOTE_STRING_MODE,
9367 {
9368 className: 'class',
9369 beginKeywords: 'class interface', end: /[{;=]/, excludeEnd: true,
9370 keywords: 'class interface',
9371 illegal: /[:"\[\]]/,
9372 contains: [
9373 {beginKeywords: 'extends implements'},
9374 hljs.UNDERSCORE_TITLE_MODE
9375 ]
9376 },
9377 {
9378 // Expression keywords prevent 'keyword Name(...)' from being
9379 // recognized as a function definition
9380 beginKeywords: 'new throw return else',
9381 relevance: 0
9382 },
9383 {
9384 className: 'function',
9385 begin: '(' + GENERIC_IDENT_RE + '\\s+)+' + hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/,
9386 excludeEnd: true,
9387 keywords: KEYWORDS,
9388 contains: [
9389 {
9390 begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
9391 relevance: 0,
9392 contains: [hljs.UNDERSCORE_TITLE_MODE]
9393 },
9394 {
9395 className: 'params',
9396 begin: /\(/, end: /\)/,
9397 keywords: KEYWORDS,
9398 relevance: 0,
9399 contains: [
9400 hljs.APOS_STRING_MODE,
9401 hljs.QUOTE_STRING_MODE,
9402 hljs.C_NUMBER_MODE,
9403 hljs.C_BLOCK_COMMENT_MODE
9404 ]
9405 },
9406 hljs.C_LINE_COMMENT_MODE,
9407 hljs.C_BLOCK_COMMENT_MODE
9408 ]
9409 },
9410 JAVA_NUMBER_MODE,
9411 {
9412 className: 'meta', begin: '@[A-Za-z]+'
9413 }
9414 ]
9415 };
9416}
9417},{name:"javascript",create:/*
9418Language: JavaScript
9419Category: common, scripting
9420*/
9421
9422function(hljs) {
9423 return {
9424 aliases: ['js'],
9425 keywords: {
9426 keyword:
9427 'in of if for while finally var new function do return void else break catch ' +
9428 'instanceof with throw case default try this switch continue typeof delete ' +
9429 'let yield const export super debugger as async await ' +
9430 // ECMAScript 6 modules import
9431 'import from as'
9432 ,
9433 literal:
9434 'true false null undefined NaN Infinity',
9435 built_in:
9436 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +
9437 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +
9438 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +
9439 'TypeError URIError Number Math Date String RegExp Array Float32Array ' +
9440 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +
9441 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +
9442 'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' +
9443 'Promise'
9444 },
9445 contains: [
9446 {
9447 className: 'meta',
9448 relevance: 10,
9449 begin: /^\s*['"]use (strict|asm)['"]/
9450 },
9451 hljs.APOS_STRING_MODE,
9452 hljs.QUOTE_STRING_MODE,
9453 { // template string
9454 className: 'string',
9455 begin: '`', end: '`',
9456 contains: [
9457 hljs.BACKSLASH_ESCAPE,
9458 {
9459 className: 'subst',
9460 begin: '\\$\\{', end: '\\}'
9461 }
9462 ]
9463 },
9464 hljs.C_LINE_COMMENT_MODE,
9465 hljs.C_BLOCK_COMMENT_MODE,
9466 {
9467 className: 'number',
9468 variants: [
9469 { begin: '\\b(0[bB][01]+)' },
9470 { begin: '\\b(0[oO][0-7]+)' },
9471 { begin: hljs.C_NUMBER_RE }
9472 ],
9473 relevance: 0
9474 },
9475 { // "value" container
9476 begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
9477 keywords: 'return throw case',
9478 contains: [
9479 hljs.C_LINE_COMMENT_MODE,
9480 hljs.C_BLOCK_COMMENT_MODE,
9481 hljs.REGEXP_MODE,
9482 { // E4X / JSX
9483 begin: /</, end: />\s*[);\]]/,
9484 relevance: 0,
9485 subLanguage: 'xml'
9486 }
9487 ],
9488 relevance: 0
9489 },
9490 {
9491 className: 'function',
9492 beginKeywords: 'function', end: /\{/, excludeEnd: true,
9493 contains: [
9494 hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}),
9495 {
9496 className: 'params',
9497 begin: /\(/, end: /\)/,
9498 excludeBegin: true,
9499 excludeEnd: true,
9500 contains: [
9501 hljs.C_LINE_COMMENT_MODE,
9502 hljs.C_BLOCK_COMMENT_MODE
9503 ]
9504 }
9505 ],
9506 illegal: /\[|%/
9507 },
9508 {
9509 begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
9510 },
9511 {
9512 begin: '\\.' + hljs.IDENT_RE, relevance: 0 // hack: prevents detection of keywords after dots
9513 },
9514 { // ES6 class
9515 className: 'class',
9516 beginKeywords: 'class', end: /[{;=]/, excludeEnd: true,
9517 illegal: /[:"\[\]]/,
9518 contains: [
9519 {beginKeywords: 'extends'},
9520 hljs.UNDERSCORE_TITLE_MODE
9521 ]
9522 },
9523 {
9524 beginKeywords: 'constructor', end: /\{/, excludeEnd: true
9525 }
9526 ],
9527 illegal: /#/
9528 };
9529}
9530},{name:"json",create:/*
9531Language: JSON
9532Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
9533Category: common, protocols
9534*/
9535
9536function(hljs) {
9537 var LITERALS = {literal: 'true false null'};
9538 var TYPES = [
9539 hljs.QUOTE_STRING_MODE,
9540 hljs.C_NUMBER_MODE
9541 ];
9542 var VALUE_CONTAINER = {
9543 end: ',', endsWithParent: true, excludeEnd: true,
9544 contains: TYPES,
9545 keywords: LITERALS
9546 };
9547 var OBJECT = {
9548 begin: '{', end: '}',
9549 contains: [
9550 {
9551 className: 'attr',
9552 begin: '\\s*"', end: '"\\s*:\\s*', excludeBegin: true, excludeEnd: true,
9553 contains: [hljs.BACKSLASH_ESCAPE],
9554 illegal: '\\n',
9555 starts: VALUE_CONTAINER
9556 }
9557 ],
9558 illegal: '\\S'
9559 };
9560 var ARRAY = {
9561 begin: '\\[', end: '\\]',
9562 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
9563 illegal: '\\S'
9564 };
9565 TYPES.splice(TYPES.length, 0, OBJECT, ARRAY);
9566 return {
9567 contains: TYPES,
9568 keywords: LITERALS,
9569 illegal: '\\S'
9570 };
9571}
9572},{name:"julia",create:/*
9573Language: Julia
9574Author: Kenta Sato <bicycle1885@gmail.com>
9575*/
9576
9577function(hljs) {
9578 // Since there are numerous special names in Julia, it is too much trouble
9579 // to maintain them by hand. Hence these names (i.e. keywords, literals and
9580 // built-ins) are automatically generated from Julia (v0.3.0 and v0.4.1)
9581 // itself through following scripts for each.
9582
9583 var KEYWORDS = {
9584 // # keyword generator
9585 // println("in")
9586 // for kw in Base.REPLCompletions.complete_keyword("")
9587 // println(kw)
9588 // end
9589 keyword:
9590 'in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export ' +
9591 'finally for function global if immutable import importall let local macro module quote return try type ' +
9592 'typealias using while',
9593
9594 // # literal generator
9595 // println("true")
9596 // println("false")
9597 // for name in Base.REPLCompletions.completions("", 0)[1]
9598 // try
9599 // s = symbol(name)
9600 // v = eval(s)
9601 // if !isa(v, Function) &&
9602 // !isa(v, DataType) &&
9603 // !isa(v, IntrinsicFunction) &&
9604 // !issubtype(typeof(v), Tuple) &&
9605 // !isa(v, Union) &&
9606 // !isa(v, Module) &&
9607 // !isa(v, TypeConstructor) &&
9608 // !isa(v, TypeVar) &&
9609 // !isa(v, Colon)
9610 // println(name)
9611 // end
9612 // end
9613 // end
9614 literal:
9615 // v0.3
9616 'true false ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 ' +
9617 'InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort ' +
9618 'RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown ' +
9619 'RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e|0 eu|0 ' +
9620 'eulergamma golden im nothing pi ฮณ ฯ€ ฯ† ' +
9621 // v0.4 (diff)
9622 'Inf64 NaN64 RoundNearestTiesAway RoundNearestTiesUp ',
9623
9624 // # built_in generator:
9625 // for name in Base.REPLCompletions.completions("", 0)[1]
9626 // try
9627 // v = eval(symbol(name))
9628 // if isa(v, DataType) || isa(v, TypeConstructor) || isa(v, TypeVar)
9629 // println(name)
9630 // end
9631 // end
9632 // end
9633 built_in:
9634 // v0.3
9635 'ANY ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe ' +
9636 'Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char ' +
9637 'CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 ' +
9638 'Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType ' +
9639 'DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError ' +
9640 'EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 ' +
9641 'Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 ' +
9642 'InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError ' +
9643 'LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister ' +
9644 'Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange ' +
9645 'OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 ' +
9646 'Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set ' +
9647 'SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString ' +
9648 'SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular ' +
9649 'Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket ' +
9650 'Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange ' +
9651 'Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip ' +
9652 // v0.4 (diff)
9653 'AbstractChannel AbstractFloat AbstractString AssertionError Base64DecodePipe Base64EncodePipe BufferStream ' +
9654 'CapturedException CartesianIndex CartesianRange Channel Cintmax_t CompositeException Cstring Cuintmax_t ' +
9655 'Cwstring Date DateTime Dims Enum GenSym GlobalRef HTML InitError InvalidStateException Irrational LinSpace ' +
9656 'LowerTriangular NullException Nullable OutOfMemoryError Pair PartialQuickSort Pipe RandomDevice ' +
9657 'ReadOnlyMemoryError ReentrantLock Ref RemoteException SegmentationFault SerializationState SimpleVector ' +
9658 'TCPSocket Text Tuple UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UnicodeError Union UpperTriangular ' +
9659 'Val Void WorkerConfig AbstractMatrix AbstractSparseMatrix AbstractSparseVector AbstractVecOrMat AbstractVector ' +
9660 'DenseMatrix DenseVecOrMat DenseVector Matrix SharedMatrix SharedVector StridedArray StridedMatrix ' +
9661 'StridedVecOrMat StridedVector VecOrMat Vector '
9662 };
9663
9664 // ref: http://julia.readthedocs.org/en/latest/manual/variables/#allowed-variable-names
9665 var VARIABLE_NAME_RE = '[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*';
9666
9667 // placeholder for recursive self-reference
9668 var DEFAULT = { lexemes: VARIABLE_NAME_RE, keywords: KEYWORDS, illegal: /<\// };
9669
9670 var TYPE_ANNOTATION = {
9671 className: 'type',
9672 begin: /::/
9673 };
9674
9675 var SUBTYPE = {
9676 className: 'type',
9677 begin: /<:/
9678 };
9679
9680 // ref: http://julia.readthedocs.org/en/latest/manual/integers-and-floating-point-numbers/
9681 var NUMBER = {
9682 className: 'number',
9683 // supported numeric literals:
9684 // * binary literal (e.g. 0x10)
9685 // * octal literal (e.g. 0o76543210)
9686 // * hexadecimal literal (e.g. 0xfedcba876543210)
9687 // * hexadecimal floating point literal (e.g. 0x1p0, 0x1.2p2)
9688 // * decimal literal (e.g. 9876543210, 100_000_000)
9689 // * floating pointe literal (e.g. 1.2, 1.2f, .2, 1., 1.2e10, 1.2e-10)
9690 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+)?/,
9691 relevance: 0
9692 };
9693
9694 var CHAR = {
9695 className: 'string',
9696 begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/
9697 };
9698
9699 var INTERPOLATION = {
9700 className: 'subst',
9701 begin: /\$\(/, end: /\)/,
9702 keywords: KEYWORDS
9703 };
9704
9705 var INTERPOLATED_VARIABLE = {
9706 className: 'variable',
9707 begin: '\\$' + VARIABLE_NAME_RE
9708 };
9709
9710 // TODO: neatly escape normal code in string literal
9711 var STRING = {
9712 className: 'string',
9713 contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
9714 variants: [
9715 { begin: /\w*"""/, end: /"""\w*/, relevance: 10 },
9716 { begin: /\w*"/, end: /"\w*/ }
9717 ]
9718 };
9719
9720 var COMMAND = {
9721 className: 'string',
9722 contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
9723 begin: '`', end: '`'
9724 };
9725
9726 var MACROCALL = {
9727 className: 'meta',
9728 begin: '@' + VARIABLE_NAME_RE
9729 };
9730
9731 var COMMENT = {
9732 className: 'comment',
9733 variants: [
9734 { begin: '#=', end: '=#', relevance: 10 },
9735 { begin: '#', end: '$' }
9736 ]
9737 };
9738
9739 DEFAULT.contains = [
9740 NUMBER,
9741 CHAR,
9742 TYPE_ANNOTATION,
9743 SUBTYPE,
9744 STRING,
9745 COMMAND,
9746 MACROCALL,
9747 COMMENT,
9748 hljs.HASH_COMMENT_MODE
9749 ];
9750 INTERPOLATION.contains = DEFAULT.contains;
9751
9752 return DEFAULT;
9753}
9754},{name:"kotlin",create:/*
9755 Language: Kotlin
9756 Author: Sergey Mashkov <cy6erGn0m@gmail.com>
9757 Category: misc
9758 */
9759
9760
9761function (hljs) {
9762 var KEYWORDS = 'val var get set class trait object open private protected public ' +
9763 'final enum if else do while for when break continue throw try catch finally ' +
9764 'import package is as in return fun override default companion reified inline volatile transient native ' +
9765 'Byte Short Char Int Long Boolean Float Double Void Unit Nothing';
9766
9767 return {
9768 keywords: {
9769 keyword: KEYWORDS,
9770 literal: 'true false null'
9771 },
9772 contains : [
9773 hljs.COMMENT(
9774 '/\\*\\*',
9775 '\\*/',
9776 {
9777 relevance : 0,
9778 contains : [{
9779 className : 'doctag',
9780 begin : '@[A-Za-z]+'
9781 }]
9782 }
9783 ),
9784 hljs.C_LINE_COMMENT_MODE,
9785 hljs.C_BLOCK_COMMENT_MODE,
9786 {
9787 className: 'type',
9788 begin: /</, end: />/,
9789 returnBegin: true,
9790 excludeEnd: false,
9791 relevance: 0
9792 },
9793 {
9794 className: 'function',
9795 beginKeywords: 'fun', end: '[(]|$',
9796 returnBegin: true,
9797 excludeEnd: true,
9798 keywords: KEYWORDS,
9799 illegal: /fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,
9800 relevance: 5,
9801 contains: [
9802 {
9803 begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
9804 relevance: 0,
9805 contains: [hljs.UNDERSCORE_TITLE_MODE]
9806 },
9807 {
9808 className: 'type',
9809 begin: /</, end: />/, keywords: 'reified',
9810 relevance: 0
9811 },
9812 {
9813 className: 'params',
9814 begin: /\(/, end: /\)/,
9815 keywords: KEYWORDS,
9816 relevance: 0,
9817 illegal: /\([^\(,\s:]+,/,
9818 contains: [
9819 {
9820 className: 'type',
9821 begin: /:\s*/, end: /\s*[=\)]/, excludeBegin: true, returnEnd: true,
9822 relevance: 0
9823 }
9824 ]
9825 },
9826 hljs.C_LINE_COMMENT_MODE,
9827 hljs.C_BLOCK_COMMENT_MODE
9828 ]
9829 },
9830 {
9831 className: 'class',
9832 beginKeywords: 'class trait', end: /[:\{(]|$/,
9833 excludeEnd: true,
9834 illegal: 'extends implements',
9835 contains: [
9836 hljs.UNDERSCORE_TITLE_MODE,
9837 {
9838 className: 'type',
9839 begin: /</, end: />/, excludeBegin: true, excludeEnd: true,
9840 relevance: 0
9841 },
9842 {
9843 className: 'type',
9844 begin: /[,:]\s*/, end: /[<\(,]|$/, excludeBegin: true, returnEnd: true
9845 }
9846 ]
9847 },
9848 {
9849 className: 'variable', beginKeywords: 'var val', end: /\s*[=:$]/, excludeEnd: true
9850 },
9851 hljs.QUOTE_STRING_MODE,
9852 {
9853 className: 'meta',
9854 begin: "^#!/usr/bin/env", end: '$',
9855 illegal: '\n'
9856 },
9857 hljs.C_NUMBER_MODE
9858 ]
9859 };
9860}
9861},{name:"lasso",create:/*
9862Language: Lasso
9863Author: Eric Knibbe <eric@lassosoft.com>
9864Description: 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.
9865*/
9866
9867function(hljs) {
9868 var LASSO_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_.]*';
9869 var LASSO_ANGLE_RE = '<\\?(lasso(script)?|=)';
9870 var LASSO_CLOSE_RE = '\\]|\\?>';
9871 var LASSO_KEYWORDS = {
9872 literal:
9873 'true false none minimal full all void ' +
9874 'bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft',
9875 built_in:
9876 'array date decimal duration integer map pair string tag xml null ' +
9877 'boolean bytes keyword list locale queue set stack staticarray ' +
9878 'local var variable global data self inherited currentcapture givenblock',
9879 keyword:
9880 'error_code error_msg error_pop error_push error_reset cache ' +
9881 'database_names database_schemanames database_tablenames define_tag ' +
9882 'define_type email_batch encode_set html_comment handle handle_error ' +
9883 'header if inline iterate ljax_target link link_currentaction ' +
9884 'link_currentgroup link_currentrecord link_detail link_firstgroup ' +
9885 'link_firstrecord link_lastgroup link_lastrecord link_nextgroup ' +
9886 'link_nextrecord link_prevgroup link_prevrecord log loop ' +
9887 'namespace_using output_none portal private protect records referer ' +
9888 'referrer repeating resultset rows search_args search_arguments ' +
9889 'select sort_args sort_arguments thread_atomic value_list while ' +
9890 'abort case else if_empty if_false if_null if_true loop_abort ' +
9891 'loop_continue loop_count params params_up return return_value ' +
9892 'run_children soap_definetag soap_lastrequest soap_lastresponse ' +
9893 'tag_name ascending average by define descending do equals ' +
9894 'frozen group handle_failure import in into join let match max ' +
9895 'min on order parent protected provide public require returnhome ' +
9896 'skip split_thread sum take thread to trait type where with ' +
9897 'yield yieldhome and or not'
9898 };
9899 var HTML_COMMENT = hljs.COMMENT(
9900 '<!--',
9901 '-->',
9902 {
9903 relevance: 0
9904 }
9905 );
9906 var LASSO_NOPROCESS = {
9907 className: 'meta',
9908 begin: '\\[noprocess\\]',
9909 starts: {
9910 end: '\\[/noprocess\\]',
9911 returnEnd: true,
9912 contains: [HTML_COMMENT]
9913 }
9914 };
9915 var LASSO_START = {
9916 className: 'meta',
9917 begin: '\\[/noprocess|' + LASSO_ANGLE_RE
9918 };
9919 var LASSO_DATAMEMBER = {
9920 className: 'symbol',
9921 begin: '\'' + LASSO_IDENT_RE + '\''
9922 };
9923 var LASSO_CODE = [
9924 hljs.COMMENT(
9925 '/\\*\\*!',
9926 '\\*/'
9927 ),
9928 hljs.C_LINE_COMMENT_MODE,
9929 hljs.C_BLOCK_COMMENT_MODE,
9930 hljs.inherit(hljs.C_NUMBER_MODE, {begin: hljs.C_NUMBER_RE + '|(infinity|nan)\\b'}),
9931 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
9932 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
9933 {
9934 className: 'string',
9935 begin: '`', end: '`'
9936 },
9937 { // variables
9938 variants: [
9939 {
9940 begin: '[#$]' + LASSO_IDENT_RE
9941 },
9942 {
9943 begin: '#', end: '\\d+',
9944 illegal: '\\W'
9945 }
9946 ]
9947 },
9948 {
9949 className: 'type',
9950 begin: '::\\s*', end: LASSO_IDENT_RE,
9951 illegal: '\\W'
9952 },
9953 {
9954 className: 'attr',
9955 variants: [
9956 {
9957 begin: '-(?!infinity)' + hljs.UNDERSCORE_IDENT_RE,
9958 relevance: 0
9959 },
9960 {
9961 begin: '(\\.\\.\\.)'
9962 }
9963 ]
9964 },
9965 {
9966 begin: /(->|\.\.?)\s*/,
9967 relevance: 0,
9968 contains: [LASSO_DATAMEMBER]
9969 },
9970 {
9971 className: 'class',
9972 beginKeywords: 'define',
9973 returnEnd: true, end: '\\(|=>',
9974 contains: [
9975 hljs.inherit(hljs.TITLE_MODE, {begin: hljs.UNDERSCORE_IDENT_RE + '(=(?!>))?'})
9976 ]
9977 }
9978 ];
9979 return {
9980 aliases: ['ls', 'lassoscript'],
9981 case_insensitive: true,
9982 lexemes: LASSO_IDENT_RE + '|&[lg]t;',
9983 keywords: LASSO_KEYWORDS,
9984 contains: [
9985 {
9986 className: 'meta',
9987 begin: LASSO_CLOSE_RE,
9988 relevance: 0,
9989 starts: { // markup
9990 end: '\\[|' + LASSO_ANGLE_RE,
9991 returnEnd: true,
9992 relevance: 0,
9993 contains: [HTML_COMMENT]
9994 }
9995 },
9996 LASSO_NOPROCESS,
9997 LASSO_START,
9998 {
9999 className: 'meta',
10000 begin: '\\[no_square_brackets',
10001 starts: {
10002 end: '\\[/no_square_brackets\\]', // not implemented in the language
10003 lexemes: LASSO_IDENT_RE + '|&[lg]t;',
10004 keywords: LASSO_KEYWORDS,
10005 contains: [
10006 {
10007 className: 'meta',
10008 begin: LASSO_CLOSE_RE,
10009 relevance: 0,
10010 starts: {
10011 end: '\\[noprocess\\]|' + LASSO_ANGLE_RE,
10012 returnEnd: true,
10013 contains: [HTML_COMMENT]
10014 }
10015 },
10016 LASSO_NOPROCESS,
10017 LASSO_START
10018 ].concat(LASSO_CODE)
10019 }
10020 },
10021 {
10022 className: 'meta',
10023 begin: '\\[',
10024 relevance: 0
10025 },
10026 {
10027 className: 'meta',
10028 begin: '^#!.+lasso9\\b',
10029 relevance: 10
10030 }
10031 ].concat(LASSO_CODE)
10032 };
10033}
10034},{name:"less",create:/*
10035Language: Less
10036Author: Max Mikhailov <seven.phases.max@gmail.com>
10037Category: css
10038*/
10039
10040function(hljs) {
10041 var IDENT_RE = '[\\w-]+'; // yes, Less identifiers may begin with a digit
10042 var INTERP_IDENT_RE = '(' + IDENT_RE + '|@{' + IDENT_RE + '})';
10043
10044 /* Generic Modes */
10045
10046 var RULES = [], VALUE = []; // forward def. for recursive modes
10047
10048 var STRING_MODE = function(c) { return {
10049 // Less strings are not multiline (also include '~' for more consistent coloring of "escaped" strings)
10050 className: 'string', begin: '~?' + c + '.*?' + c
10051 };};
10052
10053 var IDENT_MODE = function(name, begin, relevance) { return {
10054 className: name, begin: begin, relevance: relevance
10055 };};
10056
10057 var PARENS_MODE = {
10058 // used only to properly balance nested parens inside mixin call, def. arg list
10059 begin: '\\(', end: '\\)', contains: VALUE, relevance: 0
10060 };
10061
10062 // generic Less highlighter (used almost everywhere except selectors):
10063 VALUE.push(
10064 hljs.C_LINE_COMMENT_MODE,
10065 hljs.C_BLOCK_COMMENT_MODE,
10066 STRING_MODE("'"),
10067 STRING_MODE('"'),
10068 hljs.CSS_NUMBER_MODE, // fixme: it does not include dot for numbers like .5em :(
10069 {
10070 begin: '(url|data-uri)\\(',
10071 starts: {className: 'string', end: '[\\)\\n]', excludeEnd: true}
10072 },
10073 IDENT_MODE('number', '#[0-9A-Fa-f]+\\b'),
10074 PARENS_MODE,
10075 IDENT_MODE('variable', '@@?' + IDENT_RE, 10),
10076 IDENT_MODE('variable', '@{' + IDENT_RE + '}'),
10077 IDENT_MODE('built_in', '~?`[^`]*?`'), // inline javascript (or whatever host language) *multiline* string
10078 { // @media features (itโ€™s here to not duplicate things in AT_RULE_MODE with extra PARENS_MODE overriding):
10079 className: 'attribute', begin: IDENT_RE + '\\s*:', end: ':', returnBegin: true, excludeEnd: true
10080 },
10081 {
10082 className: 'meta',
10083 begin: '!important'
10084 }
10085 );
10086
10087 var VALUE_WITH_RULESETS = VALUE.concat({
10088 begin: '{', end: '}', contains: RULES
10089 });
10090
10091 var MIXIN_GUARD_MODE = {
10092 beginKeywords: 'when', endsWithParent: true,
10093 contains: [{beginKeywords: 'and not'}].concat(VALUE) // using this form to override VALUEโ€™s 'function' match
10094 };
10095
10096 /* Rule-Level Modes */
10097
10098 var RULE_MODE = {
10099 className: 'attribute',
10100 begin: INTERP_IDENT_RE, end: ':', excludeEnd: true,
10101 contains: [hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE],
10102 illegal: /\S/,
10103 starts: {end: '[;}]', returnEnd: true, contains: VALUE, illegal: '[<=$]'}
10104 };
10105
10106 var AT_RULE_MODE = {
10107 className: 'keyword',
10108 begin: '@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b',
10109 starts: {end: '[;{}]', returnEnd: true, contains: VALUE, relevance: 0}
10110 };
10111
10112 // variable definitions and calls
10113 var VAR_RULE_MODE = {
10114 className: 'variable',
10115 variants: [
10116 // using more strict pattern for higher relevance to increase chances of Less detection.
10117 // this is *the only* Less specific statement used in most of the sources, so...
10118 // (weโ€™ll still often loose to the css-parser unless there's '//' comment,
10119 // simply because 1 variable just can't beat 99 properties :)
10120 {begin: '@' + IDENT_RE + '\\s*:', relevance: 15},
10121 {begin: '@' + IDENT_RE}
10122 ],
10123 starts: {end: '[;}]', returnEnd: true, contains: VALUE_WITH_RULESETS}
10124 };
10125
10126 var SELECTOR_MODE = {
10127 // first parse unambiguous selectors (i.e. those not starting with tag)
10128 // then fall into the scary lookahead-discriminator variant.
10129 // this mode also handles mixin definitions and calls
10130 variants: [{
10131 begin: '[\\.#:&\\[]', end: '[;{}]' // mixin calls end with ';'
10132 }, {
10133 begin: INTERP_IDENT_RE + '[^;]*{',
10134 end: '{'
10135 }],
10136 returnBegin: true,
10137 returnEnd: true,
10138 illegal: '[<=\'$"]',
10139 contains: [
10140 hljs.C_LINE_COMMENT_MODE,
10141 hljs.C_BLOCK_COMMENT_MODE,
10142 MIXIN_GUARD_MODE,
10143 IDENT_MODE('keyword', 'all\\b'),
10144 IDENT_MODE('variable', '@{' + IDENT_RE + '}'), // otherwise itโ€™s identified as tag
10145 IDENT_MODE('selector-tag', INTERP_IDENT_RE + '%?', 0), // '%' for more consistent coloring of @keyframes "tags"
10146 IDENT_MODE('selector-id', '#' + INTERP_IDENT_RE),
10147 IDENT_MODE('selector-class', '\\.' + INTERP_IDENT_RE, 0),
10148 IDENT_MODE('selector-tag', '&', 0),
10149 {className: 'selector-attr', begin: '\\[', end: '\\]'},
10150 {begin: '\\(', end: '\\)', contains: VALUE_WITH_RULESETS}, // argument list of parametric mixins
10151 {begin: '!important'} // eat !important after mixin call or it will be colored as tag
10152 ]
10153 };
10154
10155 RULES.push(
10156 hljs.C_LINE_COMMENT_MODE,
10157 hljs.C_BLOCK_COMMENT_MODE,
10158 AT_RULE_MODE,
10159 VAR_RULE_MODE,
10160 SELECTOR_MODE,
10161 RULE_MODE
10162 );
10163
10164 return {
10165 case_insensitive: true,
10166 illegal: '[=>\'/<($"]',
10167 contains: RULES
10168 };
10169}
10170},{name:"lisp",create:/*
10171Language: Lisp
10172Description: Generic lisp syntax
10173Author: Vasily Polovnyov <vast@whiteants.net>
10174Category: lisp
10175*/
10176
10177function(hljs) {
10178 var LISP_IDENT_RE = '[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*';
10179 var MEC_RE = '\\|[^]*?\\|';
10180 var LISP_SIMPLE_NUMBER_RE = '(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?';
10181 var SHEBANG = {
10182 className: 'meta',
10183 begin: '^#!', end: '$'
10184 };
10185 var LITERAL = {
10186 className: 'literal',
10187 begin: '\\b(t{1}|nil)\\b'
10188 };
10189 var NUMBER = {
10190 className: 'number',
10191 variants: [
10192 {begin: LISP_SIMPLE_NUMBER_RE, relevance: 0},
10193 {begin: '#(b|B)[0-1]+(/[0-1]+)?'},
10194 {begin: '#(o|O)[0-7]+(/[0-7]+)?'},
10195 {begin: '#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?'},
10196 {begin: '#(c|C)\\(' + LISP_SIMPLE_NUMBER_RE + ' +' + LISP_SIMPLE_NUMBER_RE, end: '\\)'}
10197 ]
10198 };
10199 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});
10200 var COMMENT = hljs.COMMENT(
10201 ';', '$',
10202 {
10203 relevance: 0
10204 }
10205 );
10206 var VARIABLE = {
10207 begin: '\\*', end: '\\*'
10208 };
10209 var KEYWORD = {
10210 className: 'symbol',
10211 begin: '[:&]' + LISP_IDENT_RE
10212 };
10213 var IDENT = {
10214 begin: LISP_IDENT_RE,
10215 relevance: 0
10216 };
10217 var MEC = {
10218 begin: MEC_RE
10219 };
10220 var QUOTED_LIST = {
10221 begin: '\\(', end: '\\)',
10222 contains: ['self', LITERAL, STRING, NUMBER, IDENT]
10223 };
10224 var QUOTED = {
10225 contains: [NUMBER, STRING, VARIABLE, KEYWORD, QUOTED_LIST, IDENT],
10226 variants: [
10227 {
10228 begin: '[\'`]\\(', end: '\\)'
10229 },
10230 {
10231 begin: '\\(quote ', end: '\\)',
10232 keywords: {name: 'quote'}
10233 },
10234 {
10235 begin: '\'' + MEC_RE
10236 }
10237 ]
10238 };
10239 var QUOTED_ATOM = {
10240 variants: [
10241 {begin: '\'' + LISP_IDENT_RE},
10242 {begin: '#\'' + LISP_IDENT_RE + '(::' + LISP_IDENT_RE + ')*'}
10243 ]
10244 };
10245 var LIST = {
10246 begin: '\\(\\s*', end: '\\)'
10247 };
10248 var BODY = {
10249 endsWithParent: true,
10250 relevance: 0
10251 };
10252 LIST.contains = [
10253 {
10254 className: 'name',
10255 variants: [
10256 {begin: LISP_IDENT_RE},
10257 {begin: MEC_RE}
10258 ]
10259 },
10260 BODY
10261 ];
10262 BODY.contains = [QUOTED, QUOTED_ATOM, LIST, LITERAL, NUMBER, STRING, COMMENT, VARIABLE, KEYWORD, MEC, IDENT];
10263
10264 return {
10265 illegal: /\S/,
10266 contains: [
10267 NUMBER,
10268 SHEBANG,
10269 LITERAL,
10270 STRING,
10271 COMMENT,
10272 QUOTED,
10273 QUOTED_ATOM,
10274 LIST,
10275 IDENT
10276 ]
10277 };
10278}
10279},{name:"livecodeserver",create:/*
10280Language: LiveCode
10281Author: Ralf Bitter <rabit@revigniter.com>
10282Description: Language definition for LiveCode server accounting for revIgniter (a web application framework) characteristics.
10283Version: 1.0a
10284Date: 2013-06-03
10285Category: enterprise
10286*/
10287
10288function(hljs) {
10289 var VARIABLE = {
10290 begin: '\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+',
10291 relevance: 0
10292 };
10293 var COMMENT_MODES = [
10294 hljs.C_BLOCK_COMMENT_MODE,
10295 hljs.HASH_COMMENT_MODE,
10296 hljs.COMMENT('--', '$'),
10297 hljs.COMMENT('[^:]//', '$')
10298 ];
10299 var TITLE1 = hljs.inherit(hljs.TITLE_MODE, {
10300 variants: [
10301 {begin: '\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*'},
10302 {begin: '\\b_[a-z0-9\\-]+'}
10303 ]
10304 });
10305 var TITLE2 = hljs.inherit(hljs.TITLE_MODE, {begin: '\\b([A-Za-z0-9_\\-]+)\\b'});
10306 return {
10307 case_insensitive: false,
10308 keywords: {
10309 keyword:
10310 '$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER ' +
10311 'codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph ' +
10312 'after byte bytes english the until http forever descending using line real8 with seventh ' +
10313 'for stdout finally element word words fourth before black ninth sixth characters chars stderr ' +
10314 'uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid ' +
10315 'at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 ' +
10316 'int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat ' +
10317 'end repeat URL in try into switch to words https token binfile each tenth as ticks tick ' +
10318 'system real4 by dateItems without char character ascending eighth whole dateTime numeric short ' +
10319 'first ftp integer abbreviated abbr abbrev private case while if ' +
10320 'div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within ' +
10321 'contains ends with begins the keys of keys',
10322 literal:
10323 'SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE ' +
10324 'QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO ' +
10325 'six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five ' +
10326 'quote empty one true return cr linefeed right backslash null seven tab three two ' +
10327 'RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK ' +
10328 'FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK',
10329 built_in:
10330 'put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode ' +
10331 'base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum ' +
10332 'cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress ' +
10333 'constantNames cos date dateFormat decompress directories ' +
10334 'diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global ' +
10335 'globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset ' +
10336 'keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders ' +
10337 'libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 ' +
10338 'longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge millisec ' +
10339 'millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar ' +
10340 'numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets ' +
10341 'paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation ' +
10342 'populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile ' +
10343 'revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull ' +
10344 'revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered ' +
10345 'revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames ' +
10346 'revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull ' +
10347 'revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections ' +
10348 'revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype ' +
10349 'revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext ' +
10350 'revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames ' +
10351 'revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase ' +
10352 'revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute ' +
10353 'revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces ' +
10354 'revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode ' +
10355 'revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling ' +
10356 'revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error ' +
10357 'revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute ' +
10358 'revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort ' +
10359 'revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree ' +
10360 'revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance ' +
10361 'sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound ' +
10362 'stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper ' +
10363 'transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames ' +
10364 'variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet ' +
10365 'xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process ' +
10366 'combine constant convert create new alias folder directory decrypt delete variable word line folder ' +
10367 'directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile ' +
10368 'libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback ' +
10369 'libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime ' +
10370 'libURLSetStatusCallback load multiply socket prepare process post seek rel relative read from process rename ' +
10371 'replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase ' +
10372 'revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees ' +
10373 'revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord ' +
10374 'revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase ' +
10375 'revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD ' +
10376 'revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost ' +
10377 'revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData ' +
10378 'revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel ' +
10379 'revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback ' +
10380 'revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop ' +
10381 'subtract union unload wait write'
10382 },
10383 contains: [
10384 VARIABLE,
10385 {
10386 className: 'keyword',
10387 begin: '\\bend\\sif\\b'
10388 },
10389 {
10390 className: 'function',
10391 beginKeywords: 'function', end: '$',
10392 contains: [
10393 VARIABLE,
10394 TITLE2,
10395 hljs.APOS_STRING_MODE,
10396 hljs.QUOTE_STRING_MODE,
10397 hljs.BINARY_NUMBER_MODE,
10398 hljs.C_NUMBER_MODE,
10399 TITLE1
10400 ]
10401 },
10402 {
10403 className: 'function',
10404 begin: '\\bend\\s+', end: '$',
10405 keywords: 'end',
10406 contains: [
10407 TITLE2,
10408 TITLE1
10409 ]
10410 },
10411 {
10412 beginKeywords: 'command on', end: '$',
10413 contains: [
10414 VARIABLE,
10415 TITLE2,
10416 hljs.APOS_STRING_MODE,
10417 hljs.QUOTE_STRING_MODE,
10418 hljs.BINARY_NUMBER_MODE,
10419 hljs.C_NUMBER_MODE,
10420 TITLE1
10421 ]
10422 },
10423 {
10424 className: 'meta',
10425 variants: [
10426 {
10427 begin: '<\\?(rev|lc|livecode)',
10428 relevance: 10
10429 },
10430 { begin: '<\\?' },
10431 { begin: '\\?>' }
10432 ]
10433 },
10434 hljs.APOS_STRING_MODE,
10435 hljs.QUOTE_STRING_MODE,
10436 hljs.BINARY_NUMBER_MODE,
10437 hljs.C_NUMBER_MODE,
10438 TITLE1
10439 ].concat(COMMENT_MODES),
10440 illegal: ';$|^\\[|^='
10441 };
10442}
10443},{name:"livescript",create:/*
10444Language: LiveScript
10445Author: Taneli Vatanen <taneli.vatanen@gmail.com>
10446Contributors: Jen Evers-Corvina <jen@sevvie.net>
10447Origin: coffeescript.js
10448Description: LiveScript is a programming language that transcompiles to JavaScript. For info about language see http://livescript.net/
10449Category: scripting
10450*/
10451
10452function(hljs) {
10453 var KEYWORDS = {
10454 keyword:
10455 // JS keywords
10456 'in if for while finally new do return else break catch instanceof throw try this ' +
10457 'switch continue typeof delete debugger case default function var with ' +
10458 // LiveScript keywords
10459 'then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super ' +
10460 'case default function var void const let enum export import native ' +
10461 '__hasProp __extends __slice __bind __indexOf',
10462 literal:
10463 // JS literals
10464 'true false null undefined ' +
10465 // LiveScript literals
10466 'yes no on off it that void',
10467 built_in:
10468 'npm require console print module global window document'
10469 };
10470 var JS_IDENT_RE = '[A-Za-z$_](?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*';
10471 var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE});
10472 var SUBST = {
10473 className: 'subst',
10474 begin: /#\{/, end: /}/,
10475 keywords: KEYWORDS
10476 };
10477 var SUBST_SIMPLE = {
10478 className: 'subst',
10479 begin: /#[A-Za-z$_]/, end: /(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,
10480 keywords: KEYWORDS
10481 };
10482 var EXPRESSIONS = [
10483 hljs.BINARY_NUMBER_MODE,
10484 {
10485 className: 'number',
10486 begin: '(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)',
10487 relevance: 0,
10488 starts: {end: '(\\s*/)?', relevance: 0} // a number tries to eat the following slash to prevent treating it as a regexp
10489 },
10490 {
10491 className: 'string',
10492 variants: [
10493 {
10494 begin: /'''/, end: /'''/,
10495 contains: [hljs.BACKSLASH_ESCAPE]
10496 },
10497 {
10498 begin: /'/, end: /'/,
10499 contains: [hljs.BACKSLASH_ESCAPE]
10500 },
10501 {
10502 begin: /"""/, end: /"""/,
10503 contains: [hljs.BACKSLASH_ESCAPE, SUBST, SUBST_SIMPLE]
10504 },
10505 {
10506 begin: /"/, end: /"/,
10507 contains: [hljs.BACKSLASH_ESCAPE, SUBST, SUBST_SIMPLE]
10508 },
10509 {
10510 begin: /\\/, end: /(\s|$)/,
10511 excludeEnd: true
10512 }
10513 ]
10514 },
10515 {
10516 className: 'regexp',
10517 variants: [
10518 {
10519 begin: '//', end: '//[gim]*',
10520 contains: [SUBST, hljs.HASH_COMMENT_MODE]
10521 },
10522 {
10523 // regex can't start with space to parse x / 2 / 3 as two divisions
10524 // regex can't start with *, and it supports an "illegal" in the main mode
10525 begin: /\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/
10526 }
10527 ]
10528 },
10529 {
10530 begin: '@' + JS_IDENT_RE
10531 },
10532 {
10533 begin: '``', end: '``',
10534 excludeBegin: true, excludeEnd: true,
10535 subLanguage: 'javascript'
10536 }
10537 ];
10538 SUBST.contains = EXPRESSIONS;
10539
10540 var PARAMS = {
10541 className: 'params',
10542 begin: '\\(', returnBegin: true,
10543 /* We need another contained nameless mode to not have every nested
10544 pair of parens to be called "params" */
10545 contains: [
10546 {
10547 begin: /\(/, end: /\)/,
10548 keywords: KEYWORDS,
10549 contains: ['self'].concat(EXPRESSIONS)
10550 }
10551 ]
10552 };
10553
10554 return {
10555 aliases: ['ls'],
10556 keywords: KEYWORDS,
10557 illegal: /\/\*/,
10558 contains: EXPRESSIONS.concat([
10559 hljs.COMMENT('\\/\\*', '\\*\\/'),
10560 hljs.HASH_COMMENT_MODE,
10561 {
10562 className: 'function',
10563 contains: [TITLE, PARAMS],
10564 returnBegin: true,
10565 variants: [
10566 {
10567 begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B\\->\\*?', end: '\\->\\*?'
10568 },
10569 {
10570 begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?', end: '[-~]{1,2}>\\*?'
10571 },
10572 {
10573 begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?', end: '!?[-~]{1,2}>\\*?'
10574 }
10575 ]
10576 },
10577 {
10578 className: 'class',
10579 beginKeywords: 'class',
10580 end: '$',
10581 illegal: /[:="\[\]]/,
10582 contains: [
10583 {
10584 beginKeywords: 'extends',
10585 endsWithParent: true,
10586 illegal: /[:="\[\]]/,
10587 contains: [TITLE]
10588 },
10589 TITLE
10590 ]
10591 },
10592 {
10593 begin: JS_IDENT_RE + ':', end: ':',
10594 returnBegin: true, returnEnd: true,
10595 relevance: 0
10596 }
10597 ])
10598 };
10599}
10600},{name:"lua",create:/*
10601Language: Lua
10602Author: Andrew Fedorov <dmmdrs@mail.ru>
10603Category: scripting
10604*/
10605
10606function(hljs) {
10607 var OPENING_LONG_BRACKET = '\\[=*\\[';
10608 var CLOSING_LONG_BRACKET = '\\]=*\\]';
10609 var LONG_BRACKETS = {
10610 begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
10611 contains: ['self']
10612 };
10613 var COMMENTS = [
10614 hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'),
10615 hljs.COMMENT(
10616 '--' + OPENING_LONG_BRACKET,
10617 CLOSING_LONG_BRACKET,
10618 {
10619 contains: [LONG_BRACKETS],
10620 relevance: 10
10621 }
10622 )
10623 ];
10624 return {
10625 lexemes: hljs.UNDERSCORE_IDENT_RE,
10626 keywords: {
10627 keyword:
10628 'and break do else elseif end false for if in local nil not or repeat return then ' +
10629 'true until while',
10630 built_in:
10631 '_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load ' +
10632 'loadfile loadstring module next pairs pcall print rawequal rawget rawset require ' +
10633 'select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug ' +
10634 'io math os package string table'
10635 },
10636 contains: COMMENTS.concat([
10637 {
10638 className: 'function',
10639 beginKeywords: 'function', end: '\\)',
10640 contains: [
10641 hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}),
10642 {
10643 className: 'params',
10644 begin: '\\(', endsWithParent: true,
10645 contains: COMMENTS
10646 }
10647 ].concat(COMMENTS)
10648 },
10649 hljs.C_NUMBER_MODE,
10650 hljs.APOS_STRING_MODE,
10651 hljs.QUOTE_STRING_MODE,
10652 {
10653 className: 'string',
10654 begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
10655 contains: [LONG_BRACKETS],
10656 relevance: 5
10657 }
10658 ])
10659 };
10660}
10661},{name:"makefile",create:/*
10662Language: Makefile
10663Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
10664Category: common
10665*/
10666
10667function(hljs) {
10668 var VARIABLE = {
10669 className: 'variable',
10670 begin: /\$\(/, end: /\)/,
10671 contains: [hljs.BACKSLASH_ESCAPE]
10672 };
10673 return {
10674 aliases: ['mk', 'mak'],
10675 contains: [
10676 hljs.HASH_COMMENT_MODE,
10677 {
10678 begin: /^\w+\s*\W*=/, returnBegin: true,
10679 relevance: 0,
10680 starts: {
10681 end: /\s*\W*=/, excludeEnd: true,
10682 starts: {
10683 end: /$/,
10684 relevance: 0,
10685 contains: [
10686 VARIABLE
10687 ]
10688 }
10689 }
10690 },
10691 {
10692 className: 'section',
10693 begin: /^[\w]+:\s*$/
10694 },
10695 {
10696 className: 'meta',
10697 begin: /^\.PHONY:/, end: /$/,
10698 keywords: {'meta-keyword': '.PHONY'}, lexemes: /[\.\w]+/
10699 },
10700 {
10701 begin: /^\t+/, end: /$/,
10702 relevance: 0,
10703 contains: [
10704 hljs.QUOTE_STRING_MODE,
10705 VARIABLE
10706 ]
10707 }
10708 ]
10709 };
10710}
10711},{name:"markdown",create:/*
10712Language: Markdown
10713Requires: xml.js
10714Author: John Crepezzi <john.crepezzi@gmail.com>
10715Website: http://seejohncode.com/
10716Category: common, markup
10717*/
10718
10719function(hljs) {
10720 return {
10721 aliases: ['md', 'mkdown', 'mkd'],
10722 contains: [
10723 // highlight headers
10724 {
10725 className: 'section',
10726 variants: [
10727 { begin: '^#{1,6}', end: '$' },
10728 { begin: '^.+?\\n[=-]{2,}$' }
10729 ]
10730 },
10731 // inline html
10732 {
10733 begin: '<', end: '>',
10734 subLanguage: 'xml',
10735 relevance: 0
10736 },
10737 // lists (indicators only)
10738 {
10739 className: 'bullet',
10740 begin: '^([*+-]|(\\d+\\.))\\s+'
10741 },
10742 // strong segments
10743 {
10744 className: 'strong',
10745 begin: '[*_]{2}.+?[*_]{2}'
10746 },
10747 // emphasis segments
10748 {
10749 className: 'emphasis',
10750 variants: [
10751 { begin: '\\*.+?\\*' },
10752 { begin: '_.+?_'
10753 , relevance: 0
10754 }
10755 ]
10756 },
10757 // blockquotes
10758 {
10759 className: 'quote',
10760 begin: '^>\\s+', end: '$'
10761 },
10762 // code snippets
10763 {
10764 className: 'code',
10765 variants: [
10766 { begin: '`.+?`' },
10767 { begin: '^( {4}|\t)', end: '$'
10768 , relevance: 0
10769 }
10770 ]
10771 },
10772 // horizontal rules
10773 {
10774 begin: '^[-\\*]{3,}', end: '$'
10775 },
10776 // using links - title and link
10777 {
10778 begin: '\\[.+?\\][\\(\\[].*?[\\)\\]]',
10779 returnBegin: true,
10780 contains: [
10781 {
10782 className: 'string',
10783 begin: '\\[', end: '\\]',
10784 excludeBegin: true,
10785 returnEnd: true,
10786 relevance: 0
10787 },
10788 {
10789 className: 'link',
10790 begin: '\\]\\(', end: '\\)',
10791 excludeBegin: true, excludeEnd: true
10792 },
10793 {
10794 className: 'symbol',
10795 begin: '\\]\\[', end: '\\]',
10796 excludeBegin: true, excludeEnd: true
10797 }
10798 ],
10799 relevance: 10
10800 },
10801 {
10802 begin: '^\\[\.+\\]:',
10803 returnBegin: true,
10804 contains: [
10805 {
10806 className: 'symbol',
10807 begin: '\\[', end: '\\]:',
10808 excludeBegin: true, excludeEnd: true,
10809 starts: {
10810 className: 'link',
10811 end: '$'
10812 }
10813 }
10814 ]
10815 }
10816 ]
10817 };
10818}
10819},{name:"mathematica",create:/*
10820Language: Mathematica
10821Author: Daniel Kvasnicka <dkvasnicka@vendavo.com>
10822Category: scientific
10823*/
10824
10825function(hljs) {
10826 return {
10827 aliases: ['mma'],
10828 lexemes: '(\\$|\\b)' + hljs.IDENT_RE + '\\b',
10829 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 ' +
10830 '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 ' +
10831 '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 ' +
10832 '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 ' +
10833 '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 ' +
10834 '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 ' +
10835 '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 ' +
10836 '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 ' +
10837 '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 ' +
10838 '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 ' +
10839 '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 ' +
10840 '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 ' +
10841 '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 ' +
10842 '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 ' +
10843 '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 ' +
10844 '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 ' +
10845 '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 ' +
10846 '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 ' +
10847 '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 ' +
10848 '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 ' +
10849 'NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot ' +
10850 '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 ' +
10851 '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 ' +
10852 '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 ' +
10853 '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 ' +
10854 '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 ' +
10855 '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 ' +
10856 '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 ' +
10857 '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 ' +
10858 '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 ' +
10859 'Transparent ' +
10860 '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 ' +
10861 '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 ' +
10862 '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 ' +
10863 'XMLElement XMLObject Xnor Xor ' +
10864 'Yellow YuleDissimilarity ' +
10865 'ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform ' +
10866 '$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',
10867 contains: [
10868 {
10869 className: 'comment',
10870 begin: /\(\*/, end: /\*\)/
10871 },
10872 hljs.APOS_STRING_MODE,
10873 hljs.QUOTE_STRING_MODE,
10874 hljs.C_NUMBER_MODE,
10875 {
10876 begin: /\{/, end: /\}/,
10877 illegal: /:/
10878 }
10879 ]
10880 };
10881}
10882},{name:"matlab",create:/*
10883Language: Matlab
10884Author: Denis Bardadym <bardadymchik@gmail.com>
10885Contributors: Eugene Nizhibitsky <nizhibitsky@ya.ru>
10886Category: scientific
10887*/
10888
10889function(hljs) {
10890 var COMMON_CONTAINS = [
10891 hljs.C_NUMBER_MODE,
10892 {
10893 className: 'string',
10894 begin: '\'', end: '\'',
10895 contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
10896 }
10897 ];
10898 var TRANSPOSE = {
10899 relevance: 0,
10900 contains: [
10901 {
10902 begin: /'['\.]*/
10903 }
10904 ]
10905 };
10906
10907 return {
10908 keywords: {
10909 keyword:
10910 'break case catch classdef continue else elseif end enumerated events for function ' +
10911 'global if methods otherwise parfor persistent properties return spmd switch try while',
10912 built_in:
10913 'sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan ' +
10914 'atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot ' +
10915 'cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog ' +
10916 'realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal ' +
10917 'cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli ' +
10918 'besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma ' +
10919 'gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms ' +
10920 'nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones ' +
10921 'eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ' +
10922 'ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril ' +
10923 'triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute ' +
10924 'shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan ' +
10925 'isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal ' +
10926 'rosser toeplitz vander wilkinson'
10927 },
10928 illegal: '(//|"|#|/\\*|\\s+/\\w+)',
10929 contains: [
10930 {
10931 className: 'function',
10932 beginKeywords: 'function', end: '$',
10933 contains: [
10934 hljs.UNDERSCORE_TITLE_MODE,
10935 {
10936 className: 'params',
10937 variants: [
10938 {begin: '\\(', end: '\\)'},
10939 {begin: '\\[', end: '\\]'}
10940 ]
10941 }
10942 ]
10943 },
10944 {
10945 begin: /[a-zA-Z_][a-zA-Z_0-9]*'['\.]*/,
10946 returnBegin: true,
10947 relevance: 0,
10948 contains: [
10949 {begin: /[a-zA-Z_][a-zA-Z_0-9]*/, relevance: 0},
10950 TRANSPOSE.contains[0]
10951 ]
10952 },
10953 {
10954 begin: '\\[', end: '\\]',
10955 contains: COMMON_CONTAINS,
10956 relevance: 0,
10957 starts: TRANSPOSE
10958 },
10959 {
10960 begin: '\\{', end: /}/,
10961 contains: COMMON_CONTAINS,
10962 relevance: 0,
10963 starts: TRANSPOSE
10964 },
10965 {
10966 // transpose operators at the end of a function call
10967 begin: /\)/,
10968 relevance: 0,
10969 starts: TRANSPOSE
10970 },
10971 hljs.COMMENT('^\\s*\\%\\{\\s*$', '^\\s*\\%\\}\\s*$'),
10972 hljs.COMMENT('\\%', '$')
10973 ].concat(COMMON_CONTAINS)
10974 };
10975}
10976},{name:"mel",create:/*
10977Language: MEL
10978Description: Maya Embedded Language
10979Author: Shuen-Huei Guan <drake.guan@gmail.com>
10980Category: graphics
10981*/
10982
10983function(hljs) {
10984 return {
10985 keywords:
10986 'int float string vector matrix if else switch case default while do for in break ' +
10987 'continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic ' +
10988 'addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey ' +
10989 'affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve ' +
10990 'alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor ' +
10991 'animDisplay animView annotate appendStringArray applicationName applyAttrPreset ' +
10992 'applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx ' +
10993 'artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu ' +
10994 'artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand ' +
10995 'assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface ' +
10996 'attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu ' +
10997 'attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp ' +
10998 'attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery ' +
10999 'autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults ' +
11000 'bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership ' +
11001 'bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType ' +
11002 'boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu ' +
11003 'buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge ' +
11004 'cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch ' +
11005 'catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox ' +
11006 'character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp ' +
11007 'checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip ' +
11008 'clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore ' +
11009 'closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter ' +
11010 'cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color ' +
11011 'colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp ' +
11012 'colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem ' +
11013 'componentEditor compositingInterop computePolysetVolume condition cone confirmDialog ' +
11014 'connectAttr connectControl connectDynamic connectJoint connectionInfo constrain ' +
11015 'constrainValue constructionHistory container containsMultibyte contextInfo control ' +
11016 'convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation ' +
11017 'convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache ' +
11018 'cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel ' +
11019 'cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver ' +
11020 'cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor ' +
11021 'createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer ' +
11022 'createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse ' +
11023 'currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx ' +
11024 'curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface ' +
11025 'curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox ' +
11026 'defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete ' +
11027 'deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes ' +
11028 'delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo ' +
11029 'dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable ' +
11030 'disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected ' +
11031 'displayColor displayCull displayLevelOfDetail displayPref displayRGBColor ' +
11032 'displaySmoothness displayStats displayString displaySurface distanceDimContext ' +
11033 'distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct ' +
11034 'doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator ' +
11035 'duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression ' +
11036 'dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor ' +
11037 'dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers ' +
11038 'editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor ' +
11039 'editorTemplate effector emit emitter enableDevice encodeString endString endsWith env ' +
11040 'equivalent equivalentTol erf error eval evalDeferred evalEcho event ' +
11041 'exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp ' +
11042 'expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof ' +
11043 'fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo ' +
11044 'filetest filletCurve filter filterCurve filterExpand filterStudioImport ' +
11045 'findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster ' +
11046 'finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar ' +
11047 'floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo ' +
11048 'fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint ' +
11049 'frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss ' +
11050 'geometryConstraint getApplicationVersionAsFloat getAttr getClassification ' +
11051 'getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes ' +
11052 'getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender ' +
11053 'glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl ' +
11054 'gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid ' +
11055 'gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap ' +
11056 'HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor ' +
11057 'HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached ' +
11058 'HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel ' +
11059 'headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey ' +
11060 'hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender ' +
11061 'hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox ' +
11062 'iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ' +
11063 'ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ' +
11064 'ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform ' +
11065 'insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance ' +
11066 'instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp ' +
11067 'interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf ' +
11068 'isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect ' +
11069 'itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx ' +
11070 'jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner ' +
11071 'keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx ' +
11072 'keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx ' +
11073 'keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx ' +
11074 'keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor ' +
11075 'layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList ' +
11076 'lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep ' +
11077 'listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory ' +
11078 'listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation ' +
11079 'listNodeTypes listPanelCategories listRelatives listSets listTransforms ' +
11080 'listUnselected listerEditor loadFluid loadNewShelf loadPlugin ' +
11081 'loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log ' +
11082 'longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive ' +
11083 'makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext ' +
11084 'manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx ' +
11085 'manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout ' +
11086 'menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp ' +
11087 'mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move ' +
11088 'moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute ' +
11089 'nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast ' +
11090 'nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint ' +
11091 'normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect ' +
11092 'nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref ' +
11093 'nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType ' +
11094 'objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface ' +
11095 'offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit ' +
11096 'orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier ' +
11097 'paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration ' +
11098 'panelHistory paramDimContext paramDimension paramLocator parent parentConstraint ' +
11099 'particle particleExists particleInstancer particleRenderInfo partition pasteKey ' +
11100 'pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture ' +
11101 'pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo ' +
11102 'pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult ' +
11103 'pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend ' +
11104 'polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal ' +
11105 'polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge ' +
11106 'polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge ' +
11107 'polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet ' +
11108 'polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet ' +
11109 'polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection ' +
11110 'polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge ' +
11111 'polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet ' +
11112 'polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix ' +
11113 'polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut ' +
11114 'polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet ' +
11115 'polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge ' +
11116 'polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex ' +
11117 'polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection ' +
11118 'polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection ' +
11119 'polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint ' +
11120 'polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate ' +
11121 'polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge ' +
11122 'polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing ' +
11123 'polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet ' +
11124 'polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace ' +
11125 'popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer ' +
11126 'projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx ' +
11127 'propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd ' +
11128 'python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection ' +
11129 'radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl ' +
11130 'readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference ' +
11131 'referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE ' +
11132 'registerPluginResource rehash reloadImage removeJoint removeMultiInstance ' +
11133 'removePanelCategory rename renameAttr renameSelectionList renameUI render ' +
11134 'renderGlobalsNode renderInfo renderLayerButton renderLayerParent ' +
11135 'renderLayerPostProcess renderLayerUnparent renderManip renderPartition ' +
11136 'renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor ' +
11137 'renderWindowSelectContext renderer reorder reorderDeformers requires reroot ' +
11138 'resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget ' +
11139 'reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx ' +
11140 'rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout ' +
11141 'runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage ' +
11142 'saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale ' +
11143 'scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor ' +
11144 'sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable ' +
11145 'scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt ' +
11146 'searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey ' +
11147 'selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType ' +
11148 'selectedNodes selectionConnection separator setAttr setAttrEnumResource ' +
11149 'setAttrMapping setAttrNiceNameResource setConstraintRestPosition ' +
11150 'setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr ' +
11151 'setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe ' +
11152 'setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag ' +
11153 'setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject ' +
11154 'setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets ' +
11155 'shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare ' +
11156 'shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField ' +
11157 'shortNameOf showHelp showHidden showManipCtx showSelectionInTitle ' +
11158 'showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface ' +
11159 'size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep ' +
11160 'snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound ' +
11161 'soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort ' +
11162 'spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString ' +
11163 'startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp ' +
11164 'stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex ' +
11165 'stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex ' +
11166 'stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString ' +
11167 'stringToStringArray strip stripPrefixFromName stroke subdAutoProjection ' +
11168 'subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV ' +
11169 'subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror ' +
11170 'subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease ' +
11171 'subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring ' +
11172 'surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton ' +
11173 'symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext ' +
11174 'texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext ' +
11175 'texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text ' +
11176 'textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList ' +
11177 'textToShelf textureDisplacePlane textureHairColor texturePlacementContext ' +
11178 'textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath ' +
11179 'toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower ' +
11180 'toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper ' +
11181 'trace track trackCtx transferAttributes transformCompare transformLimits translator ' +
11182 'trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence ' +
11183 'twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit ' +
11184 'unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink ' +
11185 'uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane ' +
11186 'viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex ' +
11187 'waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire ' +
11188 'wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform',
11189 illegal: '</',
11190 contains: [
11191 hljs.C_NUMBER_MODE,
11192 hljs.APOS_STRING_MODE,
11193 hljs.QUOTE_STRING_MODE,
11194 {
11195 className: 'string',
11196 begin: '`', end: '`',
11197 contains: [hljs.BACKSLASH_ESCAPE]
11198 },
11199 { // eats variables
11200 begin: '[\\$\\%\\@](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)'
11201 },
11202 hljs.C_LINE_COMMENT_MODE,
11203 hljs.C_BLOCK_COMMENT_MODE
11204 ]
11205 };
11206}
11207},{name:"mercury",create:/*
11208Language: Mercury
11209Author: mucaho <mkucko@gmail.com>
11210Description: Mercury is a logic/functional programming language which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features.
11211*/
11212
11213function(hljs) {
11214 var KEYWORDS = {
11215 keyword:
11216 'module use_module import_module include_module end_module initialise ' +
11217 'mutable initialize finalize finalise interface implementation pred ' +
11218 'mode func type inst solver any_pred any_func is semidet det nondet ' +
11219 'multi erroneous failure cc_nondet cc_multi typeclass instance where ' +
11220 'pragma promise external trace atomic or_else require_complete_switch ' +
11221 'require_det require_semidet require_multi require_nondet ' +
11222 'require_cc_multi require_cc_nondet require_erroneous require_failure',
11223 meta:
11224 // pragma
11225 'inline no_inline type_spec source_file fact_table obsolete memo ' +
11226 'loop_check minimal_model terminates does_not_terminate ' +
11227 'check_termination promise_equivalent_clauses ' +
11228 // preprocessor
11229 'foreign_proc foreign_decl foreign_code foreign_type ' +
11230 'foreign_import_module foreign_export_enum foreign_export ' +
11231 'foreign_enum may_call_mercury will_not_call_mercury thread_safe ' +
11232 'not_thread_safe maybe_thread_safe promise_pure promise_semipure ' +
11233 'tabled_for_io local untrailed trailed attach_to_io_state ' +
11234 'can_pass_as_mercury_type stable will_not_throw_exception ' +
11235 'may_modify_trail will_not_modify_trail may_duplicate ' +
11236 'may_not_duplicate affects_liveness does_not_affect_liveness ' +
11237 'doesnt_affect_liveness no_sharing unknown_sharing sharing',
11238 built_in:
11239 'some all not if then else true fail false try catch catch_any ' +
11240 'semidet_true semidet_false semidet_fail impure_true impure semipure'
11241 };
11242
11243 var COMMENT = hljs.COMMENT('%', '$');
11244
11245 var NUMCODE = {
11246 className: 'number',
11247 begin: "0'.\\|0[box][0-9a-fA-F]*"
11248 };
11249
11250 var ATOM = hljs.inherit(hljs.APOS_STRING_MODE, {relevance: 0});
11251 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {relevance: 0});
11252 var STRING_FMT = {
11253 className: 'subst',
11254 begin: '\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]',
11255 relevance: 0
11256 };
11257 STRING.contains.push(STRING_FMT);
11258
11259 var IMPLICATION = {
11260 className: 'built_in',
11261 variants: [
11262 {begin: '<=>'},
11263 {begin: '<=', relevance: 0},
11264 {begin: '=>', relevance: 0},
11265 {begin: '/\\\\'},
11266 {begin: '\\\\/'}
11267 ]
11268 };
11269
11270 var HEAD_BODY_CONJUNCTION = {
11271 className: 'built_in',
11272 variants: [
11273 {begin: ':-\\|-->'},
11274 {begin: '=', relevance: 0}
11275 ]
11276 };
11277
11278 return {
11279 aliases: ['m', 'moo'],
11280 keywords: KEYWORDS,
11281 contains: [
11282 IMPLICATION,
11283 HEAD_BODY_CONJUNCTION,
11284 COMMENT,
11285 hljs.C_BLOCK_COMMENT_MODE,
11286 NUMCODE,
11287 hljs.NUMBER_MODE,
11288 ATOM,
11289 STRING,
11290 {begin: /:-/} // relevance booster
11291 ]
11292 };
11293}
11294},{name:"mipsasm",create:/*
11295Language: MIPS Assembly
11296Author: Nebuleon Fumika <nebuleon.fumika@gmail.com>
11297Description: MIPS Assembly (up to MIPS32R2)
11298Category: assembler
11299*/
11300
11301function(hljs) {
11302 //local labels: %?[FB]?[AT]?\d{1,2}\w+
11303 return {
11304 case_insensitive: true,
11305 aliases: ['mips'],
11306 lexemes: '\\.?' + hljs.IDENT_RE,
11307 keywords: {
11308 meta:
11309 //GNU preprocs
11310 '.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 ',
11311 built_in:
11312 '$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 ' + // integer registers
11313 '$16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 ' + // integer registers
11314 'zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 ' + // integer register aliases
11315 't0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 ' + // integer register aliases
11316 'k0 k1 gp sp fp ra ' + // integer register aliases
11317 '$f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 ' + // floating-point registers
11318 '$f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 ' + // floating-point registers
11319 'Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi ' + // Coprocessor 0 registers
11320 'HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId ' + // Coprocessor 0 registers
11321 'EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr ' + // Coprocessor 0 registers
11322 'ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt ' // Coprocessor 0 registers
11323 },
11324 contains: [
11325 {
11326 className: 'keyword',
11327 begin: '\\b('+ //mnemonics
11328 // 32-bit integer instructions
11329 'addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|' +
11330 'bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\.hb)?|jr(\.hb)?|lbu?|lhu?|' +
11331 'll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|msubu?|mthi|mtlo|mul|' +
11332 'multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|' +
11333 'srlv?|subu?|sw[lr]?|xori?|wsbh|' +
11334 // floating-point instructions
11335 'abs\.[sd]|add\.[sd]|alnv.ps|bc1[ft]l?|' +
11336 'c\.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\.[sd]|' +
11337 '(ceil|floor|round|trunc)\.[lw]\.[sd]|cfc1|cvt\.d\.[lsw]|' +
11338 'cvt\.l\.[dsw]|cvt\.ps\.s|cvt\.s\.[dlw]|cvt\.s\.p[lu]|cvt\.w\.[dls]|' +
11339 'div\.[ds]|ldx?c1|luxc1|lwx?c1|madd\.[sd]|mfc1|mov[fntz]?\.[ds]|' +
11340 'msub\.[sd]|mth?c1|mul\.[ds]|neg\.[ds]|nmadd\.[ds]|nmsub\.[ds]|' +
11341 'p[lu][lu]\.ps|recip\.fmt|r?sqrt\.[ds]|sdx?c1|sub\.[ds]|suxc1|' +
11342 'swx?c1|' +
11343 // system control instructions
11344 'break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|' +
11345 'rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|' +
11346 'tlti?u?|tnei?|wait|wrpgpr'+
11347 ')',
11348 end: '\\s'
11349 },
11350 hljs.COMMENT('[;#]', '$'),
11351 hljs.C_BLOCK_COMMENT_MODE,
11352 hljs.QUOTE_STRING_MODE,
11353 {
11354 className: 'string',
11355 begin: '\'',
11356 end: '[^\\\\]\'',
11357 relevance: 0
11358 },
11359 {
11360 className: 'title',
11361 begin: '\\|', end: '\\|',
11362 illegal: '\\n',
11363 relevance: 0
11364 },
11365 {
11366 className: 'number',
11367 variants: [
11368 {begin: '0x[0-9a-f]+'}, //hex
11369 {begin: '\\b-?\\d+'} //bare number
11370 ],
11371 relevance: 0
11372 },
11373 {
11374 className: 'symbol',
11375 variants: [
11376 {begin: '^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:'}, //GNU MIPS syntax
11377 {begin: '^\\s*[0-9]+:'}, // numbered local labels
11378 {begin: '[0-9]+[bf]' } // number local label reference (backwards, forwards)
11379 ],
11380 relevance: 0
11381 }
11382 ],
11383 illegal: '\/'
11384 };
11385}
11386},{name:"mizar",create:/*
11387Language: Mizar
11388Author: Kelley van Evert <kelleyvanevert@gmail.com>
11389Category: scientific
11390*/
11391
11392function(hljs) {
11393 return {
11394 keywords:
11395 'environ vocabularies notations constructors definitions ' +
11396 'registrations theorems schemes requirements begin end definition ' +
11397 'registration cluster existence pred func defpred deffunc theorem ' +
11398 'proof let take assume then thus hence ex for st holds consider ' +
11399 'reconsider such that and in provided of as from be being by means ' +
11400 'equals implies iff redefine define now not or attr is mode ' +
11401 'suppose per cases set thesis contradiction scheme reserve struct ' +
11402 'correctness compatibility coherence symmetry assymetry ' +
11403 'reflexivity irreflexivity connectedness uniqueness commutativity ' +
11404 'idempotence involutiveness projectivity',
11405 contains: [
11406 hljs.COMMENT('::', '$')
11407 ]
11408 };
11409}
11410},{name:"mojolicious",create:/*
11411Language: Mojolicious
11412Requires: xml.js, perl.js
11413Author: Dotan Dimet <dotan@corky.net>
11414Description: Mojolicious .ep (Embedded Perl) templates
11415Category: template
11416*/
11417function(hljs) {
11418 return {
11419 subLanguage: 'xml',
11420 contains: [
11421 {
11422 className: 'meta',
11423 begin: '^__(END|DATA)__$'
11424 },
11425 // mojolicious line
11426 {
11427 begin: "^\\s*%{1,2}={0,2}", end: '$',
11428 subLanguage: 'perl'
11429 },
11430 // mojolicious block
11431 {
11432 begin: "<%{1,2}={0,2}",
11433 end: "={0,1}%>",
11434 subLanguage: 'perl',
11435 excludeBegin: true,
11436 excludeEnd: true
11437 }
11438 ]
11439 };
11440}
11441},{name:"monkey",create:/*
11442Language: Monkey
11443Author: Arthur Bikmullin <devolonter@gmail.com>
11444*/
11445
11446function(hljs) {
11447 var NUMBER = {
11448 className: 'number', relevance: 0,
11449 variants: [
11450 {
11451 begin: '[$][a-fA-F0-9]+'
11452 },
11453 hljs.NUMBER_MODE
11454 ]
11455 };
11456
11457 return {
11458 case_insensitive: true,
11459 keywords: {
11460 keyword: 'public private property continue exit extern new try catch ' +
11461 'eachin not abstract final select case default const local global field ' +
11462 'end if then else elseif endif while wend repeat until forever for ' +
11463 'to step next return module inline throw import',
11464
11465 built_in: 'DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil ' +
11466 'Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI',
11467
11468 literal: 'true false null and or shl shr mod'
11469 },
11470 illegal: /\/\*/,
11471 contains: [
11472 hljs.COMMENT('#rem', '#end'),
11473 hljs.COMMENT(
11474 "'",
11475 '$',
11476 {
11477 relevance: 0
11478 }
11479 ),
11480 {
11481 className: 'function',
11482 beginKeywords: 'function method', end: '[(=:]|$',
11483 illegal: /\n/,
11484 contains: [
11485 hljs.UNDERSCORE_TITLE_MODE
11486 ]
11487 },
11488 {
11489 className: 'class',
11490 beginKeywords: 'class interface', end: '$',
11491 contains: [
11492 {
11493 beginKeywords: 'extends implements'
11494 },
11495 hljs.UNDERSCORE_TITLE_MODE
11496 ]
11497 },
11498 {
11499 className: 'built_in',
11500 begin: '\\b(self|super)\\b'
11501 },
11502 {
11503 className: 'meta',
11504 begin: '\\s*#', end: '$',
11505 keywords: {'meta-keyword': 'if else elseif endif end then'}
11506 },
11507 {
11508 className: 'meta',
11509 begin: '^\\s*strict\\b'
11510 },
11511 {
11512 beginKeywords: 'alias', end: '=',
11513 contains: [hljs.UNDERSCORE_TITLE_MODE]
11514 },
11515 hljs.QUOTE_STRING_MODE,
11516 NUMBER
11517 ]
11518 }
11519}
11520},{name:"nginx",create:/*
11521Language: Nginx
11522Author: Peter Leonov <gojpeg@yandex.ru>
11523Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
11524Category: common, config
11525*/
11526
11527function(hljs) {
11528 var VAR = {
11529 className: 'variable',
11530 variants: [
11531 {begin: /\$\d+/},
11532 {begin: /\$\{/, end: /}/},
11533 {begin: '[\\$\\@]' + hljs.UNDERSCORE_IDENT_RE}
11534 ]
11535 };
11536 var DEFAULT = {
11537 endsWithParent: true,
11538 lexemes: '[a-z/_]+',
11539 keywords: {
11540 literal:
11541 'on off yes no true false none blocked debug info notice warn error crit ' +
11542 'select break last permanent redirect kqueue rtsig epoll poll /dev/poll'
11543 },
11544 relevance: 0,
11545 illegal: '=>',
11546 contains: [
11547 hljs.HASH_COMMENT_MODE,
11548 {
11549 className: 'string',
11550 contains: [hljs.BACKSLASH_ESCAPE, VAR],
11551 variants: [
11552 {begin: /"/, end: /"/},
11553 {begin: /'/, end: /'/}
11554 ]
11555 },
11556 // this swallows entire URLs to avoid detecting numbers within
11557 {
11558 begin: '([a-z]+):/', end: '\\s', endsWithParent: true, excludeEnd: true,
11559 contains: [VAR]
11560 },
11561 {
11562 className: 'regexp',
11563 contains: [hljs.BACKSLASH_ESCAPE, VAR],
11564 variants: [
11565 {begin: "\\s\\^", end: "\\s|{|;", returnEnd: true},
11566 // regexp locations (~, ~*)
11567 {begin: "~\\*?\\s+", end: "\\s|{|;", returnEnd: true},
11568 // *.example.com
11569 {begin: "\\*(\\.[a-z\\-]+)+"},
11570 // sub.example.*
11571 {begin: "([a-z\\-]+\\.)+\\*"}
11572 ]
11573 },
11574 // IP
11575 {
11576 className: 'number',
11577 begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b'
11578 },
11579 // units
11580 {
11581 className: 'number',
11582 begin: '\\b\\d+[kKmMgGdshdwy]*\\b',
11583 relevance: 0
11584 },
11585 VAR
11586 ]
11587 };
11588
11589 return {
11590 aliases: ['nginxconf'],
11591 contains: [
11592 hljs.HASH_COMMENT_MODE,
11593 {
11594 begin: hljs.UNDERSCORE_IDENT_RE + '\\s+{', returnBegin: true,
11595 end: '{',
11596 contains: [
11597 {
11598 className: 'section',
11599 begin: hljs.UNDERSCORE_IDENT_RE
11600 }
11601 ],
11602 relevance: 0
11603 },
11604 {
11605 begin: hljs.UNDERSCORE_IDENT_RE + '\\s', end: ';|{', returnBegin: true,
11606 contains: [
11607 {
11608 className: 'attribute',
11609 begin: hljs.UNDERSCORE_IDENT_RE,
11610 starts: DEFAULT
11611 }
11612 ],
11613 relevance: 0
11614 }
11615 ],
11616 illegal: '[^\\s\\}]'
11617 };
11618}
11619},{name:"nimrod",create:/*
11620Language: Nimrod
11621*/
11622
11623function(hljs) {
11624 return {
11625 aliases: ['nim'],
11626 keywords: {
11627 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',
11628 literal: 'shared guarded stdin stdout stderr result|10 true false'
11629 },
11630 contains: [ {
11631 className: 'meta', // Actually pragma
11632 begin: /{\./,
11633 end: /\.}/,
11634 relevance: 10
11635 }, {
11636 className: 'string',
11637 begin: /[a-zA-Z]\w*"/,
11638 end: /"/,
11639 contains: [{begin: /""/}]
11640 }, {
11641 className: 'string',
11642 begin: /([a-zA-Z]\w*)?"""/,
11643 end: /"""/
11644 },
11645 hljs.QUOTE_STRING_MODE,
11646 {
11647 className: 'type',
11648 begin: /\b[A-Z]\w+\b/,
11649 relevance: 0
11650 }, {
11651 className: 'built_in',
11652 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/
11653 }, {
11654 className: 'number',
11655 relevance: 0,
11656 variants: [
11657 {begin: /\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},
11658 {begin: /\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},
11659 {begin: /\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},
11660 {begin: /\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}
11661 ]
11662 },
11663 hljs.HASH_COMMENT_MODE
11664 ]
11665 }
11666}
11667},{name:"nix",create:/*
11668Language: Nix
11669Author: Domen Koลพar <domen@dev.si>
11670Description: Nix functional language. See http://nixos.org/nix
11671*/
11672
11673
11674function(hljs) {
11675 var NIX_KEYWORDS = {
11676 keyword:
11677 'rec with let in inherit assert if else then',
11678 literal:
11679 'true false or and null',
11680 built_in:
11681 'import abort baseNameOf dirOf isNull builtins map removeAttrs throw ' +
11682 'toString derivation'
11683 };
11684 var ANTIQUOTE = {
11685 className: 'subst',
11686 begin: /\$\{/,
11687 end: /}/,
11688 keywords: NIX_KEYWORDS
11689 };
11690 var ATTRS = {
11691 begin: /[a-zA-Z0-9-_]+(\s*=)/, returnBegin: true,
11692 relevance: 0,
11693 contains: [
11694 {
11695 className: 'attr',
11696 begin: /\S+/
11697 }
11698 ]
11699 };
11700 var STRING = {
11701 className: 'string',
11702 contains: [ANTIQUOTE],
11703 variants: [
11704 {begin: "''", end: "''"},
11705 {begin: '"', end: '"'}
11706 ]
11707 };
11708 var EXPRESSIONS = [
11709 hljs.NUMBER_MODE,
11710 hljs.HASH_COMMENT_MODE,
11711 hljs.C_BLOCK_COMMENT_MODE,
11712 STRING,
11713 ATTRS
11714 ];
11715 ANTIQUOTE.contains = EXPRESSIONS;
11716 return {
11717 aliases: ["nixos"],
11718 keywords: NIX_KEYWORDS,
11719 contains: EXPRESSIONS
11720 };
11721}
11722},{name:"nsis",create:/*
11723Language: NSIS
11724Description: Nullsoft Scriptable Install System
11725Author: Jan T. Sott <jan.sott@gmail.com>
11726Website: http://github.com/idleberg
11727*/
11728
11729function(hljs) {
11730 var CONSTANTS = {
11731 className: 'variable',
11732 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)'
11733 };
11734
11735 var DEFINES = {
11736 // ${defines}
11737 className: 'variable',
11738 begin: '\\$+{[a-zA-Z0-9_]+}'
11739 };
11740
11741 var VARIABLES = {
11742 // $variables
11743 className: 'variable',
11744 begin: '\\$+[a-zA-Z0-9_]+',
11745 illegal: '\\(\\){}'
11746 };
11747
11748 var LANGUAGES = {
11749 // $(language_strings)
11750 className: 'variable',
11751 begin: '\\$+\\([a-zA-Z0-9_]+\\)'
11752 };
11753
11754 var PARAMETERS = {
11755 // command parameters
11756 className: 'built_in',
11757 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)'
11758 };
11759
11760 var COMPILER ={
11761 // !compiler_flags
11762 className: 'keyword',
11763 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)'
11764 };
11765
11766 return {
11767 case_insensitive: false,
11768 keywords: {
11769 keyword:
11770 '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',
11771 literal:
11772 '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 '
11773 },
11774 contains: [
11775 hljs.HASH_COMMENT_MODE,
11776 hljs.C_BLOCK_COMMENT_MODE,
11777 {
11778 className: 'string',
11779 begin: '"', end: '"',
11780 illegal: '\\n',
11781 contains: [
11782 { // $\n, $\r, $\t, $$
11783 begin: '\\$(\\\\(n|r|t)|\\$)'
11784 },
11785 CONSTANTS,
11786 DEFINES,
11787 VARIABLES,
11788 LANGUAGES
11789 ]
11790 },
11791 hljs.COMMENT(
11792 ';',
11793 '$',
11794 {
11795 relevance: 0
11796 }
11797 ),
11798 {
11799 className: 'function',
11800 beginKeywords: 'Function PageEx Section SectionGroup SubSection', end: '$'
11801 },
11802 COMPILER,
11803 DEFINES,
11804 VARIABLES,
11805 LANGUAGES,
11806 PARAMETERS,
11807 hljs.NUMBER_MODE,
11808 { // plug::ins
11809 begin: hljs.IDENT_RE + '::' + hljs.IDENT_RE
11810 }
11811 ]
11812 };
11813}
11814},{name:"objectivec",create:/*
11815Language: Objective C
11816Author: Valerii Hiora <valerii.hiora@gmail.com>
11817Contributors: Angel G. Olloqui <angelgarcia.mail@gmail.com>, Matt Diephouse <matt@diephouse.com>, Andrew Farmer <ahfarmer@gmail.com>
11818Category: common
11819*/
11820
11821function(hljs) {
11822 var API_CLASS = {
11823 className: 'built_in',
11824 begin: '(AV|CA|CF|CG|CI|MK|MP|NS|UI|XC)\\w+',
11825 };
11826 var OBJC_KEYWORDS = {
11827 keyword:
11828 'int float while char export sizeof typedef const struct for union ' +
11829 'unsigned long volatile static bool mutable if do return goto void ' +
11830 'enum else break extern asm case short default double register explicit ' +
11831 'signed typename this switch continue wchar_t inline readonly assign ' +
11832 'readwrite self @synchronized id typeof ' +
11833 'nonatomic super unichar IBOutlet IBAction strong weak copy ' +
11834 'in out inout bycopy byref oneway __strong __weak __block __autoreleasing ' +
11835 '@private @protected @public @try @property @end @throw @catch @finally ' +
11836 '@autoreleasepool @synthesize @dynamic @selector @optional @required',
11837 literal:
11838 'false true FALSE TRUE nil YES NO NULL',
11839 built_in:
11840 'BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once'
11841 };
11842 var LEXEMES = /[a-zA-Z@][a-zA-Z0-9_]*/;
11843 var CLASS_KEYWORDS = '@interface @class @protocol @implementation';
11844 return {
11845 aliases: ['mm', 'objc', 'obj-c'],
11846 keywords: OBJC_KEYWORDS,
11847 lexemes: LEXEMES,
11848 illegal: '</',
11849 contains: [
11850 API_CLASS,
11851 hljs.C_LINE_COMMENT_MODE,
11852 hljs.C_BLOCK_COMMENT_MODE,
11853 hljs.C_NUMBER_MODE,
11854 hljs.QUOTE_STRING_MODE,
11855 {
11856 className: 'string',
11857 variants: [
11858 {
11859 begin: '@"', end: '"',
11860 illegal: '\\n',
11861 contains: [hljs.BACKSLASH_ESCAPE]
11862 },
11863 {
11864 begin: '\'', end: '[^\\\\]\'',
11865 illegal: '[^\\\\][^\']'
11866 }
11867 ]
11868 },
11869 {
11870 className: 'meta',
11871 begin: '#',
11872 end: '$',
11873 contains: [
11874 {
11875 className: 'meta-string',
11876 variants: [
11877 { begin: '\"', end: '\"' },
11878 { begin: '<', end: '>' }
11879 ]
11880 }
11881 ]
11882 },
11883 {
11884 className: 'class',
11885 begin: '(' + CLASS_KEYWORDS.split(' ').join('|') + ')\\b', end: '({|$)', excludeEnd: true,
11886 keywords: CLASS_KEYWORDS, lexemes: LEXEMES,
11887 contains: [
11888 hljs.UNDERSCORE_TITLE_MODE
11889 ]
11890 },
11891 {
11892 begin: '\\.'+hljs.UNDERSCORE_IDENT_RE,
11893 relevance: 0
11894 }
11895 ]
11896 };
11897}
11898},{name:"ocaml",create:/*
11899Language: OCaml
11900Author: Mehdi Dogguy <mehdi@dogguy.org>
11901Contributors: Nicolas Braud-Santoni <nicolas.braud-santoni@ens-cachan.fr>, Mickael Delahaye <mickael.delahaye@gmail.com>
11902Description: OCaml language definition.
11903Category: functional
11904*/
11905function(hljs) {
11906 /* missing support for heredoc-like string (OCaml 4.0.2+) */
11907 return {
11908 aliases: ['ml'],
11909 keywords: {
11910 keyword:
11911 'and as assert asr begin class constraint do done downto else end ' +
11912 'exception external for fun function functor if in include ' +
11913 'inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method ' +
11914 'mod module mutable new object of open! open or private rec sig struct ' +
11915 'then to try type val! val virtual when while with ' +
11916 /* camlp4 */
11917 'parser value',
11918 built_in:
11919 /* built-in types */
11920 'array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit ' +
11921 /* (some) types in Pervasives */
11922 'in_channel out_channel ref',
11923 literal:
11924 'true false'
11925 },
11926 illegal: /\/\/|>>/,
11927 lexemes: '[a-z_]\\w*!?',
11928 contains: [
11929 {
11930 className: 'literal',
11931 begin: '\\[(\\|\\|)?\\]|\\(\\)',
11932 relevance: 0
11933 },
11934 hljs.COMMENT(
11935 '\\(\\*',
11936 '\\*\\)',
11937 {
11938 contains: ['self']
11939 }
11940 ),
11941 { /* type variable */
11942 className: 'symbol',
11943 begin: '\'[A-Za-z_](?!\')[\\w\']*'
11944 /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */
11945 },
11946 { /* polymorphic variant */
11947 className: 'type',
11948 begin: '`[A-Z][\\w\']*'
11949 },
11950 { /* module or constructor */
11951 className: 'type',
11952 begin: '\\b[A-Z][\\w\']*',
11953 relevance: 0
11954 },
11955 { /* don't color identifiers, but safely catch all identifiers with '*/
11956 begin: '[a-z_]\\w*\'[\\w\']*', relevance: 0
11957 },
11958 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
11959 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
11960 {
11961 className: 'number',
11962 begin:
11963 '\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +
11964 '0[oO][0-7_]+[Lln]?|' +
11965 '0[bB][01_]+[Lln]?|' +
11966 '[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',
11967 relevance: 0
11968 },
11969 {
11970 begin: /[-=]>/ // relevance booster
11971 }
11972 ]
11973 }
11974}
11975},{name:"openscad",create:/*
11976Language: OpenSCAD
11977Author: Dan Panzarella <alsoelp@gmail.com>
11978Description: OpenSCAD is a language for the 3D CAD modeling software of the same name.
11979Category: scientific
11980*/
11981
11982function(hljs) {
11983 var SPECIAL_VARS = {
11984 className: 'keyword',
11985 begin: '\\$(f[asn]|t|vp[rtd]|children)'
11986 },
11987 LITERALS = {
11988 className: 'literal',
11989 begin: 'false|true|PI|undef'
11990 },
11991 NUMBERS = {
11992 className: 'number',
11993 begin: '\\b\\d+(\\.\\d+)?(e-?\\d+)?', //adds 1e5, 1e-10
11994 relevance: 0
11995 },
11996 STRING = hljs.inherit(hljs.QUOTE_STRING_MODE,{illegal: null}),
11997 PREPRO = {
11998 className: 'meta',
11999 keywords: {'meta-keyword': 'include use'},
12000 begin: 'include|use <',
12001 end: '>'
12002 },
12003 PARAMS = {
12004 className: 'params',
12005 begin: '\\(', end: '\\)',
12006 contains: ['self', NUMBERS, STRING, SPECIAL_VARS, LITERALS]
12007 },
12008 MODIFIERS = {
12009 begin: '[*!#%]',
12010 relevance: 0
12011 },
12012 FUNCTIONS = {
12013 className: 'function',
12014 beginKeywords: 'module function',
12015 end: '\\=|\\{',
12016 contains: [PARAMS, hljs.UNDERSCORE_TITLE_MODE]
12017 };
12018
12019 return {
12020 aliases: ['scad'],
12021 keywords: {
12022 keyword: 'function module include use for intersection_for if else \\%',
12023 literal: 'false true PI undef',
12024 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'
12025 },
12026 contains: [
12027 hljs.C_LINE_COMMENT_MODE,
12028 hljs.C_BLOCK_COMMENT_MODE,
12029 NUMBERS,
12030 PREPRO,
12031 STRING,
12032 SPECIAL_VARS,
12033 MODIFIERS,
12034 FUNCTIONS
12035 ]
12036 }
12037}
12038},{name:"oxygene",create:/*
12039Language: Oxygene
12040Author: Carlo Kok <ck@remobjects.com>
12041Description: Language definition for RemObjects Oxygene (http://www.remobjects.com)
12042*/
12043
12044function(hljs) {
12045 var OXYGENE_KEYWORDS = 'abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue '+
12046 'create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false '+
12047 'final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited '+
12048 'inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of '+
12049 'old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly '+
12050 'record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple '+
12051 'type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal '+
12052 'register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained';
12053 var CURLY_COMMENT = hljs.COMMENT(
12054 '{',
12055 '}',
12056 {
12057 relevance: 0
12058 }
12059 );
12060 var PAREN_COMMENT = hljs.COMMENT(
12061 '\\(\\*',
12062 '\\*\\)',
12063 {
12064 relevance: 10
12065 }
12066 );
12067 var STRING = {
12068 className: 'string',
12069 begin: '\'', end: '\'',
12070 contains: [{begin: '\'\''}]
12071 };
12072 var CHAR_STRING = {
12073 className: 'string', begin: '(#\\d+)+'
12074 };
12075 var FUNCTION = {
12076 className: 'function',
12077 beginKeywords: 'function constructor destructor procedure method', end: '[:;]',
12078 keywords: 'function constructor|10 destructor|10 procedure|10 method|10',
12079 contains: [
12080 hljs.TITLE_MODE,
12081 {
12082 className: 'params',
12083 begin: '\\(', end: '\\)',
12084 keywords: OXYGENE_KEYWORDS,
12085 contains: [STRING, CHAR_STRING]
12086 },
12087 CURLY_COMMENT, PAREN_COMMENT
12088 ]
12089 };
12090 return {
12091 case_insensitive: true,
12092 keywords: OXYGENE_KEYWORDS,
12093 illegal: '("|\\$[G-Zg-z]|\\/\\*|</|=>|->)',
12094 contains: [
12095 CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE,
12096 STRING, CHAR_STRING,
12097 hljs.NUMBER_MODE,
12098 FUNCTION,
12099 {
12100 className: 'class',
12101 begin: '=\\bclass\\b', end: 'end;',
12102 keywords: OXYGENE_KEYWORDS,
12103 contains: [
12104 STRING, CHAR_STRING,
12105 CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE,
12106 FUNCTION
12107 ]
12108 }
12109 ]
12110 };
12111}
12112},{name:"parser3",create:/*
12113Language: Parser3
12114Requires: xml.js
12115Author: Oleg Volchkov <oleg@volchkov.net>
12116Category: template
12117*/
12118
12119function(hljs) {
12120 var CURLY_SUBCOMMENT = hljs.COMMENT(
12121 '{',
12122 '}',
12123 {
12124 contains: ['self']
12125 }
12126 );
12127 return {
12128 subLanguage: 'xml', relevance: 0,
12129 contains: [
12130 hljs.COMMENT('^#', '$'),
12131 hljs.COMMENT(
12132 '\\^rem{',
12133 '}',
12134 {
12135 relevance: 10,
12136 contains: [
12137 CURLY_SUBCOMMENT
12138 ]
12139 }
12140 ),
12141 {
12142 className: 'meta',
12143 begin: '^@(?:BASE|USE|CLASS|OPTIONS)$',
12144 relevance: 10
12145 },
12146 {
12147 className: 'title',
12148 begin: '@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$'
12149 },
12150 {
12151 className: 'variable',
12152 begin: '\\$\\{?[\\w\\-\\.\\:]+\\}?'
12153 },
12154 {
12155 className: 'keyword',
12156 begin: '\\^[\\w\\-\\.\\:]+'
12157 },
12158 {
12159 className: 'number',
12160 begin: '\\^#[0-9a-fA-F]+'
12161 },
12162 hljs.C_NUMBER_MODE
12163 ]
12164 };
12165}
12166},{name:"perl",create:/*
12167Language: Perl
12168Author: Peter Leonov <gojpeg@yandex.ru>
12169Category: common
12170*/
12171
12172function(hljs) {
12173 var PERL_KEYWORDS = 'getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ' +
12174 'ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime ' +
12175 'readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq' +
12176 'fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent ' +
12177 'shutdown dump chomp connect getsockname die socketpair close flock exists index shmget' +
12178 'sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr ' +
12179 'unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 ' +
12180 'getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline ' +
12181 'endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand ' +
12182 'mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink ' +
12183 'getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr ' +
12184 'untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link ' +
12185 'getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller ' +
12186 'lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and ' +
12187 'sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 ' +
12188 'chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach ' +
12189 'tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir' +
12190 'ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe ' +
12191 'atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when';
12192 var SUBST = {
12193 className: 'subst',
12194 begin: '[$@]\\{', end: '\\}',
12195 keywords: PERL_KEYWORDS
12196 };
12197 var METHOD = {
12198 begin: '->{', end: '}'
12199 // contains defined later
12200 };
12201 var VAR = {
12202 variants: [
12203 {begin: /\$\d/},
12204 {begin: /[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},
12205 {begin: /[\$%@][^\s\w{]/, relevance: 0}
12206 ]
12207 };
12208 var STRING_CONTAINS = [hljs.BACKSLASH_ESCAPE, SUBST, VAR];
12209 var PERL_DEFAULT_CONTAINS = [
12210 VAR,
12211 hljs.HASH_COMMENT_MODE,
12212 hljs.COMMENT(
12213 '^\\=\\w',
12214 '\\=cut',
12215 {
12216 endsWithParent: true
12217 }
12218 ),
12219 METHOD,
12220 {
12221 className: 'string',
12222 contains: STRING_CONTAINS,
12223 variants: [
12224 {
12225 begin: 'q[qwxr]?\\s*\\(', end: '\\)',
12226 relevance: 5
12227 },
12228 {
12229 begin: 'q[qwxr]?\\s*\\[', end: '\\]',
12230 relevance: 5
12231 },
12232 {
12233 begin: 'q[qwxr]?\\s*\\{', end: '\\}',
12234 relevance: 5
12235 },
12236 {
12237 begin: 'q[qwxr]?\\s*\\|', end: '\\|',
12238 relevance: 5
12239 },
12240 {
12241 begin: 'q[qwxr]?\\s*\\<', end: '\\>',
12242 relevance: 5
12243 },
12244 {
12245 begin: 'qw\\s+q', end: 'q',
12246 relevance: 5
12247 },
12248 {
12249 begin: '\'', end: '\'',
12250 contains: [hljs.BACKSLASH_ESCAPE]
12251 },
12252 {
12253 begin: '"', end: '"'
12254 },
12255 {
12256 begin: '`', end: '`',
12257 contains: [hljs.BACKSLASH_ESCAPE]
12258 },
12259 {
12260 begin: '{\\w+}',
12261 contains: [],
12262 relevance: 0
12263 },
12264 {
12265 begin: '\-?\\w+\\s*\\=\\>',
12266 contains: [],
12267 relevance: 0
12268 }
12269 ]
12270 },
12271 {
12272 className: 'number',
12273 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
12274 relevance: 0
12275 },
12276 { // regexp container
12277 begin: '(\\/\\/|' + hljs.RE_STARTERS_RE + '|\\b(split|return|print|reverse|grep)\\b)\\s*',
12278 keywords: 'split return print reverse grep',
12279 relevance: 0,
12280 contains: [
12281 hljs.HASH_COMMENT_MODE,
12282 {
12283 className: 'regexp',
12284 begin: '(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*',
12285 relevance: 10
12286 },
12287 {
12288 className: 'regexp',
12289 begin: '(m|qr)?/', end: '/[a-z]*',
12290 contains: [hljs.BACKSLASH_ESCAPE],
12291 relevance: 0 // allows empty "//" which is a common comment delimiter in other languages
12292 }
12293 ]
12294 },
12295 {
12296 className: 'function',
12297 beginKeywords: 'sub', end: '(\\s*\\(.*?\\))?[;{]', excludeEnd: true,
12298 relevance: 5,
12299 contains: [hljs.TITLE_MODE]
12300 },
12301 {
12302 begin: '-\\w\\b',
12303 relevance: 0
12304 },
12305 {
12306 begin: "^__DATA__$",
12307 end: "^__END__$",
12308 subLanguage: 'mojolicious',
12309 contains: [
12310 {
12311 begin: "^@@.*",
12312 end: "$",
12313 className: "comment"
12314 }
12315 ]
12316 }
12317 ];
12318 SUBST.contains = PERL_DEFAULT_CONTAINS;
12319 METHOD.contains = PERL_DEFAULT_CONTAINS;
12320
12321 return {
12322 aliases: ['pl'],
12323 keywords: PERL_KEYWORDS,
12324 contains: PERL_DEFAULT_CONTAINS
12325 };
12326}
12327},{name:"pf",create:/*
12328Language: pf
12329Category: config
12330Author: Peter Piwowarski <oldlaptop654@aol.com>
12331Description: The pf.conf(5) format as of OpenBSD 5.6
12332*/
12333
12334function(hljs) {
12335 var MACRO = {
12336 className: 'variable',
12337 begin: /\$[\w\d#@][\w\d_]*/
12338 };
12339 var TABLE = {
12340 className: 'variable',
12341 begin: /</, end: />/
12342 };
12343 var QUOTE_STRING = {
12344 className: 'string',
12345 begin: /"/, end: /"/
12346 };
12347
12348 return {
12349 aliases: ['pf.conf'],
12350 lexemes: /[a-z0-9_<>-]+/,
12351 keywords: {
12352 built_in: /* block match pass are "actions" in pf.conf(5), the rest are
12353 * lexically similar top-level commands.
12354 */
12355 'block match pass load anchor|5 antispoof|10 set table',
12356 keyword:
12357 'in out log quick on rdomain inet inet6 proto from port os to route' +
12358 'allow-opts divert-packet divert-reply divert-to flags group icmp-type' +
12359 'icmp6-type label once probability recieved-on rtable prio queue' +
12360 'tos tag tagged user keep fragment for os drop' +
12361 'af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin' +
12362 'source-hash static-port' +
12363 'dup-to reply-to route-to' +
12364 'parent bandwidth default min max qlimit' +
12365 'block-policy debug fingerprints hostid limit loginterface optimization' +
12366 'reassemble ruleset-optimization basic none profile skip state-defaults' +
12367 'state-policy timeout' +
12368 'const counters persist' +
12369 'no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy' +
12370 'source-track global rule max-src-nodes max-src-states max-src-conn' +
12371 'max-src-conn-rate overload flush' +
12372 'scrub|5 max-mss min-ttl no-df|10 random-id',
12373 literal:
12374 'all any no-route self urpf-failed egress|5 unknown'
12375 },
12376 contains: [
12377 hljs.HASH_COMMENT_MODE,
12378 hljs.NUMBER_MODE,
12379 hljs.QUOTE_STRING_MODE,
12380 MACRO,
12381 TABLE
12382 ]
12383 };
12384}
12385},{name:"php",create:/*
12386Language: PHP
12387Author: Victor Karamzin <Victor.Karamzin@enterra-inc.com>
12388Contributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>
12389Category: common
12390*/
12391
12392function(hljs) {
12393 var VARIABLE = {
12394 begin: '\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
12395 };
12396 var PREPROCESSOR = {
12397 className: 'meta', begin: /<\?(php)?|\?>/
12398 };
12399 var STRING = {
12400 className: 'string',
12401 contains: [hljs.BACKSLASH_ESCAPE, PREPROCESSOR],
12402 variants: [
12403 {
12404 begin: 'b"', end: '"'
12405 },
12406 {
12407 begin: 'b\'', end: '\''
12408 },
12409 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
12410 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
12411 ]
12412 };
12413 var NUMBER = {variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]};
12414 return {
12415 aliases: ['php3', 'php4', 'php5', 'php6'],
12416 case_insensitive: true,
12417 keywords:
12418 'and include_once list abstract global private echo interface as static endswitch ' +
12419 'array null if endwhile or const for endforeach self var while isset public ' +
12420 'protected exit foreach throw elseif include __FILE__ empty require_once do xor ' +
12421 'return parent clone use __CLASS__ __LINE__ else break print eval new ' +
12422 'catch __METHOD__ case exception default die require __FUNCTION__ ' +
12423 'enddeclare final try switch continue endfor endif declare unset true false ' +
12424 'trait goto instanceof insteadof __DIR__ __NAMESPACE__ ' +
12425 'yield finally',
12426 contains: [
12427 hljs.C_LINE_COMMENT_MODE,
12428 hljs.HASH_COMMENT_MODE,
12429 hljs.COMMENT(
12430 '/\\*',
12431 '\\*/',
12432 {
12433 contains: [
12434 {
12435 className: 'doctag',
12436 begin: '@[A-Za-z]+'
12437 },
12438 PREPROCESSOR
12439 ]
12440 }
12441 ),
12442 hljs.COMMENT(
12443 '__halt_compiler.+?;',
12444 false,
12445 {
12446 endsWithParent: true,
12447 keywords: '__halt_compiler',
12448 lexemes: hljs.UNDERSCORE_IDENT_RE
12449 }
12450 ),
12451 {
12452 className: 'string',
12453 begin: /<<<['"]?\w+['"]?$/, end: /^\w+;?$/,
12454 contains: [
12455 hljs.BACKSLASH_ESCAPE,
12456 {
12457 className: 'subst',
12458 variants: [
12459 {begin: /\$\w+/},
12460 {begin: /\{\$/, end: /\}/}
12461 ]
12462 }
12463 ]
12464 },
12465 PREPROCESSOR,
12466 VARIABLE,
12467 {
12468 // swallow composed identifiers to avoid parsing them as keywords
12469 begin: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
12470 },
12471 {
12472 className: 'function',
12473 beginKeywords: 'function', end: /[;{]/, excludeEnd: true,
12474 illegal: '\\$|\\[|%',
12475 contains: [
12476 hljs.UNDERSCORE_TITLE_MODE,
12477 {
12478 className: 'params',
12479 begin: '\\(', end: '\\)',
12480 contains: [
12481 'self',
12482 VARIABLE,
12483 hljs.C_BLOCK_COMMENT_MODE,
12484 STRING,
12485 NUMBER
12486 ]
12487 }
12488 ]
12489 },
12490 {
12491 className: 'class',
12492 beginKeywords: 'class interface', end: '{', excludeEnd: true,
12493 illegal: /[:\(\$"]/,
12494 contains: [
12495 {beginKeywords: 'extends implements'},
12496 hljs.UNDERSCORE_TITLE_MODE
12497 ]
12498 },
12499 {
12500 beginKeywords: 'namespace', end: ';',
12501 illegal: /[\.']/,
12502 contains: [hljs.UNDERSCORE_TITLE_MODE]
12503 },
12504 {
12505 beginKeywords: 'use', end: ';',
12506 contains: [hljs.UNDERSCORE_TITLE_MODE]
12507 },
12508 {
12509 begin: '=>' // No markup, just a relevance booster
12510 },
12511 STRING,
12512 NUMBER
12513 ]
12514 };
12515}
12516},{name:"powershell",create:/*
12517Language: PowerShell
12518Author: David Mohundro <david@mohundro.com>
12519Contributors: Nicholas Blumhardt <nblumhardt@nblumhardt.com>
12520*/
12521
12522function(hljs) {
12523 var backtickEscape = {
12524 begin: '`[\\s\\S]',
12525 relevance: 0
12526 };
12527 var VAR = {
12528 className: 'variable',
12529 variants: [
12530 {begin: /\$[\w\d][\w\d_:]*/}
12531 ]
12532 };
12533 var LITERAL = {
12534 className: 'literal',
12535 begin: /\$(null|true|false)\b/
12536 };
12537 var QUOTE_STRING = {
12538 className: 'string',
12539 begin: /"/, end: /"/,
12540 contains: [
12541 backtickEscape,
12542 VAR,
12543 {
12544 className: 'variable',
12545 begin: /\$[A-z]/, end: /[^A-z]/
12546 }
12547 ]
12548 };
12549 var APOS_STRING = {
12550 className: 'string',
12551 begin: /'/, end: /'/
12552 };
12553
12554 return {
12555 aliases: ['ps'],
12556 lexemes: /-?[A-z\.\-]+/,
12557 case_insensitive: true,
12558 keywords: {
12559 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',
12560 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',
12561 nomarkup: '-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace'
12562 },
12563 contains: [
12564 hljs.HASH_COMMENT_MODE,
12565 hljs.NUMBER_MODE,
12566 QUOTE_STRING,
12567 APOS_STRING,
12568 LITERAL,
12569 VAR
12570 ]
12571 };
12572}
12573},{name:"processing",create:/*
12574Language: Processing
12575Author: Erik Paluka <erik.paluka@gmail.com>
12576Category: graphics
12577*/
12578
12579function(hljs) {
12580 return {
12581 keywords: {
12582 keyword: 'BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color ' +
12583 'double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject ' +
12584 'Object StringDict StringList Table TableRow XML ' +
12585 // Java keywords
12586 'false synchronized int abstract float private char boolean static null if const ' +
12587 'for true while long throw strictfp finally protected import native final return void ' +
12588 'enum else break transient new catch instanceof byte super volatile case assert short ' +
12589 'package default double public try this switch continue throws protected public private',
12590 literal: 'P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI',
12591 title: 'setup draw',
12592 built_in: 'displayHeight displayWidth mouseY mouseX mousePressed pmouseX pmouseY key ' +
12593 'keyCode pixels focused frameCount frameRate height width ' +
12594 'size createGraphics beginDraw createShape loadShape PShape arc ellipse line point ' +
12595 'quad rect triangle bezier bezierDetail bezierPoint bezierTangent curve curveDetail curvePoint ' +
12596 'curveTangent curveTightness shape shapeMode beginContour beginShape bezierVertex curveVertex ' +
12597 'endContour endShape quadraticVertex vertex ellipseMode noSmooth rectMode smooth strokeCap ' +
12598 'strokeJoin strokeWeight mouseClicked mouseDragged mouseMoved mousePressed mouseReleased ' +
12599 'mouseWheel keyPressed keyPressedkeyReleased keyTyped print println save saveFrame day hour ' +
12600 'millis minute month second year background clear colorMode fill noFill noStroke stroke alpha ' +
12601 'blue brightness color green hue lerpColor red saturation modelX modelY modelZ screenX screenY ' +
12602 'screenZ ambient emissive shininess specular add createImage beginCamera camera endCamera frustum ' +
12603 'ortho perspective printCamera printProjection cursor frameRate noCursor exit loop noLoop popStyle ' +
12604 'pushStyle redraw binary boolean byte char float hex int str unbinary unhex join match matchAll nf ' +
12605 'nfc nfp nfs split splitTokens trim append arrayCopy concat expand reverse shorten sort splice subset ' +
12606 'box sphere sphereDetail createInput createReader loadBytes loadJSONArray loadJSONObject loadStrings ' +
12607 'loadTable loadXML open parseXML saveTable selectFolder selectInput beginRaw beginRecord createOutput ' +
12608 'createWriter endRaw endRecord PrintWritersaveBytes saveJSONArray saveJSONObject saveStream saveStrings ' +
12609 'saveXML selectOutput popMatrix printMatrix pushMatrix resetMatrix rotate rotateX rotateY rotateZ scale ' +
12610 'shearX shearY translate ambientLight directionalLight lightFalloff lights lightSpecular noLights normal ' +
12611 'pointLight spotLight image imageMode loadImage noTint requestImage tint texture textureMode textureWrap ' +
12612 'blend copy filter get loadPixels set updatePixels blendMode loadShader PShaderresetShader shader createFont ' +
12613 'loadFont text textFont textAlign textLeading textMode textSize textWidth textAscent textDescent abs ceil ' +
12614 'constrain dist exp floor lerp log mag map max min norm pow round sq sqrt acos asin atan atan2 cos degrees ' +
12615 'radians sin tan noise noiseDetail noiseSeed random randomGaussian randomSeed'
12616 },
12617 contains: [
12618 hljs.C_LINE_COMMENT_MODE,
12619 hljs.C_BLOCK_COMMENT_MODE,
12620 hljs.APOS_STRING_MODE,
12621 hljs.QUOTE_STRING_MODE,
12622 hljs.C_NUMBER_MODE
12623 ]
12624 };
12625}
12626},{name:"profile",create:/*
12627Language: Python profile
12628Description: Python profiler results
12629Author: Brian Beck <exogen@gmail.com>
12630*/
12631
12632function(hljs) {
12633 return {
12634 contains: [
12635 hljs.C_NUMBER_MODE,
12636 {
12637 begin: '[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}', end: ':',
12638 excludeEnd: true
12639 },
12640 {
12641 begin: '(ncalls|tottime|cumtime)', end: '$',
12642 keywords: 'ncalls tottime|10 cumtime|10 filename',
12643 relevance: 10
12644 },
12645 {
12646 begin: 'function calls', end: '$',
12647 contains: [hljs.C_NUMBER_MODE],
12648 relevance: 10
12649 },
12650 hljs.APOS_STRING_MODE,
12651 hljs.QUOTE_STRING_MODE,
12652 {
12653 className: 'string',
12654 begin: '\\(', end: '\\)$',
12655 excludeBegin: true, excludeEnd: true,
12656 relevance: 0
12657 }
12658 ]
12659 };
12660}
12661},{name:"prolog",create:/*
12662Language: Prolog
12663Description: Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.
12664Author: Raivo Laanemets <raivo@infdot.com>
12665*/
12666
12667function(hljs) {
12668
12669 var ATOM = {
12670
12671 begin: /[a-z][A-Za-z0-9_]*/,
12672 relevance: 0
12673 };
12674
12675 var VAR = {
12676
12677 className: 'symbol',
12678 variants: [
12679 {begin: /[A-Z][a-zA-Z0-9_]*/},
12680 {begin: /_[A-Za-z0-9_]*/},
12681 ],
12682 relevance: 0
12683 };
12684
12685 var PARENTED = {
12686
12687 begin: /\(/,
12688 end: /\)/,
12689 relevance: 0
12690 };
12691
12692 var LIST = {
12693
12694 begin: /\[/,
12695 end: /\]/
12696 };
12697
12698 var LINE_COMMENT = {
12699
12700 className: 'comment',
12701 begin: /%/, end: /$/,
12702 contains: [hljs.PHRASAL_WORDS_MODE]
12703 };
12704
12705 var BACKTICK_STRING = {
12706
12707 className: 'string',
12708 begin: /`/, end: /`/,
12709 contains: [hljs.BACKSLASH_ESCAPE]
12710 };
12711
12712 var CHAR_CODE = {
12713
12714 className: 'string', // 0'a etc.
12715 begin: /0\'(\\\'|.)/
12716 };
12717
12718 var SPACE_CODE = {
12719
12720 className: 'string',
12721 begin: /0\'\\s/ // 0'\s
12722 };
12723
12724 var PRED_OP = { // relevance booster
12725 begin: /:-/
12726 };
12727
12728 var inner = [
12729
12730 ATOM,
12731 VAR,
12732 PARENTED,
12733 PRED_OP,
12734 LIST,
12735 LINE_COMMENT,
12736 hljs.C_BLOCK_COMMENT_MODE,
12737 hljs.QUOTE_STRING_MODE,
12738 hljs.APOS_STRING_MODE,
12739 BACKTICK_STRING,
12740 CHAR_CODE,
12741 SPACE_CODE,
12742 hljs.C_NUMBER_MODE
12743 ];
12744
12745 PARENTED.contains = inner;
12746 LIST.contains = inner;
12747
12748 return {
12749 contains: inner.concat([
12750 {begin: /\.$/} // relevance booster
12751 ])
12752 };
12753}
12754},{name:"protobuf",create:/*
12755Language: Protocol Buffers
12756Author: Dan Tao <daniel.tao@gmail.com>
12757Description: Protocol buffer message definition format
12758Category: protocols
12759*/
12760
12761function(hljs) {
12762 return {
12763 keywords: {
12764 keyword: 'package import option optional required repeated group',
12765 built_in: 'double float int32 int64 uint32 uint64 sint32 sint64 ' +
12766 'fixed32 fixed64 sfixed32 sfixed64 bool string bytes',
12767 literal: 'true false'
12768 },
12769 contains: [
12770 hljs.QUOTE_STRING_MODE,
12771 hljs.NUMBER_MODE,
12772 hljs.C_LINE_COMMENT_MODE,
12773 {
12774 className: 'class',
12775 beginKeywords: 'message enum service', end: /\{/,
12776 illegal: /\n/,
12777 contains: [
12778 hljs.inherit(hljs.TITLE_MODE, {
12779 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
12780 })
12781 ]
12782 },
12783 {
12784 className: 'function',
12785 beginKeywords: 'rpc',
12786 end: /;/, excludeEnd: true,
12787 keywords: 'rpc returns'
12788 },
12789 {
12790 begin: /^\s*[A-Z_]+/,
12791 end: /\s*=/, excludeEnd: true
12792 }
12793 ]
12794 };
12795}
12796},{name:"puppet",create:/*
12797Language: Puppet
12798Author: Jose Molina Colmenero <gaudy41@gmail.com>
12799Category: config
12800*/
12801
12802function(hljs) {
12803
12804 var PUPPET_KEYWORDS = {
12805 keyword:
12806 /* language keywords */
12807 'and case default else elsif false if in import enherits node or true undef unless main settings $string ',
12808 literal:
12809 /* metaparameters */
12810 'alias audit before loglevel noop require subscribe tag ' +
12811 /* normal attributes */
12812 'owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check ' +
12813 'en_address ip_address realname command environment hour monute month monthday special target weekday '+
12814 'creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore ' +
12815 'links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source ' +
12816 'souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid '+
12817 'ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel ' +
12818 'native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options ' +
12819 'device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use ' +
12820 'message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform ' +
12821 'responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running ' +
12822 'start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age ' +
12823 'password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled ' +
12824 'enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist ' +
12825 'priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey ' +
12826 'sslverify mounted',
12827 built_in:
12828 /* core facts */
12829 'architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers ' +
12830 'domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces '+
12831 'ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion ' +
12832 'kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease ' +
12833 'lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major ' +
12834 'macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease '+
12835 'operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion '+
12836 'rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced '+
12837 'selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime '+
12838 'uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version'
12839 };
12840
12841 var COMMENT = hljs.COMMENT('#', '$');
12842
12843 var IDENT_RE = '([A-Za-z_]|::)(\\w|::)*';
12844
12845 var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE});
12846
12847 var VARIABLE = {className: 'variable', begin: '\\$' + IDENT_RE};
12848
12849 var STRING = {
12850 className: 'string',
12851 contains: [hljs.BACKSLASH_ESCAPE, VARIABLE],
12852 variants: [
12853 {begin: /'/, end: /'/},
12854 {begin: /"/, end: /"/}
12855 ]
12856 };
12857
12858 return {
12859 aliases: ['pp'],
12860 contains: [
12861 COMMENT,
12862 VARIABLE,
12863 STRING,
12864 {
12865 beginKeywords: 'class', end: '\\{|;',
12866 illegal: /=/,
12867 contains: [TITLE, COMMENT]
12868 },
12869 {
12870 beginKeywords: 'define', end: /\{/,
12871 contains: [
12872 {
12873 className: 'section', begin: hljs.IDENT_RE, endsParent: true
12874 }
12875 ]
12876 },
12877 {
12878 begin: hljs.IDENT_RE + '\\s+\\{', returnBegin: true,
12879 end: /\S/,
12880 contains: [
12881 {
12882 className: 'keyword',
12883 begin: hljs.IDENT_RE
12884 },
12885 {
12886 begin: /\{/, end: /\}/,
12887 keywords: PUPPET_KEYWORDS,
12888 relevance: 0,
12889 contains: [
12890 STRING,
12891 COMMENT,
12892 {
12893 begin:'[a-zA-Z_]+\\s*=>',
12894 returnBegin: true, end: '=>',
12895 contains: [
12896 {
12897 className: 'attr',
12898 begin: hljs.IDENT_RE,
12899 }
12900 ]
12901 },
12902 {
12903 className: 'number',
12904 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
12905 relevance: 0
12906 },
12907 VARIABLE
12908 ]
12909 }
12910 ],
12911 relevance: 0
12912 }
12913 ]
12914 }
12915}
12916},{name:"python",create:/*
12917Language: Python
12918Category: common
12919*/
12920
12921function(hljs) {
12922 var PROMPT = {
12923 className: 'meta', begin: /^(>>>|\.\.\.) /
12924 };
12925 var STRING = {
12926 className: 'string',
12927 contains: [hljs.BACKSLASH_ESCAPE],
12928 variants: [
12929 {
12930 begin: /(u|b)?r?'''/, end: /'''/,
12931 contains: [PROMPT],
12932 relevance: 10
12933 },
12934 {
12935 begin: /(u|b)?r?"""/, end: /"""/,
12936 contains: [PROMPT],
12937 relevance: 10
12938 },
12939 {
12940 begin: /(u|r|ur)'/, end: /'/,
12941 relevance: 10
12942 },
12943 {
12944 begin: /(u|r|ur)"/, end: /"/,
12945 relevance: 10
12946 },
12947 {
12948 begin: /(b|br)'/, end: /'/
12949 },
12950 {
12951 begin: /(b|br)"/, end: /"/
12952 },
12953 hljs.APOS_STRING_MODE,
12954 hljs.QUOTE_STRING_MODE
12955 ]
12956 };
12957 var NUMBER = {
12958 className: 'number', relevance: 0,
12959 variants: [
12960 {begin: hljs.BINARY_NUMBER_RE + '[lLjJ]?'},
12961 {begin: '\\b(0o[0-7]+)[lLjJ]?'},
12962 {begin: hljs.C_NUMBER_RE + '[lLjJ]?'}
12963 ]
12964 };
12965 var PARAMS = {
12966 className: 'params',
12967 begin: /\(/, end: /\)/,
12968 contains: ['self', PROMPT, NUMBER, STRING]
12969 };
12970 return {
12971 aliases: ['py', 'gyp'],
12972 keywords: {
12973 keyword:
12974 'and elif is global as in if from raise for except finally print import pass return ' +
12975 'exec else break not with class assert yield try while continue del or def lambda ' +
12976 'async await nonlocal|10 None True False',
12977 built_in:
12978 'Ellipsis NotImplemented'
12979 },
12980 illegal: /(<\/|->|\?)/,
12981 contains: [
12982 PROMPT,
12983 NUMBER,
12984 STRING,
12985 hljs.HASH_COMMENT_MODE,
12986 {
12987 variants: [
12988 {className: 'function', beginKeywords: 'def', relevance: 10},
12989 {className: 'class', beginKeywords: 'class'}
12990 ],
12991 end: /:/,
12992 illegal: /[${=;\n,]/,
12993 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
12994 },
12995 {
12996 className: 'meta',
12997 begin: /^[\t ]*@/, end: /$/
12998 },
12999 {
13000 begin: /\b(print|exec)\(/ // donโ€™t highlight keywords-turned-functions in Python 3
13001 }
13002 ]
13003 };
13004}
13005},{name:"q",create:/*
13006Language: Q
13007Author: Sergey Vidyuk <svidyuk@gmail.com>
13008Description: K/Q/Kdb+ from Kx Systems
13009*/
13010function(hljs) {
13011 var Q_KEYWORDS = {
13012 keyword:
13013 'do while select delete by update from',
13014 literal:
13015 '0b 1b',
13016 built_in:
13017 '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',
13018 type:
13019 '`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid'
13020 };
13021 return {
13022 aliases:['k', 'kdb'],
13023 keywords: Q_KEYWORDS,
13024 lexemes: /(`?)[A-Za-z0-9_]+\b/,
13025 contains: [
13026 hljs.C_LINE_COMMENT_MODE,
13027 hljs.QUOTE_STRING_MODE,
13028 hljs.C_NUMBER_MODE
13029 ]
13030 };
13031}
13032},{name:"r",create:/*
13033Language: R
13034Author: Joe Cheng <joe@rstudio.org>
13035Category: scientific
13036*/
13037
13038function(hljs) {
13039 var IDENT_RE = '([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*';
13040
13041 return {
13042 contains: [
13043 hljs.HASH_COMMENT_MODE,
13044 {
13045 begin: IDENT_RE,
13046 lexemes: IDENT_RE,
13047 keywords: {
13048 keyword:
13049 'function if in break next repeat else for return switch while try tryCatch ' +
13050 'stop warning require library attach detach source setMethod setGeneric ' +
13051 'setGroupGeneric setClass ...',
13052 literal:
13053 'NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 ' +
13054 'NA_complex_|10'
13055 },
13056 relevance: 0
13057 },
13058 {
13059 // hex value
13060 className: 'number',
13061 begin: "0[xX][0-9a-fA-F]+[Li]?\\b",
13062 relevance: 0
13063 },
13064 {
13065 // explicit integer
13066 className: 'number',
13067 begin: "\\d+(?:[eE][+\\-]?\\d*)?L\\b",
13068 relevance: 0
13069 },
13070 {
13071 // number with trailing decimal
13072 className: 'number',
13073 begin: "\\d+\\.(?!\\d)(?:i\\b)?",
13074 relevance: 0
13075 },
13076 {
13077 // number
13078 className: 'number',
13079 begin: "\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",
13080 relevance: 0
13081 },
13082 {
13083 // number with leading decimal
13084 className: 'number',
13085 begin: "\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",
13086 relevance: 0
13087 },
13088
13089 {
13090 // escaped identifier
13091 begin: '`',
13092 end: '`',
13093 relevance: 0
13094 },
13095
13096 {
13097 className: 'string',
13098 contains: [hljs.BACKSLASH_ESCAPE],
13099 variants: [
13100 {begin: '"', end: '"'},
13101 {begin: "'", end: "'"}
13102 ]
13103 }
13104 ]
13105 };
13106}
13107},{name:"rib",create:/*
13108Language: RenderMan RIB
13109Author: Konstantin Evdokimenko <qewerty@gmail.com>
13110Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
13111Category: graphics
13112*/
13113
13114function(hljs) {
13115 return {
13116 keywords:
13117 'ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis ' +
13118 'Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone ' +
13119 'CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail ' +
13120 'DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format ' +
13121 'FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry ' +
13122 'Hider Hyperboloid Identity Illuminate Imager Interior LightSource ' +
13123 'MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte ' +
13124 'MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option ' +
13125 'Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples ' +
13126 'PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection ' +
13127 'Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ' +
13128 'ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere ' +
13129 'SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd ' +
13130 'TransformPoints Translate TrimCurve WorldBegin WorldEnd',
13131 illegal: '</',
13132 contains: [
13133 hljs.HASH_COMMENT_MODE,
13134 hljs.C_NUMBER_MODE,
13135 hljs.APOS_STRING_MODE,
13136 hljs.QUOTE_STRING_MODE
13137 ]
13138 };
13139}
13140},{name:"roboconf",create:/*
13141Language: Roboconf
13142Author: Vincent Zurczak <vzurczak@linagora.com>
13143Website: http://roboconf.net
13144Description: Syntax highlighting for Roboconf's DSL
13145Category: config
13146*/
13147
13148function(hljs) {
13149 var IDENTIFIER = '[a-zA-Z-_][^\\n{]+\\{';
13150
13151 var PROPERTY = {
13152 className: 'attribute',
13153 begin: /[a-zA-Z-_]+/, end: /\s*:/, excludeEnd: true,
13154 starts: {
13155 end: ';',
13156 relevance: 0,
13157 contains: [
13158 {
13159 className: 'variable',
13160 begin: /\.[a-zA-Z-_]+/
13161 },
13162 {
13163 className: 'keyword',
13164 begin: /\(optional\)/
13165 }
13166 ]
13167 }
13168 };
13169
13170 return {
13171 aliases: ['graph', 'instances'],
13172 case_insensitive: true,
13173 keywords: 'import',
13174 contains: [
13175 // Facet sections
13176 {
13177 begin: '^facet ' + IDENTIFIER,
13178 end: '}',
13179 keywords: 'facet',
13180 contains: [
13181 PROPERTY,
13182 hljs.HASH_COMMENT_MODE
13183 ]
13184 },
13185
13186 // Instance sections
13187 {
13188 begin: '^\\s*instance of ' + IDENTIFIER,
13189 end: '}',
13190 keywords: 'name count channels instance-data instance-state instance of',
13191 illegal: /\S/,
13192 contains: [
13193 'self',
13194 PROPERTY,
13195 hljs.HASH_COMMENT_MODE
13196 ]
13197 },
13198
13199 // Component sections
13200 {
13201 begin: '^' + IDENTIFIER,
13202 end: '}',
13203 contains: [
13204 PROPERTY,
13205 hljs.HASH_COMMENT_MODE
13206 ]
13207 },
13208
13209 // Comments
13210 hljs.HASH_COMMENT_MODE
13211 ]
13212 };
13213}
13214},{name:"rsl",create:/*
13215Language: RenderMan RSL
13216Author: Konstantin Evdokimenko <qewerty@gmail.com>
13217Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
13218Category: graphics
13219*/
13220
13221function(hljs) {
13222 return {
13223 keywords: {
13224 keyword:
13225 'float color point normal vector matrix while for if do return else break extern continue',
13226 built_in:
13227 'abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise ' +
13228 'clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp ' +
13229 'faceforward filterstep floor format fresnel incident length lightsource log match ' +
13230 'max min mod noise normalize ntransform opposite option phong pnoise pow printf ' +
13231 'ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp ' +
13232 'setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan ' +
13233 'texture textureinfo trace transform vtransform xcomp ycomp zcomp'
13234 },
13235 illegal: '</',
13236 contains: [
13237 hljs.C_LINE_COMMENT_MODE,
13238 hljs.C_BLOCK_COMMENT_MODE,
13239 hljs.QUOTE_STRING_MODE,
13240 hljs.APOS_STRING_MODE,
13241 hljs.C_NUMBER_MODE,
13242 {
13243 className: 'meta',
13244 begin: '#', end: '$'
13245 },
13246 {
13247 className: 'class',
13248 beginKeywords: 'surface displacement light volume imager', end: '\\('
13249 },
13250 {
13251 beginKeywords: 'illuminate illuminance gather', end: '\\('
13252 }
13253 ]
13254 };
13255}
13256},{name:"ruby",create:/*
13257Language: Ruby
13258Author: Anton Kovalyov <anton@kovalyov.net>
13259Contributors: 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>
13260Category: common
13261*/
13262
13263function(hljs) {
13264 var RUBY_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
13265 var RUBY_KEYWORDS =
13266 'and false then defined module in return redo if BEGIN retry end for true self when ' +
13267 'next until do begin unless END rescue nil else break undef not super class case ' +
13268 'require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor';
13269 var YARDOCTAG = {
13270 className: 'doctag',
13271 begin: '@[A-Za-z]+'
13272 };
13273 var IRB_OBJECT = {
13274 begin: '#<', end: '>'
13275 };
13276 var COMMENT_MODES = [
13277 hljs.COMMENT(
13278 '#',
13279 '$',
13280 {
13281 contains: [YARDOCTAG]
13282 }
13283 ),
13284 hljs.COMMENT(
13285 '^\\=begin',
13286 '^\\=end',
13287 {
13288 contains: [YARDOCTAG],
13289 relevance: 10
13290 }
13291 ),
13292 hljs.COMMENT('^__END__', '\\n$')
13293 ];
13294 var SUBST = {
13295 className: 'subst',
13296 begin: '#\\{', end: '}',
13297 keywords: RUBY_KEYWORDS
13298 };
13299 var STRING = {
13300 className: 'string',
13301 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
13302 variants: [
13303 {begin: /'/, end: /'/},
13304 {begin: /"/, end: /"/},
13305 {begin: /`/, end: /`/},
13306 {begin: '%[qQwWx]?\\(', end: '\\)'},
13307 {begin: '%[qQwWx]?\\[', end: '\\]'},
13308 {begin: '%[qQwWx]?{', end: '}'},
13309 {begin: '%[qQwWx]?<', end: '>'},
13310 {begin: '%[qQwWx]?/', end: '/'},
13311 {begin: '%[qQwWx]?%', end: '%'},
13312 {begin: '%[qQwWx]?-', end: '-'},
13313 {begin: '%[qQwWx]?\\|', end: '\\|'},
13314 {
13315 // \B in the beginning suppresses recognition of ?-sequences where ?
13316 // is the last character of a preceding identifier, as in: `func?4`
13317 begin: /\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/
13318 }
13319 ]
13320 };
13321 var PARAMS = {
13322 className: 'params',
13323 begin: '\\(', end: '\\)', endsParent: true,
13324 keywords: RUBY_KEYWORDS
13325 };
13326
13327 var RUBY_DEFAULT_CONTAINS = [
13328 STRING,
13329 IRB_OBJECT,
13330 {
13331 className: 'class',
13332 beginKeywords: 'class module', end: '$|;',
13333 illegal: /=/,
13334 contains: [
13335 hljs.inherit(hljs.TITLE_MODE, {begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?'}),
13336 {
13337 begin: '<\\s*',
13338 contains: [{
13339 begin: '(' + hljs.IDENT_RE + '::)?' + hljs.IDENT_RE
13340 }]
13341 }
13342 ].concat(COMMENT_MODES)
13343 },
13344 {
13345 className: 'function',
13346 beginKeywords: 'def', end: '$|;',
13347 contains: [
13348 hljs.inherit(hljs.TITLE_MODE, {begin: RUBY_METHOD_RE}),
13349 PARAMS
13350 ].concat(COMMENT_MODES)
13351 },
13352 {
13353 className: 'symbol',
13354 begin: hljs.UNDERSCORE_IDENT_RE + '(\\!|\\?)?:',
13355 relevance: 0
13356 },
13357 {
13358 className: 'symbol',
13359 begin: ':',
13360 contains: [STRING, {begin: RUBY_METHOD_RE}],
13361 relevance: 0
13362 },
13363 {
13364 className: 'number',
13365 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
13366 relevance: 0
13367 },
13368 {
13369 begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))' // variables
13370 },
13371 { // regexp container
13372 begin: '(' + hljs.RE_STARTERS_RE + ')\\s*',
13373 contains: [
13374 IRB_OBJECT,
13375 {
13376 className: 'regexp',
13377 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
13378 illegal: /\n/,
13379 variants: [
13380 {begin: '/', end: '/[a-z]*'},
13381 {begin: '%r{', end: '}[a-z]*'},
13382 {begin: '%r\\(', end: '\\)[a-z]*'},
13383 {begin: '%r!', end: '![a-z]*'},
13384 {begin: '%r\\[', end: '\\][a-z]*'}
13385 ]
13386 }
13387 ].concat(COMMENT_MODES),
13388 relevance: 0
13389 }
13390 ].concat(COMMENT_MODES);
13391
13392 SUBST.contains = RUBY_DEFAULT_CONTAINS;
13393 PARAMS.contains = RUBY_DEFAULT_CONTAINS;
13394
13395 var SIMPLE_PROMPT = "[>?]>";
13396 var DEFAULT_PROMPT = "[\\w#]+\\(\\w+\\):\\d+:\\d+>";
13397 var RVM_PROMPT = "(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>";
13398
13399 var IRB_DEFAULT = [
13400 {
13401 begin: /^\s*=>/,
13402 starts: {
13403 end: '$', contains: RUBY_DEFAULT_CONTAINS
13404 }
13405 },
13406 {
13407 className: 'meta',
13408 begin: '^('+SIMPLE_PROMPT+"|"+DEFAULT_PROMPT+'|'+RVM_PROMPT+')',
13409 starts: {
13410 end: '$', contains: RUBY_DEFAULT_CONTAINS
13411 }
13412 }
13413 ];
13414
13415 return {
13416 aliases: ['rb', 'gemspec', 'podspec', 'thor', 'irb'],
13417 keywords: RUBY_KEYWORDS,
13418 illegal: /\/\*/,
13419 contains: COMMENT_MODES.concat(IRB_DEFAULT).concat(RUBY_DEFAULT_CONTAINS)
13420 };
13421}
13422},{name:"ruleslanguage",create:/*
13423Language: Oracle Rules Language
13424Author: Jason Jacobson <jason.a.jacobson@gmail.com>
13425Description: 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.
13426Category: enterprise
13427*/
13428
13429function(hljs) {
13430 return {
13431 keywords: {
13432 keyword: 'BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE ' +
13433 'INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 ' +
13434 'INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 ' +
13435 'INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 ' +
13436 'INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 ' +
13437 'INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 ' +
13438 'INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 ' +
13439 'INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 ' +
13440 'INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 ' +
13441 'INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 ' +
13442 'INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 ' +
13443 'INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 ' +
13444 'INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 ' +
13445 'INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 ' +
13446 'INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 ' +
13447 'MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER ' +
13448 'OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE ' +
13449 'NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH ' +
13450 'IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND ' +
13451 'UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ' +
13452 'ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE ' +
13453 'GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE ' +
13454 'SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING ' +
13455 'DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF ' +
13456 'MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY ' +
13457 'YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE ' +
13458 'COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR ' +
13459 'READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ' +
13460 'ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE ' +
13461 'EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE ' +
13462 'SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL ' +
13463 'COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN ' +
13464 'MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING ' +
13465 'FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ' +
13466 'NUMDAYS READ_DATE STAGING',
13467 built_in: 'IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML ' +
13468 'DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT ' +
13469 'DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE ' +
13470 'DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT ' +
13471 'DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME'
13472 },
13473 contains: [
13474 hljs.C_LINE_COMMENT_MODE,
13475 hljs.C_BLOCK_COMMENT_MODE,
13476 hljs.APOS_STRING_MODE,
13477 hljs.QUOTE_STRING_MODE,
13478 hljs.C_NUMBER_MODE,
13479 {
13480 className: 'literal',
13481 variants: [
13482 {begin: '#\\s+[a-zA-Z\\ \\.]*', relevance: 0}, // looks like #-comment
13483 {begin: '#[a-zA-Z\\ \\.]+'}
13484 ]
13485 }
13486 ]
13487 };
13488}
13489},{name:"rust",create:/*
13490Language: Rust
13491Author: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
13492Contributors: Roman Shmatov <romanshmatov@gmail.com>
13493Category: system
13494*/
13495
13496function(hljs) {
13497 var NUM_SUFFIX = '([uif](8|16|32|64|size))\?';
13498 var BLOCK_COMMENT = hljs.inherit(hljs.C_BLOCK_COMMENT_MODE);
13499 BLOCK_COMMENT.contains.push('self');
13500 var BUILTINS =
13501 // prelude
13502 'Copy Send Sized Sync Drop Fn FnMut FnOnce drop Box ToOwned Clone ' +
13503 'PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator ' +
13504 'Extend IntoIterator DoubleEndedIterator ExactSizeIterator Option ' +
13505 'Some None Result Ok Err SliceConcatExt String ToString Vec ' +
13506 // macros
13507 'assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! ' +
13508 'debug_assert! debug_assert_eq! env! panic! file! format! format_args! ' +
13509 'include_bin! include_str! line! local_data_key! module_path! ' +
13510 'option_env! print! println! select! stringify! try! unimplemented! ' +
13511 'unreachable! vec! write! writeln!';
13512 return {
13513 aliases: ['rs'],
13514 keywords: {
13515 keyword:
13516 'alignof as be box break const continue crate do else enum extern ' +
13517 'false fn for if impl in let loop match mod mut offsetof once priv ' +
13518 'proc pub pure ref return self Self sizeof static struct super trait true ' +
13519 'type typeof unsafe unsized use virtual while where yield ' +
13520 'int i8 i16 i32 i64 ' +
13521 'uint u8 u32 u64 ' +
13522 'float f32 f64 ' +
13523 'str char bool',
13524 literal:
13525 'true false',
13526 built_in:
13527 BUILTINS
13528 },
13529 lexemes: hljs.IDENT_RE + '!?',
13530 illegal: '</',
13531 contains: [
13532 hljs.C_LINE_COMMENT_MODE,
13533 BLOCK_COMMENT,
13534 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
13535 {
13536 className: 'string',
13537 variants: [
13538 { begin: /r(#*)".*?"\1(?!#)/ },
13539 { begin: /'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/ },
13540 ]
13541 },
13542 {
13543 className: 'symbol',
13544 begin: /'[a-zA-Z_][a-zA-Z0-9_]*/
13545 },
13546 {
13547 className: 'number',
13548 variants: [
13549 { begin: '\\b0b([01_]+)' + NUM_SUFFIX },
13550 { begin: '\\b0o([0-7_]+)' + NUM_SUFFIX },
13551 { begin: '\\b0x([A-Fa-f0-9_]+)' + NUM_SUFFIX },
13552 { begin: '\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)' +
13553 NUM_SUFFIX
13554 }
13555 ],
13556 relevance: 0
13557 },
13558 {
13559 className: 'function',
13560 beginKeywords: 'fn', end: '(\\(|<)', excludeEnd: true,
13561 contains: [hljs.UNDERSCORE_TITLE_MODE]
13562 },
13563 {
13564 className: 'meta',
13565 begin: '#\\!?\\[', end: '\\]'
13566 },
13567 {
13568 className: 'class',
13569 beginKeywords: 'type', end: '(=|<)',
13570 contains: [hljs.UNDERSCORE_TITLE_MODE],
13571 illegal: '\\S'
13572 },
13573 {
13574 className: 'class',
13575 beginKeywords: 'trait enum', end: '{',
13576 contains: [
13577 hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, {endsParent: true})
13578 ],
13579 illegal: '[\\w\\d]'
13580 },
13581 {
13582 begin: hljs.IDENT_RE + '::',
13583 keywords: {built_in: BUILTINS}
13584 },
13585 {
13586 begin: '->'
13587 }
13588 ]
13589 };
13590}
13591},{name:"scala",create:/*
13592Language: Scala
13593Category: functional
13594Author: Jan Berkel <jan.berkel@gmail.com>
13595Contributors: Erik Osheim <d_m@plastic-idolatry.com>
13596*/
13597
13598function(hljs) {
13599
13600 var ANNOTATION = { className: 'meta', begin: '@[A-Za-z]+' };
13601
13602 // used in strings for escaping/interpolation/substitution
13603 var SUBST = {
13604 className: 'subst',
13605 variants: [
13606 {begin: '\\$[A-Za-z0-9_]+'},
13607 {begin: '\\${', end: '}'}
13608 ]
13609 };
13610
13611 var STRING = {
13612 className: 'string',
13613 variants: [
13614 {
13615 begin: '"', end: '"',
13616 illegal: '\\n',
13617 contains: [hljs.BACKSLASH_ESCAPE]
13618 },
13619 {
13620 begin: '"""', end: '"""',
13621 relevance: 10
13622 },
13623 {
13624 begin: '[a-z]+"', end: '"',
13625 illegal: '\\n',
13626 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
13627 },
13628 {
13629 className: 'string',
13630 begin: '[a-z]+"""', end: '"""',
13631 contains: [SUBST],
13632 relevance: 10
13633 }
13634 ]
13635
13636 };
13637
13638 var SYMBOL = {
13639 className: 'symbol',
13640 begin: '\'\\w[\\w\\d_]*(?!\')'
13641 };
13642
13643 var TYPE = {
13644 className: 'type',
13645 begin: '\\b[A-Z][A-Za-z0-9_]*',
13646 relevance: 0
13647 };
13648
13649 var NAME = {
13650 className: 'title',
13651 begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,
13652 relevance: 0
13653 };
13654
13655 var CLASS = {
13656 className: 'class',
13657 beginKeywords: 'class object trait type',
13658 end: /[:={\[\n;]/,
13659 excludeEnd: true,
13660 contains: [
13661 {
13662 beginKeywords: 'extends with',
13663 relevance: 10
13664 },
13665 {
13666 begin: /\[/,
13667 end: /\]/,
13668 excludeBegin: true,
13669 excludeEnd: true,
13670 relevance: 0,
13671 contains: [TYPE]
13672 },
13673 {
13674 className: 'params',
13675 begin: /\(/,
13676 end: /\)/,
13677 excludeBegin: true,
13678 excludeEnd: true,
13679 relevance: 0,
13680 contains: [TYPE]
13681 },
13682 NAME
13683 ]
13684 };
13685
13686 var METHOD = {
13687 className: 'function',
13688 beginKeywords: 'def',
13689 end: /[:={\[(\n;]/,
13690 excludeEnd: true,
13691 contains: [NAME]
13692 };
13693
13694 return {
13695 keywords: {
13696 literal: 'true false null',
13697 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'
13698 },
13699 contains: [
13700 hljs.C_LINE_COMMENT_MODE,
13701 hljs.C_BLOCK_COMMENT_MODE,
13702 STRING,
13703 SYMBOL,
13704 TYPE,
13705 METHOD,
13706 CLASS,
13707 hljs.C_NUMBER_MODE,
13708 ANNOTATION
13709 ]
13710 };
13711}
13712},{name:"scheme",create:/*
13713Language: Scheme
13714Description: Keywords based on http://community.schemewiki.org/?scheme-keywords
13715Author: JP Verkamp <me@jverkamp.com>
13716Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
13717Origin: clojure.js
13718Category: lisp
13719*/
13720
13721function(hljs) {
13722 var SCHEME_IDENT_RE = '[^\\(\\)\\[\\]\\{\\}",\'`;#|\\\\\\s]+';
13723 var SCHEME_SIMPLE_NUMBER_RE = '(\\-|\\+)?\\d+([./]\\d+)?';
13724 var SCHEME_COMPLEX_NUMBER_RE = SCHEME_SIMPLE_NUMBER_RE + '[+\\-]' + SCHEME_SIMPLE_NUMBER_RE + 'i';
13725 var BUILTINS = {
13726 'builtin-name':
13727 'case-lambda call/cc class define-class exit-handler field import ' +
13728 'inherit init-field interface let*-values let-values let/ec mixin ' +
13729 'opt-lambda override protect provide public rename require ' +
13730 'require-for-syntax syntax syntax-case syntax-error unit/sig unless ' +
13731 'when with-syntax and begin call-with-current-continuation ' +
13732 'call-with-input-file call-with-output-file case cond define ' +
13733 'define-syntax delay do dynamic-wind else for-each if lambda let let* ' +
13734 'let-syntax letrec letrec-syntax map or syntax-rules \' * + , ,@ - ... / ' +
13735 '; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan ' +
13736 'boolean? caar cadr call-with-input-file call-with-output-file ' +
13737 'call-with-values car cdddar cddddr cdr ceiling char->integer ' +
13738 'char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? ' +
13739 'char-downcase char-lower-case? char-numeric? char-ready? char-upcase ' +
13740 'char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? ' +
13741 'char? close-input-port close-output-port complex? cons cos ' +
13742 'current-input-port current-output-port denominator display eof-object? ' +
13743 'eq? equal? eqv? eval even? exact->inexact exact? exp expt floor ' +
13744 'force gcd imag-part inexact->exact inexact? input-port? integer->char ' +
13745 'integer? interaction-environment lcm length list list->string ' +
13746 'list->vector list-ref list-tail list? load log magnitude make-polar ' +
13747 'make-rectangular make-string make-vector max member memq memv min ' +
13748 'modulo negative? newline not null-environment null? number->string ' +
13749 'number? numerator odd? open-input-file open-output-file output-port? ' +
13750 'pair? peek-char port? positive? procedure? quasiquote quote quotient ' +
13751 'rational? rationalize read read-char real-part real? remainder reverse ' +
13752 'round scheme-report-environment set! set-car! set-cdr! sin sqrt string ' +
13753 'string->list string->number string->symbol string-append string-ci<=? ' +
13754 'string-ci<? string-ci=? string-ci>=? string-ci>? string-copy ' +
13755 'string-fill! string-length string-ref string-set! string<=? string<? ' +
13756 'string=? string>=? string>? string? substring symbol->string symbol? ' +
13757 'tan transcript-off transcript-on truncate values vector ' +
13758 'vector->list vector-fill! vector-length vector-ref vector-set! ' +
13759 'with-input-from-file with-output-to-file write write-char zero?'
13760 };
13761
13762 var SHEBANG = {
13763 className: 'meta',
13764 begin: '^#!',
13765 end: '$'
13766 };
13767
13768 var LITERAL = {
13769 className: 'literal',
13770 begin: '(#t|#f|#\\\\' + SCHEME_IDENT_RE + '|#\\\\.)'
13771 };
13772
13773 var NUMBER = {
13774 className: 'number',
13775 variants: [
13776 { begin: SCHEME_SIMPLE_NUMBER_RE, relevance: 0 },
13777 { begin: SCHEME_COMPLEX_NUMBER_RE, relevance: 0 },
13778 { begin: '#b[0-1]+(/[0-1]+)?' },
13779 { begin: '#o[0-7]+(/[0-7]+)?' },
13780 { begin: '#x[0-9a-f]+(/[0-9a-f]+)?' }
13781 ]
13782 };
13783
13784 var STRING = hljs.QUOTE_STRING_MODE;
13785
13786 var REGULAR_EXPRESSION = {
13787 className: 'regexp',
13788 begin: '#[pr]x"',
13789 end: '[^\\\\]"'
13790 };
13791
13792 var COMMENT_MODES = [
13793 hljs.COMMENT(
13794 ';',
13795 '$',
13796 {
13797 relevance: 0
13798 }
13799 ),
13800 hljs.COMMENT('#\\|', '\\|#')
13801 ];
13802
13803 var IDENT = {
13804 begin: SCHEME_IDENT_RE,
13805 relevance: 0
13806 };
13807
13808 var QUOTED_IDENT = {
13809 className: 'symbol',
13810 begin: '\'' + SCHEME_IDENT_RE
13811 };
13812
13813 var BODY = {
13814 endsWithParent: true,
13815 relevance: 0
13816 };
13817
13818 var LIST = {
13819 variants: [
13820 { begin: '\\(', end: '\\)' },
13821 { begin: '\\[', end: '\\]' }
13822 ],
13823 contains: [
13824 {
13825 className: 'name',
13826 begin: SCHEME_IDENT_RE,
13827 lexemes: SCHEME_IDENT_RE,
13828 keywords: BUILTINS
13829 },
13830 BODY
13831 ]
13832 };
13833
13834 BODY.contains = [LITERAL, NUMBER, STRING, IDENT, QUOTED_IDENT, LIST].concat(COMMENT_MODES);
13835
13836 return {
13837 illegal: /\S/,
13838 contains: [SHEBANG, NUMBER, STRING, QUOTED_IDENT, LIST].concat(COMMENT_MODES)
13839 };
13840}
13841},{name:"scilab",create:/*
13842Language: Scilab
13843Author: Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com>
13844Origin: matlab.js
13845Description: Scilab is a port from Matlab
13846Category: scientific
13847*/
13848
13849function(hljs) {
13850
13851 var COMMON_CONTAINS = [
13852 hljs.C_NUMBER_MODE,
13853 {
13854 className: 'string',
13855 begin: '\'|\"', end: '\'|\"',
13856 contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
13857 }
13858 ];
13859
13860 return {
13861 aliases: ['sci'],
13862 lexemes: /%?\w+/,
13863 keywords: {
13864 keyword: 'abort break case clear catch continue do elseif else endfunction end for function '+
13865 'global if pause return resume select try then while',
13866 literal:
13867 '%f %F %t %T %pi %eps %inf %nan %e %i %z %s',
13868 built_in: // Scilab has more than 2000 functions. Just list the most commons
13869 'abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error '+
13870 'exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty '+
13871 'isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log '+
13872 'max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real '+
13873 'round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan '+
13874 'type typename warning zeros matrix'
13875 },
13876 illegal: '("|#|/\\*|\\s+/\\w+)',
13877 contains: [
13878 {
13879 className: 'function',
13880 beginKeywords: 'function', end: '$',
13881 contains: [
13882 hljs.UNDERSCORE_TITLE_MODE,
13883 {
13884 className: 'params',
13885 begin: '\\(', end: '\\)'
13886 }
13887 ]
13888 },
13889 {
13890 begin: '[a-zA-Z_][a-zA-Z_0-9]*(\'+[\\.\']*|[\\.\']+)', end: '',
13891 relevance: 0
13892 },
13893 {
13894 begin: '\\[', end: '\\]\'*[\\.\']*',
13895 relevance: 0,
13896 contains: COMMON_CONTAINS
13897 },
13898 hljs.COMMENT('//', '$')
13899 ].concat(COMMON_CONTAINS)
13900 };
13901}
13902},{name:"scss",create:/*
13903Language: SCSS
13904Author: Kurt Emch <kurt@kurtemch.com>
13905Category: css
13906*/
13907function(hljs) {
13908 var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
13909 var VARIABLE = {
13910 className: 'variable',
13911 begin: '(\\$' + IDENT_RE + ')\\b'
13912 };
13913 var HEXCOLOR = {
13914 className: 'number', begin: '#[0-9A-Fa-f]+'
13915 };
13916 var DEF_INTERNALS = {
13917 className: 'attribute',
13918 begin: '[A-Z\\_\\.\\-]+', end: ':',
13919 excludeEnd: true,
13920 illegal: '[^\\s]',
13921 starts: {
13922 endsWithParent: true, excludeEnd: true,
13923 contains: [
13924 HEXCOLOR,
13925 hljs.CSS_NUMBER_MODE,
13926 hljs.QUOTE_STRING_MODE,
13927 hljs.APOS_STRING_MODE,
13928 hljs.C_BLOCK_COMMENT_MODE,
13929 {
13930 className: 'meta', begin: '!important'
13931 }
13932 ]
13933 }
13934 };
13935 return {
13936 case_insensitive: true,
13937 illegal: '[=/|\']',
13938 contains: [
13939 hljs.C_LINE_COMMENT_MODE,
13940 hljs.C_BLOCK_COMMENT_MODE,
13941 {
13942 className: 'selector-id', begin: '\\#[A-Za-z0-9_-]+',
13943 relevance: 0
13944 },
13945 {
13946 className: 'selector-class', begin: '\\.[A-Za-z0-9_-]+',
13947 relevance: 0
13948 },
13949 {
13950 className: 'selector-attr', begin: '\\[', end: '\\]',
13951 illegal: '$'
13952 },
13953 {
13954 className: 'selector-tag', // begin: IDENT_RE, end: '[,|\\s]'
13955 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',
13956 relevance: 0
13957 },
13958 {
13959 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)'
13960 },
13961 {
13962 begin: '::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)'
13963 },
13964 VARIABLE,
13965 {
13966 className: 'attribute',
13967 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',
13968 illegal: '[^\\s]'
13969 },
13970 {
13971 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'
13972 },
13973 {
13974 begin: ':', end: ';',
13975 contains: [
13976 VARIABLE,
13977 HEXCOLOR,
13978 hljs.CSS_NUMBER_MODE,
13979 hljs.QUOTE_STRING_MODE,
13980 hljs.APOS_STRING_MODE,
13981 {
13982 className: 'meta', begin: '!important'
13983 }
13984 ]
13985 },
13986 {
13987 begin: '@', end: '[{;]',
13988 keywords: 'mixin include extend for if else each while charset import debug media page content font-face namespace warn',
13989 contains: [
13990 VARIABLE,
13991 hljs.QUOTE_STRING_MODE,
13992 hljs.APOS_STRING_MODE,
13993 HEXCOLOR,
13994 hljs.CSS_NUMBER_MODE,
13995 {
13996 begin: '\\s[A-Za-z0-9_.-]+',
13997 relevance: 0
13998 }
13999 ]
14000 }
14001 ]
14002 };
14003}
14004},{name:"smali",create:/*
14005Language: Smali
14006Author: Dennis Titze <dennis.titze@gmail.com>
14007Description: Basic Smali highlighting
14008*/
14009
14010function(hljs) {
14011 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'];
14012 var smali_instr_high_prio = ['aget', 'aput', 'array', 'check', 'execute', 'fill', 'filled', 'goto/16', 'goto/32', 'iget', 'instance', 'invoke', 'iput', 'monitor', 'packed', 'sget', 'sparse'];
14013 var smali_keywords = ['transient', 'constructor', 'abstract', 'final', 'synthetic', 'public', 'private', 'protected', 'static', 'bridge', 'system'];
14014 return {
14015 aliases: ['smali'],
14016 contains: [
14017 {
14018 className: 'string',
14019 begin: '"', end: '"',
14020 relevance: 0
14021 },
14022 hljs.COMMENT(
14023 '#',
14024 '$',
14025 {
14026 relevance: 0
14027 }
14028 ),
14029 {
14030 className: 'keyword',
14031 variants: [
14032 {begin: '\\s*\\.end\\s[a-zA-Z0-9]*'},
14033 {begin: '^[ ]*\\.[a-zA-Z]*', relevance: 0},
14034 {begin: '\\s:[a-zA-Z_0-9]*', relevance: 0},
14035 {begin: '\\s(' + smali_keywords.join('|') + ')'}
14036 ]
14037 },
14038 {
14039 className: 'built_in',
14040 variants : [
14041 {
14042 begin: '\\s('+smali_instr_low_prio.join('|')+')\\s'
14043 },
14044 {
14045 begin: '\\s('+smali_instr_low_prio.join('|')+')((\\-|/)[a-zA-Z0-9]+)+\\s',
14046 relevance: 10
14047 },
14048 {
14049 begin: '\\s('+smali_instr_high_prio.join('|')+')((\\-|/)[a-zA-Z0-9]+)*\\s',
14050 relevance: 10
14051 },
14052 ]
14053 },
14054 {
14055 className: 'class',
14056 begin: 'L[^\(;:\n]*;',
14057 relevance: 0
14058 },
14059 {
14060 begin: '[vp][0-9]+',
14061 }
14062 ]
14063 };
14064}
14065},{name:"smalltalk",create:/*
14066Language: Smalltalk
14067Author: Vladimir Gubarkov <xonixx@gmail.com>
14068*/
14069
14070function(hljs) {
14071 var VAR_IDENT_RE = '[a-z][a-zA-Z0-9_]*';
14072 var CHAR = {
14073 className: 'string',
14074 begin: '\\$.{1}'
14075 };
14076 var SYMBOL = {
14077 className: 'symbol',
14078 begin: '#' + hljs.UNDERSCORE_IDENT_RE
14079 };
14080 return {
14081 aliases: ['st'],
14082 keywords: 'self super nil true false thisContext', // only 6
14083 contains: [
14084 hljs.COMMENT('"', '"'),
14085 hljs.APOS_STRING_MODE,
14086 {
14087 className: 'type',
14088 begin: '\\b[A-Z][A-Za-z0-9_]*',
14089 relevance: 0
14090 },
14091 {
14092 begin: VAR_IDENT_RE + ':',
14093 relevance: 0
14094 },
14095 hljs.C_NUMBER_MODE,
14096 SYMBOL,
14097 CHAR,
14098 {
14099 // This looks more complicated than needed to avoid combinatorial
14100 // explosion under V8. It effectively means `| var1 var2 ... |` with
14101 // whitespace adjacent to `|` being optional.
14102 begin: '\\|[ ]*' + VAR_IDENT_RE + '([ ]+' + VAR_IDENT_RE + ')*[ ]*\\|',
14103 returnBegin: true, end: /\|/,
14104 illegal: /\S/,
14105 contains: [{begin: '(\\|[ ]*)?' + VAR_IDENT_RE}]
14106 },
14107 {
14108 begin: '\\#\\(', end: '\\)',
14109 contains: [
14110 hljs.APOS_STRING_MODE,
14111 CHAR,
14112 hljs.C_NUMBER_MODE,
14113 SYMBOL
14114 ]
14115 }
14116 ]
14117 };
14118}
14119},{name:"sml",create:/*
14120Language: SML
14121Author: Edwin Dalorzo <edwin@dalorzo.org>
14122Description: SML language definition.
14123Origin: ocaml.js
14124Category: functional
14125*/
14126function(hljs) {
14127 return {
14128 aliases: ['ml'],
14129 keywords: {
14130 keyword:
14131 /* according to Definition of Standard ML 97 */
14132 'abstype and andalso as case datatype do else end eqtype ' +
14133 'exception fn fun functor handle if in include infix infixr ' +
14134 'let local nonfix of op open orelse raise rec sharing sig ' +
14135 'signature struct structure then type val with withtype where while',
14136 built_in:
14137 /* built-in types according to basis library */
14138 'array bool char exn int list option order real ref string substring vector unit word',
14139 literal:
14140 'true false NONE SOME LESS EQUAL GREATER nil'
14141 },
14142 illegal: /\/\/|>>/,
14143 lexemes: '[a-z_]\\w*!?',
14144 contains: [
14145 {
14146 className: 'literal',
14147 begin: '\\[(\\|\\|)?\\]|\\(\\)'
14148 },
14149 hljs.COMMENT(
14150 '\\(\\*',
14151 '\\*\\)',
14152 {
14153 contains: ['self']
14154 }
14155 ),
14156 { /* type variable */
14157 className: 'symbol',
14158 begin: '\'[A-Za-z_](?!\')[\\w\']*'
14159 /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */
14160 },
14161 { /* polymorphic variant */
14162 className: 'type',
14163 begin: '`[A-Z][\\w\']*'
14164 },
14165 { /* module or constructor */
14166 className: 'type',
14167 begin: '\\b[A-Z][\\w\']*',
14168 relevance: 0
14169 },
14170 { /* don't color identifiers, but safely catch all identifiers with '*/
14171 begin: '[a-z_]\\w*\'[\\w\']*'
14172 },
14173 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
14174 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
14175 {
14176 className: 'number',
14177 begin:
14178 '\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +
14179 '0[oO][0-7_]+[Lln]?|' +
14180 '0[bB][01_]+[Lln]?|' +
14181 '[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',
14182 relevance: 0
14183 },
14184 {
14185 begin: /[-=]>/ // relevance booster
14186 }
14187 ]
14188 };
14189}
14190},{name:"sqf",create:/*
14191Language: SQF
14192Author: Sรธren Enevoldsen <senevoldsen90@gmail.com>
14193Description: Scripting language for the Arma game series
14194*/
14195
14196function(hljs) {
14197 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'];
14198 var control = ['case', 'catch', 'default', 'do', 'else', 'exit', 'exitWith|5', 'for', 'forEach', 'from', 'if', 'switch', 'then', 'throw', 'to', 'try', 'while', 'with'];
14199 var operators = ['!', '-', '+', '!=', '%', '&&', '*', '/', '=', '==', '>', '>=', '<', '<=', '^', ':', '>>'];
14200 var specials = ['_forEachIndex|10', '_this|10', '_x|10'];
14201 var literals = ['true', 'false', 'nil'];
14202 var builtins = allCommands.filter(function (command) {
14203 return control.indexOf(command) == -1 &&
14204 literals.indexOf(command) == -1 &&
14205 operators.indexOf(command) == -1;
14206 });
14207 //Note: operators will not be treated as builtins due to the lexeme rules
14208 builtins = builtins.concat(specials);
14209
14210 // In SQF strings, quotes matching the start are escaped by adding a consecutive.
14211 // Example of single escaped quotes: " "" " and ' '' '.
14212 var STRINGS = {
14213 className: 'string',
14214 relevance: 0,
14215 variants: [
14216 {
14217 begin: '"',
14218 end: '"',
14219 contains: [{begin: '""'}]
14220 },
14221 {
14222 begin: '\'',
14223 end: '\'',
14224 contains: [{begin: '\'\''}]
14225 }
14226 ]
14227 };
14228
14229 var NUMBERS = {
14230 className: 'number',
14231 begin: hljs.NUMBER_RE,
14232 relevance: 0
14233 };
14234
14235 // Preprocessor definitions borrowed from C++
14236 var PREPROCESSOR_STRINGS = {
14237 className: 'string',
14238 variants: [
14239 hljs.QUOTE_STRING_MODE,
14240 {
14241 begin: '\'\\\\?.', end: '\'',
14242 illegal: '.'
14243 }
14244 ]
14245 };
14246
14247 var PREPROCESSOR = {
14248 className: 'meta',
14249 begin: '#', end: '$',
14250 keywords: {'meta-keyword': 'if else elif endif define undef warning error line ' +
14251 'pragma ifdef ifndef'},
14252 contains: [
14253 {
14254 begin: /\\\n/, relevance: 0
14255 },
14256 {
14257 beginKeywords: 'include', end: '$',
14258 keywords: {'meta-keyword': 'include'},
14259 contains: [
14260 PREPROCESSOR_STRINGS,
14261 {
14262 className: 'meta-string',
14263 begin: '<', end: '>',
14264 illegal: '\\n'
14265 }
14266 ]
14267 },
14268 PREPROCESSOR_STRINGS,
14269 NUMBERS,
14270 hljs.C_LINE_COMMENT_MODE,
14271 hljs.C_BLOCK_COMMENT_MODE
14272 ]
14273 };
14274
14275 return {
14276 aliases: ['sqf'],
14277 case_insensitive: true,
14278 keywords: {
14279 keyword: control.join(' '),
14280 built_in: builtins.join(' '),
14281 literal: literals.join(' ')
14282 },
14283 contains: [
14284 hljs.C_LINE_COMMENT_MODE,
14285 hljs.C_BLOCK_COMMENT_MODE,
14286 NUMBERS,
14287 STRINGS,
14288 PREPROCESSOR
14289 ]
14290 };
14291}
14292},{name:"sql",create:/*
14293 Language: SQL
14294 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>
14295 Category: common
14296 */
14297
14298function(hljs) {
14299 var COMMENT_MODE = hljs.COMMENT('--', '$');
14300 return {
14301 case_insensitive: true,
14302 illegal: /[<>{}*]/,
14303 contains: [
14304 {
14305 beginKeywords:
14306 'begin end start commit rollback savepoint lock alter create drop rename call ' +
14307 'delete do handler insert load replace select truncate update set show pragma grant ' +
14308 'merge describe use explain help declare prepare execute deallocate release ' +
14309 'unlock purge reset change stop analyze cache flush optimize repair kill ' +
14310 'install uninstall checksum restore check backup revoke',
14311 end: /;/, endsWithParent: true,
14312 keywords: {
14313 keyword:
14314 'abort abs absolute acc acce accep accept access accessed accessible account acos action activate add ' +
14315 'addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias ' +
14316 'allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply ' +
14317 'archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan ' +
14318 'atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid ' +
14319 'authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile ' +
14320 'before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float ' +
14321 'binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound ' +
14322 'buffer_cache buffer_pool build bulk by byte byteordermark bytes c cache caching call calling cancel ' +
14323 'capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base ' +
14324 'char_length character_length characters characterset charindex charset charsetform charsetid check ' +
14325 'checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close ' +
14326 'cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation ' +
14327 'collect colu colum column column_value columns columns_updated comment commit compact compatibility ' +
14328 'compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn ' +
14329 'connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection ' +
14330 'consider consistent constant constraint constraints constructor container content contents context ' +
14331 'contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost ' +
14332 'count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation ' +
14333 'critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user ' +
14334 'cursor curtime customdatum cycle d data database databases datafile datafiles datalength date_add ' +
14335 'date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts ' +
14336 'day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate ' +
14337 'declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults ' +
14338 'deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank ' +
14339 'depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor ' +
14340 'deterministic diagnostics difference dimension direct_load directory disable disable_all ' +
14341 'disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div ' +
14342 'do document domain dotnet double downgrade drop dumpfile duplicate duration e each edition editionable ' +
14343 'editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt ' +
14344 'end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors ' +
14345 'escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding ' +
14346 'execu execut execute exempt exists exit exp expire explain export export_set extended extent external ' +
14347 'external_1 external_2 externally extract f failed failed_login_attempts failover failure far fast ' +
14348 'feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final ' +
14349 'finish first first_value fixed flash_cache flashback floor flush following follows for forall force ' +
14350 'form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ' +
14351 'ftp full function g general generated get get_format get_lock getdate getutcdate global global_name ' +
14352 'globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups ' +
14353 'gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex ' +
14354 'hierarchy high high_priority hosts hour http i id ident_current ident_incr ident_seed identified ' +
14355 'identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment ' +
14356 'index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile ' +
14357 'initial initialized initially initrans inmemory inner innodb input insert install instance instantiable ' +
14358 'instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat ' +
14359 'is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists ' +
14360 'k keep keep_duplicates key keys kill l language large last last_day last_insert_id last_value lax lcase ' +
14361 'lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit ' +
14362 'lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate ' +
14363 'locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call ' +
14364 'logoff logon logs long loop low low_priority lower lpad lrtrim ltrim m main make_set makedate maketime ' +
14365 'managed management manual map mapping mask master master_pos_wait match matched materialized max ' +
14366 'maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans ' +
14367 'md5 measures median medium member memcompress memory merge microsecond mid migration min minextents ' +
14368 'minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month ' +
14369 'months mount move movement multiset mutex n name name_const names nan national native natural nav nchar ' +
14370 'nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile ' +
14371 'nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile ' +
14372 'nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder ' +
14373 'nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck ' +
14374 'noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe ' +
14375 'nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ' +
14376 'ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old ' +
14377 'on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date ' +
14378 'oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary ' +
14379 'out outer outfile outline output over overflow overriding p package pad parallel parallel_enable ' +
14380 'parameters parent parse partial partition partitions pascal passing password password_grace_time ' +
14381 'password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex ' +
14382 'pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc ' +
14383 'performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin ' +
14384 'policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction ' +
14385 'prediction_cost prediction_details prediction_probability prediction_set prepare present preserve ' +
14386 'prior priority private private_sga privileges procedural procedure procedure_analyze processlist ' +
14387 'profiles project prompt protection public publishingservername purge quarter query quick quiesce quota ' +
14388 'quotename radians raise rand range rank raw read reads readsize rebuild record records ' +
14389 'recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh ' +
14390 'regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy ' +
14391 'reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename ' +
14392 'repair repeat replace replicate replication required reset resetlogs resize resource respect restore ' +
14393 'restricted result result_cache resumable resume retention return returning returns reuse reverse revoke ' +
14394 'right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows ' +
14395 'rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll ' +
14396 'sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select ' +
14397 'self sequence sequential serializable server servererror session session_user sessions_per_user set ' +
14398 'sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor ' +
14399 'si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin ' +
14400 'size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex ' +
14401 'source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows ' +
14402 'sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone ' +
14403 'standby start starting startup statement static statistics stats_binomial_test stats_crosstab ' +
14404 'stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep ' +
14405 'stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev ' +
14406 'stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate ' +
14407 'subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum ' +
14408 'suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate ' +
14409 'sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime t table tables tablespace tan tdo ' +
14410 'template temporary terminated tertiary_weights test than then thread through tier ties time time_format ' +
14411 'time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr ' +
14412 'timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking ' +
14413 'transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate ' +
14414 'try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress ' +
14415 'under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot ' +
14416 'unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert ' +
14417 'url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date ' +
14418 'utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var ' +
14419 'var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray ' +
14420 'verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear ' +
14421 'wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped ' +
14422 'xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces ' +
14423 'xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek',
14424 literal:
14425 'true false null',
14426 built_in:
14427 'array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number ' +
14428 'numeric real record serial serial8 smallint text varchar varying void'
14429 },
14430 contains: [
14431 {
14432 className: 'string',
14433 begin: '\'', end: '\'',
14434 contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
14435 },
14436 {
14437 className: 'string',
14438 begin: '"', end: '"',
14439 contains: [hljs.BACKSLASH_ESCAPE, {begin: '""'}]
14440 },
14441 {
14442 className: 'string',
14443 begin: '`', end: '`',
14444 contains: [hljs.BACKSLASH_ESCAPE]
14445 },
14446 hljs.C_NUMBER_MODE,
14447 hljs.C_BLOCK_COMMENT_MODE,
14448 COMMENT_MODE
14449 ]
14450 },
14451 hljs.C_BLOCK_COMMENT_MODE,
14452 COMMENT_MODE
14453 ]
14454 };
14455}
14456},{name:"stata",create:/*
14457Language: Stata
14458Author: Brian Quistorff <bquistorff@gmail.com>
14459Contributors: Drew McDonald <drewmcdo@gmail.com>
14460Description: 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.
14461Category: scientific
14462*/
14463
14464function(hljs) {
14465 return {
14466 aliases: ['do', 'ado'],
14467 case_insensitive: true,
14468 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',
14469 contains: [
14470 {
14471 className: 'symbol',
14472 begin: /`[a-zA-Z0-9_]+'/
14473 },
14474 {
14475 className: 'variable',
14476 begin: /\$\{?[a-zA-Z0-9_]+\}?/
14477 },
14478 {
14479 className: 'string',
14480 variants: [
14481 {begin: '`"[^\r\n]*?"\''},
14482 {begin: '"[^\r\n"]*"'}
14483 ]
14484 },
14485
14486 {
14487 className: 'built_in',
14488 variants: [
14489 {
14490 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)(?=\\(|$)'
14491 }
14492 ]
14493 },
14494
14495 hljs.COMMENT('^[ \t]*\\*.*$', false),
14496 hljs.C_LINE_COMMENT_MODE,
14497 hljs.C_BLOCK_COMMENT_MODE
14498 ]
14499 };
14500}
14501},{name:"step21",create:/*
14502Language: STEP Part 21 (ISO 10303-21)
14503Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>
14504Description: Syntax highlighter for STEP Part 21 files (ISO 10303-21).
14505*/
14506
14507function(hljs) {
14508 var STEP21_IDENT_RE = '[A-Z_][A-Z0-9_.]*';
14509 var STEP21_KEYWORDS = {
14510 keyword: 'HEADER ENDSEC DATA'
14511 };
14512 var STEP21_START = {
14513 className: 'meta',
14514 begin: 'ISO-10303-21;',
14515 relevance: 10
14516 };
14517 var STEP21_CLOSE = {
14518 className: 'meta',
14519 begin: 'END-ISO-10303-21;',
14520 relevance: 10
14521 };
14522
14523 return {
14524 aliases: ['p21', 'step', 'stp'],
14525 case_insensitive: true, // STEP 21 is case insensitive in theory, in practice all non-comments are capitalized.
14526 lexemes: STEP21_IDENT_RE,
14527 keywords: STEP21_KEYWORDS,
14528 contains: [
14529 STEP21_START,
14530 STEP21_CLOSE,
14531 hljs.C_LINE_COMMENT_MODE,
14532 hljs.C_BLOCK_COMMENT_MODE,
14533 hljs.COMMENT('/\\*\\*!', '\\*/'),
14534 hljs.C_NUMBER_MODE,
14535 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
14536 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
14537 {
14538 className: 'string',
14539 begin: "'", end: "'"
14540 },
14541 {
14542 className: 'symbol',
14543 variants: [
14544 {
14545 begin: '#', end: '\\d+',
14546 illegal: '\\W'
14547 }
14548 ]
14549 }
14550 ]
14551 };
14552}
14553},{name:"stylus",create:/*
14554Language: Stylus
14555Author: Bryant Williams <b.n.williams@gmail.com>
14556Description: Stylus (https://github.com/LearnBoost/stylus/)
14557Category: css
14558*/
14559
14560function(hljs) {
14561
14562 var VARIABLE = {
14563 className: 'variable',
14564 begin: '\\$' + hljs.IDENT_RE
14565 };
14566
14567 var HEX_COLOR = {
14568 className: 'number',
14569 begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'
14570 };
14571
14572 var AT_KEYWORDS = [
14573 'charset',
14574 'css',
14575 'debug',
14576 'extend',
14577 'font-face',
14578 'for',
14579 'import',
14580 'include',
14581 'media',
14582 'mixin',
14583 'page',
14584 'warn',
14585 'while'
14586 ];
14587
14588 var PSEUDO_SELECTORS = [
14589 'after',
14590 'before',
14591 'first-letter',
14592 'first-line',
14593 'active',
14594 'first-child',
14595 'focus',
14596 'hover',
14597 'lang',
14598 'link',
14599 'visited'
14600 ];
14601
14602 var TAGS = [
14603 'a',
14604 'abbr',
14605 'address',
14606 'article',
14607 'aside',
14608 'audio',
14609 'b',
14610 'blockquote',
14611 'body',
14612 'button',
14613 'canvas',
14614 'caption',
14615 'cite',
14616 'code',
14617 'dd',
14618 'del',
14619 'details',
14620 'dfn',
14621 'div',
14622 'dl',
14623 'dt',
14624 'em',
14625 'fieldset',
14626 'figcaption',
14627 'figure',
14628 'footer',
14629 'form',
14630 'h1',
14631 'h2',
14632 'h3',
14633 'h4',
14634 'h5',
14635 'h6',
14636 'header',
14637 'hgroup',
14638 'html',
14639 'i',
14640 'iframe',
14641 'img',
14642 'input',
14643 'ins',
14644 'kbd',
14645 'label',
14646 'legend',
14647 'li',
14648 'mark',
14649 'menu',
14650 'nav',
14651 'object',
14652 'ol',
14653 'p',
14654 'q',
14655 'quote',
14656 'samp',
14657 'section',
14658 'span',
14659 'strong',
14660 'summary',
14661 'sup',
14662 'table',
14663 'tbody',
14664 'td',
14665 'textarea',
14666 'tfoot',
14667 'th',
14668 'thead',
14669 'time',
14670 'tr',
14671 'ul',
14672 'var',
14673 'video'
14674 ];
14675
14676 var TAG_END = '[\\.\\s\\n\\[\\:,]';
14677
14678 var ATTRIBUTES = [
14679 'align-content',
14680 'align-items',
14681 'align-self',
14682 'animation',
14683 'animation-delay',
14684 'animation-direction',
14685 'animation-duration',
14686 'animation-fill-mode',
14687 'animation-iteration-count',
14688 'animation-name',
14689 'animation-play-state',
14690 'animation-timing-function',
14691 'auto',
14692 'backface-visibility',
14693 'background',
14694 'background-attachment',
14695 'background-clip',
14696 'background-color',
14697 'background-image',
14698 'background-origin',
14699 'background-position',
14700 'background-repeat',
14701 'background-size',
14702 'border',
14703 'border-bottom',
14704 'border-bottom-color',
14705 'border-bottom-left-radius',
14706 'border-bottom-right-radius',
14707 'border-bottom-style',
14708 'border-bottom-width',
14709 'border-collapse',
14710 'border-color',
14711 'border-image',
14712 'border-image-outset',
14713 'border-image-repeat',
14714 'border-image-slice',
14715 'border-image-source',
14716 'border-image-width',
14717 'border-left',
14718 'border-left-color',
14719 'border-left-style',
14720 'border-left-width',
14721 'border-radius',
14722 'border-right',
14723 'border-right-color',
14724 'border-right-style',
14725 'border-right-width',
14726 'border-spacing',
14727 'border-style',
14728 'border-top',
14729 'border-top-color',
14730 'border-top-left-radius',
14731 'border-top-right-radius',
14732 'border-top-style',
14733 'border-top-width',
14734 'border-width',
14735 'bottom',
14736 'box-decoration-break',
14737 'box-shadow',
14738 'box-sizing',
14739 'break-after',
14740 'break-before',
14741 'break-inside',
14742 'caption-side',
14743 'clear',
14744 'clip',
14745 'clip-path',
14746 'color',
14747 'column-count',
14748 'column-fill',
14749 'column-gap',
14750 'column-rule',
14751 'column-rule-color',
14752 'column-rule-style',
14753 'column-rule-width',
14754 'column-span',
14755 'column-width',
14756 'columns',
14757 'content',
14758 'counter-increment',
14759 'counter-reset',
14760 'cursor',
14761 'direction',
14762 'display',
14763 'empty-cells',
14764 'filter',
14765 'flex',
14766 'flex-basis',
14767 'flex-direction',
14768 'flex-flow',
14769 'flex-grow',
14770 'flex-shrink',
14771 'flex-wrap',
14772 'float',
14773 'font',
14774 'font-family',
14775 'font-feature-settings',
14776 'font-kerning',
14777 'font-language-override',
14778 'font-size',
14779 'font-size-adjust',
14780 'font-stretch',
14781 'font-style',
14782 'font-variant',
14783 'font-variant-ligatures',
14784 'font-weight',
14785 'height',
14786 'hyphens',
14787 'icon',
14788 'image-orientation',
14789 'image-rendering',
14790 'image-resolution',
14791 'ime-mode',
14792 'inherit',
14793 'initial',
14794 'justify-content',
14795 'left',
14796 'letter-spacing',
14797 'line-height',
14798 'list-style',
14799 'list-style-image',
14800 'list-style-position',
14801 'list-style-type',
14802 'margin',
14803 'margin-bottom',
14804 'margin-left',
14805 'margin-right',
14806 'margin-top',
14807 'marks',
14808 'mask',
14809 'max-height',
14810 'max-width',
14811 'min-height',
14812 'min-width',
14813 'nav-down',
14814 'nav-index',
14815 'nav-left',
14816 'nav-right',
14817 'nav-up',
14818 'none',
14819 'normal',
14820 'object-fit',
14821 'object-position',
14822 'opacity',
14823 'order',
14824 'orphans',
14825 'outline',
14826 'outline-color',
14827 'outline-offset',
14828 'outline-style',
14829 'outline-width',
14830 'overflow',
14831 'overflow-wrap',
14832 'overflow-x',
14833 'overflow-y',
14834 'padding',
14835 'padding-bottom',
14836 'padding-left',
14837 'padding-right',
14838 'padding-top',
14839 'page-break-after',
14840 'page-break-before',
14841 'page-break-inside',
14842 'perspective',
14843 'perspective-origin',
14844 'pointer-events',
14845 'position',
14846 'quotes',
14847 'resize',
14848 'right',
14849 'tab-size',
14850 'table-layout',
14851 'text-align',
14852 'text-align-last',
14853 'text-decoration',
14854 'text-decoration-color',
14855 'text-decoration-line',
14856 'text-decoration-style',
14857 'text-indent',
14858 'text-overflow',
14859 'text-rendering',
14860 'text-shadow',
14861 'text-transform',
14862 'text-underline-position',
14863 'top',
14864 'transform',
14865 'transform-origin',
14866 'transform-style',
14867 'transition',
14868 'transition-delay',
14869 'transition-duration',
14870 'transition-property',
14871 'transition-timing-function',
14872 'unicode-bidi',
14873 'vertical-align',
14874 'visibility',
14875 'white-space',
14876 'widows',
14877 'width',
14878 'word-break',
14879 'word-spacing',
14880 'word-wrap',
14881 'z-index'
14882 ];
14883
14884 // illegals
14885 var ILLEGAL = [
14886 '\\{',
14887 '\\}',
14888 '\\?',
14889 '(\\bReturn\\b)', // monkey
14890 '(\\bEnd\\b)', // monkey
14891 '(\\bend\\b)', // vbscript
14892 ';', // sql
14893 '#\\s', // markdown
14894 '\\*\\s', // markdown
14895 '===\\s', // markdown
14896 '\\|',
14897 '%', // prolog
14898 ];
14899
14900 return {
14901 aliases: ['styl'],
14902 case_insensitive: false,
14903 illegal: '(' + ILLEGAL.join('|') + ')',
14904 keywords: 'if else for in',
14905 contains: [
14906
14907 // strings
14908 hljs.QUOTE_STRING_MODE,
14909 hljs.APOS_STRING_MODE,
14910
14911 // comments
14912 hljs.C_LINE_COMMENT_MODE,
14913 hljs.C_BLOCK_COMMENT_MODE,
14914
14915 // hex colors
14916 HEX_COLOR,
14917
14918 // class tag
14919 {
14920 begin: '\\.[a-zA-Z][a-zA-Z0-9_-]*' + TAG_END,
14921 returnBegin: true,
14922 contains: [
14923 {className: 'selector-class', begin: '\\.[a-zA-Z][a-zA-Z0-9_-]*'}
14924 ]
14925 },
14926
14927 // id tag
14928 {
14929 begin: '\\#[a-zA-Z][a-zA-Z0-9_-]*' + TAG_END,
14930 returnBegin: true,
14931 contains: [
14932 {className: 'selector-id', begin: '\\#[a-zA-Z][a-zA-Z0-9_-]*'}
14933 ]
14934 },
14935
14936 // tags
14937 {
14938 begin: '\\b(' + TAGS.join('|') + ')' + TAG_END,
14939 returnBegin: true,
14940 contains: [
14941 {className: 'selector-tag', begin: '\\b[a-zA-Z][a-zA-Z0-9_-]*'}
14942 ]
14943 },
14944
14945 // psuedo selectors
14946 {
14947 begin: '&?:?:\\b(' + PSEUDO_SELECTORS.join('|') + ')' + TAG_END
14948 },
14949
14950 // @ keywords
14951 {
14952 begin: '\@(' + AT_KEYWORDS.join('|') + ')\\b'
14953 },
14954
14955 // variables
14956 VARIABLE,
14957
14958 // dimension
14959 hljs.CSS_NUMBER_MODE,
14960
14961 // number
14962 hljs.NUMBER_MODE,
14963
14964 // functions
14965 // - only from beginning of line + whitespace
14966 {
14967 className: 'function',
14968 begin: '^[a-zA-Z][a-zA-Z0-9_\-]*\\(.*\\)',
14969 illegal: '[\\n]',
14970 returnBegin: true,
14971 contains: [
14972 {className: 'title', begin: '\\b[a-zA-Z][a-zA-Z0-9_\-]*'},
14973 {
14974 className: 'params',
14975 begin: /\(/,
14976 end: /\)/,
14977 contains: [
14978 HEX_COLOR,
14979 VARIABLE,
14980 hljs.APOS_STRING_MODE,
14981 hljs.CSS_NUMBER_MODE,
14982 hljs.NUMBER_MODE,
14983 hljs.QUOTE_STRING_MODE
14984 ]
14985 }
14986 ]
14987 },
14988
14989 // attributes
14990 // - only from beginning of line + whitespace
14991 // - must have whitespace after it
14992 {
14993 className: 'attribute',
14994 begin: '\\b(' + ATTRIBUTES.reverse().join('|') + ')\\b'
14995 }
14996 ]
14997 };
14998}
14999},{name:"swift",create:/*
15000Language: Swift
15001Author: Chris Eidhof <chris@eidhof.nl>
15002Contributors: Nate Cook <natecook@gmail.com>
15003Category: system
15004*/
15005
15006
15007function(hljs) {
15008 var SWIFT_KEYWORDS = {
15009 keyword: '__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity ' +
15010 'break case catch class continue convenience default defer deinit didSet do ' +
15011 'dynamic dynamicType else enum extension fallthrough false final for func ' +
15012 'get guard if import in indirect infix init inout internal is lazy left let ' +
15013 'mutating nil none nonmutating operator optional override postfix precedence ' +
15014 'prefix private protocol Protocol public repeat required rethrows return ' +
15015 'right self Self set static struct subscript super switch throw throws true ' +
15016 'try try! try? Type typealias unowned var weak where while willSet',
15017 literal: 'true false nil',
15018 built_in: 'abs advance alignof alignofValue anyGenerator assert assertionFailure ' +
15019 'bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC ' +
15020 'bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros ' +
15021 'debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords ' +
15022 'enumerate equal fatalError filter find getBridgedObjectiveCType getVaList ' +
15023 'indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC ' +
15024 'isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare ' +
15025 'map max maxElement min minElement numericCast overlaps partition posix ' +
15026 'precondition preconditionFailure print println quickSort readLine reduce reflect ' +
15027 'reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split ' +
15028 'startsWith stride strideof strideofValue swap toString transcode ' +
15029 'underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap ' +
15030 'unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer ' +
15031 'withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers ' +
15032 'withUnsafePointer withUnsafePointers withVaList zip'
15033 };
15034
15035 var TYPE = {
15036 className: 'type',
15037 begin: '\\b[A-Z][\\w\']*',
15038 relevance: 0
15039 };
15040 var BLOCK_COMMENT = hljs.COMMENT(
15041 '/\\*',
15042 '\\*/',
15043 {
15044 contains: ['self']
15045 }
15046 );
15047 var SUBST = {
15048 className: 'subst',
15049 begin: /\\\(/, end: '\\)',
15050 keywords: SWIFT_KEYWORDS,
15051 contains: [] // assigned later
15052 };
15053 var NUMBERS = {
15054 className: 'number',
15055 begin: '\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b',
15056 relevance: 0
15057 };
15058 var QUOTE_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, {
15059 contains: [SUBST, hljs.BACKSLASH_ESCAPE]
15060 });
15061 SUBST.contains = [NUMBERS];
15062
15063 return {
15064 keywords: SWIFT_KEYWORDS,
15065 contains: [
15066 QUOTE_STRING_MODE,
15067 hljs.C_LINE_COMMENT_MODE,
15068 BLOCK_COMMENT,
15069 TYPE,
15070 NUMBERS,
15071 {
15072 className: 'function',
15073 beginKeywords: 'func', end: '{', excludeEnd: true,
15074 contains: [
15075 hljs.inherit(hljs.TITLE_MODE, {
15076 begin: /[A-Za-z$_][0-9A-Za-z$_]*/,
15077 illegal: /\(/
15078 }),
15079 {
15080 begin: /</, end: />/,
15081 illegal: />/
15082 },
15083 {
15084 className: 'params',
15085 begin: /\(/, end: /\)/, endsParent: true,
15086 keywords: SWIFT_KEYWORDS,
15087 contains: [
15088 'self',
15089 NUMBERS,
15090 QUOTE_STRING_MODE,
15091 hljs.C_BLOCK_COMMENT_MODE,
15092 {begin: ':'} // relevance booster
15093 ],
15094 illegal: /["']/
15095 }
15096 ],
15097 illegal: /\[|%/
15098 },
15099 {
15100 className: 'class',
15101 beginKeywords: 'struct protocol class extension enum',
15102 keywords: SWIFT_KEYWORDS,
15103 end: '\\{',
15104 excludeEnd: true,
15105 contains: [
15106 hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/})
15107 ]
15108 },
15109 {
15110 className: 'meta', // @attributes
15111 begin: '(@warn_unused_result|@exported|@lazy|@noescape|' +
15112 '@NSCopying|@NSManaged|@objc|@convention|@required|' +
15113 '@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|' +
15114 '@infix|@prefix|@postfix|@autoclosure|@testable|@available|' +
15115 '@nonobjc|@NSApplicationMain|@UIApplicationMain)'
15116
15117 },
15118 {
15119 beginKeywords: 'import', end: /$/,
15120 contains: [hljs.C_LINE_COMMENT_MODE, BLOCK_COMMENT]
15121 }
15122 ]
15123 };
15124}
15125},{name:"tcl",create:/*
15126Language: Tcl
15127Author: Radek Liska <radekliska@gmail.com>
15128*/
15129
15130function(hljs) {
15131 return {
15132 aliases: ['tk'],
15133 keywords: 'after append apply array auto_execok auto_import auto_load auto_mkindex ' +
15134 'auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock ' +
15135 'close concat continue dde dict encoding eof error eval exec exit expr fblocked ' +
15136 'fconfigure fcopy file fileevent filename flush for foreach format gets glob global ' +
15137 'history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list ' +
15138 'llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 '+
15139 'mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex '+
15140 'platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename '+
15141 'return safe scan seek set socket source split string subst switch tcl_endOfWord '+
15142 'tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter '+
15143 'tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update '+
15144 'uplevel upvar variable vwait while',
15145 contains: [
15146 hljs.COMMENT(';[ \\t]*#', '$'),
15147 hljs.COMMENT('^[ \\t]*#', '$'),
15148 {
15149 beginKeywords: 'proc',
15150 end: '[\\{]',
15151 excludeEnd: true,
15152 contains: [
15153 {
15154 className: 'title',
15155 begin: '[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',
15156 end: '[ \\t\\n\\r]',
15157 endsWithParent: true,
15158 excludeEnd: true
15159 }
15160 ]
15161 },
15162 {
15163 excludeEnd: true,
15164 variants: [
15165 {
15166 begin: '\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)',
15167 end: '[^a-zA-Z0-9_\\}\\$]'
15168 },
15169 {
15170 begin: '\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',
15171 end: '(\\))?[^a-zA-Z0-9_\\}\\$]'
15172 }
15173 ]
15174 },
15175 {
15176 className: 'string',
15177 contains: [hljs.BACKSLASH_ESCAPE],
15178 variants: [
15179 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
15180 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
15181 ]
15182 },
15183 {
15184 className: 'number',
15185 variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]
15186 }
15187 ]
15188 }
15189}
15190},{name:"tex",create:/*
15191Language: TeX
15192Author: Vladimir Moskva <vladmos@gmail.com>
15193Website: http://fulc.ru/
15194Category: markup
15195*/
15196
15197function(hljs) {
15198 var COMMAND = {
15199 className: 'tag',
15200 begin: /\\/,
15201 relevance: 0,
15202 contains: [
15203 {
15204 className: 'name',
15205 variants: [
15206 {begin: /[a-zA-Zะฐ-ัะ-ั]+[*]?/},
15207 {begin: /[^a-zA-Zะฐ-ัะ-ั0-9]/}
15208 ],
15209 starts: {
15210 endsWithParent: true,
15211 relevance: 0,
15212 contains: [
15213 {
15214 className: 'string', // because it looks like attributes in HTML tags
15215 variants: [
15216 {begin: /\[/, end: /\]/},
15217 {begin: /\{/, end: /\}/}
15218 ]
15219 },
15220 {
15221 begin: /\s*=\s*/, endsWithParent: true,
15222 relevance: 0,
15223 contains: [
15224 {
15225 className: 'number',
15226 begin: /-?\d*\.?\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?/
15227 }
15228 ]
15229 }
15230 ]
15231 }
15232 }
15233 ]
15234 };
15235
15236 return {
15237 contains: [
15238 COMMAND,
15239 {
15240 className: 'formula',
15241 contains: [COMMAND],
15242 relevance: 0,
15243 variants: [
15244 {begin: /\$\$/, end: /\$\$/},
15245 {begin: /\$/, end: /\$/}
15246 ]
15247 },
15248 hljs.COMMENT(
15249 '%',
15250 '$',
15251 {
15252 relevance: 0
15253 }
15254 )
15255 ]
15256 };
15257}
15258},{name:"thrift",create:/*
15259Language: Thrift
15260Author: Oleg Efimov <efimovov@gmail.com>
15261Description: Thrift message definition format
15262Category: protocols
15263*/
15264
15265function(hljs) {
15266 var BUILT_IN_TYPES = 'bool byte i16 i32 i64 double string binary';
15267 return {
15268 keywords: {
15269 keyword:
15270 'namespace const typedef struct enum service exception void oneway set list map required optional',
15271 built_in:
15272 BUILT_IN_TYPES,
15273 literal:
15274 'true false'
15275 },
15276 contains: [
15277 hljs.QUOTE_STRING_MODE,
15278 hljs.NUMBER_MODE,
15279 hljs.C_LINE_COMMENT_MODE,
15280 hljs.C_BLOCK_COMMENT_MODE,
15281 {
15282 className: 'class',
15283 beginKeywords: 'struct enum service exception', end: /\{/,
15284 illegal: /\n/,
15285 contains: [
15286 hljs.inherit(hljs.TITLE_MODE, {
15287 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
15288 })
15289 ]
15290 },
15291 {
15292 begin: '\\b(set|list|map)\\s*<', end: '>',
15293 keywords: BUILT_IN_TYPES,
15294 contains: ['self']
15295 }
15296 ]
15297 };
15298}
15299},{name:"tp",create:/*
15300Language: TP
15301Author: Jay Strybis <jay.strybis@gmail.com>
15302Description: FANUC TP programming language (TPP).
15303*/
15304
15305
15306function(hljs) {
15307 var TPID = {
15308 className: 'number',
15309 begin: '[1-9][0-9]*', /* no leading zeros */
15310 relevance: 0
15311 };
15312 var TPLABEL = {
15313 className: 'symbol',
15314 begin: ':[^\\]]+'
15315 };
15316 var TPDATA = {
15317 className: 'built_in',
15318 begin: '(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|\
15319 TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[', end: '\\]',
15320 contains: [
15321 'self',
15322 TPID,
15323 TPLABEL
15324 ]
15325 };
15326 var TPIO = {
15327 className: 'built_in',
15328 begin: '(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[', end: '\\]',
15329 contains: [
15330 'self',
15331 TPID,
15332 hljs.QUOTE_STRING_MODE, /* for pos section at bottom */
15333 TPLABEL
15334 ]
15335 };
15336
15337 return {
15338 keywords: {
15339 keyword:
15340 'ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB ' +
15341 'DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC ' +
15342 'IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE ' +
15343 'PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET ' +
15344 'Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN ' +
15345 'SUBSTR FINDSTR VOFFSET PROG ATTR MN POS',
15346 literal:
15347 'ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET'
15348 },
15349 contains: [
15350 TPDATA,
15351 TPIO,
15352 {
15353 className: 'keyword',
15354 begin: '/(PROG|ATTR|MN|POS|END)\\b'
15355 },
15356 {
15357 /* this is for cases like ,CALL */
15358 className: 'keyword',
15359 begin: '(CALL|RUN|POINT_LOGIC|LBL)\\b'
15360 },
15361 {
15362 /* this is for cases like CNT100 where the default lexemes do not
15363 * separate the keyword and the number */
15364 className: 'keyword',
15365 begin: '\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)'
15366 },
15367 {
15368 /* to catch numbers that do not have a word boundary on the left */
15369 className: 'number',
15370 begin: '\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b',
15371 relevance: 0
15372 },
15373 hljs.COMMENT('//', '[;$]'),
15374 hljs.COMMENT('!', '[;$]'),
15375 hljs.COMMENT('--eg:', '$'),
15376 hljs.QUOTE_STRING_MODE,
15377 {
15378 className: 'string',
15379 begin: '\'', end: '\''
15380 },
15381 hljs.C_NUMBER_MODE,
15382 {
15383 className: 'variable',
15384 begin: '\\$[A-Za-z0-9_]+'
15385 }
15386 ]
15387 };
15388}
15389},{name:"twig",create:/*
15390Language: Twig
15391Requires: xml.js
15392Author: Luke Holder <lukemh@gmail.com>
15393Description: Twig is a templating language for PHP
15394Category: template
15395*/
15396
15397function(hljs) {
15398 var PARAMS = {
15399 className: 'params',
15400 begin: '\\(', end: '\\)'
15401 };
15402
15403 var FUNCTION_NAMES = 'attribute block constant cycle date dump include ' +
15404 'max min parent random range source template_from_string';
15405
15406 var FUNCTIONS = {
15407 beginKeywords: FUNCTION_NAMES,
15408 keywords: {name: FUNCTION_NAMES},
15409 relevance: 0,
15410 contains: [
15411 PARAMS
15412 ]
15413 };
15414
15415 var FILTER = {
15416 begin: /\|[A-Za-z_]+:?/,
15417 keywords:
15418 'abs batch capitalize convert_encoding date date_modify default ' +
15419 'escape first format join json_encode keys last length lower ' +
15420 'merge nl2br number_format raw replace reverse round slice sort split ' +
15421 'striptags title trim upper url_encode',
15422 contains: [
15423 FUNCTIONS
15424 ]
15425 };
15426
15427 var TAGS = 'autoescape block do embed extends filter flush for ' +
15428 'if import include macro sandbox set spaceless use verbatim';
15429
15430 TAGS = TAGS + ' ' + TAGS.split(' ').map(function(t){return 'end' + t}).join(' ');
15431
15432 return {
15433 aliases: ['craftcms'],
15434 case_insensitive: true,
15435 subLanguage: 'xml',
15436 contains: [
15437 hljs.COMMENT(/\{#/, /#}/),
15438 {
15439 className: 'template-tag',
15440 begin: /\{%/, end: /%}/,
15441 contains: [
15442 {
15443 className: 'name',
15444 begin: /\w+/,
15445 keywords: TAGS,
15446 starts: {
15447 endsWithParent: true,
15448 contains: [FILTER, FUNCTIONS],
15449 relevance: 0
15450 }
15451 }
15452 ]
15453 },
15454 {
15455 className: 'template-variable',
15456 begin: /\{\{/, end: /}}/,
15457 contains: ['self', FILTER, FUNCTIONS]
15458 }
15459 ]
15460 };
15461}
15462},{name:"typescript",create:/*
15463Language: TypeScript
15464Author: Panu Horsmalahti <panu.horsmalahti@iki.fi>
15465Description: TypeScript is a strict superset of JavaScript
15466Category: scripting
15467*/
15468
15469function(hljs) {
15470 var KEYWORDS = {
15471 keyword:
15472 'in if for while finally var new function do return void else break catch ' +
15473 'instanceof with throw case default try this switch continue typeof delete ' +
15474 'let yield const class public private protected get set super ' +
15475 'static implements enum export import declare type namespace abstract',
15476 literal:
15477 'true false null undefined NaN Infinity',
15478 built_in:
15479 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +
15480 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +
15481 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +
15482 'TypeError URIError Number Math Date String RegExp Array Float32Array ' +
15483 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +
15484 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +
15485 'module console window document any number boolean string void'
15486 };
15487
15488 return {
15489 aliases: ['ts'],
15490 keywords: KEYWORDS,
15491 contains: [
15492 {
15493 className: 'meta',
15494 begin: /^\s*['"]use strict['"]/
15495 },
15496 hljs.APOS_STRING_MODE,
15497 hljs.QUOTE_STRING_MODE,
15498 { // template string
15499 className: 'string',
15500 begin: '`', end: '`',
15501 contains: [
15502 hljs.BACKSLASH_ESCAPE,
15503 {
15504 className: 'subst',
15505 begin: '\\$\\{', end: '\\}'
15506 }
15507 ]
15508 },
15509 hljs.C_LINE_COMMENT_MODE,
15510 hljs.C_BLOCK_COMMENT_MODE,
15511 {
15512 className: 'number',
15513 variants: [
15514 { begin: '\\b(0[bB][01]+)' },
15515 { begin: '\\b(0[oO][0-7]+)' },
15516 { begin: hljs.C_NUMBER_RE }
15517 ],
15518 relevance: 0
15519 },
15520 { // "value" container
15521 begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
15522 keywords: 'return throw case',
15523 contains: [
15524 hljs.C_LINE_COMMENT_MODE,
15525 hljs.C_BLOCK_COMMENT_MODE,
15526 hljs.REGEXP_MODE
15527 ],
15528 relevance: 0
15529 },
15530 {
15531 className: 'function',
15532 begin: 'function', end: /[\{;]/, excludeEnd: true,
15533 keywords: KEYWORDS,
15534 contains: [
15535 'self',
15536 hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}),
15537 {
15538 className: 'params',
15539 begin: /\(/, end: /\)/,
15540 excludeBegin: true,
15541 excludeEnd: true,
15542 keywords: KEYWORDS,
15543 contains: [
15544 hljs.C_LINE_COMMENT_MODE,
15545 hljs.C_BLOCK_COMMENT_MODE
15546 ],
15547 illegal: /["'\(]/
15548 }
15549 ],
15550 illegal: /\[|%/,
15551 relevance: 0 // () => {} is more typical in TypeScript
15552 },
15553 {
15554 beginKeywords: 'constructor', end: /\{/, excludeEnd: true
15555 },
15556 {
15557 beginKeywords: 'module', end: /\{/, excludeEnd: true
15558 },
15559 {
15560 beginKeywords: 'interface', end: /\{/, excludeEnd: true,
15561 keywords: 'interface extends'
15562 },
15563 {
15564 begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
15565 },
15566 {
15567 begin: '\\.' + hljs.IDENT_RE, relevance: 0 // hack: prevents detection of keywords after dots
15568 }
15569 ]
15570 };
15571}
15572},{name:"vala",create:/*
15573Language: Vala
15574Author: Antono Vasiljev <antono.vasiljev@gmail.com>
15575Description: 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.
15576*/
15577
15578function(hljs) {
15579 return {
15580 keywords: {
15581 keyword:
15582 // Value types
15583 'char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 ' +
15584 'uint16 uint32 uint64 float double bool struct enum string void ' +
15585 // Reference types
15586 'weak unowned owned ' +
15587 // Modifiers
15588 'async signal static abstract interface override ' +
15589 // Control Structures
15590 'while do for foreach else switch case break default return try catch ' +
15591 // Visibility
15592 'public private protected internal ' +
15593 // Other
15594 'using new this get set const stdout stdin stderr var',
15595 built_in:
15596 'DBus GLib CCode Gee Object',
15597 literal:
15598 'false true null'
15599 },
15600 contains: [
15601 {
15602 className: 'class',
15603 beginKeywords: 'class interface delegate namespace', end: '{', excludeEnd: true,
15604 illegal: '[^,:\\n\\s\\.]',
15605 contains: [
15606 hljs.UNDERSCORE_TITLE_MODE
15607 ]
15608 },
15609 hljs.C_LINE_COMMENT_MODE,
15610 hljs.C_BLOCK_COMMENT_MODE,
15611 {
15612 className: 'string',
15613 begin: '"""', end: '"""',
15614 relevance: 5
15615 },
15616 hljs.APOS_STRING_MODE,
15617 hljs.QUOTE_STRING_MODE,
15618 hljs.C_NUMBER_MODE,
15619 {
15620 className: 'meta',
15621 begin: '^#', end: '$',
15622 relevance: 2
15623 }
15624 ]
15625 };
15626}
15627},{name:"vbnet",create:/*
15628Language: VB.NET
15629Author: Poren Chiang <ren.chiang@gmail.com>
15630*/
15631
15632function(hljs) {
15633 return {
15634 aliases: ['vb'],
15635 case_insensitive: true,
15636 keywords: {
15637 keyword:
15638 'addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval ' + /* a-b */
15639 'call case catch class compare const continue custom declare default delegate dim distinct do ' + /* c-d */
15640 'each equals else elseif end enum erase error event exit explicit finally for friend from function ' + /* e-f */
15641 'get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue ' + /* g-i */
15642 'join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass ' + /* j-m */
15643 'namespace narrowing new next not notinheritable notoverridable ' + /* n */
15644 'of off on operator option optional or order orelse overloads overridable overrides ' + /* o */
15645 'paramarray partial preserve private property protected public ' + /* p */
15646 'raiseevent readonly redim rem removehandler resume return ' + /* r */
15647 'select set shadows shared skip static step stop structure strict sub synclock ' + /* s */
15648 'take text then throw to try unicode until using when where while widening with withevents writeonly xor', /* t-x */
15649 built_in:
15650 'boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype ' + /* b-c */
15651 'date decimal directcast double gettype getxmlnamespace iif integer long object ' + /* d-o */
15652 'sbyte short single string trycast typeof uinteger ulong ushort', /* s-u */
15653 literal:
15654 'true false nothing'
15655 },
15656 illegal: '//|{|}|endif|gosub|variant|wend', /* reserved deprecated keywords */
15657 contains: [
15658 hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '""'}]}),
15659 hljs.COMMENT(
15660 '\'',
15661 '$',
15662 {
15663 returnBegin: true,
15664 contains: [
15665 {
15666 className: 'doctag',
15667 begin: '\'\'\'|<!--|-->',
15668 contains: [hljs.PHRASAL_WORDS_MODE]
15669 },
15670 {
15671 className: 'doctag',
15672 begin: '</?', end: '>',
15673 contains: [hljs.PHRASAL_WORDS_MODE]
15674 }
15675 ]
15676 }
15677 ),
15678 hljs.C_NUMBER_MODE,
15679 {
15680 className: 'meta',
15681 begin: '#', end: '$',
15682 keywords: {'meta-keyword': 'if else elseif end region externalsource'}
15683 }
15684 ]
15685 };
15686}
15687},{name:"vbscript-html",create:/*
15688Language: VBScript in HTML
15689Requires: xml.js, vbscript.js
15690Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
15691Description: "Bridge" language defining fragments of VBScript in HTML within <% .. %>
15692Category: scripting
15693*/
15694
15695function(hljs) {
15696 return {
15697 subLanguage: 'xml',
15698 contains: [
15699 {
15700 begin: '<%', end: '%>',
15701 subLanguage: 'vbscript'
15702 }
15703 ]
15704 };
15705}
15706},{name:"vbscript",create:/*
15707Language: VBScript
15708Author: Nikita Ledyaev <lenikita@yandex.ru>
15709Contributors: Michal Gabrukiewicz <mgabru@gmail.com>
15710Category: scripting
15711*/
15712
15713function(hljs) {
15714 return {
15715 aliases: ['vbs'],
15716 case_insensitive: true,
15717 keywords: {
15718 keyword:
15719 'call class const dim do loop erase execute executeglobal exit for each next function ' +
15720 'if then else on error option explicit new private property let get public randomize ' +
15721 'redim rem select case set stop sub while wend with end to elseif is or xor and not ' +
15722 'class_initialize class_terminate default preserve in me byval byref step resume goto',
15723 built_in:
15724 'lcase month vartype instrrev ubound setlocale getobject rgb getref string ' +
15725 'weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency ' +
15726 'conversions csng timevalue second year space abs clng timeserial fixs len asc ' +
15727 'isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate ' +
15728 'instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex ' +
15729 'chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim ' +
15730 'strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion ' +
15731 'scriptengine split scriptengineminorversion cint sin datepart ltrim sqr ' +
15732 'scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw ' +
15733 'chrw regexp server response request cstr err',
15734 literal:
15735 'true false null nothing empty'
15736 },
15737 illegal: '//',
15738 contains: [
15739 hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '""'}]}),
15740 hljs.COMMENT(
15741 /'/,
15742 /$/,
15743 {
15744 relevance: 0
15745 }
15746 ),
15747 hljs.C_NUMBER_MODE
15748 ]
15749 };
15750}
15751},{name:"verilog",create:/*
15752Language: Verilog
15753Author: Jon Evans <jon@craftyjon.com>
15754Description: 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.
15755*/
15756
15757function(hljs) {
15758 return {
15759 aliases: ['v'],
15760 case_insensitive: true,
15761 keywords: {
15762 keyword:
15763 'always and assign begin buf bufif0 bufif1 case casex casez cmos deassign ' +
15764 'default defparam disable edge else end endcase endfunction endmodule ' +
15765 'endprimitive endspecify endtable endtask event for force forever fork ' +
15766 'function if ifnone initial inout input join macromodule module nand ' +
15767 'negedge nmos nor not notif0 notif1 or output parameter pmos posedge ' +
15768 'primitive pulldown pullup rcmos release repeat rnmos rpmos rtran ' +
15769 'rtranif0 rtranif1 specify specparam table task timescale tran ' +
15770 'tranif0 tranif1 wait while xnor xor ' +
15771 // types
15772 'highz0 highz1 integer large medium pull0 pull1 real realtime reg ' +
15773 'scalared signed small strong0 strong1 supply0 supply0 supply1 supply1 ' +
15774 'time tri tri0 tri1 triand trior trireg vectored wand weak0 weak1 wire wor'
15775 },
15776 contains: [
15777 hljs.C_BLOCK_COMMENT_MODE,
15778 hljs.C_LINE_COMMENT_MODE,
15779 hljs.QUOTE_STRING_MODE,
15780 {
15781 className: 'number',
15782 begin: '\\b(\\d+\'(b|h|o|d|B|H|O|D))?[0-9xzXZ]+',
15783 contains: [hljs.BACKSLASH_ESCAPE],
15784 relevance: 0
15785 },
15786 /* parameters to instances */
15787 {
15788 className: 'variable',
15789 begin: '#\\((?!parameter).+\\)'
15790 }
15791 ]
15792 }; // return
15793}
15794},{name:"vhdl",create:/*
15795Language: VHDL
15796Author: Igor Kalnitsky <igor@kalnitsky.org>
15797Contributors: Daniel C.K. Kho <daniel.kho@gmail.com>, Guillaume Savaton <guillaume.savaton@eseo.fr>
15798Description: VHDL is a hardware description language used in electronic design automation to describe digital and mixed-signal systems.
15799*/
15800
15801function(hljs) {
15802 // Regular expression for VHDL numeric literals.
15803
15804 // Decimal literal:
15805 var INTEGER_RE = '\\d(_|\\d)*';
15806 var EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;
15807 var DECIMAL_LITERAL_RE = INTEGER_RE + '(\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';
15808 // Based literal:
15809 var BASED_INTEGER_RE = '\\w+';
15810 var BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';
15811
15812 var NUMBER_RE = '\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';
15813
15814 return {
15815 case_insensitive: true,
15816 keywords: {
15817 keyword:
15818 'abs access after alias all and architecture array assert attribute begin block ' +
15819 'body buffer bus case component configuration constant context cover disconnect ' +
15820 'downto default else elsif end entity exit fairness file for force function generate ' +
15821 'generic group guarded if impure in inertial inout is label library linkage literal ' +
15822 'loop map mod nand new next nor not null of on open or others out package port ' +
15823 'postponed procedure process property protected pure range record register reject ' +
15824 'release rem report restrict restrict_guarantee return rol ror select sequence ' +
15825 'severity shared signal sla sll sra srl strong subtype then to transport type ' +
15826 'unaffected units until use variable vmode vprop vunit wait when while with xnor xor',
15827 built_in:
15828 'boolean bit character severity_level integer time delay_length natural positive ' +
15829 'string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector ' +
15830 'std_logic std_logic_vector unsigned signed boolean_vector integer_vector ' +
15831 'real_vector time_vector'
15832 },
15833 illegal: '{',
15834 contains: [
15835 hljs.C_BLOCK_COMMENT_MODE, // VHDL-2008 block commenting.
15836 hljs.COMMENT('--', '$'),
15837 hljs.QUOTE_STRING_MODE,
15838 {
15839 className: 'number',
15840 begin: NUMBER_RE,
15841 relevance: 0
15842 },
15843 {
15844 className: 'literal',
15845 begin: '\'(U|X|0|1|Z|W|L|H|-)\'',
15846 contains: [hljs.BACKSLASH_ESCAPE]
15847 },
15848 {
15849 className: 'symbol',
15850 begin: '\'[A-Za-z](_?[A-Za-z0-9])*',
15851 contains: [hljs.BACKSLASH_ESCAPE]
15852 }
15853 ]
15854 };
15855}
15856},{name:"vim",create:/*
15857Language: Vim Script
15858Author: Jun Yang <yangjvn@126.com>
15859Description: full keyword and built-in from http://vimdoc.sourceforge.net/htmldoc/
15860Category: scripting
15861*/
15862
15863function(hljs) {
15864 return {
15865 lexemes: /[!#@\w]+/,
15866 keywords: {
15867 keyword: //ex command
15868 // express version except: ! & * < = > !! # @ @@
15869 '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 '+
15870 '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 '+
15871 '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 '+
15872 '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 '+
15873 '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 '+
15874 '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 ~ '+
15875 // full version
15876 '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 '+
15877 '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 '+
15878 '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 '+
15879 '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 '+
15880 '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 '+
15881 '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 '+
15882 '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 '+
15883 '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 '+
15884 '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 '+
15885 '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 '+
15886 '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',
15887 built_in: //built in func
15888 '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 '+
15889 '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 '+
15890 '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 '+
15891 '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 '+
15892 '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 '+
15893 '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 '+
15894 'sinh sort soundfold spellbadword spellsuggest split sqrt str2float str2nr strchars strdisplaywidth strftime stridx string strlen strpart strridx strtrans strwidth submatch substitute synconcealed synID synIDattr '+
15895 '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'
15896 },
15897 illegal: /[{:]/,
15898 contains: [
15899 hljs.NUMBER_MODE,
15900 hljs.APOS_STRING_MODE,
15901 {
15902 className: 'string',
15903 // quote with escape, comment as quote
15904 begin: /"((\\")|[^"\n])*("|\n)/
15905 },
15906 {
15907 className: 'variable',
15908 begin: /[bwtglsav]:[\w\d_]*/
15909 },
15910 {
15911 className: 'function',
15912 beginKeywords: 'function function!', end: '$',
15913 relevance: 0,
15914 contains: [
15915 hljs.TITLE_MODE,
15916 {
15917 className: 'params',
15918 begin: '\\(', end: '\\)'
15919 }
15920 ]
15921 }
15922 ]
15923 };
15924}
15925},{name:"x86asm",create:/*
15926Language: Intel x86 Assembly
15927Author: innocenat <innocenat@gmail.com>
15928Description: x86 assembly language using Intel's mnemonic and NASM syntax
15929Category: assembler
15930*/
15931
15932function(hljs) {
15933 return {
15934 case_insensitive: true,
15935 lexemes: '[.%]?' + hljs.IDENT_RE,
15936 keywords: {
15937 keyword:
15938 'lock rep repe repz repne repnz xaquire xrelease bnd nobnd ' +
15939 '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',
15940 built_in:
15941 // Instruction pointer
15942 'ip eip rip ' +
15943 // 8-bit registers
15944 'al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ' +
15945 // 16-bit registers
15946 'ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w ' +
15947 // 32-bit registers
15948 'eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d ' +
15949 // 64-bit registers
15950 'rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 ' +
15951 // Segment registers
15952 'cs ds es fs gs ss ' +
15953 // Floating point stack registers
15954 'st st0 st1 st2 st3 st4 st5 st6 st7 ' +
15955 // MMX Registers
15956 'mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 ' +
15957 // SSE registers
15958 'xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 ' +
15959 'xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ' +
15960 // AVX registers
15961 'ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ' +
15962 'ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 ' +
15963 // AVX-512F registers
15964 'zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 ' +
15965 'zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 ' +
15966 // AVX-512F mask registers
15967 'k0 k1 k2 k3 k4 k5 k6 k7 ' +
15968 // Bound (MPX) register
15969 'bnd0 bnd1 bnd2 bnd3 ' +
15970 // Special register
15971 'cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 ' +
15972 // NASM altreg package
15973 'r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b ' +
15974 'r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d ' +
15975 'r0h r1h r2h r3h ' +
15976 'r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l ' +
15977
15978 'db dw dd dq dt ddq do dy dz ' +
15979 'resb resw resd resq rest resdq reso resy resz ' +
15980 'incbin equ times ' +
15981 'byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr',
15982
15983 meta:
15984 '%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif ' +
15985 '%if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep ' +
15986 '%endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment ' +
15987 '.nolist ' +
15988 '__FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ ' +
15989 '__UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend ' +
15990 'align alignb sectalign daz nodaz up down zero default option assume public ' +
15991
15992 'bits use16 use32 use64 default section segment absolute extern global common cpu float ' +
15993 '__utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ ' +
15994 '__float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ ' +
15995 '__Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e ' +
15996 'float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__'
15997 },
15998 contains: [
15999 hljs.COMMENT(
16000 ';',
16001 '$',
16002 {
16003 relevance: 0
16004 }
16005 ),
16006 {
16007 className: 'number',
16008 variants: [
16009 // Float number and x87 BCD
16010 {
16011 begin: '\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|' +
16012 '(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b',
16013 relevance: 0
16014 },
16015
16016 // Hex number in $
16017 { begin: '\\$[0-9][0-9A-Fa-f]*', relevance: 0 },
16018
16019 // Number in H,D,T,Q,O,B,Y suffix
16020 { 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' },
16021
16022 // Number in X,D,T,Q,O,B,Y prefix
16023 { begin: '\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b'}
16024 ]
16025 },
16026 // Double quote string
16027 hljs.QUOTE_STRING_MODE,
16028 {
16029 className: 'string',
16030 variants: [
16031 // Single-quoted string
16032 { begin: '\'', end: '[^\\\\]\'' },
16033 // Backquoted string
16034 { begin: '`', end: '[^\\\\]`' },
16035 // Section name
16036 { begin: '\\.[A-Za-z0-9]+' }
16037 ],
16038 relevance: 0
16039 },
16040 {
16041 className: 'symbol',
16042 variants: [
16043 // Global label and local label
16044 { begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)' },
16045 // Macro-local label
16046 { begin: '^\\s*%%[A-Za-z0-9_$#@~.?]*:' }
16047 ],
16048 relevance: 0
16049 },
16050 // Macro parameter
16051 {
16052 className: 'subst',
16053 begin: '%[0-9]+',
16054 relevance: 0
16055 },
16056 // Macro parameter
16057 {
16058 className: 'subst',
16059 begin: '%!\S+',
16060 relevance: 0
16061 }
16062 ]
16063 };
16064}
16065},{name:"xl",create:/*
16066Language: XL
16067Author: Christophe de Dinechin <christophe@taodyne.com>
16068Description: An extensible programming language, based on parse tree rewriting (http://xlr.sf.net)
16069*/
16070
16071function(hljs) {
16072 var BUILTIN_MODULES =
16073 'ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo ' +
16074 'StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts';
16075
16076 var XL_KEYWORDS = {
16077 keyword:
16078 'if then else do while until for loop import with is as where when by data constant ' +
16079 'integer real text name boolean symbol infix prefix postfix block tree',
16080 literal:
16081 'true false nil',
16082 built_in:
16083 'in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin ' +
16084 'acos atan exp expm1 log log2 log10 log1p pi at text_length text_range ' +
16085 'text_find text_replace contains page slide basic_slide title_slide ' +
16086 'title subtitle fade_in fade_out fade_at clear_color color line_color ' +
16087 'line_width texture_wrap texture_transform texture scale_?x scale_?y ' +
16088 'scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y ' +
16089 'rotate_?z? rectangle circle ellipse sphere path line_to move_to ' +
16090 'quad_to curve_to theme background contents locally time mouse_?x ' +
16091 'mouse_?y mouse_buttons ' +
16092 BUILTIN_MODULES
16093 };
16094
16095 var DOUBLE_QUOTE_TEXT = {
16096 className: 'string',
16097 begin: '"', end: '"', illegal: '\\n'
16098 };
16099 var SINGLE_QUOTE_TEXT = {
16100 className: 'string',
16101 begin: '\'', end: '\'', illegal: '\\n'
16102 };
16103 var LONG_TEXT = {
16104 className: 'string',
16105 begin: '<<', end: '>>'
16106 };
16107 var BASED_NUMBER = {
16108 className: 'number',
16109 begin: '[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?'
16110 };
16111 var IMPORT = {
16112 beginKeywords: 'import', end: '$',
16113 keywords: XL_KEYWORDS,
16114 contains: [DOUBLE_QUOTE_TEXT]
16115 };
16116 var FUNCTION_DEFINITION = {
16117 className: 'function',
16118 begin: /[a-z][^\n]*->/, returnBegin: true, end: /->/,
16119 contains: [
16120 hljs.inherit(hljs.TITLE_MODE, {starts: {
16121 endsWithParent: true,
16122 keywords: XL_KEYWORDS
16123 }})
16124 ]
16125 };
16126 return {
16127 aliases: ['tao'],
16128 lexemes: /[a-zA-Z][a-zA-Z0-9_?]*/,
16129 keywords: XL_KEYWORDS,
16130 contains: [
16131 hljs.C_LINE_COMMENT_MODE,
16132 hljs.C_BLOCK_COMMENT_MODE,
16133 DOUBLE_QUOTE_TEXT,
16134 SINGLE_QUOTE_TEXT,
16135 LONG_TEXT,
16136 FUNCTION_DEFINITION,
16137 IMPORT,
16138 BASED_NUMBER,
16139 hljs.NUMBER_MODE
16140 ]
16141 };
16142}
16143},{name:"xml",create:/*
16144Language: HTML, XML
16145Category: common
16146*/
16147
16148function(hljs) {
16149 var XML_IDENT_RE = '[A-Za-z0-9\\._:-]+';
16150 var PHP = {
16151 begin: /<\?(php)?(?!\w)/, end: /\?>/,
16152 subLanguage: 'php'
16153 };
16154 var TAG_INTERNALS = {
16155 endsWithParent: true,
16156 illegal: /</,
16157 relevance: 0,
16158 contains: [
16159 PHP,
16160 {
16161 className: 'attr',
16162 begin: XML_IDENT_RE,
16163 relevance: 0
16164 },
16165 {
16166 begin: '=',
16167 relevance: 0,
16168 contains: [
16169 {
16170 className: 'string',
16171 contains: [PHP],
16172 variants: [
16173 {begin: /"/, end: /"/},
16174 {begin: /'/, end: /'/},
16175 {begin: /[^\s\/>]+/}
16176 ]
16177 }
16178 ]
16179 }
16180 ]
16181 };
16182 return {
16183 aliases: ['html', 'xhtml', 'rss', 'atom', 'xsl', 'plist'],
16184 case_insensitive: true,
16185 contains: [
16186 {
16187 className: 'meta',
16188 begin: '<!DOCTYPE', end: '>',
16189 relevance: 10,
16190 contains: [{begin: '\\[', end: '\\]'}]
16191 },
16192 hljs.COMMENT(
16193 '<!--',
16194 '-->',
16195 {
16196 relevance: 10
16197 }
16198 ),
16199 {
16200 begin: '<\\!\\[CDATA\\[', end: '\\]\\]>',
16201 relevance: 10
16202 },
16203 {
16204 className: 'tag',
16205 /*
16206 The lookahead pattern (?=...) ensures that 'begin' only matches
16207 '<style' as a single word, followed by a whitespace or an
16208 ending braket. The '$' is needed for the lexeme to be recognized
16209 by hljs.subMode() that tests lexemes outside the stream.
16210 */
16211 begin: '<style(?=\\s|>|$)', end: '>',
16212 keywords: {name: 'style'},
16213 contains: [TAG_INTERNALS],
16214 starts: {
16215 end: '</style>', returnEnd: true,
16216 subLanguage: ['css', 'xml']
16217 }
16218 },
16219 {
16220 className: 'tag',
16221 // See the comment in the <style tag about the lookahead pattern
16222 begin: '<script(?=\\s|>|$)', end: '>',
16223 keywords: {name: 'script'},
16224 contains: [TAG_INTERNALS],
16225 starts: {
16226 end: '\<\/script\>', returnEnd: true,
16227 subLanguage: ['actionscript', 'javascript', 'handlebars', 'xml']
16228 }
16229 },
16230 PHP,
16231 {
16232 className: 'meta',
16233 begin: /<\?\w+/, end: /\?>/,
16234 relevance: 10
16235 },
16236 {
16237 className: 'tag',
16238 begin: '</?', end: '/?>',
16239 contains: [
16240 {
16241 className: 'name', begin: /[^\/><\s]+/, relevance: 0
16242 },
16243 TAG_INTERNALS
16244 ]
16245 }
16246 ]
16247 };
16248}
16249},{name:"xquery",create:/*
16250Language: XQuery
16251Author: Dirk Kirsten <dk@basex.org>
16252Description: Supports XQuery 3.1 including XQuery Update 3, so also XPath (as it is a superset)
16253Category: functional
16254*/
16255
16256function(hljs) {
16257 var KEYWORDS = 'for let if while then else return where group by xquery encoding version' +
16258 'module namespace boundary-space preserve strip default collation base-uri ordering' +
16259 'copy-namespaces order declare import schema namespace function option in allowing empty' +
16260 'at tumbling window sliding window start when only end when previous next stable ascending' +
16261 'descending empty greatest least some every satisfies switch case typeswitch try catch and' +
16262 'or to union intersect instance of treat as castable cast map array delete insert into' +
16263 'replace value rename copy modify update';
16264 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';
16265 var VAR = {
16266 begin: /\$[a-zA-Z0-9\-]+/,
16267 relevance: 5
16268 };
16269
16270 var NUMBER = {
16271 className: 'number',
16272 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
16273 relevance: 0
16274 };
16275
16276 var STRING = {
16277 className: 'string',
16278 variants: [
16279 {begin: /"/, end: /"/, contains: [{begin: /""/, relevance: 0}]},
16280 {begin: /'/, end: /'/, contains: [{begin: /''/, relevance: 0}]}
16281 ]
16282 };
16283
16284 var ANNOTATION = {
16285 className: 'meta',
16286 begin: '%\\w+'
16287 };
16288
16289 var COMMENT = {
16290 className: 'comment',
16291 begin: '\\(:', end: ':\\)',
16292 relevance: 10,
16293 contains: [
16294 {
16295 className: 'doctag', begin: '@\\w+'
16296 }
16297 ]
16298 };
16299
16300 var METHOD = {
16301 begin: '{', end: '}'
16302 };
16303
16304 var CONTAINS = [
16305 VAR,
16306 STRING,
16307 NUMBER,
16308 COMMENT,
16309 ANNOTATION,
16310 METHOD
16311 ];
16312 METHOD.contains = CONTAINS;
16313
16314
16315 return {
16316 aliases: ['xpath', 'xq'],
16317 case_insensitive: false,
16318 lexemes: /[a-zA-Z\$][a-zA-Z0-9_:\-]*/,
16319 illegal: /(proc)|(abstract)|(extends)|(until)|(#)/,
16320 keywords: {
16321 keyword: KEYWORDS,
16322 literal: LITERAL
16323 },
16324 contains: CONTAINS
16325 };
16326}
16327},{name:"yaml",create:/*
16328Language: YAML
16329Author: Stefan Wienert <stwienert@gmail.com>
16330Requires: ruby.js
16331Description: YAML (Yet Another Markdown Language)
16332Category: config
16333*/
16334function(hljs) {
16335 var LITERALS = {literal: '{ } true false yes no Yes No True False null'};
16336
16337 var keyPrefix = '^[ \\-]*';
16338 var keyName = '[a-zA-Z_][\\w\\-]*';
16339 var KEY = {
16340 className: 'attr',
16341 variants: [
16342 { begin: keyPrefix + keyName + ":"},
16343 { begin: keyPrefix + '"' + keyName + '"' + ":"},
16344 { begin: keyPrefix + "'" + keyName + "'" + ":"}
16345 ]
16346 };
16347
16348 var TEMPLATE_VARIABLES = {
16349 className: 'template-variable',
16350 variants: [
16351 { begin: '\{\{', end: '\}\}' }, // jinja templates Ansible
16352 { begin: '%\{', end: '\}' } // Ruby i18n
16353 ]
16354 };
16355 var STRING = {
16356 className: 'string',
16357 relevance: 0,
16358 variants: [
16359 {begin: /'/, end: /'/},
16360 {begin: /"/, end: /"/}
16361 ],
16362 contains: [
16363 hljs.BACKSLASH_ESCAPE,
16364 TEMPLATE_VARIABLES
16365 ]
16366 };
16367
16368 return {
16369 case_insensitive: true,
16370 aliases: ['yml', 'YAML', 'yaml'],
16371 contains: [
16372 KEY,
16373 {
16374 className: 'meta',
16375 begin: '^---\s*$',
16376 relevance: 10
16377 },
16378 { // multi line string
16379 className: 'string',
16380 begin: '[\\|>] *$',
16381 returnEnd: true,
16382 contains: STRING.contains,
16383 // very simple termination: next hash key
16384 end: KEY.variants[0].begin
16385 },
16386 { // Ruby/Rails erb
16387 begin: '<%[%=-]?', end: '[%-]?%>',
16388 subLanguage: 'ruby',
16389 excludeBegin: true,
16390 excludeEnd: true,
16391 relevance: 0
16392 },
16393 { // data type
16394 className: 'type',
16395 begin: '!!' + hljs.UNDERSCORE_IDENT_RE,
16396 },
16397 { // fragment id &ref
16398 className: 'meta',
16399 begin: '&' + hljs.UNDERSCORE_IDENT_RE + '$',
16400 },
16401 { // fragment reference *ref
16402 className: 'meta',
16403 begin: '\\*' + hljs.UNDERSCORE_IDENT_RE + '$'
16404 },
16405 { // array listing
16406 className: 'bullet',
16407 begin: '^ *-',
16408 relevance: 0
16409 },
16410 STRING,
16411 hljs.HASH_COMMENT_MODE,
16412 hljs.C_NUMBER_MODE
16413 ],
16414 keywords: LITERALS
16415 };
16416}
16417},{name:"zephir",create:/*
16418 Language: Zephir
16419 Author: Oleg Efimov <efimovov@gmail.com>
16420 */
16421
16422function(hljs) {
16423 var STRING = {
16424 className: 'string',
16425 contains: [hljs.BACKSLASH_ESCAPE],
16426 variants: [
16427 {
16428 begin: 'b"', end: '"'
16429 },
16430 {
16431 begin: 'b\'', end: '\''
16432 },
16433 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
16434 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
16435 ]
16436 };
16437 var NUMBER = {variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]};
16438 return {
16439 aliases: ['zep'],
16440 case_insensitive: true,
16441 keywords:
16442 'and include_once list abstract global private echo interface as static endswitch ' +
16443 'array null if endwhile or const for endforeach self var let while isset public ' +
16444 'protected exit foreach throw elseif include __FILE__ empty require_once do xor ' +
16445 'return parent clone use __CLASS__ __LINE__ else break print eval new ' +
16446 'catch __METHOD__ case exception default die require __FUNCTION__ ' +
16447 'enddeclare final try switch continue endfor endif declare unset true false ' +
16448 'trait goto instanceof insteadof __DIR__ __NAMESPACE__ ' +
16449 'yield finally int uint long ulong char uchar double float bool boolean string' +
16450 'likely unlikely',
16451 contains: [
16452 hljs.C_LINE_COMMENT_MODE,
16453 hljs.HASH_COMMENT_MODE,
16454 hljs.COMMENT(
16455 '/\\*',
16456 '\\*/',
16457 {
16458 contains: [
16459 {
16460 className: 'doctag',
16461 begin: '@[A-Za-z]+'
16462 }
16463 ]
16464 }
16465 ),
16466 hljs.COMMENT(
16467 '__halt_compiler.+?;',
16468 false,
16469 {
16470 endsWithParent: true,
16471 keywords: '__halt_compiler',
16472 lexemes: hljs.UNDERSCORE_IDENT_RE
16473 }
16474 ),
16475 {
16476 className: 'string',
16477 begin: '<<<[\'"]?\\w+[\'"]?$', end: '^\\w+;',
16478 contains: [hljs.BACKSLASH_ESCAPE]
16479 },
16480 {
16481 // swallow composed identifiers to avoid parsing them as keywords
16482 begin: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
16483 },
16484 {
16485 className: 'function',
16486 beginKeywords: 'function', end: /[;{]/, excludeEnd: true,
16487 illegal: '\\$|\\[|%',
16488 contains: [
16489 hljs.UNDERSCORE_TITLE_MODE,
16490 {
16491 className: 'params',
16492 begin: '\\(', end: '\\)',
16493 contains: [
16494 'self',
16495 hljs.C_BLOCK_COMMENT_MODE,
16496 STRING,
16497 NUMBER
16498 ]
16499 }
16500 ]
16501 },
16502 {
16503 className: 'class',
16504 beginKeywords: 'class interface', end: '{', excludeEnd: true,
16505 illegal: /[:\(\$"]/,
16506 contains: [
16507 {beginKeywords: 'extends implements'},
16508 hljs.UNDERSCORE_TITLE_MODE
16509 ]
16510 },
16511 {
16512 beginKeywords: 'namespace', end: ';',
16513 illegal: /[\.']/,
16514 contains: [hljs.UNDERSCORE_TITLE_MODE]
16515 },
16516 {
16517 beginKeywords: 'use', end: ';',
16518 contains: [hljs.UNDERSCORE_TITLE_MODE]
16519 },
16520 {
16521 begin: '=>' // No markup, just a relevance booster
16522 },
16523 STRING,
16524 NUMBER
16525 ]
16526 };
16527}
16528}]
16529 ;
16530
16531for (var i = 0; i < languages.length; ++i) {
16532 hljs.registerLanguage(languages[i].name, languages[i].create);
16533}
16534
16535module.exports = {
16536 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;}"},
16537 engine: hljs
16538};
16539
16540})()
16541},{}],8:[function(require,module,exports){
16542exports.addClass = function (element, className) {
16543 element.className = exports.getClasses(element)
16544 .concat([className])
16545 .join(' ');
16546};
16547
16548exports.removeClass = function (element, className) {
16549 element.className = exports.getClasses(element)
16550 .filter(function (klass) { return klass !== className; })
16551 .join(' ');
16552};
16553
16554exports.toggleClass = function (element, className) {
16555 var classes = exports.getClasses(element),
16556 index = classes.indexOf(className);
16557
16558 if (index !== -1) {
16559 classes.splice(index, 1);
16560 }
16561 else {
16562 classes.push(className);
16563 }
16564
16565 element.className = classes.join(' ');
16566};
16567
16568exports.getClasses = function (element) {
16569 return element.className
16570 .split(' ')
16571 .filter(function (s) { return s !== ''; });
16572};
16573
16574exports.hasClass = function (element, className) {
16575 return exports.getClasses(element).indexOf(className) !== -1;
16576};
16577
16578exports.getPrefixedProperty = function (element, propertyName) {
16579 var capitalizedPropertName = propertyName[0].toUpperCase() +
16580 propertyName.slice(1);
16581
16582 return element[propertyName] || element['moz' + capitalizedPropertName] ||
16583 element['webkit' + capitalizedPropertName];
16584};
16585
16586},{}],4:[function(require,module,exports){
16587var EventEmitter = require('events').EventEmitter
16588 , highlighter = require('./highlighter')
16589 , converter = require('./converter')
16590 , resources = require('./resources')
16591 , Parser = require('./parser')
16592 , Slideshow = require('./models/slideshow')
16593 , SlideshowView = require('./views/slideshowView')
16594 , DefaultController = require('./controllers/defaultController')
16595 , Dom = require('./dom')
16596 , macros = require('./macros')
16597 ;
16598
16599module.exports = Api;
16600
16601function Api (dom) {
16602 this.dom = dom || new Dom();
16603 this.macros = macros;
16604 this.version = resources.version;
16605}
16606
16607// Expose highlighter to allow enumerating available styles and
16608// including external language grammars
16609Api.prototype.highlighter = highlighter;
16610
16611Api.prototype.convert = function (markdown) {
16612 var parser = new Parser()
16613 , content = parser.parse(markdown || '', macros)[0].content
16614 ;
16615
16616 return converter.convertMarkdown(content, {}, true);
16617};
16618
16619// Creates slideshow initialized from options
16620Api.prototype.create = function (options) {
16621 var events
16622 , slideshow
16623 , slideshowView
16624 , controller
16625 ;
16626
16627 options = applyDefaults(this.dom, options);
16628
16629 events = new EventEmitter();
16630 events.setMaxListeners(0);
16631
16632 slideshow = new Slideshow(events, options);
16633 slideshowView = new SlideshowView(events, this.dom, options.container, slideshow);
16634 controller = options.controller || new DefaultController(events, this.dom, slideshowView, options.navigation);
16635
16636 return slideshow;
16637};
16638
16639function applyDefaults (dom, options) {
16640 var sourceElement;
16641
16642 options = options || {};
16643
16644 if (options.hasOwnProperty('sourceUrl')) {
16645 var req = new dom.XMLHttpRequest();
16646 req.open('GET', options.sourceUrl, false);
16647 req.send();
16648 options.source = req.responseText.replace(/\r\n/g, '\n');
16649 }
16650 else if (!options.hasOwnProperty('source')) {
16651 sourceElement = dom.getElementById('source');
16652 if (sourceElement) {
16653 options.source = unescape(sourceElement.innerHTML);
16654 sourceElement.style.display = 'none';
16655 }
16656 }
16657
16658 if (!(options.container instanceof window.HTMLElement)) {
16659 options.container = dom.getBodyElement();
16660 }
16661
16662 return options;
16663}
16664
16665function unescape (source) {
16666 source = source.replace(/&[l|g]t;/g,
16667 function (match) {
16668 return match === '&lt;' ? '<' : '>';
16669 });
16670
16671 source = source.replace(/&amp;/g, '&');
16672 source = source.replace(/&quot;/g, '"');
16673
16674 return source;
16675}
16676
16677},{"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){
16678module.exports = Dom;
16679
16680function Dom () { }
16681
16682Dom.prototype.XMLHttpRequest = XMLHttpRequest;
16683
16684Dom.prototype.getHTMLElement = function () {
16685 return document.getElementsByTagName('html')[0];
16686};
16687
16688Dom.prototype.getBodyElement = function () {
16689 return document.body;
16690};
16691
16692Dom.prototype.getElementById = function (id) {
16693 return document.getElementById(id);
16694};
16695
16696Dom.prototype.getLocationHash = function () {
16697 return window.location.hash;
16698};
16699
16700Dom.prototype.setLocationHash = function (hash) {
16701 if (typeof window.history.replaceState === 'function' && document.origin !== 'null') {
16702 window.history.replaceState(undefined, undefined, hash);
16703 }
16704 else {
16705 window.location.hash = hash;
16706 }
16707};
16708
16709},{}],15:[function(require,module,exports){
16710var macros = module.exports = {};
16711
16712macros.hello = function () {
16713 return 'hello!';
16714};
16715
16716},{}],10:[function(require,module,exports){
16717(function(){var Lexer = require('./lexer');
16718
16719module.exports = Parser;
16720
16721function Parser () { }
16722
16723/*
16724 * Parses source string into list of slides.
16725 *
16726 * Output format:
16727 *
16728 * [
16729 * // Per slide
16730 * {
16731 * // Properties
16732 * properties: {
16733 * name: 'value'
16734 * },
16735 * // Notes (optional, same format as content list)
16736 * notes: [...],
16737 * // Link definitions
16738 * links: {
16739 * id: { href: 'url', title: 'optional title' },
16740 * ...
16741 * ],
16742 * content: [
16743 * // Any content but content classes are represented as strings
16744 * 'plain text ',
16745 * // Content classes are represented as objects
16746 * { block: false, class: 'the-class', content: [...] },
16747 * { block: true, class: 'the-class', content: [...] },
16748 * ...
16749 * ]
16750 * },
16751 * ...
16752 * ]
16753 */
16754Parser.prototype.parse = function (src, macros) {
16755 var self = this,
16756 lexer = new Lexer(),
16757 tokens = lexer.lex(cleanInput(src)),
16758 slides = [],
16759
16760 // The last item on the stack contains the current slide or
16761 // content class we're currently appending content to.
16762 stack = [createSlide()];
16763
16764 macros = macros || {};
16765
16766 tokens.forEach(function (token) {
16767 switch (token.type) {
16768 case 'text':
16769 case 'code':
16770 case 'fences':
16771 // Text, code and fenced code tokens are appended to their
16772 // respective parents as string literals, and are only included
16773 // in the parse process in order to reason about structure
16774 // (like ignoring a slide separator inside fenced code).
16775 appendTo(stack[stack.length - 1], token.text);
16776 break;
16777 case 'def':
16778 // Link definition
16779 stack[0].links[token.id] = {
16780 href: token.href,
16781 title: token.title
16782 };
16783 break;
16784 case 'macro':
16785 // Macro
16786 var macro = macros[token.name];
16787 if (typeof macro !== 'function') {
16788 throw new Error('Macro "' + token.name + '" not found. ' +
16789 'You need to define macro using remark.macros[\'' +
16790 token.name + '\'] = function () { ... };');
16791 }
16792 var value = macro.apply(token.obj, token.args);
16793 if (typeof value === 'string') {
16794 value = self.parse(value, macros);
16795 appendTo(stack[stack.length - 1], value[0].content[0]);
16796 }
16797 else {
16798 appendTo(stack[stack.length - 1], value === undefined ?
16799 '' : value.toString());
16800 }
16801 break;
16802 case 'content_start':
16803 // Entering content class, so create stack entry for appending
16804 // upcoming content to.
16805 //
16806 // Lexer handles open/close bracket balance, so there's no need
16807 // to worry about there being a matching closing bracket.
16808 stack.push(createContentClass(token));
16809 break;
16810 case 'content_end':
16811 // Exiting content class, so remove entry from stack and
16812 // append to previous item (outer content class or slide).
16813 appendTo(stack[stack.length - 2], stack[stack.length - 1]);
16814 stack.pop();
16815 break;
16816 case 'separator':
16817 // Slide separator (--- or --), so add current slide to list of
16818 // slides and re-initialize stack with new, blank slide.
16819 slides.push(stack[0]);
16820 stack = [createSlide()];
16821 // Tag the new slide as a continued slide if the separator
16822 // used was -- instead of --- (2 vs. 3 dashes).
16823 stack[0].properties.continued = (token.text === '--').toString();
16824 break;
16825 case 'notes_separator':
16826 // Notes separator (???), so create empty content list on slide
16827 // in which all remaining slide content will be put.
16828 stack[0].notes = [];
16829 break;
16830 }
16831 });
16832
16833 // Push current slide to list of slides.
16834 slides.push(stack[0]);
16835
16836 slides.forEach(function (slide) {
16837 slide.content[0] = extractProperties(slide.content[0] || '', slide.properties);
16838 });
16839
16840 return slides.filter(function (slide) {
16841 var exclude = (slide.properties.exclude || '').toLowerCase();
16842
16843 if (exclude === 'true') {
16844 return false;
16845 }
16846
16847 return true;
16848 });
16849};
16850
16851function createSlide () {
16852 return {
16853 content: [],
16854 properties: {
16855 continued: 'false'
16856 },
16857 links: {}
16858 };
16859}
16860
16861function createContentClass (token) {
16862 return {
16863 class: token.classes.join(' '),
16864 block: token.block,
16865 content: []
16866 };
16867}
16868
16869function appendTo (element, content) {
16870 var target = element.content;
16871
16872 if (element.notes !== undefined) {
16873 target = element.notes;
16874 }
16875
16876 // If two string are added after one another, we can just as well
16877 // go ahead and concatenate them into a single string.
16878 var lastIdx = target.length - 1;
16879 if (typeof target[lastIdx] === 'string' && typeof content === 'string') {
16880 target[lastIdx] += content;
16881 }
16882 else {
16883 target.push(content);
16884 }
16885}
16886
16887function extractProperties (source, properties) {
16888 var propertyFinder = /^\n*([-\w]+):([^$\n]*)|\n*(?:<!--\s*)([-\w]+):([^$\n]*?)(?:\s*-->)/i
16889 , match
16890 ;
16891
16892 while ((match = propertyFinder.exec(source)) !== null) {
16893 source = source.substr(0, match.index) +
16894 source.substr(match.index + match[0].length);
16895
16896 if (match[1] !== undefined) {
16897 properties[match[1].trim()] = match[2].trim();
16898 }
16899 else {
16900 properties[match[3].trim()] = match[4].trim();
16901 }
16902
16903 propertyFinder.lastIndex = match.index;
16904 }
16905
16906 return source;
16907}
16908
16909function cleanInput(source) {
16910 // If all lines are indented, we should trim them all to the same point so that code doesn't
16911 // need to start at column 0 in the source (see GitHub Issue #105)
16912
16913 // Helper to extract captures from the regex
16914 var getMatchCaptures = function (source, pattern) {
16915 var results = [], match;
16916 while ((match = pattern.exec(source)) !== null)
16917 results.push(match[1]);
16918 return results;
16919 };
16920
16921 // Calculate the minimum leading whitespace
16922 // Ensure there's at least one char that's not newline nor whitespace to ignore empty and blank lines
16923 var leadingWhitespacePattern = /^([ \t]*)[^ \t\n]/gm;
16924 var whitespace = getMatchCaptures(source, leadingWhitespacePattern).map(function (s) { return s.length; });
16925 var minWhitespace = Math.min.apply(Math, whitespace);
16926
16927 // Trim off the exact amount of whitespace, or less for blank lines (non-empty)
16928 var trimWhitespacePattern = new RegExp('^[ \\t]{0,' + minWhitespace + '}', 'gm');
16929 return source.replace(trimWhitespacePattern, '');
16930}
16931
16932})()
16933},{"./lexer":16}],11:[function(require,module,exports){
16934var Navigation = require('./slideshow/navigation')
16935 , Events = require('./slideshow/events')
16936 , utils = require('../utils')
16937 , Slide = require('./slide')
16938 , Parser = require('../parser')
16939 , macros = require('../macros')
16940 ;
16941
16942module.exports = Slideshow;
16943
16944function Slideshow (events, options) {
16945 var self = this
16946 , slides = []
16947 , links = {}
16948 ;
16949
16950 options = options || {};
16951
16952 // Extend slideshow functionality
16953 Events.call(self, events);
16954 Navigation.call(self, events);
16955
16956 self.loadFromString = loadFromString;
16957 self.update = update;
16958 self.getLinks = getLinks;
16959 self.getSlides = getSlides;
16960 self.getSlideCount = getSlideCount;
16961 self.getSlideByName = getSlideByName;
16962
16963 self.togglePresenterMode = togglePresenterMode;
16964 self.toggleHelp = toggleHelp;
16965 self.toggleBlackout = toggleBlackout;
16966 self.toggleMirrored = toggleMirrored;
16967 self.toggleFullscreen = toggleFullscreen;
16968 self.createClone = createClone;
16969
16970 self.resetTimer = resetTimer;
16971
16972 self.getRatio = getOrDefault('ratio', '4:3');
16973 self.getHighlightStyle = getOrDefault('highlightStyle', 'default');
16974 self.getHighlightLines = getOrDefault('highlightLines', false);
16975 self.getHighlightSpans = getOrDefault('highlightSpans', false);
16976 self.getHighlightLanguage = getOrDefault('highlightLanguage', '');
16977 self.getSlideNumberFormat = getOrDefault('slideNumberFormat', '%current% / %total%');
16978
16979 loadFromString(options.source);
16980
16981 events.on('toggleBlackout', function () {
16982 if (self.clone && !self.clone.closed) {
16983 self.clone.postMessage('toggleBlackout', '*');
16984 }
16985 });
16986
16987 function loadFromString (source) {
16988 source = source || '';
16989
16990 slides = createSlides(source, options);
16991 expandVariables(slides);
16992
16993 links = {};
16994 slides.forEach(function (slide) {
16995 for (var id in slide.links) {
16996 if (slide.links.hasOwnProperty(id)) {
16997 links[id] = slide.links[id];
16998 }
16999 }
17000 });
17001
17002 events.emit('slidesChanged');
17003 }
17004
17005 function update () {
17006 events.emit('resize');
17007 }
17008
17009 function getLinks () {
17010 return links;
17011 }
17012
17013 function getSlides () {
17014 return slides.map(function (slide) { return slide; });
17015 }
17016
17017 function getSlideCount () {
17018 return slides.length;
17019 }
17020
17021 function getSlideByName (name) {
17022 return slides.byName[name];
17023 }
17024
17025 function togglePresenterMode () {
17026 events.emit('togglePresenterMode');
17027 }
17028
17029 function toggleHelp () {
17030 events.emit('toggleHelp');
17031 }
17032
17033 function toggleBlackout () {
17034 events.emit('toggleBlackout');
17035 }
17036
17037 function toggleMirrored() {
17038 events.emit('toggleMirrored');
17039 }
17040
17041 function toggleFullscreen () {
17042 events.emit('toggleFullscreen');
17043 }
17044
17045 function createClone () {
17046 events.emit('createClone');
17047 }
17048
17049 function resetTimer () {
17050 events.emit('resetTimer');
17051 }
17052
17053 function getOrDefault (key, defaultValue) {
17054 return function () {
17055 if (options[key] === undefined) {
17056 return defaultValue;
17057 }
17058
17059 return options[key];
17060 };
17061 }
17062}
17063
17064function createSlides (slideshowSource, options) {
17065 var parser = new Parser()
17066 , parsedSlides = parser.parse(slideshowSource, macros)
17067 , slides = []
17068 , byName = {}
17069 , layoutSlide
17070 ;
17071
17072 slides.byName = {};
17073
17074 parsedSlides.forEach(function (slide, i) {
17075 var template, slideViewModel;
17076
17077 if (slide.properties.continued === 'true' && i > 0) {
17078 template = slides[slides.length - 1];
17079 }
17080 else if (byName[slide.properties.template]) {
17081 template = byName[slide.properties.template];
17082 }
17083 else if (slide.properties.layout === 'false') {
17084 layoutSlide = undefined;
17085 }
17086 else if (layoutSlide && slide.properties.layout !== 'true') {
17087 template = layoutSlide;
17088 }
17089
17090 if (slide.properties.continued === 'true' &&
17091 options.countIncrementalSlides === false &&
17092 slide.properties.count === undefined) {
17093 slide.properties.count = 'false';
17094 }
17095
17096 slideViewModel = new Slide(slides.length, slide, template);
17097
17098 if (slide.properties.layout === 'true') {
17099 layoutSlide = slideViewModel;
17100 }
17101
17102 if (slide.properties.name) {
17103 byName[slide.properties.name] = slideViewModel;
17104 }
17105
17106 if (slide.properties.layout !== 'true') {
17107 slides.push(slideViewModel);
17108 if (slide.properties.name) {
17109 slides.byName[slide.properties.name] = slideViewModel;
17110 }
17111 }
17112 });
17113
17114 return slides;
17115}
17116
17117function expandVariables (slides) {
17118 slides.forEach(function (slide) {
17119 slide.expandVariables();
17120 });
17121}
17122
17123},{"./slideshow/navigation":17,"../utils":8,"./slide":18,"./slideshow/events":19,"../parser":10,"../macros":15}],12:[function(require,module,exports){
17124var SlideView = require('./slideView')
17125 , Timer = require('components/timer')
17126 , NotesView = require('./notesView')
17127 , Scaler = require('../scaler')
17128 , resources = require('../resources')
17129 , utils = require('../utils')
17130 , printing = require('components/printing')
17131 ;
17132
17133module.exports = SlideshowView;
17134
17135function SlideshowView (events, dom, containerElement, slideshow) {
17136 var self = this;
17137
17138 self.events = events;
17139 self.dom = dom;
17140 self.slideshow = slideshow;
17141 self.scaler = new Scaler(events, slideshow);
17142 self.slideViews = [];
17143
17144 self.configureContainerElement(containerElement);
17145 self.configureChildElements();
17146
17147 self.updateDimensions();
17148 self.scaleElements();
17149 self.updateSlideViews();
17150
17151 self.timer = new Timer(events, self.timerElement);
17152
17153 events.on('slidesChanged', function () {
17154 self.updateSlideViews();
17155 });
17156
17157 events.on('hideSlide', function (slideIndex) {
17158 // To make sure that there is only one element fading at a time,
17159 // remove the fading class from all slides before hiding
17160 // the new slide.
17161 self.elementArea.getElementsByClassName('remark-fading').forEach(function (slide) {
17162 utils.removeClass(slide, 'remark-fading');
17163 });
17164 self.hideSlide(slideIndex);
17165 });
17166
17167 events.on('showSlide', function (slideIndex) {
17168 self.showSlide(slideIndex);
17169 });
17170
17171 events.on('forcePresenterMode', function () {
17172
17173 if (!utils.hasClass(self.containerElement, 'remark-presenter-mode')) {
17174 utils.toggleClass(self.containerElement, 'remark-presenter-mode');
17175 self.scaleElements();
17176 printing.setPageOrientation('landscape');
17177 }
17178 });
17179
17180 events.on('togglePresenterMode', function () {
17181 utils.toggleClass(self.containerElement, 'remark-presenter-mode');
17182 self.scaleElements();
17183 events.emit('toggledPresenter', self.slideshow.getCurrentSlideIndex() + 1);
17184
17185 if (utils.hasClass(self.containerElement, 'remark-presenter-mode')) {
17186 printing.setPageOrientation('portrait');
17187 }
17188 else {
17189 printing.setPageOrientation('landscape');
17190 }
17191 });
17192
17193 events.on('toggleHelp', function () {
17194 utils.toggleClass(self.containerElement, 'remark-help-mode');
17195 });
17196
17197 events.on('toggleBlackout', function () {
17198 utils.toggleClass(self.containerElement, 'remark-blackout-mode');
17199 });
17200
17201 events.on('toggleMirrored', function () {
17202 utils.toggleClass(self.containerElement, 'remark-mirrored-mode');
17203 });
17204
17205 events.on('hideOverlay', function () {
17206 utils.removeClass(self.containerElement, 'remark-blackout-mode');
17207 utils.removeClass(self.containerElement, 'remark-help-mode');
17208 });
17209
17210 events.on('pause', function () {
17211 utils.toggleClass(self.containerElement, 'remark-pause-mode');
17212 });
17213
17214 events.on('resume', function () {
17215 utils.toggleClass(self.containerElement, 'remark-pause-mode');
17216 });
17217
17218 handleFullscreen(self);
17219}
17220
17221function handleFullscreen(self) {
17222 var requestFullscreen = utils.getPrefixedProperty(self.containerElement, 'requestFullScreen')
17223 , cancelFullscreen = utils.getPrefixedProperty(document, 'cancelFullScreen')
17224 ;
17225
17226 self.events.on('toggleFullscreen', function () {
17227 var fullscreenElement = utils.getPrefixedProperty(document, 'fullscreenElement') ||
17228 utils.getPrefixedProperty(document, 'fullScreenElement');
17229
17230 if (!fullscreenElement && requestFullscreen) {
17231 requestFullscreen.call(self.containerElement, Element.ALLOW_KEYBOARD_INPUT);
17232 }
17233 else if (cancelFullscreen) {
17234 cancelFullscreen.call(document);
17235 }
17236 self.scaleElements();
17237 });
17238}
17239
17240SlideshowView.prototype.isEmbedded = function () {
17241 return this.containerElement !== this.dom.getBodyElement();
17242};
17243
17244SlideshowView.prototype.configureContainerElement = function (element) {
17245 var self = this;
17246
17247 self.containerElement = element;
17248
17249 utils.addClass(element, 'remark-container');
17250
17251 if (element === self.dom.getBodyElement()) {
17252 utils.addClass(self.dom.getHTMLElement(), 'remark-container');
17253
17254 forwardEvents(self.events, window, [
17255 'hashchange', 'resize', 'keydown', 'keypress', 'mousewheel',
17256 'message', 'DOMMouseScroll'
17257 ]);
17258 forwardEvents(self.events, self.containerElement, [
17259 'touchstart', 'touchmove', 'touchend', 'click', 'contextmenu'
17260 ]);
17261 }
17262 else {
17263 element.style.position = 'absolute';
17264 element.tabIndex = -1;
17265
17266 forwardEvents(self.events, window, ['resize']);
17267 forwardEvents(self.events, element, [
17268 'keydown', 'keypress', 'mousewheel',
17269 'touchstart', 'touchmove', 'touchend'
17270 ]);
17271 }
17272
17273 // Tap event is handled in slideshow view
17274 // rather than controller as knowledge of
17275 // container width is needed to determine
17276 // whether to move backwards or forwards
17277 self.events.on('tap', function (endX) {
17278 if (endX < self.containerElement.clientWidth / 2) {
17279 self.slideshow.gotoPreviousSlide();
17280 }
17281 else {
17282 self.slideshow.gotoNextSlide();
17283 }
17284 });
17285};
17286
17287function forwardEvents (target, source, events) {
17288 events.forEach(function (eventName) {
17289 source.addEventListener(eventName, function () {
17290 var args = Array.prototype.slice.call(arguments);
17291 target.emit.apply(target, [eventName].concat(args));
17292 });
17293 });
17294}
17295
17296SlideshowView.prototype.configureChildElements = function () {
17297 var self = this;
17298
17299 self.containerElement.innerHTML += resources.containerLayout;
17300
17301 self.elementArea = self.containerElement.getElementsByClassName('remark-slides-area')[0];
17302 self.previewArea = self.containerElement.getElementsByClassName('remark-preview-area')[0];
17303 self.notesArea = self.containerElement.getElementsByClassName('remark-notes-area')[0];
17304
17305 self.notesView = new NotesView (self.events, self.notesArea, function () {
17306 return self.slideViews;
17307 });
17308
17309 self.backdropElement = self.containerElement.getElementsByClassName('remark-backdrop')[0];
17310 self.helpElement = self.containerElement.getElementsByClassName('remark-help')[0];
17311
17312 self.timerElement = self.notesArea.getElementsByClassName('remark-toolbar-timer')[0];
17313 self.pauseElement = self.containerElement.getElementsByClassName('remark-pause')[0];
17314
17315 self.events.on('propertiesChanged', function (changes) {
17316 if (changes.hasOwnProperty('ratio')) {
17317 self.updateDimensions();
17318 }
17319 });
17320
17321 self.events.on('resize', onResize);
17322
17323 printing.init();
17324 printing.on('print', onPrint);
17325
17326 function onResize () {
17327 self.scaleElements();
17328 }
17329
17330 function onPrint (e) {
17331 var slideHeight;
17332
17333 if (e.isPortrait) {
17334 slideHeight = e.pageHeight * 0.4;
17335 }
17336 else {
17337 slideHeight = e.pageHeight;
17338 }
17339
17340 self.slideViews.forEach(function (slideView) {
17341 slideView.scale({
17342 clientWidth: e.pageWidth,
17343 clientHeight: slideHeight
17344 });
17345
17346 if (e.isPortrait) {
17347 slideView.scalingElement.style.top = '20px';
17348 slideView.notesElement.style.top = slideHeight + 40 + 'px';
17349 }
17350 });
17351 }
17352};
17353
17354SlideshowView.prototype.updateSlideViews = function () {
17355 var self = this;
17356
17357 self.slideViews.forEach(function (slideView) {
17358 self.elementArea.removeChild(slideView.containerElement);
17359 });
17360
17361 self.slideViews = self.slideshow.getSlides().map(function (slide) {
17362 return new SlideView(self.events, self.slideshow, self.scaler, slide);
17363 });
17364
17365 self.slideViews.forEach(function (slideView) {
17366 self.elementArea.appendChild(slideView.containerElement);
17367 });
17368
17369 self.updateDimensions();
17370
17371 if (self.slideshow.getCurrentSlideIndex() > -1) {
17372 self.showSlide(self.slideshow.getCurrentSlideIndex());
17373 }
17374};
17375
17376SlideshowView.prototype.scaleSlideBackgroundImages = function (dimensions) {
17377 var self = this;
17378
17379 self.slideViews.forEach(function (slideView) {
17380 slideView.scaleBackgroundImage(dimensions);
17381 });
17382};
17383
17384SlideshowView.prototype.showSlide = function (slideIndex) {
17385 var self = this
17386 , slideView = self.slideViews[slideIndex]
17387 , nextSlideView = self.slideViews[slideIndex + 1]
17388 ;
17389
17390 self.events.emit("beforeShowSlide", slideIndex);
17391
17392 slideView.show();
17393
17394 if (nextSlideView) {
17395 self.previewArea.innerHTML = nextSlideView.containerElement.outerHTML;
17396 }
17397 else {
17398 self.previewArea.innerHTML = '';
17399 }
17400
17401 self.events.emit("afterShowSlide", slideIndex);
17402};
17403
17404SlideshowView.prototype.hideSlide = function (slideIndex) {
17405 var self = this
17406 , slideView = self.slideViews[slideIndex]
17407 ;
17408
17409 self.events.emit("beforeHideSlide", slideIndex);
17410 slideView.hide();
17411 self.events.emit("afterHideSlide", slideIndex);
17412
17413};
17414
17415SlideshowView.prototype.updateDimensions = function () {
17416 var self = this
17417 , dimensions = self.scaler.dimensions
17418 ;
17419
17420 self.helpElement.style.width = dimensions.width + 'px';
17421 self.helpElement.style.height = dimensions.height + 'px';
17422
17423 self.scaleSlideBackgroundImages(dimensions);
17424 self.scaleElements();
17425};
17426
17427SlideshowView.prototype.scaleElements = function () {
17428 var self = this;
17429
17430 self.slideViews.forEach(function (slideView) {
17431 slideView.scale(self.elementArea);
17432 });
17433
17434 if (self.previewArea.children.length) {
17435 self.scaler.scaleToFit(self.previewArea.children[0].children[0], self.previewArea);
17436 }
17437 self.scaler.scaleToFit(self.helpElement, self.containerElement);
17438 self.scaler.scaleToFit(self.pauseElement, self.containerElement);
17439};
17440
17441},{"components/timer":"GFo1Ae","components/printing":"yoGRCZ","./slideView":20,"./notesView":21,"../scaler":22,"../resources":6,"../utils":8}],13:[function(require,module,exports){
17442(function(){// Allow override of global `location`
17443/* global location:true */
17444
17445module.exports = Controller;
17446
17447var keyboard = require('./inputs/keyboard')
17448 , mouse = require('./inputs/mouse')
17449 , touch = require('./inputs/touch')
17450 , message = require('./inputs/message')
17451 , location = require('./inputs/location')
17452 ;
17453
17454function Controller (events, dom, slideshowView, options) {
17455 options = options || {};
17456
17457 message.register(events);
17458 location.register(events, dom, slideshowView);
17459 keyboard.register(events);
17460 mouse.register(events, options);
17461 touch.register(events, options);
17462
17463 addApiEventListeners(events, slideshowView, options);
17464}
17465
17466function addApiEventListeners(events, slideshowView, options) {
17467 events.on('pause', function(event) {
17468 keyboard.unregister(events);
17469 mouse.unregister(events);
17470 touch.unregister(events);
17471 });
17472
17473 events.on('resume', function(event) {
17474 keyboard.register(events);
17475 mouse.register(events, options);
17476 touch.register(events, options);
17477 });
17478}
17479
17480})()
17481},{"./inputs/keyboard":23,"./inputs/mouse":24,"./inputs/touch":25,"./inputs/message":26,"./inputs/location":27}],16:[function(require,module,exports){
17482module.exports = Lexer;
17483
17484var CODE = 1,
17485 INLINE_CODE = 2,
17486 CONTENT = 3,
17487 FENCES = 4,
17488 DEF = 5,
17489 DEF_HREF = 6,
17490 DEF_TITLE = 7,
17491 MACRO = 8,
17492 MACRO_ARGS = 9,
17493 MACRO_OBJ = 10,
17494 SEPARATOR = 11,
17495 NOTES_SEPARATOR = 12;
17496
17497var regexByName = {
17498 CODE: /(?:^|\n)( {4}[^\n]+\n*)+/,
17499 INLINE_CODE: /`([^`]+?)`/,
17500 CONTENT: /(?:\\)?((?:\.[a-zA-Z_\-][a-zA-Z\-_0-9]*)+)\[/,
17501 FENCES: /(?:^|\n) *(`{3,}|~{3,}) *(?:\S+)? *\n(?:[\s\S]+?)\s*\4 *(?:\n+|$)/,
17502 DEF: /(?:^|\n) *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
17503 MACRO: /!\[:([^\] ]+)([^\]]*)\](?:\(([^\)]*)\))?/,
17504 SEPARATOR: /(?:^|\n)(---?)(?:\n|$)/,
17505 NOTES_SEPARATOR: /(?:^|\n)(\?{3})(?:\n|$)/
17506 };
17507
17508var block = replace(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO|SEPARATOR|NOTES_SEPARATOR/, regexByName),
17509 inline = replace(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO/, regexByName);
17510
17511function Lexer () { }
17512
17513Lexer.prototype.lex = function (src) {
17514 var tokens = lex(src, block),
17515 i;
17516
17517 for (i = tokens.length - 2; i >= 0; i--) {
17518 if (tokens[i].type === 'text' && tokens[i+1].type === 'text') {
17519 tokens[i].text += tokens[i+1].text;
17520 tokens.splice(i+1, 1);
17521 }
17522 }
17523
17524 return tokens;
17525};
17526
17527function lex (src, regex, tokens) {
17528 var cap, text;
17529
17530 tokens = tokens || [];
17531
17532 while ((cap = regex.exec(src)) !== null) {
17533 if (cap.index > 0) {
17534 tokens.push({
17535 type: 'text',
17536 text: src.substring(0, cap.index)
17537 });
17538 }
17539
17540 if (cap[CODE]) {
17541 tokens.push({
17542 type: 'code',
17543 text: cap[0]
17544 });
17545 }
17546 else if (cap[INLINE_CODE]) {
17547 tokens.push({
17548 type: 'text',
17549 text: cap[0]
17550 });
17551 }
17552 else if (cap[FENCES]) {
17553 tokens.push({
17554 type: 'fences',
17555 text: cap[0]
17556 });
17557 }
17558 else if (cap[DEF]) {
17559 tokens.push({
17560 type: 'def',
17561 id: cap[DEF],
17562 href: cap[DEF_HREF],
17563 title: cap[DEF_TITLE]
17564 });
17565 }
17566 else if (cap[MACRO]) {
17567 tokens.push({
17568 type: 'macro',
17569 name: cap[MACRO],
17570 args: (cap[MACRO_ARGS] || '').split(',').map(trim),
17571 obj: cap[MACRO_OBJ]
17572 });
17573 }
17574 else if (cap[SEPARATOR]) {
17575 tokens.push({
17576 type: 'separator',
17577 text: cap[SEPARATOR]
17578 });
17579 }
17580 else if (cap[NOTES_SEPARATOR]) {
17581 tokens.push({
17582 type: 'notes_separator',
17583 text: cap[NOTES_SEPARATOR]
17584 });
17585 }
17586 else if (cap[CONTENT]) {
17587 text = getTextInBrackets(src, cap.index + cap[0].length);
17588 if (text !== undefined) {
17589 src = src.substring(text.length + 1);
17590
17591 if (cap[0][0] !== '\\') {
17592 tokens.push({
17593 type: 'content_start',
17594 classes: cap[CONTENT].substring(1).split('.'),
17595 block: text.indexOf('\n') !== -1
17596 });
17597 lex(text, inline, tokens);
17598 tokens.push({
17599 type: 'content_end',
17600 block: text.indexOf('\n') !== -1
17601 });
17602 }
17603 else {
17604 tokens.push({
17605 type: 'text',
17606 text: cap[0].substring(1) + text + ']'
17607 });
17608 }
17609 }
17610 else {
17611 tokens.push({
17612 type: 'text',
17613 text: cap[0]
17614 });
17615 }
17616 }
17617
17618 src = src.substring(cap.index + cap[0].length);
17619 }
17620
17621 if (src || (!src && tokens.length === 0)) {
17622 tokens.push({
17623 type: 'text',
17624 text: src
17625 });
17626 }
17627
17628 return tokens;
17629}
17630
17631function replace (regex, replacements) {
17632 return new RegExp(regex.source.replace(/\w{2,}/g, function (key) {
17633 return replacements[key].source;
17634 }));
17635}
17636
17637function trim (text) {
17638 if (typeof text === 'string') {
17639 return text.trim();
17640 }
17641
17642 return text;
17643}
17644
17645function getTextInBrackets (src, offset) {
17646 var depth = 1,
17647 pos = offset,
17648 chr;
17649
17650 while (depth > 0 && pos < src.length) {
17651 chr = src[pos++];
17652 depth += (chr === '[' && 1) || (chr === ']' && -1) || 0;
17653 }
17654
17655 if (depth === 0) {
17656 src = src.substr(offset, pos - offset - 1);
17657 return src;
17658 }
17659}
17660
17661},{}],17:[function(require,module,exports){
17662module.exports = Navigation;
17663
17664function Navigation (events) {
17665 var self = this
17666 , currentSlideIndex = -1
17667 , started = null
17668 ;
17669
17670 self.getCurrentSlideIndex = getCurrentSlideIndex;
17671 self.gotoSlide = gotoSlide;
17672 self.gotoPreviousSlide = gotoPreviousSlide;
17673 self.gotoNextSlide = gotoNextSlide;
17674 self.gotoFirstSlide = gotoFirstSlide;
17675 self.gotoLastSlide = gotoLastSlide;
17676 self.pause = pause;
17677 self.resume = resume;
17678
17679 events.on('gotoSlide', gotoSlide);
17680 events.on('gotoPreviousSlide', gotoPreviousSlide);
17681 events.on('gotoNextSlide', gotoNextSlide);
17682 events.on('gotoFirstSlide', gotoFirstSlide);
17683 events.on('gotoLastSlide', gotoLastSlide);
17684
17685 events.on('slidesChanged', function () {
17686 if (currentSlideIndex > self.getSlideCount()) {
17687 currentSlideIndex = self.getSlideCount();
17688 }
17689 });
17690
17691 events.on('createClone', function () {
17692 if (!self.clone || self.clone.closed) {
17693 self.clone = window.open(location.href, '_blank', 'location=no');
17694 }
17695 else {
17696 self.clone.focus();
17697 }
17698 });
17699
17700 events.on('resetTimer', function() {
17701 started = false;
17702 });
17703
17704 function pause () {
17705 events.emit('pause');
17706 }
17707
17708 function resume () {
17709 events.emit('resume');
17710 }
17711
17712 function getCurrentSlideIndex () {
17713 return currentSlideIndex;
17714 }
17715
17716 function gotoSlideByIndex(slideIndex, noMessage) {
17717 var alreadyOnSlide = slideIndex === currentSlideIndex
17718 , slideOutOfRange = slideIndex < 0 || slideIndex > self.getSlideCount()-1
17719 ;
17720
17721 if (noMessage === undefined) noMessage = false;
17722
17723 if (alreadyOnSlide || slideOutOfRange) {
17724 return;
17725 }
17726
17727 if (currentSlideIndex !== -1) {
17728 events.emit('hideSlide', currentSlideIndex, false);
17729 }
17730
17731 // Use some tri-state logic here.
17732 // null = We haven't shown the first slide yet.
17733 // false = We've shown the initial slide, but we haven't progressed beyond that.
17734 // true = We've issued the first slide change command.
17735 if (started === null) {
17736 started = false;
17737 } else if (started === false) {
17738 // We've shown the initial slide previously - that means this is a
17739 // genuine move to a new slide.
17740 events.emit('start');
17741 started = true;
17742 }
17743
17744 events.emit('showSlide', slideIndex);
17745
17746 currentSlideIndex = slideIndex;
17747
17748 events.emit('slideChanged', slideIndex + 1);
17749
17750 if (!noMessage) {
17751 if (self.clone && !self.clone.closed) {
17752 self.clone.postMessage('gotoSlide:' + (currentSlideIndex + 1), '*');
17753 }
17754
17755 if (window.opener) {
17756 window.opener.postMessage('gotoSlide:' + (currentSlideIndex + 1), '*');
17757 }
17758 }
17759 }
17760
17761 function gotoSlide (slideNoOrName, noMessage) {
17762 var slideIndex = getSlideIndex(slideNoOrName);
17763
17764 gotoSlideByIndex(slideIndex, noMessage);
17765 }
17766
17767 function gotoPreviousSlide() {
17768 gotoSlideByIndex(currentSlideIndex - 1);
17769 }
17770
17771 function gotoNextSlide() {
17772 gotoSlideByIndex(currentSlideIndex + 1);
17773 }
17774
17775 function gotoFirstSlide () {
17776 gotoSlideByIndex(0);
17777 }
17778
17779 function gotoLastSlide () {
17780 gotoSlideByIndex(self.getSlideCount() - 1);
17781 }
17782
17783 function getSlideIndex (slideNoOrName) {
17784 var slideNo
17785 , slide
17786 ;
17787
17788 if (typeof slideNoOrName === 'number') {
17789 return slideNoOrName - 1;
17790 }
17791
17792 slideNo = parseInt(slideNoOrName, 10);
17793 if (slideNo.toString() === slideNoOrName) {
17794 return slideNo - 1;
17795 }
17796
17797 if(slideNoOrName.match(/^p\d+$/)){
17798 events.emit('forcePresenterMode');
17799 return parseInt(slideNoOrName.substr(1), 10)-1;
17800 }
17801
17802 slide = self.getSlideByName(slideNoOrName);
17803 if (slide) {
17804 return slide.getSlideIndex();
17805 }
17806
17807 return 0;
17808 }
17809}
17810
17811},{}],18:[function(require,module,exports){
17812module.exports = Slide;
17813
17814function Slide (slideIndex, slide, template) {
17815 var self = this;
17816
17817 self.properties = slide.properties || {};
17818 self.links = slide.links || {};
17819 self.content = slide.content || [];
17820 self.notes = slide.notes || '';
17821
17822 self.getSlideIndex = function () { return slideIndex; };
17823
17824 if (template) {
17825 inherit(self, template);
17826 }
17827}
17828
17829function inherit (slide, template) {
17830 inheritProperties(slide, template);
17831 inheritContent(slide, template);
17832 inheritNotes(slide, template);
17833}
17834
17835function inheritProperties (slide, template) {
17836 var property
17837 , value
17838 ;
17839
17840 for (property in template.properties) {
17841 if (!template.properties.hasOwnProperty(property) ||
17842 ignoreProperty(property)) {
17843 continue;
17844 }
17845
17846 value = [template.properties[property]];
17847
17848 if (property === 'class' && slide.properties[property]) {
17849 value.push(slide.properties[property]);
17850 }
17851
17852 if (property === 'class' || slide.properties[property] === undefined) {
17853 slide.properties[property] = value.join(', ');
17854 }
17855 }
17856}
17857
17858function ignoreProperty (property) {
17859 return property === 'name' ||
17860 property === 'layout' ||
17861 property === 'count';
17862}
17863
17864function inheritContent (slide, template) {
17865 var expandedVariables;
17866
17867 slide.properties.content = slide.content.slice();
17868 slide.content = template.content.slice();
17869
17870 expandedVariables = slide.expandVariables(/* contentOnly: */ true);
17871
17872 if (expandedVariables.content === undefined) {
17873 slide.content = slide.content.concat(slide.properties.content);
17874 }
17875
17876 delete slide.properties.content;
17877}
17878
17879function inheritNotes (slide, template) {
17880 if (template.notes) {
17881 slide.notes = template.notes + '\n\n' + slide.notes;
17882 }
17883}
17884
17885Slide.prototype.expandVariables = function (contentOnly, content, expandResult) {
17886 var properties = this.properties
17887 , i
17888 ;
17889
17890 content = content !== undefined ? content : this.content;
17891 expandResult = expandResult || {};
17892
17893 for (i = 0; i < content.length; ++i) {
17894 if (typeof content[i] === 'string') {
17895 content[i] = content[i].replace(/(\\)?(\{\{([^\}\n]+)\}\})/g, expand);
17896 }
17897 else {
17898 this.expandVariables(contentOnly, content[i].content, expandResult);
17899 }
17900 }
17901
17902 function expand (match, escaped, unescapedMatch, property) {
17903 var propertyName = property.trim()
17904 , propertyValue
17905 ;
17906
17907 if (escaped) {
17908 return contentOnly ? match[0] : unescapedMatch;
17909 }
17910
17911 if (contentOnly && propertyName !== 'content') {
17912 return match;
17913 }
17914
17915 propertyValue = properties[propertyName];
17916
17917 if (propertyValue !== undefined) {
17918 expandResult[propertyName] = propertyValue;
17919 return propertyValue;
17920 }
17921
17922 return propertyName === 'content' ? '' : unescapedMatch;
17923 }
17924
17925 return expandResult;
17926};
17927
17928},{}],19:[function(require,module,exports){
17929var EventEmitter = require('events').EventEmitter;
17930
17931module.exports = Events;
17932
17933function Events (events) {
17934 var self = this
17935 , externalEvents = new EventEmitter()
17936 ;
17937
17938 externalEvents.setMaxListeners(0);
17939
17940 self.on = function () {
17941 externalEvents.on.apply(externalEvents, arguments);
17942 return self;
17943 };
17944
17945 ['showSlide', 'hideSlide', 'beforeShowSlide', 'afterShowSlide', 'beforeHideSlide', 'afterHideSlide', 'toggledPresenter'].map(function (eventName) {
17946 events.on(eventName, function (slideIndex) {
17947 var slide = self.getSlides()[slideIndex];
17948 externalEvents.emit(eventName, slide);
17949 });
17950 });
17951}
17952
17953},{"events":1}],22:[function(require,module,exports){
17954var referenceWidth = 908
17955 , referenceHeight = 681
17956 , referenceRatio = referenceWidth / referenceHeight
17957 ;
17958
17959module.exports = Scaler;
17960
17961function Scaler (events, slideshow) {
17962 var self = this;
17963
17964 self.events = events;
17965 self.slideshow = slideshow;
17966 self.ratio = getRatio(slideshow);
17967 self.dimensions = getDimensions(self.ratio);
17968
17969 self.events.on('propertiesChanged', function (changes) {
17970 if (changes.hasOwnProperty('ratio')) {
17971 self.ratio = getRatio(slideshow);
17972 self.dimensions = getDimensions(self.ratio);
17973 }
17974 });
17975}
17976
17977Scaler.prototype.scaleToFit = function (element, container) {
17978 var self = this
17979 , containerHeight = container.clientHeight
17980 , containerWidth = container.clientWidth
17981 , scale
17982 , scaledWidth
17983 , scaledHeight
17984 , ratio = self.ratio
17985 , dimensions = self.dimensions
17986 , direction
17987 , left
17988 , top
17989 ;
17990
17991 if (containerWidth / ratio.width > containerHeight / ratio.height) {
17992 scale = containerHeight / dimensions.height;
17993 }
17994 else {
17995 scale = containerWidth / dimensions.width;
17996 }
17997
17998 scaledWidth = dimensions.width * scale;
17999 scaledHeight = dimensions.height * scale;
18000
18001 left = (containerWidth - scaledWidth) / 2;
18002 top = (containerHeight - scaledHeight) / 2;
18003
18004 element.style['-webkit-transform'] = 'scale(' + scale + ')';
18005 element.style.MozTransform = 'scale(' + scale + ')';
18006 element.style.left = Math.max(left, 0) + 'px';
18007 element.style.top = Math.max(top, 0) + 'px';
18008};
18009
18010function getRatio (slideshow) {
18011 var ratioComponents = slideshow.getRatio().split(':')
18012 , ratio
18013 ;
18014
18015 ratio = {
18016 width: parseInt(ratioComponents[0], 10)
18017 , height: parseInt(ratioComponents[1], 10)
18018 };
18019
18020 ratio.ratio = ratio.width / ratio.height;
18021
18022 return ratio;
18023}
18024
18025function getDimensions (ratio) {
18026 return {
18027 width: Math.floor(referenceWidth / referenceRatio * ratio.ratio)
18028 , height: referenceHeight
18029 };
18030}
18031
18032},{}],23:[function(require,module,exports){
18033exports.register = function (events) {
18034 addKeyboardEventListeners(events);
18035};
18036
18037exports.unregister = function (events) {
18038 removeKeyboardEventListeners(events);
18039};
18040
18041function addKeyboardEventListeners (events) {
18042 events.on('keydown', function (event) {
18043 if (event.metaKey || event.ctrlKey) {
18044 // Bail out if meta or ctrl key was pressed
18045 return;
18046 }
18047
18048 switch (event.keyCode) {
18049 case 33: // Page up
18050 case 37: // Left
18051 case 38: // Up
18052 events.emit('gotoPreviousSlide');
18053 break;
18054 case 32: // Space
18055 case 34: // Page down
18056 case 39: // Right
18057 case 40: // Down
18058 events.emit('gotoNextSlide');
18059 break;
18060 case 36: // Home
18061 events.emit('gotoFirstSlide');
18062 break;
18063 case 35: // End
18064 events.emit('gotoLastSlide');
18065 break;
18066 case 27: // Escape
18067 events.emit('hideOverlay');
18068 break;
18069 }
18070 });
18071
18072 events.on('keypress', function (event) {
18073 if (event.metaKey || event.ctrlKey) {
18074 // Bail out if meta or ctrl key was pressed
18075 return;
18076 }
18077
18078 switch (String.fromCharCode(event.which).toLowerCase()) {
18079 case 'j':
18080 events.emit('gotoNextSlide');
18081 break;
18082 case 'k':
18083 events.emit('gotoPreviousSlide');
18084 break;
18085 case 'b':
18086 events.emit('toggleBlackout');
18087 break;
18088 case 'm':
18089 events.emit('toggleMirrored');
18090 break;
18091 case 'c':
18092 events.emit('createClone');
18093 break;
18094 case 'p':
18095 events.emit('togglePresenterMode');
18096 break;
18097 case 'f':
18098 events.emit('toggleFullscreen');
18099 break;
18100 case 't':
18101 events.emit('resetTimer');
18102 break;
18103 case 'h':
18104 case '?':
18105 events.emit('toggleHelp');
18106 break;
18107 }
18108 });
18109}
18110
18111function removeKeyboardEventListeners(events) {
18112 events.removeAllListeners("keydown");
18113 events.removeAllListeners("keypress");
18114}
18115
18116},{}],24:[function(require,module,exports){
18117exports.register = function (events, options) {
18118 addMouseEventListeners(events, options);
18119};
18120
18121exports.unregister = function (events) {
18122 removeMouseEventListeners(events);
18123};
18124
18125function addMouseEventListeners (events, options) {
18126 if (options.click) {
18127 events.on('click', function (event) {
18128 if (event.target.nodeName === 'A') {
18129 // Don't interfere when clicking link
18130 return;
18131 }
18132 else if (event.button === 0) {
18133 events.emit('gotoNextSlide');
18134 }
18135 });
18136 events.on('contextmenu', function (event) {
18137 if (event.target.nodeName === 'A') {
18138 // Don't interfere when right-clicking link
18139 return;
18140 }
18141 event.preventDefault();
18142 events.emit('gotoPreviousSlide');
18143 });
18144 }
18145
18146 if (options.scroll !== false) {
18147 var scrollHandler = function (event) {
18148 if (event.wheelDeltaY > 0 || event.detail < 0) {
18149 events.emit('gotoPreviousSlide');
18150 }
18151 else if (event.wheelDeltaY < 0 || event.detail > 0) {
18152 events.emit('gotoNextSlide');
18153 }
18154 };
18155
18156 // IE9, Chrome, Safari, Opera
18157 events.on('mousewheel', scrollHandler);
18158 // Firefox
18159 events.on('DOMMouseScroll', scrollHandler);
18160 }
18161}
18162
18163function removeMouseEventListeners(events) {
18164 events.removeAllListeners('click');
18165 events.removeAllListeners('contextmenu');
18166 events.removeAllListeners('mousewheel');
18167}
18168
18169},{}],25:[function(require,module,exports){
18170exports.register = function (events, options) {
18171 addTouchEventListeners(events, options);
18172};
18173
18174exports.unregister = function (events) {
18175 removeTouchEventListeners(events);
18176};
18177
18178function addTouchEventListeners (events, options) {
18179 var touch
18180 , startX
18181 , endX
18182 ;
18183
18184 if (options.touch === false) {
18185 return;
18186 }
18187
18188 var isTap = function () {
18189 return Math.abs(startX - endX) < 10;
18190 };
18191
18192 var handleTap = function () {
18193 events.emit('tap', endX);
18194 };
18195
18196 var handleSwipe = function () {
18197 if (startX > endX) {
18198 events.emit('gotoNextSlide');
18199 }
18200 else {
18201 events.emit('gotoPreviousSlide');
18202 }
18203 };
18204
18205 events.on('touchstart', function (event) {
18206 touch = event.touches[0];
18207 startX = touch.clientX;
18208 });
18209
18210 events.on('touchend', function (event) {
18211 if (event.target.nodeName.toUpperCase() === 'A') {
18212 return;
18213 }
18214
18215 touch = event.changedTouches[0];
18216 endX = touch.clientX;
18217
18218 if (isTap()) {
18219 handleTap();
18220 }
18221 else {
18222 handleSwipe();
18223 }
18224 });
18225
18226 events.on('touchmove', function (event) {
18227 event.preventDefault();
18228 });
18229}
18230
18231function removeTouchEventListeners(events) {
18232 events.removeAllListeners("touchstart");
18233 events.removeAllListeners("touchend");
18234 events.removeAllListeners("touchmove");
18235}
18236
18237},{}],26:[function(require,module,exports){
18238exports.register = function (events) {
18239 addMessageEventListeners(events);
18240};
18241
18242function addMessageEventListeners (events) {
18243 events.on('message', navigateByMessage);
18244
18245 function navigateByMessage(message) {
18246 var cap;
18247
18248 if ((cap = /^gotoSlide:(\d+)$/.exec(message.data)) !== null) {
18249 events.emit('gotoSlide', parseInt(cap[1], 10), true);
18250 }
18251 else if (message.data === 'toggleBlackout') {
18252 events.emit('toggleBlackout');
18253 }
18254 }
18255}
18256
18257},{}],20:[function(require,module,exports){
18258var SlideNumber = require('components/slide-number')
18259 , converter = require('../converter')
18260 , highlighter = require('../highlighter')
18261 , utils = require('../utils')
18262 ;
18263
18264module.exports = SlideView;
18265
18266function SlideView (events, slideshow, scaler, slide) {
18267 var self = this;
18268
18269 self.events = events;
18270 self.slideshow = slideshow;
18271 self.scaler = scaler;
18272 self.slide = slide;
18273
18274 self.slideNumber = new SlideNumber(slide, slideshow);
18275
18276 self.configureElements();
18277 self.updateDimensions();
18278
18279 self.events.on('propertiesChanged', function (changes) {
18280 if (changes.hasOwnProperty('ratio')) {
18281 self.updateDimensions();
18282 }
18283 });
18284}
18285
18286SlideView.prototype.updateDimensions = function () {
18287 var self = this
18288 , dimensions = self.scaler.dimensions
18289 ;
18290
18291 self.scalingElement.style.width = dimensions.width + 'px';
18292 self.scalingElement.style.height = dimensions.height + 'px';
18293};
18294
18295SlideView.prototype.scale = function (containerElement) {
18296 var self = this;
18297
18298 self.scaler.scaleToFit(self.scalingElement, containerElement);
18299};
18300
18301SlideView.prototype.show = function () {
18302 utils.addClass(this.containerElement, 'remark-visible');
18303 utils.removeClass(this.containerElement, 'remark-fading');
18304};
18305
18306SlideView.prototype.hide = function () {
18307 var self = this;
18308 utils.removeClass(this.containerElement, 'remark-visible');
18309 // Don't just disappear the slide. Mark it as fading, which
18310 // keeps it on the screen, but at a reduced z-index.
18311 // Then set a timer to remove the fading state in 1s.
18312 utils.addClass(this.containerElement, 'remark-fading');
18313 setTimeout(function(){
18314 utils.removeClass(self.containerElement, 'remark-fading');
18315 }, 1000);
18316};
18317
18318SlideView.prototype.configureElements = function () {
18319 var self = this;
18320
18321 self.containerElement = document.createElement('div');
18322 self.containerElement.className = 'remark-slide-container';
18323
18324 self.scalingElement = document.createElement('div');
18325 self.scalingElement.className = 'remark-slide-scaler';
18326
18327 self.element = document.createElement('div');
18328 self.element.className = 'remark-slide';
18329
18330 self.contentElement = createContentElement(self.events, self.slideshow, self.slide);
18331 self.notesElement = createNotesElement(self.slideshow, self.slide.notes);
18332
18333 self.contentElement.appendChild(self.slideNumber.element);
18334 self.element.appendChild(self.contentElement);
18335 self.scalingElement.appendChild(self.element);
18336 self.containerElement.appendChild(self.scalingElement);
18337 self.containerElement.appendChild(self.notesElement);
18338};
18339
18340SlideView.prototype.scaleBackgroundImage = function (dimensions) {
18341 var self = this
18342 , styles = window.getComputedStyle(this.contentElement)
18343 , backgroundImage = styles.backgroundImage
18344 , match
18345 , image
18346 , scale
18347 ;
18348
18349 if ((match = /^url\(("?)([^\)]+?)\1\)/.exec(backgroundImage)) !== null) {
18350 image = new Image();
18351 image.onload = function () {
18352 if (image.width > dimensions.width ||
18353 image.height > dimensions.height) {
18354 // Background image is larger than slide
18355 if (!self.originalBackgroundSize) {
18356 // No custom background size has been set
18357 self.originalBackgroundSize = self.contentElement.style.backgroundSize;
18358 self.originalBackgroundPosition = self.contentElement.style.backgroundPosition;
18359 self.backgroundSizeSet = true;
18360
18361 if (dimensions.width / image.width < dimensions.height / image.height) {
18362 scale = dimensions.width / image.width;
18363 }
18364 else {
18365 scale = dimensions.height / image.height;
18366 }
18367
18368 self.contentElement.style.backgroundSize = image.width * scale +
18369 'px ' + image.height * scale + 'px';
18370 self.contentElement.style.backgroundPosition = '50% ' +
18371 ((dimensions.height - (image.height * scale)) / 2) + 'px';
18372 }
18373 }
18374 else {
18375 // Revert to previous background size setting
18376 if (self.backgroundSizeSet) {
18377 self.contentElement.style.backgroundSize = self.originalBackgroundSize;
18378 self.contentElement.style.backgroundPosition = self.originalBackgroundPosition;
18379 self.backgroundSizeSet = false;
18380 }
18381 }
18382 };
18383 image.src = match[2];
18384 }
18385};
18386
18387function createContentElement (events, slideshow, slide) {
18388 var element = document.createElement('div');
18389
18390 if (slide.properties.name) {
18391 element.id = 'slide-' + slide.properties.name;
18392 }
18393
18394 styleContentElement(slideshow, element, slide.properties);
18395
18396 element.innerHTML = converter.convertMarkdown(slide.content, slideshow.getLinks());
18397
18398 highlightCodeBlocks(element, slideshow);
18399
18400 return element;
18401}
18402
18403function styleContentElement (slideshow, element, properties) {
18404 element.className = '';
18405
18406 setClassFromProperties(element, properties);
18407 setHighlightStyleFromProperties(element, properties, slideshow);
18408 setBackgroundFromProperties(element, properties);
18409}
18410
18411function createNotesElement (slideshow, notes) {
18412 var element = document.createElement('div');
18413
18414 element.className = 'remark-slide-notes';
18415
18416 element.innerHTML = converter.convertMarkdown(notes);
18417
18418 highlightCodeBlocks(element, slideshow);
18419
18420 return element;
18421}
18422
18423function setBackgroundFromProperties (element, properties) {
18424 var backgroundImage = properties['background-image'];
18425 var backgroundColor = properties['background-color'];
18426
18427 if (backgroundImage) {
18428 element.style.backgroundImage = backgroundImage;
18429 }
18430 if (backgroundColor) {
18431 element.style.backgroundColor = backgroundColor;
18432 }
18433}
18434
18435function setHighlightStyleFromProperties (element, properties, slideshow) {
18436 var highlightStyle = properties['highlight-style'] ||
18437 slideshow.getHighlightStyle();
18438
18439 if (highlightStyle) {
18440 utils.addClass(element, 'hljs-' + highlightStyle);
18441 }
18442}
18443
18444function setClassFromProperties (element, properties) {
18445 utils.addClass(element, 'remark-slide-content');
18446
18447 (properties['class'] || '').split(/,| /)
18448 .filter(function (s) { return s !== ''; })
18449 .forEach(function (c) { utils.addClass(element, c); });
18450}
18451
18452function highlightCodeBlocks (content, slideshow) {
18453 var codeBlocks = content.getElementsByTagName('code'),
18454 highlightLines = slideshow.getHighlightLines(),
18455 highlightSpans = slideshow.getHighlightSpans(),
18456 meta;
18457
18458 codeBlocks.forEach(function (block) {
18459 if (block.parentElement.tagName !== 'PRE') {
18460 utils.addClass(block, 'remark-inline-code');
18461 return;
18462 }
18463
18464 if (block.className === '') {
18465 block.className = slideshow.getHighlightLanguage();
18466 }
18467
18468 if (highlightLines) {
18469 meta = extractMetadata(block);
18470 }
18471
18472 if (block.className !== '') {
18473 highlighter.engine.highlightBlock(block, ' ');
18474 }
18475
18476 wrapLines(block);
18477
18478 if (highlightLines) {
18479 highlightBlockLines(block, meta.highlightedLines);
18480 }
18481
18482 if (highlightSpans) {
18483 highlightBlockSpans(block);
18484 }
18485
18486 utils.addClass(block, 'remark-code');
18487 });
18488}
18489
18490function extractMetadata (block) {
18491 var highlightedLines = [];
18492
18493 block.innerHTML = block.innerHTML.split(/\r?\n/).map(function (line, i) {
18494 if (line.indexOf('*') === 0) {
18495 highlightedLines.push(i);
18496 return line.replace(/^\*( )?/, '$1$1');
18497 }
18498
18499 return line;
18500 }).join('\n');
18501
18502 return {
18503 highlightedLines: highlightedLines
18504 };
18505}
18506
18507function wrapLines (block) {
18508 var lines = block.innerHTML.split(/\r?\n/).map(function (line) {
18509 return '<div class="remark-code-line">' + line + '</div>';
18510 });
18511
18512 // Remove empty last line (due to last \n)
18513 if (lines.length && lines[lines.length - 1].indexOf('><') !== -1) {
18514 lines.pop();
18515 }
18516
18517 block.innerHTML = lines.join('');
18518}
18519
18520function highlightBlockLines (block, lines) {
18521 lines.forEach(function (i) {
18522 utils.addClass(block.childNodes[i], 'remark-code-line-highlighted');
18523 });
18524}
18525
18526function highlightBlockSpans (block) {
18527 var pattern = /([^`])`([^`]+?)`/g ;
18528
18529 block.childNodes.forEach(function (element) {
18530 element.innerHTML = element.innerHTML.replace(pattern,
18531 function (m,e,c) {
18532 if (e === '\\') {
18533 return m.substr(1);
18534 }
18535 return e + '<span class="remark-code-span-highlighted">' +
18536 c + '</span>';
18537 });
18538 });
18539}
18540
18541},{"components/slide-number":"GSZq7a","../converter":9,"../highlighter":7,"../utils":8}],21:[function(require,module,exports){
18542var converter = require('../converter');
18543
18544module.exports = NotesView;
18545
18546function NotesView (events, element, slideViewsAccessor) {
18547 var self = this;
18548
18549 self.events = events;
18550 self.element = element;
18551 self.slideViewsAccessor = slideViewsAccessor;
18552
18553 self.configureElements();
18554
18555 events.on('showSlide', function (slideIndex) {
18556 self.showSlide(slideIndex);
18557 });
18558}
18559
18560NotesView.prototype.showSlide = function (slideIndex) {
18561 var self = this
18562 , slideViews = self.slideViewsAccessor()
18563 , slideView = slideViews[slideIndex]
18564 , nextSlideView = slideViews[slideIndex + 1]
18565 ;
18566
18567 self.notesElement.innerHTML = slideView.notesElement.innerHTML;
18568
18569 if (nextSlideView) {
18570 self.notesPreviewElement.innerHTML = nextSlideView.notesElement.innerHTML;
18571 }
18572 else {
18573 self.notesPreviewElement.innerHTML = '';
18574 }
18575};
18576
18577NotesView.prototype.configureElements = function () {
18578 var self = this;
18579
18580 self.notesElement = self.element.getElementsByClassName('remark-notes')[0];
18581 self.notesPreviewElement = self.element.getElementsByClassName('remark-notes-preview')[0];
18582
18583 self.notesElement.addEventListener('mousewheel', function (event) {
18584 event.stopPropagation();
18585 });
18586
18587 self.notesPreviewElement.addEventListener('mousewheel', function (event) {
18588 event.stopPropagation();
18589 });
18590
18591 self.toolbarElement = self.element.getElementsByClassName('remark-toolbar')[0];
18592
18593 var commands = {
18594 increase: function () {
18595 self.notesElement.style.fontSize = (parseFloat(self.notesElement.style.fontSize) || 1) + 0.1 + 'em';
18596 self.notesPreviewElement.style.fontsize = self.notesElement.style.fontSize;
18597 },
18598 decrease: function () {
18599 self.notesElement.style.fontSize = (parseFloat(self.notesElement.style.fontSize) || 1) - 0.1 + 'em';
18600 self.notesPreviewElement.style.fontsize = self.notesElement.style.fontSize;
18601 }
18602 };
18603
18604 self.toolbarElement.getElementsByTagName('a').forEach(function (link) {
18605 link.addEventListener('click', function (e) {
18606 var command = e.target.hash.substr(1);
18607 commands[command]();
18608 e.preventDefault();
18609 });
18610 });
18611};
18612
18613},{"../converter":9}],27:[function(require,module,exports){
18614var utils = require('../../utils.js');
18615
18616exports.register = function (events, dom, slideshowView) {
18617 addLocationEventListeners(events, dom, slideshowView);
18618};
18619
18620function addLocationEventListeners (events, dom, slideshowView) {
18621 // If slideshow is embedded into custom DOM element, we don't
18622 // hook up to location hash changes, so just go to first slide.
18623 if (slideshowView.isEmbedded()) {
18624 events.emit('gotoSlide', 1);
18625 }
18626 // When slideshow is not embedded into custom DOM element, but
18627 // rather hosted directly inside document.body, we hook up to
18628 // location hash changes, and trigger initial navigation.
18629 else {
18630 events.on('hashchange', navigateByHash);
18631 events.on('slideChanged', updateHash);
18632 events.on('toggledPresenter', updateHash);
18633
18634 navigateByHash();
18635 }
18636
18637 function navigateByHash () {
18638 var slideNoOrName = (dom.getLocationHash() || '').substr(1);
18639 events.emit('gotoSlide', slideNoOrName);
18640 }
18641
18642 function updateHash (slideNoOrName) {
18643 if(utils.hasClass(slideshowView.containerElement, 'remark-presenter-mode')){
18644 dom.setLocationHash('#p' + slideNoOrName);
18645 }
18646 else{
18647 dom.setLocationHash('#' + slideNoOrName);
18648 }
18649 }
18650}
18651
18652},{"../../utils.js":8}],9:[function(require,module,exports){
18653var marked = require('marked')
18654 , converter = module.exports = {}
18655 , element = document.createElement('div')
18656 ;
18657
18658marked.setOptions({
18659 gfm: true,
18660 tables: true,
18661 breaks: false,
18662
18663 // Without this set to true, converting something like
18664 // <p>*</p><p>*</p> will become <p><em></p><p></em></p>
18665 pedantic: true,
18666
18667 sanitize: false,
18668 smartLists: true,
18669 langPrefix: ''
18670});
18671
18672converter.convertMarkdown = function (content, links, inline) {
18673 element.innerHTML = convertMarkdown(content, links || {}, inline);
18674 element.innerHTML = element.innerHTML.replace(/<p>\s*<\/p>/g, '');
18675 return element.innerHTML.replace(/\n\r?$/, '');
18676};
18677
18678function convertMarkdown (content, links, insideContentClass) {
18679 var i, tag, markdown = '', html;
18680
18681 for (i = 0; i < content.length; ++i) {
18682 if (typeof content[i] === 'string') {
18683 markdown += content[i];
18684 }
18685 else {
18686 tag = content[i].block ? 'div' : 'span';
18687 markdown += '<' + tag + ' class="' + content[i].class + '">';
18688 markdown += convertMarkdown(content[i].content, links, true);
18689 markdown += '</' + tag + '>';
18690 }
18691 }
18692
18693 var tokens = marked.Lexer.lex(markdown.replace(/^\s+/, ''));
18694 tokens.links = links;
18695 html = marked.Parser.parse(tokens);
18696
18697 if (insideContentClass) {
18698 element.innerHTML = html;
18699 if (element.children.length === 1 && element.children[0].tagName === 'P') {
18700 html = element.children[0].innerHTML;
18701 }
18702 }
18703
18704 return html;
18705}
18706
18707},{"marked":28}],28:[function(require,module,exports){
18708(function(global){/**
18709 * marked - a markdown parser
18710 * Copyright (c) 2011-2013, Christopher Jeffrey. (MIT Licensed)
18711 * https://github.com/chjj/marked
18712 */
18713
18714;(function() {
18715
18716/**
18717 * Block-Level Grammar
18718 */
18719
18720var block = {
18721 newline: /^\n+/,
18722 code: /^( {4}[^\n]+\n*)+/,
18723 fences: noop,
18724 hr: /^( *[-*_]){3,} *(?:\n+|$)/,
18725 heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,
18726 nptable: noop,
18727 lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,
18728 blockquote: /^( *>[^\n]+(\n[^\n]+)*\n*)+/,
18729 list: /^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
18730 html: /^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,
18731 def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
18732 table: noop,
18733 paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
18734 text: /^[^\n]+/
18735};
18736
18737block.bullet = /(?:[*+-]|\d+\.)/;
18738block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;
18739block.item = replace(block.item, 'gm')
18740 (/bull/g, block.bullet)
18741 ();
18742
18743block.list = replace(block.list)
18744 (/bull/g, block.bullet)
18745 ('hr', /\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)
18746 ();
18747
18748block._tag = '(?!(?:'
18749 + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'
18750 + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'
18751 + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b';
18752
18753block.html = replace(block.html)
18754 ('comment', /<!--[\s\S]*?-->/)
18755 ('closed', /<(tag)[\s\S]+?<\/\1>/)
18756 ('closing', /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)
18757 (/tag/g, block._tag)
18758 ();
18759
18760block.paragraph = replace(block.paragraph)
18761 ('hr', block.hr)
18762 ('heading', block.heading)
18763 ('lheading', block.lheading)
18764 ('blockquote', block.blockquote)
18765 ('tag', '<' + block._tag)
18766 ('def', block.def)
18767 ();
18768
18769/**
18770 * Normal Block Grammar
18771 */
18772
18773block.normal = merge({}, block);
18774
18775/**
18776 * GFM Block Grammar
18777 */
18778
18779block.gfm = merge({}, block.normal, {
18780 fences: /^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,
18781 paragraph: /^/
18782});
18783
18784block.gfm.paragraph = replace(block.paragraph)
18785 ('(?!', '(?!'
18786 + block.gfm.fences.source.replace('\\1', '\\2') + '|'
18787 + block.list.source.replace('\\1', '\\3') + '|')
18788 ();
18789
18790/**
18791 * GFM + Tables Block Grammar
18792 */
18793
18794block.tables = merge({}, block.gfm, {
18795 nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,
18796 table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/
18797});
18798
18799/**
18800 * Block Lexer
18801 */
18802
18803function Lexer(options) {
18804 this.tokens = [];
18805 this.tokens.links = {};
18806 this.options = options || marked.defaults;
18807 this.rules = block.normal;
18808
18809 if (this.options.gfm) {
18810 if (this.options.tables) {
18811 this.rules = block.tables;
18812 } else {
18813 this.rules = block.gfm;
18814 }
18815 }
18816}
18817
18818/**
18819 * Expose Block Rules
18820 */
18821
18822Lexer.rules = block;
18823
18824/**
18825 * Static Lex Method
18826 */
18827
18828Lexer.lex = function(src, options) {
18829 var lexer = new Lexer(options);
18830 return lexer.lex(src);
18831};
18832
18833/**
18834 * Preprocessing
18835 */
18836
18837Lexer.prototype.lex = function(src) {
18838 src = src
18839 .replace(/\r\n|\r/g, '\n')
18840 .replace(/\t/g, ' ')
18841 .replace(/\u00a0/g, ' ')
18842 .replace(/\u2424/g, '\n');
18843
18844 return this.token(src, true);
18845};
18846
18847/**
18848 * Lexing
18849 */
18850
18851Lexer.prototype.token = function(src, top) {
18852 var src = src.replace(/^ +$/gm, '')
18853 , next
18854 , loose
18855 , cap
18856 , bull
18857 , b
18858 , item
18859 , space
18860 , i
18861 , l;
18862
18863 while (src) {
18864 // newline
18865 if (cap = this.rules.newline.exec(src)) {
18866 src = src.substring(cap[0].length);
18867 if (cap[0].length > 1) {
18868 this.tokens.push({
18869 type: 'space'
18870 });
18871 }
18872 }
18873
18874 // code
18875 if (cap = this.rules.code.exec(src)) {
18876 src = src.substring(cap[0].length);
18877 cap = cap[0].replace(/^ {4}/gm, '');
18878 this.tokens.push({
18879 type: 'code',
18880 text: !this.options.pedantic
18881 ? cap.replace(/\n+$/, '')
18882 : cap
18883 });
18884 continue;
18885 }
18886
18887 // fences (gfm)
18888 if (cap = this.rules.fences.exec(src)) {
18889 src = src.substring(cap[0].length);
18890 this.tokens.push({
18891 type: 'code',
18892 lang: cap[2],
18893 text: cap[3]
18894 });
18895 continue;
18896 }
18897
18898 // heading
18899 if (cap = this.rules.heading.exec(src)) {
18900 src = src.substring(cap[0].length);
18901 this.tokens.push({
18902 type: 'heading',
18903 depth: cap[1].length,
18904 text: cap[2]
18905 });
18906 continue;
18907 }
18908
18909 // table no leading pipe (gfm)
18910 if (top && (cap = this.rules.nptable.exec(src))) {
18911 src = src.substring(cap[0].length);
18912
18913 item = {
18914 type: 'table',
18915 header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
18916 align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
18917 cells: cap[3].replace(/\n$/, '').split('\n')
18918 };
18919
18920 for (i = 0; i < item.align.length; i++) {
18921 if (/^ *-+: *$/.test(item.align[i])) {
18922 item.align[i] = 'right';
18923 } else if (/^ *:-+: *$/.test(item.align[i])) {
18924 item.align[i] = 'center';
18925 } else if (/^ *:-+ *$/.test(item.align[i])) {
18926 item.align[i] = 'left';
18927 } else {
18928 item.align[i] = null;
18929 }
18930 }
18931
18932 for (i = 0; i < item.cells.length; i++) {
18933 item.cells[i] = item.cells[i].split(/ *\| */);
18934 }
18935
18936 this.tokens.push(item);
18937
18938 continue;
18939 }
18940
18941 // lheading
18942 if (cap = this.rules.lheading.exec(src)) {
18943 src = src.substring(cap[0].length);
18944 this.tokens.push({
18945 type: 'heading',
18946 depth: cap[2] === '=' ? 1 : 2,
18947 text: cap[1]
18948 });
18949 continue;
18950 }
18951
18952 // hr
18953 if (cap = this.rules.hr.exec(src)) {
18954 src = src.substring(cap[0].length);
18955 this.tokens.push({
18956 type: 'hr'
18957 });
18958 continue;
18959 }
18960
18961 // blockquote
18962 if (cap = this.rules.blockquote.exec(src)) {
18963 src = src.substring(cap[0].length);
18964
18965 this.tokens.push({
18966 type: 'blockquote_start'
18967 });
18968
18969 cap = cap[0].replace(/^ *> ?/gm, '');
18970
18971 // Pass `top` to keep the current
18972 // "toplevel" state. This is exactly
18973 // how markdown.pl works.
18974 this.token(cap, top);
18975
18976 this.tokens.push({
18977 type: 'blockquote_end'
18978 });
18979
18980 continue;
18981 }
18982
18983 // list
18984 if (cap = this.rules.list.exec(src)) {
18985 src = src.substring(cap[0].length);
18986 bull = cap[2];
18987
18988 this.tokens.push({
18989 type: 'list_start',
18990 ordered: bull.length > 1
18991 });
18992
18993 // Get each top-level item.
18994 cap = cap[0].match(this.rules.item);
18995
18996 next = false;
18997 l = cap.length;
18998 i = 0;
18999
19000 for (; i < l; i++) {
19001 item = cap[i];
19002
19003 // Remove the list item's bullet
19004 // so it is seen as the next token.
19005 space = item.length;
19006 item = item.replace(/^ *([*+-]|\d+\.) +/, '');
19007
19008 // Outdent whatever the
19009 // list item contains. Hacky.
19010 if (~item.indexOf('\n ')) {
19011 space -= item.length;
19012 item = !this.options.pedantic
19013 ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')
19014 : item.replace(/^ {1,4}/gm, '');
19015 }
19016
19017 // Determine whether the next list item belongs here.
19018 // Backpedal if it does not belong in this list.
19019 if (this.options.smartLists && i !== l - 1) {
19020 b = block.bullet.exec(cap[i + 1])[0];
19021 if (bull !== b && !(bull.length > 1 && b.length > 1)) {
19022 src = cap.slice(i + 1).join('\n') + src;
19023 i = l - 1;
19024 }
19025 }
19026
19027 // Determine whether item is loose or not.
19028 // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/
19029 // for discount behavior.
19030 loose = next || /\n\n(?!\s*$)/.test(item);
19031 if (i !== l - 1) {
19032 next = item.charAt(item.length - 1) === '\n';
19033 if (!loose) loose = next;
19034 }
19035
19036 this.tokens.push({
19037 type: loose
19038 ? 'loose_item_start'
19039 : 'list_item_start'
19040 });
19041
19042 // Recurse.
19043 this.token(item, false);
19044
19045 this.tokens.push({
19046 type: 'list_item_end'
19047 });
19048 }
19049
19050 this.tokens.push({
19051 type: 'list_end'
19052 });
19053
19054 continue;
19055 }
19056
19057 // html
19058 if (cap = this.rules.html.exec(src)) {
19059 src = src.substring(cap[0].length);
19060 this.tokens.push({
19061 type: this.options.sanitize
19062 ? 'paragraph'
19063 : 'html',
19064 pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',
19065 text: cap[0]
19066 });
19067 continue;
19068 }
19069
19070 // def
19071 if (top && (cap = this.rules.def.exec(src))) {
19072 src = src.substring(cap[0].length);
19073 this.tokens.links[cap[1].toLowerCase()] = {
19074 href: cap[2],
19075 title: cap[3]
19076 };
19077 continue;
19078 }
19079
19080 // table (gfm)
19081 if (top && (cap = this.rules.table.exec(src))) {
19082 src = src.substring(cap[0].length);
19083
19084 item = {
19085 type: 'table',
19086 header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
19087 align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
19088 cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n')
19089 };
19090
19091 for (i = 0; i < item.align.length; i++) {
19092 if (/^ *-+: *$/.test(item.align[i])) {
19093 item.align[i] = 'right';
19094 } else if (/^ *:-+: *$/.test(item.align[i])) {
19095 item.align[i] = 'center';
19096 } else if (/^ *:-+ *$/.test(item.align[i])) {
19097 item.align[i] = 'left';
19098 } else {
19099 item.align[i] = null;
19100 }
19101 }
19102
19103 for (i = 0; i < item.cells.length; i++) {
19104 item.cells[i] = item.cells[i]
19105 .replace(/^ *\| *| *\| *$/g, '')
19106 .split(/ *\| */);
19107 }
19108
19109 this.tokens.push(item);
19110
19111 continue;
19112 }
19113
19114 // top-level paragraph
19115 if (top && (cap = this.rules.paragraph.exec(src))) {
19116 src = src.substring(cap[0].length);
19117 this.tokens.push({
19118 type: 'paragraph',
19119 text: cap[1].charAt(cap[1].length - 1) === '\n'
19120 ? cap[1].slice(0, -1)
19121 : cap[1]
19122 });
19123 continue;
19124 }
19125
19126 // text
19127 if (cap = this.rules.text.exec(src)) {
19128 // Top-level should never reach here.
19129 src = src.substring(cap[0].length);
19130 this.tokens.push({
19131 type: 'text',
19132 text: cap[0]
19133 });
19134 continue;
19135 }
19136
19137 if (src) {
19138 throw new
19139 Error('Infinite loop on byte: ' + src.charCodeAt(0));
19140 }
19141 }
19142
19143 return this.tokens;
19144};
19145
19146/**
19147 * Inline-Level Grammar
19148 */
19149
19150var inline = {
19151 escape: /^\\([\\`*{}\[\]()#+\-.!_>])/,
19152 autolink: /^<([^ >]+(@|:\/)[^ >]+)>/,
19153 url: noop,
19154 tag: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,
19155 link: /^!?\[(inside)\]\(href\)/,
19156 reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
19157 nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
19158 strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
19159 em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
19160 code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,
19161 br: /^ {2,}\n(?!\s*$)/,
19162 del: noop,
19163 text: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/
19164};
19165
19166inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;
19167inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;
19168
19169inline.link = replace(inline.link)
19170 ('inside', inline._inside)
19171 ('href', inline._href)
19172 ();
19173
19174inline.reflink = replace(inline.reflink)
19175 ('inside', inline._inside)
19176 ();
19177
19178/**
19179 * Normal Inline Grammar
19180 */
19181
19182inline.normal = merge({}, inline);
19183
19184/**
19185 * Pedantic Inline Grammar
19186 */
19187
19188inline.pedantic = merge({}, inline.normal, {
19189 strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
19190 em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/
19191});
19192
19193/**
19194 * GFM Inline Grammar
19195 */
19196
19197inline.gfm = merge({}, inline.normal, {
19198 escape: replace(inline.escape)('])', '~|])')(),
19199 url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,
19200 del: /^~~(?=\S)([\s\S]*?\S)~~/,
19201 text: replace(inline.text)
19202 (']|', '~]|')
19203 ('|', '|https?://|')
19204 ()
19205});
19206
19207/**
19208 * GFM + Line Breaks Inline Grammar
19209 */
19210
19211inline.breaks = merge({}, inline.gfm, {
19212 br: replace(inline.br)('{2,}', '*')(),
19213 text: replace(inline.gfm.text)('{2,}', '*')()
19214});
19215
19216/**
19217 * Inline Lexer & Compiler
19218 */
19219
19220function InlineLexer(links, options) {
19221 this.options = options || marked.defaults;
19222 this.links = links;
19223 this.rules = inline.normal;
19224 this.renderer = this.options.renderer || new Renderer;
19225 this.renderer.options = this.options;
19226
19227 if (!this.links) {
19228 throw new
19229 Error('Tokens array requires a `links` property.');
19230 }
19231
19232 if (this.options.gfm) {
19233 if (this.options.breaks) {
19234 this.rules = inline.breaks;
19235 } else {
19236 this.rules = inline.gfm;
19237 }
19238 } else if (this.options.pedantic) {
19239 this.rules = inline.pedantic;
19240 }
19241}
19242
19243/**
19244 * Expose Inline Rules
19245 */
19246
19247InlineLexer.rules = inline;
19248
19249/**
19250 * Static Lexing/Compiling Method
19251 */
19252
19253InlineLexer.output = function(src, links, options) {
19254 var inline = new InlineLexer(links, options);
19255 return inline.output(src);
19256};
19257
19258/**
19259 * Lexing/Compiling
19260 */
19261
19262InlineLexer.prototype.output = function(src) {
19263 var out = ''
19264 , link
19265 , text
19266 , href
19267 , cap;
19268
19269 while (src) {
19270 // escape
19271 if (cap = this.rules.escape.exec(src)) {
19272 src = src.substring(cap[0].length);
19273 out += cap[1];
19274 continue;
19275 }
19276
19277 // autolink
19278 if (cap = this.rules.autolink.exec(src)) {
19279 src = src.substring(cap[0].length);
19280 if (cap[2] === '@') {
19281 text = cap[1].charAt(6) === ':'
19282 ? this.mangle(cap[1].substring(7))
19283 : this.mangle(cap[1]);
19284 href = this.mangle('mailto:') + text;
19285 } else {
19286 text = escape(cap[1]);
19287 href = text;
19288 }
19289 out += this.renderer.link(href, null, text);
19290 continue;
19291 }
19292
19293 // url (gfm)
19294 if (cap = this.rules.url.exec(src)) {
19295 src = src.substring(cap[0].length);
19296 text = escape(cap[1]);
19297 href = text;
19298 out += this.renderer.link(href, null, text);
19299 continue;
19300 }
19301
19302 // tag
19303 if (cap = this.rules.tag.exec(src)) {
19304 src = src.substring(cap[0].length);
19305 out += this.options.sanitize
19306 ? escape(cap[0])
19307 : cap[0];
19308 continue;
19309 }
19310
19311 // link
19312 if (cap = this.rules.link.exec(src)) {
19313 src = src.substring(cap[0].length);
19314 out += this.outputLink(cap, {
19315 href: cap[2],
19316 title: cap[3]
19317 });
19318 continue;
19319 }
19320
19321 // reflink, nolink
19322 if ((cap = this.rules.reflink.exec(src))
19323 || (cap = this.rules.nolink.exec(src))) {
19324 src = src.substring(cap[0].length);
19325 link = (cap[2] || cap[1]).replace(/\s+/g, ' ');
19326 link = this.links[link.toLowerCase()];
19327 if (!link || !link.href) {
19328 out += cap[0].charAt(0);
19329 src = cap[0].substring(1) + src;
19330 continue;
19331 }
19332 out += this.outputLink(cap, link);
19333 continue;
19334 }
19335
19336 // strong
19337 if (cap = this.rules.strong.exec(src)) {
19338 src = src.substring(cap[0].length);
19339 out += this.renderer.strong(this.output(cap[2] || cap[1]));
19340 continue;
19341 }
19342
19343 // em
19344 if (cap = this.rules.em.exec(src)) {
19345 src = src.substring(cap[0].length);
19346 out += this.renderer.em(this.output(cap[2] || cap[1]));
19347 continue;
19348 }
19349
19350 // code
19351 if (cap = this.rules.code.exec(src)) {
19352 src = src.substring(cap[0].length);
19353 out += this.renderer.codespan(escape(cap[2], true));
19354 continue;
19355 }
19356
19357 // br
19358 if (cap = this.rules.br.exec(src)) {
19359 src = src.substring(cap[0].length);
19360 out += this.renderer.br();
19361 continue;
19362 }
19363
19364 // del (gfm)
19365 if (cap = this.rules.del.exec(src)) {
19366 src = src.substring(cap[0].length);
19367 out += this.renderer.del(this.output(cap[1]));
19368 continue;
19369 }
19370
19371 // text
19372 if (cap = this.rules.text.exec(src)) {
19373 src = src.substring(cap[0].length);
19374 out += escape(this.smartypants(cap[0]));
19375 continue;
19376 }
19377
19378 if (src) {
19379 throw new
19380 Error('Infinite loop on byte: ' + src.charCodeAt(0));
19381 }
19382 }
19383
19384 return out;
19385};
19386
19387/**
19388 * Compile Link
19389 */
19390
19391InlineLexer.prototype.outputLink = function(cap, link) {
19392 var href = escape(link.href)
19393 , title = link.title ? escape(link.title) : null;
19394
19395 return cap[0].charAt(0) !== '!'
19396 ? this.renderer.link(href, title, this.output(cap[1]))
19397 : this.renderer.image(href, title, escape(cap[1]));
19398};
19399
19400/**
19401 * Smartypants Transformations
19402 */
19403
19404InlineLexer.prototype.smartypants = function(text) {
19405 if (!this.options.smartypants) return text;
19406 return text
19407 // em-dashes
19408 .replace(/--/g, '\u2014')
19409 // opening singles
19410 .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018')
19411 // closing singles & apostrophes
19412 .replace(/'/g, '\u2019')
19413 // opening doubles
19414 .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c')
19415 // closing doubles
19416 .replace(/"/g, '\u201d')
19417 // ellipses
19418 .replace(/\.{3}/g, '\u2026');
19419};
19420
19421/**
19422 * Mangle Links
19423 */
19424
19425InlineLexer.prototype.mangle = function(text) {
19426 var out = ''
19427 , l = text.length
19428 , i = 0
19429 , ch;
19430
19431 for (; i < l; i++) {
19432 ch = text.charCodeAt(i);
19433 if (Math.random() > 0.5) {
19434 ch = 'x' + ch.toString(16);
19435 }
19436 out += '&#' + ch + ';';
19437 }
19438
19439 return out;
19440};
19441
19442/**
19443 * Renderer
19444 */
19445
19446function Renderer(options) {
19447 this.options = options || {};
19448}
19449
19450Renderer.prototype.code = function(code, lang, escaped) {
19451 if (this.options.highlight) {
19452 var out = this.options.highlight(code, lang);
19453 if (out != null && out !== code) {
19454 escaped = true;
19455 code = out;
19456 }
19457 }
19458
19459 if (!lang) {
19460 return '<pre><code>'
19461 + (escaped ? code : escape(code, true))
19462 + '\n</code></pre>';
19463 }
19464
19465 return '<pre><code class="'
19466 + this.options.langPrefix
19467 + escape(lang, true)
19468 + '">'
19469 + (escaped ? code : escape(code, true))
19470 + '\n</code></pre>\n';
19471};
19472
19473Renderer.prototype.blockquote = function(quote) {
19474 return '<blockquote>\n' + quote + '</blockquote>\n';
19475};
19476
19477Renderer.prototype.html = function(html) {
19478 return html;
19479};
19480
19481Renderer.prototype.heading = function(text, level, raw) {
19482 return '<h'
19483 + level
19484 + ' id="'
19485 + this.options.headerPrefix
19486 + raw.toLowerCase().replace(/[^\w]+/g, '-')
19487 + '">'
19488 + text
19489 + '</h'
19490 + level
19491 + '>\n';
19492};
19493
19494Renderer.prototype.hr = function() {
19495 return '<hr>\n';
19496};
19497
19498Renderer.prototype.list = function(body, ordered) {
19499 var type = ordered ? 'ol' : 'ul';
19500 return '<' + type + '>\n' + body + '</' + type + '>\n';
19501};
19502
19503Renderer.prototype.listitem = function(text) {
19504 return '<li>' + text + '</li>\n';
19505};
19506
19507Renderer.prototype.paragraph = function(text) {
19508 return '<p>' + text + '</p>\n';
19509};
19510
19511Renderer.prototype.table = function(header, body) {
19512 return '<table>\n'
19513 + '<thead>\n'
19514 + header
19515 + '</thead>\n'
19516 + '<tbody>\n'
19517 + body
19518 + '</tbody>\n'
19519 + '</table>\n';
19520};
19521
19522Renderer.prototype.tablerow = function(content) {
19523 return '<tr>\n' + content + '</tr>\n';
19524};
19525
19526Renderer.prototype.tablecell = function(content, flags) {
19527 var type = flags.header ? 'th' : 'td';
19528 var tag = flags.align
19529 ? '<' + type + ' style="text-align:' + flags.align + '">'
19530 : '<' + type + '>';
19531 return tag + content + '</' + type + '>\n';
19532};
19533
19534// span level renderer
19535Renderer.prototype.strong = function(text) {
19536 return '<strong>' + text + '</strong>';
19537};
19538
19539Renderer.prototype.em = function(text) {
19540 return '<em>' + text + '</em>';
19541};
19542
19543Renderer.prototype.codespan = function(text) {
19544 return '<code>' + text + '</code>';
19545};
19546
19547Renderer.prototype.br = function() {
19548 return '<br>';
19549};
19550
19551Renderer.prototype.del = function(text) {
19552 return '<del>' + text + '</del>';
19553};
19554
19555Renderer.prototype.link = function(href, title, text) {
19556 if (this.options.sanitize) {
19557 try {
19558 var prot = decodeURIComponent(unescape(href))
19559 .replace(/[^\w:]/g, '')
19560 .toLowerCase();
19561 } catch (e) {
19562 return '';
19563 }
19564 if (prot.indexOf('javascript:') === 0) {
19565 return '';
19566 }
19567 }
19568 var out = '<a href="' + href + '"';
19569 if (title) {
19570 out += ' title="' + title + '"';
19571 }
19572 out += '>' + text + '</a>';
19573 return out;
19574};
19575
19576Renderer.prototype.image = function(href, title, text) {
19577 var out = '<img src="' + href + '" alt="' + text + '"';
19578 if (title) {
19579 out += ' title="' + title + '"';
19580 }
19581 out += '>';
19582 return out;
19583};
19584
19585/**
19586 * Parsing & Compiling
19587 */
19588
19589function Parser(options) {
19590 this.tokens = [];
19591 this.token = null;
19592 this.options = options || marked.defaults;
19593 this.options.renderer = this.options.renderer || new Renderer;
19594 this.renderer = this.options.renderer;
19595 this.renderer.options = this.options;
19596}
19597
19598/**
19599 * Static Parse Method
19600 */
19601
19602Parser.parse = function(src, options, renderer) {
19603 var parser = new Parser(options, renderer);
19604 return parser.parse(src);
19605};
19606
19607/**
19608 * Parse Loop
19609 */
19610
19611Parser.prototype.parse = function(src) {
19612 this.inline = new InlineLexer(src.links, this.options, this.renderer);
19613 this.tokens = src.reverse();
19614
19615 var out = '';
19616 while (this.next()) {
19617 out += this.tok();
19618 }
19619
19620 return out;
19621};
19622
19623/**
19624 * Next Token
19625 */
19626
19627Parser.prototype.next = function() {
19628 return this.token = this.tokens.pop();
19629};
19630
19631/**
19632 * Preview Next Token
19633 */
19634
19635Parser.prototype.peek = function() {
19636 return this.tokens[this.tokens.length - 1] || 0;
19637};
19638
19639/**
19640 * Parse Text Tokens
19641 */
19642
19643Parser.prototype.parseText = function() {
19644 var body = this.token.text;
19645
19646 while (this.peek().type === 'text') {
19647 body += '\n' + this.next().text;
19648 }
19649
19650 return this.inline.output(body);
19651};
19652
19653/**
19654 * Parse Current Token
19655 */
19656
19657Parser.prototype.tok = function() {
19658 switch (this.token.type) {
19659 case 'space': {
19660 return '';
19661 }
19662 case 'hr': {
19663 return this.renderer.hr();
19664 }
19665 case 'heading': {
19666 return this.renderer.heading(
19667 this.inline.output(this.token.text),
19668 this.token.depth,
19669 this.token.text);
19670 }
19671 case 'code': {
19672 return this.renderer.code(this.token.text,
19673 this.token.lang,
19674 this.token.escaped);
19675 }
19676 case 'table': {
19677 var header = ''
19678 , body = ''
19679 , i
19680 , row
19681 , cell
19682 , flags
19683 , j;
19684
19685 // header
19686 cell = '';
19687 for (i = 0; i < this.token.header.length; i++) {
19688 flags = { header: true, align: this.token.align[i] };
19689 cell += this.renderer.tablecell(
19690 this.inline.output(this.token.header[i]),
19691 { header: true, align: this.token.align[i] }
19692 );
19693 }
19694 header += this.renderer.tablerow(cell);
19695
19696 for (i = 0; i < this.token.cells.length; i++) {
19697 row = this.token.cells[i];
19698
19699 cell = '';
19700 for (j = 0; j < row.length; j++) {
19701 cell += this.renderer.tablecell(
19702 this.inline.output(row[j]),
19703 { header: false, align: this.token.align[j] }
19704 );
19705 }
19706
19707 body += this.renderer.tablerow(cell);
19708 }
19709 return this.renderer.table(header, body);
19710 }
19711 case 'blockquote_start': {
19712 var body = '';
19713
19714 while (this.next().type !== 'blockquote_end') {
19715 body += this.tok();
19716 }
19717
19718 return this.renderer.blockquote(body);
19719 }
19720 case 'list_start': {
19721 var body = ''
19722 , ordered = this.token.ordered;
19723
19724 while (this.next().type !== 'list_end') {
19725 body += this.tok();
19726 }
19727
19728 return this.renderer.list(body, ordered);
19729 }
19730 case 'list_item_start': {
19731 var body = '';
19732
19733 while (this.next().type !== 'list_item_end') {
19734 body += this.token.type === 'text'
19735 ? this.parseText()
19736 : this.tok();
19737 }
19738
19739 return this.renderer.listitem(body);
19740 }
19741 case 'loose_item_start': {
19742 var body = '';
19743
19744 while (this.next().type !== 'list_item_end') {
19745 body += this.tok();
19746 }
19747
19748 return this.renderer.listitem(body);
19749 }
19750 case 'html': {
19751 var html = !this.token.pre && !this.options.pedantic
19752 ? this.inline.output(this.token.text)
19753 : this.token.text;
19754 return this.renderer.html(html);
19755 }
19756 case 'paragraph': {
19757 return this.renderer.paragraph(this.inline.output(this.token.text));
19758 }
19759 case 'text': {
19760 return this.renderer.paragraph(this.parseText());
19761 }
19762 }
19763};
19764
19765/**
19766 * Helpers
19767 */
19768
19769function escape(html, encode) {
19770 return html
19771 .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;')
19772 .replace(/</g, '&lt;')
19773 .replace(/>/g, '&gt;')
19774 .replace(/"/g, '&quot;')
19775 .replace(/'/g, '&#39;');
19776}
19777
19778function unescape(html) {
19779 return html.replace(/&([#\w]+);/g, function(_, n) {
19780 n = n.toLowerCase();
19781 if (n === 'colon') return ':';
19782 if (n.charAt(0) === '#') {
19783 return n.charAt(1) === 'x'
19784 ? String.fromCharCode(parseInt(n.substring(2), 16))
19785 : String.fromCharCode(+n.substring(1));
19786 }
19787 return '';
19788 });
19789}
19790
19791function replace(regex, opt) {
19792 regex = regex.source;
19793 opt = opt || '';
19794 return function self(name, val) {
19795 if (!name) return new RegExp(regex, opt);
19796 val = val.source || val;
19797 val = val.replace(/(^|[^\[])\^/g, '$1');
19798 regex = regex.replace(name, val);
19799 return self;
19800 };
19801}
19802
19803function noop() {}
19804noop.exec = noop;
19805
19806function merge(obj) {
19807 var i = 1
19808 , target
19809 , key;
19810
19811 for (; i < arguments.length; i++) {
19812 target = arguments[i];
19813 for (key in target) {
19814 if (Object.prototype.hasOwnProperty.call(target, key)) {
19815 obj[key] = target[key];
19816 }
19817 }
19818 }
19819
19820 return obj;
19821}
19822
19823
19824/**
19825 * Marked
19826 */
19827
19828function marked(src, opt, callback) {
19829 if (callback || typeof opt === 'function') {
19830 if (!callback) {
19831 callback = opt;
19832 opt = null;
19833 }
19834
19835 opt = merge({}, marked.defaults, opt || {});
19836
19837 var highlight = opt.highlight
19838 , tokens
19839 , pending
19840 , i = 0;
19841
19842 try {
19843 tokens = Lexer.lex(src, opt)
19844 } catch (e) {
19845 return callback(e);
19846 }
19847
19848 pending = tokens.length;
19849
19850 var done = function() {
19851 var out, err;
19852
19853 try {
19854 out = Parser.parse(tokens, opt);
19855 } catch (e) {
19856 err = e;
19857 }
19858
19859 opt.highlight = highlight;
19860
19861 return err
19862 ? callback(err)
19863 : callback(null, out);
19864 };
19865
19866 if (!highlight || highlight.length < 3) {
19867 return done();
19868 }
19869
19870 delete opt.highlight;
19871
19872 if (!pending) return done();
19873
19874 for (; i < tokens.length; i++) {
19875 (function(token) {
19876 if (token.type !== 'code') {
19877 return --pending || done();
19878 }
19879 return highlight(token.text, token.lang, function(err, code) {
19880 if (code == null || code === token.text) {
19881 return --pending || done();
19882 }
19883 token.text = code;
19884 token.escaped = true;
19885 --pending || done();
19886 });
19887 })(tokens[i]);
19888 }
19889
19890 return;
19891 }
19892 try {
19893 if (opt) opt = merge({}, marked.defaults, opt);
19894 return Parser.parse(Lexer.lex(src, opt), opt);
19895 } catch (e) {
19896 e.message += '\nPlease report this to https://github.com/chjj/marked.';
19897 if ((opt || marked.defaults).silent) {
19898 return '<p>An error occured:</p><pre>'
19899 + escape(e.message + '', true)
19900 + '</pre>';
19901 }
19902 throw e;
19903 }
19904}
19905
19906/**
19907 * Options
19908 */
19909
19910marked.options =
19911marked.setOptions = function(opt) {
19912 merge(marked.defaults, opt);
19913 return marked;
19914};
19915
19916marked.defaults = {
19917 gfm: true,
19918 tables: true,
19919 breaks: false,
19920 pedantic: false,
19921 sanitize: false,
19922 smartLists: false,
19923 silent: false,
19924 highlight: null,
19925 langPrefix: 'lang-',
19926 smartypants: false,
19927 headerPrefix: '',
19928 renderer: new Renderer
19929};
19930
19931/**
19932 * Expose
19933 */
19934
19935marked.Parser = Parser;
19936marked.parser = Parser.parse;
19937
19938marked.Renderer = Renderer;
19939
19940marked.Lexer = Lexer;
19941marked.lexer = Lexer.lex;
19942
19943marked.InlineLexer = InlineLexer;
19944marked.inlineLexer = InlineLexer.output;
19945
19946marked.parse = marked;
19947
19948if (typeof exports === 'object') {
19949 module.exports = marked;
19950} else if (typeof define === 'function' && define.amd) {
19951 define(function() { return marked; });
19952} else {
19953 this.marked = marked;
19954}
19955
19956}).call(function() {
19957 return this || (typeof window !== 'undefined' ? window : global);
19958}());
19959
19960})(window)
19961},{}]},{},[3])
19962;</script>
19963 <script>
19964 var slideshow = remark.create();
19965 </script>
19966 <script></script>
19967 </body>
19968</html>
19969

Built with git-ssb-web