showoffer 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +20 -0
- data/README.rdoc +559 -0
- data/Rakefile +27 -0
- data/bin/showoffer +189 -0
- data/lib/commandline_parser.rb +67 -0
- data/lib/showoff.rb +515 -0
- data/lib/showoff/version.rb +3 -0
- data/lib/showoff_utils.rb +360 -0
- data/public/css/960.css +653 -0
- data/public/css/fg.menu.css +114 -0
- data/public/css/onepage.css +60 -0
- data/public/css/pdf.css +12 -0
- data/public/css/presenter.css +76 -0
- data/public/css/reset.css +53 -0
- data/public/css/sh_style.css +66 -0
- data/public/css/showoff.css +403 -0
- data/public/css/spinner_bar.gif +0 -0
- data/public/css/theme/images/ui-bg_diagonals-small_100_f0efea_40x40.png +0 -0
- data/public/css/theme/images/ui-bg_flat_35_f0f0f0_40x100.png +0 -0
- data/public/css/theme/images/ui-bg_glass_55_fcf0ba_1x400.png +0 -0
- data/public/css/theme/images/ui-bg_glow-ball_25_2e2e28_600x600.png +0 -0
- data/public/css/theme/images/ui-bg_highlight-soft_100_f0efea_1x100.png +0 -0
- data/public/css/theme/images/ui-bg_highlight-soft_25_327E04_1x100.png +0 -0
- data/public/css/theme/images/ui-bg_highlight-soft_25_5A9D1A_1x100.png +0 -0
- data/public/css/theme/images/ui-bg_highlight-soft_95_ffedad_1x100.png +0 -0
- data/public/css/theme/images/ui-bg_inset-soft_22_3b3b35_1x100.png +0 -0
- data/public/css/theme/images/ui-icons_808080_256x240.png +0 -0
- data/public/css/theme/images/ui-icons_8DC262_256x240.png +0 -0
- data/public/css/theme/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/css/theme/images/ui-icons_e7e6e4_256x240.png +0 -0
- data/public/css/theme/images/ui-icons_eeeeee_256x240.png +0 -0
- data/public/css/theme/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/theme/ui.accordion.css +9 -0
- data/public/css/theme/ui.all.css +2 -0
- data/public/css/theme/ui.base.css +9 -0
- data/public/css/theme/ui.core.css +37 -0
- data/public/css/theme/ui.datepicker.css +62 -0
- data/public/css/theme/ui.dialog.css +13 -0
- data/public/css/theme/ui.progressbar.css +4 -0
- data/public/css/theme/ui.resizable.css +13 -0
- data/public/css/theme/ui.slider.css +17 -0
- data/public/css/theme/ui.tabs.css +9 -0
- data/public/css/theme/ui.theme.css +245 -0
- data/public/favicon.ico +0 -0
- data/public/highlight/AUTHORS.en.txt +46 -0
- data/public/highlight/AUTHORS.ru.txt +46 -0
- data/public/highlight/LICENSE +24 -0
- data/public/highlight/README.md +136 -0
- data/public/highlight/README.ru.md +140 -0
- data/public/highlight/classref.txt +437 -0
- data/public/highlight/export.html +87 -0
- data/public/highlight/highlight.js +630 -0
- data/public/highlight/highlight.pack.js +1 -0
- data/public/highlight/languages/1c.js +68 -0
- data/public/highlight/languages/apache.js +432 -0
- data/public/highlight/languages/avrasm.js +75 -0
- data/public/highlight/languages/axapta.js +43 -0
- data/public/highlight/languages/bash.js +56 -0
- data/public/highlight/languages/cmake.js +24 -0
- data/public/highlight/languages/cpp.js +62 -0
- data/public/highlight/languages/cs.js +41 -0
- data/public/highlight/languages/css.js +101 -0
- data/public/highlight/languages/delphi.js +70 -0
- data/public/highlight/languages/diff.js +64 -0
- data/public/highlight/languages/django.js +72 -0
- data/public/highlight/languages/dos.js +29 -0
- data/public/highlight/languages/erlang-repl.js +81 -0
- data/public/highlight/languages/erlang.js +201 -0
- data/public/highlight/languages/go.js +58 -0
- data/public/highlight/languages/haskell.js +77 -0
- data/public/highlight/languages/ini.js +32 -0
- data/public/highlight/languages/java.js +45 -0
- data/public/highlight/languages/javascript.js +53 -0
- data/public/highlight/languages/lisp.js +87 -0
- data/public/highlight/languages/lua.js +75 -0
- data/public/highlight/languages/mel.js +40 -0
- data/public/highlight/languages/nginx.js +224 -0
- data/public/highlight/languages/objectivec.js +94 -0
- data/public/highlight/languages/parser3.js +52 -0
- data/public/highlight/languages/perl.js +143 -0
- data/public/highlight/languages/php.js +55 -0
- data/public/highlight/languages/profile.js +49 -0
- data/public/highlight/languages/python.js +71 -0
- data/public/highlight/languages/renderman.js +230 -0
- data/public/highlight/languages/ruby.js +203 -0
- data/public/highlight/languages/scala.js +60 -0
- data/public/highlight/languages/smalltalk.js +55 -0
- data/public/highlight/languages/sql.js +90 -0
- data/public/highlight/languages/tex.js +62 -0
- data/public/highlight/languages/vala.js +75 -0
- data/public/highlight/languages/vbscript.js +30 -0
- data/public/highlight/languages/vhdl.js +30 -0
- data/public/highlight/languages/xml.js +103 -0
- data/public/highlight/styles/arta.css +151 -0
- data/public/highlight/styles/ascetic.css +45 -0
- data/public/highlight/styles/brown_paper.css +105 -0
- data/public/highlight/styles/brown_papersq.png +0 -0
- data/public/highlight/styles/dark.css +103 -0
- data/public/highlight/styles/default.css +121 -0
- data/public/highlight/styles/far.css +118 -0
- data/public/highlight/styles/github.css +129 -0
- data/public/highlight/styles/idea.css +118 -0
- data/public/highlight/styles/ir_black.css +103 -0
- data/public/highlight/styles/magula.css +118 -0
- data/public/highlight/styles/school_book.css +111 -0
- data/public/highlight/styles/school_book.png +0 -0
- data/public/highlight/styles/solarized_dark.css +96 -0
- data/public/highlight/styles/solarized_light.css +96 -0
- data/public/highlight/styles/sunburst.css +147 -0
- data/public/highlight/styles/vs.css +84 -0
- data/public/highlight/styles/zenburn.css +115 -0
- data/public/highlight/test.html +1609 -0
- data/public/js/coffee-script.js +8 -0
- data/public/js/core.js +79 -0
- data/public/js/fg.menu.js +645 -0
- data/public/js/jTypeWriter.js +26 -0
- data/public/js/jquery-1.4.2.min.js +154 -0
- data/public/js/jquery-print.js +109 -0
- data/public/js/jquery.batchImageLoad.js +56 -0
- data/public/js/jquery.cookie.js +96 -0
- data/public/js/jquery.cycle.all.js +1284 -0
- data/public/js/jquery.doubletap-0.1.js +105 -0
- data/public/js/jquery.uuid.js +24 -0
- data/public/js/jquery.ws-0.3pre.js +201 -0
- data/public/js/onepage.js +5 -0
- data/public/js/presenter.js +193 -0
- data/public/js/sh_lang/sh_bison.min.js +1 -0
- data/public/js/sh_lang/sh_c.min.js +1 -0
- data/public/js/sh_lang/sh_caml.min.js +1 -0
- data/public/js/sh_lang/sh_changelog.min.js +1 -0
- data/public/js/sh_lang/sh_coffeescript.min.js +1 -0
- data/public/js/sh_lang/sh_cpp.min.js +1 -0
- data/public/js/sh_lang/sh_csharp.min.js +1 -0
- data/public/js/sh_lang/sh_css.min.js +1 -0
- data/public/js/sh_lang/sh_cucumber.min.js +2 -0
- data/public/js/sh_lang/sh_desktop.min.js +1 -0
- data/public/js/sh_lang/sh_diff.min.js +1 -0
- data/public/js/sh_lang/sh_erlang.min.js +1 -0
- data/public/js/sh_lang/sh_flex.min.js +1 -0
- data/public/js/sh_lang/sh_glsl.min.js +1 -0
- data/public/js/sh_lang/sh_haxe.min.js +1 -0
- data/public/js/sh_lang/sh_html.min.js +1 -0
- data/public/js/sh_lang/sh_java.min.js +1 -0
- data/public/js/sh_lang/sh_javascript.min.js +1 -0
- data/public/js/sh_lang/sh_javascript_dom.min.js +1 -0
- data/public/js/sh_lang/sh_latex.min.js +1 -0
- data/public/js/sh_lang/sh_ldap.min.js +1 -0
- data/public/js/sh_lang/sh_log.min.js +1 -0
- data/public/js/sh_lang/sh_lsm.min.js +1 -0
- data/public/js/sh_lang/sh_m4.min.js +1 -0
- data/public/js/sh_lang/sh_makefile.min.js +1 -0
- data/public/js/sh_lang/sh_oracle.min.js +1 -0
- data/public/js/sh_lang/sh_pascal.min.js +1 -0
- data/public/js/sh_lang/sh_perl.min.js +1 -0
- data/public/js/sh_lang/sh_php.min.js +1 -0
- data/public/js/sh_lang/sh_prolog.min.js +1 -0
- data/public/js/sh_lang/sh_properties.min.js +1 -0
- data/public/js/sh_lang/sh_python.min.js +1 -0
- data/public/js/sh_lang/sh_ruby.min.js +1 -0
- data/public/js/sh_lang/sh_scala.min.js +1 -0
- data/public/js/sh_lang/sh_sh.min.js +1 -0
- data/public/js/sh_lang/sh_slang.min.js +1 -0
- data/public/js/sh_lang/sh_sml.min.js +1 -0
- data/public/js/sh_lang/sh_spec.min.js +1 -0
- data/public/js/sh_lang/sh_sql.min.js +1 -0
- data/public/js/sh_lang/sh_tcl.min.js +1 -0
- data/public/js/sh_lang/sh_xml.min.js +1 -0
- data/public/js/sh_lang/sh_xorg.min.js +1 -0
- data/public/js/sh_main.min.js +4 -0
- data/public/js/showoff.js +652 -0
- data/public/js/showoffcore.js +13 -0
- data/public/scripts/script.js +280 -0
- data/public/themes/ribbon/fonts/DroidSansMono.svg +626 -0
- data/public/themes/ribbon/fonts/DroidSansMono.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.Bold.Italic.svg +728 -0
- data/public/themes/ribbon/fonts/PTSans.Bold.Italic.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.Bold.Italic.woff +0 -0
- data/public/themes/ribbon/fonts/PTSans.Bold.svg +728 -0
- data/public/themes/ribbon/fonts/PTSans.Bold.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.Bold.woff +0 -0
- data/public/themes/ribbon/fonts/PTSans.Italic.svg +728 -0
- data/public/themes/ribbon/fonts/PTSans.Italic.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.Italic.woff +0 -0
- data/public/themes/ribbon/fonts/PTSans.Narrow.Bold.svg +728 -0
- data/public/themes/ribbon/fonts/PTSans.Narrow.Bold.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.Narrow.Bold.woff +0 -0
- data/public/themes/ribbon/fonts/PTSans.Narrow.svg +728 -0
- data/public/themes/ribbon/fonts/PTSans.Narrow.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.Narrow.woff +0 -0
- data/public/themes/ribbon/fonts/PTSans.svg +728 -0
- data/public/themes/ribbon/fonts/PTSans.ttf +0 -0
- data/public/themes/ribbon/fonts/PTSans.woff +0 -0
- data/public/themes/ribbon/fonts/TargetBlank.otf +0 -0
- data/public/themes/ribbon/fonts/TargetBlank.svg +14 -0
- data/public/themes/ribbon/images/grid.png +0 -0
- data/public/themes/ribbon/images/linen.png +0 -0
- data/public/themes/ribbon/images/ribbon.svg +4 -0
- data/public/themes/ribbon/styles/fonts.css +63 -0
- data/public/themes/ribbon/styles/print.css +68 -0
- data/public/themes/ribbon/styles/reset.css +42 -0
- data/public/themes/ribbon/styles/style.css +408 -0
- data/views/header.erb +11 -0
- data/views/index.erb +13 -0
- data/views/onepage.erb +39 -0
- data/views/presenter.erb +70 -0
- metadata +328 -0
@@ -0,0 +1,75 @@
|
|
1
|
+
/*
|
2
|
+
Language: AVR Assembler
|
3
|
+
Author: Vladimir Ermakov <vooon341@gmail.com>
|
4
|
+
*/
|
5
|
+
|
6
|
+
hljs.LANGUAGES.avrasm =
|
7
|
+
{
|
8
|
+
case_insensitive: true,
|
9
|
+
defaultMode: {
|
10
|
+
keywords: {
|
11
|
+
'keyword': {
|
12
|
+
/* mnemonic */
|
13
|
+
'adc': 1, 'add': 1 , 'adiw': 1 , 'and': 1 , 'andi': 1 , 'asr': 1 , 'bclr': 1 , 'bld': 1 , 'brbc': 1 , 'brbs': 1 , 'brcc': 1 ,
|
14
|
+
'brcs': 1, 'break': 1, 'breq': 1, 'brge': 1, 'brhc': 1, 'brhs': 1, 'brid': 1, 'brie': 1, 'brlo': 1, 'brlt': 1, 'brmi': 1,
|
15
|
+
'brne': 1, 'brpl': 1, 'brsh': 1, 'brtc': 1, 'brts': 1, 'brvc': 1, 'brvs': 1, 'bset': 1, 'bst': 1, 'call': 1, 'cbi': 1,
|
16
|
+
'cbr': 1, 'clc': 1, 'clh': 1, 'cli': 1, 'cln': 1, 'clr': 1, 'cls': 1, 'clt': 1, 'clv': 1, 'clz': 1, 'com': 1, 'cp': 1,
|
17
|
+
'cpc': 1, 'cpi': 1, 'cpse': 1, 'dec': 1, 'eicall': 1, 'eijmp': 1, 'elpm': 1, 'eor': 1, 'fmul': 1, 'fmuls': 1, 'fmulsu': 1,
|
18
|
+
'icall': 1, 'ijmp': 1, 'in': 1, 'inc': 1, 'jmp': 1, 'ld': 1, 'ldd': 1, 'ldi': 1, 'lds': 1, 'lpm': 1, 'lsl': 1, 'lsr': 1,
|
19
|
+
'mov': 1, 'movw': 1, 'mul': 1, 'muls': 1, 'mulsu': 1, 'neg': 1, 'nop': 1, 'or': 1, 'ori': 1, 'out': 1, 'pop': 1, 'push': 1,
|
20
|
+
'rcall': 1, 'ret': 1, 'reti': 1, 'rjmp': 1, 'rol': 1, 'ror': 1, 'sbc': 1, 'sbr': 1, 'sbrc': 1, 'sbrs': 1, 'sec': 1, 'seh': 1,
|
21
|
+
'sbi': 1, 'sbci': 1, 'sbic': 1, 'sbis': 1, 'sbiw': 1, 'sei': 1, 'sen': 1, 'ser': 1, 'ses': 1, 'set': 1, 'sev': 1, 'sez': 1,
|
22
|
+
'sleep': 1, 'spm': 1, 'st': 1, 'std': 1, 'sts': 1, 'sub': 1, 'subi': 1, 'swap': 1, 'tst': 1, 'wdr': 1
|
23
|
+
},
|
24
|
+
'built_in': {
|
25
|
+
/* general purpose registers */
|
26
|
+
'r0': 1, 'r1': 1, 'r2': 1, 'r3': 1, 'r4': 1, 'r5': 1, 'r6': 1, 'r7': 1, 'r8': 1, 'r9': 1, 'r10': 1, 'r11': 1, 'r12': 1,
|
27
|
+
'r13': 1, 'r14': 1, 'r15': 1, 'r16': 1, 'r17': 1, 'r18': 1, 'r19': 1, 'r20': 1, 'r21': 1, 'r22': 1, 'r23': 1, 'r24': 1,
|
28
|
+
'r25': 1, 'r26': 1, 'r27': 1, 'r28': 1, 'r29': 1, 'r30': 1, 'r31': 1,
|
29
|
+
'x': 1 /* R27:R26 */, 'xh': 1 /* R27 */, 'xl': 1 /* R26 */,
|
30
|
+
'y': 1 /* R29:R28 */, 'yh': 1 /* R29 */, 'yl': 1 /* R28 */,
|
31
|
+
'z': 1 /* R31:R30 */, 'zh': 1 /* R31 */, 'zl': 1 /* R30 */,
|
32
|
+
/* IO Registers (ATMega128) */
|
33
|
+
'ucsr1c': 1, 'udr1': 1, 'ucsr1a': 1, 'ucsr1b': 1, 'ubrr1l': 1, 'ubrr1h': 1, 'ucsr0c': 1, 'ubrr0h': 1, 'tccr3c': 1,
|
34
|
+
'tccr3a': 1, 'tccr3b': 1, 'tcnt3h': 1, 'tcnt3l': 1, 'ocr3ah': 1, 'ocr3al': 1, 'ocr3bh': 1, 'ocr3bl': 1, 'ocr3ch': 1,
|
35
|
+
'ocr3cl': 1, 'icr3h': 1, 'icr3l': 1, 'etimsk': 1, 'etifr': 1, 'tccr1c': 1, 'ocr1ch': 1, 'ocr1cl': 1, 'twcr': 1,
|
36
|
+
'twdr': 1, 'twar': 1, 'twsr': 1, 'twbr': 1, 'osccal': 1, 'xmcra': 1, 'xmcrb': 1, 'eicra': 1, 'spmcsr': 1, 'spmcr': 1,
|
37
|
+
'portg': 1, 'ddrg': 1, 'ping': 1, 'portf': 1, 'ddrf': 1, 'sreg': 1, 'sph': 1, 'spl': 1, 'xdiv': 1, 'rampz': 1,
|
38
|
+
'eicrb': 1, 'eimsk': 1, 'gimsk': 1, 'gicr': 1, 'eifr': 1, 'gifr': 1, 'timsk': 1, 'tifr': 1, 'mcucr': 1,
|
39
|
+
'mcucsr': 1, 'tccr0': 1, 'tcnt0': 1, 'ocr0': 1, 'assr': 1, 'tccr1a': 1, 'tccr1b': 1, 'tcnt1h': 1, 'tcnt1l': 1,
|
40
|
+
'ocr1ah': 1, 'ocr1al': 1, 'ocr1bh': 1, 'ocr1bl': 1, 'icr1h': 1, 'icr1l': 1, 'tccr2': 1, 'tcnt2': 1, 'ocr2': 1,
|
41
|
+
'ocdr': 1, 'wdtcr': 1, 'sfior': 1, 'eearh': 1, 'eearl': 1, 'eedr': 1, 'eecr': 1, 'porta': 1, 'ddra': 1, 'pina': 1,
|
42
|
+
'portb': 1, 'ddrb': 1, 'pinb': 1, 'portc': 1, 'ddrc': 1, 'pinc': 1, 'portd': 1, 'ddrd': 1, 'pind': 1, 'spdr': 1,
|
43
|
+
'spsr': 1, 'spcr': 1, 'udr0': 1, 'ucsr0a': 1, 'ucsr0b': 1, 'ubrr0l': 1, 'acsr': 1, 'admux': 1, 'adcsr': 1, 'adch': 1,
|
44
|
+
'adcl': 1, 'porte': 1, 'ddre': 1, 'pine': 1, 'pinf': 1
|
45
|
+
}
|
46
|
+
},
|
47
|
+
contains: [
|
48
|
+
hljs.C_BLOCK_COMMENT_MODE,
|
49
|
+
{className: 'comment', begin: ';', end: '$'},
|
50
|
+
hljs.C_NUMBER_MODE,
|
51
|
+
/*{ // Hex: 0x00, $00; Oct: 0o00; Bin: 0b00000000; Dec: 0
|
52
|
+
// пока что-то не получается :(, буду использовать сишную моду.
|
53
|
+
className: 'number',
|
54
|
+
begin: '((0[xX]|\$)[A-Fa-f0-9]+|0[oO][0-7]+|0[bB][0-1]+|\\d+)'
|
55
|
+
}*/
|
56
|
+
hljs.QUOTE_STRING_MODE,
|
57
|
+
{
|
58
|
+
className: 'string',
|
59
|
+
begin: '\'', end: '[^\\\\]\'',
|
60
|
+
illegal: '[^\\\\][^\']'
|
61
|
+
},
|
62
|
+
{className: 'label', begin: '^[A-Za-z0-9_.$]+:'},
|
63
|
+
{className: 'preprocessor', begin: '#', end: '$'},
|
64
|
+
{ // директивы «.include» «.macro» и т.д.
|
65
|
+
className: 'preprocessor',
|
66
|
+
begin: '\\.[a-zA-Z]+'
|
67
|
+
},
|
68
|
+
{ // подстановка в «.macro»
|
69
|
+
className: 'localvars',
|
70
|
+
begin: '@[0-9]+'
|
71
|
+
}
|
72
|
+
]
|
73
|
+
}
|
74
|
+
};
|
75
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/*
|
2
|
+
Language: Axapta
|
3
|
+
Author: Dmitri Roudakov <dmitri@roudakov.ru>
|
4
|
+
*/
|
5
|
+
|
6
|
+
hljs.LANGUAGES.axapta = {
|
7
|
+
defaultMode: {
|
8
|
+
keywords: {'false': 1, 'int': 1, 'abstract': 1, 'private': 1, 'char': 1, 'interface': 1, 'boolean': 1, 'static': 1, 'null': 1, 'if': 1, 'for': 1, 'true': 1, 'while': 1, 'long': 1, 'throw': 1, 'finally': 1, 'protected': 1, 'extends': 1, 'final': 1, 'implements': 1, 'return': 1, 'void': 1, 'enum': 1, 'else': 1, 'break': 1, 'new': 1, 'catch': 1, 'byte': 1, 'super': 1, 'class': 1, 'case': 1, 'short': 1, 'default': 1, 'double': 1, 'public': 1, 'try': 1, 'this': 1, 'switch': 1, 'continue': 1,
|
9
|
+
'reverse':1, 'firstfast':1,'firstonly':1,'forupdate':1,'nofetch':1, 'sum':1, 'avg':1, 'minof':1, 'maxof':1, 'count':1, 'order':1, 'group':1, 'by':1, 'asc':1, 'desc':1, 'index':1, 'hint':1, 'like':1,
|
10
|
+
'dispaly':1, 'edit':1, 'client':1, 'server':1, 'ttsbegin':1, 'ttscommit':1,
|
11
|
+
'str':1, 'real':1, 'date':1, 'container':1, 'anytype':1, 'common':1, 'div':1,'mod':1
|
12
|
+
},
|
13
|
+
contains: [
|
14
|
+
hljs.C_LINE_COMMENT_MODE,
|
15
|
+
hljs.C_BLOCK_COMMENT_MODE,
|
16
|
+
hljs.APOS_STRING_MODE,
|
17
|
+
hljs.QUOTE_STRING_MODE,
|
18
|
+
hljs.C_NUMBER_MODE,
|
19
|
+
{
|
20
|
+
className: 'preprocessor',
|
21
|
+
begin: '#', end: '$'
|
22
|
+
},
|
23
|
+
{
|
24
|
+
className: 'class',
|
25
|
+
begin: '(class |interface )', end: '{',
|
26
|
+
illegal: ':',
|
27
|
+
keywords: {'class': 1, 'interface': 1},
|
28
|
+
contains: [
|
29
|
+
{
|
30
|
+
className: 'inheritance',
|
31
|
+
begin: '(implements|extends)',
|
32
|
+
keywords: {'extends': 1, 'implements': 1},
|
33
|
+
relevance: 10
|
34
|
+
},
|
35
|
+
{
|
36
|
+
className: 'title',
|
37
|
+
begin: hljs.UNDERSCORE_IDENT_RE
|
38
|
+
}
|
39
|
+
]
|
40
|
+
}
|
41
|
+
]
|
42
|
+
}
|
43
|
+
};
|
@@ -0,0 +1,56 @@
|
|
1
|
+
/*
|
2
|
+
Language: Bash
|
3
|
+
Author: vah <vahtenberg@gmail.com>
|
4
|
+
*/
|
5
|
+
|
6
|
+
hljs.LANGUAGES.bash = function(){
|
7
|
+
var BASH_LITERAL = {'true' : 1, 'false' : 1};
|
8
|
+
var VAR1 = {
|
9
|
+
className: 'variable',
|
10
|
+
begin: '\\$([a-zA-Z0-9_]+)\\b'
|
11
|
+
};
|
12
|
+
var VAR2 = {
|
13
|
+
className: 'variable',
|
14
|
+
begin: '\\$\\{(([^}])|(\\\\}))+\\}',
|
15
|
+
contains: [hljs.C_NUMBER_MODE]
|
16
|
+
};
|
17
|
+
var STRING = {
|
18
|
+
className: 'string',
|
19
|
+
begin: '"', end: '"',
|
20
|
+
illegal: '\\n',
|
21
|
+
contains: [hljs.BACKSLASH_ESCAPE, VAR1, VAR2],
|
22
|
+
relevance: 0
|
23
|
+
};
|
24
|
+
var TEST_CONDITION = {
|
25
|
+
className: 'test_condition',
|
26
|
+
begin: '', end: '',
|
27
|
+
contains: [STRING, VAR1, VAR2, hljs.C_NUMBER_MODE],
|
28
|
+
keywords: {
|
29
|
+
'literal': BASH_LITERAL
|
30
|
+
},
|
31
|
+
relevance: 0
|
32
|
+
};
|
33
|
+
|
34
|
+
return {
|
35
|
+
defaultMode: {
|
36
|
+
keywords: {
|
37
|
+
'keyword': {'if' : 1, 'then' : 1, 'else' : 1, 'fi' : 1, 'for' : 1, 'break' : 1, 'continue' : 1, 'while' : 1, 'in' : 1, 'do' : 1, 'done' : 1, 'echo' : 1, 'exit' : 1, 'return' : 1, 'set' : 1, 'declare' : 1},
|
38
|
+
'literal': BASH_LITERAL
|
39
|
+
},
|
40
|
+
contains: [
|
41
|
+
{
|
42
|
+
className: 'shebang',
|
43
|
+
begin: '(#!\\/bin\\/bash)|(#!\\/bin\\/sh)',
|
44
|
+
relevance: 10
|
45
|
+
},
|
46
|
+
hljs.HASH_COMMENT_MODE,
|
47
|
+
hljs.C_NUMBER_MODE,
|
48
|
+
STRING,
|
49
|
+
VAR1,
|
50
|
+
VAR2,
|
51
|
+
hljs.inherit(TEST_CONDITION, {begin: '\\[ ', end: ' \\]', relevance: 0}),
|
52
|
+
hljs.inherit(TEST_CONDITION, {begin: '\\[\\[ ', end: ' \\]\\]'})
|
53
|
+
]
|
54
|
+
}
|
55
|
+
};
|
56
|
+
}();
|
@@ -0,0 +1,24 @@
|
|
1
|
+
/*
|
2
|
+
Language: CMake
|
3
|
+
Description: CMake is an open-source cross-platform system for build automation.
|
4
|
+
Author: Igor Kalnitsky <igor.kalnitsky@gmail.com>
|
5
|
+
Website: http://kalnitsky.org.ua/
|
6
|
+
*/
|
7
|
+
|
8
|
+
hljs.LANGUAGES.cmake = {
|
9
|
+
case_insensitive: true,
|
10
|
+
defaultMode: {
|
11
|
+
keywords: {
|
12
|
+
'add_custom_command': 2, 'add_custom_target': 2, 'add_definitions': 2, 'add_dependencies': 2, 'add_executable': 2, 'add_library': 2, 'add_subdirectory': 2, 'add_executable': 2, 'add_library': 2, 'add_subdirectory': 2, 'add_test': 2, 'aux_source_directory': 2, 'break': 1, 'build_command': 2, 'cmake_minimum_required': 3, 'cmake_policy': 3, 'configure_file': 1, 'create_test_sourcelist': 1, 'define_property': 1, 'else': 1, 'elseif': 1, 'enable_language': 2, 'enable_testing': 2, 'endforeach': 1, 'endfunction': 1, 'endif': 1, 'endmacro': 1, 'endwhile': 1, 'execute_process': 2, 'export': 1, 'find_file': 1, 'find_library': 2, 'find_package': 2, 'find_path': 1, 'find_program': 1, 'fltk_wrap_ui': 2, 'foreach': 1, 'function': 1, 'get_cmake_property': 3, 'get_directory_property': 1, 'get_filename_component': 1, 'get_property': 1, 'get_source_file_property': 1, 'get_target_property': 1, 'get_test_property': 1, 'if': 1, 'include': 1, 'include_directories': 2, 'include_external_msproject': 1, 'include_regular_expression': 2, 'install': 1, 'link_directories': 1, 'load_cache': 1, 'load_command': 1, 'macro': 1, 'mark_as_advanced': 1, 'message': 1, 'option': 1, 'output_required_files': 1, 'project': 1, 'qt_wrap_cpp': 2, 'qt_wrap_ui': 2, 'remove_definitions': 2, 'return': 1, 'separate_arguments': 1, 'set': 1, 'set_directory_properties': 1, 'set_property': 1, 'set_source_files_properties': 1, 'set_target_properties': 1, 'set_tests_properties': 1, 'site_name': 1, 'source_group': 1, 'string': 1, 'target_link_libraries': 2, 'try_compile': 2, 'try_run': 2, 'unset': 1, 'variable_watch': 2, 'while': 1, 'build_name': 1, 'exec_program': 1, 'export_library_dependencies': 1, 'install_files': 1, 'install_programs': 1, 'install_targets': 1, 'link_libraries': 1, 'make_directory': 1, 'remove': 1, 'subdir_depends': 1, 'subdirs': 1, 'use_mangled_mesa': 1, 'utility_source': 1, 'variable_requires': 1, 'write_file': 1 },
|
13
|
+
|
14
|
+
contains: [
|
15
|
+
{
|
16
|
+
className: 'envvar',
|
17
|
+
begin: '\\${', end: '}'
|
18
|
+
},
|
19
|
+
hljs.HASH_COMMENT_MODE,
|
20
|
+
hljs.QUOTE_STRING_MODE,
|
21
|
+
hljs.NUMBER_MODE
|
22
|
+
]
|
23
|
+
}
|
24
|
+
};
|
@@ -0,0 +1,62 @@
|
|
1
|
+
/*
|
2
|
+
Language: C++
|
3
|
+
*/
|
4
|
+
|
5
|
+
hljs.LANGUAGES.cpp = function(){
|
6
|
+
var CPP_KEYWORDS = {
|
7
|
+
'keyword': {
|
8
|
+
'false': 1, 'int': 1, 'float': 1, 'while': 1, 'private': 1, 'char': 1,
|
9
|
+
'catch': 1, 'export': 1, 'virtual': 1, 'operator': 2, 'sizeof': 2,
|
10
|
+
'dynamic_cast': 2, 'typedef': 2, 'const_cast': 2, 'const': 1,
|
11
|
+
'struct': 1, 'for': 1, 'static_cast': 2, 'union': 1, 'namespace': 1,
|
12
|
+
'unsigned': 1, 'long': 1, 'throw': 1, 'volatile': 2, 'static': 1,
|
13
|
+
'protected': 1, 'bool': 1, 'template': 1, 'mutable': 1, 'if': 1,
|
14
|
+
'public': 1, 'friend': 2, 'do': 1, 'return': 1, 'goto': 1, 'auto': 1,
|
15
|
+
'void': 2, 'enum': 1, 'else': 1, 'break': 1, 'new': 1, 'extern': 1,
|
16
|
+
'using': 1, 'true': 1, 'class': 1, 'asm': 1, 'case': 1, 'typeid': 1,
|
17
|
+
'short': 1, 'reinterpret_cast': 2, 'default': 1, 'double': 1,
|
18
|
+
'register': 1, 'explicit': 1, 'signed': 1, 'typename': 1, 'try': 1,
|
19
|
+
'this': 1, 'switch': 1, 'continue': 1, 'wchar_t': 1, 'inline': 1,
|
20
|
+
'delete': 1, 'alignof': 1, 'char16_t': 1, 'char32_t': 1, 'constexpr': 1,
|
21
|
+
'decltype': 1, 'noexcept': 1, 'nullptr': 1, 'static_assert': 1,
|
22
|
+
'thread_local': 1
|
23
|
+
},
|
24
|
+
'built_in': {
|
25
|
+
'std': 1, 'string': 1, 'cin': 1, 'cout': 1, 'cerr': 1, 'clog': 1,
|
26
|
+
'stringstream': 1, 'istringstream': 1, 'ostringstream': 1, 'auto_ptr': 1,
|
27
|
+
'deque': 1, 'list': 1, 'queue': 1, 'stack': 1, 'vector': 1, 'map': 1,
|
28
|
+
'set': 1, 'bitset': 1, 'multiset': 1, 'multimap': 1, 'unordered_set': 1,
|
29
|
+
'unordered_map': 1, 'unordered_multiset': 1, 'unordered_multimap': 1,
|
30
|
+
'array': 1, 'shared_ptr': 1
|
31
|
+
}
|
32
|
+
};
|
33
|
+
var STL_CONTAINER = {
|
34
|
+
className: 'stl_container',
|
35
|
+
begin: '\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<', end: '>',
|
36
|
+
keywords: CPP_KEYWORDS,
|
37
|
+
relevance: 10
|
38
|
+
};
|
39
|
+
STL_CONTAINER.contains = [STL_CONTAINER];
|
40
|
+
return {
|
41
|
+
defaultMode: {
|
42
|
+
keywords: CPP_KEYWORDS,
|
43
|
+
illegal: '</',
|
44
|
+
contains: [
|
45
|
+
hljs.C_LINE_COMMENT_MODE,
|
46
|
+
hljs.C_BLOCK_COMMENT_MODE,
|
47
|
+
hljs.QUOTE_STRING_MODE,
|
48
|
+
{
|
49
|
+
className: 'string',
|
50
|
+
begin: '\'', end: '[^\\\\]\'',
|
51
|
+
illegal: '[^\\\\][^\']'
|
52
|
+
},
|
53
|
+
hljs.C_NUMBER_MODE,
|
54
|
+
{
|
55
|
+
className: 'preprocessor',
|
56
|
+
begin: '#', end: '$'
|
57
|
+
},
|
58
|
+
STL_CONTAINER
|
59
|
+
]
|
60
|
+
}
|
61
|
+
};
|
62
|
+
}();
|
@@ -0,0 +1,41 @@
|
|
1
|
+
/*
|
2
|
+
Language: C#
|
3
|
+
Author: Jason Diamond <jason@diamond.name>
|
4
|
+
*/
|
5
|
+
|
6
|
+
hljs.LANGUAGES.cs = {
|
7
|
+
defaultMode: {
|
8
|
+
keywords: {
|
9
|
+
// Normal keywords.
|
10
|
+
'abstract': 1, 'as': 1, 'base': 1, 'bool': 1, 'break': 1, 'byte': 1, 'case': 1, 'catch': 1, 'char': 1, 'checked': 1, 'class': 1, 'const': 1, 'continue': 1, 'decimal': 1, 'default': 1, 'delegate': 1, 'do': 1, 'do': 1, 'double': 1, 'else': 1, 'enum': 1, 'event': 1, 'explicit': 1, 'extern': 1, 'false': 1, 'finally': 1, 'fixed': 1, 'float': 1, 'for': 1, 'foreach': 1, 'goto': 1, 'if': 1, 'implicit': 1, 'in': 1, 'int': 1, 'interface': 1, 'internal': 1, 'is': 1, 'lock': 1, 'long': 1, 'namespace': 1, 'new': 1, 'null': 1, 'object': 1, 'operator': 1, 'out': 1, 'override': 1, 'params': 1, 'private': 1, 'protected': 1, 'public': 1, 'readonly': 1, 'ref': 1, 'return': 1, 'sbyte': 1, 'sealed': 1, 'short': 1, 'sizeof': 1, 'stackalloc': 1, 'static': 1, 'string': 1, 'struct': 1, 'switch': 1, 'this': 1, 'throw': 1, 'true': 1, 'try': 1, 'typeof': 1, 'uint': 1, 'ulong': 1, 'unchecked': 1, 'unsafe': 1, 'ushort': 1, 'using': 1, 'virtual': 1, 'volatile': 1, 'void': 1, 'while': 1,
|
11
|
+
// Contextual keywords.
|
12
|
+
'ascending': 1, 'descending': 1, 'from': 1, 'get': 1, 'group': 1, 'into': 1, 'join': 1, 'let': 1, 'orderby': 1, 'partial': 1, 'select': 1, 'set': 1, 'value': 1, 'var': 1, 'where': 1, 'yield': 1
|
13
|
+
},
|
14
|
+
contains: [
|
15
|
+
{
|
16
|
+
className: 'comment',
|
17
|
+
begin: '///', end: '$', returnBegin: true,
|
18
|
+
contains: [
|
19
|
+
{
|
20
|
+
className: 'xmlDocTag',
|
21
|
+
begin: '///|<!--|-->'
|
22
|
+
},
|
23
|
+
{
|
24
|
+
className: 'xmlDocTag',
|
25
|
+
begin: '</?', end: '>'
|
26
|
+
}
|
27
|
+
]
|
28
|
+
},
|
29
|
+
hljs.C_LINE_COMMENT_MODE,
|
30
|
+
hljs.C_BLOCK_COMMENT_MODE,
|
31
|
+
{
|
32
|
+
className: 'string',
|
33
|
+
begin: '@"', end: '"',
|
34
|
+
contains: [{begin: '""'}]
|
35
|
+
},
|
36
|
+
hljs.APOS_STRING_MODE,
|
37
|
+
hljs.QUOTE_STRING_MODE,
|
38
|
+
hljs.C_NUMBER_MODE
|
39
|
+
]
|
40
|
+
}
|
41
|
+
};
|
@@ -0,0 +1,101 @@
|
|
1
|
+
/*
|
2
|
+
Language: CSS
|
3
|
+
*/
|
4
|
+
|
5
|
+
hljs.LANGUAGES.css = function() {
|
6
|
+
var FUNCTION = {
|
7
|
+
className: 'function',
|
8
|
+
begin: hljs.IDENT_RE + '\\(', end: '\\)',
|
9
|
+
contains: [{
|
10
|
+
endsWithParent: true, excludeEnd: true,
|
11
|
+
contains: [hljs.NUMBER_MODE, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]
|
12
|
+
}]
|
13
|
+
};
|
14
|
+
return {
|
15
|
+
case_insensitive: true,
|
16
|
+
defaultMode: {
|
17
|
+
illegal: '[=/|\']',
|
18
|
+
contains: [
|
19
|
+
hljs.C_BLOCK_COMMENT_MODE,
|
20
|
+
{
|
21
|
+
className: 'id', begin: '\\#[A-Za-z0-9_-]+'
|
22
|
+
},
|
23
|
+
{
|
24
|
+
className: 'class', begin: '\\.[A-Za-z0-9_-]+',
|
25
|
+
relevance: 0
|
26
|
+
},
|
27
|
+
{
|
28
|
+
className: 'attr_selector',
|
29
|
+
begin: '\\[', end: '\\]',
|
30
|
+
illegal: '$'
|
31
|
+
},
|
32
|
+
{
|
33
|
+
className: 'pseudo',
|
34
|
+
begin: ':(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\"\\\']+'
|
35
|
+
},
|
36
|
+
{
|
37
|
+
className: 'at_rule',
|
38
|
+
begin: '@(font-face|page)',
|
39
|
+
lexems: '[a-z-]+',
|
40
|
+
keywords: {'font-face': 1, 'page': 1}
|
41
|
+
},
|
42
|
+
{
|
43
|
+
className: 'at_rule',
|
44
|
+
begin: '@', end: '[{;]', // at_rule eating first "{" is a good thing
|
45
|
+
// because it doesn't let it to be parsed as
|
46
|
+
// a rule set but instead drops parser into
|
47
|
+
// the defaultMode which is how it should be.
|
48
|
+
excludeEnd: true,
|
49
|
+
keywords: {'import': 1, 'page': 1, 'media': 1, 'charset': 1},
|
50
|
+
contains: [
|
51
|
+
FUNCTION,
|
52
|
+
hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE,
|
53
|
+
hljs.NUMBER_MODE
|
54
|
+
]
|
55
|
+
},
|
56
|
+
{
|
57
|
+
className: 'tag', begin: hljs.IDENT_RE,
|
58
|
+
relevance: 0
|
59
|
+
},
|
60
|
+
{
|
61
|
+
className: 'rules',
|
62
|
+
begin: '{', end: '}',
|
63
|
+
illegal: '[^\\s]',
|
64
|
+
relevance: 0,
|
65
|
+
contains: [
|
66
|
+
hljs.C_BLOCK_COMMENT_MODE,
|
67
|
+
{
|
68
|
+
className: 'rule',
|
69
|
+
begin: '[^\\s]', returnBegin: true, end: ';', endsWithParent: true,
|
70
|
+
contains: [
|
71
|
+
{
|
72
|
+
className: 'attribute',
|
73
|
+
begin: '[A-Z\\_\\.\\-]+', end: ':',
|
74
|
+
excludeEnd: true,
|
75
|
+
illegal: '[^\\s]',
|
76
|
+
starts: {
|
77
|
+
className: 'value',
|
78
|
+
endsWithParent: true, excludeEnd: true,
|
79
|
+
contains: [
|
80
|
+
FUNCTION,
|
81
|
+
hljs.NUMBER_MODE,
|
82
|
+
hljs.QUOTE_STRING_MODE,
|
83
|
+
hljs.APOS_STRING_MODE,
|
84
|
+
hljs.C_BLOCK_COMMENT_MODE,
|
85
|
+
{
|
86
|
+
className: 'hexcolor', begin: '\\#[0-9A-F]+'
|
87
|
+
},
|
88
|
+
{
|
89
|
+
className: 'important', begin: '!important'
|
90
|
+
}
|
91
|
+
]
|
92
|
+
}
|
93
|
+
}
|
94
|
+
]
|
95
|
+
}
|
96
|
+
]
|
97
|
+
}
|
98
|
+
]
|
99
|
+
}
|
100
|
+
};
|
101
|
+
}();
|
@@ -0,0 +1,70 @@
|
|
1
|
+
/*
|
2
|
+
Language: Delphi
|
3
|
+
*/
|
4
|
+
|
5
|
+
hljs.LANGUAGES.delphi = function(){
|
6
|
+
var DELPHI_KEYWORDS = {'and': 1, 'safecall': 1, 'cdecl': 1, 'then': 1, 'string': 1, 'exports': 1, 'library': 1, 'not': 1, 'pascal': 1, 'set': 1, 'virtual': 1, 'file': 1, 'in': 1, 'array': 1, 'label': 1, 'packed': 1, 'end.': 1, 'index': 1, 'while': 1, 'const': 1, 'raise': 1, 'for': 1, 'to': 1, 'implementation': 1, 'with': 1, 'except': 1, 'overload': 1, 'destructor': 1, 'downto': 1, 'finally': 1, 'program': 1, 'exit': 1, 'unit': 1, 'inherited': 1, 'override': 1, 'if': 1, 'type': 1, 'until': 1, 'function': 1, 'do': 1, 'begin': 1, 'repeat': 1, 'goto': 1, 'nil': 1, 'far': 1, 'initialization': 1, 'object': 1, 'else': 1, 'var': 1, 'uses': 1, 'external': 1, 'resourcestring': 1, 'interface': 1, 'end': 1, 'finalization': 1, 'class': 1, 'asm': 1, 'mod': 1, 'case': 1, 'on': 1, 'shr': 1, 'shl': 1, 'of': 1, 'register': 1, 'xorwrite': 1, 'threadvar': 1, 'try': 1, 'record': 1, 'near': 1, 'stored': 1, 'constructor': 1, 'stdcall': 1, 'inline': 1, 'div': 1, 'out': 1, 'or': 1, 'procedure': 1};
|
7
|
+
var DELPHI_CLASS_KEYWORDS = {'safecall': 1, 'stdcall': 1, 'pascal': 1, 'stored': 1, 'const': 1, 'implementation': 1, 'finalization': 1, 'except': 1, 'to': 1, 'finally': 1, 'program': 1, 'inherited': 1, 'override': 1, 'then': 1, 'exports': 1, 'string': 1, 'read': 1, 'not': 1, 'mod': 1, 'shr': 1, 'try': 1, 'div': 1, 'shl': 1, 'set': 1, 'library': 1, 'message': 1, 'packed': 1, 'index': 1, 'for': 1, 'near': 1, 'overload': 1, 'label': 1, 'downto': 1, 'exit': 1, 'public': 1, 'goto': 1, 'interface': 1, 'asm': 1, 'on': 1, 'of': 1, 'constructor': 1, 'or': 1, 'private': 1, 'array': 1, 'unit': 1, 'raise': 1, 'destructor': 1, 'var': 1, 'type': 1, 'until': 1, 'function': 1, 'else': 1, 'external': 1, 'with': 1, 'case': 1, 'default': 1, 'record': 1, 'while': 1, 'protected': 1, 'property': 1, 'procedure': 1, 'published': 1, 'and': 1, 'cdecl': 1, 'do': 1, 'threadvar': 1, 'file': 1, 'in': 1, 'if': 1, 'end': 1, 'virtual': 1, 'write': 1, 'far': 1, 'out': 1, 'begin': 1, 'repeat': 1, 'nil': 1, 'initialization': 1, 'object': 1, 'uses': 1, 'resourcestring': 1, 'class': 1, 'register': 1, 'xorwrite': 1, 'inline': 1, 'static': 1};
|
8
|
+
var CURLY_COMMENT = {
|
9
|
+
className: 'comment',
|
10
|
+
begin: '{', end: '}',
|
11
|
+
relevance: 0
|
12
|
+
};
|
13
|
+
var PAREN_COMMENT = {
|
14
|
+
className: 'comment',
|
15
|
+
begin: '\\(\\*', end: '\\*\\)',
|
16
|
+
relevance: 10
|
17
|
+
};
|
18
|
+
var STRING = {
|
19
|
+
className: 'string',
|
20
|
+
begin: '\'', end: '\'',
|
21
|
+
contains: [{begin: '\'\''}],
|
22
|
+
relevance: 0
|
23
|
+
};
|
24
|
+
var CHAR_STRING = {
|
25
|
+
className: 'string', begin: '(#\\d+)+'
|
26
|
+
};
|
27
|
+
var FUNCTION = {
|
28
|
+
className: 'function',
|
29
|
+
begin: '(procedure|constructor|destructor|function)\\b', end: '[:;]',
|
30
|
+
keywords: {'function': 1, 'constructor': 10, 'destructor': 10, 'procedure': 10},
|
31
|
+
contains: [
|
32
|
+
{
|
33
|
+
className: 'title', begin: hljs.IDENT_RE
|
34
|
+
},
|
35
|
+
{
|
36
|
+
className: 'params',
|
37
|
+
begin: '\\(', end: '\\)',
|
38
|
+
keywords: DELPHI_KEYWORDS,
|
39
|
+
contains: [STRING, CHAR_STRING]
|
40
|
+
},
|
41
|
+
CURLY_COMMENT, PAREN_COMMENT
|
42
|
+
]
|
43
|
+
};
|
44
|
+
return {
|
45
|
+
case_insensitive: true,
|
46
|
+
defaultMode: {
|
47
|
+
keywords: DELPHI_KEYWORDS,
|
48
|
+
illegal: '("|\\$[G-Zg-z]|\\/\\*|</)',
|
49
|
+
contains: [
|
50
|
+
CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE,
|
51
|
+
STRING, CHAR_STRING,
|
52
|
+
hljs.NUMBER_MODE,
|
53
|
+
FUNCTION,
|
54
|
+
{
|
55
|
+
className: 'class',
|
56
|
+
begin: '=\\bclass\\b', end: 'end;',
|
57
|
+
keywords: DELPHI_CLASS_KEYWORDS,
|
58
|
+
contains: [
|
59
|
+
STRING, CHAR_STRING,
|
60
|
+
CURLY_COMMENT, PAREN_COMMENT,
|
61
|
+
FUNCTION
|
62
|
+
]
|
63
|
+
}
|
64
|
+
]
|
65
|
+
},
|
66
|
+
modes: [
|
67
|
+
|
68
|
+
]
|
69
|
+
};
|
70
|
+
}();
|